From 454da04b0b2edb3fc133dd55cd71515fb6af5596 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Thu, 17 Sep 2009 13:59:39 +0200 Subject: [PATCH] Remove bundled yaz_3.0.14. --- dependencies/yaz_3.0.14/LICENSE.txt | 14 - dependencies/yaz_3.0.14/NEWS | 2272 - dependencies/yaz_3.0.14/README | 46 - dependencies/yaz_3.0.14/bin/.yazclient.history | 6 - dependencies/yaz_3.0.14/bin/LICENSE.txt | 14 - dependencies/yaz_3.0.14/bin/cql2pqf.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/cql2xcql.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/iconv.dll | Bin 888832 -> 0 bytes dependencies/yaz_3.0.14/bin/libxml2.dll | Bin 964608 -> 0 bytes dependencies/yaz_3.0.14/bin/libxslt.dll | Bin 161792 -> 0 bytes dependencies/yaz_3.0.14/bin/makefile | 874 - dependencies/yaz_3.0.14/bin/tst_timing.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/tstlog.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/yaz-client.exe | Bin 69632 -> 0 bytes dependencies/yaz_3.0.14/bin/yaz-marcdump.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/yaz-ztest.exe | Bin 45056 -> 0 bytes dependencies/yaz_3.0.14/bin/yaz.nsi | 201 - dependencies/yaz_3.0.14/bin/yaz.rc | 38 - dependencies/yaz_3.0.14/bin/yaz3.dll | Bin 1105920 -> 0 bytes dependencies/yaz_3.0.14/bin/zlib1.dll | Bin 73728 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomsh.exe | Bin 20480 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst1.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst10.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst2.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst3.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst4.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst5.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst6.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst7.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst8.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/bin/zoomtst9.exe | Bin 16384 -> 0 bytes dependencies/yaz_3.0.14/client/admin.c | 308 - dependencies/yaz_3.0.14/client/admin.h | 26 - dependencies/yaz_3.0.14/client/bertorture.c | 231 - dependencies/yaz_3.0.14/client/client.c | 5023 - dependencies/yaz_3.0.14/client/fhistory.c | 132 - dependencies/yaz_3.0.14/client/fhistory.h | 39 - dependencies/yaz_3.0.14/client/tabcomplete.c | 154 - dependencies/yaz_3.0.14/client/tabcomplete.h | 26 - dependencies/yaz_3.0.14/doc/apilayer.png | Bin 1021 -> 0 bytes dependencies/yaz_3.0.14/doc/asn.external.html | 119 - dependencies/yaz_3.0.14/doc/asn.html | 16 - dependencies/yaz_3.0.14/doc/asn.oid.html | 47 - dependencies/yaz_3.0.14/doc/asn.pdu.html | 278 - dependencies/yaz_3.0.14/doc/asn.preparing.html | 89 - dependencies/yaz_3.0.14/doc/asn.xml | 1094 - dependencies/yaz_3.0.14/doc/bookinfo.xml | 48 - dependencies/yaz_3.0.14/doc/client.commands.html | 441 - dependencies/yaz_3.0.14/doc/client.html | 10 - dependencies/yaz_3.0.14/doc/client.invoking.html | 90 - dependencies/yaz_3.0.14/doc/client.searching.html | 32 - dependencies/yaz_3.0.14/doc/client.xml | 220 - dependencies/yaz_3.0.14/doc/common/common.ent | 202 - dependencies/yaz_3.0.14/doc/common/id.htmlhelp.xsl | 18 - dependencies/yaz_3.0.14/doc/common/id.man.xsl | 7 - dependencies/yaz_3.0.14/doc/common/id.png | Bin 1638 -> 0 bytes dependencies/yaz_3.0.14/doc/common/id.tkl.xsl | 47 - dependencies/yaz_3.0.14/doc/common/ref2dbinc.xsl | 39 - dependencies/yaz_3.0.14/doc/common/stripref.xsl | 15 - dependencies/yaz_3.0.14/doc/common/style1.css | 63 - .../yaz_3.0.14/doc/comstack.addresses.html | 50 - dependencies/yaz_3.0.14/doc/comstack.client.html | 17 - dependencies/yaz_3.0.14/doc/comstack.common.html | 135 - .../yaz_3.0.14/doc/comstack.diagnostics.html | 28 - dependencies/yaz_3.0.14/doc/comstack.html | 50 - .../yaz_3.0.14/doc/comstack.introduction.html | 32 - dependencies/yaz_3.0.14/doc/comstack.server.html | 43 - dependencies/yaz_3.0.14/doc/comstack.ssl.html | 30 - dependencies/yaz_3.0.14/doc/comstack.summary.html | 46 - dependencies/yaz_3.0.14/doc/comstack.xml | 645 - dependencies/yaz_3.0.14/doc/credits.html | 66 - dependencies/yaz_3.0.14/doc/credits.xml | 117 - dependencies/yaz_3.0.14/doc/entities.ent | 31 - dependencies/yaz_3.0.14/doc/frontend.xml | 892 - dependencies/yaz_3.0.14/doc/future.html | 27 - dependencies/yaz_3.0.14/doc/future.xml | 55 - dependencies/yaz_3.0.14/doc/gfs-options.xml | 206 - dependencies/yaz_3.0.14/doc/gfs-synopsis.xml | 42 - dependencies/yaz_3.0.14/doc/gfs-virtual.xml | 276 - dependencies/yaz_3.0.14/doc/index.html | 16 - dependencies/yaz_3.0.14/doc/indexdata.html | 41 - dependencies/yaz_3.0.14/doc/indexdata.xml | 62 - dependencies/yaz_3.0.14/doc/installation.html | 43 - dependencies/yaz_3.0.14/doc/installation.unix.html | 252 - .../yaz_3.0.14/doc/installation.win32.html | 144 - dependencies/yaz_3.0.14/doc/installation.xml | 711 - dependencies/yaz_3.0.14/doc/introduction.api.html | 98 - dependencies/yaz_3.0.14/doc/introduction.html | 97 - dependencies/yaz_3.0.14/doc/introduction.xml | 316 - dependencies/yaz_3.0.14/doc/license.html | 31 - dependencies/yaz_3.0.14/doc/license.other.html | 48 - dependencies/yaz_3.0.14/doc/license.xml | 143 - dependencies/yaz_3.0.14/doc/list-oids.html | 1123 - dependencies/yaz_3.0.14/doc/marc.html | 78 - dependencies/yaz_3.0.14/doc/odr.debugging.html | 11 - dependencies/yaz_3.0.14/doc/odr.html | 26 - dependencies/yaz_3.0.14/doc/odr.programming.html | 494 - dependencies/yaz_3.0.14/doc/odr.use.html | 330 - dependencies/yaz_3.0.14/doc/odr.xml | 1312 - dependencies/yaz_3.0.14/doc/server.backend.html | 11 - .../yaz_3.0.14/doc/server.backendfunctions.html | 377 - dependencies/yaz_3.0.14/doc/server.frontend.html | 36 - dependencies/yaz_3.0.14/doc/server.html | 35 - dependencies/yaz_3.0.14/doc/server.invocation.html | 167 - dependencies/yaz_3.0.14/doc/server.main.html | 117 - dependencies/yaz_3.0.14/doc/server.vhosts.html | 154 - dependencies/yaz_3.0.14/doc/soap.html | 12 - dependencies/yaz_3.0.14/doc/soap.http.html | 27 - dependencies/yaz_3.0.14/doc/soap.srw.html | 97 - dependencies/yaz_3.0.14/doc/soap.xml | 265 - dependencies/yaz_3.0.14/doc/soap.xml.html | 97 - dependencies/yaz_3.0.14/doc/std-oid-table.xml | 2257 - dependencies/yaz_3.0.14/doc/tools.html | 1061 - dependencies/yaz_3.0.14/doc/tools.log.html | 117 - dependencies/yaz_3.0.14/doc/tools.nmem.html | 46 - dependencies/yaz_3.0.14/doc/tools.oid.html | 326 - dependencies/yaz_3.0.14/doc/tools.retrieval.html | 145 - dependencies/yaz_3.0.14/doc/tools.xml | 2570 - dependencies/yaz_3.0.14/doc/yaz-asncomp-man.xml | 266 - .../yaz_3.0.14/doc/yaz-client-commands.xml | 762 - dependencies/yaz_3.0.14/doc/yaz-client-man.xml | 225 - dependencies/yaz_3.0.14/doc/yaz-config-man.xml | 145 - dependencies/yaz_3.0.14/doc/yaz-iconv-man.xml | 124 - dependencies/yaz_3.0.14/doc/yaz-illclient-man.xml | 137 - dependencies/yaz_3.0.14/doc/yaz-log-man.xml | 294 - dependencies/yaz_3.0.14/doc/yaz-man.xml | 141 - dependencies/yaz_3.0.14/doc/yaz-marcdump-man.xml | 176 - dependencies/yaz_3.0.14/doc/yaz-ztest-man.xml | 110 - dependencies/yaz_3.0.14/doc/yaz.xml | 53 - dependencies/yaz_3.0.14/doc/ziffy.html | 15 - dependencies/yaz_3.0.14/doc/ziffy.using.html | 11 - dependencies/yaz_3.0.14/doc/ziffy.xml | 56 - dependencies/yaz_3.0.14/doc/zoom.events.html | 28 - .../yaz_3.0.14/doc/zoom.extendedservices.html | 105 - dependencies/yaz_3.0.14/doc/zoom.html | 257 - dependencies/yaz_3.0.14/doc/zoom.options.html | 24 - dependencies/yaz_3.0.14/doc/zoom.query.html | 31 - dependencies/yaz_3.0.14/doc/zoom.records.html | 139 - dependencies/yaz_3.0.14/doc/zoom.resultsets.html | 167 - dependencies/yaz_3.0.14/doc/zoom.scan.html | 86 - dependencies/yaz_3.0.14/doc/zoom.xml | 1453 - dependencies/yaz_3.0.14/doc/zoomsh-man.xml | 173 - dependencies/yaz_3.0.14/etc/MARC21slim2DC.xsl | 198 - dependencies/yaz_3.0.14/etc/MARC21slim2MODS.xsl | 1873 - dependencies/yaz_3.0.14/etc/MARC21slim2RDFDC.xsl | 197 - dependencies/yaz_3.0.14/etc/MARC21slimUtils.xsl | 65 - dependencies/yaz_3.0.14/etc/maps.xml | 35 - dependencies/yaz_3.0.14/etc/pqf.properties | 157 - dependencies/yaz_3.0.14/etc/yazgfs.xml | 40 - dependencies/yaz_3.0.14/include/yaz/backend.h | 395 - dependencies/yaz_3.0.14/include/yaz/ccl.h | 383 - dependencies/yaz_3.0.14/include/yaz/ccl_xml.h | 79 - dependencies/yaz_3.0.14/include/yaz/charneg.h | 113 - dependencies/yaz_3.0.14/include/yaz/comstack.h | 168 - dependencies/yaz_3.0.14/include/yaz/copy_types.h | 57 - dependencies/yaz_3.0.14/include/yaz/cql.h | 328 - dependencies/yaz_3.0.14/include/yaz/diagbib1.h | 188 - .../yaz_3.0.14/include/yaz/diagsru_update.h | 63 - dependencies/yaz_3.0.14/include/yaz/diagsrw.h | 107 - dependencies/yaz_3.0.14/include/yaz/ill-core.h | 1332 - dependencies/yaz_3.0.14/include/yaz/ill.h | 70 - dependencies/yaz_3.0.14/include/yaz/item-req.h | 61 - .../yaz_3.0.14/include/yaz/libxml2_error.h | 61 - dependencies/yaz_3.0.14/include/yaz/log.h | 259 - dependencies/yaz_3.0.14/include/yaz/logrpn.h | 62 - dependencies/yaz_3.0.14/include/yaz/marcdisp.h | 372 - dependencies/yaz_3.0.14/include/yaz/mutex.h | 62 - dependencies/yaz_3.0.14/include/yaz/nmem.h | 108 - dependencies/yaz_3.0.14/include/yaz/nmem_xml.h | 55 - .../yaz_3.0.14/include/yaz/oclc-ill-req-ext.h | 69 - dependencies/yaz_3.0.14/include/yaz/odr.h | 351 - dependencies/yaz_3.0.14/include/yaz/oid_db.h | 207 - dependencies/yaz_3.0.14/include/yaz/oid_std.h | 153 - dependencies/yaz_3.0.14/include/yaz/oid_util.h | 72 - dependencies/yaz_3.0.14/include/yaz/options.h | 53 - dependencies/yaz_3.0.14/include/yaz/otherinfo.h | 69 - dependencies/yaz_3.0.14/include/yaz/pquery.h | 96 - dependencies/yaz_3.0.14/include/yaz/proto.h | 205 - dependencies/yaz_3.0.14/include/yaz/prt-ext.h | 165 - .../yaz_3.0.14/include/yaz/query-charset.h | 57 - dependencies/yaz_3.0.14/include/yaz/querytowrbuf.h | 58 - dependencies/yaz_3.0.14/include/yaz/readconf.h | 59 - dependencies/yaz_3.0.14/include/yaz/record_conv.h | 123 - dependencies/yaz_3.0.14/include/yaz/retrieval.h | 140 - dependencies/yaz_3.0.14/include/yaz/snprintf.h | 57 - dependencies/yaz_3.0.14/include/yaz/soap.h | 100 - dependencies/yaz_3.0.14/include/yaz/sortspec.h | 54 - dependencies/yaz_3.0.14/include/yaz/srw.h | 297 - dependencies/yaz_3.0.14/include/yaz/statserv.h | 48 - dependencies/yaz_3.0.14/include/yaz/tcpip.h | 55 - dependencies/yaz_3.0.14/include/yaz/test.h | 123 - dependencies/yaz_3.0.14/include/yaz/timing.h | 68 - dependencies/yaz_3.0.14/include/yaz/tokenizer.h | 85 - dependencies/yaz_3.0.14/include/yaz/tpath.h | 119 - dependencies/yaz_3.0.14/include/yaz/unix.h | 59 - dependencies/yaz_3.0.14/include/yaz/wrbuf.h | 110 - dependencies/yaz_3.0.14/include/yaz/xmalloc.h | 68 - dependencies/yaz_3.0.14/include/yaz/xmlquery.h | 59 - dependencies/yaz_3.0.14/include/yaz/xmltypes.h | 59 - dependencies/yaz_3.0.14/include/yaz/yaz-ccl.h | 56 - dependencies/yaz_3.0.14/include/yaz/yaz-iconv.h | 114 - dependencies/yaz_3.0.14/include/yaz/yaz-util.h | 155 - dependencies/yaz_3.0.14/include/yaz/yaz-version.h | 64 - dependencies/yaz_3.0.14/include/yaz/yconfig.h | 69 - dependencies/yaz_3.0.14/include/yaz/z-accdes1.h | 45 - dependencies/yaz_3.0.14/include/yaz/z-accform1.h | 137 - dependencies/yaz_3.0.14/include/yaz/z-acckrb1.h | 54 - dependencies/yaz_3.0.14/include/yaz/z-charneg.h | 189 - dependencies/yaz_3.0.14/include/yaz/z-core.h | 1342 - dependencies/yaz_3.0.14/include/yaz/z-date.h | 137 - dependencies/yaz_3.0.14/include/yaz/z-diag1.h | 357 - dependencies/yaz_3.0.14/include/yaz/z-espec1.h | 145 - dependencies/yaz_3.0.14/include/yaz/z-estask.h | 46 - dependencies/yaz_3.0.14/include/yaz/z-exp.h | 1015 - dependencies/yaz_3.0.14/include/yaz/z-grs.h | 181 - dependencies/yaz_3.0.14/include/yaz/z-mterm2.h | 40 - dependencies/yaz_3.0.14/include/yaz/z-oclcui.h | 40 - dependencies/yaz_3.0.14/include/yaz/z-opac.h | 98 - dependencies/yaz_3.0.14/include/yaz/z-rrf1.h | 62 - dependencies/yaz_3.0.14/include/yaz/z-rrf2.h | 41 - dependencies/yaz_3.0.14/include/yaz/z-sum.h | 54 - dependencies/yaz_3.0.14/include/yaz/z-sutrs.h | 39 - dependencies/yaz_3.0.14/include/yaz/z-uifr1.h | 98 - dependencies/yaz_3.0.14/include/yaz/z-univ.h | 53 - dependencies/yaz_3.0.14/include/yaz/zes-admin.h | 113 - dependencies/yaz_3.0.14/include/yaz/zes-expi.h | 108 - dependencies/yaz_3.0.14/include/yaz/zes-exps.h | 96 - dependencies/yaz_3.0.14/include/yaz/zes-order.h | 135 - dependencies/yaz_3.0.14/include/yaz/zes-pquery.h | 80 - dependencies/yaz_3.0.14/include/yaz/zes-psched.h | 121 - dependencies/yaz_3.0.14/include/yaz/zes-pset.h | 71 - dependencies/yaz_3.0.14/include/yaz/zes-update.h | 166 - dependencies/yaz_3.0.14/include/yaz/zes-update0.h | 154 - dependencies/yaz_3.0.14/include/yaz/zgdu.h | 112 - dependencies/yaz_3.0.14/include/yaz/zoom.h | 491 - dependencies/yaz_3.0.14/lib/yaz3.lib | Bin 238422 -> 0 bytes dependencies/yaz_3.0.14/src/atoin.c | 44 - dependencies/yaz_3.0.14/src/ber_any.c | 143 - dependencies/yaz_3.0.14/src/ber_bit.c | 92 - dependencies/yaz_3.0.14/src/ber_bool.c | 62 - dependencies/yaz_3.0.14/src/ber_int.c | 120 - dependencies/yaz_3.0.14/src/ber_len.c | 136 - dependencies/yaz_3.0.14/src/ber_null.c | 58 - dependencies/yaz_3.0.14/src/ber_oct.c | 94 - dependencies/yaz_3.0.14/src/ber_oid.c | 145 - dependencies/yaz_3.0.14/src/ber_tag.c | 197 - dependencies/yaz_3.0.14/src/bib1.csv | 176 - dependencies/yaz_3.0.14/src/ccl_stop_words.c | 242 - dependencies/yaz_3.0.14/src/cclerrms.c | 118 - dependencies/yaz_3.0.14/src/cclfind.c | 1210 - dependencies/yaz_3.0.14/src/cclp.h | 109 - dependencies/yaz_3.0.14/src/cclptree.c | 232 - dependencies/yaz_3.0.14/src/cclqfile.c | 373 - dependencies/yaz_3.0.14/src/cclqual.c | 431 - dependencies/yaz_3.0.14/src/cclstr.c | 122 - dependencies/yaz_3.0.14/src/ccltoken.c | 364 - dependencies/yaz_3.0.14/src/cclxmlconfig.c | 210 - dependencies/yaz_3.0.14/src/charconv.tcl | 412 - dependencies/yaz_3.0.14/src/charneg-3.asn | 212 - dependencies/yaz_3.0.14/src/charneg.c | 434 - dependencies/yaz_3.0.14/src/codetables.xml |98947 -------------------- dependencies/yaz_3.0.14/src/comstack.c | 339 - dependencies/yaz_3.0.14/src/copy_types.c | 68 - dependencies/yaz_3.0.14/src/cql.c | 1957 - dependencies/yaz_3.0.14/src/cql.y | 366 - dependencies/yaz_3.0.14/src/cqlstdio.c | 49 - dependencies/yaz_3.0.14/src/cqlstrer.c | 74 - dependencies/yaz_3.0.14/src/cqlstring.c | 54 - dependencies/yaz_3.0.14/src/cqltransform.c | 692 - dependencies/yaz_3.0.14/src/cqlutil.c | 193 - dependencies/yaz_3.0.14/src/csvtobib1.tcl | 18 - dependencies/yaz_3.0.14/src/csvtodiag.tcl | 93 - dependencies/yaz_3.0.14/src/csvtosru_update.tcl | 18 - dependencies/yaz_3.0.14/src/csvtosrw.tcl | 18 - dependencies/yaz_3.0.14/src/datetime.asn | 81 - dependencies/yaz_3.0.14/src/diag-entry.c | 34 - dependencies/yaz_3.0.14/src/diag-entry.h | 26 - dependencies/yaz_3.0.14/src/diagbib1.c | 190 - dependencies/yaz_3.0.14/src/diagsru_update.c | 62 - dependencies/yaz_3.0.14/src/diagsrw.c | 106 - dependencies/yaz_3.0.14/src/dumpber.c | 137 - dependencies/yaz_3.0.14/src/elementset.c | 56 - dependencies/yaz_3.0.14/src/esadmin.asn | 49 - dependencies/yaz_3.0.14/src/esupdate.asn | 103 - dependencies/yaz_3.0.14/src/eventl.c | 249 - dependencies/yaz_3.0.14/src/eventl.h | 72 - dependencies/yaz_3.0.14/src/grs1disp.c | 136 - dependencies/yaz_3.0.14/src/http.c | 552 - dependencies/yaz_3.0.14/src/ill-core.c | 1790 - dependencies/yaz_3.0.14/src/ill-get.c | 675 - dependencies/yaz_3.0.14/src/ill.tcl | 68 - dependencies/yaz_3.0.14/src/ill9702.asn | 1165 - dependencies/yaz_3.0.14/src/initopt.c | 102 - dependencies/yaz_3.0.14/src/item-req.asn | 58 - dependencies/yaz_3.0.14/src/item-req.c | 69 - dependencies/yaz_3.0.14/src/libxml2_error.c | 62 - dependencies/yaz_3.0.14/src/log.c | 597 - dependencies/yaz_3.0.14/src/logrpn.c | 406 - dependencies/yaz_3.0.14/src/marc8.c |42250 --------- dependencies/yaz_3.0.14/src/marc8r.c |31974 ------- dependencies/yaz_3.0.14/src/marc_read_iso2709.c | 200 - dependencies/yaz_3.0.14/src/marc_read_line.c | 262 - dependencies/yaz_3.0.14/src/marc_read_xml.c | 263 - dependencies/yaz_3.0.14/src/marcdisp.c | 1067 - dependencies/yaz_3.0.14/src/matchstr.c | 85 - dependencies/yaz_3.0.14/src/mime.c | 90 - dependencies/yaz_3.0.14/src/mime.h | 25 - dependencies/yaz_3.0.14/src/mterm2.asn | 10 - dependencies/yaz_3.0.14/src/mutex.c | 115 - dependencies/yaz_3.0.14/src/nmem.c | 251 - dependencies/yaz_3.0.14/src/nmemsdup.c | 115 - dependencies/yaz_3.0.14/src/oclc-ill-req-ext.asn | 45 - dependencies/yaz_3.0.14/src/oclc-ill-req-ext.c | 63 - dependencies/yaz_3.0.14/src/oclcui.asn | 33 - dependencies/yaz_3.0.14/src/odr-priv.h | 135 - dependencies/yaz_3.0.14/src/odr.c | 310 - dependencies/yaz_3.0.14/src/odr_any.c | 49 - dependencies/yaz_3.0.14/src/odr_bit.c | 68 - dependencies/yaz_3.0.14/src/odr_bool.c | 58 - dependencies/yaz_3.0.14/src/odr_choice.c | 109 - dependencies/yaz_3.0.14/src/odr_cons.c | 222 - dependencies/yaz_3.0.14/src/odr_enum.c | 59 - dependencies/yaz_3.0.14/src/odr_int.c | 59 - dependencies/yaz_3.0.14/src/odr_mem.c | 131 - dependencies/yaz_3.0.14/src/odr_null.c | 63 - dependencies/yaz_3.0.14/src/odr_oct.c | 227 - dependencies/yaz_3.0.14/src/odr_oid.c | 65 - dependencies/yaz_3.0.14/src/odr_seq.c | 154 - dependencies/yaz_3.0.14/src/odr_tag.c | 68 - dependencies/yaz_3.0.14/src/odr_use.c | 77 - dependencies/yaz_3.0.14/src/odr_util.c | 126 - dependencies/yaz_3.0.14/src/oid.csv | 141 - dependencies/yaz_3.0.14/src/oid_db.c | 211 - dependencies/yaz_3.0.14/src/oid_std.c | 288 - dependencies/yaz_3.0.14/src/oid_util.c | 107 - dependencies/yaz_3.0.14/src/oidtoc.tcl | 162 - dependencies/yaz_3.0.14/src/opacdisp.c | 179 - dependencies/yaz_3.0.14/src/options.c | 97 - dependencies/yaz_3.0.14/src/otherinfo.c | 189 - dependencies/yaz_3.0.14/src/pquery.c | 852 - dependencies/yaz_3.0.14/src/prt-ext.c | 345 - dependencies/yaz_3.0.14/src/query-charset.c | 106 - dependencies/yaz_3.0.14/src/querytowrbuf.c | 262 - dependencies/yaz_3.0.14/src/readconf.c | 99 - dependencies/yaz_3.0.14/src/record_conv.c | 507 - dependencies/yaz_3.0.14/src/requestq.c | 106 - dependencies/yaz_3.0.14/src/retrieval.c | 380 - dependencies/yaz_3.0.14/src/service.c | 474 - dependencies/yaz_3.0.14/src/service.h | 56 - dependencies/yaz_3.0.14/src/seshigh.c | 3569 - dependencies/yaz_3.0.14/src/session.h | 147 - dependencies/yaz_3.0.14/src/siconv.c | 1981 - dependencies/yaz_3.0.14/src/snprintf.c | 44 - dependencies/yaz_3.0.14/src/soap.c | 358 - dependencies/yaz_3.0.14/src/sortspec.c | 139 - dependencies/yaz_3.0.14/src/sru_update.csv | 51 - dependencies/yaz_3.0.14/src/srw.c | 1295 - dependencies/yaz_3.0.14/src/srw.csv | 95 - dependencies/yaz_3.0.14/src/srwutil.c | 1410 - dependencies/yaz_3.0.14/src/statserv.c | 1570 - dependencies/yaz_3.0.14/src/tcpdchk.c | 108 - dependencies/yaz_3.0.14/src/tcpip.c | 1385 - dependencies/yaz_3.0.14/src/test.c | 219 - dependencies/yaz_3.0.14/src/timing.c | 161 - dependencies/yaz_3.0.14/src/tokenizer.c | 187 - dependencies/yaz_3.0.14/src/tpath.c | 137 - dependencies/yaz_3.0.14/src/univres.asn | 23 - dependencies/yaz_3.0.14/src/unix.c | 748 - dependencies/yaz_3.0.14/src/version.c | 35 - dependencies/yaz_3.0.14/src/waislen.c | 41 - dependencies/yaz_3.0.14/src/wrbuf.c | 260 - dependencies/yaz_3.0.14/src/xcqlutil.c | 243 - dependencies/yaz_3.0.14/src/xmalloc.c | 353 - dependencies/yaz_3.0.14/src/xmlquery.c | 798 - dependencies/yaz_3.0.14/src/yaz-ccl.c | 58 - dependencies/yaz_3.0.14/src/z-accdes1.c | 39 - dependencies/yaz_3.0.14/src/z-accform1.c | 154 - dependencies/yaz_3.0.14/src/z-acckrb1.c | 51 - dependencies/yaz_3.0.14/src/z-charneg.c | 234 - dependencies/yaz_3.0.14/src/z-core.c | 1625 - dependencies/yaz_3.0.14/src/z-date.c | 163 - dependencies/yaz_3.0.14/src/z-diag1.c | 396 - dependencies/yaz_3.0.14/src/z-espec1.c | 181 - dependencies/yaz_3.0.14/src/z-estask.c | 38 - dependencies/yaz_3.0.14/src/z-exp.c | 1455 - dependencies/yaz_3.0.14/src/z-grs.c | 225 - dependencies/yaz_3.0.14/src/z-mterm2.c | 31 - dependencies/yaz_3.0.14/src/z-oclcui.c | 30 - dependencies/yaz_3.0.14/src/z-opac.c | 128 - dependencies/yaz_3.0.14/src/z-rrf1.c | 39 - dependencies/yaz_3.0.14/src/z-rrf2.c | 32 - dependencies/yaz_3.0.14/src/z-sum.c | 57 - dependencies/yaz_3.0.14/src/z-sutrs.c | 19 - dependencies/yaz_3.0.14/src/z-uifr1.c | 119 - dependencies/yaz_3.0.14/src/z-univ.c | 43 - dependencies/yaz_3.0.14/src/z.tcl | 351 - dependencies/yaz_3.0.14/src/z3950v3.asn | 2669 - dependencies/yaz_3.0.14/src/zes-admin.c | 124 - dependencies/yaz_3.0.14/src/zes-expi.c | 129 - dependencies/yaz_3.0.14/src/zes-exps.c | 105 - dependencies/yaz_3.0.14/src/zes-order.c | 161 - dependencies/yaz_3.0.14/src/zes-pquery.c | 85 - dependencies/yaz_3.0.14/src/zes-psched.c | 144 - dependencies/yaz_3.0.14/src/zes-pset.c | 73 - dependencies/yaz_3.0.14/src/zes-update.c | 195 - dependencies/yaz_3.0.14/src/zes-update0.c | 178 - dependencies/yaz_3.0.14/src/zgdu.c | 64 - dependencies/yaz_3.0.14/src/zget.c | 661 - dependencies/yaz_3.0.14/src/zoom-c.c | 4516 - dependencies/yaz_3.0.14/src/zoom-opt.c | 237 - dependencies/yaz_3.0.14/src/zoom-p.h | 222 - dependencies/yaz_3.0.14/src/zoom-socket.c | 240 - dependencies/yaz_3.0.14/test/marc1.chr | 1 - dependencies/yaz_3.0.14/test/marc1.marc | 1 - dependencies/yaz_3.0.14/test/marc1.xml | 93 - dependencies/yaz_3.0.14/test/marc1.xml.marc | 1 - dependencies/yaz_3.0.14/test/marc2.chr | 1 - dependencies/yaz_3.0.14/test/marc2.marc | 1 - dependencies/yaz_3.0.14/test/marc2.xml | 100 - dependencies/yaz_3.0.14/test/marc2.xml.marc | 1 - dependencies/yaz_3.0.14/test/marc3.chr | 1 - dependencies/yaz_3.0.14/test/marc3.marc | 1 - dependencies/yaz_3.0.14/test/marc3.xml | 120 - dependencies/yaz_3.0.14/test/marc3.xml.marc | 1 - dependencies/yaz_3.0.14/test/marc4.chr | 1 - dependencies/yaz_3.0.14/test/marc4.marc | 1 - dependencies/yaz_3.0.14/test/marc4.xml | 9 - dependencies/yaz_3.0.14/test/marc4.xml.marc | 1 - dependencies/yaz_3.0.14/test/marc5.chr | 1 - dependencies/yaz_3.0.14/test/marc5.marc | 1 - dependencies/yaz_3.0.14/test/marc5.xml | 31 - dependencies/yaz_3.0.14/test/marc5.xml.marc | 1 - dependencies/yaz_3.0.14/test/marc6.chr | 1 - dependencies/yaz_3.0.14/test/marc6.marc | 1 - dependencies/yaz_3.0.14/test/marc6.xml | 32 - dependencies/yaz_3.0.14/test/marc6.xml.marc | 1 - dependencies/yaz_3.0.14/test/marc7.chr | 1 - dependencies/yaz_3.0.14/test/marc7.marc | 1 - dependencies/yaz_3.0.14/test/marc7.xml | 86 - dependencies/yaz_3.0.14/test/marc7.xml.marc | 1 - dependencies/yaz_3.0.14/test/marc8.chr | 1 - dependencies/yaz_3.0.14/test/marc8.marc | 1 - dependencies/yaz_3.0.14/test/marc8.xml | 139 - dependencies/yaz_3.0.14/test/marc8.xml.marc | 1 - dependencies/yaz_3.0.14/test/marccol1.u8.1.lst | 477 - dependencies/yaz_3.0.14/test/marccol1.u8.2.lst | 477 - dependencies/yaz_3.0.14/test/marccol1.u8.marc | 1 - dependencies/yaz_3.0.14/test/marccol2.u8.1.lst | 28 - dependencies/yaz_3.0.14/test/marccol2.u8.2.lst | 28 - dependencies/yaz_3.0.14/test/marccol2.u8.marc | 1 - dependencies/yaz_3.0.14/test/tst_comstack.c | 207 - dependencies/yaz_3.0.14/test/tst_filepath.c | 43 - dependencies/yaz_3.0.14/test/tst_oid.c | 84 - dependencies/yaz_3.0.14/test/tst_query_charset.c | 96 - dependencies/yaz_3.0.14/test/tst_record_conv.c | 340 - dependencies/yaz_3.0.14/test/tst_retrieval.c | 337 - dependencies/yaz_3.0.14/test/tst_timing.c | 71 - dependencies/yaz_3.0.14/test/tst_tpath.c | 54 - dependencies/yaz_3.0.14/test/tstccl.c | 222 - dependencies/yaz_3.0.14/test/tstcql.sh | 55 - dependencies/yaz_3.0.14/test/tsticonv.c | 664 - dependencies/yaz_3.0.14/test/tstlog.c | 90 - dependencies/yaz_3.0.14/test/tstlogthread.c | 90 - dependencies/yaz_3.0.14/test/tstmarccol.sh | 66 - dependencies/yaz_3.0.14/test/tstmarciso.sh | 48 - dependencies/yaz_3.0.14/test/tstmarcxml.sh | 40 - dependencies/yaz_3.0.14/test/tstmatchstr.c | 44 - dependencies/yaz_3.0.14/test/tstnmem.c | 64 - dependencies/yaz_3.0.14/test/tstodr.asn | 17 - dependencies/yaz_3.0.14/test/tstodr.c | 156 - dependencies/yaz_3.0.14/test/tstodrcodec.c | 27 - dependencies/yaz_3.0.14/test/tstodrcodec.h | 37 - dependencies/yaz_3.0.14/test/tstodrstack.c | 77 - dependencies/yaz_3.0.14/test/tstpquery.c | 86 - dependencies/yaz_3.0.14/test/tstsoap1.c | 63 - dependencies/yaz_3.0.14/test/tstsoap2.c | 68 - dependencies/yaz_3.0.14/test/tstwrbuf.c | 70 - dependencies/yaz_3.0.14/test/tstxmlquery.c | 249 - dependencies/yaz_3.0.14/uninst.exe | Bin 50518 -> 0 bytes dependencies/yaz_3.0.14/util/benchmark.c | 146 - dependencies/yaz_3.0.14/util/cclsh.c | 286 - dependencies/yaz_3.0.14/util/cql2pqf.c | 99 - dependencies/yaz_3.0.14/util/cql2xcql.c | 61 - dependencies/yaz_3.0.14/util/marcdump.c | 459 - dependencies/yaz_3.0.14/util/srwtst.c | 114 - dependencies/yaz_3.0.14/util/yaz-asncomp | 1407 - dependencies/yaz_3.0.14/util/yaz-illclient.c | 695 - dependencies/yaz_3.0.14/util/yaz-xmlquery.c | 198 - dependencies/yaz_3.0.14/util/yaziconv.c | 195 - dependencies/yaz_3.0.14/win/makefile | 874 - dependencies/yaz_3.0.14/win/yaz.nsi | 201 - dependencies/yaz_3.0.14/win/yaz.rc | 38 - dependencies/yaz_3.0.14/ziffy/apdu.c | 180 - dependencies/yaz_3.0.14/ziffy/apdu.h | 70 - dependencies/yaz_3.0.14/ziffy/fmemdmp.c | 106 - dependencies/yaz_3.0.14/ziffy/hooks.c | 321 - dependencies/yaz_3.0.14/ziffy/yaz.c | 145 - dependencies/yaz_3.0.14/ziffy/ziffy.c | 501 - dependencies/yaz_3.0.14/zoom/zoom-benchmark.c | 436 - dependencies/yaz_3.0.14/zoom/zoom-bug-641.c | 90 - dependencies/yaz_3.0.14/zoom/zoom-ka.c | 64 - dependencies/yaz_3.0.14/zoom/zoomsh.c | 682 - dependencies/yaz_3.0.14/zoom/zoomtst1.c | 49 - dependencies/yaz_3.0.14/zoom/zoomtst10.c | 66 - dependencies/yaz_3.0.14/zoom/zoomtst11.c | 113 - dependencies/yaz_3.0.14/zoom/zoomtst2.c | 66 - dependencies/yaz_3.0.14/zoom/zoomtst3.c | 126 - dependencies/yaz_3.0.14/zoom/zoomtst4.c | 103 - dependencies/yaz_3.0.14/zoom/zoomtst5.c | 134 - dependencies/yaz_3.0.14/zoom/zoomtst6.c | 132 - dependencies/yaz_3.0.14/zoom/zoomtst7.c | 188 - dependencies/yaz_3.0.14/zoom/zoomtst8.c | 96 - dependencies/yaz_3.0.14/zoom/zoomtst9.c | 114 - dependencies/yaz_3.0.14/ztest/dummy-grs | 98 - dependencies/yaz_3.0.14/ztest/dummy-records | 1 - dependencies/yaz_3.0.14/ztest/dummy-words | 990 - dependencies/yaz_3.0.14/ztest/read-grs.c | 125 - dependencies/yaz_3.0.14/ztest/read-marc.c | 1631 - dependencies/yaz_3.0.14/ztest/ztest.c | 795 - 519 files changed, 296532 deletions(-) delete mode 100644 dependencies/yaz_3.0.14/LICENSE.txt delete mode 100644 dependencies/yaz_3.0.14/NEWS delete mode 100644 dependencies/yaz_3.0.14/README delete mode 100644 dependencies/yaz_3.0.14/bin/.yazclient.history delete mode 100644 dependencies/yaz_3.0.14/bin/LICENSE.txt delete mode 100644 dependencies/yaz_3.0.14/bin/cql2pqf.exe delete mode 100644 dependencies/yaz_3.0.14/bin/cql2xcql.exe delete mode 100644 dependencies/yaz_3.0.14/bin/iconv.dll delete mode 100644 dependencies/yaz_3.0.14/bin/libxml2.dll delete mode 100644 dependencies/yaz_3.0.14/bin/libxslt.dll delete mode 100644 dependencies/yaz_3.0.14/bin/makefile delete mode 100644 dependencies/yaz_3.0.14/bin/tst_timing.exe delete mode 100644 dependencies/yaz_3.0.14/bin/tstlog.exe delete mode 100644 dependencies/yaz_3.0.14/bin/yaz-client.exe delete mode 100644 dependencies/yaz_3.0.14/bin/yaz-marcdump.exe delete mode 100644 dependencies/yaz_3.0.14/bin/yaz-ztest.exe delete mode 100644 dependencies/yaz_3.0.14/bin/yaz.nsi delete mode 100644 dependencies/yaz_3.0.14/bin/yaz.rc delete mode 100644 dependencies/yaz_3.0.14/bin/yaz3.dll delete mode 100644 dependencies/yaz_3.0.14/bin/zlib1.dll delete mode 100644 dependencies/yaz_3.0.14/bin/zoomsh.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst1.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst10.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst2.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst3.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst4.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst5.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst6.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst7.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst8.exe delete mode 100644 dependencies/yaz_3.0.14/bin/zoomtst9.exe delete mode 100644 dependencies/yaz_3.0.14/client/admin.c delete mode 100644 dependencies/yaz_3.0.14/client/admin.h delete mode 100644 dependencies/yaz_3.0.14/client/bertorture.c delete mode 100644 dependencies/yaz_3.0.14/client/client.c delete mode 100644 dependencies/yaz_3.0.14/client/fhistory.c delete mode 100644 dependencies/yaz_3.0.14/client/fhistory.h delete mode 100644 dependencies/yaz_3.0.14/client/tabcomplete.c delete mode 100644 dependencies/yaz_3.0.14/client/tabcomplete.h delete mode 100644 dependencies/yaz_3.0.14/doc/apilayer.png delete mode 100644 dependencies/yaz_3.0.14/doc/asn.external.html delete mode 100644 dependencies/yaz_3.0.14/doc/asn.html delete mode 100644 dependencies/yaz_3.0.14/doc/asn.oid.html delete mode 100644 dependencies/yaz_3.0.14/doc/asn.pdu.html delete mode 100644 dependencies/yaz_3.0.14/doc/asn.preparing.html delete mode 100644 dependencies/yaz_3.0.14/doc/asn.xml delete mode 100644 dependencies/yaz_3.0.14/doc/bookinfo.xml delete mode 100644 dependencies/yaz_3.0.14/doc/client.commands.html delete mode 100644 dependencies/yaz_3.0.14/doc/client.html delete mode 100644 dependencies/yaz_3.0.14/doc/client.invoking.html delete mode 100644 dependencies/yaz_3.0.14/doc/client.searching.html delete mode 100644 dependencies/yaz_3.0.14/doc/client.xml delete mode 100644 dependencies/yaz_3.0.14/doc/common/common.ent delete mode 100644 dependencies/yaz_3.0.14/doc/common/id.htmlhelp.xsl delete mode 100644 dependencies/yaz_3.0.14/doc/common/id.man.xsl delete mode 100644 dependencies/yaz_3.0.14/doc/common/id.png delete mode 100644 dependencies/yaz_3.0.14/doc/common/id.tkl.xsl delete mode 100644 dependencies/yaz_3.0.14/doc/common/ref2dbinc.xsl delete mode 100644 dependencies/yaz_3.0.14/doc/common/stripref.xsl delete mode 100644 dependencies/yaz_3.0.14/doc/common/style1.css delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.addresses.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.client.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.common.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.diagnostics.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.introduction.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.server.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.ssl.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.summary.html delete mode 100644 dependencies/yaz_3.0.14/doc/comstack.xml delete mode 100644 dependencies/yaz_3.0.14/doc/credits.html delete mode 100644 dependencies/yaz_3.0.14/doc/credits.xml delete mode 100644 dependencies/yaz_3.0.14/doc/entities.ent delete mode 100644 dependencies/yaz_3.0.14/doc/frontend.xml delete mode 100644 dependencies/yaz_3.0.14/doc/future.html delete mode 100644 dependencies/yaz_3.0.14/doc/future.xml delete mode 100644 dependencies/yaz_3.0.14/doc/gfs-options.xml delete mode 100644 dependencies/yaz_3.0.14/doc/gfs-synopsis.xml delete mode 100644 dependencies/yaz_3.0.14/doc/gfs-virtual.xml delete mode 100644 dependencies/yaz_3.0.14/doc/index.html delete mode 100644 dependencies/yaz_3.0.14/doc/indexdata.html delete mode 100644 dependencies/yaz_3.0.14/doc/indexdata.xml delete mode 100644 dependencies/yaz_3.0.14/doc/installation.html delete mode 100644 dependencies/yaz_3.0.14/doc/installation.unix.html delete mode 100644 dependencies/yaz_3.0.14/doc/installation.win32.html delete mode 100644 dependencies/yaz_3.0.14/doc/installation.xml delete mode 100644 dependencies/yaz_3.0.14/doc/introduction.api.html delete mode 100644 dependencies/yaz_3.0.14/doc/introduction.html delete mode 100644 dependencies/yaz_3.0.14/doc/introduction.xml delete mode 100644 dependencies/yaz_3.0.14/doc/license.html delete mode 100644 dependencies/yaz_3.0.14/doc/license.other.html delete mode 100644 dependencies/yaz_3.0.14/doc/license.xml delete mode 100644 dependencies/yaz_3.0.14/doc/list-oids.html delete mode 100644 dependencies/yaz_3.0.14/doc/marc.html delete mode 100644 dependencies/yaz_3.0.14/doc/odr.debugging.html delete mode 100644 dependencies/yaz_3.0.14/doc/odr.html delete mode 100644 dependencies/yaz_3.0.14/doc/odr.programming.html delete mode 100644 dependencies/yaz_3.0.14/doc/odr.use.html delete mode 100644 dependencies/yaz_3.0.14/doc/odr.xml delete mode 100644 dependencies/yaz_3.0.14/doc/server.backend.html delete mode 100644 dependencies/yaz_3.0.14/doc/server.backendfunctions.html delete mode 100644 dependencies/yaz_3.0.14/doc/server.frontend.html delete mode 100644 dependencies/yaz_3.0.14/doc/server.html delete mode 100644 dependencies/yaz_3.0.14/doc/server.invocation.html delete mode 100644 dependencies/yaz_3.0.14/doc/server.main.html delete mode 100644 dependencies/yaz_3.0.14/doc/server.vhosts.html delete mode 100644 dependencies/yaz_3.0.14/doc/soap.html delete mode 100644 dependencies/yaz_3.0.14/doc/soap.http.html delete mode 100644 dependencies/yaz_3.0.14/doc/soap.srw.html delete mode 100644 dependencies/yaz_3.0.14/doc/soap.xml delete mode 100644 dependencies/yaz_3.0.14/doc/soap.xml.html delete mode 100644 dependencies/yaz_3.0.14/doc/std-oid-table.xml delete mode 100644 dependencies/yaz_3.0.14/doc/tools.html delete mode 100644 dependencies/yaz_3.0.14/doc/tools.log.html delete mode 100644 dependencies/yaz_3.0.14/doc/tools.nmem.html delete mode 100644 dependencies/yaz_3.0.14/doc/tools.oid.html delete mode 100644 dependencies/yaz_3.0.14/doc/tools.retrieval.html delete mode 100644 dependencies/yaz_3.0.14/doc/tools.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-asncomp-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-client-commands.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-client-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-config-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-iconv-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-illclient-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-log-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-marcdump-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz-ztest-man.xml delete mode 100644 dependencies/yaz_3.0.14/doc/yaz.xml delete mode 100644 dependencies/yaz_3.0.14/doc/ziffy.html delete mode 100644 dependencies/yaz_3.0.14/doc/ziffy.using.html delete mode 100644 dependencies/yaz_3.0.14/doc/ziffy.xml delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.events.html delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.extendedservices.html delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.html delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.options.html delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.query.html delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.records.html delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.resultsets.html delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.scan.html delete mode 100644 dependencies/yaz_3.0.14/doc/zoom.xml delete mode 100644 dependencies/yaz_3.0.14/doc/zoomsh-man.xml delete mode 100644 dependencies/yaz_3.0.14/etc/MARC21slim2DC.xsl delete mode 100644 dependencies/yaz_3.0.14/etc/MARC21slim2MODS.xsl delete mode 100644 dependencies/yaz_3.0.14/etc/MARC21slim2RDFDC.xsl delete mode 100644 dependencies/yaz_3.0.14/etc/MARC21slimUtils.xsl delete mode 100644 dependencies/yaz_3.0.14/etc/maps.xml delete mode 100644 dependencies/yaz_3.0.14/etc/pqf.properties delete mode 100644 dependencies/yaz_3.0.14/etc/yazgfs.xml delete mode 100644 dependencies/yaz_3.0.14/include/yaz/backend.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/ccl.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/ccl_xml.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/charneg.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/comstack.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/copy_types.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/cql.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/diagbib1.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/diagsru_update.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/diagsrw.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/ill-core.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/ill.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/item-req.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/libxml2_error.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/log.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/logrpn.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/marcdisp.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/mutex.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/nmem.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/nmem_xml.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/oclc-ill-req-ext.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/odr.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/oid_db.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/oid_std.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/oid_util.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/options.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/otherinfo.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/pquery.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/proto.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/prt-ext.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/query-charset.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/querytowrbuf.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/readconf.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/record_conv.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/retrieval.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/snprintf.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/soap.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/sortspec.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/srw.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/statserv.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/tcpip.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/test.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/timing.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/tokenizer.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/tpath.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/unix.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/wrbuf.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/xmalloc.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/xmlquery.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/xmltypes.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/yaz-ccl.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/yaz-iconv.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/yaz-util.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/yaz-version.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/yconfig.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-accdes1.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-accform1.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-acckrb1.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-charneg.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-core.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-date.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-diag1.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-espec1.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-estask.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-exp.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-grs.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-mterm2.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-oclcui.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-opac.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-rrf1.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-rrf2.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-sum.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-sutrs.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-uifr1.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/z-univ.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-admin.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-expi.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-exps.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-order.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-pquery.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-psched.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-pset.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-update.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zes-update0.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zgdu.h delete mode 100644 dependencies/yaz_3.0.14/include/yaz/zoom.h delete mode 100644 dependencies/yaz_3.0.14/lib/yaz3.lib delete mode 100644 dependencies/yaz_3.0.14/src/atoin.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_any.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_bit.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_bool.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_int.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_len.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_null.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_oct.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_oid.c delete mode 100644 dependencies/yaz_3.0.14/src/ber_tag.c delete mode 100644 dependencies/yaz_3.0.14/src/bib1.csv delete mode 100644 dependencies/yaz_3.0.14/src/ccl_stop_words.c delete mode 100644 dependencies/yaz_3.0.14/src/cclerrms.c delete mode 100644 dependencies/yaz_3.0.14/src/cclfind.c delete mode 100644 dependencies/yaz_3.0.14/src/cclp.h delete mode 100644 dependencies/yaz_3.0.14/src/cclptree.c delete mode 100644 dependencies/yaz_3.0.14/src/cclqfile.c delete mode 100644 dependencies/yaz_3.0.14/src/cclqual.c delete mode 100644 dependencies/yaz_3.0.14/src/cclstr.c delete mode 100644 dependencies/yaz_3.0.14/src/ccltoken.c delete mode 100644 dependencies/yaz_3.0.14/src/cclxmlconfig.c delete mode 100644 dependencies/yaz_3.0.14/src/charconv.tcl delete mode 100644 dependencies/yaz_3.0.14/src/charneg-3.asn delete mode 100644 dependencies/yaz_3.0.14/src/charneg.c delete mode 100644 dependencies/yaz_3.0.14/src/codetables.xml delete mode 100644 dependencies/yaz_3.0.14/src/comstack.c delete mode 100644 dependencies/yaz_3.0.14/src/copy_types.c delete mode 100644 dependencies/yaz_3.0.14/src/cql.c delete mode 100644 dependencies/yaz_3.0.14/src/cql.y delete mode 100644 dependencies/yaz_3.0.14/src/cqlstdio.c delete mode 100644 dependencies/yaz_3.0.14/src/cqlstrer.c delete mode 100644 dependencies/yaz_3.0.14/src/cqlstring.c delete mode 100644 dependencies/yaz_3.0.14/src/cqltransform.c delete mode 100644 dependencies/yaz_3.0.14/src/cqlutil.c delete mode 100644 dependencies/yaz_3.0.14/src/csvtobib1.tcl delete mode 100644 dependencies/yaz_3.0.14/src/csvtodiag.tcl delete mode 100644 dependencies/yaz_3.0.14/src/csvtosru_update.tcl delete mode 100644 dependencies/yaz_3.0.14/src/csvtosrw.tcl delete mode 100644 dependencies/yaz_3.0.14/src/datetime.asn delete mode 100644 dependencies/yaz_3.0.14/src/diag-entry.c delete mode 100644 dependencies/yaz_3.0.14/src/diag-entry.h delete mode 100644 dependencies/yaz_3.0.14/src/diagbib1.c delete mode 100644 dependencies/yaz_3.0.14/src/diagsru_update.c delete mode 100644 dependencies/yaz_3.0.14/src/diagsrw.c delete mode 100644 dependencies/yaz_3.0.14/src/dumpber.c delete mode 100644 dependencies/yaz_3.0.14/src/elementset.c delete mode 100644 dependencies/yaz_3.0.14/src/esadmin.asn delete mode 100644 dependencies/yaz_3.0.14/src/esupdate.asn delete mode 100644 dependencies/yaz_3.0.14/src/eventl.c delete mode 100644 dependencies/yaz_3.0.14/src/eventl.h delete mode 100644 dependencies/yaz_3.0.14/src/grs1disp.c delete mode 100644 dependencies/yaz_3.0.14/src/http.c delete mode 100644 dependencies/yaz_3.0.14/src/ill-core.c delete mode 100644 dependencies/yaz_3.0.14/src/ill-get.c delete mode 100644 dependencies/yaz_3.0.14/src/ill.tcl delete mode 100644 dependencies/yaz_3.0.14/src/ill9702.asn delete mode 100644 dependencies/yaz_3.0.14/src/initopt.c delete mode 100644 dependencies/yaz_3.0.14/src/item-req.asn delete mode 100644 dependencies/yaz_3.0.14/src/item-req.c delete mode 100644 dependencies/yaz_3.0.14/src/libxml2_error.c delete mode 100644 dependencies/yaz_3.0.14/src/log.c delete mode 100644 dependencies/yaz_3.0.14/src/logrpn.c delete mode 100644 dependencies/yaz_3.0.14/src/marc8.c delete mode 100644 dependencies/yaz_3.0.14/src/marc8r.c delete mode 100644 dependencies/yaz_3.0.14/src/marc_read_iso2709.c delete mode 100644 dependencies/yaz_3.0.14/src/marc_read_line.c delete mode 100644 dependencies/yaz_3.0.14/src/marc_read_xml.c delete mode 100644 dependencies/yaz_3.0.14/src/marcdisp.c delete mode 100644 dependencies/yaz_3.0.14/src/matchstr.c delete mode 100644 dependencies/yaz_3.0.14/src/mime.c delete mode 100644 dependencies/yaz_3.0.14/src/mime.h delete mode 100644 dependencies/yaz_3.0.14/src/mterm2.asn delete mode 100644 dependencies/yaz_3.0.14/src/mutex.c delete mode 100644 dependencies/yaz_3.0.14/src/nmem.c delete mode 100644 dependencies/yaz_3.0.14/src/nmemsdup.c delete mode 100644 dependencies/yaz_3.0.14/src/oclc-ill-req-ext.asn delete mode 100644 dependencies/yaz_3.0.14/src/oclc-ill-req-ext.c delete mode 100644 dependencies/yaz_3.0.14/src/oclcui.asn delete mode 100644 dependencies/yaz_3.0.14/src/odr-priv.h delete mode 100644 dependencies/yaz_3.0.14/src/odr.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_any.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_bit.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_bool.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_choice.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_cons.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_enum.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_int.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_mem.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_null.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_oct.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_oid.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_seq.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_tag.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_use.c delete mode 100644 dependencies/yaz_3.0.14/src/odr_util.c delete mode 100644 dependencies/yaz_3.0.14/src/oid.csv delete mode 100644 dependencies/yaz_3.0.14/src/oid_db.c delete mode 100644 dependencies/yaz_3.0.14/src/oid_std.c delete mode 100644 dependencies/yaz_3.0.14/src/oid_util.c delete mode 100644 dependencies/yaz_3.0.14/src/oidtoc.tcl delete mode 100644 dependencies/yaz_3.0.14/src/opacdisp.c delete mode 100644 dependencies/yaz_3.0.14/src/options.c delete mode 100644 dependencies/yaz_3.0.14/src/otherinfo.c delete mode 100644 dependencies/yaz_3.0.14/src/pquery.c delete mode 100644 dependencies/yaz_3.0.14/src/prt-ext.c delete mode 100644 dependencies/yaz_3.0.14/src/query-charset.c delete mode 100644 dependencies/yaz_3.0.14/src/querytowrbuf.c delete mode 100644 dependencies/yaz_3.0.14/src/readconf.c delete mode 100644 dependencies/yaz_3.0.14/src/record_conv.c delete mode 100644 dependencies/yaz_3.0.14/src/requestq.c delete mode 100644 dependencies/yaz_3.0.14/src/retrieval.c delete mode 100644 dependencies/yaz_3.0.14/src/service.c delete mode 100644 dependencies/yaz_3.0.14/src/service.h delete mode 100644 dependencies/yaz_3.0.14/src/seshigh.c delete mode 100644 dependencies/yaz_3.0.14/src/session.h delete mode 100644 dependencies/yaz_3.0.14/src/siconv.c delete mode 100644 dependencies/yaz_3.0.14/src/snprintf.c delete mode 100644 dependencies/yaz_3.0.14/src/soap.c delete mode 100644 dependencies/yaz_3.0.14/src/sortspec.c delete mode 100644 dependencies/yaz_3.0.14/src/sru_update.csv delete mode 100644 dependencies/yaz_3.0.14/src/srw.c delete mode 100644 dependencies/yaz_3.0.14/src/srw.csv delete mode 100644 dependencies/yaz_3.0.14/src/srwutil.c delete mode 100644 dependencies/yaz_3.0.14/src/statserv.c delete mode 100644 dependencies/yaz_3.0.14/src/tcpdchk.c delete mode 100644 dependencies/yaz_3.0.14/src/tcpip.c delete mode 100644 dependencies/yaz_3.0.14/src/test.c delete mode 100644 dependencies/yaz_3.0.14/src/timing.c delete mode 100644 dependencies/yaz_3.0.14/src/tokenizer.c delete mode 100644 dependencies/yaz_3.0.14/src/tpath.c delete mode 100644 dependencies/yaz_3.0.14/src/univres.asn delete mode 100644 dependencies/yaz_3.0.14/src/unix.c delete mode 100644 dependencies/yaz_3.0.14/src/version.c delete mode 100644 dependencies/yaz_3.0.14/src/waislen.c delete mode 100644 dependencies/yaz_3.0.14/src/wrbuf.c delete mode 100644 dependencies/yaz_3.0.14/src/xcqlutil.c delete mode 100644 dependencies/yaz_3.0.14/src/xmalloc.c delete mode 100644 dependencies/yaz_3.0.14/src/xmlquery.c delete mode 100644 dependencies/yaz_3.0.14/src/yaz-ccl.c delete mode 100644 dependencies/yaz_3.0.14/src/z-accdes1.c delete mode 100644 dependencies/yaz_3.0.14/src/z-accform1.c delete mode 100644 dependencies/yaz_3.0.14/src/z-acckrb1.c delete mode 100644 dependencies/yaz_3.0.14/src/z-charneg.c delete mode 100644 dependencies/yaz_3.0.14/src/z-core.c delete mode 100644 dependencies/yaz_3.0.14/src/z-date.c delete mode 100644 dependencies/yaz_3.0.14/src/z-diag1.c delete mode 100644 dependencies/yaz_3.0.14/src/z-espec1.c delete mode 100644 dependencies/yaz_3.0.14/src/z-estask.c delete mode 100644 dependencies/yaz_3.0.14/src/z-exp.c delete mode 100644 dependencies/yaz_3.0.14/src/z-grs.c delete mode 100644 dependencies/yaz_3.0.14/src/z-mterm2.c delete mode 100644 dependencies/yaz_3.0.14/src/z-oclcui.c delete mode 100644 dependencies/yaz_3.0.14/src/z-opac.c delete mode 100644 dependencies/yaz_3.0.14/src/z-rrf1.c delete mode 100644 dependencies/yaz_3.0.14/src/z-rrf2.c delete mode 100644 dependencies/yaz_3.0.14/src/z-sum.c delete mode 100644 dependencies/yaz_3.0.14/src/z-sutrs.c delete mode 100644 dependencies/yaz_3.0.14/src/z-uifr1.c delete mode 100644 dependencies/yaz_3.0.14/src/z-univ.c delete mode 100644 dependencies/yaz_3.0.14/src/z.tcl delete mode 100644 dependencies/yaz_3.0.14/src/z3950v3.asn delete mode 100644 dependencies/yaz_3.0.14/src/zes-admin.c delete mode 100644 dependencies/yaz_3.0.14/src/zes-expi.c delete mode 100644 dependencies/yaz_3.0.14/src/zes-exps.c delete mode 100644 dependencies/yaz_3.0.14/src/zes-order.c delete mode 100644 dependencies/yaz_3.0.14/src/zes-pquery.c delete mode 100644 dependencies/yaz_3.0.14/src/zes-psched.c delete mode 100644 dependencies/yaz_3.0.14/src/zes-pset.c delete mode 100644 dependencies/yaz_3.0.14/src/zes-update.c delete mode 100644 dependencies/yaz_3.0.14/src/zes-update0.c delete mode 100644 dependencies/yaz_3.0.14/src/zgdu.c delete mode 100644 dependencies/yaz_3.0.14/src/zget.c delete mode 100644 dependencies/yaz_3.0.14/src/zoom-c.c delete mode 100644 dependencies/yaz_3.0.14/src/zoom-opt.c delete mode 100644 dependencies/yaz_3.0.14/src/zoom-p.h delete mode 100644 dependencies/yaz_3.0.14/src/zoom-socket.c delete mode 100644 dependencies/yaz_3.0.14/test/marc1.chr delete mode 100644 dependencies/yaz_3.0.14/test/marc1.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc1.xml delete mode 100644 dependencies/yaz_3.0.14/test/marc1.xml.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc2.chr delete mode 100644 dependencies/yaz_3.0.14/test/marc2.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc2.xml delete mode 100644 dependencies/yaz_3.0.14/test/marc2.xml.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc3.chr delete mode 100644 dependencies/yaz_3.0.14/test/marc3.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc3.xml delete mode 100644 dependencies/yaz_3.0.14/test/marc3.xml.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc4.chr delete mode 100644 dependencies/yaz_3.0.14/test/marc4.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc4.xml delete mode 100644 dependencies/yaz_3.0.14/test/marc4.xml.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc5.chr delete mode 100644 dependencies/yaz_3.0.14/test/marc5.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc5.xml delete mode 100644 dependencies/yaz_3.0.14/test/marc5.xml.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc6.chr delete mode 100644 dependencies/yaz_3.0.14/test/marc6.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc6.xml delete mode 100644 dependencies/yaz_3.0.14/test/marc6.xml.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc7.chr delete mode 100644 dependencies/yaz_3.0.14/test/marc7.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc7.xml delete mode 100644 dependencies/yaz_3.0.14/test/marc7.xml.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc8.chr delete mode 100644 dependencies/yaz_3.0.14/test/marc8.marc delete mode 100644 dependencies/yaz_3.0.14/test/marc8.xml delete mode 100644 dependencies/yaz_3.0.14/test/marc8.xml.marc delete mode 100644 dependencies/yaz_3.0.14/test/marccol1.u8.1.lst delete mode 100644 dependencies/yaz_3.0.14/test/marccol1.u8.2.lst delete mode 100644 dependencies/yaz_3.0.14/test/marccol1.u8.marc delete mode 100644 dependencies/yaz_3.0.14/test/marccol2.u8.1.lst delete mode 100644 dependencies/yaz_3.0.14/test/marccol2.u8.2.lst delete mode 100644 dependencies/yaz_3.0.14/test/marccol2.u8.marc delete mode 100644 dependencies/yaz_3.0.14/test/tst_comstack.c delete mode 100644 dependencies/yaz_3.0.14/test/tst_filepath.c delete mode 100644 dependencies/yaz_3.0.14/test/tst_oid.c delete mode 100644 dependencies/yaz_3.0.14/test/tst_query_charset.c delete mode 100644 dependencies/yaz_3.0.14/test/tst_record_conv.c delete mode 100644 dependencies/yaz_3.0.14/test/tst_retrieval.c delete mode 100644 dependencies/yaz_3.0.14/test/tst_timing.c delete mode 100644 dependencies/yaz_3.0.14/test/tst_tpath.c delete mode 100644 dependencies/yaz_3.0.14/test/tstccl.c delete mode 100644 dependencies/yaz_3.0.14/test/tstcql.sh delete mode 100644 dependencies/yaz_3.0.14/test/tsticonv.c delete mode 100644 dependencies/yaz_3.0.14/test/tstlog.c delete mode 100644 dependencies/yaz_3.0.14/test/tstlogthread.c delete mode 100644 dependencies/yaz_3.0.14/test/tstmarccol.sh delete mode 100644 dependencies/yaz_3.0.14/test/tstmarciso.sh delete mode 100644 dependencies/yaz_3.0.14/test/tstmarcxml.sh delete mode 100644 dependencies/yaz_3.0.14/test/tstmatchstr.c delete mode 100644 dependencies/yaz_3.0.14/test/tstnmem.c delete mode 100644 dependencies/yaz_3.0.14/test/tstodr.asn delete mode 100644 dependencies/yaz_3.0.14/test/tstodr.c delete mode 100644 dependencies/yaz_3.0.14/test/tstodrcodec.c delete mode 100644 dependencies/yaz_3.0.14/test/tstodrcodec.h delete mode 100644 dependencies/yaz_3.0.14/test/tstodrstack.c delete mode 100644 dependencies/yaz_3.0.14/test/tstpquery.c delete mode 100644 dependencies/yaz_3.0.14/test/tstsoap1.c delete mode 100644 dependencies/yaz_3.0.14/test/tstsoap2.c delete mode 100644 dependencies/yaz_3.0.14/test/tstwrbuf.c delete mode 100644 dependencies/yaz_3.0.14/test/tstxmlquery.c delete mode 100644 dependencies/yaz_3.0.14/uninst.exe delete mode 100644 dependencies/yaz_3.0.14/util/benchmark.c delete mode 100644 dependencies/yaz_3.0.14/util/cclsh.c delete mode 100644 dependencies/yaz_3.0.14/util/cql2pqf.c delete mode 100644 dependencies/yaz_3.0.14/util/cql2xcql.c delete mode 100644 dependencies/yaz_3.0.14/util/marcdump.c delete mode 100644 dependencies/yaz_3.0.14/util/srwtst.c delete mode 100644 dependencies/yaz_3.0.14/util/yaz-asncomp delete mode 100644 dependencies/yaz_3.0.14/util/yaz-illclient.c delete mode 100644 dependencies/yaz_3.0.14/util/yaz-xmlquery.c delete mode 100644 dependencies/yaz_3.0.14/util/yaziconv.c delete mode 100644 dependencies/yaz_3.0.14/win/makefile delete mode 100644 dependencies/yaz_3.0.14/win/yaz.nsi delete mode 100644 dependencies/yaz_3.0.14/win/yaz.rc delete mode 100644 dependencies/yaz_3.0.14/ziffy/apdu.c delete mode 100644 dependencies/yaz_3.0.14/ziffy/apdu.h delete mode 100644 dependencies/yaz_3.0.14/ziffy/fmemdmp.c delete mode 100644 dependencies/yaz_3.0.14/ziffy/hooks.c delete mode 100644 dependencies/yaz_3.0.14/ziffy/yaz.c delete mode 100644 dependencies/yaz_3.0.14/ziffy/ziffy.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoom-benchmark.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoom-bug-641.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoom-ka.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomsh.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst1.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst10.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst11.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst2.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst3.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst4.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst5.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst6.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst7.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst8.c delete mode 100644 dependencies/yaz_3.0.14/zoom/zoomtst9.c delete mode 100644 dependencies/yaz_3.0.14/ztest/dummy-grs delete mode 100644 dependencies/yaz_3.0.14/ztest/dummy-records delete mode 100644 dependencies/yaz_3.0.14/ztest/dummy-words delete mode 100644 dependencies/yaz_3.0.14/ztest/read-grs.c delete mode 100644 dependencies/yaz_3.0.14/ztest/read-marc.c delete mode 100644 dependencies/yaz_3.0.14/ztest/ztest.c diff --git a/dependencies/yaz_3.0.14/LICENSE.txt b/dependencies/yaz_3.0.14/LICENSE.txt deleted file mode 100644 index f3723a3..0000000 --- a/dependencies/yaz_3.0.14/LICENSE.txt +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 1995-2007, Index Data. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - * Neither the name of Index Data nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/dependencies/yaz_3.0.14/NEWS b/dependencies/yaz_3.0.14/NEWS deleted file mode 100644 index 295d7f9..0000000 --- a/dependencies/yaz_3.0.14/NEWS +++ /dev/null @@ -1,2272 +0,0 @@ ---- 3.0.14 2007/09/21 - -Fixed bad memory reference in ZOOM_record - cuased by member not being -initialized. This was a problem only in YAZ 3.0.12. - -Fixed bug in conversion from MARC to XML: Non-XML characters in control -fields were not removed. - -Changed the way C code is generated from codetables.xml. Made a MARC-8 -conversion trie for each characterSet section rather than codeTable. -This is ensure the code can deal with G0/G1 sequences. Use of a newer version -of codetables.xml from Larry Dixson, LOC. Bug #1464. - ---- 3.0.12 2007/09/12 - -ZOOM C now handles SRU surrogate diagnostics (i.e. errors returned -from ZOOM_record_error). - -ZOOM C function ZOOM_record_get returns record schema for type="schema". - -Implemented HTTP Basic authentication to SRU/GET, SRU/POST and SRW requests. - -Added new ZOOM C connection option 'sru_option' which specifies SRU version. - -Better SRW-to-Bib-1 diagnostic mapping. - -ZOOM C and yaz-client announces SRU version 1.2 by default. - -yaz-client 'sru' command may specifiy both SRU version and transport (SOAP, -GET or POST). - -Fixed in yaz_sru_decode to allow other version than 1.1. - ---- 3.0.10 2007/08/22 - -Added support for SRU scan for ZOOM. - -Added support for the use of the older versions or Extended Service -Update in ZOOM. To faciliate this, an option "updateVersion" may be -set to the version , 1=first, 2=second, 3=third. The third version is -what ZOOM C has used so far. And that, obviously, is the default. - -Added support for CCL queries in Z39.50 queries sent to the GFS (and -therefore in Zebra and in SimpleServer-based applications). The new - element in a GFS configuration file, if present, names a CCL -qualifier file used to transform incoming CCL queries into Type-1 RPN, -which is passed into the back-end search callback function. - -Added support for HTTP Basic authentication in clients: the SRU/W -codec encodes the username/password elements of the PDU structure -appropriately, and these may be set using the "user" and "password" -options in ZOOM-C applications (the same options that are used for -Z39.50 authentication). - ---- 3.0.8 2007/06/25 - -Fixed bug #1208: SSL appears to be broken in ZOOM. - -Fixed bug #1206: Libxml2 include path weirdness. - -Added oid_name_to_dotstring. - -Allow elementSetName to be specified for ZOOM C record update. - -Allow waitAction to be specified for ZOOM C based for Extended Services. - -Fixed NULL ptr reference bug in yaz-ztest - caused by omitted record -syntax OID. Bug introduced in YAZ 3 series. - -Updated WIN32 build to include Libxml2 2.6.28 / Libxslt 1.1.19. - ---- 3.0.6 2007/06/06 - -Fixed bug #1157: yaz-client does not read .yazclientrc from current -directory. yaz-client now reads commands from file given by option -f -if specified; then tries to read .yazclientrc in current directory. -Failing that, it reads .yazclientrc from user's home directory. - -Added support for correlationInfo Note and ID for Record Update via -ZOOM C. - -Added yaz-client command querycharset which specifies character set for -query terms for Z39.50 RPN queries and Z39.50 Scan Requests -(termListAndStartPoint). - -Charset ISO5428:1984 is an alias for ISO5428-1984. - -Implemented a way to perform scan in a result set using Z39.50. This -is achieved by attaching the result set name in the characterInfo -(type InternationalString) of OtherInformation in the Scan Request PDU. -The result set is identified in the otherinformation by the new OID: - USERINFO, Z3950_PREFIX.10.1000.81.4, "Scan-Set -This allows for scan in result set and faceted search . Zebra did some -of this in the APT term using attribute type 8 and value being result -set. Using the OtherInformation approach for this is cleaner and easier -to work with in proxies and the like. This facility can be used in -yaz-client using new command setscan which takes a result set as first -argument, start position (APT) as second. - -Changed decoding of SRU XML packed records to deal with servers that -have recordData with XML data with multiple root nodes. Also make -comparison for recordPacking case insensitive. Again, one server -returns "XML" where others return "xml". - -For SRU responses allow Content-Type application/xml as well as text/xml. - ---- 3.0.4 2007/05/21 - -Fixed bug in character set conversion of BER strings. Bug introduced -in 3.0.0. - ---- 3.0.2 2007/05/08 - -For OIDs use Odr_oid type everywhere, i.e. do not assume Odr_oid=int. - -For OID class, use oid_class consistently. - -Fixed external handling for SUTRS and Explain records (bug appeared in 3.0 -series). - -Added partial support for ISO5428-1984, which is the "Greek alphabet coded -character set for bibliographic information interchange". By Giannis Kosmas. - -Added documentation on new OID API. - ---- 3.0.0 2007/05/02 - -Changes to generic frontend server interface: added new member -'query_charset' for bend_initrequest structure. A backend init handler -should set this member to its native character set for query terms. -When defined, the frontend server logic will announce this character set -to a client if the negotiationModel bit is set by the client. All server -implementors are encouraged to specify this. If a backend server does not -specify this a warning is issued using yaz_log(YLOG_WARN,..). - -Added CCL utility to remove terms (stop words) from resulting RPN -tree. This is handled by functions with prefix ccl_stop_words_ . - -New ZOOM C option, "rpnCharset", which allows client-side conversion of -terms in RPN queries. - -Clean-up the CCL API. Moved some internal structures from ccl.h to -private header cclp.h. Changed ccl_parser_create so that a Bibset must -be supplied. Removed tokenize API from ccl.h - including ccl_parser_find. -This is replaced by ccl_parser_find_str which takes a string instead. - -Split YAZ library into two libs : libyaz.la and libyaz_server.la. -libyaz.la is the core of YAZ except the generic frontend server and -does not depend on POSIX threads anymore. libyaz_server.la is the -generic frontend server facilities and uses POSIX thread functionality -if available. The libyaz.la no longer depends on POSIX threads because -the number of global structures is limited. NMEM no longer re-uses blocks -between threads ; it simply free's memory immediately but allocates in -"large" chunks as usual. We don't expect any performance penalties -because of this. The yaz_log system is still using a global log_level so -caution must be taken when modifying it with yaz_log_init_.. + -yaz_log_mask_str. This, however, should not cause any trouble because -these functions are called during initialization of application code -anyway. `yaz-config --libs server` returns libs for server applications; -`yaz-config --libs` returns libs for non-server applications. - -New OID database - with public definitions in oid_db.h. Removed old OID -database including the head oid.h and definitions such as enum oid_value -and struct oident. The new OID database uses the same string names as -before but the 'protocol' is gone. There are now only two representations -raw OID (int *) and string. Functions with prefix yaz_string_to_oid -converts from string to OID; functions with prefix yaz_oid_to_string -converts the other way. - -Change to emit_term() in CQL-to-PQF query translation: when a term has -the /regexp relation modifier, do not process it for leading and -trailing "^" and "*", which have quite different meanings in regular -expressions. - -Attempted fix of bug #976: Segfault in yaz_iconv. The yaz_iconv function -write handlers no longer carries a 'last' parameter. This will make -yaz_iconv flush "less" characters. A flush is performed by call to -yaz_iconv(cd, 0, 0, &outbut, &outbytesleft) . - -Definition of wrbuf_diags moved to querytowrbuf.h. Function wrbuf_put_zquery -removed, because function yaz_query_to_wrbuf does the same. - -API changes to WRBUF. wrbuf_free removed; replaced by wrbuf_destroy. And -wrbuf_puts no longer appends '\0'. Use wrbuf_cstr to get C-string out. - -Deprecated MARC utility functions removed. - -Changed prototype of yaz_marc_decode_buf: const char for result and size_t -for rsize. - -Branch split: YAZ_2_1_55_branch - ---- 2.1.54 2007/03/16 - -Fix to ZOOM-C so that transparent reconnection is properly handled on -connections that are in asynchronous mode. - -Fixed compilation on OpenBSD 4.0. - -Large strings in GRS-1 records are now properly displayed in yaz-client. - -Added character conversion support for "advancegreek"; based on patch from -Giannis Kosmas. - -Fixed yaz_iconv to return YAZ_ICONV_EINVAL if an incomplete MARC-8 combo -sequence is met. Before the error was not set so it would be unknown. - -Adjust yaz-marcdump MARC reader so that it skips until record separator -is read - ---- 2.1.52 2007/03/07 - -ZOOM-C: Removed hardcoded limit of 1024 sockets in ZOOM_event_sys_poll(). -Note that ZOOM_event_sys_select() still has the limit due to the fixed-size -fd_set structure used as a bitmask for the FDs to be selected on. - -Using ACX_PTHREAD macro to check for POSIX threads. - -Fixed have-vsnprintf check. - ---- 2.1.50 2007/02/23 - -Fixes for configure on BSD. Bug #900. - -Added snprintf/vsnprintf wrappers for systems that don't have -limits (heavens forbid). - -Fixed bug in ZOOM-C's event and task handling. If a ZOOM task was -created before all previous tasks were completed and removed from the -task queue, the new task could be removed by a mistake. - -Fixed bug #615: Document retrievalInfo facilities for Frontend Server. - -Implemented pass-through CQL-to-PQF conversions. Bug #861. - -Fixed bug #832: Problem with MARC/charset in yaz-client. - -Fixed bug #668: save command line history for yaz-client. - -Fixed bug #830: pkg-config support. - ---- 2.1.48 2007/01/23 - -Extended ZOOM result set options with two options that may be read by -a client: resultSetStatus and presentStatus with values as specified for -the ASN.1. See: -http://www.loc.gov/z3950/agency/markup/04.html#Search-status - -Fixed bug #827: Using SSL fails on Debian etch. - -Fixed bug #826: Weird looking chars for set of MARC records. - -Implemented alternative Item Order package for ZOOM. If option "doc" is set, -that is treated as an ItemOrder with itemRequest being an XML document -external. The value of "doc" is the content. - -Extended the GFS search facility. New member of bend_search_rr -'estimated_hit_count' signals that hits is known to be an estmate -(higher or lower than real hit count). New member 'partial_resultset' -signals that the search was partial (hit count is lower or equal than -real hit count). For Z39.50, the information is stored in resultSetStatus -member of SearchResponse APDU. For SRU, the information is signalled -via SRU diagnostic 59: "Result set created with valid partial results -available". - -Switched from jade/pdfjdaetex to dblatex for Docbook documentation in PDF. - ---- 2.1.46 2007/01/13 - -Implemented bug #806: Deal with HTTP clients sending LF in HTTP headers. - -Added ZOOM_connection_peek_event. - -Implemented Generic select hook for ZOOM (bug #803). This is achieved with -the following new functions: - ZOOM_event_nonblock, ZOOM_connection_process, - ZOOM_connection_get_{socket,mask,timeout}, - ZOOM_connection_fire_event_{timeout,socket}. -The existing blocking event handler, ZOOM_event, is a wrapper for the -+ blocking ZOOM_event_sys_{poll,select}. - -Implemented function ccl_xml_config which parses XML version of CCL -configuration (bug #798). - -Fixed bug #797: yaz_marc_write_xml does not honor character conversion. - -Added timings utility (yaz/timing.h) - ---- 2.1.44 2007/01/03 - -Added yaz_marc_write_xml which creates MARCXML/MarcXchange record as -Libxml2 tree. - -Fixed bug #779: Rotation of apdu.log fails. - -Fixed for character set conversions: - Unicode to MARC-8 conversion for certain less preferred UTF-8 sequences. - Honor G1 set in MARC-8 decoding. - ---- 2.1.42 2006/12/17 - -Fixed bug #775: char conversion does not handle Alternative UTF-8 -sequences. - -Implemented function yaz_marc_read_line which parses MARC line format -records. There is a wealth of formats out there. So far, this function -reads line records produced by yaz_marc_write_line. - -yaz-marcdump's options -x, -X, -I, -e have been replaced with the -more generic and easier to remember(!) options: -i format and -o format -which specifies input format and output format respectively - where -format is one of "marc", "marcxml", "line", "marcxchange". - -Added 'check only' option for MARC utilities. Option -n for yaz-marcdump -does not print anything except warnings for records. - -For yaz-marcdump, added support for MARC split into files (-s) with a given -chunk size (-C). - -Changed the SRU update structures and codecs to reflect the SRU pre 1.0 -spec, at http://www.loc.gov/standards/sru/record-update/ -This has changed the binary layout of the following structs: -Z_SRW_extra_record, Z_SRW_updateRequest, Z_SRW_updateResponse and -bend_update_rr . Patch by Ko van der Sloot. - -Added GFS utility function bend_assoc_is_alive which returns 1 if -association is still alive (client is connected); 0 otherwise (client -closed connection). This allows busy servers to stop working for -impatient clients. - -Added ziffy: the promiscuous Z39.50 APDU sniffer. until now, ziffy has -been a separate piece of software. This version of ziffy has been modified -to fit with YAZ. ziffy is copyright Rocco Carbone and covered by GPL v2. - -Fixed bug #740: Handle SRU records referring to xmlns's outside recordData. - -Fixed bug #722: Allow Z39.50 Init Options to be specified / retrieved. -Client code may now interrogate options such as "init_opt_sort" to -find out whether the server claims to support various options. - ---- 2.1.40 2006/11/27 - -Added utilities yaz_{set,get}_esn to set/get element set name from -record composition. - -Removed the build of libyazthread.la. The libyaz.so is the threaded version -of YAZ and has been so since YAZ 2.1.10. - -Implemented ZOOM_record_error which returns error information for -record (surrogate diagnostic). - ---- 2.1.38 2006/10/31 - -Updates for SRU Update by Ko van der Sloot: -1. Changed name from "operation" to "action" -2. Fixed that that "recordIdentifier" was called "recordId". Kept the old -versions in the code, marked as 'backward compatible'. -3. Added diagnostics for SRU Update. - -Fixed bug #709: Records are fetched in wrong format when tasks are queued. - -Fixed bug #707: CQL->RPN ignores lines with leading spaces. - -Fixed bug #706: XML hex encoding UTF-8 chars out of range 0-255. - -For GFS, fixed problem with SRU diagnostic 'First record position out of -range' being issued for 0 hits. - -zoomtst10 part of Windows Build. - ---- 2.1.36 2006/10/13 - -Implemented yaz_filepath_comp which splits a path into file path -components (required by Zebra 2.0.3+). - -Change wording of YAZ license to the 'Revised BSD License'. YAZ has used a -BSD inspired license until now so this should not have any real impact on -anybody. See http://www.opensource.org/licenses/bsd-license.php - -Fixed bug #687: Missing log lines. - -Fixed bug #678: CQL to PQF translation does not preserve double-quote -escaping. - -Fixed bug #689: SRU diagnostics to be added. - -Implemented new ZOOM function, ZOOM_connection_is_idle, which checks -whether a connection is idle (no more work do do). - ---- 2.1.34 2006/10/04 - -Change type of optval from long to int for invocation of setsockopt with -the SO_REUSEADDR option. Thanks to Ateeq A. Altaf, Talis. - -Added support for specifying the max log file size for the Generic -Frontend Server. The size is given with option -r. - ---- 2.1.32 2006/09/21 - -Fix problem introduced in YAZ 2.1.28 WRT unix sockets in the ZOOM code. - ---- 2.1.30 2006/09/17 - -Fixes for getaddrinfo use, Bugs #655 + #660. These bugs were introduced -in YAZ 2.1.28. - -Fixed bug in Generic Frontend Server that could cause a server to stop -accepting new connections. Bug only seen on dual CPU Windows 2003 server. - -For the generic frontend server, the maximum record size is used as maximum -size of incoming packages (SRU + Z39.50). The value until was previously -only used in Z39.50 Init negotiation and, later, in a session controlled -sizes of records returned. This is controlled using -k option. It can be -specified, per server, with element maximumrecordsize in YAZ' GFS XML config. - ---- 2.1.28 2006/09/04 - -TCP/IP comstack uses getaddrinfo now to resolve names. It should be IPV6 -friendly now. - -Fixed bug #644: Using Non Reentrant gethostbyname causes SIGSEGV. - -New option for yaz-marcdump -lpos=value which allows setting a portion -of MARC header to a certain value. - -Fixes for MARC generation when encoded as MARC-8 (bug 642, 643). - -ZOOM-C reads option extraArgs. If set the value of extraArgs is appended to -SRU URI (POST/GET). Value must be URL encoded, such as x-id-a=v1&x-id-b=v2 . - ---- 2.1.26 2006/08/15 - -Fixed problem with SRU mode type (soap, get, post) for yaz-client -and ZOOM-C. - -Fixed problem another problem with ZOOM_EVENT_RECV_RECORD . Bug #626. - ---- 2.1.24 2006/08/08 - -Fixed MARC ISO2709 encoding routines to deal with character set -conversion. - -Minor changes to GFS logging. Database included in search request log -line. - -Fixes for ZOOM-C: event ZOOM_EVENT_RECV_RECORD was not generated for -cached/multiple records. - -Shared libraries are built by default on Unix+configure. - -Changed cql2pqf transformation to use a different evaluation order. The -new order is: always, relation, structure, position, truncation, index -and relationModifier. Old order was: always, relation, relationModifier, -structure, index, position, truncation. Note that the the latter ones -override former ones for identical attributes.. The new scheme means that -it is possible to override any existing attribute with a relationModifier. -And also that it is possible to override everything for the index rule -(except the ones listed in relationModifier). No order is perfect but this -one, we believe, covers more real cases.. The "always" should have been -called "default", since the attributes there can be overridden with all -the rest. - -For Libxml2 and friends, YAZ defines YAZ_HAVE_{XML2,XSLT,EXSLT) in the -compilation phase, but also for yaz-config --cflags output. This allows -us to have public headers with Libxml2 stuff in them . It should also, -eventually, make Libxml2 checks redundant in packages using YAZ, such -as yazproxy. - ---- 2.1.22 2006/06/15 - -Changed SRU update structure bend_update_rr so that SRU diagnostics are -stored in uri, message and details.. Previously diagnostics were stored -in errcode, errstring. Patch by Ko van der Sloot. Breaks binary -compatibility.. but he's probably the only one affected, so. - -Added support for CCL, compiled on the client side, in ZOOM-C. This -is invoked using ZOOM_query_ccl2rpn() with the CCL configuration as -input; the resulting query objects can be used for for searching with -ZOOM_connection_search() and scanning with ZOOM_connection_scan1(). - -YAZ' configure searches for OpenSSL by default. - -SSL comstack uses SL_CTX_use_certificate_chain_file rather than -SL_CTX_use_certificate_file. See -http://lists.indexdata.dk/pipermail/yazlist/2006-June/001615.html -for more info. Thanks to Ko van der Sloot. - ---- 2.1.20 2006/06/02 - -Bug #600: SRU GET, POST support for yaz-client. Introduced -command 'sru' which selects method SOAP/GET/POST. - -Allow missingValueAction to be specified for the sortspec string - -function yaz_sort_spec. By default, the missing value action is null. -Use ! to specify "abort". Use = followed by stringvalue to specify default -value. - -Ensured that Present-handler (if defined) is called in GFS before any call to -fetch-hhndler. This now includes piggy-backed presents as well as SRW/U -searchRetrieve requests. - -Documentation for YAZ is now based on the Docbook XML/XSLT using -xsltproc + N Walsh's stylesheets. It means that the CVS version of YAZ -is no longer depending on jade/openjade or docbook-to-man scripts. -PDF is no longer part of the distribution - but can optionally be -made using DSSSL/jadetex or FOP. - -Added retrieval handling support in Generic Frontend Server to support -conversion between MARC/XML as well as XSLTtransforms. See -etc/yazgfs.xml for an example. - -Added Authentication support to Generic Frontend Server in SRU -mode. Authentication using HTTP Basic is supported, as is the use -of 'x-username' and 'x-password' parameters in the request itself. - -Added support for a new character set MARC8s identical to MARC8 except -that it converts combined characters to single Unicode characters in the -Latin-1 range (when possible). - ---- 2.1.18 2006/04/24 - -ASN.1 compiler 0.4: generates brief Doxygen file header for -generated .h/.c files. - -Utility yaz_iconv now supports conversion to MARC-8. - -New facilities for the MARC module. The reading - and writing of -content are separate methods for the yaz_marc_t handle. The following -read functions are available: yaz_marc_read_iso2709 (Reads MARC in -ISO2709 format), yaz_marc_read_xml (reads MARC in MARCXML/MarcXchange -format). Write functions have prefix yaz_marc_write_.. The existing -utilities yaz_marc_decode_wrbuf and yaz_marc_decode_buf are still -available. Removed support for OAI-MARC and simplexml (not the -simplexml from PHP5). - -Added a new ZOOM event type ZOOM_EVENT_END which signals no more events -to be returned for this connection. - ---- 2.1.16 2006/03/31 - -Allow multiple languages and charsets to be specified with -yaz-client. Each item must be separated by comma (NO BLANKS). E.g. - negcharset iso-8859-1,utf-8 - -Translation of proximity nodes from CQL into PQF now works. - -Moved to automake 1.8, 1.9. - -Added function yaz_log_set_handler which allows a log handler to be -installed. This handler will be called for all log messages. Output -to file is also produced; but that can be disabled by passing NULL -fname to yaz_log_init_file. - -Fixed another problem with MARC-8 -> ISO-8859-1 conversions. Bug #537. - -For SRW (including GFS), accept application/soap+xml as content-type -for SOAP msg. - -For GFS in SRU mode, an empty stylesheet in SRU URL (&stylesheet=&) -produces NO stylesheet reference even if a default stylesheet is specified -in GFS XML config. - ---- 2.1.14 2006/03/14 - -Updated Windows package to include yazd.dll + yazd.lib for the -Development component. - -If the environment variable YAZ_LOG is set, then it is used as a -string indicating the default level of logging to use if not -overridden by calls to yaz_log_init() or yaz_log_init_level(). If -it's not defined, then the manifest constant YLOG_DEFAULT_LEVEL is -used as before. So, for example, to omit warnings from YAZ logging, - export YAZ_LOG=-warn - -cql_transform() now map structure and other attributes before indexes, -so that index-specific structures and other attributes can override -defaults. So now a combination of mapping specifications such as: - structure.* = 4=1 - index.dc.date = 1=date-modified 4=5 -does the right thing. - -cql_transform() now also respects the "always" mapping specification, -which establishes an initial set of attributes to be used for all -terms except where overridden by more specific attributes associated -with the index, relation or modifier. - -Added SRU-GET and SRU-POST support for ZOOM C. Option "sru" specifies -which mode to use; one of "post", "get" or "soap" (SRW, default). - -Fixes for yaz_iconv routines: changed trie-based character set conversions -to use only non-negative values for bit fields due to Sun's C compiler not -supporting negative values. - -Fixed bug in character set conversion yaz_iconv. Some three byte UTF-8 -sequences where not read correctly. Fix by Rustam Usmanov. - -Updated win/makefile to use options, settings which makes things -compile with VS C 2005. - ---- 2.1.12 2006/02/01 - -Fixed bug in yaz_oi_update which used incorrect value for categoryValue. - -In ZOOM socket code, use select instead of poll on MacOSX. - -ZOOM-C now support client-side compilation of CQL into RPN that is -sent to the server, enabling CQL to be used against all Z39.50 -servers. Use ZOOM_query_cql2rpn() to set the compiled CQL into a -ZOOM_query object, and submit it using ZOOM_connection_search(). -The CQL-to-RPN translation uses a configuration file, the name of -which must be specified in the Connection's "cqlfile" option. - -ZOOM-C also support CQL scanning, via the new ZOOM_connection_scan1() -function, which takes as its start-term parameter a ZOOM_query object -(which may have had either CQL or RPN set into it). - - ---- 2.1.10 2005/11/29 - -Added ZiNG Update Support. New codecs are defined in srw.h. Extended the -GFS to support this as well. Backend handler, bend_srw_update, does the -update work. Code contributed by Ko van der Sloot. - -Allow retrieval of Search Result-1 information in ZOOM by the use of -options that are attached to a result set. ZOOM documentation updated -accordingly. - -Fixed bug #416: First/second comb characters not handled in the MARC-8 to -UTF-8 conversion. Patch by Raj Patel. - -Added option -m to GFS to control formatting of timestamps in log file. - -Added 'exit' as synonym for 'quit' in yaz-client - -Added support for specifying SRW resultSetId + resultSetIdleTime in a -Generic Frontend Server's search handler. Refer to include/yaz/backend.h -for the new members. Patch by Ko van der Sloot. - -Added support for SRU POST. It is supported for content-type -application/x-www-form-urlencoded only. Patch by Ko van der Sloot. - -Do not build the separate Multi-threaded (MT) library libyazthread.la. -Instead make the library libyaz.la multi-threaded. Threading as a whole -can still be disabled by configure option --disable-threads. Previosly, -with older GLIBCs there were problems with MT libs under Apache. This -has now been fixed a long time ago. - -Fixed bugs in yaz_log that occurred on Sparc Solaris in Multi-threaded -applications. - -CQL module modified to be case insensitive for relations/indexes/operations. - -Fixed bug in CQL transform code: incorrect value relationModifieder -was used. - -Added 'show all' command for yaz-client which retrieves all results -for last search. - -Added new yaz-client, xmles, which takes a (private) OID and -a document to be sent as an extended service request. - -Describe new yaz-client commands wait_response and set_auto_wait. - -Increase TCP/IP listener backlog from 3 (which I am guessing was -copied from the SunOS manual entry way back when) so SOMAXCONN, so -that the socket will queue as many incoming connections as it's able -to handle ongoing connections. In other words, it will never now -refuse a connection that it would be able to handle merely because -it's not got around to accepting() enough of the pending connections -yet. This is the behaviour anyway under Linux, where the listen() -argument is ignored; but not under BSD and on systems such as -MS-Windows that use BSD-derived TCP/IP stacks. The behaviour of -YAZ-based servers should now be uniform across operating systems in -this respect. - -yaz-marcdump uses 64-bit file access on some systems. This is enabled -on Linux and other Unix variants where _FILE_OFSET_BITS=64 is supported. -This allows yaz-marcdump to read large MARC batches (>2 GB). - -Modified all YAZ source files - except the source which is auto-generated -by tools - to use spaces rather than TABS. Emacs/VIM trailer added to -all source files. - -Add ZOOM_connection_option_getl() and ZOOM_options_getl(), -corresponding to the existing *_setl() function. These allow option -values containing arbitrary valuues. - -Add ZOOM_resultset_sort1(), which should ALWAYS be used in place of -ZOOM_resultset_sort() in new applications. Its behaviour is identical -except that it returns an indicator of whether or not the sort -criterion was accepted (0 for OK, -1 for invalid). - ---- 2.1.8 2005/06/07 - -Fixed bug in yaz_marc_decode_buf. By mistake the routine appended -MARC output rather than returning "new" buffer. - -yaz-client warns about unknown init options. - -Fixed bug #371: "options concurrentOperations ignores concurrentOperations" - ---- 2.1.6 2005/05/24 - -Added support for SRW sort in Generic Frontend Server. Patch -by Ko van der Sloot. Member srw_sortKeys in bend_search_rr holds -sortKeys - or NULL if none is provided. - -Fixed bug #307: It was impossible to specify indefinite/no timeout -for ZOOM_event. Special timeout value -1 now means indefinite timeout -(i.e. no timeout). - -Added support for multiple languages and charsets to be specified in -ZOOM. Each charset/language is separated by a blank. If negotiation is -in effect in init-response, Option -"negotiation-charset-in-effect-for-records" set to 1(true) or 0(false). -Code based on patch by Vasiliy Osadchuk. - -Fixed bug #306: infinite recursion that occurred when calling -yaz_log_level_init as the first call (before other log level or -nmem_init calls) - -Fixed bug in scan handling in front end server: if preferred-Position-In- -Response was non-present, a NULL pointer referece was performed. - ---- 2.1.4 2005/04/26 - -Changed include/yaz/diagbib1.h and added include/yaz/diagsrw.h with -diagnostic messages+codes for Bib-1 and SRW. Preprocessor defines are -now defined for all those error codes. So instead of putting 109 in -your program you'd use YAZ_BIB1_DATABASE_UNAVAILABLE. The messages -are generated from a .csv - file. See src/bib1.csv and srw/srw.csv. - -Modified the yaz-marcdump utility to skip garbage bytes between MARC -records in a file. - -Fixed bug - uninitialized memory - due to bad code for fix of bug #272. - -Program yaz-client now exits and produces an error message if multiple -Z39.50 servers are specified on the command line (none or one allowed -only). - -Program yaz-marcdump skips garbage bytes between ISO2709 records rather -than abort. - ---- 2.1.2 2005/03/16 - -Fixed bug #273: Update for recent MARC-8 -> UNICODE changes. - -Fixed bug #272: Preserve spacing for CCL terms. - ---- 2.1.0 2005/03/14 - -Added support for virtual hosts and multiple backend servers for -the YAZ frontend server. The configution is XML based and -support specificition of CQL to RPN mappings and explain information. -See section "Virtual Hosts" in the YAZ manual. - -Extended OPAC display utility. OPAC display utility renders -bibliographic (MARC) record as well. Added yaz_opac_decode_wrbuf -to supplement yaz_marc_decode_wrbuf. - -Fixed a bug in MARC decoder that could caused it to crash for some -invalid MARC records. More diagnostics and warnings where added in -XML output (warnings, etc are stored in comments). - ---- 2.0.34 2005/02/08 - -Fixes for UNIX domain sockets. Bug #261. - -Fixes for MARC-8 to UTF-8 conversion. Bugs #258 and #260. - -Fixed bug #263: YAZ MARCXML dump shows extra spaces after control fields. -Added yaz_marc_subfield_str which defines subfield lead string which is -used in YAZ_MARC_LINE format. Default string is blank+$. Added -yaz_marc_endline_str which defines end of fields string used in -YAZ_MARC_LINE format. Default string is newline. - -Experimental support for MarcXChange. This format can be produced -by yaz-marcdump and is implemented in yaz_marc_decode - functions. - http://www.bs.dk/standards/MarcXchange.xsd - -Added yaz-client commands scansize that sets maximum number of -entries to be returned by scan. - ---- 2.0.32 2005/01/11 - -Added support for SRW scan in yaz-client and Generic Frontend Server. - -* Added whereInList member to SRW Scan Term. - -* Changed Z_SRW_scanRequest to be able to carry both CCL and PQF. - -Fixed NMEM system to return aligned blocks on the smallest boundaries -that are suitably aligned for all possible types on the particular -architecture YAZ is being built for. - ---- 2.0.30 2005/01/04 - -Fixed numerious warnings that was issued with newer versions of GCC. - -Fixed NMEM system to return aligned blocks on 8 byte boundaries rather -than 4 bytes, since 4 may not be enough on some systems such as GCC 3.4.3 -on Solaris. - -Make YAZ Generic Frontend Server slightly faster. - -Enhance (and reduce) logging for Generic Frontend Server. - -Revert YAZ log system so that it flushes every write operation -by default. (YAZ 2.0.26 and earlier verisons did that). Bug #240. - -Modified the YAZ logging system. The LOG level defines use YLOG_ prefix -instead of LOG_, due to name clash with syslog(3). LOG_ are still -present. New applications should define YAZ_USE_NEW_LOG=1 - this -will effectively disable old definitions. - ---- 2.0.28 2004/11/09 - -Added yaz_log_time_format which specifies log format using -strftime(3). - -Added yaz_log_module_level which returns mask for a module. Value -is non-zero mask a if module is enabled; zero if disabled. - -* Fixed bug #148: CQL parser may leak. A few prototypes were changed -in include/yaz/cql.h. - -Fixed bug #176: Dont throw diagnostics on empty SRU args. - -Fixed bug #175: surrogate diagnostics in SRW lacking NS. - -Fixed bug #172: RPM builds does not enable SSL. - -Doxyfile.in part of dist. Doxyfile generated by configure. - -Configure aborts if any of --with-xml2, --with-openssl, --enable-tcpd -are given and the corresponding component does not exist. - -Extend CCL documentation in YAZ reference. Describe r=r. - ---- 2.0.26 2004/10/01 - -Fixed MARC->MARCXML conversion to properly deal with -fields, subfields, indicators having non-ASCII characters. - -Fixed MARC->MARCXML conversion so that ASCII control characters -except TAB,CR,LF are removed from resulting XML (XML 1.0 does not -support these). - -Added YAZ GFS support for conversion from Z39.50 surrogate -diagnostics to SRW surrogate diagnostics. - -Bug fix: YAZ GFS did not return schema in explainResponse. - ---- 2.0.25 2004/09/30 - -The YAZ GFS when converting SRW/SRU requests to Z39.50 structures -now converts recordSchema to elementSetName as well as schema URI. - -Fixed bug in COMSTACK that prevented HTTP request packages from being -decoded properly. - ---- 2.0.24 2004/09/29 - -Added CCL facility r=r "range" which is similar to r=o "ordered" but -does not require white-space before and after the dash in a range, e.g. -x=-1990 is equivalent to x <= 1990 iff r=r, but equivalent to x= -1980 -iff r=o. - -Fixed a few AC_TRY_LINK configure tests that did not operate properly -due to new GCC removing "redundant" code. - -Added yaz-client commands scanpos and scanstep that sets preferred -position and step-size for scan. - -Macro YAZ_INIT in yaz.m4: option --with-yazconfig renamed to --with-yaz. - -Added CCL utility ccl_qual_buf which parses one or more CCL -spec lines in a buffer. - -Added CCL utility ccl_qual_line which adds CCL qualifier line consisting -of name and value - ignoring empty lines and comments. - -On Windows, the debug DLL/import lib is now named yazd.{dll,lib}. - -Added odr_get_element_path which returns current element path for an -ODR handle. This utility is useful in error handling or user-defined -ODR_PRINT stream. - -Added ODR_PRINT utility odr_set_stream which is is a more generic -alternative to odr_setprint. odr_set_stream takes a stream handle, pointer -to a write function and pointer to close function. The close function - if -non-NULL - will be called during odr_destroy. - -Fixed bug in CCL parser where truncation char was not removed from -right side when truncation=both was in effect. - -Fixed CQL parser to use unsigned chars for isxxx from ctype.h due -to VS.NET. - ---- 2.0.23 2004/08/11 - -Fix buffer overrun in CQL parser when dealing with proximity (%). - -Fixes for MARC-8 in yaz_iconv character set utilies. The MARC-8 -to UTF-8/UCS conversion is now only based on codetables.xml. - -yaz_marc_decode_buf sets leader pos 9 to "a" for MARCXML output. - ---- 2.0.22 2004/08/06 - -Add support for more "commit changes" in ZOOM (uses Extended Services). - -For yaz-client, command set_marcdump / -m dumps SUTRS/XML/.. -records as well. - -Yet another small fix for configure of SSL. - ---- 2.0.21 2004/05/14 - -Fix SSL libs for configure when --with-openssl=DIR is given. - ---- 2.0.20 2004/05/10 - -Add autoconf m4 macro YAZ_DOC for YAZ documentation setup (docbook). - -SSL comstack now uses yaz.pem certificate file on server side -by default. Certificate filename can be configured by calling -comstack function cs_set_ssl_certificate_file before cs_bind is used. - -Fix bug regarding multiple calls to ZOOM_connection_connect. - -Implement cs_set_ssl_ctx which sets SSL_CTX for SSL comstack. - -Do not create SSL_CTX in cs_create (ssl_type). Create in tcpip_bind, -tcpip_rcvconnect instead. This allows user to set custom SSL_CTX. - -ZOOM now allows inspection of X509 peer certificate for verification. -The X509 buffer is retrived by reading ZOOM option "sslPeerCert". - -Removed libyazssl.la. When SSL is enabled, libyaz.la has SSL support and -all programs have too (yaz-ztest, yaz-client, zoom..). May not be -as "modular" but it simplifies things. - -Added cs_get_peer_certificate to that returns peer X509 PEM. - -Added cs_get_ssl that returns SSL handle (SSL *) for SSL comstack; returns -NULL if SSL is unavailable. - -Documentation about MARC decoding tools. - -Fix --disable-tcpd to really disable tcpd. Patch by Robin H. Johnson. - ---- 2.0.19 2004/03/30 - -Rename CHANGELOG to NEWS to follow GNU style packing. - -Fix bug with missing initialization of member in init_diagnostics. -This bug affects threaded version of GFS server. - ---- 2.0.18 2004/03/20 - -Use wrbuf_xmlputs_n instead of wrbuf_write_cdata to avoid clash with -Zebra symbol. - -Ensure zlib.dll is packed with Windows install. - ---- 2.0.17 2004/03/17 - -Fix encoding of xsd:string to use text instead of CDATA. - -Fix endless loop in CQL parser with unbalanced ". - -Use a more compact way to store MARC-8 conversion tables. - ---- 2.0.16 2004/03/16 Debian only - -Oleg Kolobov Fixed a bug in yaz_iconv regarding conversion to -UCS4 / UCS4LE. - -Update CQL parser to use new CQL 1.1 modifiers for booleans and -relations. - -Add CQL test cases. - ---- 2.0.15 2004/03/01 - -Another fix for decoding of XML packed records. - ---- 2.0.14 2004/02/25 - -Fixes for Chunked encoding. White space not ignored after length spec. - -Update NS and use default NS for SRW diagnostic elements. - ---- 2.0.13 2004/02/23 - -Implement ZOOM_resultset_cache_reset which resets record cache. - -Implement ZOOM_resultset_sort which sorts a result set. - -Implement chunked HTTP transfer. - -For SSL, use -lssl -lcrypto on systems that don't have pkg-config. - ---- 2.0.12 2004/02/16 - -Added member 'schema' to bend_explain_rr structure so that backend -can specify explain record identifier. Defaults to Zeerex 2.0. - -Fix encoding of OID's of form 1.0.X. Bug introduced in 2.0.11. - ---- 2.0.11 2004/02/16 - -* SRW/SRU 1.1 updates: updated diagnostic in srw.h to use uri instead -of code. - -Added init command for yaz-client which sends "extra" init request. - -Fixed two bugs in OID codec - ber_oidc. Throw error when encoding/decoding -bad truncated OID. Fix decoding of OID X.Y... when X=2 and Y>39. - -Fixed a bug in ASN.1 compiler that caused Type-1 Operator codec to fail. - -Make ZOOM error code for "invalid query". - -Fixed compilation for SSL which wasn't properly enabled for all platforms. - ---- 2.0.10 2004/02/05 - -For yaz.m4, allow second argument for YAZ_INIT to hold minimal version of -YAZ required. - -* SRW/SRU 1.1 updates. Diagnostic code now a URI. - -Added option -p to make Generic Frontend Server to write PID file. - -Added option -D to put Generic Frontend Server in background on its own. - -Make ZOOM C recognize option "password". If unset, "pass" is used -(for backwards compatibility). - -Fixed a bug in Generic Frontend Server that could make it crash if a -client sets characterSetNegotation bit, but didn't pass negotiation stuff -in InitRequest. - -New YAZ client command, zversion, that sets Z39.50 version (1,2,3..). -Must be issued before open, in order to be in effect. - ---- 2.0.9-6 2004/01/12 Debian/Windows - -Make the SRU server more picky WRT unknown params, etc. - -Bug fix: ZOOM scan response didn't return displayTerm - when present. - -New YAZ client command, options, that sets Z39.50 options. - -New utility functions yaz_init_opt_{encode,decode} to encode/decode Z39.50 -options from a string of tokens (one token for each option bit). - -Update SRW diagnostic code messages. - ---- 2.0.9-5 2004/01/07 Debian/Windows - -Handle user defined stylesheet for SRW/SRU. - ---- 2.0.9-4 2004/01/06 Debian/Windows - -Fix bug in decoding of Content-Length. - ---- 2.0.9-3 2004/01/06 Debian/Windows - -Fix a bug with decoding of XML packed records. - ---- 2.0.9-2 2004/01/05 Debian only - -Allow empty ODR (NMEM=0) for odr_oiddup and odr_getoidbystr. - -Fix bug in SRW/SRU diagnostics decoding. - ---- 2.0.9 2004/01/05 - -Fixed bug in Generic Frontend Server which could drop records exceeding -preferred message size. Reported and fixed by Irina Dijour. - -Fixed calculation of package size for structured records in Generic -Frontend Server. Reported and fixed by Irina Dijour. - -Fixed namespace for SRW/SRU diagnostics. - -Fixed SEGV in yaz-client that occured for HTTP connection errors. - ---- 2.0.8 2003/12/22 - -* SRW/SRU 1.1. Since the Namespace has changed for SRW/SRU, it means that -this version is incompatible with version 1.0 and older YAZ SRW/SRU -implementations. - -CQL changes to reflect recent changes to the specification: -* Documentation talks about context sets instead of index sets. -* Documentation talks about indexes instead of qualifiers. -* The CQL-to-PQF transformer's configuration file now uses - "index.set.name = " instead of the old form - "qualifier.set.name = ". (Both forms are still - understood but the latter is deprecated.) -* CQL terms with no explicit index specified are now interpreted as - cql.serverChoice instead of srw.serverChoice (which of course - behaves exactly the same.) - ---- 2.0.7 2003/12/16 - -MARC conversion can now generate ISO2709 output in another -character set. yaz-marcdump uses this facility if you invoke it -with option -O. - -Added missing C decl macros for include/yaz/{soap.h,srw.h,cql.h}, so that -functions from there can be used from C++. - ---- 2.0.6 2003/12/04 - -Frontend server now transfers memory from decoded packages to stream -ODR for search. - -NMEM now clears freed blocks with 'Y' (hex 59) to force bad memory -references to show up. - -ZOOM-C now supports standard ZOOM option names as described in v1.4 of -the ZOOM Abstract API. The older names for the same options are still -also supported for the benefit of old applications. - -ZOOM-C supports "implementationId" and "implementationVersion" options -to go along with "implementationName". These allow the user code to -specify identification strings to be sent to servers. -Add OID for the new ExtLite attribute set. - -Add OIDs for NACSIS-CATP, FINMARC2000 and MARC21-fin record-syntaxes, - as requested/supplid by Ere Maijala - -For generic frontend server, reverse the order of -"toolkit-supplied / application-supplied" strings sent as implementationId, -Name and Version. Also, remove the spaces around the slash. This brings -the GFS in line with the behaviour of ZOOM-C on the client side. - -Add function ZOOM_scanset_display_term. - -yaz-client shows scan displayTerm if present. - -Utility yaz-iconv is now installed by default along with the man page -yaz-iconv.1. - -Extend configure check for OpenSSL to use pkg-config where available (such -as RedHat 9). - -Incorporate patch by Morten Bogeskov which allows a Unix file socket -server to specify uid/gid/mask for socket using the format - unix:[user=uid,][group=gid,][umask=mask,]file=path -If file= is omitted the existing format is assumed, e.g. - unix:path -in which case the mask is 0666 (rw for everybody). - -Major restructure of YAZ source. All source in libyaz is in src directory. -Programs in client (yaz-client), ztest (yaz-ztest), zoom (zoom programs), -util (utility programs such as ASN.1 compiler, yaz-marcdump). - -Added man page for utility yaz-marcdump (used to be called marcdump). -yaz-marcdump is installed by 'make install'. - -Fixed a memory leak in Generic Frontend Server that occurred when decoding -of incoming package failed. - -Fixed a potential DOS attack vulnerability in COMSTACK/ODR. - -Change prototype of odr_perror: add const to message string. - -New function yaz_log_reopen which reopens log file (for log rotate, etc.) - -* Blocking parameter for COMSTACK cs_create is now a bit mask rather -than a blocking flag. Bit 0 is set for blocking, reset for non-blocking. -Bit 1 is set if cs_addrstr should avoid DNS lookup; reset for full -DNS lookup. There should not be any compatibility problems with this -assuming that blocking=1 or 0 is used. - -Fix bad reference in UNIX comstack in function cs_addrstr. - -Fix for compilation on AIX. - -The generic front-end server (server/seshigh.c) now supports returning -Init diagnostics to the client in User-information-field, in -accordance with Z35.90 Implementor Agreement 5 (Returning diagnostics -in an InitResponse) - ---- 2.0.4 2003/09/04 - -Allow any CQL relation (not just all,any,exact,scr). - -Fixes for OCLC UI ASN.1 to make it work with SilverPlatter targets -that features the same UI. - -Implemented command update0 in YAZ client which is equivalent to -update but uses old of Ext Update ASN.1. - -Use OID 1.2.840.10003.15.1000.81.1 for privately defined charsets -in charset negotiation. Added VAL_ID_CHARSET in oid.h. -Previously no OID was used for this info. - -ZOOM uses smallSetUpperBound=1 instead of 0 for piggyback searches. -It apparantely upsets EBSCO Publishing IR Z39.50 Server which -returns 'malformed search term' otherwise. - -SortResponse member resultCount now set to NULL in sort handler of -frontend server. - -OPAC support ZOOM. ZOOM_record_get returns OPAC info (as XML) if -type is "opac". - -Add three new utility functions for translating OIDs between various -formats -- symbolic name such as "Usmarc", minus-1-terminated int -arrays and dotted strings such as "1.2.840.10003.9.5.1": - int *oid_name_to_oid(oid_class oclass, const char *name, int *oid); - char *oid_to_dotstring(const int *oid, char *oidbuf); - char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf); - -Reverted modifications for ES Update definition for z_IU0Update -(OID 1.2.840.10003.9.5.1 and 1.2.840.10003.9.5). The definition -is back to YAZ 2.0.2. - -String value attributes for CCL parser. - -Support for OCLC's locally registered "OCLC-UserInformation" PDU, -which their FirstSearch server returns in Init responses, sometimes -carrying useful diagnostic information when Init fails. This has the -OID 1.2.840.10003.10.1000.17.1 and is defined in the file -"z39.50/oclcui.asn", where its definition is somewhat different from -what OCLC document on their web-site, as required to interoperate with -their servers. - -Support for anonymous authentication in yaz-client. Use the command -"auth -". - -* Fix the OID of the Index Data-local "admin" Extended Service from - 1.2.840.10003.9.81.1 to 1.2.840.10003.9.1000.81.1. The omission of - the 1000, which indicates a locally-defined OID, was a mistake. - ---- 2.0.3 2003/06/20 - -Fix CCL directive @case handling so that it affects string match for -both CCL keywords and qualifiers. - -* ESFormat-Update updates. Packages with OID 1.2.840.10003.9.5.1 and -1.2.840.10003.9.5 are now handled by the same decoder z_IU0Update . -Decoder has been updated with ASN.1 changes as listed in -http://lcweb.loc.gov/z3950/agency/defns/updateES.html -Note that the "latest" DB Update, OID 1.2.840.10003.9.5.1.1 , handler -z_IUUpdate, remains unchanged. - -ZOOM_record_get may now return a record in a specific character set. -For type use "form; charset=from[,to]" where form (render, xml, ..) , -"from" is the character set of record as returned by target. "to" is -the character set to be returned. If omitted, "to" is UTF-8. - -YAZ ASN.1 compiler renamed from yaz-comp to yaz-asncomp - -New ODR utility, odr_getelement, which returns name of element for -which encoding/decoding failed. - -Fixed ODR so that it returns error code OREQUIRED rather than ONONE -in cases where a required element was omitted. - -Bug fix: some MARC8 sequences were not converted. - -New ZOOM option "step" which specifies number of records to be -retrieved in one chunk. Used in conjunction with "start" and "count". - -SRW support for yaz-client. Use scheme http: to use it, e.g. - http://host:port/db - -yaz-client no longer does (un)intelligent character set conversions -by default. Can be enabled with charset and marc_charset commands. - -xmalloc trace fix for 64-bit systems such as DEC alpha. - -Solaris 2.6 compile fix. - -New function, cql_strerror() translates SRW error codes, as returned -by cql_transform_error(), into human-readable English strings. Used -in yaz-client diagnostics when appropriate. - -New CQL2RPN query-type for the command-line yaz-client, parses CQL and -converts it into a type-1 query which is sent to the server. This -makes CQL available for use with all Z-servers, as opposed to the tiny -minority that can handle CQL queries themselves. - ---- 2.0.2 2003/04/28 - -New Debian package layout similar to the Redhat Package layout. - -New ZOOM events ZOOM_EVENT_RECV_{RECORD,SEARCH} for receiving a record -and search result respectively. - ---- 2.0.1 2003/04/25 - -Redhat package is now several packages: libyaz (runtime libraries), -libyaz-devel (development and documentation, and yaz (utility programs). -Package spec file by Morten Bøgeskov. - -New member 'schema' in struct bend_fetch_rr which the name of requested -schema (SRW/SRU) for record (or NULL if none was given). The fetch -handler MAY set this to reflect the schema of the returned record. - -New member 'display_term' in struct scan_entry. GFS now sets member entries -and allocates scan entries to be filled by user scan handler. In previous -version, entries member was allocated by the scan handler. That still works, -but the GFS will ignore member display_term - assuming it was NOT set by -the handler. The fact that the GFS now allocates the entries both allows -for new members and makes a scan handler easier to write. - -Fix CQL lex buffer overflow. - -SRW/SRU recordPacking. For SRW default recordPacking is string. For -SRU default recordPacking is string. - -SRU protocol support for frontend server. - -Fix compile bug for systems that have nl_langinfo but CODESET undefined. - -Added missing PQF transform rules for <= and >= . Thanks to Peter Popovics. - -Added scan for the ZOOM shell (zoomsh). - ---- 2.0 2003/02/23 - -* String Identifers for Schemas (Amendment 5). -http://lcweb.loc.gov/z3950/agency/amend/am5.html -Old definition for schema - Odr_oid *schema; /* OPT */ -New: - int which; - union { - Odr_oid *oid; - Z_InternationalString *uri; - #define Z_Schema_oid 1 - #define Z_Schema_uri 2 - } schema; /* OPT */ - -* resultCount parameter to Sort Response (Amendment 1). -http://lcweb.loc.gov/z3950/agency/amend/am1.html - -Support for SRW 1.0 over HTTP. This is an optional feature and -requires libxml2 to operate. Enable SOAP by specifying --with-xml2 -for configure. - -Generic frontend server supports HTTP/SOAP/SRW and Z39.50/BER -on the same port. SRW SearchRetrieveRequests are mapped -to bend_init,bend_search,bend_fetch,bend_close. - -Z39.50 Query Type-104 added - to facilitate CQL within Z39.50. - -CQL support. Source is directory 'cql'. CQL is supported in ZOOM -(both SRW and Z39.50) and the YAZ client (Z39.50 only). - -ZOOM connections are SRW based if schem http is used for hostname -in connect, e.g. z = ZOOM_connection_new("http://myserver"); -ZOOM_query may be of type CQL, e.g. ZOOM_query_cql(q, "dc.title=x"); - -CCL proximity operators !n, %n converts to PQF @prox 0 n 1 2 k 2 -and @prox 0 n 0 1 k 2 respectively, meaning: exlusion=false, -distance=n, order=true/false, relation=le, prox unit=word. If -n is omitted, distance 1 is used. - -Fixed problem with C compiler include path in wrong order. - -For TCP/IP COMSTACK, set recv buffer to an appropriate "large" value -on Solaris. Patch from Ko van der Sloot. - -New MARC decode API. All new functions operate on a yaz_marc_t -handle. The most important new functions are: yaz_marc_create, -yaz_marc_decode_{buf,wrbuf}, yaz_marc_destroy, .. to create handler, -decode and destroy respectively. Decoder can produce formats -MARC line, simple XML, OAI MARC and MARC XML (LoC). See -include/yaz/marcdisp.h. - -YAZ Iconv utility now supports MARC8 decoding (marc8.c). Converts -to UTF-8, UCS-32, wchar_t or Latin-1. - -* Prototypes for yaz_iconv_-functions moved to separate header -include/yaz/yaz-iconv.h. - -Make a few private functions 'static' in unix.c. This prevents -duplicate unix_close in PHP with YAZ and imap. PHP Bug 20977. - -For ZOOM connection, the options targetImplementation{Id,Name,Version} -are set when Init Response is received. - -New function ZOOM_connection_error_x similar to ZOOM_connection_error -but returns diagnostic set as well. - -New function yaz_strerror which is a portable wrapper for -strerror/strerror_r/GetLastMessage. - -* ZOOM_record_get supports type "xml" in which case MARC XML (from LOC) -is returned for MARC. If type is "oai", then OAI MARC is returned. - -Fix creation of lib/yaz-config so it works if srcdir != objdir. Patch -from Kang-Jin Lee. - ---- 1.9.2 2002/11/26 - -yaz_marc_decode uses OAI MARC as XML format for ISO2709 records. - -Fix bad race conditions on SIGTERM and terminate gracefully in -frontend server. - -Move retrieval (data1) module to Zebra since nobody seems to be -using it. - -Add GRS-1 render for ZOOM using same format as yaz-client. - ---- 1.9.1 2002/10/05 - -Added man pages: yaz-client(1), yaz-ztest(8), yaz(7), zoomsh(1). - -Fix broken ESpec handling in data1 module. - -SGML reader parses comments and makes them part of the data1 tree. - -Added several type casts so that YAZ compiles as C++ code. - -ZOOM didn't handle PDU encoding failures properly. - -Added more Bib-1 diagnostics (approved extensions). - -GNU configure: better check for iconv. - -More portable use of accept, getpeername. Check for socklen_t. Use -int/size_t if socklen_t is not defined. - ---- 1.9 2002/09/06 - -PQF parser rejects bad queries - including those with extra -characters in them. PQF parser used to silently ignore that. -Cleaner API for PQF added, which allows you to get detailed -error information for bad queries (see yaz/pquery.h). - -Fixed bug in ZOOM_record_get for type "database". - -Implemented mini iconv library supporting conversions between -UTF-8, UCS4, UCS4LE and ISO-8859-1. Implemented in util/siconv.c. - -* Removed XML reader (d1_expat.c). It's part of Zebra instead. - ---- 1.8.9 2002/08/20 - -Fixed ZOOM C record cache so that preferredRecordSyntax and -elementSetName is used to check for already fetched records. - ---- 1.8.8 2002/08/02 - -Added three members in bend_initrequest structure to facilitate -character set negotiation. - -Fixed a bug in frontend server that could cause indefinite -loops under rare conditions. - -Revised character set utilities (charneg.h) so that encoding -UCS-4, UCSA-4, UTF-16 and UTF-8 are encoded non-privately. - -For PQF, directive @term sets term type for Scan/Search. -Here is general, string, numeric, null. The term type -is inherited - just like @attr. - -New call odr_set_charset that sets character set conversion for -international-strings on a ODR stream. Prototype is: - int odr_set_charset(ODR o, const char *to, const char *from); -The InternationalString is still represented as C string in YAZ -so native strings of type UTF-8, ASCII, etc. will work (UTF-16 -won't). On the protocol level, you can use any encoding. - -Support for UNIX sockets in ZOOM. - -Solaris recv sometimes returns errno == ENOENT. It is treated as -EINPROGRESS. COMSTACK patch by Ko van der Sloot. - -New COMSTACK of type UNIX Socket. Use "unix:/path" as address for -both client and server. Code by Morten Bøgeskov. - ---- 1.8.7 2002/05/22 - -On Windows ZOOM functions are of type __stdcall rather than __cdecl, so -that they can be used directly from Visual Basic. You must recompile -your windows APP if you're using ZOOM. - -Character Set and Language Negotiation(3) for ZOOM API and YAZ client. -Commands "lang" and "charset" sets language and character set respectively. -Options "lang" and "charset" is interpreted by the ZOOM API. Note, these -are not part of the official ZOOM spec) All is due to Oleg Kolobov. - -Attributes from multiple CCL fields may be OR'ed rather than merged -using directive "@field or". Fields are still merged by default - -equivalent to "@field merge". - -Fixed bug in ZOOM connect that occurred on OpenBSD (maybe others). Patch -by Oleg Kolobov. - -Fixed bug in zget for parameter ExtendedServicesResponse. - -Fix OID for ILL. - ---- 1.8.6 2002/03/25 - -Added PQF feature: '@attr type=value' may be written as '@type=value'. - -Client displays USR.1:SearchResult-1 (hits per term). - -Additional Search Info for search in Generic Frontend Server. - -Fixed CCL parsing of "field=s". - -WIN32 installer - using the excellent NSIS software from nullsoft. - -Fixed CCL parsing of "field = - ". - -Added function yaz_marc_decode that decodes MARC for line mode -display or XML (similar to that used by JZKit). - -Fixed BER decoding of OPTIONAL CHOICE. The bug didn't affect the -Z39.50. But ISO/ILL was, however. - -Added patch by Rustam T. Usmanov that implements Z39.50 duplicate -detection service (Z39.50-1995 Amendment 2) and Language Negotiation (3). -See: - http://lcweb.loc.gov/z3950/agency/amend/am2.html - http://lcweb.loc.gov/z3950/agency/defns/charneg-3.html - ---- 1.8.5 2002/02/03 - -New YAZ client features: Command completion and new commands: -push_command, set_apdufile, set_marcdump, set_cclfields, register_oid. -Code provided by Jacob Poulsen. - -New call oid_trav, that visits all registered OIDs via callback. - -Function ZOOM_record_get now returns const char pointer rather than -void pointer. It saves a lot of type casts. - -For YAZ client, command "auth" now allows you to set authentication -in IdPass style. It is enabled when three tokens are given - order -is user, group and password. - -Fix memory leaks in MARC record handling for ZOOM. - -New option for YAZ client, -k that sets -maximum record size. Similar to -k option for generic frontend -server and yaz-ztest. - -More fixes for scan. Non-zero stepSize handled. OID's fixes. - -Prefix query parser reports "fail" when bad attribute set is given. - -Fix in MARC decoder. Proximity logging. Fix for attribute set -in scan handler for server. Patches by Shigeru Ishida. - -SSL/COMSTACK updates. cs_rcvconnect completes SSL handshake. ZOOM -works with SSL. - -Configure option --with-openssl= now works when a directory is -specified. Patch provided by Morten Bøgeskov. - -New option for YAZ client, -u , that sets authentication. - -ZOOM fix: error information was sometimes "missing", since error -was cleared/reset too when it shouldn't. - -ZOOM_record_get returns ISO2709 buffer when "raw" is given. - ---- 1.8.4 2002/01/04 - -Scan for ZOOM API. New object ZOOM_scanset. New functions -ZOOM_connection_scan, ZOOM_scanset_size, ZOOM_scanset_term and -ZOOM_scanset_destroy. - -New ZOOM function, ZOOM_connection_last_event, that returns type -of last event (such as "receive data", "send data", "apdu received", -etc. - -New ZOOM option, schema, that specifies schema for retrieval. - -New CCL feature. Qualifiers can be aliases for one or more -other qualifiers (if more than one is given, OR is used). - -ZOOM uses named result sets if target supports it. - -Two new YAZ client commands: . (dot, which sources a script of YAZ -client commands), and ! (to execute shell command.). Implemented -by Jacob Poulsen. - -Working on Debian packages. - ---- 1.8.3 2001/11/19 - -YAZ client enables named result sets only if target supports it. - -*** ZOOM. Prefix for ZOOM definitions changed from Z3950_ to ZOOM_. - -* ZOOM. Removed Z3950_connection_host. Use Z3950_connection_option_get -with key="host" to get same result. - -* ZOOM. Added Z3950_record_clone and removed Z3950_resultset_get. -Function Z3950_resultset_record(s) returns references to records -"owned" by resultset. To become owner use Z3950_record_clone. - -Function z_ext_record handles Extended Services. Thanks to -Irina Dijour. - ---- 1.8.2 2001/11/12 - -CCL Parser fix: ignore token comma when dealing with and-lists. - -Documentation updates for COMSTACK. - -* ZOOM changes. Query object renamed from Z3950_search to Z3950_query. -Changed prototype Z3950_records. For some functions, int parameters -were changed to size_t. - -TCP/IP COMSTACK no longer uses getprotobyname to avoid memory leak -on some Unices. - -New MARC decode/display function, marc_display_exl, which properly rejects -non-ISO2709 records. YAZ client uses it. - ---- 1.8.1 2001/10/29 - -Fix bug: local attribute set wasn't set correctly in PQF strings. - ---- 1.8 2001/10/25 - -* Old Z39.50 codecs no longer supported. - -Added ZOOM C binding. See http://zoom.z3950.org/ - -Renamed states for COMSTACKs to avoid confusion with events. - -Implemented cs_look and proper cs_rcvconnect. - -Fixed COMSTACK error that occurred on HPUX. Fix by Giannis Kosmas. - -Configure detects POSIX threads on OpenBSD. - -When sort flag 'i' was specified in yaz-client the caseSensitivy flag -was set to a wrong value. Thanks to Robert Sanderson for reporting this. - -When error is returned from present handler, non-surrogate diagnostic -is returned in present response (and fetch handler is no longer called). - -* Minor adjustments to pquery parser (PQF). Token characters may be -escaped by using backslash (C-style). - -PQF parser allows string attribute values to be specified. For @attr, -non-numeric characters after the equal-sign are treated as strings -(e.g. @attr 9=title). - -CCL trunction character may be defined (@truncation in file) - -* function zget_ExtendedServicesRequest sets waitAction to - waitIfPossible (was wait). - -Added cs_set_blocking to set change blocking mode of a COMSTACK. Thanks -to Matthew Carey. - -CCL operator names may be set in field definition files (CCL_bibset). -See ccl/bib1 for an example. - -Fixes in ASN.1 compiler for C++ compatibility. - -* Renamed members "and" and "or" in struct Z_Operator to "op_and" -and "op_or" to avoid conflict with C++. - -Fixed problem with GNU readline detection on Redhat 7.0. - -Added step-size for Scan backend handler. - -Fixed bug that made the frontend server crash when no attribute -set was specified for scan. - -Front-end server automatically switches to original working directory -when installed as an NT service. Previously -w had to be specified to -make it work. - -Added extended attributes for retrieval module (data1), so that data1 -records carry d1_readXML/SGML attributes. d1_read also supports -null-data rules ( ) - -On UNIX when POSIX threads are available, a separate library libyazthread -is created. Programmers should link with that library and the yaz library -when using threads. The reason for the split was that some applications -on Linux, such as Apache, doesn't work well when using shared objects that -relies on threads. - -Added SSL support for the COMSTACK. You start yaz-client and yaz-ztest -(or any frontend server) in SSL mode by specifying ssl: followed by -address. Only tested on UNIX. - -Added feature for CCL module. Virtual structure s=al or s=ol generates -and-list and or-list respectively instead of phrase search. - -Added some OID's. - -* Added prefix "yaz_" for the functions log_init.., log_file.. and -log_mask_str. This was done to avoid name conflicts with other libraries -(such as other PHP extensions). - -Added raw OID member for preferred record syntax (request_format_raw) -and returned record syntax (output_format_raw) for backend fetch method. - -Config file yaz-config now accepts options so that it returns specific -compile settings, etc. Thanks to Morten Bøgeskov - -Shared library support for UNIX using GNU libtool. - -* Modified backend interface. Request/Response struct's replaced by -one read/write C struct. For example bend_fetchrequest and -bend_fetchresult have been replaced by single bend_fetch_rr struct. -Every handler - even search has to be registered in bend_init -handler. This means that the YAZ library no longer refers to -external functions and it makes it possible to make the whole -thing a single DLL/SO. - -Added Segment handler for backend server. - -Added Zmbol/Zebra administrative functions to YAZ client. - -Threaded frontend server on UNIX (when POSIX Threads are available). -Starting the server with option -T enables multi-threading. - ---- 1.6 2000/03/03 - -Added configure option --enable-comp/disable-comp to control use -of YAZ ASN.1 compiler. Use --disable-comp to use the old *coders -located in sub directory asn. - -YAZ ASN.1 compiler renamed to yaz-comp in sub directory. It's installed -in ${exec_prefix}/bin along with the other programs yaz-client and -yaz-ztest. - -GNU automake used to maintain makefiles. - -Added several OID's. - -Changed retrieval module so that we can load records with no abstract -syntax defined. Tagpaths in these records are fully composed of string -tags. - -Implemented ISO ILL protocol. Refer to stuff in sub directory ill. - ---- 1.5 1999/12/10 - -On UNIX, the generated makefile now supports a proper 'make install'. -The prefix can be set via GNU configure to set the install location -(default is /usr/local). - -* YAZ programs client and ztest were renamed to yaz-client and -yaz-ztest to avoid conflicts when users install YAZ in "standard" -locations, such as /usr/bin,/usr/local/bin,etc. - -* YAZ Header files were moved from include to include/yaz. YAZ Header -files are referred to as include rather than . -The YAZ include path (-I ..) is therefore the same as before. Programmers -should update their #include statements or use -Ipath/include/yaz -instead. The main motivation for doing this change is that YAZ header files -can be installed in "standard" locations /usr/include,/usr/local/include -without introducing conflicts, since ALL YAZ header files are stored -in subdirectory yaz (under /usr/include for example). - -Compilation of YAZ for WIN32 is now handled by an nmake-style makefile -rather than project/workspace files. We switched because project files -are incompatible between Visual C++ 5 and 6. Refer to windows.txt for -details. - -Changed name of logging function, logf, to yaz_log, to prevent name -clash with some math-log functions. The YAZ header log.h defines logf -to yaz_log (#define) so there should be no incompatibilities by this -modification. - -Added bend_start/bend_stop handlers for server. These handler are -called on start/stop of server. For windows they are called whenever -a service is started/stopped. - -* YAZ now auto-generates decoders/encoders for the Z39.50 protocol using -a fairly small ASN.1 compiler written in Tcl. The compiler is located -in util/yc.tcl. The auto-generated C code structures are, in a few -cases, incompatible with the old decoders. There are differences in the -following C structures Z_DiagRec, Z_External, Z_SortRequest, Z_SortResponse, -Z_AttributesPlusTerm, Z_ProximityOperator, Z_DefaultDiagFormat. -The preprocessor variable ASN_COMPILED is defined when the compiled -ASN.1 is being used. Encoder/decoder routines as well as the Z39.50 -protocol ASN.1 is located sub directory z39.50. If you -wish to use the old encoders/decoders you can specify --disable-yc -for configure. - -Assigned OID for old DB Update (VAL_DBUPDATE0). Updated YAZ compiled -version so that it supports both new - and old version of DB Update - -* Added 'name' parameter to ODR encoder/decoder routines to facilitate -pretty ODR print. Updated whole Z39.50 encoder/decoder to reflect the -change. The name parameter can be set to 0 in which no name is specified -for the construction. The macros odr_implicit and odr_explicit sets name -parameter to zero for the construction involved. New macros -odr_implicit_tag and odr_explicit_tag are similar to the others, -except that a name parameter is added. For programmers' that don't use -ODR they probably only need to change the call to z_APDU and z_External. - -Added access control facility by interfacing the TCP wrapper library. -YAZ automatically attempts to find the TCP wrapper Library (-lwrap) and -tcpd.h on Unix systems. For the server, option -d specifies the -name of the daemon and enables the access control as specified in -hosts.allow/hosts.deny. Refer to man pages tcpd(8) and hosts_access(5). - -Fixed memory leak in ccl_find_str and ccl_qual_rm. Thanks to Hans van -den Dool . - -Added reference ID parameter to most functions in server API - refer -to backend.h. Thanks to Hans van den Dool . - -Changed name of ccl library to libccl.a (was ccl.a). - -Fixed bug in decoder for Explain (Category TargetInfo). - -Added support for GNU readline in client. Thanks to Jacob Poulsen -. GNU configure attempts to detect if readline is available. - -* CHANGED DEFINITION OF ES: UPDATE (INCLUDING THE OID) to reflect the -new definition from the ZIG. NOTE THIS IF YOU HAVE AN UPDATE -IMPLEMENTATION! This change was made to the development version before -the ZIG decided to retract the amendment. If any users MUST be -compatible with the original Update definition, PLEASE CONTACT US, and -we will include a separate definition corresponding to the old Update -ES. Note that because of the change to the ASN.1 of the -TaskPackageRecordStructure we cannot define a single structure that -will support both versions. - -* Added const modifier to buffer parameter for some ODR/BER encoding -routines: ber_dectag, ber_declen, odp_more_chunks, completeBER, -completeWAIS, odr_dumpBER. - -Fixed bug in client.c which caused a crash when a scanResponse didn't -contain positionOfTerm. - -* Fixed inconsistency in the ScanResponse/ListEntries protocol. This -* will cause an error in a client if a non-YAZ target sends both a -* list of Scan entries and non-surrogate diagnostics. - -Retrieval module enhancements. Tag sets may be typed in the reference -to it. From the .abs-file the "tagset" directive takes a third optional -integer type for the tag set referenced. From a .tag-file the "include" -directive takes a third optional type as well. The old "type" directive -in the tag set itself is still recognized but acts as the default type -for the tag set. - -Backend interface change. Individual Scan terms returned from bend_scan -may also be tagged as Surrogate Diagnostics. Refer to struct scan_entry -in include/backend.h. - -Retrieval module enhancements. Multiple tag sets and attribute sets may -be specified in abstract syntax specs. Revised the error/warning for -logging messages reported by the retrieval module when reading the -various spec files. - -Object Identifier system (oid_..) changed. The API is backwards -compatible but the oid-routines now allocates new OID's when needed. -Raw OID's may be specified in oid_getvalbyname. - -YAZ now uses GNU configure to generate Makefile(s). - -* Minor changes in some of the member names of DeleteResultSetRequest and -DeleteResultSetResponse. See include/proto.h. - -* Changed some C definitions regarding EXPLAIN record syntax (prt-exp.h) -and added member 'languages' in TargetInfo (which was missing). - -Changed the way attribute sets are handled in the retrieval -module. These are now cached, just like the abstract syntaxes -(schemas). - -Changed YAZ so that it links with compiled ASN.1. - -Added Explain-schema definitions and mapping routines. The following -Explain categories have been implemented: AttributeDetails, -AttributeSetInfo, DatabaseInfo, CategoryList and TargetInfo. - -Fixed minor bug in Windows version of Server Library. - ---- 1.4pl2+ 1998/4/17 (Released with Zebra) - -Added Extended Services to server (backend.h). Thanks to Charles Woodfield. - -Added EXTERNAL: UNIverse Resource Report (non-standard). - -Implemened odr_enum and odr_set_of functions to handle ASN.1 types -ENUMERATED and SET OF. - -* Added 'const' to some of the char pointer arguments for the -functions, data1_read_node, data1_getelementbytagname, -data1_insert_taggeddata, data1_getesetbyname, data1_getelementbyname, -data1_get_absyn. - -Fixed bug in data1_insert_taggeddata - the last_child member of -parent wasn't initialised. - -* Changed data1_read_record and data1_read_node so that the supplied -"SGML"-buffer is read-only. In particular the resulting data1 - tree -doesn't refer to any parts of the "SGML"-buffer. - -Fixed bug in server library (Windows version of statserv_remove). - -* Changed code so that it compiles as C++. The type definition -of Odr_fun which is a member of Odr_arm was changed. The result is, -that an explicit typecast is needed for the fun pointer when -using Odr_arm - as in: - {1, -1, -1, Z_IdAuthentication_idPass, (Odr_fun)z_IdPass}, - -Updated TagSet-G and -M definitions (tagsetm.tag and tagsetg.tag). - -Implemented the new structured date and time definition as approved -by the ZIG. Added schemaId element to the specificTag in Espec-1 -(also approved at the last ZIG). Thanks to RVDM. - -Added some Object identifiers (RVDM). - -Changed the Update Extended Service (RVDM). - -Added command "refid" to client which specifies referenceId for -the following requests. - -Implemented extended service handling for server. See ztest.c -for an example as well as backend.h. New handlers are registerd -in the Init handler. - -* Changed interface for sort in server. - -Added new members to statserv_options_block. It allows a server -to read options from another source than just the command line. Thanks -to Charles Woodfield. - -* Changed definition of Z_Triple in file prt-grs.h - member boolean -renamed to zboolean. Some C++ compilers complained about the name. - -Minor changes to gils.abs. Added index 's' (sort) on title -and date/time-last-modified. - ---- 1.4pl2 1998/1/30 - -Fixed bug in server library regarding inetd mode (-i). This bug -was introduced by release 1.4. - ---- 1.4pl1 1998/1/29 - -Added sort facility in client and backend server interface. - -Fixed problem with dependencies in Makefile(s). - -Fixed bugs for encoders/decoders of extended services and -SearchInfoReport. - -Implemented sub-tree feature for schemas. Sub-trees are -referenced in *.abs-files. See explain.abs for an example -of the use of this feature. - -Modified bib1.att; local attributes for ANY didn't include -ANY itself (only affects use of the retrieval module). - -Fixed bug in plain SGML reader in function data1_read_node: -tags with prefix "var" was incorrectly interpreted as variants. - -Added feature "sub-schemas" to enable references to - and definitions -of - group of elements. - -* Removed member parent from type data1_element (in data1.h). - -Implemented function odr_nullval() that returns the value of -ODR_NULLVAL. - -* Removed member num_children from data1_node (in data1.h). - -Made NT service interface part of the server library. The -function statserv_main uses the NT service when required and -calls the statserv_start / statserv_close routines. - -Routine zget_SearchRequest and zget_PresentRequest fills -resultSetName/Id member with "default" instead of "Default". - -Fixed memory leak in server. Request queue member wasn't freed. - -Fixed nmem_exit so that memory is freed. - ---- 1.4 1997/10/2 - -Revised the CCL parser utility to be thread safe. - -Added function, oid_ent_to_oid, to replace the function -oid_getoidbyent, which is not thread safe. - -* Added nmem_init and nmem_exit to initialize and release -NMEM resources. Function nmem_init should be called once in the -initial thread before NMEM/ODR is used. statserv.c and client.c -have been changed accordingly. The change was necessary to make -NMEM thread safe. The NMEM memory pool is shared amongst threads -in a process. Unix-based applications will still work fine without -calling this. - -Added NT Services interface for the the Z39.50 (statserv) Server. -Refer to the ztest.c source on the usage. - -Windows 95/NT port using MSVC5.0. Project files are included in the -distribution. - -* Defined new 'global' handle for the retrieval (data1) system. The -new handled, data1_handle, describes the state of the data1 system. -This handle is passed as first argument to virtually all -data1 related routines. The functions data1_create and data1_destroy -creates and destroys a data1 handle respectively. - -Added ODR encode stream member to all backend request structures -init, search, scan etc. This stream should be used to allocate all -memory used for the response when thread safe operation is needed. - -Changed the comstack utility, cs_addstr, to be thread safe. The -returned hostname string returned by the function is now part the -COMSTACK instance. - -Added comstack utility, cs_straddr, which replaces the tcpip_strtoaddr -function. The cs_straddr takes a COMSTACK handle as argument, so this -function must be used after cs_create and before bind/connect. -This function is thread safe. - -Moved test server to 'ztest' directory - generic server code still -in 'server' directory. - -Made prefix query (pquery.c) utility thread safe. - -Added new function modifier YAZ_EXPORT to 'export' public DLL -functions when using windows (see include/yconfig.h). - -Added definitions to the OID database (util/oid.c) (RVDM). - -Added new BIB-1 diagnostic messages to the handler diagbib1_str. - -Added call to ccl_rpn_delete in client program. - -Added ODR argument to ccl_rpn_query and ccl_scan_query to provide -release of RPN structure. - -Added support for C++, headers uses extern "C" for public definitions. -With input from RVDM. - -In handling of SEQUENCE OF: Counter set to zero when SEQUENCE OF is absent. -Thanks to Ronald van der Meer (RVDM). - -Added initializers (zget_ routines) for a number of PDUs. Thanks to RVDM. - -Added support for private extensions to the OID database -(oid_setprivateoids()). Thanks to RVDM. - -Added optional, physical ANY (key replication) - -Fixed null-reference problem in GRS-1 output filter. - -Proximity operator added to Prefix Query Format (PQF). - -In test client command "base" accepts multiple databases. - -Fixed bug in cs_close stack that caused trouble with WINSOCK. - ---- 1.3 1996/10/11 - -Fixed tagging bug in ResourceReportResponse PDU encoder/decode. - -Smallish bug-fixes in the new encoders/decoders (explain). - -Bug fixed in DeleteRequest. - -Fixed tagging bug of type 101 query in SearchRequest-Query PDU encoder/decoder. - -Fixed tagging bug in ResourceReportResponse PDU encoder/decode. - -Added SOIF syntax (using private OID for now) to retrieval module and client. - -Added Update extended service. - -Added SearchResult-1 additional info structure. - -Added optional CCL (ISO8777) interpreter as separate module. Available -in linemode client. - ---- 1.2 1996/6/10 (1st anniversary release) - -Added Summary record syntax. Lightly tested. - -Added OPAC record syntax. Untested. - -Added ResourceReport service encoders/decoders. Untested. - -Fixed bug in z_Unit - wrong tagging on unitSystem. - -Fixed bug in the DiagRecs decoder. - -Added options for max PDU size and session timeout to frontend-server. - -Added documentation of query-language parsers and other supporting utilities. - -[frontend-server] Added Attribute set to the bend_scanrequest API. - -[frontend-server] NextResultSetPosition was sometimes set incorrectly when -surrogate diagnostics were generated. - -[retrieval] Allow multiple local values for attribute. - -[retrieval] Allow multiple attributes per element in .abs files. index type. - -[retrieval] Added Summary tagset, abstract syntax, and d1-node/ASN filter. - ---- 1.1pl2 1996/4/10 - -Minor changes, mostly specific to Zebra's requirements (retrieval) - ---- 1.1 1996/2/20 - -Repaired bug in frontend server when running multiple listening -endpoints in dynamic mode. - -z_External() now won't break if a known, ASN.1 value comes encapsulated -in an octet-string. The value will pass through unmodified in an Odr_oct. - -Added a bit of code to the demo client to decode & display -ASN.1-structured records represented in the octet-aligned branch of -the EXTERNAL CHOICE. Thanks to CAS for prodding us to finally do this. - -Added z_ext_getentbyref() to the ASN module. Doc updated. - -* Completed the SCAN definition in the ASN module. This may break SCAN -code based on older YAZ-versions at compile-time. The fix is easy - -look in proto.h. - -* Added 'displayTerm' and OtherInformation to the TermInfo structure -under the SCAN definition. Remember to initialize this, server-people. - -Comstack should now support the WAIS protocol in TCP/IP mode. Note -that this does not extend to ODR and ASN. - -Comstack allows insertion of established socket (primarily for -inetd-operation of servers). Doc updated. - -Front-end server can now start from the inetd in TCP mode. Doc -updated. - ---- 1.0pl4 1996/1/24 - -Added Sort PDU. - -Fixed small problem in SUTRS-filter. A newline was sometimes inserted before -the rank and record number. - -Adjustments to the frontend server. - -Fixed diagnostic BER dumper. It ignored the file argument. - ---- 1.0pl3 1996/1/2 - -Various changes to retrieval module. - -Changed the union discriminators of the protocol files from enums to -ints paired with #defines. - -*Changed oident.class to oident.oclass to avoid a reserved word in C++ - compilers. - -*Changed operator in the RPN structure to 'roperator', again to avoid a - conflict with C++. - -Fixed problems in Explain decoders/encoders. - ---- 1.0pl2 1995/12/6 - -Memory bug in log module fixed. - ---- 1.0pl1 1995/12/5 - -Occasional malloc() of 0 bytes fixed in d1_espec.c. - -Bug in Explain DatabaseInfo module fixed. - -Some '\r' snuck into one or two of the ret'l config tables. A curse on Windows. - ---- 1.0 1995/11/28 - -The shift to v1.0 signals that we now consider the *core* functionality -of YAZ reasonably stable (the core being more or less equivalent to -Z39.50-1992). Some of the really nifty v3 stuff is still not heavily -tested (Explain not at all - though that will happen soonish). - -Minor changes to code to support Windows port. - -Various minor changes after we're getting to use GRS-1 & co. more. - -Added Espec-1 format. - -Added VisibleString field body type to GRS-1. It is illegal acc. to my copy -of the protocol and it cannot be selected when encoding (maps into 'string' -when decoding). Needed to talk to some servers. - -Demo client can request simple element set names. - -Added Diagnostic Format encoders/decoders. - -Added simple Close handling to frontend server (no hooks for resource -reporting yet), and demonstration client. - -Added cs_addrstr() command to COMSTACK to retrieve peer hostname/address. - ---- 1.0b3 1995/08/24 - -Fixed bug in the frontend-server. The numberOfRecordsReturned field was -handled incorrectly when records were requested in the searchResponse. This -will only affect you if you use the frontend-server. - -Added GRS-1 encoders/decoders to the service-level API. Lightly tested. -Test-client will ask for and print GRS1. Ztest will return dummy records -on request. - -Added Explain encoders/decoders to the service-level API. Untested. - -Added Extended Services: Item Order encoders and decoders to the Service- -level API. Untested. We could use a recent copy of the pertinent bits -of the ILL protocol to add those bits. - -Added diagnostic format 1 encoders/decoders to the service-level API. -Untested. - -Moved pretty-printing of structure-wrappers ({..}) from odr_seq.c to -odr_cons.c, which causes a more correct output. - -Fixed handling of searchRequest in frontend server. NextResultSetPosition -was always set to 0 when no records were requested in the searchRequest. - -* Added better external-handling. This shouldn't harm old code that -*encodes* externals. It can break code that looks for a -'single-ASN1-type' representation, since those types that are known -are now decoded immediately. Look at the SUTRS sample code in -seshigh.c and client.c. Documentation updated. - -Handling of structured records in bend_fetchresponse. Length -1 marks -structured record, type is deduced from format field. - ---- 1.0b2 1995/06/27 -Fairly quick maintenance release to add SUTRS support. - -Fixed handling of SUTRS records in the demonstration client. - -* Added format field to the bend_fetchrequest and bend_fetchresponce -structures of the backend API (frontend server). When the record is -returned, the value of the format field is mapped to an OID. The -value VAL_SUTRS will also cause a slightly different ASN.1 packaging -of the record. The special value VAL_NONE in the bend_request means -that no specific format was requested by the client. Documentation -updated accordingly. Test server (ztest) will return a fixed dummy -SUTRS record if your client requests SUTRS. - -Documentation updated accordingly. - -You can now set external libraries and RANLIB support in the top-level -Makefile. - ---- 1.0b 1995/06/19 -First public release. diff --git a/dependencies/yaz_3.0.14/README b/dependencies/yaz_3.0.14/README deleted file mode 100644 index f86126f..0000000 --- a/dependencies/yaz_3.0.14/README +++ /dev/null @@ -1,46 +0,0 @@ -YAZ toolkit - $Id: README,v 1.50 2007/01/03 08:42:13 adam Exp $ - -Copyright (C) 1995-2007, Index Data ApS. -See the file LICENSE for details. - -The primary output of the source here is the YAZ library, which -contains support functions for implementing the server or client -role of Z39.50 and SRU. - -On Unix, GNU configure is used to configure YAZ and generate Makefiles. -Type "./configure", then "make" to build YAZ. Read -doc/installation.unix.html for details. - -On Windows, a MS Visual Studio makefile is provided (nmake). The commands - cd \win - nmake -should do. Refer to doc/installation.win32.html for details. - -Note: If you are using the CVS snapshot of YAZ you must have autoconf, -automake, libtool and xsltproc installed. Before running configure, create -support files by running buildconf.sh in the top-level directory of YAZ. - -In any case refer to the documentation in sub directory doc or read -it online at http://www.indexdata.com/yaz/ - -File organisation: - -doc Documentation. - -src Source for the YAZ library. - -util Utility programs, ASN.1 compiler, MARC dump utility, and others. - -client A demonstration client for testing the protocol. It's bug'n - ugly. But, it supports many features. - -ztest A demonstration server that implements a backend. - -etc Various configuration files. - -include/yaz The various header files. - -To get more information or assistance, send mail to yaz-help@indexdata.dk. -Even better, sign on to the YAZ mailing list here: -http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yazlist - diff --git a/dependencies/yaz_3.0.14/bin/.yazclient.history b/dependencies/yaz_3.0.14/bin/.yazclient.history deleted file mode 100644 index 7a66ec4..0000000 --- a/dependencies/yaz_3.0.14/bin/.yazclient.history +++ /dev/null @@ -1,6 +0,0 @@ -open talisbase.talis.com:210 -open library.ox.ac.uk:210 -bye -exit -open talisbase.talis.com:210 -exit diff --git a/dependencies/yaz_3.0.14/bin/LICENSE.txt b/dependencies/yaz_3.0.14/bin/LICENSE.txt deleted file mode 100644 index f3723a3..0000000 --- a/dependencies/yaz_3.0.14/bin/LICENSE.txt +++ /dev/null @@ -1,14 +0,0 @@ -Copyright (c) 1995-2007, Index Data. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - * Neither the name of Index Data nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/dependencies/yaz_3.0.14/bin/cql2pqf.exe b/dependencies/yaz_3.0.14/bin/cql2pqf.exe deleted file mode 100644 index ab492142e03279106404c7f560d716703621ec50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI3Piz!b9LIlK3NE#UwXmUws#D#P60tN^L!$*ZpPote(Q zL8=5alQmg~CO!B+Xsl?EL=sF$Yz&8zHj$W;kVs-1IrP9`usvWf4F|&bdo$hA_P|9G zjCn8p{@(lj-tYb1o6pW=cBk#V!>|efN>Q#0Fp52GQO`cyOyTspr+-=p7uQ~`84a{u zt?87N9H$#vpCM$ql%T2_;f_e0VXB;>axHrkTvijM`ihFO$U^B=$?*?f+kSq!sJgnd z({1QaJa=Zg75lonbJH_<19n{L5=;EA)|e20>f>DrYijmH4m0;^!l@SWD; z+zhM_JRVpB5W)!ON4HjDzvxH(G5VATZN=ULLi4auUS6W-qgjYAbl&VK4xrf^{mTaH z9)C#5dLkVoIG>@1qz5W$$r=veaJ?Z4L;!e-=3(Fg0~{~3DBcG3ei~e(u?7^aNBbo$ z3NW_BWkW`Q5nu!u0Y-okU<4QeMt~7u1Q>z;AOUNxJkgcx{<$TxF@VQ&DoX(D;}On2 z7>U@vU$vR=TVSm)W=7-;hIo zo@^QFjBp(Z=R8eliPTvW!TgxHdh`Nj#gj6J9ZfBtjmp(HmP0fUuJg}bjoFqPuy3EJ z+MDch%*E{_Z&be5yp?pr5lqHYB%ECs?Q*tzbHT?)Nu=4ouV)L&{$1Rp!SCQ1P zTT8H(TdR9E<5}6WqGu0#_Mm5bJlpBnINC0IuHTj4#gTk?LlndjJO;$YLM`pBIWCdx zE=Z0g-2=K^Ip*!RDkkXFS`}Al=Y~TVv@6EYDFof{M$fzCc_UTSfisinIpeh8j<0YC zX1Uypo4Mg?TF?0qXXJ96kb^YwB)TJ`I4Z=ZhGJ83_oa*I48>;RL$T|qoA}Z0#)Wbz zT>^AT8!mCfEp)f`89aqKNx5YinjYT z0DqyTP!p&NsMDzTQ97y@)q*NE7h5$x-!-7Bmc%QuUYrBCf-1INx(8SEmiLeHIzEQf zK!(=^BPSWWDCLNu4FY`QMTsG(xwK|v`BX;BN$~B8sAL$L0bj3(w(e=e_ZL1{TGxo ziV0 zr(fw;;Jx(S!1ttd(yC;LWPk`fuk$>ws0xwPqtJtXpG2~Pq6$V|4&T=BrZ6=N7S81) zVj|+KKxD)Q@CERK*l*?tpB9y)0R4Wwl$ND$nE+_MpZ2}?{0h9F>pU6MasC&2s+6P? zUKUg_BN>eVKLVf9RQv=pX?^(}#ym!V5nu!u0Y-okU<4QeMt~7u1pZ$Hwu#cwZK_Eh z|KKfDXYu)!^PW_>T9K>Gl>y)%BnDL?9P=lrpB9viByvRK@JUjn{|BH;22rG(zXa5m z@#ox}&?l8~_`v*vK9J@PJg;)i>dr%4^MmZ2+=1o+Q!)m39xB7%Q(0pK7y(9r5nu!u W0Y-okU<4QeMt~7u1Q>yTO5ktgeR{kA diff --git a/dependencies/yaz_3.0.14/bin/cql2xcql.exe b/dependencies/yaz_3.0.14/bin/cql2xcql.exe deleted file mode 100644 index 806a7521872e499f01f73c31d91b0258358e505b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI2U1%It6vxjdOWDS36Wgpx@na$zNkKv&Rf43j;BHK1L$}#vn`rDf-JQ)$*qzzV z-YH20MTUUukdg<#K{S&G4?mb_3ZhpzjYoQxjB8h#yM}MLj3?gu^Y-+R@FMSKfc++l$q@x|f%$NsQOe zpQ{ey+P!?Cn(*qEswZ(>`Se0Hj_c_!mc9CjnpODhzi*mK03-v=aA@()V7;~lZGlGu zdjQ%oBly{akK(!;$NW9UoCml1>H*<>Xq=bV=*8%2`P$-DnE){0?fzqj=jQHnWDk>P z7}h77(D4h^)i5IfyxC*qBqjm8$NMnx4+GrSEQWsuJ$@S`d9D}5&*N)@#Q;_tLfR4m zB0vO)01+SpM1Tko0U|&Ih`>WgAZ<@ZTgNgsi?%PsqwObBnY1GG#-Q)k4*|Tca~qwt z-fr#OW&QK3>~U*HGas{)(T?M8L=a+F3)(w3gLWa>u`n9#7^#gr{Bs0<&b;cJ$6)@J zeVZMaci(<>EaRN@s-a`%otte-PvSADjKkkrt@RK-q}vYjoYIc>uzrl;lb-ON6v{Y9 zy{2H_s(A8^*VpU_@3XE5BN^wAUr9L!{c|$TQ}^^P`sQ{`;)vTd?)g#Ar#zqZ{E+A4 z=*R5sX;)Ejr=<4BAh(3aK`K}2;;XeSq%$WfvSZ1A!F0flv|`_c6^`MRT`L^tiyLXj zq#Yi>pb~N;9bVM$MN0!bfUkxya@P2PN20g|vsD?whq;k{exCCIR+LsOC?VeX4u(sI zaaT!fE+jTn?hCybEF`v43yJHf8!0!^i-Ss#j{qOx@9l2ndH%HFExd)f<(k)B^M=!W z*LAJ+-b&(E90FcXY}+AwZ)JERb=+ygv5AQ_TXtM?!;M6-?sj#1{xEule+Ysu01p5B z1Uvgy*VcYUbGt%bR}eiJ5g-CYfCvx)B0vO)01+SpM1Tl9JOqC01ekjkAdebF4WeE| zox}V^)MeCF)CTHz)Ssw5Sl^F&4#n*(=H^g&)Cg(-)s5;v)y+j~!8hBdQGW>aEWjt& z6UX@LhTQjjt|7)~*B-=uzl7}Rg2;4nrdSZmET`%KAA7lyWRzt?G~}{bVDM36E+?0n zq0iz^)R?VJe|B%qP_-%eurZf4WQob}RzNQ?RoBWeE6w%wOeYJtfH9BuNF_>BQkEQzA1YATbpGcb>Y z5g-CYfCvx)B0vNl5P|fp#-tem-}-c;1)r(C#Q)1nMg)ie5g-CYfCvx)B0vO)01+Sp LM1TnVp9%a8gjdaC diff --git a/dependencies/yaz_3.0.14/bin/iconv.dll b/dependencies/yaz_3.0.14/bin/iconv.dll deleted file mode 100644 index df718829fc0141a05d8a2b2dee34b24a0f61bb2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 888832 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%0D0yP5}NGg(sG!Ak=o(}Rv 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

>qL``8Q*GXA^IDrxZDIigv>DST z7^H7?d#25E4RRF|6AUDqwiu2Wt{7c0dSdj&7>F?xW28;IGpNmwHZQe#q0K9ex^t{b zaBhLUOedf_e%<+}J7*f6-bsYYpzd7g4q#-7l6b?p?f^I;nd(b=AnB2$$C92%dMfER zNzWub*PTlaf!Kd$TuLAi&xAcA_RQJSXU|Y&L2TM8dqRaC6&#iIv*%5USt;hEn3rNf ziinV7_JEk0vIl9`l07r_fK0$+U?lvAstPEqE)_;pz|I;F+Mo&@Mqe}3R@F6Czu13E zkgxjzG9&E2SFp(T-?2Z={!8{JIf<7-?7v}uTB;$bhNX(P;XcX-2)qyMzh*xIX^j0T z0>OnNyZX)kC;^-|juqH!G9XwHZ(!=Do0stZhqeS897w!?_HS z7W89-Lmff)3TAdU{!!zU;AI`M$N^9Lqw1R+`z8maij`m#Me9IXhaBHvGzdGF97BTk z!LcuL01L0lLGfbEsSQq{jtSDkE4EMULqStR@{5z-oc!e^;_444S2Wn5KHh_hfJGD3 zqfMHiNg>VoDoysewyC;h#-!$1fy;R=g9AapsYvfxdR3a?`8@T1xm=(b5L!_Uci4Pk z(_+))+7`pX9*sHe0XJ~#(+Z0EGGhX!)6c3(4bJ}~?xvD+__4*4U;{8SEElHUEcly`Re2Y3aZfw z8ry3M8n6(W-_iE&(n+08I&{)dkgJ9868Q6m?u2zGsyjD2^r}O3jf;-4N+&j*H0h+P zJD_nu-Jr?6Bhb(mCMp|LplgDs6g;6|fPzO9gscKE$)zCn%Qt(zH1_pbOD<4Sd}7ZB zdp_B-W)IM5M;nedY>iNGj>NW0!D9-Z(@9UESvw3U^+(}NbzP(Iw$9lU-k=z$o?i;# zyF$o%QP&7i9f{f!bp%ah7(tS&>D;T%)ir!Cb4{HChv{lG#rQK60taYQ418vjVjV*6 z6RW9Pgb^gXuM`6p+MpQT;Huky6mztRG!|bkVB3Q>Qxt2ddyqC@Y(VLlgrp`3pauH+ zMRyXq6VsTjki?PN=J+PZw>iGWaX?~&k`PcK)Wpe&P|_k~JxF1)7o6H6j3D%Gs4OV% zca^;)fWyL+3UBQBWACQQLhDkJVp)n6PVI7Po4s4?-C^%8d$-wx-1e6WKwL;vXPg2W z@shbi5NhUM6+Ha?IRXy@i6+!{!0INLAB2>GVE#BJ*ydko;^UCR0H}=%W#XVm#jVKY z5|^Ji)aB5CLoUI76Sk{ml#qJl+;DuCVGiKj(qM;BmWq2gzE6-uI;g=Rql|JKlV0~Z z?xVprr}k*D#VI@kRYQ{iaR-~qwrPS54#5d3gFy1=62cZXxm@8gfDo`jReBcJcDVt^ z*AcB#+*zp;xF|Rpp)7bo!GGGonK+@~r3!p#oD>FllD-OjQV>i#2oM~FI8TRi0pAv*ZBOu}GjN0Sk&F5_%Hc`Vt)o+_PZ<2}_(9 z?t9wIYGiqE#lgf1Om0d7JAt)ZNO~!-e(fL$dXV%=!+Oq(OSxk20TsTeuw*X|kq`DB zv-gO-hwSyRcaI7v{bN&91+Io(FMECLJ!9`F`zs8aGVlQ4W}&%)CCd}mc0)Zy6r6

t5J3$laGSJ3a9_sZ9oFy$z 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 z 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

    {aV4s|EC} zo4vd3+LNG-r`QYa^X*&hC(uLJ+aKD0*qxo-p!x?o!<=KFbhkR|kiho#@ATh7ioG%Y z037d~^e&lXMi7nO?2A6?Mtv8!M9R6uX^Rx{y7vbAbo#76QVd_-1mhrt7i_Ayrx9X1C9_*gOSzk5U9PL-FB{J>l`Yrm~`YiJ_^IG$1wCcZ+ zKlii@>tJi5bqrecoz@!bYpadDmtAGoV~x2UD&5W*>zst`Vx{w_^D|o4mvHg>;4D+q zr>3ujl75)hGWAFx4~TyCYaxAtU6nz|-lMe+`XTy4{R&;^`EMnEL^C=P3fE|!Y%R0r zdk6dV{zRzFY`Fi^nUb;=C6zRhLH9a@_3^0srPd0$^=U>c4 z)<0I2{ek^EvPU1sqlf3R%inZ{yJNAbta9)168_Ur{ZCR~r3R*l(Zf5DNna6toZO;h z2w;0F2{(taf+%U{^TCJ=J}b@o3}i;`M|FmwD5%C!C1H@~!ue zx4VBDvhWN3NAQz9Q|Z)Usgtl4{F3U8C2nkb2CL;}*7@t{pVEJ)1t%z3-a^_5hGK#H z8JVr4y0?0)dKMDfBkFrlg?3QNnOY+j#k4+7uh3^h5m)FR>4TB!pE5o({x)io?<7A@ z4l(aCSDQOo`&d6(_4a)GBKtJ@Jq{b;v*}tpRm!J{9 z#aiAeWu^`ZZ3S=9-<^<54@n=79q9h_TUZKq%9zLlb3>W4h3GaiXD6k%GE_N6Iaj$w zc~<#UX{GJ~l{->B5&PK#P_J)phK{_Cn+`l0$9{ZgdOx3PG1H7w&$ zV~%mD@qqD;(K)$qGMOBctV+(tB6f?^kiSg+oa}7wi(WFutTJb_Yjg714`w@TLVH+_ zbr2M3o^`%;CG_ZdG{<+bFSLUmb+?7AHcC>YbL=Jd6;fV%#eUcRfjzyQ)7??Ar;I}S zJkB`>ntugWhUbw(-*tX)+PT}gySS>9D-K7ZILBS$UI_<%9?kMSEDr6w?XW4S-cWCp zHwoSH9B+wtg?G32JS+NL?+33P+T|`-A%AqjtQQR!pTr?L00V)s1( zwfq2m^oMjiB)IMwH8V6b3ckdGUfn|4sFT>~YL&&gFEXMZBI)no?9ZM#0UP7R&i#z!7H2a%r4v%>2;|fX%% z?4|1JL@50;>dR^yt&^r{$DqctJa>i*+gb&3fw-YaV*dZT8#t$LKKKoH^KH z&c$Z^m(vSN`~>${_j31IXzWjJE6>8JIMF)|yFyQP)ZK!XZER8U4d6*^L~Yew)G_K2 zYCT-(54AV@;Wlh68?+y^sd^=H&du=azw}PVXtd4?j2)7*lFO5yB}>d5&4K25<`w2T z_-)@th+?7U;`iLB~Jm<7RUKL}@GAR5K#&ZTG+cRQ~+ z8=OzEk#u(r*I_*$hE#m5d#}63ebfES{nc&j?F@zRn4y_avS++sy_S9_zn?z=ZT?5U zKib2^NWWWB|D<+D#+{fxhc&lfW=!U+%z0wHZEjJr4sa;C=LO2s%+Q|boekCiUf7hT%J+T}zsR5Ze$34{?8J4(D&u>jE1LG87L;Zr2n(Llf1=PM6dI1 zL%Mz0`_TK++v5H0?dtF2r~M)RRBRR}`e&jsc1j(Snv*&oOWN(&9J)a74rfpO#+&Uf z-l?Qz$q~@FgmRE_2wL@}*lT`Mj!}<8ww;egy;Qvl?tBka`Wbbt`mVYO>)CHew;hn! zdusb>2A16++E^sp>B#ISXbTvD%d~6Jy6?wQ{sOj}K#uzb&ReRt*SFVq)_dyvpo=GU zUmvIslUALh_38g-iMOrM!AKZg@ICY}dSb)qZS*k|{1CR`8~uzyjPZzn^++s4x@a_( z8sA!5+4H6B`VMvi+eSCLhuzceW%q^x#4T|{>=AaEJ)X69ggqG>ZY2_QojuE51ufWQ zzkrTb;XmvTN!j?e2JnbPfSBtSFGO7%)7k-zM)Nz`wzk+47M{*Rh=qJeq*5}sV ztm#|rBb|GkU*KUYuz!Ay{5=&r?iT;f)NiT(pl?mb4mTvwyy z$k%tke>!RtwO2F?Kiney8ND;RYn$Y!=FaYLw-K+?Ay^XL^;@E`osqsFb9d%(AsHzx zrCiiQQI&e=%m{ed9q2D}wF&wXFB=e^@7`1(&n)AQY_o+)AeE=Cbujx07I0kltxzZuG(bn zPOYbYBfiNuk`I`Z>}PG=xxoG2KPc^HPQ2Z&_jkO4Z-hGkA}0wJ~}h;}K(h zau@3y>muwZNoRYc*X8a#aM``RkG*UB4yn<|YQcSLl(W$Y|1{TF+t`QLN5h4#aR#~< zyWb&`ALA{7_8yQr4NJ$~XlK$swmg{6|0t&_uPGlYCFq=oY4g#ajz9)^)i9G4SmBpo zYZ!}U`4RlC8|~KG-(i>89xK(c$kMmDw|FHhT9)*o-`^-_vR_9byLP@h#dtKBtUo2H$wJ%$JI3jJ~9?Cp$qjTOn! z=Dn6<53w(`J2^)=vz;rE-*>?3Gs?Zs_fo@B52Zd#*I+YvU9`J4c$a;YHOfcI0qQ7q z4Ho-O`g}BEhn4w4@;Y;Ss}FNO(>~i?j-T}%=Sufe=wA!}TmRbBzF1H@iFP)&l=?|q zWutNh9Q1LmxAlhA(%#wj;O!^cOObw$K~`*oCFwRSZGZW-sYQ4g-W2z44%Wn_dRU(}C z^~z`J1Z|{#F`WGdtlMuJUm`s^$wQEZ-$pa)YF%L6YW-=QX77rwc{kE~OMkI{WcnM? zpPsEsx&bPbT6Dxm>CJNUZ5M>nO1QvEK4Wf7JeOw~cjB}8+qfC;>l(aq3Ob^V&7dDz z$PiX~nKd4b@d#_OHO;EDs#!m`*+ZNi-AmkCvC^${_r=<@#hdKkiiEw{FHM*9Yb9fC z7AbwzEyxjV-A-7ou5zDqkr>Kal`P}gbDPg!v zpdYUyRS;-Q=N2^w*jX z;nUt1sB~d~mJgo=PZPly2Dcdn&!qJ^El#)YQw> zPt*?RNlUN+na0s*ovYBZ|4c40mtnaWZO=qb-Ph^w9EP{(zfN!WU~GdOkay;YwJ^Vx zq=A}p7<$aL%35_0+@jFl^rqed`((9oyzz{|if(Kr?G9~~o$;)dD<>-VDHmYHDbp^& zKJ%3}Os~V2utxt@AA}WZJa4-+`Eas}>6vR;nXS=fU2Ms>S}W01KC{Z~a;yxC(Ph6v z`kv;o2wz)mc{Y>8+ zMbyJ_tcnNBm$20RW^TpPQfjreI#>y0^KMoT{K&l+!~e^EY#Jl+4K~ri_7lj%Tb!5S z8OM76^&axxW}kM(w>2CddAh$0op`N(R;remnS0VN;_=&>-Z^u0W;WK_XEJ|gN>;QI z?xhk_$)J~vQ7F-QQeopPB?XPu^zV8!d1j90Oxp_T)&fCou=1OSEBjx~W zXc)EeDg1htJ=Z=7oqYiovu)5wQ%)Ja5J9ybgMy#qU5OW@6Pn~{{zc6E6aMFD>%Eby zer6Z%lwN~%`LFcu86(q={(ULd!RlbYmSEdC2>W9tmgO(-PamV5uH6I$-k^P{ZHE-z z50CD0qE;TqGbps8hUB?KWvorMHb*lDXApaFtNFb7r+EcB;p^X+*K0-%o%^K~_+SHMX4`oeO zvkK3I?%zW6&0~0?-^OS4CpO<5@E`Ow1{i~}cUG|W&cXhBjd44&#aiP{<5MKR4#~dw zJ;x^}CXZkRPD@rMtCMwTTXTtCn2)Zp5USM3UcC%^@p81oo7uIik%Yd%L;nY((v=l@ zAQ37f%m$)z&L%?TD)SDg*GpzwYddRKeAuJm2S-~c5|eW-@lW?#k6K;r8FpLv`W4ua z4sq+;7u{2^yf4Dfw;Wp>bG5ORw0WJN9IL(r_1LU!VP|e7lAu&?t9M{`cG0`BKQ|M5 z)jipQ7?`urLT`lPKaBP^!W)M#;{xw4_~u4DjaykKSNS*lS75P!FZFrqEc~V);Wh1u z#rhch)py`?XjO7MkF8biR$fPw9;i-2d+DuZh(fsn-T8Mdq3^5r*H6$dz}o&fGV>hc zOvdpcMsXvf_!S!3FGR1kNp`}IybJc4dTi^jCO?Er?M>`LHTvqSW;eLw1$ez$*$3JK z@IhQ^KZ6$itKGqIiAY+4RN4+d{cYG3ZLCqBcwPPT@I2hkNFf zk6AmRy9~vedold8C7!wpWcT~A-yGrHjrlC*T`KNbh%fx!}KqW4#_=}gOgK|m!qqGft9nPnKlojC)csl zpD{lsW@~38hY{8x)=c_yrS%Thy%i*9TAgRn6j?bi_{cMG1<@BK7< zz6Q_L?r`}Z(AqO~2VlKAK8&FF9Q~&tUx8;5jYFdV3?W3GI-Q&P!j9 zgfs*X@?TmK zMjDqJFXDfhkh}pKezke3dA0coGJ$FhB!X`UcIU9`%wA4cBCFHM`K8kLyE_unQ|y?* z+L_uc>tSJ`erlN_=s*U|D2Oud~d#7HYZzDfltxX(Gbjz*_r}^96q4Uz{>@@*|19IF`Ac=gxP} zW*je;9^hNC+^%vTXFOVC?b^fJ2kAWN`QAWpm^X&~bTszynb?m`^iIc;+enM!03FT`H04 zn%XV3cj^ax4!a>=zlo$~VKqBSj89`}$r?aUrN1(q6@C`9_&cRFt9udlhCi@eXvAVw zv3k0*?}k8+@6%t@6UIJ7k{tz2UV%*YmC*`YnUfp>H#;qPH!(baCI^`l;Y<$@r_mZ& zNkcDrOvb3pwjV;m{0@EoWM`>!r_&nC_MyZ`E_9#90{EBPPew;ALDqN>s?yi@p(XQ( zSb2#z+7UnS(d^fUQ@xNhy2uEelZXo~Szam+j9v_V-a}Qfy9~!FTZ#YeRCO`-=9{pI z{REfaP1_3|Z(#*A^s1ts+cIN?ud^1ucUriei4E9?crcG>(80t7oaCPF zF2?S8xqCHUk-LZ*e1VvN_lOV^H0cNTPwdn?dVPox9mYx!@u4R}W0zn@yxV(=*t;Lm zp$z=w2NU~r6t<`;|7^I{Z+7R+snk*0ph>JGuHk#-Ywa%mcYRN+aEHU8 z+L;=WZ)dT?Q`i+wcHW}J8g%T{{QUXR0rhW+rjVx8M)m7cTg)h@@CuTC$Yp zJ1eF#mMA_Edw8d^N>T6>H9%<|RbN%VR}*?qJSh*M3y)gBYVT8J(wzm)*^~pE#SZh^X0)SQ?dR znmIBO?iMI@Dl<^5-?gPBivb+=Qw|`aW0KOS?8XY1j(7W1^=u-nE+c|`we>IP1sY6m86I_>?^J0%Y7(=2Pb9=08x*Ug-Gqto^VnJ!ij)f2b?b)6<>1 zocE=-;v#%AGvt$}AV&rK=_8`bzCk*%R3DyNqn?g7daK$=+gBS%yv9w$>D_}j;%j7< zuKNC1b6iz0$;^bEmd9c;^(fr*^SY3IOjI{!7 zcNLzcxXkdQEok(2ZX@2vAhs(P)zuy=-c6~OiMkw{?nXq?w9F!6EO~Ix*3$lSm8!r| z&evA!&!S}qmg{$oPmDl*uQnZP2$C@#0RKRu4e!U2x;}MjdR_WStVktFYsupdCxGhh z0%$wIm` zjFTW&5DokoeztW=dv$xYr#cvK&wO=>jOp13ubzP{uu6MG+ZRpx0!|Bj%Wj=u{1;pB zf#%8PVl;(PdpCQ3Z0e^VD?f)7N%bo6lzrzN;5Vf1NNq@W&+Nf0jL*!#5_^8;IwB2T zBywBo{bjACO?D?`AH~KWJ4rcKIf*FWtCX9SGtj2CBc5@xF)6vs+>vPO*X_~Xnf{A- z+*+ruO6|$1h?2>zrG4&4^;LG`naTfJ_i=_`ihBxP?(f_;=|MlN$H&OHvU@mr@jmi$ zYa*!oAYoRg=41E#A@xZ574*QZ>5{tE(vEdBGTV`=u8q?=;>&mx%lGg4Z|w6yME7p|niyU+TI`UmuYrbU7v>{sj0IX|ATc;CWvI6b%W9iM^-9Ev-&K~DY z!Haka+D>P`C(&+a`TM3ei6>`DiDm1MNf6D}jTNh9EHvU%iOs!&SgVb~5;?zh$$I8% zH>EFnXe6sGA?9{G`tXfJKW^ltP77j(<{Bp>7r$@pgRXcs63>0e#_N+CuvBbHX3W9# z_)PSiYt3DVgc*yUc@fbJe-NqWaS~w!+WUBX$s$(dZ>K%}<9@`0UW+|@je98kuK2tV>E4KiPqBB*jm{E+t?n;>G*vA;T+F+>6`kMa|RyqFSFP$mp~2g!wdHbF+@LT zPop;{@Dd$j9FA}FG<-id;e~$|Tk7XXdTpRl{juqn6C-pTn(#}^+Pds0e1TTHIk_eI z8|PI@IIA)Rop^!VJ3ByA=Cgv{M1S~#d7I6gJprc?{`RqWg&#&{+sWOJsK(E*?_Y=( z^8oTj2AS$FzjJCY;uJ4LIu+*?6nx&p(-oXlD1ip)nfHWsV|nY6YF>FDR?_Q_Cj>0C%bT7MkatUNzqO+r2KS z=|m$xM$ALMbPbWlqmgW06doM-d24A8u4Qk3uKcc?Dy=&&;VD@MU)!K=#OpT^U*7xd z>ZwThbw*jTx9Jg`@)fb3!&$A*+plA38sH9dSG&7-hY`J$fvzR7YyXNjtYmdSKlUVY zcN+Y21)9WGY{TP;2ER$Y7j3s4R=aiDfmr24T-TSxOBndD)?=+1hV}FlV*dJIsX52I z(EJ98X^XU$9Yyp*TpPR4UgTWmTHZn4lip)Ush^?Q%t+M{Vf=GCNxU@gxwf^`vv-7U zJV6x7FX|-i40u)xeK#zE7wb3ZPwNxI82|T;BbfESlSyL47O`vZF*R&ihgt{OHzS>W zMr8i3`2JULx~K(`SD9POlP7qq{1chax#@e+_0~d#*QYn6bxvd*l&NL3pAz<>jRD=* z5ejy=axeYZ0@vCR59;GsM2;lt?+^WU<8f>d9g+t2nsZr+I}@qqoBd*^2_~9#L{`n^ z%*lMSFCLBEu$X^nZ%<6ZXlI7g72es&-wjQ<3}4-Z)Kp~J$JlGR_|3zJ%-Nhi0DdzO z|Iz80v!Nc0&*s)r7j2^)h{bQdvV?Pg%ZT2$;P^9{r5*6}9!6aL)!IWuWp2Qy^{dtk zD~hQvMc=!JJ@q^@whglSVc0#-PhJ8Q`2}5dC+MF+q}|ETlIyVze-G#BX_?kIYbtx^ zH){-BsKTC&^`stp@(?zGSET0J)18X%T11#Wif4rWm9&vG_ayqZ0DsdW^+Fj(n$#}9 zf;NQcvHSE>;E^vI%Zc#Q7_(aQ7Nmfeu#|`x=e9)jnXK9~trw9EyK!dkWf>dO&zb3b z$$6VS@UM?`C%Y#jKR2>_t|zwab~NXe$jpP#nm_S=_ofs7e}}&ksqr)aVj|AwribIP zp=*gYGKOOia_d}Te%CT?e{sG}L0%fp>7w)5zfZECK2-Z)-$`#2hIifH z*>j`4*Haf@1-l(P=?iGN8<^i;;1(@1+hjUtc15ZYvChY2j?2trz8f=_5?TLVW>dgd zd$uVtuwiypcEi`8p{X6I)L;ji3wJ%8HE=0%_%+ym*YiF-(R`+3ZNEf)2)Xku5{Ys?7R&YU{!%>k{ow!C5ykZg=L^0zx?z)?3$Hn!sHdmkG#Pl} z17>$?KkG=Ja8dJB(k3wuX&sE}e;e-i7Gry*U%rH|3== z#3YS`7ad9zeL3{80r~%ADA&T&VyN>aGD_+G)H9sWI6i$AC*bB~F38-=`6K3AX(Qto zJ4sHoHy)ZPjMd%vE5A^L?PiiXiwNh()V4(HbcD7H;GD&?oOqj(>8))Al4f+rk~{&|{u zwfcm506MgVUAZOp!V#QbT0lJURr`)+Afa8p3=zq z-m9=zJb{M#CM)@4=jdpt87zUv z_$Of3yaIpt3+%{W{hq1+Ag?7;DNZ$wOpQ-XVpdO2ErJ5xi6!VIDZ_0mJ%W?*yjG`Y zGty^c^IDp|g4o zU4*^pFMD?^19x$j;v?rDXKzOMSnM6|p--?*C%2LMQH}B>Ho6D#5OhiI^Z&JX?(sR- z{U5(#>_{_*hNU^nY1jFDU7HMx$zn7$hgh{(TA3Oa>o%D~8Bud=GOSE3M#E@1)UZk{ zA!=#Wurv${@q2zg*LBS>so#D7et+HfA9sKJ9>4Bu-|zSHKD?$xn|P%HcnI{p}OM>Q~x7v~RZ03qH(TSYKhRBm7>&jUatNSMcUUepiMOoFy%Z8yZIVy*c#s22I=W8(j3IS`4gP- zc{~MmQCBraS=E+#Sp&!26E)Q!W}?xs!sGFDPouxSsa;A%&xY~LN1I!uJ*Yj#Mp~{t zPmQSy`_veXQ(IkEI4G;GC!7Bu-tlO@H{pn$2KV$PywghjRvYk2?quFRNFVq~vQJlG z6@2iA2H*_us@KrLd%{8u(nsq@Q=!H)?@WV@dK12TCADb-m1(E!?#Dov%k}5~!yIb5 z^qFU(K+JaT_4z0fcR9EF=U}rZqRW|SoDZ`haNPAMM0bc;n7(y_cYdoUtR0xH5jUq$ zjjrZbnt72%YvtzFHm6bqMo094~AxY91{P!mAA+2M2QOFW}7HOmN_JDr-P zr$RlC?&}-a@}HSKJKV+#X5(DXWgZzpU7uu}&0M(}R^us4hBXuRE!&#IBy_7^ZB`Ap zomgg-UG${bL;6BAuP$fW4GH z;m4-hnT_pvu!>}uGz#MW`iemQai8iz`m2#IG~IC2m}FXs*Y6-&6-7yXMH2t_da47e zejvqb)f?sMbJKZna(v+${W(2>I>+xe^Sz6S`5Ta8;TrC0)G#Tp;rsHg;Veu8=}w0& z$T0nG?rZ7HJhX(}>wRj*7W+rRn^3nLW75OlUE$~je&{AbLE>|i^BWv{6VI$9B28C)gw%L;edW8lz8 z*NB7hPEaMPlE8)DMF+MMm$eVICln;8o3D4_<1u4-+>YtDk z$3^owOGBY8_H~z>Tu*-C5S~|W=6r!IxxNnt^Zv6;&KJQiUZke1KpR%bw%!a~MYf?K zjLU1rejw#%QO>@}W_sP+3`}Jjll+&`M^8gB-o~icNpld$mAby zDYI2SYQpH1qnTOvP@&GkkFTfq9AMWDk}i$m_=A!SGw^XoaYiOfUS|_EU_U(P39yoS zOs`j9kH&!jrkIzpP1NN~FXI;+u|%>bx91GI(2%*dWq7a~kZBTRf0Fli2&BmtJb=7~ zm-)7qpxQi$r}M{PsWwx(OTN}e=}-#2g2t_s*|S_(!A4odeyvcssXSCZDqmF-l|Rm` zeD#x>8JZ((Na^&jP1*|Wv#^QFd1ej3HTqCvColuNgK}e!{(EX^L*_f9p?|gJE8z|~ z9G;w+6p-7C#vWj|#q3cLct`45G_ap;&om%u}n zDifUTW?VgMz}c>7I)Kik=tiN8c+NPUUNIF8e712Od+su@qW9o=Hj;kxDeBW=ct2O} z#ho2Kw|a>~QBcL2QqW24=eZwdx+uXl>Ivi3o&8Wu)Y}#op17zil)-&rF+Qq`Sn{w0IEKl9|wmy|q8P-dGTt&CC?1z$k{m(#+3A2KIwiz9L3>!uo*r$bTlZ}Q; zYz_m#E@rWbml^G*L8P`!#RZoKyY;KdmtEIP_QhWFN&2C`WdhEFrP9&*8Oayr_)Y{~ zJC5X%MeviK!uE#Y0G@=)-pzg=+R6y~ENb<4_LKImU@%kB@NaQ&w(;(YP^sBz&g{Mx z2J2V8I1kkby5THR363+VH&VC6x!DVM;xgvuL+Zxp#CD^>`I!l+fwsN27t>%ed;4O} zlJLyOGufPjnZB-baT{IXrL=T_aGC!Q#rc{EZrBPHH|)SE3Ti}Z&A(=KXR5%0RO`F=R8F)&BV+5fM>^ESex)g52M zBlPAmGVx^|tnON--rcwfOHh?7to5uu*2Zkjt*xD`L2xPktt0UW)Yicd*XlT5PYy?O zwxvUMQ}8zCWk+r9&(nJj2k+A`Ujy*}m1s((N3{{z3=7#;th)Y85TEOY!8?4bHyiqq zb#cw`G;H@VqYj7UM@+?5bARd2h~Nx<%x2#hgk`(6Gah9-oA_IJa`&L_XotGz2Q-Q9 zQj^$8*$0(#3$T^pFtFReD1TNR#A6VsX`t=E+&UOU>L;{#{`jo=fa)H=JywN#_+fN+ zG4%dl_0cF1G7Rf+x?eDK!#VXFF2Fb0q;$BjpEjK{1+YiFz=mo7d*1^483-2j8vA1~ z?xa_!Vjs{2?`6W8=+KL2xXT@&p0Wcfu*dN^e?%QtkeJes9Wah5>uorr-Kv8sZ(PAW z;0s3K)J$i-`912Ubh)0#|hrZ2L~yoY|n2Rv${c?1bAZPfu2siJ|-NU8%n8s-+0@3gTV_1R?vOfEy8ZB7{x{S*tV+{a3 zSjjAY4ej5fAUcy^!VVky86TtKZDBG#Mm25-IvvE{nG8z4jj#F_6hN0zw@-nWUCZC= z$G#?f+mFJ;h#9vxJN#tWtv)yyo}q@ayB0kYr+p3vVig(~ts6|ft=pJ(u^O$9kPZS6v`)=N~v57CR1 zf|57I^BzVQ-fllm7aoOXXF7QKcVa#$ahG1k2iO&-D`(+3n*|FSgcl}^8u>a{SbNR$ z;N)-McAA2!4E78BMaTB@Hv7(D>cmyJxR&NX^An(rOYi`MYhbcPz)&y5L$(&L{(1b1f$*5m(pQsko@@od*aPzX9nA3+ zvYLA0WL!=@3+JZ7U3!=9Q)>A-lSn{2raZ5#{T&Nk&veyLbu3=94Cd~$YEKy51#nwa zsd%fHsyp${!*pZFx5@@fDnpOco}`;0xIM&n_JMvY`kVt`uIE8r&3L&cvqOc_15@e5 z510niiF05_TEI4r<*&~o>EV)jHt5b*787YJ-=Zpc2u$v2{?hHJl77b_*wFqkEK#C; zKJWeje!yme&r^6Ps(2mU;Q|MOrVD*WwsI@%5Sbf(JAIFg2<1AY?*uQ91+GhoJwaGrK2!zh_Iw@)f0-PlW2 z`h{$u+rhAdVFc#jCOiNd;BV}V!Y7{Zd=tCh6=Qdl*a@Z?;Mql>GJfV><|t5^<>Ykz zirT3i+P3j18ox$!aoysES1XO=lr5xLl%hjX^3AU!FQ(Eq(Vm8fwlRA~6klJ7BV)(c zLt;=~N(0V|`8d%Y$3uHfdQgY)*DPXls!}&2*QhW1{_D6_e&S24gF}8Yf7KqG@z=B> zlP`pnvKK)FH{-(dgUuR(o^zcco_%&b^;x(=dYB%=U6)Fx!f&R5WaAW@(md5AfB z0v=lf8le|JFtt?1GLXwge2f1Ah5iF3YdN^t28V_$&_il~yld#$M=B?9ayFyQbZ2g| zs3O=FmPs$WMco@8`x3UnB2fJX8Z|1-A@ttU%zYZp(ucg0(`+X?-DD7~OQ=mcQFV^% z&*|OS`g(+`N)(Wl6&w(mwylqTyr#VkEyh%BR}Tbxu|Z*v;JJu z8q{P2Iu9RR2QZIkU_itKAh??)@DRJ<=zOS%v*|o}aJ_ZOc^ZJD?4;Df4L7Yo*E51l zkG1B>^zI|%oScF;Z9vwa;6Y|ll}>}gJzsKABvU^L-+!wnjS@GwhuPZ&+h>uDbbS~8xFvW%*E9qoI&;2uEtrd+g4fwd=FmQRrkKvL`0(V=@ZrTLDl^sMkQu1R*IDd6D4e>e} zsVK8x+|N)|+{h8@j%s@W$k}$zVHv&i5q6hEX2*BQ?eNie!K2%QNih{QQ;GgGiphI$ z0ff`bK89y5K~H@nqy}=s`SYf_W?_Dayy0 zIHpw_@veoaL)8;egr7l2HB`=!olqQpt!r%1!T(->n=&xV#DT$Nb8gR|dB2y8Ha(N9 z&>QA3&wOrbj1y`DN}pyhP3bjqzz(5R*MsPeweLnBxr15OLt;T|@EG<~g@JD@qUv2y zk70T!W>bG$`y>jDFSMI<$Js188N1=q&M|f)N9h=QYaLP^ds2LmVLW549Ckj)V9$vPuj)T{Q~NET$Tz&hKJO(c_>{7LO`|GXcnFHGi4`L zH&o~<^ztn^r&DCgWhtuo5%m3ULAaagpTY^Y0%i0M247O5Mj8deE%=>%Y@LF~namgV zDc!ujtvMXb8@50)HzS!<_Ss9|wBUAkdEG#}!i(l9a+YA#adz(37h1oMjQa(rMHxQA~tM%v>M9AeNzT?QZLV zHu_In8&YO_qielje>C_Fs)L*Z3p^BAJjymywS0O)g|d#S6^%5J>H0 z8cyqR(g*{YZJ*?X6yWa(w5e^;QltH&&B*NV0y?0z%&@;vja5vq<3Lr9qM2~?kd^2q z3fNS{wD1%@iLG#If8yp?Q{f>st?kgXj-W;^LDBlH z@+3@pdop~6p;k;I{mMW`91f3u1h@QI@RV_=$F}Q&n4QOw54pu~#?X=6n*vk{mEb#r z;0sF8GB@L!NJH&%&SIsS{|Nhezb(i%m{}|vWx}5}Un=+nep?aWt#5E!a!uwtGFug% z@;9|%e|ZQ-c@rJ&Dyn`BsO@ZKmNkL5m;155b|8=!OVC9{^_LND+M z-rpl&ln>w|$s_;a5AY)$Q&s}|MiNS?6mayPK>O>0^p9i@oQI=nGw)Xs=qYhx;rklK zyPbhr<|yy>BGXq8y2$D1(vFb4XaoiSnkvwc4I_-&{u;?uJ8|Q7<&-Veeh)iuf+d^D z+;f;Mx--u+k-u#>SycCu*YphCe+FN{ZrlzJz%N~etDDwTL z(4!ZFSZ!jnKfp;k1Iu*}8Fn2(C5?24T^4`*1mo#gJ8;+uCqWCa6(iGGoGl&%J`-2_ zS(^_tNFWnh82xfEtk$b^^R;lGUT7X8*~U}gPXm(QF5$Ii)(soKm0U zHXX@r4>8w`W3Ngg|2YGWYAc+^Ubygx#2Vi2R?9W7*gnnbDDUJPa z8-D$-!DO#+qP*}N2)DriavER3Z7_>$;yiZvB6B5GsgA`9Jkm^F`y-tCM5eSEXg4-l zwv%sp0JcRSkqtP?K+?q&Tu8HV#fj9=FF@S?fOYe*-OEnV!#2P+0X>e;Z_MLl zZijz6CmaZN5Bt5$cxL-UV7$UV|0LCJL$y?JCOFJ#WYDto1$s=3Op>dp7^ zICDt~XXj1TVpNiQ(MMk6JMktFzXiKsFLi%**H`&Y=8^=pobNP{0|e4AQ|)_oLjoz@{F^HW`FQwJ$k#6WJAJ z;oe-RTMRe*BiKtiScJoO`y;wKHx%{0hGw{j+u$AUjvvpAkH0rN#6YHt;q>h>Ol>cb zJ^U}ejWj&2KyG_Fmj>hwzh~K-GGNgbk65R3Ckh-#^Spx#9JlV@$(^ zkxrs<23t!OQ$h}|tvtTE0^=_5?jpXu#`u9nQtE7&jCSVP_*XK}1r;z!7Sn?pS-Qbq zJPkA32$$bjCY)cX$BL1jQX?NN^PXds6I46FQ#+$O7=qt^o&FPjFEGdvoP|jwMP?YD zz;*U6YLRv5S(;E;*5OrB#Cu9j_yD+#x$w-_V48%6t(jH_iYzn_0}O-UT&Kdy^W}RZ?58 zGP~B!_BvQ*>C_dhXwbLA;_tIAcgHilYZ7pmInuU$=R~Z(6`8PuMFQcvgm|)F$lXi?97j3GRD6 zJFqLI=eY4TQaD7~y$7`<5G7zIa_^LEwMHCWAxxNI)^OCXk<4pm>PUb3$|af3vlxZ> z@8I^$LGE?D#k-@!@mP&^f(1t_N49|IjI)xStxR}?tTz(r$w+}BOnYX(!5 z7lNXHgNkG@DBVI!Q_^2IvMoGio6fAgn@s)l2d7dDqthr@q?&U ze`QB+4K|vLF8Mec@j_;nZE!o{*N4!den!_D$WG9oogj_73tG^1R)HJ^l9W7{&N7Ql z;8$=hZ_`B7t1IxV?J>QCrnbJN9WMVPC|PoSY`K6jI_&4|A^!L;@NB@G9SNfsR^`xR1Q zH-IQ8+5Se`^Q-ZM{Z4gviG6eMA#@Om3dc-cN7)%XWTJ8=sL(FH5#exrSRFym>um1Q z_>{fAC0epl9PUbTj1DrrMv`nc*f@b+d&M-E?7b!CA9!<((f^nw%9;*pQ$)H@adpzk z9G+VN$}xcycLghUso6q#vljbow(Buun(+L%!KaY_ZVPrb1VwKW-}J|*6J3rFEmKcA z^Zq{ki!bt2_o9W5Ba7vIGB}sedAvdNHvdA^^LFd*Te)a~dcn{sZ8R^wQ=rjfH8g3g%{_a?k0bi!q zr?S2Ha)ZNEG8gUzMMN{tZA?M~8>gH^h57=H>LS{uP-a-+X*r9=b~7ABg6378@0XgU z%vv)^pIWEQrTYFzczK(dNp-iURY_OhOkYyJydylz;ytyWtN;eI)iE!b5 zPK7#8=3Hws`TO%+o7!n zzP9Cb>nry0s85Bj%}e@KbkwVP@RgU9ud~Z&)T>cz_D3u0OCrW%l&)<^VA+HRa0S!N zZjhCxB;6L1Wz`BT$S5*r-0_8W1j}@uoI%{Sg~UCa%&1<5lf&n|~u3 zB}4)W#!o=3gc>5;Fo9}bO140Vu@`A`HIwFClhhheq3d}2wV+v6aQV<`7uFa&0&_r% znwXy?Dap}ilhGTcI-LyZOfC7Kz#XY5&vGhvlLYgFz`kIPCps@%8_MC5YLB5&ak8gp0bO{g<@>V!$pO;87^ ziPJ6bkyNu8^^KcgWJY>P4y+BF$11AY&&p-;9wQCa_9<}GOm#T9x_!WK$AY)zqsP_i zd+RqE^0|}cu;F*qVcoz6N26+7#4NfGt=6ALe>T~`8oIh4z?pm2GR3Sk`@(^>;|8a$ zcvH2UZY$ePD9C!bB^*ZSQ?R)1+~+Wq)3n9@5DD{qQ}JH1$7(@bF0oTAg#}T8YaR#L zG|StwvTI5EZs>F)#lnr8(2iklF9uZ!AVX~(j9h)NekIz8vD__{&b<7a`5aCaH;aeG z$Kp%gu)kD3i{EJ{l{6aN&lzTcAQ;xKtQV};*s;I0E0Vor-rHfN$mqVrDf%5YOYO`< z>Y!bSYH}u1M{}WhO7n7LNZ|+a)3hdS^d1sY`h#0!@l5NI7Fc2QFmJT@fiw5z_6C^| zm*FMn>xSqPgf@OC`%@a{bcbdd8;mzw%4ziGp=@bGz*fefw@>Hou0bER4Xw@%y_>wZ zC&zK_>nJ119tt6Ga}k@i5!`8;K8{)RP71Y~6}*i|dc67Rh_`s&!rxcmCG#48V2W$X z&Mx$rLd*0p$kKZ7!5Q?sLUQt^a;lcdyS#d#a9c-bKFa_9brb~;qCsj4$8;Tjnt$JZ zFPUZd3XZ|s&uoMz_|jy4v|n`?v2b zHe-J>FPD&cxS!A9tV-YGqGk*9Nn#@KOZwb31{;%%p-o zs2T_}qC>N^$$UX*I~Cp%lb(QLAnk9>ycbY+-$?2l$;37tj(s8BxGw0P(6z*Z9N3s9 z0+`kMYz*4&h`>_j%>^&1M+J3Lp80V^Va>2JJLtr2&H~&sfe)3yr@Un24dJ@67;8-u0;lZAAG`bbf@9w(QNf; z)tP1*X4dukdcy`e5Y6ctrS^T zZ%?f;S>KM5I53i%???M5I#HKfdnEf!Z1w$kNhq*VPrd@!7TsUZ4ldWs670S{Q zRHbFO4=Z3FZp>{yB=$8i`*SymYl2h4nHcdqyAXg#x&6n=%|D50B#r$q9S=c9^;eJ! zZkW%L-$gcLkrV4VR(+RM1$bf=Nl*&Qtv&75&KpL5yMc`em1`WD-UQIcBug?0pQ#`= zY1Q|~W!`r0&aE5PtzV@F+DTt9%iHU;3u_QaLo}0n3{@zOxhfGBF&X_@8vdYklJ@T8 zn7FYOm7~Y4BxmI+Rm=?p)W_+T4*(r+cgxL>p(tI$QG!Lnc}KH5#h}c0py#exPB<7{ z^+8N^S!`7~HJllRx7|Wj!6s3Kds$(317G#A``)xw82{qlm)kdr^tXY zJKVnJQbL5O!$~WQB;9)?slIXYR-PmC7nl3*XMoxJ|p;Tst>5sFBVI zH2yA$oH=MU3Tm00%h)<9YTT3KahKHa@S8Hj<7?btn(9nlNr$V;&}M>!W@~f67V^mS z*;RepTx~e7+iiXxrSu^=5MD2GD+X;{gI;X_hS0R2o!s+5&JCVJRNeAJ0-7-`jaY39m1G>dTfiXK%V zU3H2KZ-q}iq1*96bs8vBptba)PdFnAA-8lAp|VPKZitz54$(Ds;k()|b6*S_6qQ+2<$NmgezsS^BDuIWpK3>? z5!bNYsSy5<)+yZ=RLDGPxy|i7WkJpJI10PO{`Jn((cF=6yiEL z%uMf?=oKWC`N|pIQT0OP{O+iHG4iI(MD$6HxqX4Gfmvwga=9b8PW-#i_f_LEM3gfhjG9=s%WLNj{3-~Y*9J{}j4y98fzNi%RglV|Qmf|DJlJz%F&bc>gaG9KQufiCJ8COiWj!LX_*5WYf zvW%u4$I6PF=&Z?UROO}Bbvd8A;|gV6J}f6$M{T}Jb@p)9=RhiSS6QP&WR;F^*6CP@ zFFR`W9BOsCvs&j+uk)Q1yI9VsWmN4-)Q<}87V_a{A%F1tcHAm-qi%;gD|d{XM@8*U z!5Ni?MrJ7r8AtWbll8j@wDmCaXDKYCm_Dzfw-Z&o3AYOe!c;h_xK%Pi5$NxtNsEmI z-x1YZU^@cYNtgInmaOOb%$mYOT8vw`1XM?0I#pm{HEVb$5+DVR6T)m6&TJ{Fw@`4z z!z+oIG8Ob&RBeIcWaDQSv!tlm`%&r~1G_21B_b-eII9g6q0BG-@;t@D6Qy!miqTAY z$P*ETBPH>s^at^+m;J+}huU_=6u$Wk=j|4`HT0xK@-Ed9r$^PXANt&Ko0PKpE-ArR zjbze@MF;fvHp2Y7?u6o0c+`^gaHq{M_O99ew{M2~@0efc*boC`_No#_Eaaw4IdOVo zF~}^P*w@ zPw1@wU*NM5QVUl5=9tQjNv^3)%xrnqd^xX)X{}5mvL2+C21pFn$nGex*C@8fShh!j zw~8q&oy{??dUGrTN%a6j^=EJFgm%a%l@)olsD}gwS`G?YSt|}o4gK$b{`&;}`vm^` K1pc3&!2bXpBAyul diff --git a/dependencies/yaz_3.0.14/bin/libxslt.dll b/dependencies/yaz_3.0.14/bin/libxslt.dll deleted file mode 100644 index a2ef9bbd4b6509b2d75431e0dc80cd2baa59a32b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161792 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 z zo9G+$-*mxHp%W8~L?gu*XxQM*&&@AQ z4i?}V`y?dC-}ddGVl%fT_1hAcdPm`$81B8{7C@7);7EV# z9C)lO)>hRae=jS)LA#r3bG5ZPS>2>=Q+KPgwUyci?GLS%-a*gR*TNP)tk*Ftql3}I z7-WnvCd2++0Q>h{<1{RuvgSSJ!=__)G}Fux=F{eU=(nn{bcb5wF$Zs04eZzKopyQm zUbl(c%uR9oxlcfcop8T)&oX*vM|t`>nw!d1;{Rh4UFRwbc_GhiF*ilZbbeIYwn!h`T1 z!%p(_Kv}ne`>-pxZQQ}I z#iMYR5btSlo4EbLA>p_%O?(|%@c``FI?~h966qu9lynxW-Ye2=^8Io%tdpuK*U;){ zNc*z-W+h_fG{%}?y3sMQF1eH+<@tVUa!t7utWPF$&u|C0i?Awd@D1@1aEX7DUkeYx*Zdhs$ICcKdY_;R zsoq%S!D3%5y)PNEE4P%}$zA33m^a(y$FN2i0C~0=8dp~bsaakRUs0psFS%WlunwP~ zO~<$#)=pwJUDK{>W%PUX#`-#p!^2iStmLis5&MMwjs25-w^Q4x=V*@Y#5?VsVa^z5 z64t4&!&=z{{|J-yzhT8%-mQf3P+bQ;k@Hw{MB%I`-tFOPb1JOFepoB6<90%-+{3rx zdt;R_5o@p{p|j8({C80J71AXdGN6H&CFY4wh=pPmNyM7A88~pd#LJ3o%cG&g=R=3j zQD1@nI;{S#D$vUvp_k`s$E<6X2rcxIy%07-8>hR|8}jrw=P#$a+shs0u3___AVlY< zG1tG~u5)Ghs(df3RRrOZut01L-LXwNDSaoEf!FMQxgMktCp&VyoG7Qr1LbUarJSmC zQ+g_C&=ft+^SZDlxpC4M24u@>Ll3jC)BUiGwKDkruGqNe2ZRPZ={=g zd%c&Q2i|{4e@lN~KdPSt{||>XzrxcWJB-gT+kZC7n4`=qnBTRn$Ew@@dw~%I>DcUFYZTZ+H3rEK3XU*R1xkF?iH9l*H{n)Ciminwvf$TgdRd)VW6jr z$H2y8mhUX#Wq6{N!4p*=yd!K8c6!p0Y3V}Yyl_$YMfk(B1S>#V)(~rn55PWY3hTrW zn~5#OL@@;(%br+uGq2?cajZBA^7MIejyO+TB)$P3CX=n(uomAZ9)f4)EAfo@y?9x? z>UprrN|mH)(%sU160>(Xc(W|2h16O~l2WC|q~5T7Ghq9UlEz6>q-UgjX|D7t=Kcz4 zjkE!?WILq50r(hCc(UL}$bxI0)GjYqk?)Z2m1E@wa${MLHE-P8%E@vUxrf{rqn|0~ z$z$XR@-#@kS@PYOU77Gpj#s9`hq^*}OIfG9tL(%o?hEBR<&tt$`CBQ26~3a*f|qiy z`YXI)l{EIwQzF=q;K^x?Igtz>N>|wRy}5L5AeRB%n+F?kEH{Ch!aapmRX#U|dl`1^ dB6t#4aBspk+{A6+wsX5UR>=ST`~Qgo{{`79T&e&7 diff --git a/dependencies/yaz_3.0.14/bin/makefile b/dependencies/yaz_3.0.14/bin/makefile deleted file mode 100644 index e4fc921..0000000 --- a/dependencies/yaz_3.0.14/bin/makefile +++ /dev/null @@ -1,874 +0,0 @@ -# Copyright (C) 1995-2007, Index Data ApS -# All rights reserved. -# $Id: makefile,v 1.136 2007/06/13 08:22:31 adam Exp $ -# -# Programmed by -# Heikki Levanto & Adam Dickmeiss - -# Parameters - -DEBUG=0 # 0 for release, 1 for debug -USE_MANIFEST = 0 - -# TCL -TCL="C:\Tcl\bin\tclsh84.exe" -#TCL="C:\Program Files\Tcl\bin\tclsh83.exe" -HAVE_TCL=1 - -# iconv charcter conversion utility -HAVE_ICONV=1 -ICONV_DIR = c:\iconv-1.9.2.win32 - -# libxslt -HAVE_LIBXSLT=1 -LIBXSLT_DIR=c:\libxslt-1.1.19.win32 - -# libxml2 -HAVE_LIBXML2=1 -LIBXML2_DIR=c:\libxml2-2.6.28.win32 - -# zlib compression (used by libxml2) -ZLIB_DIR = c:\zlib-1.2.3.win32 - -# get WIN32 binaries libxml2 & iconv & zlib from here: -# http://www.zlatkovic.com/libxml.en.html - -# bison -HAVE_BISON=1 -BISON=bison - -default: all - -all: dirs generate dll client ztest zoomsh utilprog testprog iconv libxml2 libxslt - -NSIS="c:\program files\nsis\makensis.exe" -HHC="c:\program files\html help workshop\hhc.exe" - -dist: - nmake DEBUG=1 clean - nmake DEBUG=0 clean - nmake DEBUG=0 - $(NSIS) yaz.nsi - -nsis: - $(NSIS) yaz.nsi - -nsishelp: - $(NSIS) - -generate: generated_files - -# Directories -# The current directory is supposed to be something like -# ..../yaz/win, everything is relative to that -ROOTDIR=.. # The home of yaz - -INCLDIR=$(ROOTDIR)\include # our includes -LIBDIR=$(ROOTDIR)\lib # We produce .lib, .exp etc there -BINDIR=$(ROOTDIR)\bin # We produce exes and dlls there -WINDIR=$(ROOTDIR)\win # all these Win make things -SRCDIR=$(ROOTDIR)\src # for the case we move them under src -DOCDIR=$(ROOTDIR)\doc # where the doc is - -# where we store intermediate files -!if $(DEBUG) -OBJDIR=$(WINDIR)\dobj -!else -OBJDIR=$(WINDIR)\obj -!endif - -CLIENTDIR=$(ROOTDIR)\CLIENT -ZTESTDIR=$(ROOTDIR)\ZTEST -ZOOMDIR=$(ROOTDIR)\ZOOM -UTILDIR=$(ROOTDIR)\UTIL -TESTDIR=$(ROOTDIR)\TEST - -TMPDIR=$(ROOTDIR)\win\tmp -TMP=$(TMPDIR) - -# Targets - what to make - -!if $(DEBUG) -DLL=$(BINDIR)\yaz3d.dll -YAZ_IMPLIB=$(LIBDIR)\yaz3d.lib -!else -DLL=$(BINDIR)\yaz3.dll -YAZ_IMPLIB=$(LIBDIR)\yaz3.lib -!endif - -CLIENT=$(BINDIR)\yaz-client.exe -ZOOMSH=$(BINDIR)\zoomsh.exe -ZTEST=$(BINDIR)\yaz-ztest.exe - -ZOOMTST1=$(BINDIR)\zoomtst1.exe -ZOOMTST2=$(BINDIR)\zoomtst2.exe -ZOOMTST3=$(BINDIR)\zoomtst3.exe -ZOOMTST4=$(BINDIR)\zoomtst4.exe -ZOOMTST5=$(BINDIR)\zoomtst5.exe -ZOOMTST6=$(BINDIR)\zoomtst6.exe -ZOOMTST7=$(BINDIR)\zoomtst7.exe -ZOOMTST8=$(BINDIR)\zoomtst8.exe -ZOOMTST9=$(BINDIR)\zoomtst9.exe -ZOOMTST10=$(BINDIR)\zoomtst10.exe - -CQL2PQF=$(BINDIR)\cql2pqf.exe -CQL2XCQL=$(BINDIR)\cql2xcql.exe -YAZ_MARCDUMP=$(BINDIR)\yaz-marcdump.exe - -TSTLOG=$(BINDIR)\tstlog.exe -TST_TIMING=$(BINDIR)\tst_timing.exe - -# shortcut names defined here -dll: dirs generate $(DLL) -client: dirs generate $(CLIENT) -ztest: dirs generate $(ZTEST) - -zoomsh: $(ZOOMSH) $(ZOOMTST1) $(ZOOMTST2) $(ZOOMTST3) \ - $(ZOOMTST4) $(ZOOMTST5) $(ZOOMTST6) $(ZOOMTST7) $(ZOOMTST8) $(ZOOMTST9) \ - $(ZOOMTST10) - -utilprog: $(CQL2PQF) $(CQL2XCQL) $(YAZ_MARCDUMP) - -testprog: $(TSTLOG) $(TST_TIMING) - -htmlhelp: $(DOCDIR)\htmlhelp.chm - -# Modules and conditional flags, etc - -!if $(HAVE_ICONV) -ICONV_DEF= \ - /D HAVE_ICONV_H=1 \ - /I"$(ICONV_DIR)\include" -ICONV_LIB= \ - "$(ICONV_DIR)\lib\iconv.lib" -iconv: $(BINDIR)\iconv.dll - -$(BINDIR)\iconv.dll: - copy "$(ICONV_DIR)\bin\iconv.dll" $(BINDIR) -!else -ICONV_DEF= \ - /D HAVE_ICONV_H=0 -ICONV_LIB= -iconv: - -!endif - -!if $(HAVE_LIBXML2) -LIBXML2_LIB="$(LIBXML2_DIR)\lib\libxml2.lib" -LIBXML2_DEF=/D YAZ_HAVE_XML2=1 /I"$(LIBXML2_DIR)\include" -libxml2: $(BINDIR)\libxml2.dll $(BINDIR)\zlib1.dll - -$(BINDIR)\libxml2.dll: - copy "$(LIBXML2_DIR)\bin\libxml2.dll" $(BINDIR) - -$(BINDIR)\zlib1.dll: - copy "$(ZLIB_DIR)\bin\zlib1.dll" $(BINDIR) - -!else -LIBXML2_LIB= -LIBXML2_DEF=/D YAZ_HAVE_XML2=0 -libxml2: - -!endif - -!if $(HAVE_LIBXSLT) -LIBXSLT_LIB="$(LIBXSLT_DIR)\lib\libxslt.lib" -LIBXSLT_DEF= \ - /D HAVE_XSLTSAVERESULTTOSTRING=1 \ - /D YAZ_HAVE_XSLT=1 \ - /I"$(LIBXSLT_DIR)\include" -libxslt: $(BINDIR)\libxslt.dll - -$(BINDIR)\libxslt.dll: - copy "$(LIBXSLT_DIR)\bin\libxslt.dll" $(BINDIR) - -!else -LIBXSLT_LIB= -LIBXSLT_DEF=/D YAZ_HAVE_XSLT=0 -libxslt: -!endif - - -### C and CPP compiler (the same thing) -# Note: $(CPP) has already been defined in the environment -# (if you set things up right!) - -COMMON_C_OPTIONS= \ - /nologo /W3 /EHsc /FD /c \ - $(ICONV_DEF) \ - $(LIBXML2_DEF) \ - $(LIBXSLT_DEF) \ - /D "_CRT_SECURE_NO_DEPRECATE" \ - /D "_CRT_NONSTDC_NO_DEPRECATE" \ - /D "_WINDOWS" \ - /D "WIN32" \ - /FR"$(OBJDIR)\\" \ - /Fo"$(OBJDIR)\\" \ - /Fd"$(OBJDIR)\\" - -COMMON_C_INCLUDES= \ - /I"$(ROOTDIR)\include" - -DEBUG_C_OPTIONS= \ - /D "_DEBUG" \ - /MDd /Od /Zi /Gm - -RELEASE_C_OPTIONS= \ - /D "NDEBUG" \ - /MD /O2 - -# /W3 = warning level -# /GX = Enable exception handling -# /FD = Generate file dependencies (what ever they are) -# /c = compile without linking -# /FR = Generate browse info (.sbr file that gets combined into .bsc) -# /Fo = object file name (or at least path) -# /Fd = debug database name (or path) -# /MD = Runtime library: Multithread DLL -# /MDd = Runtime library: Multithread DLL (debug) -# /Od = Disable optimising (debug) -# /O2 = Optimize for speed -# /Gm = Minimal rebuild (some cpp class stuff) -# /Zi = Program database for debuggers -# /ZI = Pgm database with special "edit&continue" stuff - not available in C5 - - -### Linker options -LINK=link.exe - -!if $(USE_MANIFEST) -MT=mt.exe /nologo -!else -MT=echo -!endif - -LINK_LIBS= kernel32.lib wsock32.lib advapi32.lib \ - $(ICONV_LIB) $(LIBXML2_LIB) $(LIBXSLT_LIB) - -COMMON_LNK_OPTIONS= /nologo /subsystem:windows /machine:i386 /incremental:no - -DEBUG_LNK_OPTIONS= /debug - -RELEASE_LNK_OPTIONS= - -DLL_LINK_OPTIONS= /dll -CLIENT_LINK_OPTIONS = /subsystem:console - -COMMON_TCL_OPTIONS= ..\util\yaz-asncomp -I$(INCLDIR) -i yaz - -# Final opt variables -!if $(DEBUG) -COPT= $(COMMON_C_OPTIONS) $(DEBUG_C_OPTIONS) $(COMMON_C_INCLUDES) -MTLOPT= $(COMMON_MTL_OPTIONS) $(DEBUG_MTL_OPTIONS) -RCOPT= $(COMMON_RC_OPTIONS) $(DEBUG_RC_OPTIONS) -LNKOPT= $(COMMON_LNK_OPTIONS) $(DEBUG_LNK_OPTIONS) $(LNK_LIBS) -TCLOPT= $(COMMON_TCL_OPTIONS) - -!else -COPT= $(COMMON_C_OPTIONS) $(RELEASE_C_OPTIONS) $(COMMON_C_INCLUDES) -MTLOPT= $(COMMON_MTL_OPTIONS) $(RELEASE_MTL_OPTIONS) -RCOPT= $(COMMON_RC_OPTIONS) $(RELEASE_RC_OPTIONS) -LNKOPT= $(COMMON_LNK_OPTIONS) $(RELEASE_LNK_OPTIONS) $(LNK_LIBS) -TCLOPT= $(COMMON_TCL_OPTIONS) -!endif - -LINK_PROGRAM = $(LINK) $(LNKOPT) \ - $(CLIENT_LINK_OPTIONS) $(LINK_LIBS) $(YAZ_IMPLIB) - -LINK_DLL = $(LINK) $(LNKOPT) \ - $(LINK_LIBS) $(DLL_LINK_OPTIONS) - -# Source and object modules - -# Note: Ordinary source files are not specified here at -# all, make finds them in suitable dirs. The object modules -# need to be specified, though - -YAZ_CLIENT_OBJS= \ - $(OBJDIR)\client.obj \ - $(OBJDIR)\tabcomplete.obj \ - $(OBJDIR)\admin.obj \ - $(OBJDIR)\fhistory.obj - -ZTEST_OBJS= \ - $(OBJDIR)\read-marc.obj \ - $(OBJDIR)\read-grs.obj \ - $(OBJDIR)\ztest.obj - -YAZ_ZOOMSH_OBJS = \ - $(OBJDIR)\zoomsh.obj - -YAZ_ZOOMTST1_OBJS = \ - $(OBJDIR)\zoomtst1.obj -YAZ_ZOOMTST2_OBJS = \ - $(OBJDIR)\zoomtst2.obj -YAZ_ZOOMTST3_OBJS = \ - $(OBJDIR)\zoomtst3.obj -YAZ_ZOOMTST4_OBJS = \ - $(OBJDIR)\zoomtst4.obj -YAZ_ZOOMTST5_OBJS = \ - $(OBJDIR)\zoomtst5.obj -YAZ_ZOOMTST6_OBJS = \ - $(OBJDIR)\zoomtst6.obj -YAZ_ZOOMTST7_OBJS = \ - $(OBJDIR)\zoomtst7.obj -YAZ_ZOOMTST8_OBJS = \ - $(OBJDIR)\zoomtst8.obj -YAZ_ZOOMTST9_OBJS = \ - $(OBJDIR)\zoomtst9.obj -YAZ_ZOOMTST10_OBJS = \ - $(OBJDIR)\zoomtst10.obj - -YAZ_CQL2PQF_OBJS = \ - $(OBJDIR)\cql2pqf.obj -YAZ_CQL2XCQL_OBJS = \ - $(OBJDIR)\cql2xcql.obj -YAZ_MARCDUMP_OBJS = \ - $(OBJDIR)\marcdump.obj - -TSTLOG_OBJS = \ - $(OBJDIR)\tstlog.obj - -TST_TIMING_OBJS = \ - $(OBJDIR)\tst_timing.obj - -MISC_OBJS= \ - $(OBJDIR)\version.obj \ - $(OBJDIR)\oid_std.obj \ - $(OBJDIR)\eventl.obj \ - $(OBJDIR)\requestq.obj \ - $(OBJDIR)\service.obj \ - $(OBJDIR)\seshigh.obj \ - $(OBJDIR)\statserv.obj \ - $(OBJDIR)\tcpdchk.obj \ - $(OBJDIR)\cclerrms.obj \ - $(OBJDIR)\cclfind.obj \ - $(OBJDIR)\cclptree.obj \ - $(OBJDIR)\cclqfile.obj \ - $(OBJDIR)\cclqual.obj \ - $(OBJDIR)\cclstr.obj \ - $(OBJDIR)\ccltoken.obj \ - $(OBJDIR)\ccl_stop_words.obj \ - $(OBJDIR)\comstack.obj \ - $(OBJDIR)\tcpip.obj \ - $(OBJDIR)\waislen.obj \ - $(OBJDIR)\ber_any.obj \ - $(OBJDIR)\ber_bit.obj \ - $(OBJDIR)\ber_bool.obj \ - $(OBJDIR)\ber_int.obj \ - $(OBJDIR)\ber_len.obj \ - $(OBJDIR)\ber_null.obj \ - $(OBJDIR)\ber_oct.obj \ - $(OBJDIR)\ber_oid.obj \ - $(OBJDIR)\ber_tag.obj \ - $(OBJDIR)\dumpber.obj \ - $(OBJDIR)\odr.obj \ - $(OBJDIR)\odr_any.obj \ - $(OBJDIR)\odr_bit.obj \ - $(OBJDIR)\odr_bool.obj \ - $(OBJDIR)\odr_choice.obj \ - $(OBJDIR)\odr_cons.obj \ - $(OBJDIR)\odr_enum.obj \ - $(OBJDIR)\odr_int.obj \ - $(OBJDIR)\odr_mem.obj \ - $(OBJDIR)\odr_null.obj \ - $(OBJDIR)\odr_oct.obj \ - $(OBJDIR)\odr_oid.obj \ - $(OBJDIR)\odr_seq.obj \ - $(OBJDIR)\odr_tag.obj \ - $(OBJDIR)\odr_use.obj \ - $(OBJDIR)\odr_util.obj \ - $(OBJDIR)\atoin.obj \ - $(OBJDIR)\log.obj \ - $(OBJDIR)\marcdisp.obj \ - $(OBJDIR)\marc_read_xml.obj \ - $(OBJDIR)\marc_read_iso2709.obj \ - $(OBJDIR)\marc_read_line.obj \ - $(OBJDIR)\nmem.obj \ - $(OBJDIR)\nmemsdup.obj \ - $(OBJDIR)\oid_db.obj \ - $(OBJDIR)\oid_util.obj \ - $(OBJDIR)\options.obj \ - $(OBJDIR)\readconf.obj \ - $(OBJDIR)\tpath.obj \ - $(OBJDIR)\wrbuf.obj \ - $(OBJDIR)\xmalloc.obj \ - $(OBJDIR)\matchstr.obj \ - $(OBJDIR)\siconv.obj \ - $(OBJDIR)\snprintf.obj \ - $(OBJDIR)\marc8.obj \ - $(OBJDIR)\marc8r.obj \ - $(OBJDIR)\record_conv.obj \ - $(OBJDIR)\retrieval.obj \ - $(OBJDIR)\libxml2_error.obj \ - $(OBJDIR)\test.obj \ - $(OBJDIR)\diagbib1.obj \ - $(OBJDIR)\diagsru_update.obj \ - $(OBJDIR)\diagsrw.obj \ - $(OBJDIR)\diag-entry.obj \ - $(OBJDIR)\zget.obj \ - $(OBJDIR)\logrpn.obj \ - $(OBJDIR)\querytowrbuf.obj \ - $(OBJDIR)\pquery.obj \ - $(OBJDIR)\yaz-ccl.obj \ - $(OBJDIR)\otherinfo.obj \ - $(OBJDIR)\sortspec.obj \ - $(OBJDIR)\charneg.obj \ - $(OBJDIR)\grs1disp.obj \ - $(OBJDIR)\opacdisp.obj \ - $(OBJDIR)\zgdu.obj \ - $(OBJDIR)\soap.obj \ - $(OBJDIR)\srw.obj \ - $(OBJDIR)\srwutil.obj \ - $(OBJDIR)\zoom-c.obj \ - $(OBJDIR)\zoom-opt.obj \ - $(OBJDIR)\zoom-socket.obj \ - $(OBJDIR)\initopt.obj \ - $(OBJDIR)\xmlquery.obj \ - $(OBJDIR)\mime.obj \ - $(OBJDIR)\cql.obj \ - $(OBJDIR)\cqlstdio.obj \ - $(OBJDIR)\cqlstring.obj \ - $(OBJDIR)\cqltransform.obj \ - $(OBJDIR)\cqlutil.obj \ - $(OBJDIR)\cqlstrer.obj \ - $(OBJDIR)\xcqlutil.obj \ - $(OBJDIR)\elementset.obj \ - $(OBJDIR)\timing.obj \ - $(OBJDIR)\query-charset.obj \ - $(OBJDIR)\tokenizer.obj \ - $(OBJDIR)\copy_types.obj \ - $(OBJDIR)\http.obj - -Z3950_OBJS= \ - $(OBJDIR)\z-date.obj\ - $(OBJDIR)\z-univ.obj\ - $(OBJDIR)\zes-update.obj\ - $(OBJDIR)\zes-admin.obj \ - $(OBJDIR)\z-accdes1.obj \ - $(OBJDIR)\z-accform1.obj \ - $(OBJDIR)\z-acckrb1.obj \ - $(OBJDIR)\z-core.obj \ - $(OBJDIR)\z-diag1.obj \ - $(OBJDIR)\z-espec1.obj \ - $(OBJDIR)\z-estask.obj \ - $(OBJDIR)\z-exp.obj \ - $(OBJDIR)\z-grs.obj \ - $(OBJDIR)\z-opac.obj \ - $(OBJDIR)\z-uifr1.obj \ - $(OBJDIR)\z-rrf1.obj \ - $(OBJDIR)\z-rrf2.obj \ - $(OBJDIR)\z-sum.obj \ - $(OBJDIR)\z-sutrs.obj \ - $(OBJDIR)\zes-expi.obj \ - $(OBJDIR)\zes-exps.obj \ - $(OBJDIR)\zes-order.obj \ - $(OBJDIR)\zes-pquery.obj \ - $(OBJDIR)\zes-psched.obj \ - $(OBJDIR)\zes-pset.obj \ - $(OBJDIR)\zes-update0.obj \ - $(OBJDIR)\prt-ext.obj \ - $(OBJDIR)\z-charneg.obj \ - $(OBJDIR)\z-mterm2.obj \ - $(OBJDIR)\z-oclcui.obj - -ILL_OBJS= \ - $(OBJDIR)\ill-get.obj\ - $(OBJDIR)\ill-core.obj\ - $(OBJDIR)\item-req.obj - -DLL_OBJS =\ - $(MISC_OBJS) \ - $(Z3950_OBJS) \ - $(ILL_OBJS) \ - -# Generated C and H files - -Z3950_C_DIR=$(SRCDIR) -ILL_C_DIR=$(SRCDIR) -#!!! Should be moved to OBJ, but that requires too much trickery - -# Files generated from datetime.asn -DATETIME_H_FILES = $(INCLDIR)\yaz\z-date.h -DATETIME_C_FILES = $(Z3950_C_DIR)\z-date.c - -# Files generated from univres.asn -UNIVRES_H_FILES = $(INCLDIR)\yaz\z-univ.h -UNIVRES_C_FILES = $(Z3950_C_DIR)\z-univ.c - -# Files generated from esupdate.asn -ESUPDATE_H_FILES = $(INCLDIR)\yaz\zes-update.h -ESUPDATE_C_FILES = $(Z3950_C_DIR)\zes-update.c - -# Files generated from esadmin.asn -ESADMIN_H_FILES = $(INCLDIR)\yaz\zes-admin.h -ESADMIN_C_FILES = $(Z3950_C_DIR)\zes-admin.c - -# Files generated from esadmin.asn -CHARNEG_H_FILES = $(INCLDIR)\yaz\z-charneg.h -CHARNEG_C_FILES = $(Z3950_C_DIR)\z-charneg.c - -# Files generated from mterm2.asn -MTERM2_H_FILES = $(INCLDIR)\yaz\z-mterm2.h -MTERM2_C_FILES = $(Z3950_C_DIR)\z-mterm2.c - -# Files generated from mterm2.asn -OCLCUI_H_FILES = $(INCLDIR)\yaz\z-oclcui.h -OCLCUI_C_FILES = $(Z3950_C_DIR)\z-oclcui.c - -# Files created from z3950v3.asn -Z3950V3_H_FILES= \ - $(INCLDIR)\yaz\z-accdes1.h \ - $(INCLDIR)\yaz\z-core.h - -Z3950V3_C_FILES= \ - $(Z3950_C_DIR)\z-accdes1.c \ - $(Z3950_C_DIR)\z-accform1.c \ - $(Z3950_C_DIR)\z-acckrb1.c \ - $(Z3950_C_DIR)\z-core.c \ - $(Z3950_C_DIR)\z-diag1.c \ - $(Z3950_C_DIR)\z-espec1.c \ - $(Z3950_C_DIR)\z-estask.c \ - $(Z3950_C_DIR)\z-exp.c \ - $(Z3950_C_DIR)\z-grs.c \ - $(Z3950_C_DIR)\z-opac.c \ - $(Z3950_C_DIR)\z-uifr1.c \ - $(Z3950_C_DIR)\z-rrf1.c \ - $(Z3950_C_DIR)\z-rrf2.c \ - $(Z3950_C_DIR)\z-sum.c \ - $(Z3950_C_DIR)\z-sutrs.c \ - $(Z3950_C_DIR)\zes-expi.c \ - $(Z3950_C_DIR)\zes-exps.c \ - $(Z3950_C_DIR)\zes-order.c \ - $(Z3950_C_DIR)\zes-pquery.c \ - $(Z3950_C_DIR)\zes-psched.c \ - $(Z3950_C_DIR)\zes-pset.c \ - $(Z3950_C_DIR)\zes-update0.c - -# Files generated from ill9702.asn -ILL_CORE_H_FILES= \ - $(INCLDIR)\yaz\ill-core.h - -ILL_CORE_C_FILES= \ - $(ILL_C_DIR)\ill-core.c - -# Files generated from itemreq.asn -ITEM_REQ_H_FILES= \ - $(INCLDIR)\yaz\item-req.h - -ITEM_REQ_C_FILES= \ - $(ILL_C_DIR)\item-req.c - -# Combined.. -DATETIME_FILES = $(DATETIME_H_FILES) $(DATETIME_C_FILES) -UNIVRES_FILES = $(UNIVRES_H_FILES) $(UNIVRES_C_FILES) -ESUPDATE_FILES = $(ESUPDATE_H_FILES) $(ESUPDATE_C_FILES) -ESADMIN_FILES = $(ESADMIN_H_FILES) $(ESADMIN_C_FILES) -Z3950V3_FILES= $(Z3950V3_C_FILES) $(Z3950V3_H_FILES) -ILL_CORE_FILES= $(ILL_CORE_C_FILES) $(ILL_CORE_H_FILES) -ITEM_REQ_FILES= $(ITEM_REQ_C_FILES) $(ITEM_REQ_H_FILES) -CHARNEG_FILES = $(CHARNEG_C_FILES) $(CHARNEG_H_FILES) -MTERM2_FILES = $(MTERM2_C_FILES) $(MTERM2_H_FILES) -OCLCUI_FILES = $(OCLCUI_C_FILES) $(OCLCUI_H_FILES) - -GENERATED_C_FILES= \ - $(Z3950V3_C_FILES) \ - $(ESUPDATE_C_FILES) \ - $(UNIVRES_C_FILES) \ - $(DATETIME_C_FILES) \ - $(ESADMIN_C_FILES) \ - $(CHARNEG_C_FILES) \ - $(MTERM2_C_FILES) \ - $(OCLCUI_C_FILES) \ - $(ILL_CORE_C_FILES) \ - $(ITEM_REQ_C_FILES) - -GENERATED_H_FILES= \ - $(Z3950V3_H_FILES) \ - $(ESUPDATE_H_FILES) \ - $(UNIVRES_H_FILES) \ - $(DATETIME_H_FILES) \ - $(ESADMIN_H_FILES) \ - $(CHARNEG_H_FILES) \ - $(MTERM2_H_FILES) \ - $(OCLCUI_H_FILES) \ - $(ILL_CORE_H_FILES) \ - $(ITEM_REQ_H_FILES) - -generated_files: \ - $(GENERATED_H_FILES) \ - $(GENERATED_C_FILES) \ - $(SRCDIR)\diagsrw.c \ - $(SRCDIR)\diagbib1.c \ - $(SRCDIR)\diagsru_update.c - -# Compiling - -# Note: This defines where to look for the necessary -# source files. Funny way of doing it, but it works. - -# yaz client -{$(CLIENTDIR)}.c{$(OBJDIR)}.obj: - $(CPP) $(COPT) $< /D"_CONSOLE" - -# Ztest -{$(ZTESTDIR)}.c{$(OBJDIR)}.obj: - $(CPP) $(COPT) $< /D"_CONSOLE" - -# Server -{$(SERVERDIR)}.c{$(OBJDIR)}.obj: - $(CPP) $(COPT) $< - -# Various YAZ source directories -{$(SRCDIR)}.c{$(OBJDIR)}.obj: - $(CPP) $(COPT) /D"YAZ_DLL" $< - -{$(ZOOMDIR)}.c{$(OBJDIR)}.obj: - $(CPP) $(COPT) $< - -{$(UTILDIR)}.c{$(OBJDIR)}.obj: - $(CPP) $(COPT) $< - -{$(TESTDIR)}.c{$(OBJDIR)}.obj: - $(CPP) $(COPT) $< - -# ASN-generated files - -!if $(HAVE_TCL) - -$(Z3950V3_FILES): $(SRCDIR)\z3950v3.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d z.tcl z3950v3.asn - @cd $(WINDIR) - -$(DATETIME_FILES): $(SRCDIR)\datetime.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d z.tcl datetime.asn - @cd $(WINDIR) - -$(UNIVRES_FILES): $(SRCDIR)\univres.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d z.tcl univres.asn - @cd $(WINDIR) - -$(ESUPDATE_FILES): $(SRCDIR)\esupdate.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d z.tcl esupdate.asn - @cd $(WINDIR) - -$(ESADMIN_FILES): $(SRCDIR)\esadmin.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d z.tcl esadmin.asn - @cd $(WINDIR) - -$(CHARNEG_FILES): $(SRCDIR)\charneg-3.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d z.tcl charneg-3.asn - @cd $(WINDIR) - -$(MTERM2_FILES): $(SRCDIR)\mterm2.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d z.tcl mterm2.asn - @cd $(WINDIR) - -$(OCLCUI_FILES): $(SRCDIR)\oclcui.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d z.tcl oclcui.asn - @cd $(WINDIR) - -$(ILL_CORE_FILES): $(SRCDIR)\ill9702.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d ill.tcl ill9702.asn - @cd $(WINDIR) - -$(ITEM_REQ_FILES): $(SRCDIR)\item-req.asn - @cd $(SRCDIR) - $(TCL) $(TCLOPT) -d ill.tcl item-req.asn - @cd $(WINDIR) - -$(SRCDIR)\marc8.c: $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl - @cd $(SRCDIR) - $(TCL) charconv.tcl -p marc8 codetables.xml -o marc8.c - -$(SRCDIR)\marc8r.c: $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl - @cd $(SRCDIR) - $(TCL) charconv.tcl -r -p marc8r codetables.xml -o marc8r.c - -$(SRCDIR)\oid_std.c: $(SRCDIR)\oid.csv $(SRCDIR)\charconv.tcl - @cd $(SRCDIR) - $(TCL) oidtoc.tcl $(SRCDIR) oid.csv oid_std.c oid_std.h - -$(SRCDIR)\diagbib1.c: $(SRCDIR)\bib1.csv - @cd $(SRCDIR) - $(TCL) csvtobib1.tcl $(SRCDIR) - -$(SRCDIR)\diagsrw.c: $(SRCDIR)\srw.csv - @cd $(SRCDIR) - $(TCL) csvtosrw.tcl $(SRCDIR) - -$(SRCDIR)\diagsru_update.c: $(SRCDIR)\sru_update.csv - @cd $(SRCDIR) - $(TCL) csvtosru_update.tcl $(SRCDIR) - -!endif - -!if $(HAVE_BISON) -$(SRCDIR)\cql.c: $(SRCDIR)\cql.y - @cd $(SRCDIR) - $(BISON) -y -p cql_ -o cql.c cql.y - -!endif - -# Resources -# The RC compiler (resource files) -RSC=rc.exe -COMMON_RC_OPTIONS= /l 0x406 /i"$(ROOTDIR)" -DEBUG_RC_OPTIONS=/d "_DEBUG" -RELEASE_RC_OPTIONS=/d "NDEBUG" - -YAZ_RES=$(OBJDIR)\yaz.res -YAZ_RC=$(WINDIR)\yaz.rc - -!if $(DEBUG) -RSOPT=/d_DEBUG -!else -RSOPT=/d_NDEBUG -!endif - -$(YAZ_RES): $(YAZ_RC) - $(RSC) $(RSOPT) /fo"$(YAZ_RES)" $(YAZ_RC) - -# Linking - -$(DLL) $(YAZ_IMPLIB): "$(BINDIR)" $(DLL_OBJS) $(YAZ_RES) - $(LINK_DLL) \ - $(DLL_OBJS) \ - $(YAZ_RES) \ - /out:$@ \ - /implib:"$(YAZ_IMPLIB)" - $(MT) -manifest $@.manifest -outputresource:$@;2 - -$(CLIENT) : "$(BINDIR)" $(YAZ_CLIENT_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_CLIENT_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMSH) : "$(BINDIR)" $(YAZ_ZOOMSH_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMSH_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST1) : "$(BINDIR)" $(YAZ_ZOOMTST1_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST1_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST2) : "$(BINDIR)" $(YAZ_ZOOMTST2_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST2_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST3) : "$(BINDIR)" $(YAZ_ZOOMTST3_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST3_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST4) : "$(BINDIR)" $(YAZ_ZOOMTST4_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST4_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST5) : "$(BINDIR)" $(YAZ_ZOOMTST5_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST5_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST6) : "$(BINDIR)" $(YAZ_ZOOMTST6_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST6_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST7) : "$(BINDIR)" $(YAZ_ZOOMTST7_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST7_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST8) : "$(BINDIR)" $(YAZ_ZOOMTST8_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST8_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST9) : "$(BINDIR)" $(YAZ_ZOOMTST9_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST9_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZOOMTST10) : "$(BINDIR)" $(YAZ_ZOOMTST10_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_ZOOMTST10_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(CQL2PQF) : "$(BINDIR)" $(YAZ_CQL2PQF_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_CQL2PQF_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(CQL2XCQL) : "$(BINDIR)" $(YAZ_CQL2XCQL_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_CQL2XCQL_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(DLL) - $(LINK_PROGRAM) $(ZTEST_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(YAZ_MARCDUMP) : "$(BINDIR)" $(YAZ_MARCDUMP_OBJS) $(DLL) - $(LINK_PROGRAM) $(YAZ_MARCDUMP_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(TSTLOG) : "$(BINDIR)" $(TSTLOG_OBJS) $(DLL) - $(LINK_PROGRAM) $(TSTLOG_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -$(TST_TIMING) : "$(BINDIR)" $(TST_TIMING_OBJS) $(DLL) - $(LINK_PROGRAM) $(TST_TIMING_OBJS) /out:$@ - $(MT) -manifest $@.manifest -outputresource:$@;1 - -# Other rules - -$(DOCDIR)\htmlhelp.chm: $(DOCDIR)\htmlhelp.hhp - @cd $(DOCDIR) - -$(HHC) htmlhelp.hhp - @cd $(WINDIR) - -clean: - -del $(BINDIR)\*.exe - -del $(BINDIR)\*.dll - -del $(BINDIR)\*.pdb - -del $(TMPDIR)\*. - -del $(LIBDIR)\*.LIB - -del $(OBJDIR)\*.OBJ - -realclean: clean - -del $(SRCDIR)\marc8.c - -del $(SRCDIR)\cql.c - -del $(SRCDIR)\z-*.c - -del $(SRCDIR)\ill-core.c - -del $(SRCDIR)\item-req.c - -del $(INCLDIR)\yaz\ill-core.h - -del $(INCLDIR)\yaz\item-req.h - -del $(INCLDIR)\yaz\z-accdes1.h - -del $(INCLDIR)\yaz\z-core.h - -del $(DATETIME_H_FILES) - -del $(UNIVRES_H_FILES) - -del $(ESUPDATE_H_FILES) - -# Because DOS del will only accept one file name to delete, -# the _H_ files work only on sets that have just one file. -# Z3950_H_FILES had to be spelled out. One more point for MS! - -# check directories and create if needed -dirs: $(OBJDIR) $(WINDIR) $(LIBDIR) $(BINDIR) $(TMPDIR) - -$(OBJDIR) $(WINDIR) $(LIBDIR) $(BINDIR) $(TMPDIR): - if not exist "$@/$(NUL)" mkdir "$@" - - -# Explicit dependencies - -# force recompilation of everything, if makefile changed - -$(Z3950_OBJS): $(GENERATED_C_FILES) $(GENERATED_H_FILES) - -$(ILL_OBJS): $(ILL_CORE_FILES) $(ITEM_REQ_FILES) - -# makes sure we generate before compiling anything, as the -# new proto.h refers to the generated files, and is included -# in various places - diff --git a/dependencies/yaz_3.0.14/bin/tst_timing.exe b/dependencies/yaz_3.0.14/bin/tst_timing.exe deleted file mode 100644 index 44bc4dabdbc8c68f950ed5777253b9d533d11266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 iOE4f95DW+g1OtKr!GK^uFd!HZ39uGVm8XNri;~ diff --git a/dependencies/yaz_3.0.14/bin/yaz-client.exe b/dependencies/yaz_3.0.14/bin/yaz-client.exe deleted file mode 100644 index 8b0cfab8901436e6ea611c01ae3d1ca9df9c1134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69632 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 T7I@Ba}wlt{}6T2VHCP2%w-F=(4VY6>% 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 ARR910 diff --git a/dependencies/yaz_3.0.14/bin/yaz-ztest.exe b/dependencies/yaz_3.0.14/bin/yaz-ztest.exe deleted file mode 100644 index e46e8a06b2b32ef0c91b10cb6bd4cee53a6b0fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45056 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

    h}y#5s63%gNxV;| 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

    E$3(H1g0BdT(WaOaC_dL$ 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

    Odn%gWrPr;1;k1JO^F_ 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 diff --git a/dependencies/yaz_3.0.14/bin/zlib1.dll b/dependencies/yaz_3.0.14/bin/zlib1.dll deleted file mode 100644 index 0b42656c9ab24470d2060e196818a42b4cea9aa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73728 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 S1S|wB1S|wB1S|xAz<&b+mAOg) diff --git a/dependencies/yaz_3.0.14/bin/zoomtst1.exe b/dependencies/yaz_3.0.14/bin/zoomtst1.exe deleted file mode 100644 index 5de057f88b4c849131398c68ae4734ca2b2e96b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI2U1(cn7{{NaMYGy&bv7s{cs3HLB3ZQ?)G;N@q)upQn$>;`;q)};wCB|HBt1E2 zwqxK&6s)nZiy^zvL3M1q&>Iyj;ze1D7wTl-7!7#Qi(MSB7lK|)P>%oiOV^fkly|97rW`RU03%lhx)GW8#1ku zQgjMajy9v@G}|t?%7mdfo~>B6k{UR!%oKDZ(bm=ytB-D~UU~bu<&Uac+Ii_>wGaN< zg%7H|SUWFWuBK)F9 zjU|yVd*GB;l9}K}d97nQ6ht2o<)>rq(^MH~9`wJ#ORM~}I23DNOvPHWnPLA^MBZF+ zAFK3X`cSNOFe4{rF~y8wS|*6f!!RyfA2$#g9QHji=~m+;t2Qb2_mh5%j`#;qoiW>S zLJ;i`uVyVW;&&i8>_=dy5f*n3;-k_INt=R>=x4Ni|O@DaOhPyi|LKbV){Dt zCa^w^MzdM8kZ9>cOAsY-TK@)a;cW!o^}xI7|N46nl-Ifz(m$X{zMtvMN~E%Dq5oQD z(BFf$v9Z;P;RoKeAR0q|5bu<>OB^7+27w8Ye}ApAdu4U?+ieNr5n0;|%fbYh025#W zOn?b60Vco%m;e)C0{@P49qp|3-W&k z6>QtcxmLkeb))1uh56(`qG#$^$0&Juw`8~t$<&Tq$vS0-t_OF{EE$@UGu7hkWU`0u z-kCQXr{E-?coILa@3@a`yo@HA*G_dO^n9M^e7NXXwmV7meAt+?T%ytNWIc3WNVN(R zME%EypUn={>c1ydmK`H?G*@(ct-NbEq?4)^RaLcY%QftiGzx#paA!2j)|{yl{wpC< zD4n4)a(MM#36AEPxGmB9q-y%KS8~-!-8w10S&{Q{g&FZ*528ZNpR9SW)h4J~v8cN9 zMdZI0x5^nsS2ZOeGX$LYp%33Cq@vIr0DSg#OZjDJx$> z`%KZp6JrZ`C6pX)L9dIaNyAlUJ;RxA!SBT^On?b60Vco%m;e)C0!)AjFaajO1en0T GMc@wug6{JG diff --git a/dependencies/yaz_3.0.14/bin/zoomtst10.exe b/dependencies/yaz_3.0.14/bin/zoomtst10.exe deleted file mode 100644 index 83adacde6faa0b5468237435acd2f678d1672a14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI2PiPcZ9LIl~1RK*t(>7bA*mexN5L?-%QHzQxTivx5Hagj)n<(Nq?o2Y1Zf4in zSxrPJW$Gav0)cwzp{-FX9$M%@+Tf+BNiR}Csz?I1gp$LQ<{)_SkTU(gx0^IJ;GvXK z@ICnb-uwM|zxSKZ?BylXad?cXiKqq=1Vj^<*@$!fcr}CYx|gr5qpNFgZkhqAe6)(|zqBbB}1JcD`Jj+fW484os=W)6hqVK81ik=sxee`Vs)GZN8mzWSFH>gFC( zGUn(*4&sYdP^_UPS+PeVIu^4v)lrGou!n);F9ujwMjStbSUHXEGhZu&)noID5ht2l zVTz?7AP5Kof`A|(2nYg#fFK|U2m*q@|B!&Y(A1Ub@xKTWc@MorB;r1-c6MUX;)Sxx6&urX#y?fA7V%Q3)*Wf=l=-8l@z}hWyj<+}aF^eX zY}sgJ?S|QNxzn{>elwgI|9R*ExEZ3cM@A6U;0vP1xIV&lFW22%%Uq|p-p_Rc`dx2f zATSD88TX%!lQxd}Bx@s4HoFTFUg?PLyZR!r7gLYCLvF)7>&$KN*%X8u;q)5jV2soT z;U;d~hGM2va_j9QlXKFskMtVWVEqsbXL z*nS7bXmU;-P2Pdb1J({~G-}uuVp~$!5`?$0(>mtRMQJW5-3dzbe*Ygq;7+%WB=2Dp zW9B6nyjpMVNXIR?(_fEmhYn47x*wEo1z|!wh_-UQ8`@xhpn(dJA1-HZot&Ebu`+^a zEzhih7DEsa1Ox#=KoAfF1OY)n5D)|efhUQ;fo7tIka@^YkZH(O$R)@aGtr79@-x9XS2CByI{rJ z(8KmeBet$Odc2irSUtTprseRN!Dm$k+q9fMqIatFA=4r1t?H||o(m~v{y0%bS7vXz zyPSWU6rQ%9l-_K?*=Ob)-6o9`rJyK^X_=00ouppa{kk)#nwDz!7x7gF48nQHg~hAP5Kof`A|(2nYg#fFK|U2m((Kfi%CxO4)qL za&}44oK{DaWS37EMX4pKZN>~ARP>eNQLKpe?oCNNM~Z4JjXBw6PIB6FTWqP=uIB0- zQ!2G@!@6*a?~(NWm?Rxn`}JJRv^0H)ePAsX v?u)u3;S$Slxrm0Ipm!r4RS*ya1OY)n5D)|e0YN|z5CjAPK|m1rrv&~4;s{kj diff --git a/dependencies/yaz_3.0.14/bin/zoomtst2.exe b/dependencies/yaz_3.0.14/bin/zoomtst2.exe deleted file mode 100644 index 12e8f790797e44fdf1440f237af5494964b72b3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI2U1%It6vxjdOWDSxjW!DbMW^j9M5rOPAJkH1(A^qgV<+3VrlmNY?#yOp+01O` zBP2z!y7;gTfg&RMU~Oz^`%s~1!5{@=6BNWk(NY=|$wMFJArD0ne5j27JG-fif#O3E zk$d5P?mZv(%$?uv%UyQp;0bCcqBskUa}()xkA1O@F0H+~aWg}hcM56bbc{|`RE5{qkP^d>TK`dPby`Ja z`(16)MgDRd3_H+@TJ{J;hx=_+aTTH-_A&_k#Q^K(5b-tWZ1UPJk2O1UP~JAOSyeo^bt6Y0=ftVPVvrF!%X zi|>IM4t@g!-^Ft>sh%?Vg?L^Heq^y16aGl5XE+~x!@S$m$V=r|@EN?f=G^XS^cjYK zI`X~S(<7-))Wq}H)r(}OgssOL#RGU~9Pz}k-^C6sv4`cQ+E=2UVuuKm(c3NbmfITV zF9afXN_sc4VNzhPzK|#cX$0A!@<9@-GE(eiPqdCOts)er4@dS;WJe=A5?Lv-xyTMi zHUs;Tzg!OWDpvZ%heT3m(4Hi<&K^j$Wnq8e<+>Ksv^&HIccShnpzon8 z(5KKzXbZFxdIlPVRLF+jgx-PJScCc2Mxw8wv(S6cB=idOER=#)Mu<_uE%X?4M_7px zZ9{MnY6#QL}R@a~R(^W5zuAKbTZNG@8YsTEzrGG$eBT-%xww}VVGYio{IaUIQV zNoH2%9OIbAb|qH#)NI?b^{W;9>EL8r)izAGMD#+NHfi8*2BU4IW@tl9 zHmoB=L;DNQMA zJ5@#gTXw3VR&`}vG1ZD@ZzKAg*oTWxv{I_x{fhAgC%_4C0-OLRzzJ{yoB$`l32*}c zYXbS`7Aq7j&vbVS>5AGxlw}uFI1ZE0msTIgjJV=VnMKgp3OTk%Rm;Jhkf@;9Mrmrd z5ao5-GA+*$9K#%|XivDf<7uu?tQff2qKD@wW7_Tx^lfI2dYV1efg3F!oB$`l32*|O Y04Kl+Z~~kFC%_4C0-OLRaK8xr3GpH`s{jB1 diff --git a/dependencies/yaz_3.0.14/bin/zoomtst3.exe b/dependencies/yaz_3.0.14/bin/zoomtst3.exe deleted file mode 100644 index 57917749c77965970c66479e090073bb32491dc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 M3P=T{0&5lcFE@@2P5=M^ diff --git a/dependencies/yaz_3.0.14/bin/zoomtst5.exe b/dependencies/yaz_3.0.14/bin/zoomtst5.exe deleted file mode 100644 index c1a638c3680b9efe691f2885ef2461bf236ac38b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeHNZ)_Y#6@PbeTQ}IXQGLOrR@k(6l?lPR#BQ-tgRXFPf^=^7?))c7qg>Z_>+HGr zue*Dx9huT_j^Mm;WvWO-q97vrp%PzAWswM}$l#EwRU(--6k9ElRYlRZI8q^~jcCa7 zo4LKz#-*S5kV-Sk@6EjT=Dm6Io3W*Fw)em^Z6Kl=z;TGqqGv6{xo?4+NY%rsi5Z%>q=HiD!E+Vl!jDEFXp6lP73dhOWAx%ZL6=}=yy|ZcKW4!T+T!(P&ZpXbZ zN<>|J^nVt}d+IY%wwdav3IFyxAXq_FtcsC{o@mokim4E3Y=ba-!U4u^3*kDnRi=SU z7=r-I$NE(*L^QWb6+^**U_dY+7!V8y1_T3w0l|P^KrkQ}xQ!UF!v5O$!0(!ZA)0KQ z+%oz4t~ZO@CSEf)P0F6hLmsYgF3ovM=e-lJ72j!}JM_`weRGe0v=C@S$ozeChf0gi ztPpd2oy>BsZp7>Ox-dNU@jvkfeWvc!u)m3oEMyxYjT%GLZ*M?W?K8FEI%uDS{rH@D zzjd-wYxw2svNnx4#}|@VjkP15N{!Zu%8b5W--r#`1JyWpkCB-hQEmLw;@Uqv{`NDE zy7{M$*7Vy=td@omipu5iY?tk@4fmm<@N6(9+wVgyPs~y+QBUdBnn$jUU$ju~RKy>Q z#_jX)qTYt7K7TM4x6g33_;{)C z%GO;m%|ykrt+JSUc1m*T_aW^djM3^DHNW>KTy1NX7c_u1f_9Ki|B}puV|FVvS&OXN zdR@Eow;IdzZyy}6Z?fPIaF!uV7_i@Cs*SpuWvz=_{sIeXY_=AoS_ilM5tid`o4b!+ zE#C3Uc9{CDud}n58uZ99O@hJsbLm{;@ej?-r&-O|QFCcdlA|M@xZ@*O;MH2(c{RIB zPE*5)tm8QBR#~{2D6OUEk!zf<6AL%t0KbFwZmi1>tHnCWcN??YSh+YB+1`Q?V#Y7` z+w~ZZ;C`@+%YQDMz%+(V-~^XH;&Ot^XSp2ba+FJx%L11fE;TMwTt30&K`!@k*~g{K zWrWK;kp0%mh@+jtNRxaaN}WbYB&W&&)|XbK_`qOUwM*&^Vz;*r^Y)kOLpxApsXoj) z$JYp>Ro?}rT@Qblw$IJaUs%fKjV9V4&Xsx z6L2T+5BRPCZvp3lv%n1S0`NRA2|Nq17DK-i*bI1q_wOfq1NaSa3K$16fD8nIO~Ajl z5?ux^05ibzz$m~Po?y-!O(D7hw7NEC&mi|6iD((9wijU|sj98*Z`b|#DRE%$-rhvM zV5ajqBau=KQ_qiuI`AN=c#`>CPE9iJDkpu*_3Elo%$SC1u5v!?`kpGP`q(Oa*R7aj zUQZDNPk_KNkY;*0^69U(4Y5LlFdm^c1GDAx8Nj72YfB8SjIHnwJZ%bt|M8n?Ur}ea{ z68+p;(9=0{nCQD+bu^7nHuiakUDLguL^?l2)Egi8POPsI`6ea!v^|vAmn@h)>5QrB zl%hnUkVqubIV8;;p?%PC%vmL!Q}n|IzIWj+OwCdWKJ2AvKv7H$r$h8JN+_w3qG2Y6 zQ|Tk@PZm61GM{DN>k#ED`fx=%R>_c13WbC@R)GI?R#j3hmgH*G3d);+3SDJEXQYclemZpO3sewspKmMH37N e1_T3w0l|P^KrkQ}5DW+g1OtKr!NBL2f&T!yr diff --git a/dependencies/yaz_3.0.14/bin/zoomtst6.exe b/dependencies/yaz_3.0.14/bin/zoomtst6.exe deleted file mode 100644 index 5ed6e7c32d6c97e699dc628c725271f4d691a380..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 a0s;YnfIvVXAP^7;2m}NI0)fvHf&T&@*E6^P diff --git a/dependencies/yaz_3.0.14/bin/zoomtst8.exe b/dependencies/yaz_3.0.14/bin/zoomtst8.exe deleted file mode 100644 index 394b251b3ef578cf3310660bf09003df560de04e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI2Uu;uV9LInA6DVV2Qz&9W@J?@&O0;eakPM7X=mvxix^8TPAeXMa+wHQowY^;c z0U>1%^-_X{L_^eokN|N;W0o+2LXG#Ekx@%lZdEe@u7tU3G9SYFQ4r^dYS zM?X9bIxbZ^n!{p+*j%N=_M63AdA2wKb-$Ryk z>FN$0`F?gtcA&hb%#nz;yW*jM9w7RJ)gkaF1B`Rcjn~1IEu(%GtAf~ite?`{M8i{D zF%$#@0YN|z5CjAPK|l}?1Ox#=KoIyJ5!gRDSWeW`Y7EJv7-W>+(_3Ymxw?=jWfi48 za_OGM#sT>va)y1Ci}p?H0A z9H+a?POw$3sJVrCFBr`OPHin)*3AxLzQ(3{KEG>t2b{h}vjcAWz`*U9MD;6g?*2N{ zEIa*8<~oG?hV}A{M|S#}%v$ayf330lZlrh173GI6;FmF;Uy3I&JVVZmSC%kyL8ISi z+OkuZ8HgDy=0io5Ut5uVDmJf-;qj%ubZZiVjd?f=e(p4yhn&39Z=OS?Pg{rr>pNp; zh-`SuQCrQeR`Vz_eZ#%Wakz!pS@t!yw3@H;pgtd4%6@E#aEn&KXQxKzwbq*<6s-Iu ze#yZ3*Q~t5ALHQ5mSu5H3yp&uLZiv9>I|CSlrUmYCbH0H!|kH%&$sQB!&@deDG6Q|*sBW%H! z4q!;hQtd5lX4x0A^~@v4Xr)MKHde^E9zTLny6$?W?z+!fb{I~kZrqoty9Q18EW3<} zS}~hKY>F3CEW4BK)-aA!B*(4fH7hw`eslZMThm2S9-R}rr* zZQeX$sHT;?YT2uhw;a!LE5T~)-$*b8WImCttQj5|xqPo#4jZp6h80Z^5CjAPK|l}? z1Ox#=KoAfF1c65(@WazYA3Q^J2-*!rpl#3ws1|ZTi=a6WLAOzV5&8z2fLJ?;{vZ^C z{7@A%ADRLER7rFR`V=|}?StB(wGeB#sanmrr)f}WF2>?tV6I2PUQoVGB1Tf)yTAXh zpF<{P%f^ijN;Ia2qmhIXQWJVSy3@TB*Sl;c7>z{KAj?ik(wba0fv+VJsy-#(uIGKjjI8jJ;LH#F3&K(V&wzzV0HrjrLi-xtHu@T?k0M_ zFcuF-^bVqRh3bwlK7D8_?8t@Y7AWCpJ5fVZ%W8jfw*FgEc-dM~+JZ5?KHLqy6e2~5 zDT)$~gmpF2OKtE$uO|?W1mc|ud^f^V?5CgQwz z#|mFB80}%-y%0sSen-~ZpIt!-#A1rRGlu*ncB-Hn(-kcc33aRS8ltnLfFE9_?vB{~ z@4WB?0YN|z5CjAPK|l}?1Ox#=KoEEo0*;X6a4k+qj!+3X5=;`mCDuw9IUS*A(U)KY zEt+7Tms2F!(~gT1y@+uju`?1xUkxP_fljry1e0{!oK(F!*DsM=E>~{6L1LH665JR? g69fbSK|l}?1Ox#=KoAfF1OY)n5D)|efq#?0ACOM4`v3p{ diff --git a/dependencies/yaz_3.0.14/bin/zoomtst9.exe b/dependencies/yaz_3.0.14/bin/zoomtst9.exe deleted file mode 100644 index 5b2bedfeac51bf37260a6a071b0b3f808cb09f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeHOUu+b|8UM~4;5aszhC`OH(xIFsS8^;HCz5MObWLn0NH&~}eVBx>S#HQvD&3u37o8Qh^{?61|;jG}8u;y<4Tp9-_X; z8frfEMQ_Dtkv2vijI1N7hlYjPhRvA&EhoY?WR43Tm01A8{V+Ig!coXzWqo-P)+t7` zORWCK40(^|5tF&jkkIJI2AK-=JiIC!~SJxXZqrsXNKYp1B1i<`;bqR z+zt;qkL!|y#_!t_H0+;-C3%)uf(oUC@fLK+AoeI1=NhhmR7ErnCzEfIs`hRcC*$?! z-++^Mak^ppqppYZjZ>H0&C??h2!|s14TVxw;e)EFOZml)($dW9(}x*I4zDAfI(PeH66 zO0RAiLa{oCZ5EO*q_YiNpf_(q@@IL%$FE{Z`C6kFn+35(p3grGi&2Xc8`WU`4#XUBl0nI0B6*42kPApc2_zvi#~ zDhLX5ZN;9yAc#L9uV>k-_8utqUri498xeNkz^teHLH=qG>x4aM+9fyxH~3e7U=i{k z3OzeYv$KB`BWS7?eo=5aBmxoviGV~vA|Mfv2uK7Z0{0sNXTC!;v>kuo1+{`0s2)V1 zW!M%$S3xDvanNg^lc4uNzXtJScwVuM5vo+ z-$AiE_bWT{yqoT{mcz#o-bw54wCj#zIXrXZPFwj<+*qb6QaFso2W+E5)DsT#E%GwY7hLlMQa4iok7OFcC>6#9QmiU@dy zl##UU_L>=2cSs{eu@yxzv!<(OkI)EY8eyR@`GY?3Z~}Y29`eL(OU#-RU6u z4Jp70*C8`%-+o)ABoUAZNCYGT5&?;TL_i`S5s(N-1nwUM96fD08qp&tDO~T?_S))8 zdGtC@sv1*8N6VUWH5Gfep3z-ciL~-6j2qPLjGE>Kr@YG9dfHSo!#3U}=lXnk5$3Gq z+nq&!#$R10v%G4`G0~HDVO!SRq61M;!H=(G|b`Y*{EYpF#Zh!3K8C2HODP$!p*tgV=g*Z-DS^(=bsE=oh+j`8KU+) yGqrYJYC9G?_+kfZMXm@3P7aBHL_i`S5s(N-1SA3y0f~S_Kq4R!kO+JYfqwz`(7Fr& diff --git a/dependencies/yaz_3.0.14/client/admin.c b/dependencies/yaz_3.0.14/client/admin.c deleted file mode 100644 index b5e78dd..0000000 --- a/dependencies/yaz_3.0.14/client/admin.c +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: admin.c,v 1.26 2007/05/08 08:22:35 adam Exp $ - */ - -#include -#include -#include -#include - -#if HAVE_DIRENT_H -#include -#endif -#if HAVE_FNMATCH_H -#include -#endif -#if HAVE_SYS_STAT_H -#include -#endif - -#include - -#include - -#include -#include -#include -#include -#include - -#include "admin.h" - -/* Helper functions to get to various statics in the client */ -ODR getODROutputStream(void); - -extern char *databaseNames[]; -extern int num_databaseNames; - -int sendAdminES(int type, char* param1) -{ - ODR out = getODROutputStream(); - char *dbname = odr_strdup (out, databaseNames[0]); - - /* Type: 1=reindex, 2=truncate, 3=delete, 4=create, 5=import, 6=refresh, 7=commit */ - Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest ); - Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; - Z_External *r; - Odr_oid *oid; - Z_ESAdminOriginPartToKeep *toKeep; - Z_ESAdminOriginPartNotToKeep *notToKeep; - printf ("Admin request\n"); - fflush(stdout); - - oid = odr_oiddup(out, yaz_oid_extserv_admin); - - req->packageType = oid; - req->packageName = "1.Extendedserveq"; - - /* Allocate the external */ - r = req->taskSpecificParameters = (Z_External *) - odr_malloc (out, sizeof(*r)); - r->direct_reference = odr_oiddup(out,oid); - r->indirect_reference = 0; - r->descriptor = 0; - r->which = Z_External_ESAdmin; - r->u.adminService = (Z_Admin *) - odr_malloc(out, sizeof(*r->u.adminService)); - r->u.adminService->which = Z_Admin_esRequest; - r->u.adminService->u.esRequest = (Z_AdminEsRequest *) - odr_malloc(out, sizeof(*r->u.adminService->u.esRequest)); - - toKeep = r->u.adminService->u.esRequest->toKeep = - (Z_ESAdminOriginPartToKeep *) - odr_malloc(out, sizeof(*r->u.adminService->u.esRequest->toKeep)); - - toKeep->which=type; - toKeep->databaseName = dbname; - switch ( type ) - { - case Z_ESAdminOriginPartToKeep_reIndex: - toKeep->u.reIndex=odr_nullval(); - break; - - case Z_ESAdminOriginPartToKeep_truncate: - toKeep->u.truncate=odr_nullval(); - break; - case Z_ESAdminOriginPartToKeep_drop: - toKeep->u.drop=odr_nullval(); - break; - case Z_ESAdminOriginPartToKeep_create: - toKeep->u.create=odr_nullval(); - break; - case Z_ESAdminOriginPartToKeep_import: - toKeep->u.import = (Z_ImportParameters*) - odr_malloc(out, sizeof(*toKeep->u.import)); - toKeep->u.import->recordType=param1; - /* Need to add additional setup of records here */ - break; - case Z_ESAdminOriginPartToKeep_refresh: - toKeep->u.refresh=odr_nullval(); - break; - case Z_ESAdminOriginPartToKeep_commit: - toKeep->u.commit=odr_nullval(); - break; - case Z_ESAdminOriginPartToKeep_shutdown: - toKeep->u.commit=odr_nullval(); - break; - case Z_ESAdminOriginPartToKeep_start: - toKeep->u.commit=odr_nullval(); - break; - default: - /* Unknown admin service */ - break; - } - - notToKeep = r->u.adminService->u.esRequest->notToKeep = - (Z_ESAdminOriginPartNotToKeep *) - odr_malloc(out, sizeof(*r->u.adminService->u.esRequest->notToKeep)); - notToKeep->which=Z_ESAdminOriginPartNotToKeep_recordsWillFollow; - notToKeep->u.recordsWillFollow=odr_nullval(); - - send_apdu(apdu); - - return 0; -} - -/* cmd_adm_reindex - Ask the specified database to fully reindex itself */ -int cmd_adm_reindex(const char *arg) -{ - sendAdminES(Z_ESAdminOriginPartToKeep_reIndex, NULL); - return 2; -} - -/* cmd_adm_truncate - Truncate the specified database, removing all records and index entries, but leaving - the database & it's explain information intact ready for new records */ -int cmd_adm_truncate(const char *arg) -{ - if ( arg ) - { - sendAdminES(Z_ESAdminOriginPartToKeep_truncate, NULL); - return 2; - } - return 0; -} - -/* cmd_adm_create - Create a new database */ -int cmd_adm_create(const char *arg) -{ - if ( arg ) - { - sendAdminES(Z_ESAdminOriginPartToKeep_create, NULL); - return 2; - } - return 0; -} - -/* cmd_adm_drop - Drop (Delete) a database */ -int cmd_adm_drop(const char *arg) -{ - if ( arg ) - { - sendAdminES(Z_ESAdminOriginPartToKeep_drop, NULL); - return 2; - } - return 0; -} - -/* cmd_adm_import - Import the specified updated into the database - N.B. That in this case, the import may contain instructions to delete records as well as new or updates - to existing records */ - -#if HAVE_FNMATCH_H -int cmd_adm_import(const char *arg) -{ - char type_str[20], dir_str[1024], pattern_str[1024]; - char *cp; - char *sep = "/"; - DIR *dir; - struct dirent *ent; - int chunk = 10; - Z_APDU *apdu = 0; - Z_Segment *segment = 0; - ODR out = getODROutputStream(); - - if (arg && sscanf (arg, "%19s %1023s %1023s", type_str, - dir_str, pattern_str) != 3) - return 0; - if (num_databaseNames != 1) - return 0; - dir = opendir(dir_str); - if (!dir) - return 0; - - sendAdminES(Z_ESAdminOriginPartToKeep_import, type_str); - - printf ("sent es request\n"); - if ((cp=strrchr(dir_str, '/')) && cp[1] == 0) - sep=""; - - while ((ent = readdir(dir))) - { - if (fnmatch (pattern_str, ent->d_name, 0) == 0) - { - char fname[1024]; - struct stat status; - FILE *inf; - - sprintf (fname, "%s%s%s", dir_str, sep, ent->d_name); - stat (fname, &status); - - if (S_ISREG(status.st_mode) && (inf = fopen(fname, "r"))) - { - Z_NamePlusRecord *rec; - Odr_oct *oct = (Odr_oct *) odr_malloc (out, sizeof(*oct)); - - if (!apdu) - { - apdu = zget_APDU(out, Z_APDU_segmentRequest); - segment = apdu->u.segmentRequest; - segment->segmentRecords = (Z_NamePlusRecord **) - odr_malloc (out, chunk * sizeof(*segment->segmentRecords)); - } - rec = (Z_NamePlusRecord *) odr_malloc (out, sizeof(*rec)); - rec->databaseName = 0; - rec->which = Z_NamePlusRecord_intermediateFragment; - rec->u.intermediateFragment = (Z_FragmentSyntax *) - odr_malloc (out, sizeof(*rec->u.intermediateFragment)); - rec->u.intermediateFragment->which = - Z_FragmentSyntax_notExternallyTagged; - rec->u.intermediateFragment->u.notExternallyTagged = oct; - - oct->len = oct->size = status.st_size; - oct->buf = (unsigned char *) odr_malloc (out, oct->size); - fread (oct->buf, 1, oct->size, inf); - fclose (inf); - - segment->segmentRecords[segment->num_segmentRecords++] = rec; - - if (segment->num_segmentRecords == chunk) - { - send_apdu (apdu); - apdu = 0; - } - } - } - } - if (apdu) - send_apdu(apdu); - apdu = zget_APDU(out, Z_APDU_segmentRequest); - send_apdu (apdu); - closedir(dir); - return 2; -} -#else -int cmd_adm_import(const char *arg) -{ - printf ("not available on WIN32\n"); - return 0; -} -#endif - - -/* "Freshen" the specified database, by checking metadata records against the sources from which they were - generated, and creating a new record if the source has been touched since the last extraction */ -int cmd_adm_refresh(const char *arg) -{ - if ( arg ) - { - sendAdminES(Z_ESAdminOriginPartToKeep_refresh, NULL); - return 2; - } - return 0; -} - -/* cmd_adm_commit - Make imported records a permenant & visible to the live system */ -int cmd_adm_commit(const char *arg) -{ - sendAdminES(Z_ESAdminOriginPartToKeep_commit, NULL); - return 2; -} - -int cmd_adm_shutdown(const char *arg) -{ - sendAdminES(Z_ESAdminOriginPartToKeep_shutdown, NULL); - return 2; -} - -int cmd_adm_startup(const char *arg) -{ - sendAdminES(Z_ESAdminOriginPartToKeep_start, NULL); - return 2; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/client/admin.h b/dependencies/yaz_3.0.14/client/admin.h deleted file mode 100644 index e9e185e..0000000 --- a/dependencies/yaz_3.0.14/client/admin.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: admin.h,v 1.10 2007/01/24 11:50:18 adam Exp $ - */ - -int cmd_adm_reindex(const char* arg); -int cmd_adm_truncate(const char* arg); -int cmd_adm_create(const char* arg); -int cmd_adm_drop(const char* arg); -int cmd_adm_import(const char* arg); -int cmd_adm_refresh(const char* arg); -int cmd_adm_commit(const char* arg); -int cmd_adm_shutdown(const char* arg); -int cmd_adm_startup(const char* arg); - -int send_apdu(Z_APDU *a); -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/client/bertorture.c b/dependencies/yaz_3.0.14/client/bertorture.c deleted file mode 100644 index 64f1f36..0000000 --- a/dependencies/yaz_3.0.14/client/bertorture.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: bertorture.c,v 1.5 2007/01/03 08:42:13 adam Exp $ - */ - -#include -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_STAT_H -#include -#endif -#include -#if HAVE_UNISTD_H -#include -#endif - -#include -#include - -#include -#include -#include - -#define PACKET_SIZE 64 - -static int stop = 0; - -static int send_packet(const char *host) -{ - char buf[PACKET_SIZE]; - int i; - - void *add; - - COMSTACK cs = cs_create_host(host, 1, &add); - - if (!cs) - return -1; - - if (cs_connect(cs, add) < 0) - return -1; - - for (i = 0; i 0) - { - ssize_t wrote; - wrote = write(fd, buf+off+j, sizeof(buf)-j-off); - if (wrote <= 0) { - yaz_log(LOG_ERRNO|LOG_FATAL, "write %s", fname); - exit (1); - } - off += wrote; - } - if (close(fd) == -1) - { - yaz_log(LOG_ERRNO|LOG_FATAL, "close %s", fname); - exit (1); - } - } - mbuf = malloc(sizeof(buf)-j); - memcpy(mbuf, buf+j, sizeof(buf)-j); - odr_setbuf(odr, mbuf, sizeof(buf)-j, 0); - if (z_GDU(odr, &req, 0, 0)) - estat[99]++; - else - { - int ex; - odr_geterrorx(odr, &ex); - estat[ex]++; - } - if (dumpfile) - odr_dumpBER(dumpfile, buf+j, sizeof(buf)-j); - free(mbuf); - odr_reset(odr); - odr_destroy(odr); - nmem_exit(); - } - if (dumpfile && dumpfile != stdout) - fclose(dumpfile); -} - -void sigint_handler(int x) -{ - stop = 1; -} - -int main(int argc, char **argv) -{ - int start = 0, end = 10000000, ret, i, estat[100]; - char *arg; - char *ber_fname = 0; - char *packet_fname = 0; - - signal(SIGINT, sigint_handler); - signal(SIGTERM, sigint_handler); - for (i = 0; i -#include -#include -#include -#include -#ifndef WIN32 -#include -#endif -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_LOCALE_H -#include -#endif -#if HAVE_LANGINFO_H -#include -#endif -#if HAVE_UNISTD_H -#include -#endif -#if HAVE_SYS_STAT_H -#include -#endif -#if HAVE_SYS_TIME_H -#include -#endif - -#if HAVE_OPENSSL_SSL_H -#include -#include -#include -#include -#include -#include -#endif - -#ifdef WIN32 -#include -#include -#include -#define S_ISREG(x) (x & _S_IFREG) -#define S_ISDIR(x) (x & _S_IFDIR) -#endif - -#include - -#include - -#include -#define NO_OID 1 -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include - -#if HAVE_READLINE_READLINE_H -#include -#endif -#if HAVE_READLINE_HISTORY_H -#include -#endif - - -#include "admin.h" -#include "tabcomplete.h" -#include "fhistory.h" - -#define C_PROMPT "Z> " - -static file_history_t file_history = 0; - -static char sru_method[10] = "soap"; -static char sru_version[10] = "1.2"; -static char *codeset = 0; /* character set for output */ -static int hex_dump = 0; -static char *dump_file_prefix = 0; -static ODR out, in, print; /* encoding and decoding streams */ -#if YAZ_HAVE_XML2 -static ODR srw_sr_odr_out = 0; -static Z_SRW_PDU *srw_sr = 0; -#endif -static FILE *apdu_file = 0; -static FILE *ber_file = 0; -static COMSTACK conn = 0; /* our z-association */ -static Z_IdAuthentication *auth = 0; /* our current auth definition */ -char *databaseNames[128]; -int num_databaseNames = 0; -static Z_External *record_last = 0; -static int setnumber = -1; /* current result set number */ -static int smallSetUpperBound = 0; -static int largeSetLowerBound = 1; -static int mediumSetPresentNumber = 0; -static Z_ElementSetNames *elementSetNames = 0; -static int setno = 1; /* current set offset */ -static enum oid_proto protocol = PROTO_Z3950; /* current app protocol */ -#define RECORDSYNTAX_MAX 20 -static char *recordsyntax_list[RECORDSYNTAX_MAX]; -static int recordsyntax_size = 0; - -static char *record_schema = 0; -static int sent_close = 0; -static NMEM session_mem = NULL; /* memory handle for init-response */ -static Z_InitResponse *session_initResponse = 0; /* session parameters */ -static char last_scan_line[512] = "0"; -static char last_scan_query[512] = "0"; -static char ccl_fields[512] = "default.bib"; -/* ### How can I set this path to use wherever YAZ is installed? */ -static char cql_fields[512] = "/usr/local/share/yaz/etc/pqf.properties"; -static char *esPackageName = 0; -static char *yazProxy = 0; -static int kilobytes = 1024; -static char *negotiationCharset = 0; -static int negotiationCharsetRecords = 1; -static int negotiationCharsetVersion = 3; -static char *outputCharset = 0; -static char *marcCharset = 0; -static char *queryCharset = 0; -static char* yazLang = 0; - -static char last_cmd[32] = "?"; -static FILE *marc_file = 0; -static char *refid = NULL; -static char *last_open_command = NULL; -static int auto_reconnect = 0; -static int auto_wait = 1; -static Odr_bitmask z3950_options; -static int z3950_version = 3; -static int scan_stepSize = 0; -static int scan_position = 1; -static int scan_size = 20; -static char cur_host[200]; -static int last_hit_count = 0; - -typedef enum { - QueryType_Prefix, - QueryType_CCL, - QueryType_CCL2RPN, - QueryType_CQL, - QueryType_CQL2RPN -} QueryType; - -static QueryType queryType = QueryType_Prefix; - -static CCL_bibset bibset; /* CCL bibset handle */ -static cql_transform_t cqltrans = 0; /* CQL context-set handle */ - -#if HAVE_READLINE_COMPLETION_OVER - -#else -/* readline doesn't have this var. Define it ourselves. */ -int rl_attempted_completion_over = 0; -#endif - -#define maxOtherInfosSupported 10 -struct eoi { - Odr_oid oid[OID_SIZE]; - char* value; -} extraOtherInfos[maxOtherInfosSupported]; - -void process_cmd_line(char* line); -#if HAVE_READLINE_READLINE_H -char **readline_completer(char *text, int start, int end); -#endif -static char *command_generator(const char *text, int state); -int cmd_register_tab(const char* arg); -int cmd_querycharset(const char *arg); - -static void close_session (void); - -ODR getODROutputStream(void) -{ - return out; -} - -const char* query_type_as_string(QueryType q) -{ - switch (q) { - case QueryType_Prefix: return "prefix (RPN sent to server)"; - case QueryType_CCL: return "CCL (CCL sent to server) "; - case QueryType_CCL2RPN: return "CCL -> RPN (RPN sent to server)"; - case QueryType_CQL: return "CQL (CQL sent to server)"; - case QueryType_CQL2RPN: return "CQL -> RPN (RPN sent to server)"; - default: - return "unknown Query type internal yaz-client error"; - } -} - -static void do_hex_dump(const char* buf, int len) -{ - if (hex_dump) - { - int i,x; - for( i=0; i 0) - yaz_oi_set_string_oid(oi, out, extraOtherInfos[i].oid, - 1, extraOtherInfos[i].value); - } -} - -int send_apdu(Z_APDU *a) -{ - char *buf; - int len; - - add_otherInfos(a); - - if (apdu_file) - { - z_APDU(print, &a, 0, 0); - odr_reset(print); - } - if (!z_APDU(out, &a, 0, 0)) - { - odr_perror(out, "Encoding APDU"); - close_session(); - return 0; - } - buf = odr_getbuf(out, &len, 0); - if (ber_file) - odr_dumpBER(ber_file, buf, len); - /* printf ("sending APDU of size %d\n", len); */ - do_hex_dump(buf, len); - if (cs_put(conn, buf, len) < 0) - { - fprintf(stderr, "cs_put: %s", cs_errmsg(cs_errno(conn))); - close_session(); - return 0; - } - odr_reset(out); /* release the APDU structure */ - return 1; -} - -static void print_stringn(const unsigned char *buf, size_t len) -{ - size_t i; - for (i = 0; i= 32) || strchr ("\n\r\t\f", buf[i])) - printf ("%c", buf[i]); - else - printf ("\\X%02X", buf[i]); -} - -static void print_refid (Z_ReferenceId *id) -{ - if (id) - { - printf ("Reference Id: "); - print_stringn (id->buf, id->len); - printf ("\n"); - } -} - -static Z_ReferenceId *set_refid (ODR out) -{ - Z_ReferenceId *id; - if (!refid) - return 0; - id = (Z_ReferenceId *) odr_malloc (out, sizeof(*id)); - id->size = id->len = strlen(refid); - id->buf = (unsigned char *) odr_malloc (out, id->len); - memcpy (id->buf, refid, id->len); - return id; -} - -/* INIT SERVICE ------------------------------- */ - -static void send_initRequest(const char* type_and_host) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_initRequest); - Z_InitRequest *req = apdu->u.initRequest; - int i; - - req->options = &z3950_options; - - ODR_MASK_ZERO(req->protocolVersion); - for (i = 0; iprotocolVersion, i); - - *req->maximumRecordSize = 1024*kilobytes; - *req->preferredMessageSize = 1024*kilobytes; - - req->idAuthentication = auth; - - req->referenceId = set_refid (out); - - if (yazProxy && type_and_host) - { - yaz_oi_set_string_oid(&req->otherInfo, out, yaz_oid_userinfo_proxy, - 1, type_and_host); - } - - if (negotiationCharset || yazLang) { - Z_OtherInformation **p; - Z_OtherInformationUnit *p0; - - yaz_oi_APDU(apdu, &p); - - if ((p0=yaz_oi_update(p, out, NULL, 0, 0))) - { - ODR_MASK_SET(req->options, Z_Options_negotiationModel); - - p0->which = Z_OtherInfo_externallyDefinedInfo; - p0->information.externallyDefinedInfo = - yaz_set_proposal_charneg_list(out, ",", - negotiationCharset, - yazLang, - negotiationCharsetRecords); - } - } - else if (ODR_MASK_GET(req->options, Z_Options_negotiationModel)) - { - Z_OtherInformation **p; - Z_OtherInformationUnit *p0; - - yaz_oi_APDU(apdu, &p); - - if ((p0=yaz_oi_update(p, out, NULL, 0, 0))) - { - p0->which = Z_OtherInfo_externallyDefinedInfo; - p0->information.externallyDefinedInfo = - yaz_set_proposal_charneg(out, 0, 0, 0, 0, 0); - } - - } - if (send_apdu(apdu)) - printf("Sent initrequest.\n"); -} - - -/* These two are used only from process_initResponse() */ -static void render_initUserInfo(Z_OtherInformation *ui1); -static void render_diag(Z_DiagnosticFormat *diag); - -static void pr_opt(const char *opt, void *clientData) -{ - printf (" %s", opt); -} - -static int process_initResponse(Z_InitResponse *res) -{ - int ver = 0; - /* save session parameters for later use */ - session_mem = odr_extract_mem(in); - session_initResponse = res; - - for (ver = 0; ver < 8; ver++) - if (!ODR_MASK_GET(res->protocolVersion, ver)) - break; - - if (!*res->result) - printf("Connection rejected by v%d target.\n", ver); - else - printf("Connection accepted by v%d target.\n", ver); - if (res->implementationId) - printf("ID : %s\n", res->implementationId); - if (res->implementationName) - printf("Name : %s\n", res->implementationName); - if (res->implementationVersion) - printf("Version: %s\n", res->implementationVersion); - if (res->userInformationField) - { - Z_External *uif = res->userInformationField; - if (uif->which == Z_External_userInfo1) { - render_initUserInfo(uif->u.userInfo1); - } else { - printf("UserInformationfield:\n"); - if (!z_External(print, (Z_External**)&uif, 0, 0)) - { - odr_perror(print, "Printing userinfo\n"); - odr_reset(print); - } - if (uif->which == Z_External_octet) { - printf("Guessing visiblestring:\n"); - printf("'%.*s'\n", uif->u.octet_aligned->len, - uif->u.octet_aligned->buf); - } - else if (uif->which == Z_External_single) - { - Odr_any *sat = uif->u.single_ASN1_type; - if (!oid_oidcmp(uif->direct_reference, - yaz_oid_userinfo_oclc_userinfo)) - { - Z_OCLC_UserInformation *oclc_ui; - ODR decode = odr_createmem(ODR_DECODE); - odr_setbuf(decode, (char *) sat->buf, sat->len, 0); - if (!z_OCLC_UserInformation(decode, &oclc_ui, 0, 0)) - printf ("Bad OCLC UserInformation:\n"); - else - printf ("OCLC UserInformation:\n"); - if (!z_OCLC_UserInformation(print, &oclc_ui, 0, 0)) - printf ("Bad OCLC UserInformation spec\n"); - odr_destroy(decode); - } - else - { - /* Peek at any private Init-diagnostic APDUs */ - printf("### NAUGHTY: External is '%.*s'\n", - sat->len, sat->buf); - } - } - odr_reset (print); - } - } - printf ("Options:"); - yaz_init_opt_decode(res->options, pr_opt, 0); - printf ("\n"); - - if (ODR_MASK_GET(res->options, Z_Options_namedResultSets)) - setnumber = 0; - - if (ODR_MASK_GET(res->options, Z_Options_negotiationModel)) { - - Z_CharSetandLanguageNegotiation *p = - yaz_get_charneg_record(res->otherInfo); - - if (p) - { - char *charset=NULL, *lang=NULL; - int selected; - - yaz_get_response_charneg(session_mem, p, &charset, &lang, - &selected); - - printf("Accepted character set : %s\n", charset ? charset:"none"); - printf("Accepted code language : %s\n", lang ? lang:"none"); - printf("Accepted records in ...: %d\n", selected ); - - if (outputCharset && charset) - { - printf("Converting between %s and %s\n", - outputCharset, charset); - odr_set_charset(out, charset, outputCharset); - odr_set_charset(in, outputCharset, charset); - cmd_querycharset(charset); - } - else - { - odr_set_charset(out, 0, 0); - odr_set_charset(in, 0, 0); - } - } - } - fflush (stdout); - return 0; -} - - -static void render_initUserInfo(Z_OtherInformation *ui1) { - int i; - printf("Init response contains %d otherInfo unit%s:\n", - ui1->num_elements, ui1->num_elements == 1 ? "" : "s"); - - for (i = 0; i < ui1->num_elements; i++) { - Z_OtherInformationUnit *unit = ui1->list[i]; - printf(" %d: otherInfo unit contains ", i+1); - if (unit->which == Z_OtherInfo_externallyDefinedInfo && - unit->information.externallyDefinedInfo && - unit->information.externallyDefinedInfo->which == - Z_External_diag1) { - render_diag(unit->information.externallyDefinedInfo->u.diag1); - } - else if (unit->which != Z_OtherInfo_externallyDefinedInfo) - { - printf("unsupported otherInfo unit->which = %d\n", unit->which); - } - else - { - printf("unsupported otherInfo unit external %d\n", - unit->information.externallyDefinedInfo ? - unit->information.externallyDefinedInfo->which : -2); - } - } -} - - -/* ### should this share code with display_diagrecs()? */ -static void render_diag(Z_DiagnosticFormat *diag) { - int i; - - printf("%d diagnostic%s:\n", diag->num, diag->num == 1 ? "" : "s"); - for (i = 0; i < diag->num; i++) { - Z_DiagnosticFormat_s *ds = diag->elements[i]; - printf(" %d: ", i+1); - switch (ds->which) { - case Z_DiagnosticFormat_s_defaultDiagRec: { - Z_DefaultDiagFormat *dd = ds->u.defaultDiagRec; - /* ### should check `dd->diagnosticSetId' */ - printf("code=%d (%s)", *dd->condition, - diagbib1_str(*dd->condition)); - /* Both types of addinfo are the same, so use type-pun */ - if (dd->u.v2Addinfo != 0) - printf(",\n\taddinfo='%s'", dd->u.v2Addinfo); - break; - } - case Z_DiagnosticFormat_s_explicitDiagnostic: - printf("Explicit diagnostic (not supported)"); - break; - default: - printf("Unrecognised diagnostic type %d", ds->which); - break; - } - - if (ds->message != 0) - printf(", message='%s'", ds->message); - printf("\n"); - } -} - - -static int set_base(const char *arg) -{ - int i; - const char *cp; - - for (i = 0; i ...\n"); - return 0; - } - return set_base(arg); -} - -void cmd_open_remember_last_open_command(const char* arg, char* new_open_command) -{ - if(last_open_command != arg) - { - if(last_open_command) xfree(last_open_command); - last_open_command = xstrdup(new_open_command); - } -} - -int session_connect(const char *arg) -{ - void *add; - char type_and_host[101]; - const char *basep = 0; -#if HAVE_OPENSSL_SSL_H - SSL *ssl; -#endif - if (conn) - { - cs_close (conn); - conn = 0; - } - if (session_mem) - { - nmem_destroy (session_mem); - session_mem = NULL; - session_initResponse = 0; - } - cs_get_host_args(arg, &basep); - - strncpy(type_and_host, arg, sizeof(type_and_host)-1); - type_and_host[sizeof(type_and_host)-1] = '\0'; - - cmd_open_remember_last_open_command(arg, type_and_host); - - if (yazProxy) - conn = cs_create_host(yazProxy, 1, &add); - else - conn = cs_create_host(arg, 1, &add); - if (!conn) - { - printf ("Could not resolve address %s\n", arg); - return 0; - } -#if YAZ_HAVE_XML2 - if (conn->protocol == PROTO_HTTP) - queryType = QueryType_CQL; -#else - if (conn->protocol == PROTO_HTTP) - { - printf ("SRW/HTTP not enabled in this YAZ\n"); - cs_close(conn); - conn = 0; - return 0; - } -#endif - protocol = conn->protocol; - if (conn->protocol == PROTO_HTTP) - set_base(""); - else - set_base("Default"); - printf("Connecting..."); - fflush(stdout); - if (cs_connect(conn, add) < 0) - { - printf ("error = %s\n", cs_strerror(conn)); - cs_close(conn); - conn = 0; - return 0; - } - printf("OK.\n"); -#if HAVE_OPENSSL_SSL_H - if ((ssl = (SSL *) cs_get_ssl(conn))) - { - X509 *server_cert = SSL_get_peer_certificate (ssl); - - if (server_cert) - { - char *pem_buf; - int pem_len; - BIO *bio = BIO_new(BIO_s_mem()); - - /* get PEM buffer in memory */ - PEM_write_bio_X509(bio, server_cert); - pem_len = BIO_get_mem_data(bio, &pem_buf); - fwrite(pem_buf, pem_len, 1, stdout); - - /* print all info on screen .. */ - X509_print_fp(stdout, server_cert); - BIO_free(bio); - - X509_free (server_cert); - } - } -#endif - if (basep && *basep) - set_base (basep); - if (protocol == PROTO_Z3950) - { - send_initRequest(type_and_host); - return 2; - } - return 0; -} - -int cmd_open(const char *arg) -{ - if (arg) - { - strncpy (cur_host, arg, sizeof(cur_host)-1); - cur_host[sizeof(cur_host)-1] = 0; - } - return session_connect(cur_host); -} - -void try_reconnect(void) -{ - char* open_command; - - if(!( auto_reconnect && last_open_command) ) return ; - - open_command = (char *) xmalloc (strlen(last_open_command)+6); - strcpy (open_command, "open "); - - strcat (open_command, last_open_command); - - process_cmd_line(open_command); - - xfree(open_command); -} - -int cmd_authentication(const char *arg) -{ - static Z_IdAuthentication au; - static char user[40], group[40], pass[40]; - static Z_IdPass idPass; - int r; - - if (!*arg) - { - printf("Auth field set to null\n"); - auth = 0; - return 1; - } - r = sscanf (arg, "%39s %39s %39s", user, group, pass); - if (r == 0) - { - printf("Authentication set to null\n"); - auth = 0; - } - if (r == 1) - { - auth = &au; - if (!strcmp(user, "-")) { - au.which = Z_IdAuthentication_anonymous; - printf("Authentication set to Anonymous\n"); - } else { - au.which = Z_IdAuthentication_open; - au.u.open = user; - printf("Authentication set to Open (%s)\n", user); - } - } - if (r == 2) - { - auth = &au; - au.which = Z_IdAuthentication_idPass; - au.u.idPass = &idPass; - idPass.groupId = NULL; - idPass.userId = user; - idPass.password = group; - printf("Authentication set to User (%s), Pass (%s)\n", user, group); - } - if (r == 3) - { - auth = &au; - au.which = Z_IdAuthentication_idPass; - au.u.idPass = &idPass; - idPass.groupId = group; - idPass.userId = user; - idPass.password = pass; - printf("Authentication set to User (%s), Group (%s), Pass (%s)\n", - user, group, pass); - } - return 1; -} - -/* SEARCH SERVICE ------------------------------ */ -static void display_record(Z_External *r); - -static void print_record(const unsigned char *buf, size_t len) -{ - size_t i = len; - print_stringn (buf, len); - /* add newline if not already added ... */ - if (i <= 0 || buf[i-1] != '\n') - printf ("\n"); -} - -static void display_record(Z_External *r) -{ - const Odr_oid *oid = r->direct_reference; - - record_last = r; - /* - * Tell the user what we got. - */ - if (oid) - { - oid_class oclass; - char oid_name_buf[OID_STR_MAX]; - const char *oid_name - = yaz_oid_to_string_buf(oid, &oclass, oid_name_buf); - printf("Record type: "); - if (oid_name) - printf("%s\n", oid_name); - } - /* Check if this is a known, ASN.1 type tucked away in an octet string */ - if (r->which == Z_External_octet) - { - Z_ext_typeent *type = z_ext_getentbyref(r->direct_reference); - char *rr; - - if (type) - { - /* - * Call the given decoder to process the record. - */ - odr_setbuf(in, (char*)r->u.octet_aligned->buf, - r->u.octet_aligned->len, 0); - if (!(*type->fun)(in, &rr, 0, 0)) - { - odr_perror(in, "Decoding constructed record."); - fprintf(stdout, "[Near %ld]\n", (long) odr_offset(in)); - fprintf(stdout, "Packet dump:\n---------\n"); - odr_dumpBER(stdout, (char*)r->u.octet_aligned->buf, - r->u.octet_aligned->len); - fprintf(stdout, "---------\n"); - - /* note just ignores the error ant print the bytes form the octet_aligned later */ - } else { - /* - * Note: we throw away the original, BER-encoded record here. - * Do something else with it if you want to keep it. - */ - r->u.sutrs = (Z_SUTRS *) rr; /* we don't actually check the type here. */ - r->which = type->what; - } - } - } - if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_soif)) - { - print_record((const unsigned char *) r->u.octet_aligned->buf, - r->u.octet_aligned->len); - if (marc_file) - fwrite (r->u.octet_aligned->buf, 1, r->u.octet_aligned->len, marc_file); - } - else if (oid && r->which == Z_External_octet) - { - const char *octet_buf = (char*)r->u.octet_aligned->buf; - if (oid && (!oid_oidcmp(oid, yaz_oid_recsyn_xml) - || !oid_oidcmp(oid, yaz_oid_recsyn_xml) - || !oid_oidcmp(oid, yaz_oid_recsyn_html))) - { - print_record((const unsigned char *) octet_buf, - r->u.octet_aligned->len); - } - else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_postscript)) - { - int size = r->u.octet_aligned->len; - if (size > 100) - size = 100; - print_record((const unsigned char *) octet_buf, size); - } - else - { - if (oid && yaz_oid_is_iso2709(oid)) - { - const char *result; - size_t rlen; - yaz_iconv_t cd = 0; - yaz_marc_t mt = yaz_marc_create(); - const char *from = 0; - - if (marcCharset && !strcmp(marcCharset, "auto")) - { - if (!oid_oidcmp(oid, yaz_oid_recsyn_usmarc)) - { - if (octet_buf[9] == 'a') - from = "UTF-8"; - else - from = "MARC-8"; - } - else - from = "ISO-8859-1"; - } - else if (marcCharset) - from = marcCharset; - if (outputCharset && from) - { - cd = yaz_iconv_open(outputCharset, from); - printf ("convert from %s to %s", from, - outputCharset); - if (!cd) - printf (" unsupported\n"); - else - { - yaz_marc_iconv(mt, cd); - printf ("\n"); - } - } - - if (yaz_marc_decode_buf(mt, octet_buf, r->u.octet_aligned->len, - &result, &rlen)> 0) - { - fwrite (result, rlen, 1, stdout); - } - else - { - printf ("bad MARC. Dumping as it is:\n"); - print_record((const unsigned char*) octet_buf, - r->u.octet_aligned->len); - } - yaz_marc_destroy(mt); - if (cd) - yaz_iconv_close(cd); - } - else - { - print_record((const unsigned char*) octet_buf, - r->u.octet_aligned->len); - } - } - if (marc_file) - fwrite (octet_buf, 1, r->u.octet_aligned->len, marc_file); - } - else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_sutrs)) - { - if (r->which != Z_External_sutrs) - { - printf("Expecting single SUTRS type for SUTRS.\n"); - return; - } - print_record(r->u.sutrs->buf, r->u.sutrs->len); - if (marc_file) - fwrite (r->u.sutrs->buf, 1, r->u.sutrs->len, marc_file); - } - else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_grs_1)) - { - WRBUF w; - if (r->which != Z_External_grs1) - { - printf("Expecting single GRS type for GRS.\n"); - return; - } - w = wrbuf_alloc(); - yaz_display_grs1(w, r->u.grs1, 0); - puts (wrbuf_cstr(w)); - wrbuf_destroy(w); - } - else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_opac)) - { - int i; - if (r->u.opac->bibliographicRecord) - display_record(r->u.opac->bibliographicRecord); - for (i = 0; iu.opac->num_holdingsData; i++) - { - Z_HoldingsRecord *h = r->u.opac->holdingsData[i]; - if (h->which == Z_HoldingsRecord_marcHoldingsRecord) - { - printf ("MARC holdings %d\n", i); - display_record(h->u.marcHoldingsRecord); - } - else if (h->which == Z_HoldingsRecord_holdingsAndCirc) - { - int j; - - Z_HoldingsAndCircData *data = h->u.holdingsAndCirc; - - printf ("Data holdings %d\n", i); - if (data->typeOfRecord) - printf ("typeOfRecord: %s\n", data->typeOfRecord); - if (data->encodingLevel) - printf ("encodingLevel: %s\n", data->encodingLevel); - if (data->receiptAcqStatus) - printf ("receiptAcqStatus: %s\n", data->receiptAcqStatus); - if (data->generalRetention) - printf ("generalRetention: %s\n", data->generalRetention); - if (data->completeness) - printf ("completeness: %s\n", data->completeness); - if (data->dateOfReport) - printf ("dateOfReport: %s\n", data->dateOfReport); - if (data->nucCode) - printf ("nucCode: %s\n", data->nucCode); - if (data->localLocation) - printf ("localLocation: %s\n", data->localLocation); - if (data->shelvingLocation) - printf ("shelvingLocation: %s\n", data->shelvingLocation); - if (data->callNumber) - printf ("callNumber: %s\n", data->callNumber); - if (data->shelvingData) - printf ("shelvingData: %s\n", data->shelvingData); - if (data->copyNumber) - printf ("copyNumber: %s\n", data->copyNumber); - if (data->publicNote) - printf ("publicNote: %s\n", data->publicNote); - if (data->reproductionNote) - printf ("reproductionNote: %s\n", data->reproductionNote); - if (data->termsUseRepro) - printf ("termsUseRepro: %s\n", data->termsUseRepro); - if (data->enumAndChron) - printf ("enumAndChron: %s\n", data->enumAndChron); - for (j = 0; jnum_volumes; j++) - { - printf ("volume %d\n", j); - if (data->volumes[j]->enumeration) - printf (" enumeration: %s\n", - data->volumes[j]->enumeration); - if (data->volumes[j]->chronology) - printf (" chronology: %s\n", - data->volumes[j]->chronology); - if (data->volumes[j]->enumAndChron) - printf (" enumAndChron: %s\n", - data->volumes[j]->enumAndChron); - } - for (j = 0; jnum_circulationData; j++) - { - printf ("circulation %d\n", j); - if (data->circulationData[j]->availableNow) - printf (" availableNow: %d\n", - *data->circulationData[j]->availableNow); - if (data->circulationData[j]->availablityDate) - printf (" availabiltyDate: %s\n", - data->circulationData[j]->availablityDate); - if (data->circulationData[j]->availableThru) - printf (" availableThru: %s\n", - data->circulationData[j]->availableThru); - if (data->circulationData[j]->restrictions) - printf (" restrictions: %s\n", - data->circulationData[j]->restrictions); - if (data->circulationData[j]->itemId) - printf (" itemId: %s\n", - data->circulationData[j]->itemId); - if (data->circulationData[j]->renewable) - printf (" renewable: %d\n", - *data->circulationData[j]->renewable); - if (data->circulationData[j]->onHold) - printf (" onHold: %d\n", - *data->circulationData[j]->onHold); - if (data->circulationData[j]->enumAndChron) - printf (" enumAndChron: %s\n", - data->circulationData[j]->enumAndChron); - if (data->circulationData[j]->midspine) - printf (" midspine: %s\n", - data->circulationData[j]->midspine); - if (data->circulationData[j]->temporaryLocation) - printf (" temporaryLocation: %s\n", - data->circulationData[j]->temporaryLocation); - } - } - } - } - else - { - printf("Unknown record representation.\n"); - if (!z_External(print, &r, 0, 0)) - { - odr_perror(print, "Printing external"); - odr_reset(print); - } - } -} - -static void display_diagrecs(Z_DiagRec **pp, int num) -{ - int i; - Z_DefaultDiagFormat *r; - - printf("Diagnostic message(s) from database:\n"); - for (i = 0; iwhich != Z_DiagRec_defaultFormat) - { - printf("Diagnostic record not in default format.\n"); - return; - } - else - r = p->u.defaultFormat; - - if (!r->diagnosticSetId) - printf("Missing diagset\n"); - else - { - oid_class oclass; - char diag_name_buf[OID_STR_MAX]; - const char *diag_name = 0; - diag_name = yaz_oid_to_string_buf - (r->diagnosticSetId, &oclass, diag_name_buf); - if (oid_oidcmp(r->diagnosticSetId, yaz_oid_diagset_bib_1)) - printf("Unknown diagset: %s\n", diag_name); - } - printf(" [%d] %s", *r->condition, diagbib1_str(*r->condition)); - switch (r->which) - { - case Z_DefaultDiagFormat_v2Addinfo: - printf (" -- v2 addinfo '%s'\n", r->u.v2Addinfo); - break; - case Z_DefaultDiagFormat_v3Addinfo: - printf (" -- v3 addinfo '%s'\n", r->u.v3Addinfo); - break; - } - } -} - - -static void display_nameplusrecord(Z_NamePlusRecord *p) -{ - if (p->databaseName) - printf("[%s]", p->databaseName); - if (p->which == Z_NamePlusRecord_surrogateDiagnostic) - display_diagrecs(&p->u.surrogateDiagnostic, 1); - else if (p->which == Z_NamePlusRecord_databaseRecord) - display_record(p->u.databaseRecord); -} - -static void display_records(Z_Records *p) -{ - int i; - - if (p->which == Z_Records_NSD) - { - Z_DiagRec dr, *dr_p = &dr; - dr.which = Z_DiagRec_defaultFormat; - dr.u.defaultFormat = p->u.nonSurrogateDiagnostic; - display_diagrecs (&dr_p, 1); - } - else if (p->which == Z_Records_multipleNSD) - display_diagrecs (p->u.multipleNonSurDiagnostics->diagRecs, - p->u.multipleNonSurDiagnostics->num_diagRecs); - else - { - printf("Records: %d\n", p->u.databaseOrSurDiagnostics->num_records); - for (i = 0; i < p->u.databaseOrSurDiagnostics->num_records; i++) - display_nameplusrecord(p->u.databaseOrSurDiagnostics->records[i]); - } -} - -static int send_deleteResultSetRequest(const char *arg) -{ - char names[8][32]; - int i; - - Z_APDU *apdu = zget_APDU(out, Z_APDU_deleteResultSetRequest); - Z_DeleteResultSetRequest *req = apdu->u.deleteResultSetRequest; - - req->referenceId = set_refid (out); - - req->num_resultSetList = - sscanf (arg, "%30s %30s %30s %30s %30s %30s %30s %30s", - names[0], names[1], names[2], names[3], - names[4], names[5], names[6], names[7]); - - req->deleteFunction = (int *) - odr_malloc (out, sizeof(*req->deleteFunction)); - if (req->num_resultSetList > 0) - { - *req->deleteFunction = Z_DeleteResultSetRequest_list; - req->resultSetList = (char **) - odr_malloc (out, sizeof(*req->resultSetList)* - req->num_resultSetList); - for (i = 0; inum_resultSetList; i++) - req->resultSetList[i] = names[i]; - } - else - { - *req->deleteFunction = Z_DeleteResultSetRequest_all; - req->resultSetList = 0; - } - - send_apdu(apdu); - printf("Sent deleteResultSetRequest.\n"); - return 2; -} - -#if YAZ_HAVE_XML2 -static int send_srw(Z_SRW_PDU *sr) -{ - const char *charset = negotiationCharset; - const char *host_port = cur_host; - Z_GDU *gdu; - char *path = 0; - - path = (char *) odr_malloc(out, 2+strlen(databaseNames[0])); - *path = '/'; - strcpy(path+1, databaseNames[0]); - - gdu = z_get_HTTP_Request_host_path(out, host_port, path); - - if (!yaz_matchstr(sru_method, "get")) - { - yaz_sru_get_encode(gdu->u.HTTP_Request, sr, out, charset); - } - else if (!yaz_matchstr(sru_method, "post")) - { - yaz_sru_post_encode(gdu->u.HTTP_Request, sr, out, charset); - } - else if (!yaz_matchstr(sru_method, "soap")) - { - yaz_sru_soap_encode(gdu->u.HTTP_Request, sr, out, charset); - } - - if (z_GDU(out, &gdu, 0, 0)) - { - /* encode OK */ - char *buf_out; - int len_out; - int r; - if (apdu_file) - { - if (!z_GDU(print, &gdu, 0, 0)) - printf ("Failed to print outgoing SRU package\n"); - odr_reset(print); - } - buf_out = odr_getbuf(out, &len_out, 0); - - /* we don't odr_reset(out), since we may need the buffer again */ - - do_hex_dump(buf_out, len_out); - - r = cs_put(conn, buf_out, len_out); - - if (r >= 0) - return 2; - } - return 0; -} -#endif - -#if YAZ_HAVE_XML2 -static char *encode_SRW_term(ODR o, const char *q) -{ - const char *in_charset = "ISO-8859-1"; - WRBUF w = wrbuf_alloc(); - yaz_iconv_t cd; - char *res; - if (outputCharset) - in_charset = outputCharset; - cd = yaz_iconv_open("UTF-8", in_charset); - if (!cd) - { - wrbuf_destroy(w); - return odr_strdup(o, q); - } - wrbuf_iconv_write(w, cd, q, strlen(q)); - if (wrbuf_len(w)) - res = odr_strdup(o, wrbuf_cstr(w)); - else - res = odr_strdup(o, q); - yaz_iconv_close(cd); - wrbuf_destroy(w); - return res; -} - - -static int send_SRW_scanRequest(const char *arg, int pos, int num) -{ - Z_SRW_PDU *sr = 0; - - /* regular requestse .. */ - sr = yaz_srw_get_pdu(out, Z_SRW_scan_request, sru_version); - - switch(queryType) - { - case QueryType_CQL: - sr->u.scan_request->query_type = Z_SRW_query_type_cql; - sr->u.scan_request->scanClause.cql = encode_SRW_term(out, arg); - break; - case QueryType_Prefix: - sr->u.scan_request->query_type = Z_SRW_query_type_pqf; - sr->u.scan_request->scanClause.pqf = encode_SRW_term(out, arg); - break; - default: - printf ("Only CQL and PQF supported in SRW\n"); - return 0; - } - sr->u.scan_request->responsePosition = odr_intdup(out, pos); - sr->u.scan_request->maximumTerms = odr_intdup(out, num); - return send_srw(sr); -} - -static int send_SRW_searchRequest(const char *arg) -{ - Z_SRW_PDU *sr = 0; - - if (!srw_sr) - { - assert(srw_sr_odr_out == 0); - srw_sr_odr_out = odr_createmem(ODR_ENCODE); - } - odr_reset(srw_sr_odr_out); - - setno = 1; - - /* save this for later .. when fetching individual records */ - srw_sr = yaz_srw_get_pdu(srw_sr_odr_out, Z_SRW_searchRetrieve_request, - sru_version); - - /* regular request .. */ - sr = yaz_srw_get_pdu(out, Z_SRW_searchRetrieve_request, sru_version); - - switch(queryType) - { - case QueryType_CQL: - srw_sr->u.request->query_type = Z_SRW_query_type_cql; - srw_sr->u.request->query.cql = encode_SRW_term(srw_sr_odr_out, arg); - - sr->u.request->query_type = Z_SRW_query_type_cql; - sr->u.request->query.cql = encode_SRW_term(srw_sr_odr_out, arg); - break; - case QueryType_Prefix: - srw_sr->u.request->query_type = Z_SRW_query_type_pqf; - srw_sr->u.request->query.pqf = encode_SRW_term(srw_sr_odr_out, arg); - - sr->u.request->query_type = Z_SRW_query_type_pqf; - sr->u.request->query.pqf = encode_SRW_term(srw_sr_odr_out, arg); - break; - default: - printf ("Only CQL and PQF supported in SRW\n"); - return 0; - } - sr->u.request->maximumRecords = odr_intdup(out, 0); - - if (record_schema) - sr->u.request->recordSchema = record_schema; - if (recordsyntax_size == 1 && !yaz_matchstr(recordsyntax_list[0], "xml")) - sr->u.request->recordPacking = "xml"; - return send_srw(sr); -} -#endif - -static void query_charset_convert(Z_RPNQuery *q) -{ - if (queryCharset && outputCharset) - { - yaz_iconv_t cd = yaz_iconv_open(queryCharset, outputCharset); - if (!cd) - { - printf("Conversion from %s to %s unsupported\n", - outputCharset, queryCharset); - return; - } - yaz_query_charset_convert_rpnquery(q, out, cd); - yaz_iconv_close(cd); - } -} - -static int send_searchRequest(const char *arg) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_searchRequest); - Z_SearchRequest *req = apdu->u.searchRequest; - Z_Query query; - struct ccl_rpn_node *rpn = NULL; - int error, pos; - char setstring[100]; - Z_RPNQuery *RPNquery; - Odr_oct ccl_query; - YAZ_PQF_Parser pqf_parser; - Z_External *ext; - QueryType myQueryType = queryType; - char pqfbuf[512]; - - if (myQueryType == QueryType_CCL2RPN) - { - rpn = ccl_find_str(bibset, arg, &error, &pos); - if (error) - { - printf("CCL ERROR: %s\n", ccl_err_msg(error)); - return 0; - } - } else if (myQueryType == QueryType_CQL2RPN) { - /* ### All this code should be wrapped in a utility function */ - CQL_parser parser; - struct cql_node *node; - const char *addinfo; - if (cqltrans == 0) { - printf("Can't use CQL: no translation file. Try set_cqlfile\n"); - return 0; - } - parser = cql_parser_create(); - if ((error = cql_parser_string(parser, arg)) != 0) { - printf("Can't parse CQL: must be a syntax error\n"); - return 0; - } - node = cql_parser_result(parser); - if ((error = cql_transform_buf(cqltrans, node, pqfbuf, - sizeof pqfbuf)) != 0) { - error = cql_transform_error(cqltrans, &addinfo); - printf ("Can't convert CQL to PQF: %s (addinfo=%s)\n", - cql_strerror(error), addinfo); - return 0; - } - arg = pqfbuf; - myQueryType = QueryType_Prefix; - } - - req->referenceId = set_refid (out); - if (!strcmp(arg, "@big")) /* strictly for troublemaking */ - { - static unsigned char big[2100]; - static Odr_oct bigo; - - /* send a very big referenceid to test transport stack etc. */ - memset(big, 'A', 2100); - bigo.len = bigo.size = 2100; - bigo.buf = big; - req->referenceId = &bigo; - } - - if (setnumber >= 0) - { - sprintf(setstring, "%d", ++setnumber); - req->resultSetName = setstring; - } - *req->smallSetUpperBound = smallSetUpperBound; - *req->largeSetLowerBound = largeSetLowerBound; - *req->mediumSetPresentNumber = mediumSetPresentNumber; - if (smallSetUpperBound > 0 || (largeSetLowerBound > 1 && - mediumSetPresentNumber > 0)) - { - if (recordsyntax_size) - req->preferredRecordSyntax = - yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_RECSYN, recordsyntax_list[0], out); - - req->smallSetElementSetNames = - req->mediumSetElementSetNames = elementSetNames; - } - req->num_databaseNames = num_databaseNames; - req->databaseNames = databaseNames; - - req->query = &query; - - switch (myQueryType) - { - case QueryType_Prefix: - query.which = Z_Query_type_1; - pqf_parser = yaz_pqf_create (); - RPNquery = yaz_pqf_parse (pqf_parser, out, arg); - if (!RPNquery) - { - const char *pqf_msg; - size_t off; - int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off); - int ioff = off; - printf("%*s^\n", ioff+4, ""); - printf("Prefix query error: %s (code %d)\n", pqf_msg, code); - - yaz_pqf_destroy (pqf_parser); - return 0; - } - yaz_pqf_destroy (pqf_parser); - query_charset_convert(RPNquery); - query.u.type_1 = RPNquery; - break; - case QueryType_CCL: - query.which = Z_Query_type_2; - query.u.type_2 = &ccl_query; - ccl_query.buf = (unsigned char*) arg; - ccl_query.len = strlen(arg); - break; - case QueryType_CCL2RPN: - query.which = Z_Query_type_1; - RPNquery = ccl_rpn_query(out, rpn); - if (!RPNquery) - { - printf ("Couldn't convert from CCL to RPN\n"); - return 0; - } - query_charset_convert(RPNquery); - query.u.type_1 = RPNquery; - ccl_rpn_delete (rpn); - break; - case QueryType_CQL: - query.which = Z_Query_type_104; - ext = (Z_External *) odr_malloc(out, sizeof(*ext)); - ext->direct_reference = odr_getoidbystr(out, "1.2.840.10003.16.2"); - ext->indirect_reference = 0; - ext->descriptor = 0; - ext->which = Z_External_CQL; - ext->u.cql = odr_strdup(out, arg); - query.u.type_104 = ext; - break; - default: - printf ("Unsupported query type\n"); - return 0; - } - if (send_apdu(apdu)) - printf("Sent searchRequest.\n"); - setno = 1; - return 2; -} - -/* display Query Expression as part of searchResult-1 */ -static void display_queryExpression (const char *lead, Z_QueryExpression *qe) -{ - if (!qe) - return; - printf(" %s=", lead); - if (qe->which == Z_QueryExpression_term) - { - if (qe->u.term->queryTerm) - { - Z_Term *term = qe->u.term->queryTerm; - switch (term->which) - { - case Z_Term_general: - printf ("%.*s", term->u.general->len, term->u.general->buf); - break; - case Z_Term_characterString: - printf ("%s", term->u.characterString); - break; - case Z_Term_numeric: - printf ("%d", *term->u.numeric); - break; - case Z_Term_null: - printf ("null"); - break; - } - } - } -} - -/* see if we can find USR:SearchResult-1 */ -static void display_searchResult (Z_OtherInformation *o) -{ - int i; - if (!o) - return ; - for (i = 0; i < o->num_elements; i++) - { - if (o->list[i]->which == Z_OtherInfo_externallyDefinedInfo) - { - Z_External *ext = o->list[i]->information.externallyDefinedInfo; - - if (ext->which == Z_External_searchResult1) - { - int j; - Z_SearchInfoReport *sr = ext->u.searchResult1; - printf ("SearchResult-1:"); - for (j = 0; j < sr->num; j++) - { - if (j) - printf(","); - if (!sr->elements[j]->subqueryExpression) - printf("%d", j); - display_queryExpression("term", - sr->elements[j]->subqueryExpression); - display_queryExpression("interpretation", - sr->elements[j]->subqueryInterpretation); - display_queryExpression("recommendation", - sr->elements[j]->subqueryRecommendation); - if (sr->elements[j]->subqueryCount) - printf(" cnt=%d", *sr->elements[j]->subqueryCount); - if (sr->elements[j]->subqueryId) - printf(" id=%s ", sr->elements[j]->subqueryId); - } - printf ("\n"); - } - } - } -} - -static int process_searchResponse(Z_SearchResponse *res) -{ - printf ("Received SearchResponse.\n"); - print_refid (res->referenceId); - if (*res->searchStatus) - printf("Search was a success.\n"); - else - printf("Search was a bloomin' failure.\n"); - printf("Number of hits: %d", *res->resultCount); - last_hit_count = *res->resultCount; - if (setnumber >= 0) - printf (", setno %d", setnumber); - putchar('\n'); - if (res->resultSetStatus) - { - printf("Result Set Status: "); - switch(*res->resultSetStatus) - { - case Z_SearchResponse_subset: - printf("subset"); break; - case Z_SearchResponse_interim: - printf("interim"); break; - case Z_SearchResponse_none: - printf("none"); break; - case Z_SearchResponse_estimate: - printf("estimate"); break; - default: - printf("%d", *res->resultSetStatus); - } - putchar('\n'); - } - display_searchResult (res->additionalSearchInfo); - printf("records returned: %d\n", - *res->numberOfRecordsReturned); - setno += *res->numberOfRecordsReturned; - if (res->records) - display_records(res->records); - return 0; -} - -static void print_level(int iLevel) -{ - int i; - for (i = 0; i < iLevel * 4; i++) - printf(" "); -} - -static void print_int(int iLevel, const char *pTag, int *pInt) -{ - if (pInt != NULL) - { - print_level(iLevel); - printf("%s: %d\n", pTag, *pInt); - } -} - -static void print_string(int iLevel, const char *pTag, const char *pString) -{ - if (pString != NULL) - { - print_level(iLevel); - printf("%s: %s\n", pTag, pString); - } -} - -static void print_oid(int iLevel, const char *pTag, Odr_oid *pOid) -{ - if (pOid != NULL) - { - Odr_oid *pInt = pOid; - - print_level(iLevel); - printf("%s:", pTag); - for (; *pInt != -1; pInt++) - printf(" %d", *pInt); - printf("\n"); - } -} - -static void print_referenceId(int iLevel, Z_ReferenceId *referenceId) -{ - if (referenceId != NULL) - { - int i; - - print_level(iLevel); - printf("Ref Id (%d, %d): ", referenceId->len, referenceId->size); - for (i = 0; i < referenceId->len; i++) - printf("%c", referenceId->buf[i]); - printf("\n"); - } -} - -static void print_string_or_numeric(int iLevel, const char *pTag, Z_StringOrNumeric *pStringNumeric) -{ - if (pStringNumeric != NULL) - { - switch (pStringNumeric->which) - { - case Z_StringOrNumeric_string: - print_string(iLevel, pTag, pStringNumeric->u.string); - break; - - case Z_StringOrNumeric_numeric: - print_int(iLevel, pTag, pStringNumeric->u.numeric); - break; - - default: - print_level(iLevel); - printf("%s: valid type for Z_StringOrNumeric\n", pTag); - break; - } - } -} - -static void print_universe_report_duplicate( - int iLevel, - Z_UniverseReportDuplicate *pUniverseReportDuplicate) -{ - if (pUniverseReportDuplicate != NULL) - { - print_level(iLevel); - printf("Universe Report Duplicate: \n"); - iLevel++; - print_string_or_numeric(iLevel, "Hit No", - pUniverseReportDuplicate->hitno); - } -} - -static void print_universe_report_hits( - int iLevel, - Z_UniverseReportHits *pUniverseReportHits) -{ - if (pUniverseReportHits != NULL) - { - print_level(iLevel); - printf("Universe Report Hits: \n"); - iLevel++; - print_string_or_numeric(iLevel, "Database", - pUniverseReportHits->database); - print_string_or_numeric(iLevel, "Hits", pUniverseReportHits->hits); - } -} - -static void print_universe_report(int iLevel, Z_UniverseReport *pUniverseReport) -{ - if (pUniverseReport != NULL) - { - print_level(iLevel); - printf("Universe Report: \n"); - iLevel++; - print_int(iLevel, "Total Hits", pUniverseReport->totalHits); - switch (pUniverseReport->which) - { - case Z_UniverseReport_databaseHits: - print_universe_report_hits(iLevel, - pUniverseReport->u.databaseHits); - break; - - case Z_UniverseReport_duplicate: - print_universe_report_duplicate(iLevel, - pUniverseReport->u.duplicate); - break; - - default: - print_level(iLevel); - printf("Type: %d\n", pUniverseReport->which); - break; - } - } -} - -static void print_external(int iLevel, Z_External *pExternal) -{ - if (pExternal != NULL) - { - print_level(iLevel); - printf("External: \n"); - iLevel++; - print_oid(iLevel, "Direct Reference", pExternal->direct_reference); - print_int(iLevel, "InDirect Reference", pExternal->indirect_reference); - print_string(iLevel, "Descriptor", pExternal->descriptor); - switch (pExternal->which) - { - case Z_External_universeReport: - print_universe_report(iLevel, pExternal->u.universeReport); - break; - - default: - print_level(iLevel); - printf("Type: %d\n", pExternal->which); - break; - } - } -} - -static int process_resourceControlRequest (Z_ResourceControlRequest *req) -{ - printf ("Received ResourceControlRequest.\n"); - print_referenceId(1, req->referenceId); - print_int(1, "Suspended Flag", req->suspendedFlag); - print_int(1, "Partial Results Available", req->partialResultsAvailable); - print_int(1, "Response Required", req->responseRequired); - print_int(1, "Triggered Request Flag", req->triggeredRequestFlag); - print_external(1, req->resourceReport); - return 0; -} - -void process_ESResponse(Z_ExtendedServicesResponse *res) -{ - printf("Status: "); - switch (*res->operationStatus) - { - case Z_ExtendedServicesResponse_done: - printf ("done\n"); - break; - case Z_ExtendedServicesResponse_accepted: - printf ("accepted\n"); - break; - case Z_ExtendedServicesResponse_failure: - printf ("failure\n"); - display_diagrecs(res->diagnostics, res->num_diagnostics); - break; - default: - printf ("unknown\n"); - } - if ( (*res->operationStatus != Z_ExtendedServicesResponse_failure) && - (res->num_diagnostics != 0) ) { - display_diagrecs(res->diagnostics, res->num_diagnostics); - } - print_refid (res->referenceId); - if (res->taskPackage && - res->taskPackage->which == Z_External_extendedService) - { - Z_TaskPackage *taskPackage = res->taskPackage->u.extendedService; - Odr_oct *id = taskPackage->targetReference; - Z_External *ext = taskPackage->taskSpecificParameters; - - if (id) - { - printf ("Target Reference: "); - print_stringn (id->buf, id->len); - printf ("\n"); - } - if (ext->which == Z_External_update) - { - Z_IUUpdateTaskPackage *utp = ext->u.update->u.taskPackage; - if (utp && utp->targetPart) - { - Z_IUTargetPart *targetPart = utp->targetPart; - int i; - - for (i = 0; inum_taskPackageRecords; i++) - { - - Z_IUTaskPackageRecordStructure *tpr = - targetPart->taskPackageRecords[i]; - printf ("task package record %d\n", i+1); - if (tpr->which == Z_IUTaskPackageRecordStructure_record) - { - display_record (tpr->u.record); - } - else - { - printf ("other type\n"); - } - } - } - } - if (ext->which == Z_External_itemOrder) - { - Z_IOTaskPackage *otp = ext->u.itemOrder->u.taskPackage; - if (otp && otp->targetPart && otp->targetPart->itemRequest) - { - Z_External *ext = otp->targetPart->itemRequest; - if (ext->which == Z_External_octet) - { - Odr_oct *doc = ext->u.octet_aligned; - printf("Got itemRequest doc %.*s\n", - doc->len, doc->buf); - } - } - } - } - if (res->taskPackage && res->taskPackage->which == Z_External_octet) - { - Odr_oct *doc = res->taskPackage->u.octet_aligned; - printf("%.*s\n", doc->len, doc->buf); - } -} - -const char *get_ill_element (void *clientData, const char *element) -{ - return 0; -} - -static Z_External *create_external_itemRequest(void) -{ - struct ill_get_ctl ctl; - ILL_ItemRequest *req; - Z_External *r = 0; - int item_request_size = 0; - char *item_request_buf = 0; - - ctl.odr = out; - ctl.clientData = 0; - ctl.f = get_ill_element; - - req = ill_get_ItemRequest(&ctl, "ill", 0); - if (!req) - printf ("ill_get_ItemRequest failed\n"); - - if (!ill_ItemRequest (out, &req, 0, 0)) - { - if (apdu_file) - { - ill_ItemRequest(print, &req, 0, 0); - odr_reset(print); - } - item_request_buf = odr_getbuf (out, &item_request_size, 0); - if (item_request_buf) - odr_setbuf (out, item_request_buf, item_request_size, 1); - printf ("Couldn't encode ItemRequest, size %d\n", item_request_size); - return 0; - } - else - { - r = (Z_External *) odr_malloc (out, sizeof(*r)); - r->direct_reference = odr_oiddup(out, yaz_oid_general_isoill_1); - r->indirect_reference = 0; - r->descriptor = 0; - r->which = Z_External_single; - - r->u.single_ASN1_type = (Odr_oct *) - odr_malloc (out, sizeof(*r->u.single_ASN1_type)); - r->u.single_ASN1_type->buf = (unsigned char *) - odr_malloc (out, item_request_size); - r->u.single_ASN1_type->len = item_request_size; - r->u.single_ASN1_type->size = item_request_size; - memcpy (r->u.single_ASN1_type->buf, item_request_buf, - item_request_size); - - do_hex_dump(item_request_buf,item_request_size); - } - return r; -} - -static Z_External *create_external_ILL_APDU(int which) -{ - struct ill_get_ctl ctl; - ILL_APDU *ill_apdu; - Z_External *r = 0; - int ill_request_size = 0; - char *ill_request_buf = 0; - - ctl.odr = out; - ctl.clientData = 0; - ctl.f = get_ill_element; - - ill_apdu = ill_get_APDU(&ctl, "ill", 0); - - if (!ill_APDU (out, &ill_apdu, 0, 0)) - { - if (apdu_file) - { - printf ("-------------------\n"); - ill_APDU(print, &ill_apdu, 0, 0); - odr_reset(print); - printf ("-------------------\n"); - } - ill_request_buf = odr_getbuf (out, &ill_request_size, 0); - if (ill_request_buf) - odr_setbuf (out, ill_request_buf, ill_request_size, 1); - printf ("Couldn't encode ILL-Request, size %d\n", ill_request_size); - return 0; - } - else - { - ill_request_buf = odr_getbuf (out, &ill_request_size, 0); - - r = (Z_External *) odr_malloc (out, sizeof(*r)); - r->direct_reference = odr_oiddup(out, yaz_oid_general_isoill_1); - r->indirect_reference = 0; - r->descriptor = 0; - r->which = Z_External_single; - - r->u.single_ASN1_type = (Odr_oct *) - odr_malloc (out, sizeof(*r->u.single_ASN1_type)); - r->u.single_ASN1_type->buf = (unsigned char *) - odr_malloc (out, ill_request_size); - r->u.single_ASN1_type->len = ill_request_size; - r->u.single_ASN1_type->size = ill_request_size; - memcpy (r->u.single_ASN1_type->buf, ill_request_buf, ill_request_size); -/* printf ("len = %d\n", ill_request_size); */ -/* do_hex_dump(ill_request_buf,ill_request_size); */ -/* printf("--- end of extenal\n"); */ - - } - return r; -} - - -static Z_External *create_ItemOrderExternal(const char *type, int itemno) -{ - Z_External *r = (Z_External *) odr_malloc(out, sizeof(Z_External)); - r->direct_reference = odr_oiddup(out, yaz_oid_extserv_item_order); - r->indirect_reference = 0; - r->descriptor = 0; - - r->which = Z_External_itemOrder; - - r->u.itemOrder = (Z_ItemOrder *) odr_malloc(out,sizeof(Z_ItemOrder)); - memset(r->u.itemOrder, 0, sizeof(Z_ItemOrder)); - r->u.itemOrder->which=Z_IOItemOrder_esRequest; - - r->u.itemOrder->u.esRequest = (Z_IORequest *) - odr_malloc(out,sizeof(Z_IORequest)); - memset(r->u.itemOrder->u.esRequest, 0, sizeof(Z_IORequest)); - - r->u.itemOrder->u.esRequest->toKeep = (Z_IOOriginPartToKeep *) - odr_malloc(out,sizeof(Z_IOOriginPartToKeep)); - memset(r->u.itemOrder->u.esRequest->toKeep, 0, sizeof(Z_IOOriginPartToKeep)); - r->u.itemOrder->u.esRequest->notToKeep = (Z_IOOriginPartNotToKeep *) - odr_malloc(out,sizeof(Z_IOOriginPartNotToKeep)); - memset(r->u.itemOrder->u.esRequest->notToKeep, 0, sizeof(Z_IOOriginPartNotToKeep)); - - r->u.itemOrder->u.esRequest->toKeep->supplDescription = NULL; - r->u.itemOrder->u.esRequest->toKeep->contact = NULL; - r->u.itemOrder->u.esRequest->toKeep->addlBilling = NULL; - - r->u.itemOrder->u.esRequest->notToKeep->resultSetItem = - (Z_IOResultSetItem *) odr_malloc(out, sizeof(Z_IOResultSetItem)); - memset(r->u.itemOrder->u.esRequest->notToKeep->resultSetItem, 0, sizeof(Z_IOResultSetItem)); - r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->resultSetId = "1"; - - r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->item = - (int *) odr_malloc(out, sizeof(int)); - *r->u.itemOrder->u.esRequest->notToKeep->resultSetItem->item = itemno; - - if (!strcmp (type, "item") || !strcmp(type, "2")) - { - printf ("using item-request\n"); - r->u.itemOrder->u.esRequest->notToKeep->itemRequest = - create_external_itemRequest(); - } - else if (!strcmp(type, "ill") || !strcmp(type, "1")) - { - printf ("using ILL-request\n"); - r->u.itemOrder->u.esRequest->notToKeep->itemRequest = - create_external_ILL_APDU(ILL_APDU_ILL_Request); - } - else if (!strcmp(type, "xml") || !strcmp(type, "3")) - { - const char *xml_buf = - "\n" - " request\n" - " 000200\n" - " 1212 \n" - ""; - r->u.itemOrder->u.esRequest->notToKeep->itemRequest = - z_ext_record_oid(out, yaz_oid_recsyn_xml, xml_buf, strlen(xml_buf)); - } - else - r->u.itemOrder->u.esRequest->notToKeep->itemRequest = 0; - - return r; -} - -static int send_itemorder(const char *type, int itemno) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest); - Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; - - req->referenceId = set_refid (out); - - req->packageType = odr_oiddup(out, yaz_oid_extserv_item_order); - req->packageName = esPackageName; - - req->taskSpecificParameters = create_ItemOrderExternal(type, itemno); - - send_apdu(apdu); - return 0; -} - -static int only_z3950(void) -{ - if (!conn) - { - printf ("Not connected yet\n"); - return 1; - } - if (protocol == PROTO_HTTP) - { - printf ("Not supported by SRW\n"); - return 1; - } - return 0; -} - -static int cmd_update_common(const char *arg, int version); - -static int cmd_update(const char *arg) -{ - return cmd_update_common(arg, 1); -} - -static int cmd_update0(const char *arg) -{ - return cmd_update_common(arg, 0); -} - -static int cmd_update_Z3950(int version, int action_no, const char *recid, - char *rec_buf, int rec_len); - -static int cmd_update_SRW(int action_no, const char *recid, - char *rec_buf, int rec_len); - -static int cmd_update_common(const char *arg, int version) -{ - char action[20], recid_buf[20]; - const char *recid = 0; - char *rec_buf; - int rec_len; - int action_no; - int noread = 0; - - *action = 0; - *recid_buf = 0; - sscanf (arg, "%19s %19s%n", action, recid_buf, &noread); - if (noread == 0) - { - printf("Use: update action recid [fname]\n"); - printf(" where action is one of insert,replace,delete.update\n"); - printf(" recid is some record ID. Use none for no ID\n"); - printf(" fname is file of record to be updated\n"); - return 0; - } - - if (!strcmp (action, "insert")) - action_no = Z_IUOriginPartToKeep_recordInsert; - else if (!strcmp (action, "replace")) - action_no = Z_IUOriginPartToKeep_recordReplace; - else if (!strcmp (action, "delete")) - action_no = Z_IUOriginPartToKeep_recordDelete; - else if (!strcmp (action, "update")) - action_no = Z_IUOriginPartToKeep_specialUpdate; - else - { - printf ("Bad action: %s\n", action); - printf ("Possible values: insert, replace, delete, update\n"); - return 0; - } - - if (strcmp(recid_buf, "none")) /* none means no record ID */ - recid = recid_buf; - - arg += noread; - if (parse_cmd_doc(&arg, out, &rec_buf, &rec_len, 1) == 0) - return 0; - -#if YAZ_HAVE_XML2 - if (protocol == PROTO_HTTP) - return cmd_update_SRW(action_no, recid, rec_buf, rec_len); -#endif - return cmd_update_Z3950(version, action_no, recid, rec_buf, rec_len); -} - -#if YAZ_HAVE_XML2 -static int cmd_update_SRW(int action_no, const char *recid, - char *rec_buf, int rec_len) -{ - if (!conn) - cmd_open(0); - if (!conn) - return 0; - else - { - Z_SRW_PDU *srw = yaz_srw_get(out, Z_SRW_update_request); - Z_SRW_updateRequest *sr = srw->u.update_request; - - switch(action_no) - { - case Z_IUOriginPartToKeep_recordInsert: - sr->operation = "info:srw/action/1/create"; - break; - case Z_IUOriginPartToKeep_recordReplace: - sr->operation = "info:srw/action/1/replace"; - break; - case Z_IUOriginPartToKeep_recordDelete: - sr->operation = "info:srw/action/1/delete"; - break; - } - if (rec_buf) - { - sr->record = yaz_srw_get_record(out); - sr->record->recordData_buf = rec_buf; - sr->record->recordData_len = rec_len; - sr->record->recordSchema = record_schema; - } - if (recid) - sr->recordId = odr_strdup(out, recid); - return send_srw(srw); - } -} -#endif - -static int cmd_update_Z3950(int version, int action_no, const char *recid, - char *rec_buf, int rec_len) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest ); - Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; - Z_External *r; - Z_External *record_this = 0; - if (rec_buf) - record_this = z_ext_record_oid(out, yaz_oid_recsyn_xml, - rec_buf, rec_len); - else - { - if (!record_last) - { - printf ("No last record (update ignored)\n"); - return 0; - } - record_this = record_last; - } - - req->packageType = odr_oiddup(out, (version == 0 ? - yaz_oid_extserv_database_update_first_version : - yaz_oid_extserv_database_update)); - - req->packageName = esPackageName; - - req->referenceId = set_refid (out); - - r = req->taskSpecificParameters = (Z_External *) - odr_malloc (out, sizeof(*r)); - r->direct_reference = req->packageType; - r->indirect_reference = 0; - r->descriptor = 0; - if (version == 0) - { - Z_IU0OriginPartToKeep *toKeep; - Z_IU0SuppliedRecords *notToKeep; - - r->which = Z_External_update0; - r->u.update0 = (Z_IU0Update *) odr_malloc(out, sizeof(*r->u.update0)); - r->u.update0->which = Z_IUUpdate_esRequest; - r->u.update0->u.esRequest = (Z_IU0UpdateEsRequest *) - odr_malloc(out, sizeof(*r->u.update0->u.esRequest)); - toKeep = r->u.update0->u.esRequest->toKeep = (Z_IU0OriginPartToKeep *) - odr_malloc(out, sizeof(*r->u.update0->u.esRequest->toKeep)); - - toKeep->databaseName = databaseNames[0]; - toKeep->schema = 0; - toKeep->elementSetName = 0; - - toKeep->action = (int *) odr_malloc(out, sizeof(*toKeep->action)); - *toKeep->action = action_no; - - notToKeep = r->u.update0->u.esRequest->notToKeep = (Z_IU0SuppliedRecords *) - odr_malloc(out, sizeof(*r->u.update0->u.esRequest->notToKeep)); - notToKeep->num = 1; - notToKeep->elements = (Z_IU0SuppliedRecords_elem **) - odr_malloc(out, sizeof(*notToKeep->elements)); - notToKeep->elements[0] = (Z_IU0SuppliedRecords_elem *) - odr_malloc(out, sizeof(**notToKeep->elements)); - notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_opaque; - if (recid) - { - notToKeep->elements[0]->u.opaque = (Odr_oct *) - odr_malloc (out, sizeof(Odr_oct)); - notToKeep->elements[0]->u.opaque->buf = (unsigned char *) recid; - notToKeep->elements[0]->u.opaque->size = strlen(recid); - notToKeep->elements[0]->u.opaque->len = strlen(recid); - } - else - notToKeep->elements[0]->u.opaque = 0; - notToKeep->elements[0]->supplementalId = 0; - notToKeep->elements[0]->correlationInfo = 0; - notToKeep->elements[0]->record = record_this; - } - else - { - Z_IUOriginPartToKeep *toKeep; - Z_IUSuppliedRecords *notToKeep; - - r->which = Z_External_update; - r->u.update = (Z_IUUpdate *) odr_malloc(out, sizeof(*r->u.update)); - r->u.update->which = Z_IUUpdate_esRequest; - r->u.update->u.esRequest = (Z_IUUpdateEsRequest *) - odr_malloc(out, sizeof(*r->u.update->u.esRequest)); - toKeep = r->u.update->u.esRequest->toKeep = (Z_IUOriginPartToKeep *) - odr_malloc(out, sizeof(*r->u.update->u.esRequest->toKeep)); - - toKeep->databaseName = databaseNames[0]; - toKeep->schema = 0; - toKeep->elementSetName = 0; - toKeep->actionQualifier = 0; - toKeep->action = (int *) odr_malloc(out, sizeof(*toKeep->action)); - *toKeep->action = action_no; - - notToKeep = r->u.update->u.esRequest->notToKeep = (Z_IUSuppliedRecords *) - odr_malloc(out, sizeof(*r->u.update->u.esRequest->notToKeep)); - notToKeep->num = 1; - notToKeep->elements = (Z_IUSuppliedRecords_elem **) - odr_malloc(out, sizeof(*notToKeep->elements)); - notToKeep->elements[0] = (Z_IUSuppliedRecords_elem *) - odr_malloc(out, sizeof(**notToKeep->elements)); - notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_opaque; - if (recid) - { - notToKeep->elements[0]->u.opaque = (Odr_oct *) - odr_malloc (out, sizeof(Odr_oct)); - notToKeep->elements[0]->u.opaque->buf = (unsigned char *) recid; - notToKeep->elements[0]->u.opaque->size = strlen(recid); - notToKeep->elements[0]->u.opaque->len = strlen(recid); - } - else - notToKeep->elements[0]->u.opaque = 0; - notToKeep->elements[0]->supplementalId = 0; - notToKeep->elements[0]->correlationInfo = 0; - notToKeep->elements[0]->record = record_this; - } - - send_apdu(apdu); - - return 2; -} - -static int cmd_xmles(const char *arg) -{ - if (only_z3950()) - return 1; - else - { - char *asn_buf = 0; - int noread = 0; - Odr_oid *oid; - char oid_str[51]; - Z_APDU *apdu = zget_APDU(out, Z_APDU_extendedServicesRequest); - Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; - - - Z_External *ext = (Z_External *) odr_malloc(out, sizeof(*ext)); - - req->referenceId = set_refid (out); - req->taskSpecificParameters = ext; - ext->indirect_reference = 0; - ext->descriptor = 0; - ext->which = Z_External_octet; - ext->u.single_ASN1_type = (Odr_oct *) odr_malloc (out, sizeof(Odr_oct)); - sscanf(arg, "%50s%n", oid_str, &noread); - if (noread == 0) - { - printf("Missing OID for xmles\n"); - return 0; - } - arg += noread; - if (parse_cmd_doc(&arg, out, &asn_buf, - &ext->u.single_ASN1_type->len, 0) == 0) - return 0; - - ext->u.single_ASN1_type->buf = (unsigned char *) asn_buf; - - oid = yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_EXTSERV, oid_str, out); - if (!oid) - { - printf("Bad OID: %s\n", oid_str); - return 0; - } - - req->packageType = oid; - - ext->direct_reference = oid; - - send_apdu(apdu); - - return 2; - } -} - -static int cmd_itemorder(const char *arg) -{ - char type[12]; - int itemno; - - if (only_z3950()) - return 1; - if (sscanf (arg, "%10s %d", type, &itemno) != 2) - return 0; - - printf("Item order request\n"); - fflush(stdout); - send_itemorder(type, itemno); - return 2; -} - -static void show_opt(const char *arg, void *clientData) -{ - printf ("%s ", arg); -} - -static int cmd_zversion(const char *arg) -{ - if (*arg && arg) - z3950_version = atoi(arg); - else - printf ("version is %d\n", z3950_version); - return 0; -} - -static int cmd_options(const char *arg) -{ - if (*arg) - { - int r; - int pos; - r = yaz_init_opt_encode(&z3950_options, arg, &pos); - if (r == -1) - printf("Unknown option(s) near %s\n", arg+pos); - } - else - { - yaz_init_opt_decode(&z3950_options, show_opt, 0); - printf ("\n"); - } - return 0; -} - -static int cmd_explain(const char *arg) -{ - if (protocol != PROTO_HTTP) - return 0; -#if YAZ_HAVE_XML2 - if (!conn) - cmd_open(0); - if (conn) - { - Z_SRW_PDU *sr = 0; - - setno = 1; - - /* save this for later .. when fetching individual records */ - sr = yaz_srw_get(out, Z_SRW_explain_request); - if (recordsyntax_size == 1 - && !yaz_matchstr(recordsyntax_list[0], "xml")) - sr->u.explain_request->recordPacking = "xml"; - send_srw(sr); - return 2; - } -#endif - return 0; -} - -static int cmd_init(const char *arg) -{ - if (*arg) - { - strncpy (cur_host, arg, sizeof(cur_host)-1); - cur_host[sizeof(cur_host)-1] = 0; - } - if (only_z3950()) - return 1; - send_initRequest(cur_host); - return 2; -} - -static int cmd_sru(const char *arg) -{ - if (!*arg) - { - printf("SRU method is: %s\n", sru_method); - printf("SRU version is: %s\n", sru_version); - } - else - { - int r; - r = sscanf(arg, "%9s %9s", sru_method, sru_version); - if (r >= 1) - { - if (!yaz_matchstr(sru_method, "post")) - ; - else if (!yaz_matchstr(sru_method, "get")) - ; - else if (!yaz_matchstr(sru_method, "soap")) - ; - else - { - strcpy(sru_method, "soap"); - printf("Unknown SRU method: %s\n", arg); - printf("Specify one of POST, GET, SOAP\n"); - } - } - } - return 0; -} - -static int cmd_find(const char *arg) -{ - if (!*arg) - { - printf("Find what?\n"); - return 0; - } - if (protocol == PROTO_HTTP) - { -#if YAZ_HAVE_XML2 - if (!conn) - cmd_open(0); - if (!conn) - return 0; - if (!send_SRW_searchRequest(arg)) - return 0; -#else - return 0; -#endif - } - else - { - if (!conn) - { - try_reconnect(); - - if (!conn) { - printf("Not connected yet\n"); - return 0; - } - } - if (!send_searchRequest(arg)) - return 0; - } - return 2; -} - -static int cmd_delete(const char *arg) -{ - if (only_z3950()) - return 0; - if (!send_deleteResultSetRequest(arg)) - return 0; - return 2; -} - -static int cmd_ssub(const char *arg) -{ - if (!(smallSetUpperBound = atoi(arg))) - return 0; - return 1; -} - -static int cmd_lslb(const char *arg) -{ - if (!(largeSetLowerBound = atoi(arg))) - return 0; - return 1; -} - -static int cmd_mspn(const char *arg) -{ - if (!(mediumSetPresentNumber = atoi(arg))) - return 0; - return 1; -} - -static int cmd_status(const char *arg) -{ - printf("smallSetUpperBound: %d\n", smallSetUpperBound); - printf("largeSetLowerBound: %d\n", largeSetLowerBound); - printf("mediumSetPresentNumber: %d\n", mediumSetPresentNumber); - return 1; -} - -static int cmd_setnames(const char *arg) -{ - if (*arg == '1') /* enable ? */ - setnumber = 0; - else if (*arg == '0') /* disable ? */ - setnumber = -1; - else if (setnumber < 0) /* no args, toggle .. */ - setnumber = 0; - else - setnumber = -1; - - if (setnumber >= 0) - printf("Set numbering enabled.\n"); - else - printf("Set numbering disabled.\n"); - return 1; -} - -/* PRESENT SERVICE ----------------------------- */ - -static void parse_show_args(const char *arg_c, char *setstring, - int *start, int *number) -{ - char arg[40]; - char *p; - - strncpy(arg, arg_c, sizeof(arg)-1); - arg[sizeof(arg)-1] = '\0'; - - if ((p = strchr(arg, '+'))) - { - *number = atoi(p + 1); - *p = '\0'; - } - if (*arg) - { - if (!strcmp(arg, "all")) - { - *number = last_hit_count; - *start = 1; - } - else - *start = atoi(arg); - } - if (p && (p=strchr(p+1, '+'))) - strcpy (setstring, p+1); - else if (setnumber >= 0) - sprintf(setstring, "%d", setnumber); - else - *setstring = '\0'; -} - -static int send_presentRequest(const char *arg) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_presentRequest); - Z_PresentRequest *req = apdu->u.presentRequest; - Z_RecordComposition compo; - int nos = 1; - char setstring[100]; - - req->referenceId = set_refid (out); - - parse_show_args(arg, setstring, &setno, &nos); - if (*setstring) - req->resultSetId = setstring; - - req->resultSetStartPoint = &setno; - req->numberOfRecordsRequested = &nos; - - if (recordsyntax_size) - req->preferredRecordSyntax = - yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_RECSYN, recordsyntax_list[0], out); - - if (record_schema || recordsyntax_size >= 2) - { - req->recordComposition = &compo; - compo.which = Z_RecordComp_complex; - compo.u.complex = (Z_CompSpec *) - odr_malloc(out, sizeof(*compo.u.complex)); - compo.u.complex->selectAlternativeSyntax = (bool_t *) - odr_malloc(out, sizeof(bool_t)); - *compo.u.complex->selectAlternativeSyntax = 0; - - compo.u.complex->generic = (Z_Specification *) - odr_malloc(out, sizeof(*compo.u.complex->generic)); - - compo.u.complex->generic->which = Z_Schema_oid; - if (!record_schema) - compo.u.complex->generic->schema.oid = 0; - else - { - compo.u.complex->generic->schema.oid = - yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_SCHEMA, record_schema, out); - - if (!compo.u.complex->generic->schema.oid) - { - /* OID wasn't a schema! Try record syntax instead. */ - compo.u.complex->generic->schema.oid = (Odr_oid *) - yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_RECSYN, record_schema, out); - } - } - if (!elementSetNames) - compo.u.complex->generic->elementSpec = 0; - else - { - compo.u.complex->generic->elementSpec = (Z_ElementSpec *) - odr_malloc(out, sizeof(Z_ElementSpec)); - compo.u.complex->generic->elementSpec->which = - Z_ElementSpec_elementSetName; - compo.u.complex->generic->elementSpec->u.elementSetName = - elementSetNames->u.generic; - } - compo.u.complex->num_dbSpecific = 0; - compo.u.complex->dbSpecific = 0; - - compo.u.complex->num_recordSyntax = 0; - compo.u.complex->recordSyntax = 0; - if (recordsyntax_size >= 2) - { - int i; - compo.u.complex->num_recordSyntax = recordsyntax_size; - compo.u.complex->recordSyntax = (Odr_oid **) - odr_malloc(out, recordsyntax_size * sizeof(Odr_oid*)); - for (i = 0; i < recordsyntax_size; i++) - compo.u.complex->recordSyntax[i] = - yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_RECSYN, recordsyntax_list[i], out); - } - } - else if (elementSetNames) - { - req->recordComposition = &compo; - compo.which = Z_RecordComp_simple; - compo.u.simple = elementSetNames; - } - send_apdu(apdu); - printf("Sent presentRequest (%d+%d).\n", setno, nos); - return 2; -} - -#if YAZ_HAVE_XML2 -static int send_SRW_presentRequest(const char *arg) -{ - char setstring[100]; - int nos = 1; - Z_SRW_PDU *sr = srw_sr; - - if (!sr) - return 0; - parse_show_args(arg, setstring, &setno, &nos); - sr->u.request->startRecord = odr_intdup(out, setno); - sr->u.request->maximumRecords = odr_intdup(out, nos); - if (record_schema) - sr->u.request->recordSchema = record_schema; - if (recordsyntax_size == 1 && !yaz_matchstr(recordsyntax_list[0], "xml")) - sr->u.request->recordPacking = "xml"; - return send_srw(sr); -} -#endif - -static void close_session (void) -{ - if (conn) - cs_close (conn); - conn = 0; - sent_close = 0; - odr_reset(out); - odr_reset(in); - odr_reset(print); - last_hit_count = 0; -} - -void process_close(Z_Close *req) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_close); - Z_Close *res = apdu->u.close; - - static char *reasons[] = - { - "finished", - "shutdown", - "system problem", - "cost limit reached", - "resources", - "security violation", - "protocolError", - "lack of activity", - "peer abort", - "unspecified" - }; - - printf("Reason: %s, message: %s\n", reasons[*req->closeReason], - req->diagnosticInformation ? req->diagnosticInformation : "NULL"); - if (sent_close) - close_session (); - else - { - *res->closeReason = Z_Close_finished; - send_apdu(apdu); - printf("Sent response.\n"); - sent_close = 1; - } -} - -static int cmd_show(const char *arg) -{ - if (protocol == PROTO_HTTP) - { -#if YAZ_HAVE_XML2 - if (!conn) - cmd_open(0); - if (!conn) - return 0; - if (!send_SRW_presentRequest(arg)) - return 0; -#else - return 0; -#endif - } - else - { - if (!conn) - { - printf("Not connected yet\n"); - return 0; - } - if (!send_presentRequest(arg)) - return 0; - } - return 2; -} - -void exit_client(int code) -{ - file_history_save(file_history); - file_history_destroy(&file_history); - exit(code); -} - -int cmd_quit(const char *arg) -{ - printf("See you later, alligator.\n"); - xmalloc_trav (""); - exit_client(0); - return 0; -} - -int cmd_cancel(const char *arg) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_triggerResourceControlRequest); - Z_TriggerResourceControlRequest *req = - apdu->u.triggerResourceControlRequest; - bool_t rfalse = 0; - char command[16]; - - *command = '\0'; - sscanf(arg, "%15s", command); - - if (only_z3950()) - return 0; - if (session_initResponse && - !ODR_MASK_GET(session_initResponse->options, - Z_Options_triggerResourceCtrl)) - { - printf("Target doesn't support cancel (trigger resource ctrl)\n"); - return 0; - } - *req->requestedAction = Z_TriggerResourceControlRequest_cancel; - req->resultSetWanted = &rfalse; - req->referenceId = set_refid (out); - - send_apdu(apdu); - printf("Sent cancel request\n"); - if (!strcmp(command, "wait")) - return 2; - return 1; -} - - -int cmd_cancel_find(const char *arg) { - int fres; - fres=cmd_find(arg); - if( fres > 0 ) { - return cmd_cancel(""); - }; - return fres; -} - -int send_scanrequest(const char *set, const char *query, - int pp, int num, const char *term) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_scanRequest); - Z_ScanRequest *req = apdu->u.scanRequest; - - if (only_z3950()) - return 0; - if (queryType == QueryType_CCL2RPN) - { - int error, pos; - struct ccl_rpn_node *rpn; - - rpn = ccl_find_str (bibset, query, &error, &pos); - if (error) - { - printf("CCL ERROR: %s\n", ccl_err_msg(error)); - return -1; - } - req->attributeSet = - yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_ATTSET, "Bib-1", out); - if (!(req->termListAndStartPoint = ccl_scan_query (out, rpn))) - { - printf("Couldn't convert CCL to Scan term\n"); - return -1; - } - ccl_rpn_delete (rpn); - } - else - { - YAZ_PQF_Parser pqf_parser = yaz_pqf_create (); - - if (!(req->termListAndStartPoint = - yaz_pqf_scan(pqf_parser, out, &req->attributeSet, query))) - { - const char *pqf_msg; - size_t off; - int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off); - int ioff = off; - printf("%*s^\n", ioff+7, ""); - printf("Prefix query error: %s (code %d)\n", pqf_msg, code); - yaz_pqf_destroy (pqf_parser); - return -1; - } - yaz_pqf_destroy (pqf_parser); - } - if (queryCharset && outputCharset) - { - yaz_iconv_t cd = yaz_iconv_open(queryCharset, outputCharset); - if (!cd) - { - printf("Conversion from %s to %s unsupported\n", - outputCharset, queryCharset); - return -1; - } - yaz_query_charset_convert_apt(req->termListAndStartPoint, out, cd); - yaz_iconv_close(cd); - } - if (term && *term) - { - if (req->termListAndStartPoint->term && - req->termListAndStartPoint->term->which == Z_Term_general && - req->termListAndStartPoint->term->u.general) - { - req->termListAndStartPoint->term->u.general->buf = - (unsigned char *) odr_strdup(out, term); - req->termListAndStartPoint->term->u.general->len = - req->termListAndStartPoint->term->u.general->size = - strlen(term); - } - } - req->referenceId = set_refid (out); - req->num_databaseNames = num_databaseNames; - req->databaseNames = databaseNames; - req->numberOfTermsRequested = # - req->preferredPositionInResponse = &pp; - req->stepSize = odr_intdup(out, scan_stepSize); - - if (set) - yaz_oi_set_string_oid(&req->otherInfo, out, - yaz_oid_userinfo_scan_set, 1, set); - - send_apdu(apdu); - return 2; -} - -int send_sortrequest(const char *arg, int newset) -{ - Z_APDU *apdu = zget_APDU(out, Z_APDU_sortRequest); - Z_SortRequest *req = apdu->u.sortRequest; - Z_SortKeySpecList *sksl = (Z_SortKeySpecList *) - odr_malloc (out, sizeof(*sksl)); - char setstring[32]; - - if (only_z3950()) - return 0; - if (setnumber >= 0) - sprintf (setstring, "%d", setnumber); - else - sprintf (setstring, "default"); - - req->referenceId = set_refid (out); - - req->num_inputResultSetNames = 1; - req->inputResultSetNames = (Z_InternationalString **) - odr_malloc (out, sizeof(*req->inputResultSetNames)); - req->inputResultSetNames[0] = odr_strdup (out, setstring); - - if (newset && setnumber >= 0) - sprintf (setstring, "%d", ++setnumber); - - req->sortedResultSetName = odr_strdup (out, setstring); - - req->sortSequence = yaz_sort_spec (out, arg); - if (!req->sortSequence) - { - printf ("Missing sort specifications\n"); - return -1; - } - send_apdu(apdu); - return 2; -} - -void display_term(Z_TermInfo *t) -{ - if (t->displayTerm) - printf("%s", t->displayTerm); - else if (t->term->which == Z_Term_general) - printf("%.*s", t->term->u.general->len, t->term->u.general->buf); - else - printf("Term (not general)"); - if (t->term->which == Z_Term_general) - sprintf(last_scan_line, "%.*s", t->term->u.general->len, - t->term->u.general->buf); - - if (t->globalOccurrences) - printf (" (%d)\n", *t->globalOccurrences); - else - printf ("\n"); -} - -void process_scanResponse(Z_ScanResponse *res) -{ - int i; - Z_Entry **entries = NULL; - int num_entries = 0; - - printf("Received ScanResponse\n"); - print_refid (res->referenceId); - printf("%d entries", *res->numberOfEntriesReturned); - if (res->positionOfTerm) - printf (", position=%d", *res->positionOfTerm); - printf ("\n"); - if (*res->scanStatus != Z_Scan_success) - printf("Scan returned code %d\n", *res->scanStatus); - if (!res->entries) - return; - if ((entries = res->entries->entries)) - num_entries = res->entries->num_entries; - for (i = 0; i < num_entries; i++) - { - int pos_term = res->positionOfTerm ? *res->positionOfTerm : -1; - if (entries[i]->which == Z_Entry_termInfo) - { - printf("%c ", i + 1 == pos_term ? '*' : ' '); - display_term(entries[i]->u.termInfo); - } - else - display_diagrecs(&entries[i]->u.surrogateDiagnostic, 1); - } - if (res->entries->nonsurrogateDiagnostics) - display_diagrecs (res->entries->nonsurrogateDiagnostics, - res->entries->num_nonsurrogateDiagnostics); -} - -void process_sortResponse(Z_SortResponse *res) -{ - printf("Received SortResponse: status="); - switch (*res->sortStatus) - { - case Z_SortResponse_success: - printf ("success"); break; - case Z_SortResponse_partial_1: - printf ("partial"); break; - case Z_SortResponse_failure: - printf ("failure"); break; - default: - printf ("unknown (%d)", *res->sortStatus); - } - printf ("\n"); - print_refid (res->referenceId); - if (res->diagnostics) - display_diagrecs(res->diagnostics, - res->num_diagnostics); -} - -void process_deleteResultSetResponse (Z_DeleteResultSetResponse *res) -{ - printf("Got deleteResultSetResponse status=%d\n", - *res->deleteOperationStatus); - if (res->deleteListStatuses) - { - int i; - for (i = 0; i < res->deleteListStatuses->num; i++) - { - printf ("%s status=%d\n", res->deleteListStatuses->elements[i]->id, - *res->deleteListStatuses->elements[i]->status); - } - } -} - -int cmd_sort_generic(const char *arg, int newset) -{ - if (only_z3950()) - return 0; - if (session_initResponse && - !ODR_MASK_GET(session_initResponse->options, Z_Options_sort)) - { - printf("Target doesn't support sort\n"); - return 0; - } - if (*arg) - { - if (send_sortrequest(arg, newset) < 0) - return 0; - return 2; - } - return 0; -} - -int cmd_sort(const char *arg) -{ - return cmd_sort_generic (arg, 0); -} - -int cmd_sort_newset (const char *arg) -{ - return cmd_sort_generic (arg, 1); -} - -int cmd_scanstep(const char *arg) -{ - scan_stepSize = atoi(arg); - return 0; -} - -int cmd_scanpos(const char *arg) -{ - int r = sscanf(arg, "%d", &scan_position); - if (r == 0) - scan_position = 1; - return 0; -} - -int cmd_scansize(const char *arg) -{ - int r = sscanf(arg, "%d", &scan_size); - if (r == 0) - scan_size = 20; - return 0; -} - -static int cmd_scan_common(const char *set, const char *arg) -{ - if (protocol == PROTO_HTTP) - { -#if YAZ_HAVE_XML2 - if (!conn) - cmd_open(0); - if (!conn) - return 0; - if (*arg) - { - if (send_SRW_scanRequest(arg, scan_position, scan_size) < 0) - return 0; - } - else - { - if (send_SRW_scanRequest(last_scan_line, 1, scan_size) < 0) - return 0; - } - return 2; -#else - return 0; -#endif - } - else - { - if (!conn) - { - try_reconnect(); - - if (!conn) { - printf("Session not initialized yet\n"); - return 0; - } - } - if (session_initResponse && - !ODR_MASK_GET(session_initResponse->options, Z_Options_scan)) - { - printf("Target doesn't support scan\n"); - return 0; - } - if (*arg) - { - strcpy (last_scan_query, arg); - if (send_scanrequest(set, arg, - scan_position, scan_size, 0) < 0) - return 0; - } - else - { - if (send_scanrequest(set, last_scan_query, - 1, scan_size, last_scan_line) < 0) - return 0; - } - return 2; - } -} - -int cmd_scan(const char *arg) -{ - return cmd_scan_common(0, arg); -} - -int cmd_setscan(const char *arg) -{ - char setstring[100]; - int nor; - if (sscanf(arg, "%99s%n", setstring, &nor) < 1) - { - printf("missing set for setscan\n"); - return 0; - } - return cmd_scan_common(setstring, arg + nor); -} - -int cmd_schema(const char *arg) -{ - xfree(record_schema); - record_schema = 0; - if (arg && *arg) - record_schema = xstrdup(arg); - return 1; -} - -int cmd_format(const char *arg) -{ - const char *cp = arg; - int nor; - int idx = 0; - int i; - char form_str[41]; - if (!arg || !*arg) - { - printf("Usage: format \n"); - return 0; - } - for (i = 0; i < recordsyntax_size; i++) - { - xfree(recordsyntax_list[i]); - recordsyntax_list[i] = 0; - } - - while (sscanf(cp, "%40s%n", form_str, &nor) >= 1 && nor > 0 - && idx < RECORDSYNTAX_MAX) - { - if (!strcmp(form_str, "none")) - break; - recordsyntax_list[idx] = xstrdup(form_str); - cp += nor; - idx++; - } - recordsyntax_size = idx; - return 1; -} - -int cmd_elements(const char *arg) -{ - static Z_ElementSetNames esn; - static char what[100]; - - if (!arg || !*arg) - { - elementSetNames = 0; - return 1; - } - strcpy(what, arg); - esn.which = Z_ElementSetNames_generic; - esn.u.generic = what; - elementSetNames = &esn; - return 1; -} - -int cmd_querytype (const char *arg) -{ - if (!strcmp (arg, "ccl")) - queryType = QueryType_CCL; - else if (!strcmp (arg, "prefix") || !strcmp(arg, "rpn")) - queryType = QueryType_Prefix; - else if (!strcmp (arg, "ccl2rpn") || !strcmp (arg, "cclrpn")) - queryType = QueryType_CCL2RPN; - else if (!strcmp(arg, "cql")) - queryType = QueryType_CQL; - else if (!strcmp (arg, "cql2rpn") || !strcmp (arg, "cqlrpn")) - queryType = QueryType_CQL2RPN; - else - { - printf ("Querytype must be one of:\n"); - printf (" prefix - Prefix query\n"); - printf (" ccl - CCL query\n"); - printf (" ccl2rpn - CCL query converted to RPN\n"); - printf (" cql - CQL\n"); - printf (" cql2rpn - CQL query converted to RPN\n"); - return 0; - } - return 1; -} - -int cmd_refid (const char *arg) -{ - xfree (refid); - refid = NULL; - if (*arg) - refid = xstrdup (arg); - return 1; -} - -int cmd_close(const char *arg) -{ - Z_APDU *apdu; - Z_Close *req; - if (only_z3950()) - return 0; - apdu = zget_APDU(out, Z_APDU_close); - req = apdu->u.close; - *req->closeReason = Z_Close_finished; - send_apdu(apdu); - printf("Sent close request.\n"); - sent_close = 1; - return 2; -} - -int cmd_packagename(const char* arg) -{ - xfree (esPackageName); - esPackageName = NULL; - if (*arg) - esPackageName = xstrdup(arg); - return 1; -} - -int cmd_proxy(const char* arg) -{ - xfree(yazProxy); - yazProxy = 0; - if (*arg) - yazProxy = xstrdup (arg); - return 1; -} - -int cmd_marccharset(const char *arg) -{ - char l1[30]; - - *l1 = 0; - if (sscanf(arg, "%29s", l1) < 1) - { - printf("MARC character set is `%s'\n", - marcCharset ? marcCharset: "none"); - return 1; - } - xfree (marcCharset); - marcCharset = 0; - if (strcmp(l1, "-") && strcmp(l1, "none")) - marcCharset = xstrdup(l1); - return 1; -} - -int cmd_querycharset(const char *arg) -{ - char l1[30]; - - *l1 = 0; - if (sscanf(arg, "%29s", l1) < 1) - { - printf("Query character set is `%s'\n", - queryCharset ? queryCharset: "none"); - return 1; - } - xfree (queryCharset); - queryCharset = 0; - if (strcmp(l1, "-") && strcmp(l1, "none")) - queryCharset = xstrdup(l1); - return 1; -} - -int cmd_displaycharset(const char *arg) -{ - char l1[30]; - - *l1 = 0; - if (sscanf(arg, "%29s", l1) < 1) - { - printf("Display character set is `%s'\n", - outputCharset ? outputCharset: "none"); - } - else - { - xfree (outputCharset); - outputCharset = 0; - if (!strcmp(l1, "auto") && codeset) - { - if (codeset) - { - printf ("Display character set: %s\n", codeset); - outputCharset = xstrdup(codeset); - } - else - printf ("No codeset found on this system\n"); - } - else if (strcmp(l1, "-") && strcmp(l1, "none")) - outputCharset = xstrdup(l1); - } - return 1; -} - -int cmd_negcharset(const char *arg) -{ - char l1[30]; - - *l1 = 0; - if (sscanf(arg, "%29s %d %d", l1, &negotiationCharsetRecords, - &negotiationCharsetVersion) < 1) - { - printf("Negotiation character set `%s'\n", - negotiationCharset ? negotiationCharset: "none"); - if (negotiationCharset) - { - printf("Records in charset %s\n", negotiationCharsetRecords ? - "yes" : "no"); - printf("Charneg version %d\n", negotiationCharsetVersion); - } - } - else - { - xfree (negotiationCharset); - negotiationCharset = NULL; - if (*l1 && strcmp(l1, "-") && strcmp(l1, "none")) - { - negotiationCharset = xstrdup(l1); - printf ("Character set negotiation : %s\n", negotiationCharset); - } - } - return 1; -} - -int cmd_charset(const char* arg) -{ - char l1[30], l2[30], l3[30], l4[30]; - - *l1 = *l2 = *l3 = *l4 = '\0'; - if (sscanf(arg, "%29s %29s %29s %29s", l1, l2, l3, l4) < 1) - { - cmd_negcharset(""); - cmd_displaycharset(""); - cmd_marccharset(""); - cmd_querycharset(""); - } - else - { - cmd_negcharset(l1); - if (*l2) - cmd_displaycharset(l2); - if (*l3) - cmd_marccharset(l3); - if (*l4) - cmd_querycharset(l4); - } - return 1; -} - -int cmd_lang(const char* arg) -{ - if (*arg == '\0') { - printf("Current language is `%s'\n", yazLang ? yazLang : "none"); - return 1; - } - xfree (yazLang); - yazLang = NULL; - if (*arg) - yazLang = xstrdup(arg); - return 1; -} - -int cmd_source(const char* arg, int echo ) -{ - /* first should open the file and read one line at a time.. */ - FILE* includeFile; - char line[102400], *cp; - - if(strlen(arg)<1) { - fprintf(stderr,"Error in source command use a filename\n"); - return -1; - } - - includeFile = fopen (arg, "r"); - - if(!includeFile) { - fprintf(stderr,"Unable to open file %s for reading\n",arg); - return -1; - } - - while(!feof(includeFile)) { - memset(line,0,sizeof(line)); - fgets(line,sizeof(line),includeFile); - - if(strlen(line) < 2) continue; - if(line[0] == '#') continue; - - if ((cp = strrchr (line, '\n'))) - *cp = '\0'; - - if( echo ) { - printf( "processing line: %s\n",line ); - }; - process_cmd_line(line); - } - - if(fclose(includeFile)<0) { - perror("unable to close include file"); - exit(1); - } - return 1; -} - -int cmd_source_echo(const char* arg) -{ - cmd_source(arg, 1); - return 1; -} - -int cmd_source_noecho(const char* arg) -{ - cmd_source(arg, 0); - return 1; -} - - -int cmd_subshell(const char* args) -{ - if(strlen(args)) - system(args); - else - system(getenv("SHELL")); - - printf("\n"); - return 1; -} - -int cmd_set_berfile(const char *arg) -{ - if (ber_file && ber_file != stdout && ber_file != stderr) - fclose(ber_file); - if (!strcmp(arg, "")) - ber_file = 0; - else if (!strcmp(arg, "-")) - ber_file = stdout; - else - ber_file = fopen(arg, "a"); - return 1; -} - -int cmd_set_apdufile(const char *arg) -{ - if(apdu_file && apdu_file != stderr && apdu_file != stderr) - fclose(apdu_file); - if (!strcmp(arg, "")) - apdu_file = 0; - else if (!strcmp(arg, "-")) - apdu_file = stderr; - else - { - apdu_file = fopen(arg, "a"); - if (!apdu_file) - perror("unable to open apdu log file"); - } - if (apdu_file) - odr_setprint(print, apdu_file); - return 1; -} - -int cmd_set_cclfile(const char* arg) -{ - FILE *inf; - - bibset = ccl_qual_mk (); - inf = fopen (arg, "r"); - if (!inf) - perror("unable to open CCL file"); - else - { - ccl_qual_file (bibset, inf); - fclose (inf); - } - strcpy(ccl_fields,arg); - return 0; -} - -int cmd_set_cqlfile(const char* arg) -{ - cql_transform_t newcqltrans; - - if ((newcqltrans = cql_transform_open_fname(arg)) == 0) { - perror("unable to open CQL file"); - return 0; - } - if (cqltrans != 0) - cql_transform_close(cqltrans); - - cqltrans = newcqltrans; - strcpy(cql_fields, arg); - return 0; -} - -int cmd_set_auto_reconnect(const char* arg) -{ - if(strlen(arg)==0) { - auto_reconnect = ! auto_reconnect; - } else if(strcmp(arg,"on")==0) { - auto_reconnect = 1; - } else if(strcmp(arg,"off")==0) { - auto_reconnect = 0; - } else { - printf("Error use on or off\n"); - return 1; - } - - if (auto_reconnect) - printf("Set auto reconnect enabled.\n"); - else - printf("Set auto reconnect disabled.\n"); - - return 0; -} - - -int cmd_set_auto_wait(const char* arg) -{ - if(strlen(arg)==0) { - auto_wait = ! auto_wait; - } else if(strcmp(arg,"on")==0) { - auto_wait = 1; - } else if(strcmp(arg,"off")==0) { - auto_wait = 0; - } else { - printf("Error use on or off\n"); - return 1; - } - - if (auto_wait) - printf("Set auto wait enabled.\n"); - else - printf("Set auto wait disabled.\n"); - - return 0; -} - -int cmd_set_marcdump(const char* arg) -{ - if(marc_file && marc_file != stderr) { /* don't close stdout*/ - fclose(marc_file); - } - - if (!strcmp(arg, "")) - marc_file = 0; - else if (!strcmp(arg, "-")) - marc_file = stderr; - else - { - marc_file = fopen(arg, "a"); - if (!marc_file) - perror("unable to open marc log file"); - } - return 1; -} - -/* - this command takes 3 arge {name class oid} -*/ -int cmd_register_oid(const char* args) { - static struct { - char* className; - oid_class oclass; - } oid_classes[] = { - {"appctx",CLASS_APPCTX}, - {"absyn",CLASS_ABSYN}, - {"attset",CLASS_ATTSET}, - {"transyn",CLASS_TRANSYN}, - {"diagset",CLASS_DIAGSET}, - {"recsyn",CLASS_RECSYN}, - {"resform",CLASS_RESFORM}, - {"accform",CLASS_ACCFORM}, - {"extserv",CLASS_EXTSERV}, - {"userinfo",CLASS_USERINFO}, - {"elemspec",CLASS_ELEMSPEC}, - {"varset",CLASS_VARSET}, - {"schema",CLASS_SCHEMA}, - {"tagset",CLASS_TAGSET}, - {"general",CLASS_GENERAL}, - {0,(enum oid_class) 0} - }; - char oname_str[101], oclass_str[101], oid_str[101]; - int i; - oid_class oidclass = CLASS_GENERAL; - Odr_oid oid[OID_SIZE]; - - if (sscanf (args, "%100[^ ] %100[^ ] %100s", - oname_str,oclass_str, oid_str) < 1) { - printf("Error in register command \n"); - return 0; - } - - for (i = 0; oid_classes[i].className; i++) { - if (!strcmp(oid_classes[i].className, oclass_str)) - { - oidclass=oid_classes[i].oclass; - break; - } - } - - if(!(oid_classes[i].className)) { - printf("Unknown oid class %s\n",oclass_str); - return 0; - } - - oid_dotstring_to_oid(oid_str, oid); - - if (yaz_oid_add(yaz_oid_std(), oidclass, oname_str, oid)) - { - printf("oid %s already exists, registration failed\n", - oname_str); - } - return 1; -} - -int cmd_push_command(const char* arg) -{ -#if HAVE_READLINE_HISTORY_H - if(strlen(arg)>1) - add_history(arg); -#else - fprintf(stderr,"Not compiled with the readline/history module\n"); -#endif - return 1; -} - -void source_rc_file(const char *rc_file) -{ - /* If rc_file != NULL, source that. Else - Look for .yazclientrc and read it if it exists. - If it does not exist, read $HOME/.yazclientrc instead */ - struct stat statbuf; - - if (rc_file) - { - if (stat(rc_file, &statbuf) == 0) - cmd_source(rc_file, 0); - else - { - fprintf(stderr, "yaz_client: cannot source '%s'\n", rc_file); - exit(1); - } - } - else - { - char fname[1000]; - strcpy(fname, ".yazclientrc"); - if (stat(fname, &statbuf)==0) - { - cmd_source(fname, 0); - } - else - { - const char* homedir = getenv("HOME"); - if (homedir) - { - sprintf(fname, "%.800s/%s", homedir, ".yazclientrc"); - if (stat(fname, &statbuf)==0) - cmd_source(fname, 0); - } - } - } -} - -void add_to_readline_history(void *client_data, const char *line) -{ -#if HAVE_READLINE_HISTORY_H - if (strlen(line)) - add_history(line); -#endif -} - -static void initialize(const char *rc_file) -{ - FILE *inf; - int i; - - if (!(out = odr_createmem(ODR_ENCODE)) || - !(in = odr_createmem(ODR_DECODE)) || - !(print = odr_createmem(ODR_PRINT))) - { - fprintf(stderr, "failed to allocate ODR streams\n"); - exit(1); - } - - setvbuf(stdout, 0, _IONBF, 0); - if (apdu_file) - odr_setprint(print, apdu_file); - - bibset = ccl_qual_mk (); - inf = fopen (ccl_fields, "r"); - if (inf) - { - ccl_qual_file (bibset, inf); - fclose (inf); - } - - cqltrans = cql_transform_open_fname(cql_fields); - /* If this fails, no problem: we detect cqltrans == 0 later */ - -#if HAVE_READLINE_READLINE_H - rl_attempted_completion_function = - (char **(*)(const char *, int, int)) readline_completer; -#endif - for(i = 0; i < maxOtherInfosSupported; ++i) { - extraOtherInfos[i].oid[0] = -1; - extraOtherInfos[i].value = 0; - } - - cmd_format("usmarc"); - - source_rc_file(rc_file); - - file_history = file_history_new(); - file_history_load(file_history); - file_history_trav(file_history, 0, add_to_readline_history); -} - - -#if HAVE_GETTIMEOFDAY -struct timeval tv_start; -#endif - -#if YAZ_HAVE_XML2 -static void handle_srw_record(Z_SRW_record *rec) -{ - if (rec->recordPosition) - { - printf ("pos=%d", *rec->recordPosition); - setno = *rec->recordPosition + 1; - } - if (rec->recordSchema) - printf (" schema=%s", rec->recordSchema); - printf ("\n"); - if (rec->recordData_buf && rec->recordData_len) - { - fwrite(rec->recordData_buf, 1, rec->recordData_len, stdout); - if (marc_file) - fwrite (rec->recordData_buf, 1, rec->recordData_len, marc_file); - } - else - printf ("No data!"); - printf("\n"); -} - -static void handle_srw_explain_response(Z_SRW_explainResponse *res) -{ - handle_srw_record(&res->record); -} - -static void handle_srw_response(Z_SRW_searchRetrieveResponse *res) -{ - int i; - - printf ("Received SRW SearchRetrieve Response\n"); - - for (i = 0; inum_diagnostics; i++) - { - if (res->diagnostics[i].uri) - printf ("SRW diagnostic %s\n", - res->diagnostics[i].uri); - else - printf ("SRW diagnostic missing or could not be decoded\n"); - if (res->diagnostics[i].message) - printf ("Message: %s\n", res->diagnostics[i].message); - if (res->diagnostics[i].details) - printf ("Details: %s\n", res->diagnostics[i].details); - } - if (res->numberOfRecords) - printf ("Number of hits: %d\n", *res->numberOfRecords); - for (i = 0; inum_records; i++) - handle_srw_record(res->records + i); -} - -static void handle_srw_scan_term(Z_SRW_scanTerm *term) -{ - if (term->displayTerm) - printf("%s:", term->displayTerm); - else if (term->value) - printf("%s:", term->value); - else - printf("No value:"); - if (term->numberOfRecords) - printf(" %d", *term->numberOfRecords); - if (term->whereInList) - printf(" %s", term->whereInList); - if (term->value && term->displayTerm) - printf(" %s", term->value); - - strcpy(last_scan_line, term->value); - printf("\n"); -} - -static void handle_srw_scan_response(Z_SRW_scanResponse *res) -{ - int i; - - printf ("Received SRW Scan Response\n"); - - for (i = 0; inum_diagnostics; i++) - { - if (res->diagnostics[i].uri) - printf ("SRW diagnostic %s\n", - res->diagnostics[i].uri); - else - printf ("SRW diagnostic missing or could not be decoded\n"); - if (res->diagnostics[i].message) - printf ("Message: %s\n", res->diagnostics[i].message); - if (res->diagnostics[i].details) - printf ("Details: %s\n", res->diagnostics[i].details); - } - if (res->terms) - for (i = 0; inum_terms; i++) - handle_srw_scan_term(res->terms + i); -} - -static void http_response(Z_HTTP_Response *hres) -{ - int ret = -1; - const char *connection_head = z_HTTP_header_lookup(hres->headers, - "Connection"); - if (!yaz_srw_check_content_type(hres)) - printf("Content type does not appear to be XML\n"); - else - { - Z_SOAP *soap_package = 0; - ODR o = odr_createmem(ODR_DECODE); - Z_SOAP_Handler soap_handlers[3] = { - {YAZ_XMLNS_SRU_v1_1, 0, (Z_SOAP_fun) yaz_srw_codec}, - {YAZ_XMLNS_UPDATE_v0_9, 0, (Z_SOAP_fun) yaz_ucp_codec}, - {0, 0, 0} - }; - ret = z_soap_codec(o, &soap_package, - &hres->content_buf, &hres->content_len, - soap_handlers); - if (!ret && soap_package->which == Z_SOAP_generic) - { - Z_SRW_PDU *sr = (Z_SRW_PDU *) soap_package->u.generic->p; - if (sr->which == Z_SRW_searchRetrieve_response) - handle_srw_response(sr->u.response); - else if (sr->which == Z_SRW_explain_response) - handle_srw_explain_response(sr->u.explain_response); - else if (sr->which == Z_SRW_scan_response) - handle_srw_scan_response(sr->u.scan_response); - else if (sr->which == Z_SRW_update_response) - printf("Got update response. Status: %s\n", - sr->u.update_response->operationStatus); - else - ret = -1; - } - else if (soap_package && (soap_package->which == Z_SOAP_fault - || soap_package->which == Z_SOAP_error)) - { - printf ("HTTP Error Status=%d\n", hres->code); - printf ("SOAP Fault code %s\n", - soap_package->u.fault->fault_code); - printf ("SOAP Fault string %s\n", - soap_package->u.fault->fault_string); - if (soap_package->u.fault->details) - printf ("SOAP Details %s\n", - soap_package->u.fault->details); - } - else - { - printf("z_soap_codec failed. (no SOAP error)\n"); - ret = -1; - } - odr_destroy(o); - } - if (ret) - { - if (hres->code != 200) - { - printf ("HTTP Error Status=%d\n", hres->code); - } - else - { - printf ("Decoding of SRW package failed\n"); - } - close_session(); - } - else - { - if (!strcmp(hres->version, "1.0")) - { - /* HTTP 1.0: only if Keep-Alive we stay alive.. */ - if (!connection_head || strcmp(connection_head, "Keep-Alive")) - close_session(); - } - else - { - /* HTTP 1.1: only if no close we stay alive .. */ - if (connection_head && !strcmp(connection_head, "close")) - close_session(); - } - } -} -#endif - -void wait_and_handle_response(int one_response_only) -{ - int reconnect_ok = 1; - int res; - char *netbuffer= 0; - int netbufferlen = 0; -#if HAVE_GETTIMEOFDAY - int got_tv_end = 0; - struct timeval tv_end; -#endif - Z_GDU *gdu; - - while(conn) - { - res = cs_get(conn, &netbuffer, &netbufferlen); - if (reconnect_ok && res <= 0 && protocol == PROTO_HTTP) - { - cs_close(conn); - conn = 0; - cmd_open(0); - reconnect_ok = 0; - if (conn) - { - char *buf_out; - int len_out; - - buf_out = odr_getbuf(out, &len_out, 0); - - do_hex_dump(buf_out, len_out); - - cs_put(conn, buf_out, len_out); - - odr_reset(out); - continue; - } - } - else if (res <= 0) - { - printf("Target closed connection\n"); - close_session(); - break; - } -#if HAVE_GETTIMEOFDAY - if (got_tv_end == 0) - gettimeofday (&tv_end, 0); /* count first one only */ - got_tv_end++; -#endif - odr_reset(out); - odr_reset(in); /* release APDU from last round */ - record_last = 0; - do_hex_dump(netbuffer, res); - odr_setbuf(in, netbuffer, res, 0); - - if (!z_GDU(in, &gdu, 0, 0)) - { - FILE *f = ber_file ? ber_file : stdout; - odr_perror(in, "Decoding incoming APDU"); - fprintf(f, "[Near %ld]\n", (long) odr_offset(in)); - fprintf(f, "Packet dump:\n---------\n"); - odr_dumpBER(f, netbuffer, res); - fprintf(f, "---------\n"); - if (apdu_file) - { - z_GDU(print, &gdu, 0, 0); - odr_reset(print); - } - if (conn && cs_more(conn)) - continue; - break; - } - if (ber_file) - odr_dumpBER(ber_file, netbuffer, res); - if (apdu_file && !z_GDU(print, &gdu, 0, 0)) - { - odr_perror(print, "Failed to print incoming APDU"); - odr_reset(print); - continue; - } - if (gdu->which == Z_GDU_Z3950) - { - Z_APDU *apdu = gdu->u.z3950; - switch(apdu->which) - { - case Z_APDU_initResponse: - process_initResponse(apdu->u.initResponse); - break; - case Z_APDU_searchResponse: - process_searchResponse(apdu->u.searchResponse); - break; - case Z_APDU_scanResponse: - process_scanResponse(apdu->u.scanResponse); - break; - case Z_APDU_presentResponse: - print_refid (apdu->u.presentResponse->referenceId); - setno += - *apdu->u.presentResponse->numberOfRecordsReturned; - if (apdu->u.presentResponse->records) - display_records(apdu->u.presentResponse->records); - else - printf("No records.\n"); - printf ("nextResultSetPosition = %d\n", - *apdu->u.presentResponse->nextResultSetPosition); - break; - case Z_APDU_sortResponse: - process_sortResponse(apdu->u.sortResponse); - break; - case Z_APDU_extendedServicesResponse: - printf("Got extended services response\n"); - process_ESResponse(apdu->u.extendedServicesResponse); - break; - case Z_APDU_close: - printf("Target has closed the association.\n"); - process_close(apdu->u.close); - break; - case Z_APDU_resourceControlRequest: - process_resourceControlRequest - (apdu->u.resourceControlRequest); - break; - case Z_APDU_deleteResultSetResponse: - process_deleteResultSetResponse(apdu->u. - deleteResultSetResponse); - break; - default: - printf("Received unknown APDU type (%d).\n", - apdu->which); - close_session (); - } - } -#if YAZ_HAVE_XML2 - else if (gdu->which == Z_GDU_HTTP_Response) - { - http_response(gdu->u.HTTP_Response); - } -#endif - if (one_response_only) - break; - if (conn && !cs_more(conn)) - break; - } -#if HAVE_GETTIMEOFDAY - if (got_tv_end) - { -#if 0 - printf ("S/U S/U=%ld/%ld %ld/%ld", - (long) tv_start.tv_sec, - (long) tv_start.tv_usec, - (long) tv_end.tv_sec, - (long) tv_end.tv_usec); -#endif - printf ("Elapsed: %.6f\n", - (double) tv_end.tv_usec / 1e6 + tv_end.tv_sec - - ((double) tv_start.tv_usec / 1e6 + tv_start.tv_sec)); - } -#endif - xfree (netbuffer); -} - - -int cmd_cclparse(const char* arg) -{ - int error, pos; - struct ccl_rpn_node *rpn=NULL; - - - rpn = ccl_find_str (bibset, arg, &error, &pos); - - if (error) { - int ioff = 3+strlen(last_cmd)+1+pos; - printf ("%*s^ - ", ioff, " "); - printf ("%s\n", ccl_err_msg (error)); - } - else - { - if (rpn) - { - ccl_pr_tree(rpn, stdout); - } - } - if (rpn) - ccl_rpn_delete(rpn); - - printf ("\n"); - - return 0; -} - - -int cmd_set_otherinfo(const char* args) -{ - char oidstr[101], otherinfoString[101]; - int otherinfoNo; - int sscan_res; - - sscan_res = sscanf (args, "%d %100[^ ] %100s", - &otherinfoNo, oidstr, otherinfoString); - - if (sscan_res > 0 && otherinfoNo >= maxOtherInfosSupported) { - printf("Error otherinfo index too large (%d>=%d)\n", - otherinfoNo,maxOtherInfosSupported); - return 0; - } - - - if (sscan_res==1) - { - /* reset this otherinfo */ - extraOtherInfos[otherinfoNo].oid[0] = -1; - xfree(extraOtherInfos[otherinfoNo].value); - extraOtherInfos[otherinfoNo].value = 0; - return 0; - } - if (sscan_res != 3) { - printf("Error in set_otherinfo command \n"); - return 0; - } - else - { - NMEM oid_tmp = nmem_create(); - const Odr_oid *oid = - yaz_string_to_oid_nmem(yaz_oid_std(), - CLASS_GENERAL, oidstr, oid_tmp); - oid_oidcpy(extraOtherInfos[otherinfoNo].oid, oid); - - xfree(extraOtherInfos[otherinfoNo].value); - extraOtherInfos[otherinfoNo].value = xstrdup(otherinfoString); - - nmem_destroy(oid_tmp); - } - - return 0; -} - -int cmd_sleep(const char* args ) -{ - int sec=atoi(args); - if( sec > 0 ) { -#ifdef WIN32 - Sleep(sec*1000); -#else - sleep(sec); -#endif - printf("Done sleeping %d seconds\n", sec); - } - return 1; -} - -int cmd_list_otherinfo(const char* args) -{ - int i; - - if (strlen(args)>0) - { - i = atoi(args); - if (i >= maxOtherInfosSupported) - { - printf("Error otherinfo index to large (%d>%d)\n",i,maxOtherInfosSupported); - return 0; - } - if (extraOtherInfos[i].value) - { - char name_oid[OID_STR_MAX]; - oid_class oclass; - const char *name = - yaz_oid_to_string_buf(extraOtherInfos[i].oid, &oclass, - name_oid); - printf(" otherinfo %d %s %s\n", - i, name ? name : "null", - extraOtherInfos[i].value); - } - - } - else - { - for(i = 0; i < maxOtherInfosSupported; ++i) - { - if (extraOtherInfos[i].value) - { - char name_oid[OID_STR_MAX]; - oid_class oclass; - const char *name = - yaz_oid_to_string_buf(extraOtherInfos[i].oid, &oclass, - name_oid); - printf(" otherinfo %d %s %s\n", - i, name ? name : "null", - extraOtherInfos[i].value); - } - } - } - return 0; -} - - -int cmd_list_all(const char* args) { - int i; - - /* connection options */ - if(conn) { - printf("Connected to : %s\n",last_open_command); - } else { - if(last_open_command) - printf("Not connected to : %s\n",last_open_command); - else - printf("Not connected : \n"); - - } - if(yazProxy) printf("using proxy : %s\n",yazProxy); - - printf("auto_reconnect : %s\n",auto_reconnect?"on":"off"); - printf("auto_wait : %s\n",auto_wait?"on":"off"); - - if (!auth) { - printf("Authentication : none\n"); - } else { - switch(auth->which) { - case Z_IdAuthentication_idPass: - printf("Authentication : IdPass\n"); - printf(" Login User : %s\n",auth->u.idPass->userId?auth->u.idPass->userId:""); - printf(" Login Group : %s\n",auth->u.idPass->groupId?auth->u.idPass->groupId:""); - printf(" Password : %s\n",auth->u.idPass->password?auth->u.idPass->password:""); - break; - case Z_IdAuthentication_open: - printf("Authentication : psOpen\n"); - printf(" Open string : %s\n",auth->u.open); - break; - default: - printf("Authentication : Unknown\n"); - } - } - if (negotiationCharset) - printf("Neg. Character set : `%s'\n", negotiationCharset); - - /* bases */ - printf("Bases : "); - for (i = 0; i 0) - { - printf("Format : %s\n", recordsyntax_list[0]); - } - printf("Schema : %s\n",record_schema ? record_schema : "not set"); - printf("Elements : %s\n",elementSetNames?elementSetNames->u.generic:""); - - /* loging options */ - printf("APDU log : %s\n",apdu_file?"on":"off"); - printf("Record log : %s\n",marc_file?"on":"off"); - - /* other infos */ - printf("Other Info: \n"); - cmd_list_otherinfo(""); - - return 0; -} - -int cmd_clear_otherinfo(const char* args) -{ - if(strlen(args)>0) { - int otherinfoNo = atoi(args); - if (otherinfoNo >= maxOtherInfosSupported) { - printf("Error otherinfo index too large (%d>=%d)\n", - otherinfoNo, maxOtherInfosSupported); - return 0; - } - if (extraOtherInfos[otherinfoNo].value) - { - /* only clear if set. */ - extraOtherInfos[otherinfoNo].oid[0] = -1; - xfree(extraOtherInfos[otherinfoNo].value); - extraOtherInfos[otherinfoNo].value = 0; - } - } else { - int i; - for(i = 0; i < maxOtherInfosSupported; ++i) - { - if (extraOtherInfos[i].value) - { - extraOtherInfos[i].oid[0] = -1; - xfree(extraOtherInfos[i].value); - extraOtherInfos[i].value = 0; - } - } - } - return 0; -} - -int cmd_wait_response(const char *arg) -{ - int wait_for = atoi(arg); - int i=0; - if( wait_for < 1 ) { - wait_for = 1; - }; - - for( i=0 ; i < wait_for ; ++i ) { - wait_and_handle_response(1); - }; - return 0; -} - -static int cmd_help (const char *line); - -typedef char *(*completerFunctionType)(const char *text, int state); - -static struct { - char *cmd; - int (*fun)(const char *arg); - char *ad; - completerFunctionType rl_completerfunction; - int complete_filenames; - const char **local_tabcompletes; -} cmd_array[] = { - {"open", cmd_open, "('tcp'|'ssl')':[':'][/]",NULL,0,NULL}, - {"quit", cmd_quit, "",NULL,0,NULL}, - {"find", cmd_find, "",NULL,0,NULL}, - {"delete", cmd_delete, "",NULL,0,NULL}, - {"base", cmd_base, "",NULL,0,NULL}, - {"show", cmd_show, "['+'<#recs>['+']]",NULL,0,NULL}, - {"setscan", cmd_setscan, "",NULL,0,NULL}, - {"scan", cmd_scan, "",NULL,0,NULL}, - {"scanstep", cmd_scanstep, "",NULL,0,NULL}, - {"scanpos", cmd_scanpos, "",NULL,0,NULL}, - {"scansize", cmd_scansize, "",NULL,0,NULL}, - {"sort", cmd_sort, " ...",NULL,0,NULL}, - {"sort+", cmd_sort_newset, " ...",NULL,0,NULL}, - {"authentication", cmd_authentication, "",NULL,0,NULL}, - {"lslb", cmd_lslb, "",NULL,0,NULL}, - {"ssub", cmd_ssub, "",NULL,0,NULL}, - {"mspn", cmd_mspn, "",NULL,0,NULL}, - {"status", cmd_status, "",NULL,0,NULL}, - {"setnames", cmd_setnames, "",NULL,0,NULL}, - {"cancel", cmd_cancel, "",NULL,0,NULL}, - {"cancel_find", cmd_cancel_find, "",NULL,0,NULL}, - {"format", cmd_format, "",complete_format,0,NULL}, - {"schema", cmd_schema, "",complete_schema,0,NULL}, - {"elements", cmd_elements, "",NULL,0,NULL}, - {"close", cmd_close, "",NULL,0,NULL}, - {"querytype", cmd_querytype, "",complete_querytype,0,NULL}, - {"refid", cmd_refid, "",NULL,0,NULL}, - {"itemorder", cmd_itemorder, "ill|item|xml ",NULL,0,NULL}, - {"update", cmd_update, " []",NULL,0,NULL}, - {"update0", cmd_update0, " []",NULL,0,NULL}, - {"xmles", cmd_xmles, " ",NULL,0,NULL}, - {"packagename", cmd_packagename, "",NULL,0,NULL}, - {"proxy", cmd_proxy, "[('tcp'|'ssl')][':']",NULL,0,NULL}, - {"charset", cmd_charset, " ",NULL,0,NULL}, - {"negcharset", cmd_negcharset, "",NULL,0,NULL}, - {"displaycharset", cmd_displaycharset, "",NULL,0,NULL}, - {"marccharset", cmd_marccharset, "",NULL,0,NULL}, - {"querycharset", cmd_querycharset, "",NULL,0,NULL}, - {"lang", cmd_lang, "",NULL,0,NULL}, - {"source", cmd_source_echo, "",NULL,1,NULL}, - {".", cmd_source_echo, "",NULL,1,NULL}, - {"!", cmd_subshell, "Subshell command",NULL,1,NULL}, - {"set_apdufile", cmd_set_apdufile, "",NULL,1,NULL}, - {"set_berfile", cmd_set_berfile, "",NULL,1,NULL}, - {"set_marcdump", cmd_set_marcdump," ",NULL,1,NULL}, - {"set_cclfile", cmd_set_cclfile," ",NULL,1,NULL}, - {"set_cqlfile", cmd_set_cqlfile," ",NULL,1,NULL}, - {"set_auto_reconnect", cmd_set_auto_reconnect," on|off",complete_auto_reconnect,1,NULL}, - {"set_auto_wait", cmd_set_auto_wait," on|off",complete_auto_reconnect,1,NULL}, - {"set_otherinfo", cmd_set_otherinfo," ",NULL,0,NULL}, - {"sleep", cmd_sleep,"",NULL,0,NULL}, - {"register_oid", cmd_register_oid," ",NULL,0,NULL}, - {"push_command", cmd_push_command,"",command_generator,0,NULL}, - {"register_tab", cmd_register_tab," ",command_generator,0,NULL}, - {"cclparse", cmd_cclparse,"",NULL,0,NULL}, - {"list_otherinfo",cmd_list_otherinfo,"[otherinfoinddex]",NULL,0,NULL}, - {"list_all",cmd_list_all,"",NULL,0,NULL}, - {"clear_otherinfo",cmd_clear_otherinfo,"",NULL,0,NULL}, - {"wait_response",cmd_wait_response,"",NULL,0,NULL}, - /* Server Admin Functions */ - {"adm-reindex", cmd_adm_reindex, "",NULL,0,NULL}, - {"adm-truncate", cmd_adm_truncate, "('database'|'index')",NULL,0,NULL}, - {"adm-create", cmd_adm_create, "",NULL,0,NULL}, - {"adm-drop", cmd_adm_drop, "('database'|'index')",NULL,0,NULL}, - {"adm-import", cmd_adm_import, "

    ",NULL,0,NULL}, - {"adm-refresh", cmd_adm_refresh, "",NULL,0,NULL}, - {"adm-commit", cmd_adm_commit, "",NULL,0,NULL}, - {"adm-shutdown", cmd_adm_shutdown, "",NULL,0,NULL}, - {"adm-startup", cmd_adm_startup, "",NULL,0,NULL}, - {"explain", cmd_explain, "", NULL, 0, NULL}, - {"options", cmd_options, "", NULL, 0, NULL}, - {"zversion", cmd_zversion, "", NULL, 0, NULL}, - {"help", cmd_help, "", NULL,0,NULL}, - {"init", cmd_init, "", NULL,0,NULL}, - {"sru", cmd_sru, " ", NULL,0,NULL}, - {"exit", cmd_quit, "",NULL,0,NULL}, - {0,0,0,0,0,0} -}; - -static int cmd_help (const char *line) -{ - int i; - char topic[21]; - - *topic = 0; - sscanf (line, "%20s", topic); - - if (*topic == 0) - printf("Commands:\n"); - for (i = 0; cmd_array[i].cmd; i++) - if (*topic == 0 || strcmp (topic, cmd_array[i].cmd) == 0) - printf(" %s %s\n", cmd_array[i].cmd, cmd_array[i].ad); - if (!strcmp(topic, "find")) - { - printf("RPN:\n"); - printf(" \"term\" Simple Term\n"); - printf(" @attr [attset] type=value op Attribute\n"); - printf(" @and opl opr And\n"); - printf(" @or opl opr Or\n"); - printf(" @not opl opr And-Not\n"); - printf(" @set set Result set\n"); - printf(" @prox exl dist ord rel uc ut Proximity. Use help prox\n"); - printf("\n"); - printf("Bib-1 attribute types\n"); - printf("1=Use: "); - printf("4=Title 7=ISBN 8=ISSN 30=Date 62=Abstract 1003=Author 1016=Any\n"); - printf("2=Relation: "); - printf("1< 2<= 3= 4>= 5> 6!= 102=Relevance\n"); - printf("3=Position: "); - printf("1=First in Field 2=First in subfield 3=Any position\n"); - printf("4=Structure: "); - printf("1=Phrase 2=Word 3=Key 4=Year 5=Date 6=WordList\n"); - printf("5=Truncation: "); - printf("1=Right 2=Left 3=L&R 100=No 101=# 102=Re-1 103=Re-2\n"); - printf("6=Completeness:"); - printf("1=Incomplete subfield 2=Complete subfield 3=Complete field\n"); - } - if (!strcmp(topic, "prox")) - { - printf("Proximity:\n"); - printf(" @prox exl dist ord rel uc ut\n"); - printf(" exl: exclude flag . 0=include, 1=exclude.\n"); - printf(" dist: distance integer.\n"); - printf(" ord: order flag. 0=unordered, 1=ordered.\n"); - printf(" rel: relation integer. 1< 2<= 3= 4>= 5> 6!= .\n"); - printf(" uc: unit class. k=known, p=private.\n"); - printf(" ut: unit type. 1=character, 2=word, 3=sentence,\n"); - printf(" 4=paragraph, 5=section, 6=chapter, 7=document,\n"); - printf(" 8=element, 9=subelement, 10=elementType, 11=byte.\n"); - printf("\nExamples:\n"); - printf(" Search for a and b in-order at most 3 words apart:\n"); - printf(" @prox 0 3 1 2 k 2 a b\n"); - printf(" Search for any order of a and b next to each other:\n"); - printf(" @prox 0 1 0 3 k 2 a b\n"); - } - return 1; -} - -int cmd_register_tab(const char* arg) -{ -#if HAVE_READLINE_READLINE_H - char command[101], tabargument[101]; - int i; - int num_of_tabs; - const char** tabslist; - - if (sscanf (arg, "%100s %100s", command, tabargument) < 1) { - return 0; - } - - /* locate the amdn in the list */ - for (i = 0; cmd_array[i].cmd; i++) { - if (!strncmp(cmd_array[i].cmd, command, strlen(command))) { - break; - } - } - - if (!cmd_array[i].cmd) { - fprintf(stderr,"Unknown command %s\n",command); - return 1; - } - - - if (!cmd_array[i].local_tabcompletes) - cmd_array[i].local_tabcompletes = (const char **) calloc(1,sizeof(char**)); - - num_of_tabs=0; - - tabslist = cmd_array[i].local_tabcompletes; - for(; tabslist && *tabslist; tabslist++) { - num_of_tabs++; - } - - cmd_array[i].local_tabcompletes = (const char **) - realloc(cmd_array[i].local_tabcompletes, - (num_of_tabs+2)*sizeof(char**)); - tabslist = cmd_array[i].local_tabcompletes; - tabslist[num_of_tabs] = strdup(tabargument); - tabslist[num_of_tabs+1] = NULL; -#endif - return 1; -} - - -void process_cmd_line(char* line) -{ - int i, res; - char word[32], arg[10240]; - -#if HAVE_GETTIMEOFDAY - gettimeofday (&tv_start, 0); -#endif - - if ((res = sscanf(line, "%31s %10239[^;]", word, arg)) <= 0) - { - strcpy(word, last_cmd); - *arg = '\0'; - } - else if (res == 1) - *arg = 0; - strcpy(last_cmd, word); - - /* removed tailing spaces from the arg command */ - { - char* p = arg; - char* lastnonspace=NULL; - - for(;*p; ++p) { - if(!isspace(*(unsigned char *) p)) { - lastnonspace = p; - } - } - if(lastnonspace) - *(++lastnonspace) = 0; - } - - for (i = 0; cmd_array[i].cmd; i++) - if (!strncmp(cmd_array[i].cmd, word, strlen(word))) - { - res = (*cmd_array[i].fun)(arg); - break; - } - - if (!cmd_array[i].cmd) /* dump our help-screen */ - { - printf("Unknown command: %s.\n", word); - printf("Type 'help' for list of commands\n"); - res = 1; - } - - if(apdu_file) fflush(apdu_file); - - if (res >= 2 && auto_wait) - wait_and_handle_response(0); - - if(apdu_file) - fflush(apdu_file); - if(marc_file) - fflush(marc_file); -} - -static char *command_generator(const char *text, int state) -{ -#if HAVE_READLINE_READLINE_H - static int idx; - if (state==0) { - idx = 0; - } - for( ; cmd_array[idx].cmd; ++idx) { - if (!strncmp(cmd_array[idx].cmd, text, strlen(text))) { - ++idx; /* skip this entry on the next run */ - return strdup(cmd_array[idx-1].cmd); - } - } -#endif - return NULL; -} - -#if HAVE_READLINE_READLINE_H -static const char** default_completer_list = NULL; - -static char* default_completer(const char* text, int state) -{ - return complete_from_list(default_completer_list, text, state); -} -#endif - -#if HAVE_READLINE_READLINE_H - -/* - This function only known how to complete on the first word -*/ -char **readline_completer(char *text, int start, int end) -{ - completerFunctionType completerToUse; - - if(start == 0) { -#if HAVE_READLINE_RL_COMPLETION_MATCHES - char** res = rl_completion_matches(text, command_generator); -#else - char** res = completion_matches(text, - (CPFunction*)command_generator); -#endif - rl_attempted_completion_over = 1; - return res; - } else { - char arg[10240],word[32]; - int i=0 ,res; - if ((res = sscanf(rl_line_buffer, "%31s %10239[^;]", word, arg)) <= 0) { - rl_attempted_completion_over = 1; - return NULL; - } - - for (i = 0; cmd_array[i].cmd; i++) - if (!strncmp(cmd_array[i].cmd, word, strlen(word))) - break; - - if(!cmd_array[i].cmd) - return NULL; - - default_completer_list = cmd_array[i].local_tabcompletes; - - completerToUse = cmd_array[i].rl_completerfunction; - if (!completerToUse) - { /* if command completer is not defined use the default completer */ - completerToUse = default_completer; - } - if (completerToUse) { -#ifdef HAVE_READLINE_RL_COMPLETION_MATCHES - char** res= - rl_completion_matches(text, completerToUse); -#else - char** res= - completion_matches(text, (CPFunction*)completerToUse); -#endif - if (!cmd_array[i].complete_filenames) - rl_attempted_completion_over = 1; - return res; - } else { - if (!cmd_array[i].complete_filenames) - rl_attempted_completion_over = 1; - return 0; - } - } -} -#endif - -#ifndef WIN32 -void ctrl_c_handler(int x) -{ - exit_client(0); -} -#endif - -static void client(void) -{ - char line[10240]; - - line[10239] = '\0'; - -#ifndef WIN32 - signal(SIGINT, ctrl_c_handler); -#endif - -#if HAVE_GETTIMEOFDAY - gettimeofday (&tv_start, 0); -#endif - - while (1) - { - char *line_in = NULL; -#if HAVE_READLINE_READLINE_H - if (isatty(0)) - { - line_in=readline(C_PROMPT); - if (!line_in) - break; -#if HAVE_READLINE_HISTORY_H - if (*line_in) - add_history(line_in); -#endif - strncpy(line, line_in, sizeof(line)-1); - free(line_in); - } -#endif - if (!line_in) - { - char *end_p; - printf (C_PROMPT); - fflush(stdout); - if (!fgets(line, sizeof(line)-1, stdin)) - break; - if ((end_p = strchr (line, '\n'))) - *end_p = '\0'; - } - if (isatty(0)) - file_history_add_line(file_history, line); - process_cmd_line(line); - } -} - -static void show_version(void) -{ - char vstr[20]; - - yaz_version(vstr, 0); - printf ("YAZ version: %s\n", YAZ_VERSION); - if (strcmp(vstr, YAZ_VERSION)) - printf ("YAZ DLL/SO: %s\n", vstr); - exit(0); -} - -int main(int argc, char **argv) -{ - char *prog = *argv; - char *open_command = 0; - char *auth_command = 0; - char *arg; - const char *rc_file = 0; - int ret; - -#if HAVE_LOCALE_H - if (!setlocale(LC_CTYPE, "")) - fprintf (stderr, "setlocale failed\n"); -#endif -#if HAVE_LANGINFO_H -#ifdef CODESET - codeset = nl_langinfo(CODESET); -#endif -#endif - if (codeset) - outputCharset = xstrdup(codeset); - - ODR_MASK_SET(&z3950_options, Z_Options_search); - ODR_MASK_SET(&z3950_options, Z_Options_present); - ODR_MASK_SET(&z3950_options, Z_Options_namedResultSets); - ODR_MASK_SET(&z3950_options, Z_Options_triggerResourceCtrl); - ODR_MASK_SET(&z3950_options, Z_Options_scan); - ODR_MASK_SET(&z3950_options, Z_Options_sort); - ODR_MASK_SET(&z3950_options, Z_Options_extendedServices); - ODR_MASK_SET(&z3950_options, Z_Options_delSet); - ODR_MASK_SET(&z3950_options, Z_Options_negotiationModel); - - while ((ret = options("k:c:q:a:b:m:v:p:u:t:Vxd:f:", argv, argc, &arg)) != -2) - { - switch (ret) - { - case 0: - if (!open_command) - { - open_command = (char *) xmalloc (strlen(arg)+6); - strcpy (open_command, "open "); - strcat (open_command, arg); - } - else - { - fprintf(stderr, "%s: Specify at most one server address\n", - prog); - exit(1); - } - break; - case 'a': - if (!strcmp(arg, "-")) - apdu_file=stderr; - else - apdu_file=fopen(arg, "a"); - break; - case 'b': - if (!strcmp(arg, "-")) - ber_file=stderr; - else - ber_file=fopen(arg, "a"); - break; - case 'c': - strncpy (ccl_fields, arg, sizeof(ccl_fields)-1); - ccl_fields[sizeof(ccl_fields)-1] = '\0'; - break; - case 'd': - dump_file_prefix = arg; - break; - case 'f': - rc_file = arg; - break; - case 'k': - kilobytes = atoi(arg); - break; - case 'm': - if (!(marc_file = fopen (arg, "a"))) - { - perror (arg); - exit (1); - } - break; - case 'p': - yazProxy = xstrdup(arg); - break; - case 'q': - strncpy (cql_fields, arg, sizeof(cql_fields)-1); - cql_fields[sizeof(cql_fields)-1] = '\0'; - break; - case 't': - outputCharset = xstrdup(arg); - break; - case 'u': - if (!auth_command) - { - auth_command = (char *) xmalloc (strlen(arg)+6); - strcpy (auth_command, "auth "); - strcat (auth_command, arg); - } - break; - case 'v': - yaz_log_init(yaz_log_mask_str(arg), "", 0); - break; - case 'V': - show_version(); - break; - case 'x': - hex_dump = 1; - break; - default: - fprintf (stderr, "Usage: %s " - " [-a apdulog]" - " [-b berdump]" - " [-c cclfile]" - " [-d dump]" - " [-f cmdfile]" - " [-k size]" - " [-m marclog]" - " [-p proxy-addr]" - " [-q cqlfile]" - " [-t dispcharset]" - " [-u auth]" - " [-v loglevel]" - " [-V]" - " [-x]" - " [server-addr]\n", - prog); - exit (1); - } - } - initialize(rc_file); - if (auth_command) - { -#ifdef HAVE_GETTIMEOFDAY - gettimeofday (&tv_start, 0); -#endif - process_cmd_line (auth_command); -#if HAVE_READLINE_HISTORY_H - add_history(auth_command); -#endif - xfree(auth_command); - } - if (open_command) - { -#ifdef HAVE_GETTIMEOFDAY - gettimeofday (&tv_start, 0); -#endif - process_cmd_line (open_command); -#if HAVE_READLINE_HISTORY_H - add_history(open_command); -#endif - xfree(open_command); - } - client(); - exit_client(0); - return 0; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/client/fhistory.c b/dependencies/yaz_3.0.14/client/fhistory.c deleted file mode 100644 index 038d6e4..0000000 --- a/dependencies/yaz_3.0.14/client/fhistory.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: fhistory.c,v 1.4 2007/05/06 20:12:19 adam Exp $ - */ -/** \file fhistory.c - * \brief file history implementation - */ - -#include -#include -#include -#include -#include -#if HAVE_SYS_TYPES_H -#include -#endif - -#include "fhistory.h" - - -struct file_history { - WRBUF wr; -}; - -file_history_t file_history_new() -{ - file_history_t fh = (file_history_t) xmalloc(sizeof(*fh)); - fh->wr = wrbuf_alloc(); - return fh; -} - -void file_history_destroy(file_history_t *fhp) -{ - if (*fhp) - { - wrbuf_destroy((*fhp)->wr); - xfree(*fhp); - *fhp = 0; - } -} - -void file_history_add_line(file_history_t fh, const char *line) -{ - wrbuf_puts(fh->wr, line); - wrbuf_puts(fh->wr, "\n"); -} - -int file_history_load(file_history_t fh) -{ - FILE *f; - char* homedir = getenv("HOME"); - char fname[1024]; - int ret = 0; - - wrbuf_rewind(fh->wr); - sprintf(fname, "%.500s%s%s", homedir ? homedir : "", - homedir ? "/" : "", ".yazclient.history"); - - f = fopen(fname, "r"); - if (f) - { - int c; - while ((c = fgetc(f)) != EOF) - wrbuf_putc(fh->wr, c); - fclose(f); - } - return ret; -} - -int file_history_save(file_history_t fh) -{ - FILE *f; - char* homedir = getenv("HOME"); - char fname[1024]; - int ret = 0; - int sz = wrbuf_len(fh->wr); - - if (!sz) - return 0; - sprintf(fname, "%.500s%s%s", homedir ? homedir : "", - homedir ? "/" : "", ".yazclient.history"); - - f = fopen(fname, "w"); - if (!f) - { - ret = -1; - } - else - { - size_t w = fwrite(wrbuf_buf(fh->wr), 1, sz, f); - if (w != sz) - ret = -1; - if (fclose(f)) - ret = -1; - } - return ret; -} - -int file_history_trav(file_history_t fh, void *client_data, - void (*callback)(void *client_data, const char *line)) -{ - int off = 0; - - while (off < wrbuf_len(fh->wr)) - { - int i; - for (i = off; i < wrbuf_len(fh->wr); i++) - { - if (wrbuf_buf(fh->wr)[i] == '\n') - { - wrbuf_buf(fh->wr)[i] = '\0'; - callback(client_data, wrbuf_cstr(fh->wr) + off); - wrbuf_buf(fh->wr)[i] = '\n'; - i++; - break; - } - } - off = i; - } - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/client/fhistory.h b/dependencies/yaz_3.0.14/client/fhistory.h deleted file mode 100644 index 96d3887..0000000 --- a/dependencies/yaz_3.0.14/client/fhistory.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: fhistory.h,v 1.1 2007/01/24 11:50:18 adam Exp $ - */ -/** \file fhistory.h - * \brief file history header - */ - - -#ifndef YAZ_FHISTORY_H -#define YAZ_FHISTORY_H - -#include - -YAZ_BEGIN_CDECL - -typedef struct file_history *file_history_t; - -file_history_t file_history_new(void); -void file_history_destroy(file_history_t *fhp); -void file_history_add_line(file_history_t fh, const char *line); -int file_history_save(file_history_t fh); -int file_history_load(file_history_t fh); -int file_history_trav(file_history_t fh, void *client_data, - void (*callback)(void *client_data, const char *line)); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/client/tabcomplete.c b/dependencies/yaz_3.0.14/client/tabcomplete.c deleted file mode 100644 index 4d93d04..0000000 --- a/dependencies/yaz_3.0.14/client/tabcomplete.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tabcomplete.c,v 1.19 2007/05/08 08:22:35 adam Exp $ - */ - -#include -#include -#include - -#include "tabcomplete.h" -#include - -/* *************************************************************************** - * - * generic completer - * - * ***************************************************************************/ - -char *complete_from_list(const char** completions, - const char *text, int state) -{ -#if HAVE_READLINE_READLINE_H - static int idx; - - if (!completions) - return NULL; - if (state==0) - idx = 0; - for(; completions[idx]; ++ idx) { - if(! -#ifdef WIN32 - _strnicmp -#else - strncasecmp -#endif - (completions[idx],text,strlen(text))) { - ++idx; /* skip this entry on the next run */ - return (char*)strdup(completions[idx-1]); - }; - }; -#endif - return NULL; -} - - -/* *************************************************************************** - * - * code for getting a list of valid strings from the oid subsystem - * - * ***************************************************************************/ - - -typedef struct { - int oclass; - const char** values; - size_t index; - size_t max; -} oid_callback_t; - -/*! - This is the call back function given to oid_trav... it updates the list - of pointers into the oid owned data -*/ - -void oid_loader(const Odr_oid *oid, - oid_class oclass, const char *name, void* data_) -{ - oid_callback_t* data=(oid_callback_t*) data_; - - if ((oclass == CLASS_GENERAL) || (oclass == data->oclass)) - { - if (data->index==data->max) - { - data->values=(const char**) - realloc(data->values,((data->max+1)*2)*sizeof(char*)); - data->max=(data->max+1)*2 - 1; - } - data->values[data->index] = name; - ++data->index; - } -} - -const char** build_list_for_oclass(oid_class oclass) -{ - oid_callback_t data; - data.values = (const char **) calloc(10,sizeof(char*)); - data.index = 0; - data.max = 9; - data.oclass = oclass; - - yaz_oid_trav(yaz_oid_std(), oid_loader, &data); - - data.values[data.index]=0; - return data.values; -} - -/* *************************************************************************** - * - * the completer functions - * - * ***************************************************************************/ - -char* complete_querytype(const char *text, int state) -{ - static const char* querytypes[] = {"ccl2rpn","prefix","cclrpn","ccl","cql", 0}; - return complete_from_list(querytypes,text,state); -} - -char* complete_auto_reconnect(const char *text, int state) -{ - static const char* querytypes[] = {"on","off",0}; - return complete_from_list(querytypes,text,state); -} - - -char* complete_format(const char* text, int state) -{ - const char** list = build_list_for_oclass(CLASS_RECSYN); - char* res=complete_from_list(list,text,state); - - free(list); - return res; -} - -char* complete_schema(const char* text, int state) -{ - const char** list = build_list_for_oclass(CLASS_SCHEMA); - char* res = complete_from_list(list,text,state); - - free(list); - return res; -} - - -char* complete_attributeset(const char* text, int state) -{ - const char** list = build_list_for_oclass(CLASS_ATTSET); - char* res = complete_from_list(list,text,state); - - free(list); - return res; -} - - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/client/tabcomplete.h b/dependencies/yaz_3.0.14/client/tabcomplete.h deleted file mode 100644 index 28c84e4..0000000 --- a/dependencies/yaz_3.0.14/client/tabcomplete.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tabcomplete.h,v 1.9 2007/04/12 13:52:57 adam Exp $ - */ - -/* - This file contains the compleaters for the different commands. -*/ - -char* complete_querytype(const char* text, int state); -char* complete_format(const char* text, int state); -char* complete_schema(const char* text, int state); -char* complete_attributeset(const char* text, int state); -char* complete_auto_reconnect(const char *text, int state); -char *complete_from_list(const char** completions, - const char *text, int state); -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/doc/apilayer.png b/dependencies/yaz_3.0.14/doc/apilayer.png deleted file mode 100644 index cde890ad01a81eed13aff7def4390152848570be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1021 zcmV{(E*h5{ ze6i52P8ey&!5}vnX$(ttB4%f%^Jk??N!Z1by={FUEJ1i6B|}7S3MhrzNgRlY_E!&(SpM?+x1zDN)n0qB z{{x7V*T2@=;W62G!o7_Rwe#D{sGsEQA=}`wz)vL(0QSWtmAKiCe3~&Vy1QAP2x)VeM z)Uy>?!V-jwATY$QlZG^Xp*2hP?-!%)78c&<)`c}o#5(=uPR^GMgueHQA^5BX&6EN~ zdI}UN%&M;qIe$o~Av-OIb?bJ{DJiKl?E`Aly&%7nBTaT2C$OkbK!;us$RuYUNMJ|V zg~*IT88d{*A?f%LskAH^FxJrr8Y3YsTjF;N5jED)>9Ut|)K=7xtA+>`S|aPLLG)xW zxoGlS?(G^fCp=3Kdp=1TBqFR~iK@tq!bb!=S#4^<`3_!<`U1-O3OF043#v3CXO^h$ z8X^~G>7AS}A5T8T>nOurO}gTC-KTSMZIV72QeQfarqnQ!e_K8yviRd8)S?d$dV-C}vpC@#mSIg1Je2@NC{8_)BHzjC(n7(I z%L2rSbd#fitH@+731TX85Y-n4QQal5x^!S@eCur%)k|Mw}ClWUL+3z>Aq z?OK|1a&3|!fNPYSex+AD!gOnfssCqbBs_nFgH6H)O_D}9eb(wS@{aXz8eu}5{4L2l z%HcF}QX+lI7WiaI|sf@{6hqE%l!)ff0jGks+! z9(i<|z{WaDC8?24. EXTERNAL Data diff --git a/dependencies/yaz_3.0.14/doc/asn.html b/dependencies/yaz_3.0.14/doc/asn.html deleted file mode 100644 index dd605c2..0000000 --- a/dependencies/yaz_3.0.14/doc/asn.html +++ /dev/null @@ -1,16 +0,0 @@ -Chapter 7. The Z39.50 ASN.1 Module

    Chapter 7. The Z39.50 ASN.1 Module

    1. Introduction

    - The Z39.50 ASN.1 module provides you with a set of C struct definitions for the - various PDUs of the Z39.50 protocol, as well as for the complex types - appearing within the PDUs. For the primitive data types, the C - representation often takes the form of an ordinary C language type, - such as int. For ASN.1 constructs that have no direct - representation in C, such as general octet strings and bit strings, - the ODR module (see section The ODR Module) - provides auxiliary definitions. -

    - The Z39.50 ASN.1 module is located in sub directory z39.50. - There you'll find C files that implements encoders and decoders for the - Z39.50 types. You'll also find the protocol definitions: - z3950v3.asn, esupdate.asn, - and others. -

    diff --git a/dependencies/yaz_3.0.14/doc/asn.oid.html b/dependencies/yaz_3.0.14/doc/asn.oid.html deleted file mode 100644 index 8d0c8d0..0000000 --- a/dependencies/yaz_3.0.14/doc/asn.oid.html +++ /dev/null @@ -1,47 +0,0 @@ -3. Object Identifiers (YAZ 2)

    3. Object Identifiers (YAZ 2)

    Note

    - This material only applies to version 2 series of YAZ. You need not - read this material if you are working with YAZ 3. - See Section 2, “Object Identifiers” for more information on OIDs. -

    - When you refer to object identifiers in your application, you need to - be aware that SR and Z39.50 use two different set of OIDs to refer to - the same objects. To handle this easily, YAZ provides a utility module - to Z39.50 ASN.1 which provides an internal representation of the OIDs used in - both protocols. Each oid is described by a structure: -

    -typedef struct oident
    -{
    -    enum oid_proto proto;
    -    enum oid_class class;
    -    enum oid_value value;
    -    int oidsuffix[OID_SIZE];
    -    char *desc;
    -} oident;
    -   

    - The proto field can be set to either - PROTO_SR or PROTO_Z3950. - The class might be, say, - CLASS_RECSYN, and the value might be - VAL_USMARC for the USMARC record format. Functions -

    -int *oid_ent_to_oid(struct oident *ent, int *dst);
    -struct oident *oid_getentbyoid(int *o);
    -   

    - are provided to map between object identifiers and database entries. - If you store a member of the oid_proto type in - your association state information, it's a simple matter, at runtime, - to generate the correct OID when you need it. For decoding, you can - simply ignore the proto field, or if you're strict, you can verify - that your peer is using the OID family from the correct protocol. - The desc field is a short, human-readable name - for the PDU, useful mainly for diagnostic output. -

    Note

    - The old function oid_getoidbyent still exists but - is not thread safe. Use oid_ent_to_oid instead - and pass an array of size OID_SIZE. -

    Note

    - Plans are underway to merge the two protocols into a single - definition, with one set of object identifiers. When this happens, the - oid module will no longer be required to support protocol - independence, but it should still be useful as a simple OID database. -

    diff --git a/dependencies/yaz_3.0.14/doc/asn.pdu.html b/dependencies/yaz_3.0.14/doc/asn.pdu.html deleted file mode 100644 index b757346..0000000 --- a/dependencies/yaz_3.0.14/doc/asn.pdu.html +++ /dev/null @@ -1,278 +0,0 @@ -5. PDU Contents Table

    5. PDU Contents Table

    - We include, for reference, a listing of the fields of each top-level - PDU, as well as their default settings. -

    Table 7.1. Default settings for PDU Initialize Request

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - protocolVersionOdr_bitmaskEmpty bitmask -
    - optionsOdr_bitmaskEmpty bitmask -
    - preferredMessageSizeint30*1024 -
    - maximumRecordSizeint30*1024 -
    - idAuthenticationZ_IdAuthenticationNULL -
    - implementationIdchar*"81" -
    - implementationNamechar*"YAZ" -
    - implementationVersionchar*YAZ_VERSION -
    - userInformationFieldZ_UserInformationNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.2. Default settings for PDU Initialize - Response

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - protocolVersionOdr_bitmaskEmpty bitmask -
    - optionsOdr_bitmaskEmpty bitmask -
    - preferredMessageSizeint30*1024 -
    - maximumRecordSizeint30*1024 -
    - resultbool_tTRUE -
    - implementationIdchar*"id)" -
    - implementationNamechar*"YAZ" -
    - implementationVersionchar*YAZ_VERSION -
    - userInformationFieldZ_UserInformationNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.3. Default settings for PDU Search Request

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - smallSetUpperBoundint0 -
    - largeSetLowerBoundint1 -
    - mediumSetPresentNumberint0 -
    - replaceIndicatorbool_tTRUE -
    - resultSetNamechar *"default" -
    - num_databaseNamesint0 -
    - databaseNameschar **NULL -
    - smallSetElementSetNamesZ_ElementSetNames - NULL -
    - mediumSetElementSetNamesZ_ElementSetNames - NULL -
    - preferredRecordSyntaxOdr_oidNULL -
    - queryZ_QueryNULL -
    - additionalSearchInfoZ_OtherInformation - NULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.4. Default settings for PDU Search Response

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - resultCountint0 -
    - numberOfRecordsReturnedint0 -
    - nextResultSetPositionint0 -
    - searchStatusbool_tTRUE -
    - resultSetStatusintNULL -
    - presentStatusintNULL -
    - recordsZ_RecordsNULL -
    - additionalSearchInfoZ_OtherInformationNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.5. Default settings for PDU Present Request

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - resultSetIdchar*"default" -
    - resultSetStartPointint1 -
    - numberOfRecordsRequestedint10 -
    - num_rangesint0 -
    - additionalRangesZ_RangeNULL -
    - recordCompositionZ_RecordCompositionNULL -
    - preferredRecordSyntaxOdr_oidNULL -
    - maxSegmentCountintNULL -
    - maxRecordSizeintNULL -
    - maxSegmentSizeintNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.6. Default settings for PDU Present Response

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - numberOfRecordsReturnedint0 -
    - nextResultSetPositionint0 -
    - presentStatusintZ_PresentStatus_success -
    - recordsZ_RecordsNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.7. Default settings for Delete Result Set Request -

    FieldTypeDefault Value
    referenceId - Z_ReferenceIdNULL -
    - deleteFunctionintZ_DeleteResultSetRequest_list -
    - num_idsint0 -
    - resultSetListchar**NULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.8. Default settings for Delete Result Set Response -

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - deleteOperationStatusintZ_DeleteStatus_success
    - num_statusesint0 -
    - deleteListStatusesZ_ListStatus**NULL -
    - numberNotDeletedintNULL -
    - num_bulkStatusesint0 -
    - bulkStatusesZ_ListStatusNUL - L
    - deleteMessagechar*NULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.9. Default settings for Scan Request -

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - num_databaseNamesint0 -
    - databaseNameschar**NULL -
    - attributeSetOdr_oidNULL -
    - termListAndStartPointZ_AttributesPlus... - NULL
    - stepSizeintNULL -
    - numberOfTermsRequestedint20 -
    - preferredPositionInResponseintNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.10. Default settings for Scan Response -

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - stepSizeintNULL -
    - scanStatusintZ_Scan_success -
    - numberOfEntriesReturnedint0 -
    - positionOfTermintNULL -
    - entriesZ_ListEntrisNULL -
    - attributeSetOdr_oidNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.11. Default settings for Trigger Resource Control Request

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - requestedActionint - Z_TriggerResourceCtrl_resou.. -
    - prefResourceReportFormatOdr_oidNULL -
    - resultSetWantedbool_tNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.12. Default settings for Resource Control Request

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - suspendedFlagbool_tNULL -
    - resourceReportZ_ExternalNULL -
    - partialResultsAvailableintNULL -
    - responseRequiredbool_tFALSE -
    - triggeredRequestFlagbool_tNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.13. Default settings for Resource Control Response

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - continueFlagbool_tTRUE -
    - resultSetWantedbool_tNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.14. Default settings for Access Control Request

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - whichenumZ_AccessRequest_simpleForm; -
    - uunionNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.15. Default settings for Access Control Response

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - whichenumZ_AccessResponse_simpleForm -
    - uunionNULL -
    - diagnosticZ_DiagRecNULL -
    - otherInfoZ_OtherInformationNULL -

    Table 7.16. Default settings for Segment

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - numberOfRecordsReturnedintvalue=0 -
    - num_segmentRecordsint0 -
    - segmentRecordsZ_NamePlusRecordNULL -
    otherInfoZ_OtherInformationNULL -

    Table 7.17. Default settings for Close

    FieldTypeDefault Value
    - referenceIdZ_ReferenceIdNULL -
    - closeReasonintZ_Close_finished -
    - diagnosticInformationchar*NULL -
    - resourceReportFormatOdr_oidNULL -
    - resourceFormatZ_ExternalNULL -
    - otherInfoZ_OtherInformationNULL -

    diff --git a/dependencies/yaz_3.0.14/doc/asn.preparing.html b/dependencies/yaz_3.0.14/doc/asn.preparing.html deleted file mode 100644 index 0833fb5..0000000 --- a/dependencies/yaz_3.0.14/doc/asn.preparing.html +++ /dev/null @@ -1,89 +0,0 @@ -2. Preparing PDUs

    2. Preparing PDUs

    - A structure representing a complex ASN.1 type doesn't in itself contain the - members of that type. Instead, the structure contains - pointers to the members of the type. - This is necessary, in part, to allow a mechanism for specifying which - of the optional structure (SEQUENCE) members are present, and which - are not. It follows that you will need to somehow provide space for - the individual members of the structure, and set the pointers to - refer to the members. -

    - The conversion routines don't care how you allocate and maintain your - C structures - they just follow the pointers that you provide. - Depending on the complexity of your application, and your personal - taste, there are at least three different approaches that you may take - when you allocate the structures. -

    - You can use static or automatic local variables in the function that - prepares the PDU. This is a simple approach, and it provides the most - efficient form of memory management. While it works well for flat - PDUs like the InitReqest, it will generally not be sufficient for say, - the generation of an arbitrarily complex RPN query structure. -

    - You can individually create the structure and its members using the - malloc(2) function. If you want to ensure that - the data is freed when it is no longer needed, you will have to - define a function that individually releases each member of a - structure before freeing the structure itself. -

    - You can use the odr_malloc() function (see - Section 2, “Using ODR” for details). When you use - odr_malloc(), you can release all of the - allocated data in a single operation, independent of any pointers and - relations between the data. odr_malloc() is based on a - "nibble-memory" - scheme, in which large portions of memory are allocated, and then - gradually handed out with each call to odr_malloc(). - The next time you call odr_reset(), all of the - memory allocated since the last call is recycled for future use (actually, - it is placed on a free-list). -

    - You can combine all of the methods described here. This will often be - the most practical approach. For instance, you might use - odr_malloc() to allocate an entire structure and - some of its elements, while you leave other elements pointing to global - or per-session default variables. -

    - The Z39.50 ASN.1 module provides an important aid in creating new PDUs. For - each of the PDU types (say, Z_InitRequest), a - function is provided that allocates and initializes an instance of - that PDU type for you. In the case of the InitRequest, the function is - simply named zget_InitRequest(), and it sets up - reasonable default value for all of the mandatory members. The optional - members are generally initialized to null pointers. This last aspect - is very important: it ensures that if the PDU definitions are - extended after you finish your implementation (to accommodate - new versions of the protocol, say), you won't get into trouble with - uninitialized pointers in your structures. The functions use - odr_malloc() to - allocate the PDUs and its members, so you can free everything again with a - single call to odr_reset(). We strongly recommend - that you use the zget_* - functions whenever you are preparing a PDU (in a C++ API, the - zget_ - functions would probably be promoted to constructors for the - individual types). -

    - The prototype for the individual PDU types generally look like this: -

    -    Z_<type> *zget_<type>(ODR o);
    -   

    - eg.: -

    -    Z_InitRequest *zget_InitRequest(ODR o);
    -   

    - The ODR handle should generally be your encoding stream, but it - needn't be. -

    - As well as the individual PDU functions, a function - zget_APDU() is provided, which allocates - a top-level Z-APDU of the type requested: -

    -    Z_APDU *zget_APDU(ODR o, int which);
    -   

    - The which parameter is (of course) the discriminator - belonging to the Z_APDU CHOICE type. - All of the interface described here is provided by the Z39.50 ASN.1 module, and - you access it through the proto.h header file. - -

    diff --git a/dependencies/yaz_3.0.14/doc/asn.xml b/dependencies/yaz_3.0.14/doc/asn.xml deleted file mode 100644 index 2237123..0000000 --- a/dependencies/yaz_3.0.14/doc/asn.xml +++ /dev/null @@ -1,1094 +0,0 @@ - - The Z39.50 ASN.1 Module - Introduction - - The &asn; module provides you with a set of C struct definitions for the - various PDUs of the Z39.50 protocol, as well as for the complex types - appearing within the PDUs. For the primitive data types, the C - representation often takes the form of an ordinary C language type, - such as int. For ASN.1 constructs that have no direct - representation in C, such as general octet strings and bit strings, - the &odr; module (see section The ODR Module) - provides auxiliary definitions. - - - The &asn; module is located in sub directory z39.50. - There you'll find C files that implements encoders and decoders for the - Z39.50 types. You'll also find the protocol definitions: - z3950v3.asn, esupdate.asn, - and others. - - - Preparing PDUs - - - A structure representing a complex ASN.1 type doesn't in itself contain the - members of that type. Instead, the structure contains - pointers to the members of the type. - This is necessary, in part, to allow a mechanism for specifying which - of the optional structure (SEQUENCE) members are present, and which - are not. It follows that you will need to somehow provide space for - the individual members of the structure, and set the pointers to - refer to the members. - - - The conversion routines don't care how you allocate and maintain your - C structures - they just follow the pointers that you provide. - Depending on the complexity of your application, and your personal - taste, there are at least three different approaches that you may take - when you allocate the structures. - - - - You can use static or automatic local variables in the function that - prepares the PDU. This is a simple approach, and it provides the most - efficient form of memory management. While it works well for flat - PDUs like the InitReqest, it will generally not be sufficient for say, - the generation of an arbitrarily complex RPN query structure. - - - You can individually create the structure and its members using the - malloc(2) function. If you want to ensure that - the data is freed when it is no longer needed, you will have to - define a function that individually releases each member of a - structure before freeing the structure itself. - - - You can use the odr_malloc() function (see - for details). When you use - odr_malloc(), you can release all of the - allocated data in a single operation, independent of any pointers and - relations between the data. odr_malloc() is based on a - "nibble-memory" - scheme, in which large portions of memory are allocated, and then - gradually handed out with each call to odr_malloc(). - The next time you call odr_reset(), all of the - memory allocated since the last call is recycled for future use (actually, - it is placed on a free-list). - - - You can combine all of the methods described here. This will often be - the most practical approach. For instance, you might use - odr_malloc() to allocate an entire structure and - some of its elements, while you leave other elements pointing to global - or per-session default variables. - - - - The &asn; module provides an important aid in creating new PDUs. For - each of the PDU types (say, Z_InitRequest), a - function is provided that allocates and initializes an instance of - that PDU type for you. In the case of the InitRequest, the function is - simply named zget_InitRequest(), and it sets up - reasonable default value for all of the mandatory members. The optional - members are generally initialized to null pointers. This last aspect - is very important: it ensures that if the PDU definitions are - extended after you finish your implementation (to accommodate - new versions of the protocol, say), you won't get into trouble with - uninitialized pointers in your structures. The functions use - odr_malloc() to - allocate the PDUs and its members, so you can free everything again with a - single call to odr_reset(). We strongly recommend - that you use the zget_* - functions whenever you are preparing a PDU (in a C++ API, the - zget_ - functions would probably be promoted to constructors for the - individual types). - - - The prototype for the individual PDU types generally look like this: - - - Z_<type> *zget_<type>(ODR o); - - - - eg.: - - - - Z_InitRequest *zget_InitRequest(ODR o); - - - - The &odr; handle should generally be your encoding stream, but it - needn't be. - - - As well as the individual PDU functions, a function - zget_APDU() is provided, which allocates - a top-level Z-APDU of the type requested: - - - - Z_APDU *zget_APDU(ODR o, int which); - - - - The which parameter is (of course) the discriminator - belonging to the Z_APDU CHOICE type. - All of the interface described here is provided by the &asn; module, and - you access it through the proto.h header file. - - - - Object Identifiers (YAZ 2) - - - - This material only applies to version 2 series of YAZ. You need not - read this material if you are working with YAZ 3. - See for more information on OIDs. - - - - - When you refer to object identifiers in your application, you need to - be aware that SR and Z39.50 use two different set of OIDs to refer to - the same objects. To handle this easily, &yaz; provides a utility module - to &asn; which provides an internal representation of the OIDs used in - both protocols. Each oid is described by a structure: - - - -typedef struct oident -{ - enum oid_proto proto; - enum oid_class class; - enum oid_value value; - int oidsuffix[OID_SIZE]; - char *desc; -} oident; - - - - The proto field can be set to either - PROTO_SR or PROTO_Z3950. - The class might be, say, - CLASS_RECSYN, and the value might be - VAL_USMARC for the USMARC record format. Functions - - - -int *oid_ent_to_oid(struct oident *ent, int *dst); -struct oident *oid_getentbyoid(int *o); - - - - are provided to map between object identifiers and database entries. - If you store a member of the oid_proto type in - your association state information, it's a simple matter, at runtime, - to generate the correct OID when you need it. For decoding, you can - simply ignore the proto field, or if you're strict, you can verify - that your peer is using the OID family from the correct protocol. - The desc field is a short, human-readable name - for the PDU, useful mainly for diagnostic output. - - - - - The old function oid_getoidbyent still exists but - is not thread safe. Use oid_ent_to_oid instead - and pass an array of size OID_SIZE. - - - - - - Plans are underway to merge the two protocols into a single - definition, with one set of object identifiers. When this happens, the - oid module will no longer be required to support protocol - independence, but it should still be useful as a simple OID database. - - - - - EXTERNAL Data - - - In order to achieve extensibility and adaptability to different - application domains, the new version of the protocol defines many - structures outside of the main ASN.1 specification, referencing them - through ASN.1 EXTERNAL constructs. To simplify the construction and - access to the externally referenced data, the &asn; module defines a - specialized version of the EXTERNAL construct, called - Z_External.It is defined thus: - - - -typedef struct Z_External -{ - Odr_oid *direct_reference; - int *indirect_reference; - char *descriptor; - enum - { - /* Generic types */ - Z_External_single = 0, - Z_External_octet, - Z_External_arbitrary, - - /* Specific types */ - Z_External_SUTRS, - Z_External_explainRecord, - Z_External_resourceReport1, - Z_External_resourceReport2 - - ... - - } which; - union - { - /* Generic types */ - Odr_any *single_ASN1_type; - Odr_oct *octet_aligned; - Odr_bitmask *arbitrary; - - /* Specific types */ - Z_SUTRS *sutrs; - Z_ExplainRecord *explainRecord; - Z_ResourceReport1 *resourceReport1; - Z_ResourceReport2 *resourceReport2; - - ... - - } u; -} Z_External; - - - - When decoding, the &asn; module will attempt to determine which - syntax describes the data by looking at the reference fields - (currently only the direct-reference). For ASN.1 structured data, you - need only consult the which field to determine the - type of data. You can the access the data directly through the union. - When constructing data for encoding, you set the union pointer to point - to the data, and set the which field accordingly. - Remember also to set the direct (or indirect) reference to the correct - OID for the data type. - For non-ASN.1 data such as MARC records, use the - octet_aligned arm of the union. - - - - Some servers return ASN.1 structured data values (eg. database - records) as BER-encoded records placed in the - octet-aligned branch of the EXTERNAL CHOICE. - The ASN-module will not automatically decode - these records. To help you decode the records in the application, the - function - - - - Z_ext_typeent *z_ext_gettypebyref(const oid *oid); - - - - Can be used to retrieve information about the known, external data - types. The function return a pointer to a static area, or NULL, if no - match for the given direct reference is found. The - Z_ext_typeent - is defined as: - - - -typedef struct Z_ext_typeent -{ - int oid[OID_SIZE]; /* the direct-reference OID. */ - int what; /* discriminator value for the external CHOICE */ - Odr_fun fun; /* decoder function */ -} Z_ext_typeent; - - - - The what member contains the - Z_External union discriminator value for the - given type: For the SUTRS record syntax, the value would be - Z_External_sutrs. - The fun member contains a pointer to the - function which encodes/decodes the given type. Again, for the SUTRS - record syntax, the value of fun would be - z_SUTRS (a function pointer). - - - - If you receive an EXTERNAL which contains an octet-string value that - you suspect of being an ASN.1-structured data value, you can use - z_ext_gettypebyref to look for the provided - direct-reference. - If the return value is different from NULL, you can use the provided - function to decode the BER string (see - ). - - - - If you want to send EXTERNALs containing - ASN.1-structured values in the occtet-aligned branch of the CHOICE, this - is possible too. However, on the encoding phase, it requires a somewhat - involved juggling around of the various buffers involved. - - - If you need to add new, externally defined data types, you must update - the struct above, in the source file prt-ext.h, as - well as the encoder/decoder in the file prt-ext.c. - When changing the latter, remember to update both the - arm arrary and the list - type_table, which drives the CHOICE biasing that - is necessary to tell the different, structured types apart - on decoding. - - - - - Eventually, the EXTERNAL processing will most likely - automatically insert the correct OIDs or indirect-refs. First, - however, we need to determine how application-context management - (specifically the presentation-context-list) should fit into the - various modules. - - - - - PDU Contents Table - - - We include, for reference, a listing of the fields of each top-level - PDU, as well as their default settings. - - - - Default settings for PDU Initialize Request - - - - - - - Field - Type - Default Value - - - - - referenceIdZ_ReferenceIdNULL - - - protocolVersionOdr_bitmaskEmpty bitmask - - - optionsOdr_bitmaskEmpty bitmask - - - preferredMessageSizeint30*1024 - - - maximumRecordSizeint30*1024 - - - idAuthenticationZ_IdAuthenticationNULL - - - implementationIdchar*"81" - - - implementationNamechar*"YAZ" - - - implementationVersionchar*YAZ_VERSION - - - userInformationFieldZ_UserInformationNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for PDU Initialize - Response - - - - - - - Field - Type - Default Value - - - - - referenceIdZ_ReferenceIdNULL - - - protocolVersionOdr_bitmaskEmpty bitmask - - - optionsOdr_bitmaskEmpty bitmask - - - preferredMessageSizeint30*1024 - - - maximumRecordSizeint30*1024 - - - resultbool_tTRUE - - - implementationIdchar*"id)" - - - implementationNamechar*"YAZ" - - - implementationVersionchar*YAZ_VERSION - - - userInformationFieldZ_UserInformationNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for PDU Search Request - - - - - - - Field - Type - Default Value - - - - - referenceIdZ_ReferenceIdNULL - - - smallSetUpperBoundint0 - - - largeSetLowerBoundint1 - - - mediumSetPresentNumberint0 - - - replaceIndicatorbool_tTRUE - - - resultSetNamechar *"default" - - - num_databaseNamesint0 - - - databaseNameschar **NULL - - - smallSetElementSetNamesZ_ElementSetNames - NULL - - - mediumSetElementSetNamesZ_ElementSetNames - NULL - - - preferredRecordSyntaxOdr_oidNULL - - - queryZ_QueryNULL - - - additionalSearchInfoZ_OtherInformation - NULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for PDU Search Response - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - resultCountint0 - - - numberOfRecordsReturnedint0 - - - nextResultSetPositionint0 - - - searchStatusbool_tTRUE - - - resultSetStatusintNULL - - - presentStatusintNULL - - - recordsZ_RecordsNULL - - - additionalSearchInfo - Z_OtherInformationNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for PDU Present Request - - - - - - - Field - Type - Default Value - - - - - referenceIdZ_ReferenceIdNULL - - - resultSetIdchar*"default" - - - resultSetStartPointint1 - - - numberOfRecordsRequestedint10 - - - num_rangesint0 - - - additionalRangesZ_RangeNULL - - - recordCompositionZ_RecordCompositionNULL - - - preferredRecordSyntaxOdr_oidNULL - - - maxSegmentCountintNULL - - - maxRecordSizeintNULL - - - maxSegmentSizeintNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for PDU Present Response - - - - - - - Field - Type - Default Value - - - - - referenceIdZ_ReferenceIdNULL - - - numberOfRecordsReturnedint0 - - - nextResultSetPositionint0 - - - presentStatusintZ_PresentStatus_success - - - recordsZ_RecordsNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Delete Result Set Request - - - - - - - - Field - Type - Default Value - - - - referenceId - Z_ReferenceIdNULL - - - deleteFunctionintZ_DeleteResultSetRequest_list - - - num_idsint0 - - - resultSetListchar**NULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Delete Result Set Response - - - - - - - - Field - Type - Default Value - - - - - referenceIdZ_ReferenceIdNULL - - - deleteOperationStatusint - Z_DeleteStatus_success - - num_statusesint0 - - - deleteListStatusesZ_ListStatus**NULL - - - numberNotDeletedintNULL - - - num_bulkStatusesint0 - - - bulkStatusesZ_ListStatusNUL - L - - deleteMessagechar*NULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Scan Request - - - - - - - - Field - Type - Default Value - - - - - referenceIdZ_ReferenceIdNULL - - - num_databaseNamesint0 - - - databaseNameschar**NULL - - - attributeSetOdr_oidNULL - - - termListAndStartPointZ_AttributesPlus... - NULL - - stepSizeintNULL - - - numberOfTermsRequestedint20 - - - preferredPositionInResponseintNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Scan Response - - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - stepSizeintNULL - - - scanStatusintZ_Scan_success - - - numberOfEntriesReturnedint0 - - - positionOfTermintNULL - - - entriesZ_ListEntrisNULL - - - attributeSetOdr_oidNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Trigger Resource Control Request - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - requestedActionint - Z_TriggerResourceCtrl_resou.. - - - prefResourceReportFormatOdr_oidNULL - - - resultSetWantedbool_tNULL - - - otherInfoZ_OtherInformationNULL - - - - -
    - - - Default settings for Resource Control Request - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - suspendedFlagbool_tNULL - - - resourceReportZ_ExternalNULL - - - partialResultsAvailableintNULL - - - responseRequiredbool_tFALSE - - - triggeredRequestFlagbool_tNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Resource Control Response - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - continueFlagbool_tTRUE - - - resultSetWantedbool_tNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Access Control Request - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - whichenumZ_AccessRequest_simpleForm; - - - uunionNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Access Control Response - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - whichenumZ_AccessResponse_simpleForm - - - uunionNULL - - - diagnosticZ_DiagRecNULL - - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Segment - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - numberOfRecordsReturnedintvalue=0 - - - num_segmentRecordsint0 - - - segmentRecordsZ_NamePlusRecordNULL - - otherInfoZ_OtherInformationNULL - - - -
    - - - Default settings for Close - - - - - - - Field - Type - Default Value - - - - - - referenceIdZ_ReferenceIdNULL - - - closeReasonintZ_Close_finished - - - diagnosticInformationchar*NULL - - - resourceReportFormatOdr_oidNULL - - - resourceFormatZ_ExternalNULL - - - otherInfoZ_OtherInformationNULL - - - - -
    - -
    -
    - - diff --git a/dependencies/yaz_3.0.14/doc/bookinfo.xml b/dependencies/yaz_3.0.14/doc/bookinfo.xml deleted file mode 100644 index 8f34126..0000000 --- a/dependencies/yaz_3.0.14/doc/bookinfo.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - YAZ User's Guide and Reference - - SebastianHammer - AdamDickmeiss - MikeTaylor - HeikkiLevanto - - &version; - - ©right-year; - Index Data - - - This document is the programmer's guide and reference to the &yaz; - package version &version;. &yaz; is a compact toolkit that provides - access to the Z39.50 and SRW/SRU protocols, as well as a set of - higher-level tools for implementing the server and client - roles, respectively. - The documentation can be used on its own, or as a reference when - looking at the example applications provided with the package. - - - - - - - - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/client.commands.html b/dependencies/yaz_3.0.14/doc/client.commands.html deleted file mode 100644 index 3a99158..0000000 --- a/dependencies/yaz_3.0.14/doc/client.commands.html +++ /dev/null @@ -1,441 +0,0 @@ -3. Commands

    3. Commands

    - When the YAZ client has read options and connected to a target, if given, - it will display Z> and await your command. - Commands are executed by hitting the return key. - You can always issue the command ? to see the list - of available commands. -

    - The commands are (the letters in parenthesis are short - names for the commands): -

    - open zurl -

    Opens a connection to a server. The syntax for - zurl is the same as described - above for connecting from the command line. -

    - Syntax: -

    - [(tcp|ssl|unix|http)':']host - [:port][/base] -

    - quit -

    Quits YAZ client

    - find query

    Sends a Search Request using the query - given. By default the query is assumed to be PQF. See command - querytype. -

    - delete setname

    Deletes result set with name setname - on the server.

    - base base1 - base2 ... -

    Sets the name(s) of the database(s) to search. One or more - databases may be specified separated by blanks. This commands overrides - the database given in zurl. -

    - show - [start[+number]] -

    Fetches records by sending a Present Request from the start - position given by - start - a number of records given by number. If - start is not given, then the client - will fetch from position of the last retrieved record plus 1. If - number is not given, then one record will - be fetched at a time. -

    - scan term -

    Scans - database index for a term. The syntax resembles the syntax - for find. - If you want to scan for the word water you could - write -

    -    scan water
    -   

    - but if you want to scan only in, say the title field, you would write -

    -    scan @attr 1=4 water
    -   
    - setscan set term -
    Scans database index for a term within a result set. This - is similar to the scan command but has a result set as its first argument. -
    - scanpos pos -
    - Sets preferred position for scan. This value - is used in next scan. By default position is 1. -
    - scansize size -
    - Sets number of entries to be returned by scan. Default - number of entries is 20. -
    - scanstep step -
    - Set step-size for scan. This value is used in next scan - sent to the target. By default step-size is 0. -
    - sort sortspecs -

    Sorts a result set. The sort command takes a - sequence of space-separated sort specifications, with each sort - specification consisting of two space-separated words (so that the - whole specification list is made up of an even number of words). - The first word of each specification - holds a field (sort criterion) and the second holds flags. - If the sort criterion includes = it is assumed - that the SortKey is of type - sortAttributes using Bib-1: in this case - the integer before = is - the attribute type and the integer following = - is the attribute value. - If no = is in the criterion it is treated as a - sortfield of type InternationalString. - The flags word of each sort specification must consist of - s - for case sensitive or i for case insensitive, and - < for ascending order or > - for descending order. -

    - sort+ -

    Same as sort but stores the sorted - result set in a new result set. -

    - authentication openauth -

    Sets up a authentication string if a server requires - authentication (v2 OpenStyle). The authentication string is first - sent to the server when the - open command is - issued and the Z39.50 Initialize Request is sent, so this command - must be used before open in order to be effective. - A common convention for the authopen string - is that the username - and password is separated by a slash, e.g. - myusername/mysecret. -

    - sru method version -

    Selects SRU method and version. - Must be one of POST, - GET, SOAP (default). Version - should be either 1.1 or 1.2. Other versions are allowed - for testing - purposes (version negotiation with SRU server). -

    - list_all -

    This command displays status and values for many settings. -

    - lslb n -

    Sets the limit for when no records should be returned - together with the search result. - See the - - Z39.50 standard - - for more details. -

    - ssub n -

    Sets the limit for when all records should be returned with - the search result. - See the - - Z39.50 standard - for more details. -

    - mspn n -

    Sets the number of records should be returned if the - number of records in the result set is between the values of - lslb and ssub. - See the - - Z39.50 standard - - for more details. -

    - status -

    Displays the values of lslb, - ssub and mspn. -

    - setname -

    Switches named result sets on and off. Default is on. -

    - cancel -

    Sends a Trigger Resource Control Request to the target. -

    - format oid -

    Sets the preferred transfer syntax for retrieved records. - yaz-client supports all the record syntaxes that currently - are registered. See - - Z39.50 Standard - - for more details. Commonly used records syntaxes include usmarc, - sutrs, grs1 and xml. -

    - elements e -

    Sets the element set name for the records. Many targets support - element sets are B (for brief) and F (for full). -

    - close -

    Sends a Z39.50 Close APDU and closes connection with the peer -

    - querytype type -

    Sets the query type as used by command - find. - The following is supported: - prefix for - Prefix Query Notation (Type-1 Query); - ccl for CCL search (Type-2 Query), - cql for CQL (Type-104 search with CQL OID), - ccl2rpn for - CCL to RPN conversion (Type-1 Query). - cql2rpn for - CQL to RPN conversion (Type-1 Query). -

    - attributeset set -

    - Sets attribute set OID for prefix queries (RPN, Type-1). -

    - refid id -

    Sets reference ID for Z39.50 Request(s). -

    - itemorder - type no -

    Sends an Item Order Request using the ILL External. - type is either 1 or 2 which corresponds to - ILL-Profile 1 and 2 respectively. The no - is the Result Set position of the record to be ordered. -

    - update - action - recid - doc -

    Sends Item Update Request. The action - argument must be the action type: one of insert, - replace, delete and - update. The second argument, - recid, is the - record identifier (any string). Third argument which is optional is - the record document for the request. If doc is a quoted string - (double quotes) the string content is used verbatim. If doc is not - a quoted string, it is assumed to be a filename which is read, then - sent as the docuemnt content. If doc is omitted, the last received - record (as parf of present response or piggybacked search response) - is used for the update. -

    - source - filename -

    Executes list of commands from - file filename, just like source on - most UNIX shells. A single dot (.) can be used - as an alternative. -

    - ! - args -

    Executes command args in subshell - using the system call. -

    - push_command - command -

    The push_command takes another command as its argument. - That command is then added to the history information (so - you can retrieve it later). The command itself is not - executed. This command only works if you have GNU readline/history - enabled. -

    - set_apdufile - filename -

    Sets that APDU should be logged to file - filename. Another way to achieve - APDU log is by using command-line option -a. -

    - set_auto_reconnect - flag -

    Specifies whether YAZ client automatically reconnect if - target closes connection (Z39.50 only). -

    - flag must be either - on or off. -

    - set_auto_wait - flag -

    Specifies whether YAZ client should wait for - response protocol packages after a request. - By default YAZ client waits (on) for response packages immediately - after a command (find, show) has been issued. If off - is used, YAZ client does not attempt to receive packages automatically. - These will have to be manually received when command - - wait_response - is used. -

    - flag must be either - on or off. -

    - set_marcdump - filename -

    Specifies that all retrieved records should be appended to - file filename. This command does the - thing as option -m. -

    - schema - schemaid -

    Specifies schema for retrieval. - Schema may be specified as an OID for Z39.50. - For SRU, schema is a simple string URI. -

    - charset - negotiationcharset - [displaycharset] - [[marccharset]] -

    Specifies character set (encoding) for Z39.50 - negotiation / SRU encoding and/or character set for output (terminal). -

    - negotiationcharset is the name - of the character set to be negotiated by the server. The special name - - for negotiationcharset - specifies no character set to be negotiated. -

    - If displaycharset is given, it specifies name - of the character set of the output (on the terminal on which - YAZ client is running). To disable conversion of characters - to the output encoding, the special name - (dash) - can be used. - If the special name auto is given, YAZ client will - convert strings to the encoding of the - terminal as returned by nl_langinfo call. -

    - If marcharset is given, it specifies name - of the character set of retrieved MARC records from server. See - also marcharset command. -

    Note

    - Since character set negotation takes effect in the Z39.50 - Initialize Request you should issue this command before - command open - is used. -

    Note

    - MARC records are not covered by Z39.50 character set negotiation, - so that's why there is a separate character that must be known - in order to do meaningful converson(s). -

    - negcharset - charset -

    Specifies character set for negotiation (Z39.50). The - argument is the same as second argument for command - charset. -

    - displaycharset - charset -

    Specifies character set for output (display). The - argument is the same as second argument for command - charset. -

    - marccharset - charset -

    Specifies character set for retrieved MARC records so - that YAZ client can display them in a character suitable - for your display. See charset command. - If auto is given, YAZ will assume - that MARC21/USMARC is using MARC8/UTF8 and ISO-8859-1 - for all other MARC variants. The charset argument is the - same as third argument for command - charset. -

    - querycharset - charset -

    Specifies character set for query terms for Z39.50 RPN - queries and Z39.50 Scan Requests (termListAndStartPoint). - This is a pure client-side conversion which converts from - displayCharset to queryCharset. -

    - set_cclfile - filename -

    Specifies that CCL fields should be read from file - file filename. This command does the - thing as option -c. -

    - set_cqlfile - filename -

    Specifies that CQL fields should be read from file - file filename. This command does the - thing as option -q. -

    - register_oid - name - class - OID -

    This command allows you to register your own object - identifier - so that instead of entering a long dot-notation - you can use a short name instead. - The name is your - name for the OID, class is the - class, and OID is the raw OID in - dot notation. Class is one appctx, - absyn, attet, - transyn, diagset, - recsyn, resform, - accform, extserv, - userinfo, elemspec, - varset, schema, - tagset, general. - If you're in doubt use the general - class. -

    - register_tab - command - string -

    This command registers a TAB completion string for - the command given. -

    - sleep - seconds -

    This command makes YAZ client sleep (be idle) for - the number of seconds given. -

    - wait_response - [ number] -

    This command makes YAZ client wait for a number of - response packages from target. If number is - omitted, 1 is assumed. -

    This command is rarely used and is only useful if command - - set_auto_wait - is set to off. -

    - xmles - OID - doc -

    Sends XML Extended Services request using the OID and doc given. -

    - zversion - ver -

    This command sets Z39.50 version for negotiation. - Should be used before - open. - By default 3 (version 3) is used. -

    - options - op1 op2.. -

    This command sets Z39.50 options for negotiation. - Should be used before - open. -

    - The following options are supported: - search, - present, - delSet, - resourceReport, - triggerResourceCtrl, - resourceCtrl, - accessCtrl, - scan, - sort, - extendedServices, - level_1Segmentation, - level_2Segmentation, - concurrentOperations, - namedResultSets, - encapsulation, - resultCount, - negotiationModel, - duplicationDetection, - queryType104, - pQESCorrection, - stringSchema. -

    diff --git a/dependencies/yaz_3.0.14/doc/client.html b/dependencies/yaz_3.0.14/doc/client.html deleted file mode 100644 index 8ade7e1..0000000 --- a/dependencies/yaz_3.0.14/doc/client.html +++ /dev/null @@ -1,10 +0,0 @@ -Chapter 5. The YAZ client

    Chapter 5. The YAZ client

    1. Introduction

    - yaz-client is a line-mode Z39.50/SRU client. It supports a fair amount - of the functionality of the Z39.50v3 standard. - Its primary purpose is to exercise the package, and verify that - the protocol works OK. - For the same reason some commands offers more functionality than others. - Commands that exercises common Z39.50 services such as search and present - have more features than less common supported services, such as Extended - Services (ItemOrder, ItemUpdate,..). -

    diff --git a/dependencies/yaz_3.0.14/doc/client.invoking.html b/dependencies/yaz_3.0.14/doc/client.invoking.html deleted file mode 100644 index 4feb5b0..0000000 --- a/dependencies/yaz_3.0.14/doc/client.invoking.html +++ /dev/null @@ -1,90 +0,0 @@ -2. Invoking the YAZ client

    2. Invoking the YAZ client

    - It can be started by typing -

    yaz-client [-m fname] [-a fname] [-c fname] [-q fname] [-v level] [-p target] [-u auth] [-k size] [zurl]

    - in a UNIX shell / WIN32 console. The zurl, - specifies a Z39.50/SRU host and, if specified, the client first tries to - establish connection with the Z39.50/SRU target. -

    - Options are prefixed by - followed by a - particular letter. -

    - The following options are supported: -

    - -m fname -
    All retrieved transfer records are appended to file - fname. All records as returned by a - target(s) in Search Responses and Present Responses are appended - verbatim to the file. -
    - -a fname -
    Pretty-print log of APDUs sent and received is appended - to the file fname. - If fname is - (minus) - the APDU log is written to stderr. -
    - -c fname -
    Sets the filename for CCL fields to - fname. If this option is not given the - YAZ client reads CCL fields from file default.bib. -
    - -q fname -
    Sets the filename for CQL fields to - fname. If this option is not given the - YAZ client reads CQL fields from file - /usr/local/share/yaz/etc/pqf.properties. -
    - -v level -
    Sets the LOG level to level. - Level is a sequence of tokens separated by comma. Each token - is a integer or a named LOG item - one of - fatal, - debug, - warn, - log, - malloc, - all, - none. -
    - -p target -
    Specifies proxy address. When set YAZ client will - connect to a proxy on the address and port given. - The actual target will be specified as part of the InitRequest - to inform the proxy about actual target. -
    - -u auth -
    Specifies authentication. Usually the form - user/password - is used. This option does the same thing as the - auth command. -
    - -k size -
    Specifies the maximum messages size in kilobytes. - The default maximum message size for the YAZ client is 1024 - (1 MB). -

    - In order to connect to Index Data's test Z39.50 server on - bagel.indexdata.dk, port 210 and with the - database name marc, one could type -

    -     yaz-client bagel.indexdata.dk:210/marc
    -    

    -

    - The same server is also a SRU service. Connect to it via HTTP - as follows: -

    -     yaz-client http://bagel.indexdata.dk:210/marc
    -    

    -

    - In order to enable APDU log and connect to localhost, port 210 (default) - and database Default (default) you'd write: -

    -     yaz-client -a - localhost
    -    

    -

    - The following command connects to a local server via UNIX - socket /tmp/yaz and sets maximum message size to - 5 MB. -

    -    yaz-client -k 5120 unix:/tmp/yaz
    -   

    -

    diff --git a/dependencies/yaz_3.0.14/doc/client.searching.html b/dependencies/yaz_3.0.14/doc/client.searching.html deleted file mode 100644 index 1546c05..0000000 --- a/dependencies/yaz_3.0.14/doc/client.searching.html +++ /dev/null @@ -1,32 +0,0 @@ -4. Searching

    4. Searching

    - The simplest example of a Prefix Query would be something like -

    -     f knuth
    -    

    - or -

    -     f "donald knuth"
    -    

    - In those queries no attributes was specified. - This leaves it up to the server what fields to search but - most servers will search in all fields. Some servers does not - support this feature though, and require that some attributes - are defined. To add one attribute you could do: -

    -     f @attr 1=4 computer
    -    

    - where we search in the title field, since the use(1) is title(4). - If we want to search in the author field and - in the title field, and in the title field using right truncation - it could look something like this: -

    -     f @and @attr 1=1003 knuth @attr 1=4 @attr 5=1 computer
    -    

    - Finally using a mix of Bib-1 and GILS attributes could look - something like this: -

    -     f @attrset Bib-1 @and @attr GILS 1=2008 Washington @attr 1=21 weather
    -    

    - For the full specification of the Prefix Query see the section - Prefix Query Format. -

    diff --git a/dependencies/yaz_3.0.14/doc/client.xml b/dependencies/yaz_3.0.14/doc/client.xml deleted file mode 100644 index ea0c530..0000000 --- a/dependencies/yaz_3.0.14/doc/client.xml +++ /dev/null @@ -1,220 +0,0 @@ - - The YAZ client - Introduction - - yaz-client is a line-mode Z39.50/SRU client. It supports a fair amount - of the functionality of the Z39.50v3 standard. - Its primary purpose is to exercise the package, and verify that - the protocol works OK. - For the same reason some commands offers more functionality than others. - Commands that exercises common Z39.50 services such as search and present - have more features than less common supported services, such as Extended - Services (ItemOrder, ItemUpdate,..). - - - Invoking the YAZ client - - It can be started by typing - - - yaz-client - -m fname - -a fname - -c fname - -q fname - -v level - -p target - -u auth - -k size - zurl - - - - in a UNIX shell / WIN32 console. The zurl, - specifies a Z39.50/SRU host and, if specified, the client first tries to - establish connection with the Z39.50/SRU target. - - - Options are prefixed by - followed by a - particular letter. - - - The following options are supported: - - - - -m fname - - All retrieved transfer records are appended to file - fname. All records as returned by a - target(s) in Search Responses and Present Responses are appended - verbatim to the file. - - - - -a fname - - Pretty-print log of APDUs sent and received is appended - to the file fname. - If fname is - (minus) - the APDU log is written to stderr. - - - - -c fname - - Sets the filename for CCL fields to - fname. If this option is not given the - YAZ client reads CCL fields from file default.bib. - - - - -q fname - - Sets the filename for CQL fields to - fname. If this option is not given the - YAZ client reads CQL fields from file - /usr/local/share/yaz/etc/pqf.properties. - - - - -v level - - Sets the LOG level to level. - Level is a sequence of tokens separated by comma. Each token - is a integer or a named LOG item - one of - fatal, - debug, - warn, - log, - malloc, - all, - none. - - - - -p target - - Specifies proxy address. When set YAZ client will - connect to a proxy on the address and port given. - The actual target will be specified as part of the InitRequest - to inform the proxy about actual target. - - - - -u auth - - Specifies authentication. Usually the form - user/password - is used. This option does the same thing as the - auth command. - - - - - -k size - - Specifies the maximum messages size in kilobytes. - The default maximum message size for the YAZ client is 1024 - (1 MB). - - - - - - In order to connect to Index Data's test Z39.50 server on - bagel.indexdata.dk, port 210 and with the - database name marc, one could type - - yaz-client bagel.indexdata.dk:210/marc - - - - The same server is also a SRU service. Connect to it via HTTP - as follows: - - yaz-client http://bagel.indexdata.dk:210/marc - - - - In order to enable APDU log and connect to localhost, port 210 (default) - and database Default (default) you'd write: - - yaz-client -a - localhost - - - - The following command connects to a local server via UNIX - socket /tmp/yaz and sets maximum message size to - 5 MB. - - yaz-client -k 5120 unix:/tmp/yaz - - - - Commands - - When the YAZ client has read options and connected to a target, if given, - it will display Z> and await your command. - Commands are executed by hitting the return key. - You can always issue the command ? to see the list - of available commands. - - - The commands are (the letters in parenthesis are short - names for the commands): - - - &yaz-client-commands; - - - Searching - - The simplest example of a Prefix Query would be something like - - f knuth - - or - - f "donald knuth" - - In those queries no attributes was specified. - This leaves it up to the server what fields to search but - most servers will search in all fields. Some servers does not - support this feature though, and require that some attributes - are defined. To add one attribute you could do: - - f @attr 1=4 computer - - where we search in the title field, since the use(1) is title(4). - If we want to search in the author field and - in the title field, and in the title field using right truncation - it could look something like this: - - f @and @attr 1=1003 knuth @attr 1=4 @attr 5=1 computer - - Finally using a mix of Bib-1 and GILS attributes could look - something like this: - - f @attrset Bib-1 @and @attr GILS 1=2008 Washington @attr 1=21 weather - - For the full specification of the Prefix Query see the section - Prefix Query Format. - - - - - diff --git a/dependencies/yaz_3.0.14/doc/common/common.ent b/dependencies/yaz_3.0.14/doc/common/common.ent deleted file mode 100644 index 15c522f..0000000 --- a/dependencies/yaz_3.0.14/doc/common/common.ent +++ /dev/null @@ -1,202 +0,0 @@ - - - - -Anders Sønderberg"> -Adam Dickmeiss"> -Heikki Levanto"> -Marc Cromme"> -Mike Taylor"> -Sebastian Hammer"> - - -Index Data ApS"> - - -Metaproxy"> -YAZ"> -YazPP"> -Yazproxy"> -Zebra"> -Zebra 1.3"> -Zebra 2.0"> - - -ANSI"> -API"> -APT"> -BIB-1"> -CQL"> -DOM"> -EXSLT"> -GET"> -GRS-1"> -IDXPATH"> -MARC"> -MARCXML"> -MARC21"> -OAI"> -PHP"> -POST"> -PQF"> -PQN"> -REST"> -RPN"> -SGML"> -SOAP"> -SRU"> -SRW"> -SUTRS"> -USMARC"> -XML"> -XPATH"> -XSLT"> -Z39.50"> -ZOOM"> -ZOOM.NET"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/common/id.htmlhelp.xsl b/dependencies/yaz_3.0.14/doc/common/id.htmlhelp.xsl deleted file mode 100644 index f5d4b7b..0000000 --- a/dependencies/yaz_3.0.14/doc/common/id.htmlhelp.xsl +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - -0 -1 -1 -3 -3 -1 - - - - diff --git a/dependencies/yaz_3.0.14/doc/common/id.man.xsl b/dependencies/yaz_3.0.14/doc/common/id.man.xsl deleted file mode 100644 index 6cea265..0000000 --- a/dependencies/yaz_3.0.14/doc/common/id.man.xsl +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/common/id.png b/dependencies/yaz_3.0.14/doc/common/id.png deleted file mode 100644 index 454a74679a129560fbc3bc4810dd3168b52a8a03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638 zcmV-s2ATPZP)HP_Nc400001VoOIv z0Eh)0NB{r;32;bRa{vGf5&!@T5&_cPe*6Fc00(qQO+^RN1px~v3R0t2!~g&Vj7da6 zRCt{2+Y5KwDhvSN)Fn=92MjiD9!>E7|CbXuj**a)rfau*S2$eyV0LSUGo0ZJXZQvzoY8YK6{L`5zOPFJ zkJZ#Tf82-9w9ev=6)8W9@Qjw%kIu0Fdque9#&#Gki=sH8W2~ZtZ5dV- z2q_FZYZ@|!hs%rr?dk%-oufrr7VeDVV11o(+=1Vlrr97E&cbBcz`(x42jKQ{b}b*{ z)~RihLvye;mVx_gBt5w#hRbW!c!YiF9r_?sLkzCf^upR(fzy^J2o zp|4ufI2SFIh~SEh*qdcJ)lhH2Hi4lpVeouIy6wVj0=qcx{E`t5%IFWk zOCx5FG01n1v4lT+2DVOSol57Df-E`)id7u4BMWWxTn>Pu<8HC(%Ek57ep`ZX}p)5o|3Ic zwB#!U)&z))~lhQi_1NjPLjyA5& z=U4JorpRGAY(5OqE&d8H?e2sI2;Duy`0l|ZEIR&{{4&5Y42N+39Q5|;hqK}$hsCft zT)3JRVVB^Sc*M}z@p$yz-h^q`oMk$z)7Km<{DgMw%jL0odQKyU<**6XwP}ZR*?S7p zv)UgwxIm9&UsE^(^b07*qoM6N<$f~3+X5&!@I diff --git a/dependencies/yaz_3.0.14/doc/common/id.tkl.xsl b/dependencies/yaz_3.0.14/doc/common/id.tkl.xsl deleted file mode 100644 index 5f9a89d..0000000 --- a/dependencies/yaz_3.0.14/doc/common/id.tkl.xsl +++ /dev/null @@ -1,47 +0,0 @@ - - - - - 1 - .tkl - 0 - - - - - - - - - <xsl:apply-templates select="." mode="object.title.markup"/> - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/common/ref2dbinc.xsl b/dependencies/yaz_3.0.14/doc/common/ref2dbinc.xsl deleted file mode 100644 index 2d683c0..0000000 --- a/dependencies/yaz_3.0.14/doc/common/ref2dbinc.xsl +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - Generated by stripref.xsl . Do not edit -
    - - <xsl:value-of select="refmeta/refentrytitle"/> - - -
    -
    - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - diff --git a/dependencies/yaz_3.0.14/doc/common/stripref.xsl b/dependencies/yaz_3.0.14/doc/common/stripref.xsl deleted file mode 100644 index 506ae36..0000000 --- a/dependencies/yaz_3.0.14/doc/common/stripref.xsl +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - Generated by stripref.xsl . Do not edit - - - - - diff --git a/dependencies/yaz_3.0.14/doc/common/style1.css b/dependencies/yaz_3.0.14/doc/common/style1.css deleted file mode 100644 index a343107..0000000 --- a/dependencies/yaz_3.0.14/doc/common/style1.css +++ /dev/null @@ -1,63 +0,0 @@ - -.table table { - border-collapse; - border: 1px solid black; - border-spacing: 0; - width: 94%; - margin-left: auto; - margin-right: 0; -} - -.author { - font-style: italic; -} - -.TITLEPAGE, .LOT, .TOC { - font-family: sans-serif; -} - -.TITLEPAGE .abstract { - margin: 0 150px 1em 0; - font-style: oblique; -} - -.TITLEPAGE .inlinemediaobject { - position: absolute; - top: 60px; - right: 0; - width: 140px; -} - -.table th { - padding: 3px 6px; - border: 1px solid black; -} -.table td { - text-align: left; - padding: 3px 6px; -} - -h1, h3, h4 { - font-family: sans-serif; -} - -h2 { - font-style: italic; - font-family: sans-serif; -} - -.figure b, .table b, .example b { - font-style: italic; -} - -.example , .figure { - margin-left: 3%; -} - -.screen, .synopsis, .programlisting { - margin-left: 6%; - padding: 4px; - border-style: solid; - border-width: 1px; - border-color: #bbbbbb; -} diff --git a/dependencies/yaz_3.0.14/doc/comstack.addresses.html b/dependencies/yaz_3.0.14/doc/comstack.addresses.html deleted file mode 100644 index b17664f..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.addresses.html +++ /dev/null @@ -1,50 +0,0 @@ -6. Addresses

    6. Addresses

    - The low-level format of the addresses are different depending on the - mode of communication you have chosen. A function is provided by each - of the lower layers to map a user-friendly string-form address to the - binary form required by the lower layers. -

    -    void *cs_straddr(COMSTACK handle, const char *str);
    -   

    - The format for TCP/IP and SSL addresses is: -

    -    <host> [ ':' <portnum> ]
    -   

    - The hostname can be either a domain name or an - IP address. The port number, if omitted, defaults to 210. -

    - For TCP/IP and SSL transport modes, the special hostname "@" - is mapped to any local address - (the manifest constant INADDR_ANY). - It is used to establish local listening endpoints in the server role. -

    - For UNIX sockets, the format of an address is the socket filename. -

    - When a connection has been established, you can use -

    -    char *cs_addrstr(COMSTACK h);
    -   

    - to retrieve the host name of the peer system. The function returns - a pointer to a static area, which is overwritten on the next call - to the function. -

    - A fairly recent addition to the COMSTACK module is the utility - function -

    -    COMSTACK cs_create_host (const char *str, int blocking, void **vp);
    -   

    - which is just a wrapper for cs_create and - cs_straddr. The str - is similar to that described for cs_straddr - but with a prefix denoting the COMSTACK type. Prefixes supported - are tcp:, unix: and - ssl: for TCP/IP, UNIX and SSL respectively. - If no prefix is given, then TCP/IP is used. - The blocking is passed to - function cs_create. The third parameter - vp is a pointer to COMSTACK stack type - specific values. - For SSL (ssl_type) vp is an already create - OpenSSL CTX. For TCP/IP and UNIX vp - is unused (can be set to NULL. -

    diff --git a/dependencies/yaz_3.0.14/doc/comstack.client.html b/dependencies/yaz_3.0.14/doc/comstack.client.html deleted file mode 100644 index fb94a21..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.client.html +++ /dev/null @@ -1,17 +0,0 @@ -4. Client Side

    4. Client Side

    -    int cs_connect(COMSTACK handle, void *address);
    -   

    - Initiate a connection with the target at address - (more on addresses below). The function will return 0 on success, and 1 if - the operation does not complete immediately (this will only - happen on a nonblocking endpoint). In this case, use - cs_rcvconnect to complete the operation, - when select(2) or poll(2) - reports input pending on the association. -

    -    int cs_rcvconnect(COMSTACK handle);
    -   

    - Complete a connect operation initiated by cs_connect(). - It will return 0 on success; 1 if the operation has not yet completed (in - this case, call the function again later); -1 if an error has occurred. -

    diff --git a/dependencies/yaz_3.0.14/doc/comstack.common.html b/dependencies/yaz_3.0.14/doc/comstack.common.html deleted file mode 100644 index 133f5cc..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.common.html +++ /dev/null @@ -1,135 +0,0 @@ -3. Common Functions

    3. Common Functions

    3.1. Managing Endpoints

    -     COMSTACK cs_create(CS_TYPE type, int blocking, int protocol);
    -    

    - Creates an instance of the protocol stack - a communications endpoint. - The type parameter determines the mode - of communication. At present the following values are supported: -

    tcpip_type

    TCP/IP (BER over TCP/IP or HTTP over TCP/IP) -

    ssl_type

    Secure Socket Layer (SSL). This COMSTACK - is experimental and is not fully implemented. If - HTTP is used, this effectively is HTTPS. -

    unix_type

    Unix socket (unix only). Local Transfer via - file socket. See unix(7). -

    - The cs_create function returns a null-pointer - if a system error occurs. - The blocking parameter should be one if - you wish the association to operate in blocking mode, zero otherwise. - The protocol field should be - PROTO_Z3950 or PROTO_HTTP. - Protocol PROTO_SR is no longer supported. -

    -     int cs_close(COMSTACK handle);
    -    

    - Closes the connection (as elegantly as the lower layers will permit), - and releases the resources pointed to by the - handle - parameter. The - handle - should not be referenced again after this call. -

    Note

    - We really need a soft disconnect, don't we? -

    3.2. Data Exchange

    -     int cs_put(COMSTACK handle, char *buf, int len);
    -    

    - Sends - buf - down the wire. In blocking mode, this function will return only when a - full buffer has been written, or an error has occurred. In nonblocking - mode, it's possible that the function will be unable to send the full - buffer at once, which will be indicated by a return value of 1. The - function will keep track of the number of octets already written; you - should call it repeatedly with the same values of buf - and len, until the buffer has been transmitted. - When a full buffer has been sent, the function will return 0 for - success. -1 indicates an error condition (see below). -

    -     int cs_get(COMSTACK handle, char **buf, int *size);
    -    

    - Receives a PDU or HTTP Response from the peer. Returns the number of - bytes read. - In nonblocking mode, it is possible that not all of the packet can be - read at once. In this case, the function returns 1. To simplify the - interface, the function is - responsible for managing the size of the buffer. It will be reallocated - if necessary to contain large packages, and will sometimes be moved - around internally by the subsystem when partial packages are read. Before - calling - cs_get - for the fist time, the buffer can be initialized to the null pointer, - and the length should also be set to 0 - cs_get will perform a - malloc(2) - on the buffer for you. When a full buffer has been read, the size of - the package is returned (which will always be greater than 1). -1 - indicates an error condition. -

    - See also the cs_more() function below. -

    -     int cs_more(COMSTACK handle);
    -    

    - The cs_more() function should be used in conjunction - with cs_get and - select(2). - The cs_get() function will sometimes - (notably in the TCP/IP mode) read more than a single protocol package - off the network. When this happens, the extra package is stored - by the subsystem. After calling cs_get(), and before - waiting for more input, You should always call - cs_more() - to check if there's a full protocol package already read. If - cs_more() - returns 1, - cs_get() - can be used to immediately fetch the new package. For the - mOSI - subsystem, the function should always return 0, but if you want your - stuff to be protocol independent, you should use it. -

    Note

    - The cs_more() - function is required because the RFC1729-method - does not provide a way of separating individual PDUs, short of - partially decoding the BER. Some other implementations will carefully - nibble at the packet by calling - read(2) - several times. This was felt to be too inefficient (or at least - clumsy) - hence the call for this extra function. -

    -     int cs_look(COMSTACK handle);
    -    

    - This function is useful when you're operating in nonblocking - mode. Call it when - select(2) - tells you there's something happening on the line. It returns one of - the following values: -

    CS_NONE

    - No event is pending. The data found on the line was not a - complete package. -

    CS_CONNECT

    - A response to your connect request has been received. Call - cs_rcvconnect - to process the event and to finalize the connection establishment. -

    CS_DISCON

    - The other side has closed the connection (or maybe sent a disconnect - request - but do we care? Maybe later). Call - cs_close to close your end of the association - as well. -

    CS_LISTEN

    - A connect request has been received. - Call cs_listen to process the event. -

    CS_DATA

    - There's data to be found on the line. - Call cs_get to get it. -

    Note

    - You should be aware that even if - cs_look() - tells you that there's an event event pending, the corresponding - function may still return and tell you there was nothing to be found. - This means that only part of a package was available for reading. The - same event will show up again, when more data has arrived. -

    -     int cs_fileno(COMSTACK h);
    -    

    - Returns the file descriptor of the association. Use this when - file-level operations on the endpoint are required - (select(2) operations, specifically). -

    diff --git a/dependencies/yaz_3.0.14/doc/comstack.diagnostics.html b/dependencies/yaz_3.0.14/doc/comstack.diagnostics.html deleted file mode 100644 index a72e7d6..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.diagnostics.html +++ /dev/null @@ -1,28 +0,0 @@ -8. Diagnostics

    8. Diagnostics

    - All functions return -1 if an error occurs. Typically, the functions - will return 0 on success, but the data exchange functions - (cs_get, cs_put, - cs_more) follow special rules. Consult their - descriptions. -

    - When a function (including the data exchange functions) reports an - error condition, use the function - cs_errno() to determine the cause of the - problem. The function -

    -    void cs_perror(COMSTACK handle char *message);
    -   

    - works like perror(2) and prints the - message argument, along with a system message, to - stderr. Use the character array -

    -    extern const char *cs_errlist[];
    -   

    - to get hold of the message, if you want to process it differently. - The function -

    -    const char *cs_stackerr(COMSTACK handle);
    -   

    - Returns an error message from the lower layer, if one has been - provided. -

    diff --git a/dependencies/yaz_3.0.14/doc/comstack.html b/dependencies/yaz_3.0.14/doc/comstack.html deleted file mode 100644 index 139a028..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.html +++ /dev/null @@ -1,50 +0,0 @@ -Chapter 11. The COMSTACK Module

    Chapter 11. The COMSTACK Module

    1. Synopsis (blocking mode)

    -    
    -COMSTACK stack;
    -char *buf = 0;
    -int size = 0, length_incoming;
    -char *protocol_package; 
    -int protocol_package_length;
    -char server_address_str[] = "myserver.com:2100";
    -void *server_address_ip;
    -int status;
    -
    -stack = cs_create(tcpip_type, 1, PROTO_Z3950);
    -if (!stack) {
    -    perror("cs_create");  /* use perror() here since we have no stack yet */
    -    exit(1);
    -}
    -
    -server_address_ip = cs_addrstr (stack, server_address_str);
    -
    -status = cs_connect(stack, server_address_ip);
    -if (status != 0) {
    -    cs_perror(stack, "cs_connect");
    -    exit(1);
    -}
    -
    -status = cs_put(stack, protocol_package, protocol_package_length);
    -if (status) {
    -    cs_perror(stack, "cs_put");
    -    exit(1);
    -}
    -
    -/* Now get a response */
    -
    -length_incoming = cs_get(stack, &buf, &size);
    -if (!length_incoming) {
    -    fprintf(stderr, "Connection closed\n");
    -    exit(1);
    -} else if (length_incoming < 0) {
    -    cs_perror(stack, "cs_get");
    -    exit(1);
    -}
    -
    -/* Do stuff with buf here */
    -
    -/* clean up */
    -cs_close(stack);
    -if (buf)
    -    free(buf);
    -    
    -   
    diff --git a/dependencies/yaz_3.0.14/doc/comstack.introduction.html b/dependencies/yaz_3.0.14/doc/comstack.introduction.html deleted file mode 100644 index 2ea2b91..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.introduction.html +++ /dev/null @@ -1,32 +0,0 @@ -2. Introduction

    2. Introduction

    - The COMSTACK - subsystem provides a transparent interface to different types of transport - stacks for the exchange of BER-encoded data and HTTP packets. - At present, the RFC1729 method (BER over TCP/IP), local UNIX socket and an - experimental SSL stack are supported, but others may be added in time. - The philosophy of the - module is to provide a simple interface by hiding unused options and - facilities of the underlying libraries. This is always done at the risk - of losing generality, and it may prove that the interface will need - extension later on. -

    Note

    - There hasn't been interest in the XTImOSI stack for some years. - Therefore, it is no longer supported. -

    - The interface is implemented in such a fashion that only the - sub-layers constructed to the transport methods that you wish to - use in your application are linked in. -

    - You will note that even though simplicity was a goal in the design, - the interface is still orders of magnitudes more complex than the - transport systems found in many other packages. One reason is that - the interface needs to support the somewhat different requirements of - the different lower-layer communications stacks; another important - reason is that the interface seeks to provide a more or less - industrial-strength approach to asynchronous event-handling. - When no function is allowed to block, things get more complex - - particularly on the server side. - We urge you to have a look at the demonstration client and server - provided with the package. They are meant to be easily readable and - instructive, while still being at least moderately useful. -

    diff --git a/dependencies/yaz_3.0.14/doc/comstack.server.html b/dependencies/yaz_3.0.14/doc/comstack.server.html deleted file mode 100644 index 2885f5f..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.server.html +++ /dev/null @@ -1,43 +0,0 @@ -5. Server Side

    5. Server Side

    - To establish a server under the inetd - server, you can use -

    -    COMSTACK cs_createbysocket(int socket, CS_TYPE type, int blocking,
    -                               int protocol);
    -   

    - The socket parameter is an established socket (when - your application is invoked from inetd, the - socket will typically be 0. - The following parameters are identical to the ones for - cs_create. -

    -    int cs_bind(COMSTACK handle, void *address, int mode)
    -   

    - Binds a local address to the endpoint. Read about addresses below. The - mode parameter should be either - CS_CLIENT or CS_SERVER. -

    -    int cs_listen(COMSTACK handle, char *addr, int *addrlen);
    -   

    - Call this to process incoming events on an endpoint that has been - bound in listening mode. It will return 0 to indicate that the connect - request has been received, 1 to signal a partial reception, and -1 to - indicate an error condition. -

    -    COMSTACK cs_accept(COMSTACK handle);
    -   

    - This finalizes the server-side association establishment, after - cs_listen has completed successfully. It returns a new connection - endpoint, which represents the new association. The application will - typically wish to fork off a process to handle the association at this - point, and continue listen for new connections on the old - handle. -

    - You can use the call -

    -    char *cs_addrstr(COMSTACK);
    -   

    - on an established connection to retrieve the host-name of the remote host. -

    Note

    You may need to use this function with some care if your - name server service is slow or unreliable -

    diff --git a/dependencies/yaz_3.0.14/doc/comstack.ssl.html b/dependencies/yaz_3.0.14/doc/comstack.ssl.html deleted file mode 100644 index 4b2b3b7..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.ssl.html +++ /dev/null @@ -1,30 +0,0 @@ -7. SSL

    7. SSL

    -

    -     void *cs_get_ssl(COMSTACK cs);
    -    

    - Returns the SSL handle, SSL * for comstack. If comstack - is not of type SSL, NULL is returned. -

    -

    -     int cs_set_ssl_ctx(COMSTACK cs, void *ctx);
    -    

    - Sets SSL context for comstack. The parameter is expected to be of type - SSL_CTX *. This function should be called just - after comstack has been created (before connect, bind, etc). - This function returns 1 for success; 0 for failure. -

    -

    -     int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname);
    -    

    - Sets SSL certificate for comstack as a PEM file. This function - returns 1 for success; 0 for failure. -

    -

    -     int cs_get_ssl_peer_certificate_x509(COMSTACK cs, char **buf, int *len);
    -    

    - This function returns the peer certificate. If successful, - *buf and *len holds - X509 buffer and length respectively. Buffer should be freed - with xfree. This function returns 1 for success; - 0 for failure. -

    diff --git a/dependencies/yaz_3.0.14/doc/comstack.summary.html b/dependencies/yaz_3.0.14/doc/comstack.summary.html deleted file mode 100644 index 0ac8624..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.summary.html +++ /dev/null @@ -1,46 +0,0 @@ -9. Summary and Synopsis

    9. Summary and Synopsis

    -    #include <yaz/comstack.h>
    -    
    -    #include <yaz/tcpip.h>  /* this is for TCP/IP and SSL support */
    -    #include <yaz/unix.h>   /* this is for UNIX sockeL support */
    -    
    -     
    -    COMSTACK cs_create(CS_TYPE type, int blocking, int protocol);
    -     
    -    COMSTACK cs_createbysocket(int s, CS_TYPE type, int blocking,
    -                               int protocol);
    -    COMSTACK cs_create_host (const char *str, int blocking,
    -                             void **vp);
    -     
    -    int cs_bind(COMSTACK handle, int mode);
    -     
    -    int cs_connect(COMSTACK handle, void *address);
    -     
    -    int cs_rcvconnect(COMSTACK handle);
    -     
    -    int cs_listen(COMSTACK handle);
    -
    -    COMSTACK cs_accept(COMSTACK handle);
    -
    -    int cs_put(COMSTACK handle, char *buf, int len);
    -
    -    int cs_get(COMSTACK handle, char **buf, int *size);
    -
    -    int cs_more(COMSTACK handle);
    -
    -    int cs_close(COMSTACK handle);
    -
    -    int cs_look(COMSTACK handle);
    -
    -    void *cs_straddr(COMSTACK handle, const char *str);
    -
    -    char *cs_addrstr(COMSTACK h);
    -
    -    extern int cs_errno;
    -
    -    void cs_perror(COMSTACK handle char *message);
    -
    -    const char *cs_stackerr(COMSTACK handle);
    -
    -    extern const char *cs_errlist[];
    -   
    diff --git a/dependencies/yaz_3.0.14/doc/comstack.xml b/dependencies/yaz_3.0.14/doc/comstack.xml deleted file mode 100644 index 66ca957..0000000 --- a/dependencies/yaz_3.0.14/doc/comstack.xml +++ /dev/null @@ -1,645 +0,0 @@ - - The COMSTACK Module - - Synopsis (blocking mode) - - - -COMSTACK stack; -char *buf = 0; -int size = 0, length_incoming; -char *protocol_package; -int protocol_package_length; -char server_address_str[] = "myserver.com:2100"; -void *server_address_ip; -int status; - -stack = cs_create(tcpip_type, 1, PROTO_Z3950); -if (!stack) { - perror("cs_create"); /* use perror() here since we have no stack yet */ - exit(1); -} - -server_address_ip = cs_addrstr (stack, server_address_str); - -status = cs_connect(stack, server_address_ip); -if (status != 0) { - cs_perror(stack, "cs_connect"); - exit(1); -} - -status = cs_put(stack, protocol_package, protocol_package_length); -if (status) { - cs_perror(stack, "cs_put"); - exit(1); -} - -/* Now get a response */ - -length_incoming = cs_get(stack, &buf, &size); -if (!length_incoming) { - fprintf(stderr, "Connection closed\n"); - exit(1); -} else if (length_incoming < 0) { - cs_perror(stack, "cs_get"); - exit(1); -} - -/* Do stuff with buf here */ - -/* clean up */ -cs_close(stack); -if (buf) - free(buf); - - - - - Introduction - - - The &comstack; - subsystem provides a transparent interface to different types of transport - stacks for the exchange of BER-encoded data and HTTP packets. - At present, the RFC1729 method (BER over TCP/IP), local UNIX socket and an - experimental SSL stack are supported, but others may be added in time. - The philosophy of the - module is to provide a simple interface by hiding unused options and - facilities of the underlying libraries. This is always done at the risk - of losing generality, and it may prove that the interface will need - extension later on. - - - - - There hasn't been interest in the XTImOSI stack for some years. - Therefore, it is no longer supported. - - - - - The interface is implemented in such a fashion that only the - sub-layers constructed to the transport methods that you wish to - use in your application are linked in. - - - - You will note that even though simplicity was a goal in the design, - the interface is still orders of magnitudes more complex than the - transport systems found in many other packages. One reason is that - the interface needs to support the somewhat different requirements of - the different lower-layer communications stacks; another important - reason is that the interface seeks to provide a more or less - industrial-strength approach to asynchronous event-handling. - When no function is allowed to block, things get more complex - - particularly on the server side. - We urge you to have a look at the demonstration client and server - provided with the package. They are meant to be easily readable and - instructive, while still being at least moderately useful. - - - - Common Functions - - Managing Endpoints - - - COMSTACK cs_create(CS_TYPE type, int blocking, int protocol); - - - - Creates an instance of the protocol stack - a communications endpoint. - The type parameter determines the mode - of communication. At present the following values are supported: - - - - tcpip_type - TCP/IP (BER over TCP/IP or HTTP over TCP/IP) - - - ssl_type - Secure Socket Layer (SSL). This COMSTACK - is experimental and is not fully implemented. If - HTTP is used, this effectively is HTTPS. - - - unix_type - Unix socket (unix only). Local Transfer via - file socket. See unix - 7. - - - - - - The cs_create function returns a null-pointer - if a system error occurs. - The blocking parameter should be one if - you wish the association to operate in blocking mode, zero otherwise. - The protocol field should be - PROTO_Z3950 or PROTO_HTTP. - Protocol PROTO_SR is no longer supported. - - - - int cs_close(COMSTACK handle); - - - - Closes the connection (as elegantly as the lower layers will permit), - and releases the resources pointed to by the - handle - parameter. The - handle - should not be referenced again after this call. - - - - - We really need a soft disconnect, don't we? - - - - - Data Exchange - - - int cs_put(COMSTACK handle, char *buf, int len); - - - - Sends - buf - down the wire. In blocking mode, this function will return only when a - full buffer has been written, or an error has occurred. In nonblocking - mode, it's possible that the function will be unable to send the full - buffer at once, which will be indicated by a return value of 1. The - function will keep track of the number of octets already written; you - should call it repeatedly with the same values of buf - and len, until the buffer has been transmitted. - When a full buffer has been sent, the function will return 0 for - success. -1 indicates an error condition (see below). - - - - int cs_get(COMSTACK handle, char **buf, int *size); - - - - Receives a PDU or HTTP Response from the peer. Returns the number of - bytes read. - In nonblocking mode, it is possible that not all of the packet can be - read at once. In this case, the function returns 1. To simplify the - interface, the function is - responsible for managing the size of the buffer. It will be reallocated - if necessary to contain large packages, and will sometimes be moved - around internally by the subsystem when partial packages are read. Before - calling - cs_get - for the fist time, the buffer can be initialized to the null pointer, - and the length should also be set to 0 - cs_get will perform a - malloc(2) - on the buffer for you. When a full buffer has been read, the size of - the package is returned (which will always be greater than 1). -1 - indicates an error condition. - - - - See also the cs_more() function below. - - - - int cs_more(COMSTACK handle); - - - - The cs_more() function should be used in conjunction - with cs_get and - select(2). - The cs_get() function will sometimes - (notably in the TCP/IP mode) read more than a single protocol package - off the network. When this happens, the extra package is stored - by the subsystem. After calling cs_get(), and before - waiting for more input, You should always call - cs_more() - to check if there's a full protocol package already read. If - cs_more() - returns 1, - cs_get() - can be used to immediately fetch the new package. For the - mOSI - subsystem, the function should always return 0, but if you want your - stuff to be protocol independent, you should use it. - - - - - The cs_more() - function is required because the RFC1729-method - does not provide a way of separating individual PDUs, short of - partially decoding the BER. Some other implementations will carefully - nibble at the packet by calling - read(2) - several times. This was felt to be too inefficient (or at least - clumsy) - hence the call for this extra function. - - - - - int cs_look(COMSTACK handle); - - - - This function is useful when you're operating in nonblocking - mode. Call it when - select(2) - tells you there's something happening on the line. It returns one of - the following values: - - - - CS_NONE - No event is pending. The data found on the line was not a - complete package. - - - CS_CONNECT - A response to your connect request has been received. Call - cs_rcvconnect - to process the event and to finalize the connection establishment. - - - CS_DISCON - The other side has closed the connection (or maybe sent a disconnect - request - but do we care? Maybe later). Call - cs_close to close your end of the association - as well. - - - CS_LISTEN - A connect request has been received. - Call cs_listen to process the event. - - - CS_DATA - There's data to be found on the line. - Call cs_get to get it. - - - - - - You should be aware that even if - cs_look() - tells you that there's an event event pending, the corresponding - function may still return and tell you there was nothing to be found. - This means that only part of a package was available for reading. The - same event will show up again, when more data has arrived. - - - - - int cs_fileno(COMSTACK h); - - - - Returns the file descriptor of the association. Use this when - file-level operations on the endpoint are required - (select(2) operations, specifically). - - - - - - Client Side - - - int cs_connect(COMSTACK handle, void *address); - - - - Initiate a connection with the target at address - (more on addresses below). The function will return 0 on success, and 1 if - the operation does not complete immediately (this will only - happen on a nonblocking endpoint). In this case, use - cs_rcvconnect to complete the operation, - when select(2) or poll(2) - reports input pending on the association. - - - - int cs_rcvconnect(COMSTACK handle); - - - - Complete a connect operation initiated by cs_connect(). - It will return 0 on success; 1 if the operation has not yet completed (in - this case, call the function again later); -1 if an error has occurred. - - - - - Server Side - - - To establish a server under the inetd - server, you can use - - - - COMSTACK cs_createbysocket(int socket, CS_TYPE type, int blocking, - int protocol); - - - - The socket parameter is an established socket (when - your application is invoked from inetd, the - socket will typically be 0. - The following parameters are identical to the ones for - cs_create. - - - - int cs_bind(COMSTACK handle, void *address, int mode) - - - - Binds a local address to the endpoint. Read about addresses below. The - mode parameter should be either - CS_CLIENT or CS_SERVER. - - - - int cs_listen(COMSTACK handle, char *addr, int *addrlen); - - - - Call this to process incoming events on an endpoint that has been - bound in listening mode. It will return 0 to indicate that the connect - request has been received, 1 to signal a partial reception, and -1 to - indicate an error condition. - - - - COMSTACK cs_accept(COMSTACK handle); - - - - This finalizes the server-side association establishment, after - cs_listen has completed successfully. It returns a new connection - endpoint, which represents the new association. The application will - typically wish to fork off a process to handle the association at this - point, and continue listen for new connections on the old - handle. - - - - You can use the call - - - - char *cs_addrstr(COMSTACK); - - - - on an established connection to retrieve the host-name of the remote host. - - - - You may need to use this function with some care if your - name server service is slow or unreliable - - - - - Addresses - - - The low-level format of the addresses are different depending on the - mode of communication you have chosen. A function is provided by each - of the lower layers to map a user-friendly string-form address to the - binary form required by the lower layers. - - - - void *cs_straddr(COMSTACK handle, const char *str); - - - - The format for TCP/IP and SSL addresses is: - - - - <host> [ ':' <portnum> ] - - - - The hostname can be either a domain name or an - IP address. The port number, if omitted, defaults to 210. - - - - For TCP/IP and SSL transport modes, the special hostname "@" - is mapped to any local address - (the manifest constant INADDR_ANY). - It is used to establish local listening endpoints in the server role. - - - - For UNIX sockets, the format of an address is the socket filename. - - - - When a connection has been established, you can use - - - - char *cs_addrstr(COMSTACK h); - - - - to retrieve the host name of the peer system. The function returns - a pointer to a static area, which is overwritten on the next call - to the function. - - - - A fairly recent addition to the &comstack; module is the utility - function - - - COMSTACK cs_create_host (const char *str, int blocking, void **vp); - - - which is just a wrapper for cs_create and - cs_straddr. The str - is similar to that described for cs_straddr - but with a prefix denoting the &comstack; type. Prefixes supported - are tcp:, unix: and - ssl: for TCP/IP, UNIX and SSL respectively. - If no prefix is given, then TCP/IP is used. - The blocking is passed to - function cs_create. The third parameter - vp is a pointer to &comstack; stack type - specific values. - For SSL (ssl_type) vp is an already create - OpenSSL CTX. For TCP/IP and UNIX vp - is unused (can be set to NULL. - - - - - SSL - - - void *cs_get_ssl(COMSTACK cs); - - Returns the SSL handle, SSL * for comstack. If comstack - is not of type SSL, NULL is returned. - - - - - int cs_set_ssl_ctx(COMSTACK cs, void *ctx); - - Sets SSL context for comstack. The parameter is expected to be of type - SSL_CTX *. This function should be called just - after comstack has been created (before connect, bind, etc). - This function returns 1 for success; 0 for failure. - - - - - int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname); - - Sets SSL certificate for comstack as a PEM file. This function - returns 1 for success; 0 for failure. - - - - - - int cs_get_ssl_peer_certificate_x509(COMSTACK cs, char **buf, int *len); - - This function returns the peer certificate. If successful, - *buf and *len holds - X509 buffer and length respectively. Buffer should be freed - with xfree. This function returns 1 for success; - 0 for failure. - - - - - Diagnostics - - - All functions return -1 if an error occurs. Typically, the functions - will return 0 on success, but the data exchange functions - (cs_get, cs_put, - cs_more) follow special rules. Consult their - descriptions. - - - - When a function (including the data exchange functions) reports an - error condition, use the function - cs_errno() to determine the cause of the - problem. The function - - - - void cs_perror(COMSTACK handle char *message); - - - - works like perror(2) and prints the - message argument, along with a system message, to - stderr. Use the character array - - - - extern const char *cs_errlist[]; - - - - to get hold of the message, if you want to process it differently. - The function - - - - const char *cs_stackerr(COMSTACK handle); - - - - Returns an error message from the lower layer, if one has been - provided. - - - Summary and Synopsis - - - #include <yaz/comstack.h> - - #include <yaz/tcpip.h> /* this is for TCP/IP and SSL support */ - #include <yaz/unix.h> /* this is for UNIX sockeL support */ - - - COMSTACK cs_create(CS_TYPE type, int blocking, int protocol); - - COMSTACK cs_createbysocket(int s, CS_TYPE type, int blocking, - int protocol); - COMSTACK cs_create_host (const char *str, int blocking, - void **vp); - - int cs_bind(COMSTACK handle, int mode); - - int cs_connect(COMSTACK handle, void *address); - - int cs_rcvconnect(COMSTACK handle); - - int cs_listen(COMSTACK handle); - - COMSTACK cs_accept(COMSTACK handle); - - int cs_put(COMSTACK handle, char *buf, int len); - - int cs_get(COMSTACK handle, char **buf, int *size); - - int cs_more(COMSTACK handle); - - int cs_close(COMSTACK handle); - - int cs_look(COMSTACK handle); - - void *cs_straddr(COMSTACK handle, const char *str); - - char *cs_addrstr(COMSTACK h); - - extern int cs_errno; - - void cs_perror(COMSTACK handle char *message); - - const char *cs_stackerr(COMSTACK handle); - - extern const char *cs_errlist[]; - - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/credits.html b/dependencies/yaz_3.0.14/doc/credits.html deleted file mode 100644 index fb7550e..0000000 --- a/dependencies/yaz_3.0.14/doc/credits.html +++ /dev/null @@ -1,66 +0,0 @@ -Appendix D. Credits

    Appendix D. Credits

    - This appendix lists individuals that have contributed in the development - of YAZ. Some have contributed with code, while others have provided bug - fixes or suggestions. If we're missing somebody, of if you, for - whatever reason, don't like to be listed here, let us know. -

    • - Gary Anderson -

    • - Dimitrios Andreadis -

    • - Morten Bøgeskov -

    • - Rocco Carbone -

    • - Matthew Carey -

    • - Hans van Dalen -

    • - Irina Dijour -

    • - Larry E. Dixson -

    • - Hans van den Dool -

    • - Mads Bondo Dydensborg -

    • - Franck Falcoz -

    • - Kevin Gamiel -

    • - Morten Garkier Hendriksen -

    • - Morten Holmqvist -

    • - Ian Ibbotson -

    • - Shigeru Ishida -

    • - David Johnson -

    • - Oleg Kolobov -

    • - Kang-Jin Lee -

    • - Pieter Van Lierop -

    • - Stefan Lohrum -

    • - Ronald van der Meer -

    • - Thomas W. Place -

    • - Peter Popovics -

    • - Jacob Chr. Poulsen -

    • - Ko van der Sloot -

    • - Mike Taylor -

    • - Rustam T. Usmanov -

    • - Charles Woodfield -

    • - Tom André Øverland -

    diff --git a/dependencies/yaz_3.0.14/doc/credits.xml b/dependencies/yaz_3.0.14/doc/credits.xml deleted file mode 100644 index c499edd..0000000 --- a/dependencies/yaz_3.0.14/doc/credits.xml +++ /dev/null @@ -1,117 +0,0 @@ - - Credits - - This appendix lists individuals that have contributed in the development - of &yaz;. Some have contributed with code, while others have provided bug - fixes or suggestions. If we're missing somebody, of if you, for - whatever reason, don't like to be listed here, let us know. - - - - - Gary Anderson - - - Dimitrios Andreadis - - - Morten Bøgeskov - - - Rocco Carbone - - - Matthew Carey - - - Hans van Dalen - - - Irina Dijour - - - Larry E. Dixson - - - Hans van den Dool - - - Mads Bondo Dydensborg - - - Franck Falcoz - - - Kevin Gamiel - - - Morten Garkier Hendriksen - - - Morten Holmqvist - - - Ian Ibbotson - - - Shigeru Ishida - - - David Johnson - - - Oleg Kolobov - - - Kang-Jin Lee - - - Pieter Van Lierop - - - Stefan Lohrum - - - Ronald van der Meer - - - Thomas W. Place - - - Peter Popovics - - - Jacob Chr. Poulsen - - - Ko van der Sloot - - - Mike Taylor - - - Rustam T. Usmanov - - - Charles Woodfield - - - Tom André Øverland - - - - - diff --git a/dependencies/yaz_3.0.14/doc/entities.ent b/dependencies/yaz_3.0.14/doc/entities.ent deleted file mode 100644 index c25ae0b..0000000 --- a/dependencies/yaz_3.0.14/doc/entities.ent +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -ODR"> -COMSTACK"> -ZOOM"> - -"> -"> - diff --git a/dependencies/yaz_3.0.14/doc/frontend.xml b/dependencies/yaz_3.0.14/doc/frontend.xml deleted file mode 100644 index ba6d8c1..0000000 --- a/dependencies/yaz_3.0.14/doc/frontend.xml +++ /dev/null @@ -1,892 +0,0 @@ - - Generic server - Introduction - - - If you aren't into documentation, a good way to learn how the - back end interface works is to look at the backend.h - file. Then, look at the small dummy-server in - ztest/ztest.c. The backend.h - file also makes a good reference, once you've chewed your way through - the prose of this file. - - - - If you have a database system that you would like to make available by - means of Z39.50 or SRU, &yaz; basically offers your two options. You - can use the APIs provided by the &asn;, &odr;, and &comstack; - modules to - create and decode PDUs, and exchange them with a client. - Using this low-level interface gives you access to all fields and - options of the protocol, and you can construct your server as close - to your existing database as you like. - It is also a fairly involved process, requiring - you to set up an event-handling mechanism, protocol state machine, - etc. To simplify server implementation, we have implemented a compact - and simple, but reasonably full-functioned server-frontend that will - handle most of the protocol mechanics, while leaving you to - concentrate on your database interface. - - - - - The backend interface was designed in anticipation of a specific - integration task, while still attempting to achieve some degree of - generality. We realize fully that there are points where the - interface can be improved significantly. If you have specific - functions or parameters that you think could be useful, send us a - mail (or better, sign on to the mailing list referred to in the - top-level README file). We will try to fit good suggestions into future - releases, to the extent that it can be done without requiring - too many structural changes in existing applications. - - - - - - The &yaz; server does not support XCQL. - - - - - The Database Frontend - - - We refer to this software as a generic database frontend. Your - database system is the backend database, and the - interface between the two is called the backend API. - The backend API consists of a small number of function handlers and - structure definitions. You are required to provide the - main() routine for the server (which can be - quite simple), as well as a set of handlers to match each of the - prototypes. - The interface functions that you write can use any mechanism you like - to communicate with your database system: You might link the whole - thing together with your database application and access it by - function calls; you might use IPC to talk to a database server - somewhere; or you might link with third-party software that handles - the communication for you (like a commercial database client library). - At any rate, the handlers will perform the tasks of: - - - - - - Initialization. - - - - Searching. - - - - Fetching records. - - - - Scanning the database index (optional - if you wish to implement SCAN). - - - - Extended Services (optional). - - - - Result-Set Delete (optional). - - - - Result-Set Sort (optional). - - - - Return Explain for SRU (optional). - - - - - - (more functions will be added in time to support as much of - Z39.50-1995 as possible). - - - - The Backend API - - - The header file that you need to use the interface are in the - include/yaz directory. It's called - backend.h. It will include other files from - the include/yaz directory, so you'll - probably want to use the -I option of your compiler to tell it - where to find the files. When you run - make in the top-level &yaz; directory, - everything you need to create your server is to link with the - lib/libyaz.la library. - - - - Your main() Routine - - - As mentioned, your main() routine can be quite brief. - If you want to initialize global parameters, or read global configuration - tables, this is the place to do it. At the end of the routine, you should - call the function - - - -int statserv_main(int argc, char **argv, - bend_initresult *(*bend_init)(bend_initrequest *r), - void (*bend_close)(void *handle)); - - - - The third and fourth arguments are pointers to handlers. Handler - bend_init is called whenever the server receives - an Initialize Request, so it serves as a Z39.50 session initializer. The - bend_close handler is called when the session is - closed. - - - - statserv_main will establish listening sockets - according to the parameters given. When connection requests are received, - the event handler will typically fork() and - create a sub-process to handle a new connection. - Alternatively the server may be setup to create threads for each - connection. - If you do use global variables and forking, you should be aware, then, - that these cannot be shared between associations, unless you explicitly - disable forking by command line parameters. - - - - The server provides a mechanism for controlling some of its behavior - without using command-line options. The function - - - - statserv_options_block *statserv_getcontrol(void); - - - - will return a pointer to a struct statserv_options_block - describing the current default settings of the server. The structure - contains these elements: - - - - int dynamic - A boolean value, which determines whether the server - will fork on each incoming request (TRUE), or not (FALSE). Default is - TRUE. This flag is only read by UNIX-based servers (WIN32 based servers - doesn't fork). - - - - int threads - A boolean value, which determines whether the server - will create a thread on each incoming request (TRUE), or not (FALSE). - Default is FALSE. This flag is only read by UNIX-based servers - that offer POSIX Threads support. - WIN32-based servers always operate in threaded mode. - - - - int inetd - A boolean value, which determines whether the server - will operates under a UNIX INET daemon (inetd). Default is FALSE. - - - - char logfile[ODR_MAXNAME+1] - File for diagnostic output ("": stderr). - - - - char apdufile[ODR_MAXNAME+1] - - Name of file for logging incoming and outgoing APDUs - ("": don't log APDUs, "-": - stderr). - - - - char default_listen[1024] - Same form as the command-line specification of - listener address. "": no default listener address. - Default is to listen at "tcp:@:9999". You can only - specify one default listener address in this fashion. - - - - enum oid_proto default_proto; - Either PROTO_Z3950 or - PROTO_SR. - Default is PROTO_Z39_50. - - - - int idle_timeout; - Maximum session idle-time, in minutes. Zero indicates - no (infinite) timeout. Default is 15 minutes. - - - - int maxrecordsize; - Maximum permissible record (message) size. Default - is 1Mb. This amount of memory will only be allocated if a - client requests a very large amount of records in one operation - (or a big record). - Set it to a lower number if you are worried about resource - consumption on your host system. - - - - char configname[ODR_MAXNAME+1] - Passed to the backend when a new connection is received. - - - - char setuid[ODR_MAXNAME+1] - Set user id to the user specified, after binding - the listener addresses. - - - - void (*bend_start)(struct statserv_options_block *p) - - Pointer to function which is called after the - command line options have been parsed - but before the server - starts listening. - For forked UNIX servers this handler is called in the mother - process; for threaded servers this handler is called in the - main thread. - The default value of this pointer is NULL in which case it - isn't invoked by the frontend server. - When the server operates as an NT service this handler is called - whenever the service is started. - - - - void (*bend_stop)(struct statserv_options_block *p) - - Pointer to function which is called whenever the server - has stopped listening for incoming connections. This function pointer - has a default value of NULL in which case it isn't called. - When the server operates as an NT service this handler is called - whenever the service is stopped. - - - - void *handle - User defined pointer (default value NULL). - This is a per-server handle that can be used to specify "user-data". - Do not confuse this with the session-handle as returned by bend_init. - - - - - - - The pointer returned by statserv_getcontrol points to - a static area. You are allowed to change the contents of the structure, - but the changes will not take effect before you call - - - -void statserv_setcontrol(statserv_options_block *block); - - - - - that you should generally update this structure before calling - statserv_main(). - - - - - The Backend Functions - - - For each service of the protocol, the backend interface declares one or - two functions. You are required to provide implementations of the - functions representing the services that you wish to implement. - - - Init - - -bend_initresult (*bend_init)(bend_initrequest *r); - - - - This handler is called once for each new connection request, after - a new process/thread has been created, and an Initialize Request has - been received from the client. The pointer to the - bend_init handler is passed in the call to - statserv_start. - - - - This handler is also called when operating in SRU mode - when - a connection has been made (even though SRU does not offer - this service). - - - - Unlike previous versions of YAZ, the bend_init also - serves as a handler that defines the Z39.50 services that the backend - wish to support. Pointers to all service handlers, - including search - and fetch must be specified here in this handler. - - - The request - and result structures are defined as - - - -typedef struct bend_initrequest -{ - /** \brief user/name/password to be read */ - Z_IdAuthentication *auth; - /** \brief encoding stream (for results) */ - ODR stream; - /** \brief printing stream */ - ODR print; - /** \brief decoding stream (use stream for results) */ - ODR decode; - /** \brief reference ID */ - Z_ReferenceId *referenceId; - /** \brief peer address of client */ - char *peer_name; - - /** \brief character set and language negotiation - - see include/yaz/z-charneg.h - */ - Z_CharSetandLanguageNegotiation *charneg_request; - - /** \brief character negotiation response */ - Z_External *charneg_response; - - /** \brief character set (encoding) for query terms - - This is NULL by default. It should be set to the native character - set that the backend assumes for query terms */ - char *query_charset; - - /** \brief whehter query_charset also applies to recors - - Is 0 (No) by default. Set to 1 (yes) if records is in the same - character set as queries. If in doubt, use 0 (No). - */ - int records_in_same_charset; - - char *implementation_id; - char *implementation_name; - char *implementation_version; - - /** \brief Z39.50 sort handler */ - int (*bend_sort)(void *handle, bend_sort_rr *rr); - /** \brief SRU/Z39.50 search handler */ - int (*bend_search)(void *handle, bend_search_rr *rr); - /** \brief SRU/Z39.50 fetch handler */ - int (*bend_fetch)(void *handle, bend_fetch_rr *rr); - /** \brief SRU/Z39.50 present handler */ - int (*bend_present)(void *handle, bend_present_rr *rr); - /** \brief Z39.50 extended services handler */ - int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr); - /** \brief Z39.50 delete result set handler */ - int (*bend_delete)(void *handle, bend_delete_rr *rr); - /** \brief Z39.50 scan handler */ - int (*bend_scan)(void *handle, bend_scan_rr *rr); - /** \brief Z39.50 segment facility handler */ - int (*bend_segment)(void *handle, bend_segment_rr *rr); - /** \brief SRU explain handler */ - int (*bend_explain)(void *handle, bend_explain_rr *rr); - /** \brief SRU scan handler */ - int (*bend_srw_scan)(void *handle, bend_scan_rr *rr); - /** \brief SRU record update handler */ - int (*bend_srw_update)(void *handle, bend_update_rr *rr); - -} bend_initrequest; - -typedef struct bend_initresult -{ - int errcode; /* 0==OK */ - char *errstring; /* system error string or NULL */ - void *handle; /* private handle to the backend module */ -} bend_initresult; - - - - In general, the server frontend expects that the - bend_*result pointer that you return is valid at - least until the next call to a bend_* function. - This applies to all of the functions described herein. The parameter - structure passed to you in the call belongs to the server frontend, and - you should not make assumptions about its contents after the current - function call has completed. In other words, if you want to retain any - of the contents of a request structure, you should copy them. - - - - The errcode should be zero if the initialization of - the backend went well. Any other value will be interpreted as an error. - The errstring isn't used in the current version, but - one option would be to stick it in the initResponse as a VisibleString. - The handle is the most important parameter. It should - be set to some value that uniquely identifies the current session to - the backend implementation. It is used by the frontend server in any - future calls to a backend function. - The typical use is to set it to point to a dynamically allocated state - structure that is private to your backend module. - - - - The auth member holds the authentication information - part of the Z39.50 Initialize Request. Interpret this if your serves - requires authentication. - - - - The members peer_name, - implementation_id, - implementation_name and - implementation_version holds - DNS of client, ID of implementor, name - of client (Z39.50) implementation - and version. - - - - The bend_ - members are set to NULL when - bend_init is called. Modify the pointers by - setting them to point to backend functions. - - - - - Search and Retrieve - - We now describe the handlers that are required to support search - - and retrieve. You must support two functions - one for search - and one - for fetch (retrieval of one record). If desirable you can provide a - third handler which is called when a present request is received which - allows you to optimize retrieval of multiple-records. - - - -int (*bend_search) (void *handle, bend_search_rr *rr); - -typedef struct { - char *setname; /* name to give to this set */ - int replace_set; /* replace set, if it already exists */ - int num_bases; /* number of databases in list */ - char **basenames; /* databases to search */ - Z_ReferenceId *referenceId;/* reference ID */ - Z_Query *query; /* query structure */ - ODR stream; /* encode stream */ - ODR decode; /* decode stream */ - ODR print; /* print stream */ - - bend_request request; - bend_association association; - int *fd; - int hits; /* number of hits */ - int errcode; /* 0==OK */ - char *errstring; /* system error string or NULL */ - Z_OtherInformation *search_info; /* additional search info */ - char *srw_sortKeys; /* holds SRU/SRW sortKeys info */ - char *srw_setname; /* holds SRU/SRW generated resultsetID */ - int *srw_setnameIdleTime; /* holds SRU/SRW life-time */ - int estimated_hit_count; /* if hit count is estimated */ - int partial_resultset; /* if result set is partial */ -} bend_search_rr; - - - - The bend_search handler is a fairly close - approximation of a protocol Z39.50 Search Request - and Response PDUs - The setname is the resultSetName from the protocol. - You are required to establish a mapping between the set name and whatever - your backend database likes to use. - Similarly, the replace_set is a boolean value - corresponding to the resultSetIndicator field in the protocol. - num_bases/basenames is a length of/array of character - pointers to the database names provided by the client. - The query is the full query structure as defined in - the protocol ASN.1 specification. - It can be either of the possible query types, and it's up to you to - determine if you can handle the provided query type. - Rather than reproduce the C interface here, we'll refer you to the - structure definitions in the file - include/yaz/z-core.h. If you want to look at the - attributeSetId OID of the RPN query, you can either match it against - your own internal tables, or you can use the - oid_getentbyoid function provided by &yaz;. - - - - The structure contains a number of hits, and an - errcode/errstring pair. If an error occurs - during the search, or if you're unhappy with the request, you should - set the errcode to a value from the BIB-1 diagnostic set. The value - will then be returned to the user in a nonsurrogate diagnostic record - in the response. The errstring, if provided, will - go in the addinfo field. Look at the protocol definition for the - defined error codes, and the suggested uses of the addinfo field. - - - - The bend_search handler is also called when - the frontend server receives a SRU SearchRetrieveRequest. - For SRU, a CQL query is usually provided by the client. - The CQL query is available as part of Z_Query - structure (note that CQL is now part of Z39.50 via an external). - To support CQL in existing implementations that only do Type-1, - we refer to the CQL-to-PQF tool described - here. - - - - To maintain backwards compatibility, the frontend server - of yaz always assume that error codes are BIB-1 diagnostics. - For SRU operation, a Bib-1 diagnostic code is mapped to - SRU diagnostic. - - - -int (*bend_fetch) (void *handle, bend_fetch_rr *rr); - -typedef struct bend_fetch_rr { - char *setname; /* set name */ - int number; /* record number */ - Z_ReferenceId *referenceId;/* reference ID */ - Odr_oid *request_format; /* format, transfer syntax (OID) */ - Z_RecordComposition *comp; /* Formatting instructions */ - ODR stream; /* encoding stream - memory source if req */ - ODR print; /* printing stream */ - - char *basename; /* name of database that provided record */ - int len; /* length of record or -1 if structured */ - char *record; /* record */ - int last_in_set; /* is it? */ - Odr_oid *output_format; /* response format/syntax (OID) */ - int errcode; /* 0==success */ - char *errstring; /* system error string or NULL */ - int surrogate_flag; /* surrogate diagnostic */ - char *schema; /* string record schema input/output */ -} bend_fetch_rr; - - - - The frontend server calls the bend_fetch handler - when it needs database records to fulfill a Z39.50 Search Request, a - Z39.50 Present Request or a SRU SearchRetrieveRequest. - The setname is simply the name of the result set - that holds the reference to the desired record. - The number is the offset into the set (with 1 - being the first record in the set). The format field - is the record format requested by the client (See - ). - A value of NULL for format indicates that the - client did not request a specific format. - The stream argument is an &odr; stream which - should be used for allocating space for structured data records. - The stream will be reset when all records have been assembled, and - the response package has been transmitted. - For unstructured data, the backend is responsible for maintaining a - static or dynamic buffer for the record between calls. - - - - If a SRU SearchRetrieveRequest is received by the frontend server, - the referenceId is NULL and the - format (transfer syntax) is the OID for XML. - The schema for SRU is stored in both the - Z_RecordComposition - structure and schema (simple string). - - - - In the structure, the basename is the name of the - database that holds the - record. len is the length of the record returned, in - bytes, and record is a pointer to the record. - last_in_set should be nonzero only if the record - returned is the last one in the given result set. - errcode and errstring, if - given, will be interpreted as a global error pertaining to the - set, and will be returned in a non-surrogate-diagnostic. - If you wish to return the error as a surrogate-diagnostic - (local error) you can do this by setting - surrogate_flag to 1 also. - - - - If the len field has the value -1, then - record is assumed to point to a constructed data - type. The format field will be used to determine - which encoder should be used to serialize the data. - - - - - If your backend generates structured records, it should use - odr_malloc() on the provided stream for allocating - data: This allows the frontend server to keep track of the record sizes. - - - - - The format field is mapped to an object identifier - in the direct reference of the resulting EXTERNAL representation - of the record. - - - - - The current version of &yaz; only supports the direct reference mode. - - - - -int (*bend_present) (void *handle, bend_present_rr *rr); - -typedef struct { - char *setname; /* set name */ - int start; - int number; /* record number */ - Odr_oid *format; /* format, transfer syntax (OID) */ - Z_ReferenceId *referenceId;/* reference ID */ - Z_RecordComposition *comp; /* Formatting instructions */ - ODR stream; /* encoding stream - memory source if required */ - ODR print; /* printing stream */ - bend_request request; - bend_association association; - - int hits; /* number of hits */ - int errcode; /* 0==OK */ - char *errstring; /* system error string or NULL */ -} bend_present_rr; - - - - The bend_present handler is called when - the server receives a Z39.50 Present Request. - The setname, - start and number is the - name of the result set - start position - and number of records to - be retrieved respectively. format and - comp is the preferred transfer syntax and element - specifications of the present request. - - - Note that this is handler serves as a supplement for - bend_fetch and need not to be defined in order to - support search - and retrieve. - - - - - Delete - - - For back-ends that supports delete of a result set only one handler - must be defined. - - - -int (*bend_delete)(void *handle, bend_delete_rr *rr); - -typedef struct bend_delete_rr { - int function; - int num_setnames; - char **setnames; - Z_ReferenceId *referenceId; - int delete_status; /* status for the whole operation */ - int *statuses; /* status each set - indexed as setnames */ - ODR stream; - ODR print; -} bend_delete_rr; - - - - - The delete set function definition is rather primitive, mostly because - we have had no practical need for it as of yet. If someone wants - to provide a full delete service, we'd be happy to add the - extra parameters that are required. Are there clients out there - that will actually delete sets they no longer need? - - - - - - Scan - - - For servers that wish to offer the scan service one handler - must be defined. - - - -int (*bend_scan)(void *handle, bend_scan_rr *rr); - -typedef enum { - BEND_SCAN_SUCCESS, /* ok */ - BEND_SCAN_PARTIAL /* not all entries could be found */ -} bend_scan_status; - -typedef struct bend_scan_rr { - int num_bases; /* number of elements in databaselist */ - char **basenames; /* databases to search */ - Odr_oid *attributeset; - Z_ReferenceId *referenceId; /* reference ID */ - Z_AttributesPlusTerm *term; - ODR stream; /* encoding stream - memory source if required */ - ODR print; /* printing stream */ - - int *step_size; /* step size */ - int term_position; /* desired index of term in result list/returned */ - int num_entries; /* number of entries requested/returned */ - - /* scan term entries. The called handler does not have - to allocate this. Size of entries is num_entries (see above) */ - struct scan_entry *entries; - bend_scan_status status; - int errcode; - char *errstring; - char *scanClause; /* CQL scan clause */ - char *setname; /* Scan in result set (NULL if omitted) */ -} bend_scan_rr; - - - This backend server handles both Z39.50 scan - and SRU scan. In order for a handler to distinguish between SRU (CQL) scan - Z39.50 Scan , it must check for a non-NULL value of - scanClause. - - - - if designed today, it would be a choice using a union or similar, - but that would break binary compatibility with existing servers. - - - - - - Application Invocation - - - The finished application has the following - invocation syntax (by way of statserv_main()): - - - &gfs-synopsis; - - - The options are: - - &gfs-options; - - - - - A listener specification consists of a transport mode followed by a - colon (:) followed by a listener address. The transport mode is - either tcp, unix: or - ssl. - - - - For TCP and SSL, an address has the form - - - - hostname | IP-number [: portnumber] - - - - The port number defaults to 210 (standard Z39.50 port). - - - - For UNIX, the address is the filename of socket. - - - - For TCP/IP and SSL, the special hostname @ - (at sign) is mapped to the address INADDR_ANY, - which causes the server to listen on any local interface. - - - Running the GFS on Unix - - Assuming the server application appname is - started as root, the following will make it listen on port 210. - The server will change identity to nobody - and write its log to /var/log/app.log. - - appname -l /var/log/app.log -u nobody tcp:@:210 - - - - The server will accept Z39.50 requests and offer SRU service on port 210. - - - Setting up Apache as SRU Frontend - - If you use Apache - as your public web server and want to offer HTTP port 80 - access to the YAZ server on 210, you can use the - - ProxyPass - directive. - If you have virtual host - srw.mydomain you can use the following directives - in Apache's httpd.conf: - - <VirtualHost *> - ErrorLog /home/srw/logs/error_log - TransferLog /home/srw/logs/access_log - ProxyPass / http://srw.mydomain:210/ - </VirtualHost> - - - - The above for the Apache 1.3 series. - - - - Running a server with local access only - - Servers that is only being accessed from the local host should listen - on UNIX file socket rather than a Internet socket. To listen on - /tmp/mysocket start the server as follows: - - appname tcp:/tmp/mysocket - - - - - GFS Configuration and Virtual Hosts - &gfs-virtual; - - - - diff --git a/dependencies/yaz_3.0.14/doc/future.html b/dependencies/yaz_3.0.14/doc/future.html deleted file mode 100644 index f014df8..0000000 --- a/dependencies/yaz_3.0.14/doc/future.html +++ /dev/null @@ -1,27 +0,0 @@ -Chapter 12. Future Directions

    Chapter 12. Future Directions

    - We have a new and better version of the front-end server on the drawing - board. Resources and external commitments will govern when we'll be - able to do something real with it. Features should include greater - flexibility, greater support for access/resource control, and easy - support for Explain (possibly with Zebra as an extra database engine). -

    - YAZ is a BER toolkit and as such should support all protocols - out there based on that. We'd like to see running ILL applications. - It shouldn't be that hard. Another thing that would be interesting is - LDAP. Maybe a generic framework for doing IR using both LDAP and - Z39.50 transparently. -

    - The SOAP implementation is incomplete. In the future we hope - to add more features to it. Perhaps make a WSDL/XML Schema compiler. - The authors of libxml2 are already working on XML Schema / RelaxNG - compilers so this may not be too hard. -

    - It would be neat to have a proper module mechanism for the Generic - Frontend Server so that backend would be dynamically - loaded (as shared objects / DLLs). -

    - Other than that, YAZ generally moves in the directions which appear to - make the most people happy (including ourselves, as prime users of the - software). If there's something you'd like to see in here, then drop - us a note and let's see what we can come up with. -

    diff --git a/dependencies/yaz_3.0.14/doc/future.xml b/dependencies/yaz_3.0.14/doc/future.xml deleted file mode 100644 index 74dfb63..0000000 --- a/dependencies/yaz_3.0.14/doc/future.xml +++ /dev/null @@ -1,55 +0,0 @@ - - Future Directions - - - We have a new and better version of the front-end server on the drawing - board. Resources and external commitments will govern when we'll be - able to do something real with it. Features should include greater - flexibility, greater support for access/resource control, and easy - support for Explain (possibly with Zebra as an extra database engine). - - - - &yaz; is a BER toolkit and as such should support all protocols - out there based on that. We'd like to see running ILL applications. - It shouldn't be that hard. Another thing that would be interesting is - LDAP. Maybe a generic framework for doing IR using both LDAP and - Z39.50 transparently. - - - - The SOAP implementation is incomplete. In the future we hope - to add more features to it. Perhaps make a WSDL/XML Schema compiler. - The authors of libxml2 are already working on XML Schema / RelaxNG - compilers so this may not be too hard. - - - - It would be neat to have a proper module mechanism for the Generic - Frontend Server so that backend would be dynamically - loaded (as shared objects / DLLs). - - - - Other than that, &yaz; generally moves in the directions which appear to - make the most people happy (including ourselves, as prime users of the - software). If there's something you'd like to see in here, then drop - us a note and let's see what we can come up with. - - - - - diff --git a/dependencies/yaz_3.0.14/doc/gfs-options.xml b/dependencies/yaz_3.0.14/doc/gfs-options.xml deleted file mode 100644 index 659f6fb..0000000 --- a/dependencies/yaz_3.0.14/doc/gfs-options.xml +++ /dev/null @@ -1,206 +0,0 @@ - - - - - -a - file - - Specify a file for dumping PDUs (for diagnostic purposes). - The special name - (dash) sends output to - stderr. - - - -S - - Don't fork or make threads on connection requests. This is good for - debugging, but not recommended for real operation: Although the - server is asynchronous and non-blocking, it can be nice to keep - a software malfunction (okay then, a crash) from affecting all - current users. - - - -1 - - Like -S but after one session the server - exits. This mode is for debugging only. - - - -T - - Operate the server in threaded mode. The server creates a thread - for each connection rather than a fork a process. Only available - on UNIX systems that offers POSIX threads. - - - -s - - Use the SR protocol (obsolete). - - - -z - - Use the Z39.50 protocol (default). This option and -s - complement each other. - You can use both multiple times on the same command - line, between listener-specifications (see below). This way, you - can set up the server to listen for connections in both protocols - concurrently, on different local ports. - - - -l - file - The logfile. - - - -c - config - A user option that serves as a specifier for some - sort of configuration, usually a filename. - The argument to this option is transferred to member - configname of the - statserv_options_block. - - - -f - vconfig - This specifies an XML file that describes - one or more YAZ frontend virtual servers. - - - -C - fname - Sets SSL certificate file name for server (PEM). - - - -v - level - - The log level. Use a comma-separated list of members of the set - {fatal,debug,warn,log,malloc,all,none}. - - - -u - uid - - Set user ID. Sets the real UID of the server process to that of the - given user. It's useful if you aren't comfortable with having the - server run as root, but you need to start it as such to bind a - privileged port. - - - -w - dir - - The server changes to this directory during before listening - on incoming connections. This option is useful - when the server is operating from the inetd - daemon (see -i). - - - -p - pidfile - - Specifies that the server should write its Process ID to - file given by pidfile. - A typical location would be /var/run/yaz-ztest.pid. - - - -i - - Use this to make the the server run from the - inetd server (UNIX only). - - - -D - - Use this to make the server put itself in the background and - run as a daemon. If neither -i nor - -D is given, the server starts in the foreground. - - - -install - - Use this to install the server as an NT service - (Windows NT/2000/XP only). - Control the server by going to the Services in the Control Panel. - - - -installa - - Use this to install and activate the server as an NT service - (Windows NT/2000/XP only). - Control the server by going to the Services in the Control Panel. - - - -remove - - Use this to remove the server from the NT services - (Windows NT/2000/XP only). - - - -t - minutes - - Idle session timeout, in minutes. - - - -k - size - - Maximum record size/message size, in kilobytes. - - - - -r - size - - Maximum size of log file before rotation occurs, in kilobytes. - Default size is 1048576 k (=1 GB). - - - - -d - daemon - - Set name of daemon to be used in hosts access file. - See - - hosts_access - 5 - - and - - tcpd - 8 - . - - - - -m - time-format - - Sets the format of time-stamps in the log-file. Specify a string in - the input format to strftime(). - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/gfs-synopsis.xml b/dependencies/yaz_3.0.14/doc/gfs-synopsis.xml deleted file mode 100644 index db16198..0000000 --- a/dependencies/yaz_3.0.14/doc/gfs-synopsis.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - &gfs-synopsis-app; - - - - - - - - - - - - - - - - - - listener-spec - - - diff --git a/dependencies/yaz_3.0.14/doc/gfs-virtual.xml b/dependencies/yaz_3.0.14/doc/gfs-virtual.xml deleted file mode 100644 index 58e6638..0000000 --- a/dependencies/yaz_3.0.14/doc/gfs-virtual.xml +++ /dev/null @@ -1,276 +0,0 @@ - - - - The Virtual hosts mechanism allows a YAZ frontend server to - support multiple backends. A backend is selected on the basis of - the TCP/IP binding (port+listening adddress) and/or the virtual host. - - - A backend can be configured to execute in a particular working - directory. Or the YAZ frontend may perform CQL to RPN conversion, thus - allowing traditional Z39.50 backends to be offered as a SRW/SRU - service. SRW/SRU Explain information for a particular backend may also - be specified. - - - For the HTTP protocol, the virtual host is specified in the Host header. - For the Z39.50 protocol, the virtual host is specified as in the - Initialize Request in the OtherInfo, OID 1.2.840.10003.10.1000.81.1. - - - - Not all Z39.50 clients allows the VHOST information to be set. - For those the selection of the backend must rely on the - TCP/IP information alone (port and address). - - - - The YAZ frontend server uses XML to describe the backend - configurations. Command-line option -f - specifies filename of the XML configuration. - - - The configuration uses the root element yazgfs. - This element includes a list of listen elements, - followed by one or more server elements. - - - The listen describes listener (transport end point), - such as TCP/IP, Unix file socket or SSL server. Content for - a listener: - - CDATA (required) - - - The CDATA for the listen element holds the - listener string, such as tcp:@:210, - tcp:server1:2100, - etc. - - - - attribute id (optional) - - - identifier for this listener. This may be referred to from - server sections. - - - - - - - We expect more information to be added for the listen section in - a future version, such as CERT file for SSL servers. - - - - - The server describes a server and the parameters - for this server type. Content for a server: - - attribute id (optional) - - - Identifier for this server. Currently not used for anything, - but it might be for logging purposes. - - - - - attribute listenref (optional) - - - Specifies listener for this server. If this attribute is not - given, the server is accessible from all listener. In order - for the server to be used for real, howeever, the virtual host - must match (if specified in the configuration). - - - - - element config (optional) - - - Specifies the server configuration. This is equivalent - to the config specified using command line option - -c. - - - - - element directory (optional) - - - Specifies a working directory for this backend server. If - specifid, the YAZ fronend changes current working directory - to this directory whenever a backend of this type is - started (backend handler bend_start), stopped (backend handler hand_stop) - and initialized (bend_init). - - - - - element host (optional) - - - Specifies the virtual host for this server. If this is specified - a client must specify this host string in - order to use this backend. - - - - - element cql2rpn (optional) - - - Specifies a filename that includes CQL to RPN conversion for this - backend server. See &reference-tools-cql-map; - If given, the backend server will only "see" a Type-1/RPN query. - - - - - element ccl2rpn (optional) - - - Specifies a filename that includes CCL to RPN conversion for this - backend server. See &reference-tools-ccl-qualifiers; - If given, the backend server will only "see" a Type-1/RPN query. - - - - - element stylesheet (optional) - - - Specifies the stylesheet reference to be part of SRU HTTP responses - when the client does not specify one. If neither this is given, nor - the client specifies one, no stylesheet reference is part of the - SRU HTTP response. - - - - - element docpath (optional) - - - Specifies a path for local file access using HTTP. All URLs with - a leading prefix (/ exluded) that matches the value of docpath - are used for file access. For example, if the server is to offer - access in directory xsl, the docpath would be - xsl and all URLs of the form - http://host/exl will result in a local file access. - - - - - element explain (optional) - - - Specifies SRW/SRU ZeeRex content for this server. Copied verbatim - to the client. As things are now, some of the Explain content - seeem redundant because host information, etc. is also stored - elsewhere. - - - - - element maximumrecordsize (optional) - - - Specifies maximum record size/message size, in bytes. This - value also servers as maximum size of incoming - packages (for Record Updates etc). It's the same value as that - given by the -k option. - - - - - element retrievalinfo (optional) - - - Enables the retrieval facility supporting conversions and - specifications of record formats/types. - See for - more information. - - - - - - - - - The XML below configures a server that accepts connections from - two ports, TCP/IP port 9900 and a local UNIX file socket. - We name the TCP/IP server public and the - other server internal. - - - - tcp:@:9900 - unix:/var/tmp/socket - - server1.mydomain - /var/www/s1 - config.cfg - - - server2.mydomain - /var/www/s2 - config.cfg - ../etc/pqf.properties - - - server2.mydomain - 9900 - a - - - - - /var/www/s3 - config.cfg - - -]]> - - - There are three configured backend servers. The first two - servers, "server1" and "server2", - can be reached by both listener addresses - since - no listenref attribute is specified. - In order to distinguish between the two a virtual host has - been specified for each of server in the host - elements. - - - For "server2" elements for CQL to RPN conversion - is supported and explain information has been added (a short one here - to keep the example small). - - - The third server, "server3" can only be reached - via listener "internal". - - - diff --git a/dependencies/yaz_3.0.14/doc/index.html b/dependencies/yaz_3.0.14/doc/index.html deleted file mode 100644 index 694f837..0000000 --- a/dependencies/yaz_3.0.14/doc/index.html +++ /dev/null @@ -1,16 +0,0 @@ -YAZ User's Guide and Reference

    YAZ User's Guide and Reference

    Sebastian Hammer

    Adam Dickmeiss

    Mike Taylor

    Heikki Levanto

    3.0.14

    Abstract

    - This document is the programmer's guide and reference to the YAZ - package version 3.0.14. YAZ is a compact toolkit that provides - access to the Z39.50 and SRW/SRU protocols, as well as a set of - higher-level tools for implementing the server and client - roles, respectively. - The documentation can be used on its own, or as a reference when - looking at the example applications provided with the package. -

    - -


    Table of Contents

    1. Introduction
    1. Reading this Manual
    2. The API
    2. Compilation and Installation
    1. Introduction
    2. UNIX
    2.1. Compiling from source on Unix
    2.2. How to make apps using YAZ on UNIX
    3. WIN32
    3.1. Compiling from Source on WIN32
    3.2. How to make apps using YAZ on WIN32
    3. ZOOM
    1. Connections
    1.1. Z39.50 Protocol behavior
    1.2. SRU Protocol behavior
    2. Queries
    2.1. Protocol behavior
    3. Result sets
    3.1. Z39.50 Protocol behavior
    3.2. SRU Protocol behavior
    4. Records
    4.1. Z39.50 Protocol behavior
    4.2. SRU Protocol behavior
    5. Scan
    6. Extended Services
    6.1. Item Order
    6.2. Record Update
    6.3. Database Create
    6.4. Database Drop
    6.5. Commit Operation
    6.6. Protocol behavior
    7. Options
    8. Events
    4. Generic server
    1. Introduction
    2. The Database Frontend
    3. The Backend API
    4. Your main() Routine
    5. The Backend Functions
    5.1. Init
    5.2. Search and Retrieve
    5.3. Delete
    5.4. Scan
    6. Application Invocation
    7. GFS Configuration and Virtual Hosts
    5. The YAZ client
    1. Introduction
    2. Invoking the YAZ client
    3. Commands
    4. Searching
    6. ziffy
    1. Introduction
    2. Using Ziffy
    7. The Z39.50 ASN.1 Module
    1. Introduction
    2. Preparing PDUs
    3. Object Identifiers (YAZ 2)
    4. EXTERNAL Data
    5. PDU Contents Table
    8. SOAP and SRU
    1. Introduction
    2. HTTP
    3. SOAP Packages
    4. SRU
    9. Supporting Tools
    1. Query Syntax Parsers
    1.1. Prefix Query Format
    1.1.1. Using Proximity Operators with PQF
    1.1.2. PQF queries
    1.2. CCL
    1.2.1. CCL Syntax
    1.2.2. CCL Qualifiers
    1.2.3. CCL API
    1.3. CQL
    1.3.1. CQL parsing
    1.3.2. CQL tree
    1.3.3. CQL to PQF conversion
    1.3.4. Specification of CQL to RPN mappings
    1.3.5. CQL to XCQL conversion
    2. Object Identifiers
    2.1. OID database
    2.2. Standard OIDs
    2.3. OID oident
    3. Nibble Memory
    4. Log
    5. MARC
    6. Retrieval Facility
    6.1. Retrieval XML format
    6.2. Retrieval Facility Examples
    6.3. API
    10. The ODR Module
    1. Introduction
    2. Using ODR
    2.1. ODR Streams
    2.2. Memory Management
    2.3. Encoding and Decoding Data
    2.4. Printing
    2.5. Diagnostics
    2.6. Summary and Synopsis
    3. Programming with ODR
    3.1. The Primitive ASN.1 Types
    3.1.1. INTEGER
    3.1.2. BOOLEAN
    3.1.3. REAL
    3.1.4. NULL
    3.1.5. OCTET STRING
    3.1.6. BIT STRING
    3.1.7. OBJECT IDENTIFIER
    3.2. Tagging Primitive Types
    3.3. Constructed Types
    3.4. Tagging Constructed Types
    3.4.1. Implicit Tagging
    3.4.2. Explicit Tagging
    3.5. SEQUENCE OF
    3.6. CHOICE Types
    4. Debugging
    11. The COMSTACK Module
    1. Synopsis (blocking mode)
    2. Introduction
    3. Common Functions
    3.1. Managing Endpoints
    3.2. Data Exchange
    4. Client Side
    5. Server Side
    6. Addresses
    7. SSL
    8. Diagnostics
    9. Summary and Synopsis
    12. Future Directions
    A. List of Object Identifiers
    B. License
    1. Index Data Copyright
    2. Additional Copyright Statements
    2.1. ziffy
    2.2. CCL
    C. About Index Data
    D. Credits

    List of Figures

    1.1. YAZ layers
    diff --git a/dependencies/yaz_3.0.14/doc/indexdata.html b/dependencies/yaz_3.0.14/doc/indexdata.html deleted file mode 100644 index d2c628c..0000000 --- a/dependencies/yaz_3.0.14/doc/indexdata.html +++ /dev/null @@ -1,41 +0,0 @@ -Appendix C. About Index Data

    Appendix C. About Index Data

    - Index Data is a consulting and software-development enterprise that - specializes in library and information management systems. Our - interests and expertise span a broad range of related fields, and one - of our primary, long-term objectives is the development of a powerful - information management - system with open network interfaces and hyper-media capabilities. -

    - We make this software available free of charge, on a fairly unrestrictive - license; as a service to the networking community, and to further the - development of quality software for open network communication. -

    - We'll be happy to answer questions about the software, and about ourselves - in general. -

    -


    -    Index Data ApS
    -    Købmagergade 43 2.
    -    1150 Copenhagen K
    -    Denmark
    -    Phone +45 3341 0100
    -    Fax +45 3341 0101
    -    Email 
    -   

    - -

    - The Hacker's Jargon File has the following to say about the - use of the - prefix "YA" in the name of a software product. -

    - [ - Yet Another. adj. 1. Of your own work: A - humorous allusion often used in titles to acknowledge that the - topic is not original, though the content is. As in "Yet Another - AI Group" or "Yet Another Simulated Annealing Algorithm". - 2. Of - others' work: Describes something of which there are already far - too many. - ] - -

    diff --git a/dependencies/yaz_3.0.14/doc/indexdata.xml b/dependencies/yaz_3.0.14/doc/indexdata.xml deleted file mode 100644 index a04860f..0000000 --- a/dependencies/yaz_3.0.14/doc/indexdata.xml +++ /dev/null @@ -1,62 +0,0 @@ - - About Index Data - - - Index Data is a consulting and software-development enterprise that - specializes in library and information management systems. Our - interests and expertise span a broad range of related fields, and one - of our primary, long-term objectives is the development of a powerful - information management - system with open network interfaces and hyper-media capabilities. - - We make this software available free of charge, on a fairly unrestrictive - license; as a service to the networking community, and to further the - development of quality software for open network communication. - - We'll be happy to answer questions about the software, and about ourselves - in general. - - -
    - Index Data ApS - Købmagergade 43 2. - 1150 Copenhagen K - Denmark - Phone +45 3341 0100 - Fax +45 3341 0101 - Email info@indexdata.dk -
    - -
    - - The Hacker's Jargon File has the following to say about the - use of the - prefix "YA" in the name of a software product. - - - - Yet Another. adj. 1. Of your own work: A - humorous allusion often used in titles to acknowledge that the - topic is not original, though the content is. As in "Yet Another - AI Group" or "Yet Another Simulated Annealing Algorithm". - 2. Of - others' work: Describes something of which there are already far - too many. - - - -
    - diff --git a/dependencies/yaz_3.0.14/doc/installation.html b/dependencies/yaz_3.0.14/doc/installation.html deleted file mode 100644 index b8acfa1..0000000 --- a/dependencies/yaz_3.0.14/doc/installation.html +++ /dev/null @@ -1,43 +0,0 @@ -Chapter 2. Compilation and Installation

    Chapter 2. Compilation and Installation

    1. Introduction

    - The latest version of the software will generally be found at: -

    - http://ftp.indexdata.com/pub/yaz/ -

    - We have tried our best to keep the software portable, and on many - platforms, you should be able to compile everything with little or - no changes. -

    - The software is regularly tested on - Debian GNU/Linux, - Redhat Linux, - Gentoo Linux, - FreeBSD (i386), - MAC OSX, - SunOS 5.8 (sparc), - Windows 2000, - Windows 2003 server. -

    - Some versions have be known to work on HP/UX, - DEC Unix, NetBSD, - OpenBSD, - IBM AIX, - Data General DG/UX (with some CFLAGS tinkering), - SGI/IRIX, DDE Supermax, Apple Macintosh (using the Codewarrior programming - environment and the GUSI socket libraries), - IBM AS/400 . -

    - If you move the software to other platforms, we'd be grateful if you'd - let us know about it. If you run into difficulties, we will try to help - if we can, and if you solve the problems, we would be happy to include - your fixes in the next release. So far, we have mostly avoided - #ifdefs for individual platforms, and we'd - like to keep it that way as far as it makes sense. -

    - We maintain a mailing-list for the purpose of announcing new releases and - bug-fixes, as well as general discussion. Subscribe by - filling-in the form - here. - General questions and problems can be directed at - mailto:yaz-help@indexdata.dk, or the address given at the top of - this document. -

    diff --git a/dependencies/yaz_3.0.14/doc/installation.unix.html b/dependencies/yaz_3.0.14/doc/installation.unix.html deleted file mode 100644 index 83de4b5..0000000 --- a/dependencies/yaz_3.0.14/doc/installation.unix.html +++ /dev/null @@ -1,252 +0,0 @@ -2. UNIX

    2. UNIX

    - We provide - Debian GNU/Linux - and - Redhat packages for YAZ. - Only i386 binary packages are available. You should be able to - create packages for other CPUs by building them from the source - package. -

    2.1. Compiling from source on Unix

    - Note that if your system doesn't have a native ANSI C compiler, you may - have to acquire one separately. We recommend - GCC. -

    - If you wish to use character set conversion facilities in YAZ or if you - are compiling YAZ for use with Zebra it is a good idea to ensure that - the iconv library is installed. Some Unixes today already have it - - if not, we suggest - GNU libiconv. -

    - The libxslt, - libxml2 librararies are required - if YAZ is to support SRU. - These libraries are very portable and should compile out-of-the - box on virtually all Unix platforms. It is available in binary - forms for Linux and others. -

    - The GNU tools - Autoconf, - Automake and - Libtool - are used to generate Makefiles and configure YAZ for the system. - You do not these tools unless you're using the - CVS version of YAZ. -

    - YAZ can optionally be compiled with - libpcap support. By default, - configure enables libpcap if it is available. - The libpcap library is required for - ziffy. And without libpcap, - ziffy will not be built. -

    - The CQL parser for YAZ is built using - GNU Bison. - This tool is only needed if you're using the CVS version of YAZ. -

    - YAZ includes a tiny ASN.1 compiler. This compiler is - written in Tcl. - But as for Bison you do not need it unless you're using CVS - version of YAZ or you're using the compiler to built own codecs - for private ASN.1. -

    - Generally it should be sufficient to run configure without options, - like this: -

    -     ./configure
    -    

    - The configure script attempts to use use the C compiler specified by - the CC environment variable. If not set, GNU C will be - used if it is available. The CFLAGS environment - variable holds options to be passed to the C compiler. If you're using - Bourne-compatible shell you may pass something like this to use a - particular C compiler with optimization enabled: -

    -     CC=/opt/ccs/bin/cc CFLAGS=-O ./configure
    -    

    - To customize YAZ, the configure script also accepts a set of options. - The most important are: - -

    - --prefix=prefix

    Specifies installation prefix for YAZ. This is - only needed if you run make install later to - perform a "system" installation. The prefix is - /usr/local if not specified. -

    --enable-tcpd

    The front end server will be built using Wietse's - TCP wrapper library. - It allows you to allow/deny clients depending on IP number. - The TCP wrapper library is often used in GNU/Linux and - BSD distributions. - See - hosts_access(5) - and - tcpd(8). -

    --enable-threads

    YAZ will be built using POSIX threads. - Specifically, _REENTRANT will be defined during - compilation. -

    --disable-shared

    The make process will not create shared - libraries (also known as shared objects .so). - By default, shared libraries are created - - equivalent to --enable-shared. -

    --disable-shared

    The make process will not create - static libraries (.a). - By default, static libraries are created - - equivalent to --enable-static. -

    - --with-iconv[=prefix] -

    Compile YAZ with iconv library in directory - prefix. By default configure will - search for iconv on the system. Use this option if it - doesn't find iconv. Alternatively, - --without-iconv, can be uset to force YAZ - not to use iconv. -

    - --with-xslt[=prefix] -

    Compile YAZ with - libxslt in directory - prefix. - Use this option if you want SRU support. - By default, configure will - search for libxslt on the system. Use this option if it - libxslt is not found automatically. Alternatively, - --without-xslt, can be used to force YAZ - not to use libxslt. -

    - --with-openssl[=prefix] -

    YAZ will be linked with the OpenSSL libraries and - an SSL COMSTACK will be provided. Note that SSL support is still - experimental. -

    - --with-libpcap[=prefix] -

    Compile YAZ with - libpcap support and the - ziffy utility. -

    - -

    - When configured, build the software by typing: -

    -      make
    -     

    -

    - The following files are generated by the make process: -

    src/libyaz.la

    - Main YAZ library. This is no ordinary library. It's - a Libtool archive. - By default, YAZ creates a static library in - lib/.libs/libyaz.a. -

    src/libyaz_server.la

    - Generic Frontend server. This is an add-on for libyaz.la. - Code in this library uses POSIX threads functions - if they - available on the platform. -

    ztest/yaz-ztest

    Test Z39.50 server. -

    client/yaz-client

    Z39.50 client for testing the protocol. - See chapter - YAZ client for more information. -

    ziffy/ziffy

    A promiscuous Z39.50 APDU sniffer. - ziffy is only built on systems where libpcap is available. - See Chapter 6, ziffy for more information. -

    util/yaz-config

    A Bourne-shell script, generated by configure, that - specifies how external applications should compile - and link with - YAZ. -

    util/yaz-asncomp

    The ASN.1 compiler for YAZ. Requires the - Tcl Shell, tclsh, in - PATH to operate. -

    util/yaz-iconv

    This program converts data in one character set to - another. This command exercises the YAZ character set - conversion API. -

    util/yaz-marcdump

    This program parses ISO2709 encoded MARC records - and prints them in line-format or XML. -

    zoom/zoomsh

    - A simple shell implemented on top of the - ZOOM functions. - The shell is a command line application that allows you to enter - simple commands to perform ZOOM operations. -

    zoom/zoomtst1, - zoom/zoomtst2, ..

    - Several small applications that demonstrates the ZOOM API. -

    - -

    - If you wish to install YAZ in system directories - /usr/local/bin, - /usr/local/lib .. etc, you can type: -

    -     make install
    -    

    - You probably need to have root access in order to perform this. - You must specify the --prefix option for configure if - you wish to install YAZ in other directories than the default - /usr/local/. -

    - If you wish to perform an un-installation of YAZ, use: -

    -     make uninstall
    -    

    - This will only work if you haven't reconfigured YAZ (and therefore - changed installation prefix). Note that uninstall will not - remove directories created by make install, e.g. - /usr/local/include/yaz. -

    2.2. How to make apps using YAZ on UNIX

    - This section describes how to compile - and link your own - applications using the YAZ toolkit. - If you're used to Makefiles this shouldn't be hard. As for - other libraries you have used before, you have to set a proper include - path for your C/C++ compiler and specify the location of - YAZ libraries. You can do it by hand, but generally we suggest - you use the yaz-config that is generated - by configure. This is especially - important if you're using the threaded version of YAZ which - require you to pass more options to your linker/compiler. -

    - The yaz-config script accepts command line - options that makes the yaz-config script print - options that you should use in your make process. - The most important ones are: - --cflags, --libs - which prints C compiler flags, and linker flags respectively. -

    - A small and complete Makefile for a C - application consisting of one source file, - myprog.c, may look like this: -

    -      YAZCONFIG=/usr/local/bin/yaz-config
    -      CFLAGS=`$(YAZCONFIG) --cflags`
    -      LIBS=`$(YAZCONFIG) --libs`
    -      myprog: myprog.o
    -         $(CC) $(CFLAGS) -o myprog myprog.o $(LIBS)
    -      

    -

    - The CFLAGS variable consists of a C compiler directive that will set - the include path to the parent directory - of yaz. That is, if YAZ header files were - installed in /usr/local/include/yaz, - then include path is set to /usr/local/include. - Therefore, in your applications you should use -

    -      #include <yaz/proto.h>
    -     

    - and not -

    -      #include <proto.h>
    -     

    -

    - For Libtool users, the yaz-config script provides - a different variant of option --libs, called - --lalibs that returns the name of the - Libtool acrhive(s) for YAZ rather than the ordinary ones. -

    - For applications using the threaded version of YAZ, - specify threads after the - other options. When threads is given, - more flags and linker flags will be printed by - yaz-config. If our previous example was - using threads, you'd have to modify the lines that set - CFLAGS and LIBS as - follows: -

    -      CFLAGS=`$(YAZCONFIG) --cflags threads`
    -      LIBS=`$(YAZCONFIG) --libs threads`
    -     

    - There is no need specify POSIX thread libraries in your Makefile. - The LIBS variable includes that as well. -

    diff --git a/dependencies/yaz_3.0.14/doc/installation.win32.html b/dependencies/yaz_3.0.14/doc/installation.win32.html deleted file mode 100644 index e00c02d..0000000 --- a/dependencies/yaz_3.0.14/doc/installation.win32.html +++ /dev/null @@ -1,144 +0,0 @@ -3. WIN32

    3. WIN32

    The easiest way to install YAZ on Windows is by downloading - an installer from - here. - The installer comes with source too - in case you wish to - compile YAZ with different Compiler options etc. -

    3.1. Compiling from Source on WIN32

    - YAZ is shipped with "makefiles" for the NMAKE tool that comes - with - Microsoft Visual Studio. - Version 6 and .NET has been tested. We expect that YAZ compiles - with version 5 as well. -

    - Start a command prompt and switch the sub directory - WIN where the file makefile - is located. Customize the installation by editing the - makefile file (for example by using notepad). - - The following summarizes the most important settings in that file: - -

    DEBUG

    - If set to 1, the software is - compiled with debugging libraries (code generation is - multi-threaded debug DLL). - If set to 0, the software is compiled with release libraries - (code generation is multi-threaded DLL). -

    HAVE_TCL, TCL

    - If HAVE_TCL is set to 1, nmake will - use the ASN.1 compiler (Tcl based). You must set - TCL to the full path of the Tcl - interpreter. -

    - If you do not have Tcl installed, set - HAVE_TCL to 0. -

    HAVE_BISON, - BISON

    - If GNU Bison is present, you might set HAVE_ICONV - to 1 and specify the Bison executable in BISON. - Bison is only required if you use the CVS version of - YAZ or if you modify the grammar for CQL - (cql.y). -

    - A Windows version of GNU Bison is part of - unxutils. -

    HAVE_ICONV, - ICONV_DIR

    - If HAVE_ICONV is set to 1, YAZ is compiled - with iconv support. In this configuration, set - ICONV_DIR to the iconv source directory. -

    HAVE_LIBXML2, - LIBXML2_DIR

    - If HAVE_LIBXML2 is set to 1, YAZ is compiled - with SRU support. In this configuration, set - LIBXML2_DIR to the - libxml2 source directory - and - ZLIB_DIR to the zlib directory. -

    - Windows versions of libxslt, libxml2, zlib and iconv can be found - - Igor Zlatković' site. -

    Note

    - YAZ is not using zlib but libxml2 is depending on it. -

    HAVE_LIBXSLT, - LIBXSLT_DIR

    - If HAVE_LIBXSLT is set to 1, YAZ is compiled - with XSLT support. In this configuration, set - LIBXSLT_DIR to the - libxslt source directory. -

    Note

    - libxslt depends libxml2. -

    -

    - When satisfied with the settings in the makefile, type -

    -      nmake
    -     

    -

    Note

    - If the nmake command is not found on your system - you probably haven't defined the environment variables required to - use that tool. To fix that, find and run the batch file - vcvars32.bat. You need to run it from within - the command prompt or set the environment variables "globally"; - otherwise it doesn't work. -

    - If you wish to recompile YAZ - for example if you modify - settings in the makefile you can delete - object files, etc by running. -

    -      nmake clean
    -     

    -

    - The following files are generated upon successful compilation: - -

    bin/yaz3.dll

    - YAZ release mode multi-threaded Dynamic Link Library. -

    lib/yaz3.lib

    - Import library for yaz3.dll. -

    bin/yaz3d.dll

    - YAZ debug mode multi-threaded Dynamic Link Library. -

    lib/yaz3d.lib

    - Import library for yaz3d.dll. -

    bin/yaz-client.exe

    - YAZ Z39.50 client application. It's a WIN32 console application. - See chapter YAZ client for more - information. -

    bin/yaz-ztest.exe

    - Z39.50 multi-threaded test/example server. It's a WIN32 - console application. -

    bin/zoomsh.exe

    - Simple console application implemented on top of the - ZOOM functions. - The application is a command line shell that allows you to enter - simple commands to perform ZOOM operations. -

    bin/zoomtst1.exe, - bin/zoomtst2.exe, ..

    - Several small applications that demonstrates the ZOOM API. -

    - -

    3.2. How to make apps using YAZ on WIN32

    - This section will go though the process of linking your WIN32 - applications with YAZ. -

    - Some people are confused by the fact that we use the nmake - tool to build YAZ. They think they have to do that too - in order - to make their WIN32 applications work with YAZ. The good news is that - you don't have to. You can use the integrated environment of - Visual Studio if desired for your own application. -

    - When setting up a project or Makefile you have to set the following: -

    include path

    - Set it to the include directory of YAZ. -

    import library yaz3.lib -

    - You must link with this library. It's located in the - sub directory lib of YAZ. - If you want to link with the debug version of YAZ, you must - link against yaz3d.lib instead. -

    dynamic link library yaz3.dll -

    - This DLL must be in your execution path when you invoke - your application. Specifically, you should distribute this - DLL with your application. -

    -

    diff --git a/dependencies/yaz_3.0.14/doc/installation.xml b/dependencies/yaz_3.0.14/doc/installation.xml deleted file mode 100644 index 126604b..0000000 --- a/dependencies/yaz_3.0.14/doc/installation.xml +++ /dev/null @@ -1,711 +0,0 @@ - - Compilation and Installation - - Introduction - - The latest version of the software will generally be found at: - - - - - - We have tried our best to keep the software portable, and on many - platforms, you should be able to compile everything with little or - no changes. - - - - The software is regularly tested on - Debian GNU/Linux, - Redhat Linux, - Gentoo Linux, - FreeBSD (i386), - MAC OSX, - SunOS 5.8 (sparc), - Windows 2000, - Windows 2003 server. - - - - Some versions have be known to work on HP/UX, - DEC Unix, NetBSD, - OpenBSD, - IBM AIX, - Data General DG/UX (with some CFLAGS tinkering), - SGI/IRIX, DDE Supermax, Apple Macintosh (using the Codewarrior programming - environment and the GUSI socket libraries), - IBM AS/400 . - - - - If you move the software to other platforms, we'd be grateful if you'd - let us know about it. If you run into difficulties, we will try to help - if we can, and if you solve the problems, we would be happy to include - your fixes in the next release. So far, we have mostly avoided - #ifdefs for individual platforms, and we'd - like to keep it that way as far as it makes sense. - - - - We maintain a mailing-list for the purpose of announcing new releases and - bug-fixes, as well as general discussion. Subscribe by - filling-in the form - here. - General questions and problems can be directed at - , or the address given at the top of - this document. - - - - UNIX - - - We provide - Debian GNU/Linux - and - Redhat packages for &yaz;. - Only i386 binary packages are available. You should be able to - create packages for other CPUs by building them from the source - package. - - - - Compiling from source on Unix - - - Note that if your system doesn't have a native ANSI C compiler, you may - have to acquire one separately. We recommend - GCC. - - - - If you wish to use character set conversion facilities in &yaz; or if you - are compiling &yaz; for use with Zebra it is a good idea to ensure that - the iconv library is installed. Some Unixes today already have it - - if not, we suggest - GNU libiconv. - - - - The libxslt, - libxml2 librararies are required - if &yaz; is to support SRU. - These libraries are very portable and should compile out-of-the - box on virtually all Unix platforms. It is available in binary - forms for Linux and others. - - - - The GNU tools - Autoconf, - Automake and - Libtool - are used to generate Makefiles and configure &yaz; for the system. - You do not these tools unless you're using the - CVS version of &yaz;. - - - - YAZ can optionally be compiled with - libpcap support. By default, - configure enables libpcap if it is available. - The libpcap library is required for - ziffy. And without libpcap, - ziffy will not be built. - - - - The CQL parser for &yaz; is built using - GNU Bison. - This tool is only needed if you're using the CVS version of &yaz;. - - - - &yaz; includes a tiny ASN.1 compiler. This compiler is - written in Tcl. - But as for Bison you do not need it unless you're using CVS - version of &yaz; or you're using the compiler to built own codecs - for private ASN.1. - - - - Generally it should be sufficient to run configure without options, - like this: - - - - ./configure - - - - The configure script attempts to use use the C compiler specified by - the CC environment variable. If not set, GNU C will be - used if it is available. The CFLAGS environment - variable holds options to be passed to the C compiler. If you're using - Bourne-compatible shell you may pass something like this to use a - particular C compiler with optimization enabled: - - - - CC=/opt/ccs/bin/cc CFLAGS=-O ./configure - - - - To customize &yaz;, the configure script also accepts a set of options. - The most important are: - - - - --prefix=prefix - Specifies installation prefix for &yaz;. This is - only needed if you run make install later to - perform a "system" installation. The prefix is - /usr/local if not specified. - - - --enable-tcpd - The front end server will be built using Wietse's - TCP wrapper library. - It allows you to allow/deny clients depending on IP number. - The TCP wrapper library is often used in GNU/Linux and - BSD distributions. - See - - hosts_access - 5 - - and - - tcpd - 8 - . - - - - --enable-threads - &yaz; will be built using POSIX threads. - Specifically, _REENTRANT will be defined during - compilation. - - - - --disable-shared - The make process will not create shared - libraries (also known as shared objects .so). - By default, shared libraries are created - - equivalent to --enable-shared. - - - - --disable-shared - The make process will not create - static libraries (.a). - By default, static libraries are created - - equivalent to --enable-static. - - - - - --with-iconv[=prefix] - - Compile &yaz; with iconv library in directory - prefix. By default configure will - search for iconv on the system. Use this option if it - doesn't find iconv. Alternatively, - --without-iconv, can be uset to force &yaz; - not to use iconv. - - - - - --with-xslt[=prefix] - - Compile &yaz; with - libxslt in directory - prefix. - Use this option if you want SRU support. - By default, configure will - search for libxslt on the system. Use this option if it - libxslt is not found automatically. Alternatively, - --without-xslt, can be used to force &yaz; - not to use libxslt. - - - - - --with-openssl[=prefix] - - &yaz; will be linked with the OpenSSL libraries and - an SSL COMSTACK will be provided. Note that SSL support is still - experimental. - - - - - --with-libpcap[=prefix] - - Compile &yaz; with - libpcap support and the - ziffy utility. - - - - - - - - When configured, build the software by typing: - - make - - - - - The following files are generated by the make process: - - src/libyaz.la - - Main &yaz; library. This is no ordinary library. It's - a Libtool archive. - By default, &yaz; creates a static library in - lib/.libs/libyaz.a. - - - - src/libyaz_server.la - - Generic Frontend server. This is an add-on for libyaz.la. - Code in this library uses POSIX threads functions - if they - available on the platform. - - - - ztest/yaz-ztest - Test Z39.50 server. - - - - client/yaz-client - Z39.50 client for testing the protocol. - See chapter - YAZ client for more information. - - - - ziffy/ziffy - A promiscuous Z39.50 APDU sniffer. - ziffy is only built on systems where libpcap is available. - See for more information. - - - - util/yaz-config - A Bourne-shell script, generated by configure, that - specifies how external applications should compile - and link with - &yaz;. - - - - util/yaz-asncomp - The ASN.1 compiler for &yaz;. Requires the - Tcl Shell, tclsh, in - PATH to operate. - - - - util/yaz-iconv - This program converts data in one character set to - another. This command exercises the YAZ character set - conversion API. - - - - util/yaz-marcdump - This program parses ISO2709 encoded MARC records - and prints them in line-format or XML. - - - - zoom/zoomsh - - A simple shell implemented on top of the - ZOOM functions. - The shell is a command line application that allows you to enter - simple commands to perform ZOOM operations. - - - - zoom/zoomtst1, - zoom/zoomtst2, .. - - Several small applications that demonstrates the ZOOM API. - - - - - - - - If you wish to install &yaz; in system directories - /usr/local/bin, - /usr/local/lib .. etc, you can type: - - - - make install - - - - You probably need to have root access in order to perform this. - You must specify the --prefix option for configure if - you wish to install &yaz; in other directories than the default - /usr/local/. - - - - If you wish to perform an un-installation of &yaz;, use: - - - - make uninstall - - - - This will only work if you haven't reconfigured &yaz; (and therefore - changed installation prefix). Note that uninstall will not - remove directories created by make install, e.g. - /usr/local/include/yaz. - - - - - How to make apps using YAZ on UNIX - - This section describes how to compile - and link your own - applications using the &yaz; toolkit. - If you're used to Makefiles this shouldn't be hard. As for - other libraries you have used before, you have to set a proper include - path for your C/C++ compiler and specify the location of - &yaz; libraries. You can do it by hand, but generally we suggest - you use the yaz-config that is generated - by configure. This is especially - important if you're using the threaded version of &yaz; which - require you to pass more options to your linker/compiler. - - - The yaz-config script accepts command line - options that makes the yaz-config script print - options that you should use in your make process. - The most important ones are: - --cflags, --libs - which prints C compiler flags, and linker flags respectively. - - - A small and complete Makefile for a C - application consisting of one source file, - myprog.c, may look like this: - - YAZCONFIG=/usr/local/bin/yaz-config - CFLAGS=`$(YAZCONFIG) --cflags` - LIBS=`$(YAZCONFIG) --libs` - myprog: myprog.o - $(CC) $(CFLAGS) -o myprog myprog.o $(LIBS) - - - - The CFLAGS variable consists of a C compiler directive that will set - the include path to the parent directory - of yaz. That is, if &yaz; header files were - installed in /usr/local/include/yaz, - then include path is set to /usr/local/include. - Therefore, in your applications you should use - - #include <yaz/proto.h> - - and not - - #include <proto.h> - - - - For Libtool users, the yaz-config script provides - a different variant of option --libs, called - --lalibs that returns the name of the - Libtool acrhive(s) for &yaz; rather than the ordinary ones. - - - For applications using the threaded version of &yaz;, - specify threads after the - other options. When threads is given, - more flags and linker flags will be printed by - yaz-config. If our previous example was - using threads, you'd have to modify the lines that set - CFLAGS and LIBS as - follows: - - CFLAGS=`$(YAZCONFIG) --cflags threads` - LIBS=`$(YAZCONFIG) --libs threads` - - There is no need specify POSIX thread libraries in your Makefile. - The LIBS variable includes that as well. - - - - WIN32 - - The easiest way to install YAZ on Windows is by downloading - an installer from - here. - The installer comes with source too - in case you wish to - compile YAZ with different Compiler options etc. - - - - Compiling from Source on WIN32 - - &yaz; is shipped with "makefiles" for the NMAKE tool that comes - with - Microsoft Visual Studio. - Version 6 and .NET has been tested. We expect that &yaz; compiles - with version 5 as well. - - - Start a command prompt and switch the sub directory - WIN where the file makefile - is located. Customize the installation by editing the - makefile file (for example by using notepad). - - The following summarizes the most important settings in that file: - - - DEBUG - - If set to 1, the software is - compiled with debugging libraries (code generation is - multi-threaded debug DLL). - If set to 0, the software is compiled with release libraries - (code generation is multi-threaded DLL). - - - - HAVE_TCL, TCL - - If HAVE_TCL is set to 1, nmake will - use the ASN.1 compiler (Tcl based). You must set - TCL to the full path of the Tcl - interpreter. - - - If you do not have Tcl installed, set - HAVE_TCL to 0. - - - - - HAVE_BISON, - BISON - - If GNU Bison is present, you might set HAVE_ICONV - to 1 and specify the Bison executable in BISON. - Bison is only required if you use the CVS version of - YAZ or if you modify the grammar for CQL - (cql.y). - - - A Windows version of GNU Bison is part of - unxutils. - - - - - HAVE_ICONV, - ICONV_DIR - - If HAVE_ICONV is set to 1, YAZ is compiled - with iconv support. In this configuration, set - ICONV_DIR to the iconv source directory. - - - - - HAVE_LIBXML2, - LIBXML2_DIR - - - If HAVE_LIBXML2 is set to 1, YAZ is compiled - with SRU support. In this configuration, set - LIBXML2_DIR to the - libxml2 source directory - and - ZLIB_DIR to the zlib directory. - - - - Windows versions of libxslt, libxml2, zlib and iconv can be found - - Igor Zlatković' site. - - - - - YAZ is not using zlib but libxml2 is depending on it. - - - - - - - HAVE_LIBXSLT, - LIBXSLT_DIR - - - If HAVE_LIBXSLT is set to 1, YAZ is compiled - with XSLT support. In this configuration, set - LIBXSLT_DIR to the - libxslt source directory. - - - - - libxslt depends libxml2. - - - - - - - - - - When satisfied with the settings in the makefile, type - - nmake - - - - - If the nmake command is not found on your system - you probably haven't defined the environment variables required to - use that tool. To fix that, find and run the batch file - vcvars32.bat. You need to run it from within - the command prompt or set the environment variables "globally"; - otherwise it doesn't work. - - - - If you wish to recompile &yaz; - for example if you modify - settings in the makefile you can delete - object files, etc by running. - - nmake clean - - - - The following files are generated upon successful compilation: - - - bin/yaz3.dll - - &yaz; release mode multi-threaded Dynamic Link Library. - - - lib/yaz3.lib - - Import library for yaz3.dll. - - - bin/yaz3d.dll - - &yaz; debug mode multi-threaded Dynamic Link Library. - - - lib/yaz3d.lib - - Import library for yaz3d.dll. - - - bin/yaz-client.exe - - &yaz; Z39.50 client application. It's a WIN32 console application. - See chapter YAZ client for more - information. - - - bin/yaz-ztest.exe - - Z39.50 multi-threaded test/example server. It's a WIN32 - console application. - - - bin/zoomsh.exe - - Simple console application implemented on top of the - ZOOM functions. - The application is a command line shell that allows you to enter - simple commands to perform ZOOM operations. - - - bin/zoomtst1.exe, - bin/zoomtst2.exe, .. - - Several small applications that demonstrates the ZOOM API. - - - - - - - - - How to make apps using YAZ on WIN32 - - This section will go though the process of linking your WIN32 - applications with &yaz;. - - - Some people are confused by the fact that we use the nmake - tool to build &yaz;. They think they have to do that too - in order - to make their WIN32 applications work with &yaz;. The good news is that - you don't have to. You can use the integrated environment of - Visual Studio if desired for your own application. - - - When setting up a project or Makefile you have to set the following: - - include path - Set it to the include directory of &yaz;. - - import library yaz3.lib - - You must link with this library. It's located in the - sub directory lib of &yaz;. - If you want to link with the debug version of &yaz;, you must - link against yaz3d.lib instead. - - dynamic link library yaz3.dll - - This DLL must be in your execution path when you invoke - your application. Specifically, you should distribute this - DLL with your application. - - - - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/introduction.api.html b/dependencies/yaz_3.0.14/doc/introduction.api.html deleted file mode 100644 index 7df6e86..0000000 --- a/dependencies/yaz_3.0.14/doc/introduction.api.html +++ /dev/null @@ -1,98 +0,0 @@ -2. The API

    2. The API

    - The YAZ - toolkit offers several different levels of access to the - ISO23950/Z39.50, - ILL and - SRU - protocols. - The level that you need to use depends on your requirements, and - the role (server or client) that you want to implement. - If you're developing a client application you should consider the - ZOOM API. - It is, by far, the easiest way to develop clients in C. - Server implementers should consider the - generic frontend server. - None of those high-level APIs support the whole protocol, but - they do include most facilities used in existing Z39.50 applications. -

    - If you're using 'exotic' functionality (meaning anything not included in - the high-level APIs), developing non-standard extensions to Z39.50 or - you're going to develop an ILL application you'll have to learn the lower - level APIs of YAZ. -

    - The YAZ toolkit modules is shown in figure Figure 1.1, “YAZ layers”. -

    Figure 1.1. YAZ layers

    YAZ layers

    - There are four layers. -

    • A client or server application (or both). - This layer includes ZOOM and the generic frontend server. -

    • - The second layer provides a C represenation of the - protocol units (packages) for Z39.50 ASN.1, ILL ASN.1, - SRU. -

    • - The third layer encodes and decodes protocol data units to - simple packages (buffer with certain length). The ODR module - encodes and decodes BER whereas the HTTP modules encodes and - decodes HTTP ruquests/responses. -

    • - The lowest layer is COMSTACK which exchanges the encoded packages - with a peer process over a network. -

    -

    - The Z39.50 ASN.1 module represents the ASN.1 definition of - the Z39.50 protocol. It establishes a set of type and - structure definitions, with one structure for each of the top-level - PDUs, and one structure or type for each of the contained ASN.1 types. - For primitive types, or other types that are defined by the ASN.1 - standard itself (such as the EXTERNAL type), the C representation is - provided by the ODR (Open Data Representation) subsystem. -

    - ODR is a basic mechanism for representing an - ASN.1 type in the C programming language, and for implementing BER - encoders and decoders for values of that type. The types defined in - the Z39.50 ASN.1 module generally have the prefix Z_, and - a suffix corresponding to the name of the type in the ASN.1 - specification of the protocol (generally Z39.50-1995). In the case of - base types (those originating in the ASN.1 standard itself), the prefix - Odr_ is sometimes seen. Either way, look for - the actual definition in either z-core.h (for the types - from the protocol), odr.h (for the primitive ASN.1 - types). - The Z39.50 ASN.1 library also provides functions (which are, in turn, - defined using ODR primitives) for encoding and decoding data values. - Their general form is - -

    int z_xxx(o,  
     p,  
     optional,  
     name); 
    ODR  o;
    Z_xxx ** p;
    int  optional;
    const char * name;

    - (note the lower-case "z" in the function name) -

    Note

    - If you are using the premade definitions of the Z39.50 ASN.1 module, and you - are not adding new protocol of your own, the only parts of ODR that you - need to worry about are documented in - Section 2, “Using ODR”. -

    - When you have created a BER-encoded buffer, you can use the COMSTACK - subsystem to transmit (or receive) data over the network. The COMSTACK - module provides simple functions for establishing a connection - (passively or actively, depending on the role of your application), - and for exchanging BER-encoded PDUs over that connection. When you - create a connection endpoint, you need to specify what transport to - use (TCP/IP, SSL or UNIX sockets). - For the remainder of the connection's lifetime, you don't have - to worry about the underlying transport protocol at all - the COMSTACK - will ensure that the correct mechanism is used. -

    - We call the combined interfaces to ODR, Z39.50 ASN.1, and COMSTACK the service - level API. It's the API that most closely models the Z39.50 - service/protocol definition, and it provides unlimited access to all - fields and facilities of the protocol definitions. -

    - The reason that the YAZ service-level API is a conglomerate of the - APIs from three different submodules is twofold. First, we wanted to allow - the user a choice of different options for each major task. For instance, - if you don't like the protocol API provided by ODR/Z39.50 ASN.1, you - can use SNACC or BERUtils instead, and still have the benefits of the - transparent transport approach of the COMSTACK module. Secondly, - we realize that you may have to fit the toolkit into an existing - event-processing structure, in a way that is incompatible with - the COMSTACK interface or some other part of YAZ. -

    diff --git a/dependencies/yaz_3.0.14/doc/introduction.html b/dependencies/yaz_3.0.14/doc/introduction.html deleted file mode 100644 index 7d32b3a..0000000 --- a/dependencies/yaz_3.0.14/doc/introduction.html +++ /dev/null @@ -1,97 +0,0 @@ -Chapter 1. Introduction

    Chapter 1. Introduction

    - YAZ is a C/C++ library for information retrieval applications - using the Z39.50/SRU protocols for information retrieval. -

    - Properties of YAZ: -

    • - Complete - Z39.50 version 3 support. - Amendments and Z39.50-2002 revision is supported. -

    • - Supports - SRU GET/POST/SOAP - version 1.1 (over HTTP and HTTPS). -

    • - Includes BER encoders/decoders for the - ISO ILL - protocol. -

    • - Supports the following transports: BER over TCP/IP - (RFC1729), - BER over unix local socket, and - HTTP 1.1. -

    • - Secure Socket Layer support using - OpenSSL. - If enabled, YAZ uses HTTPS transport (for SOAP) or - "Secure BER" (for Z39.50). -

    • - Offers - ZOOM C API implementing both - Z39.50 and SRU. -

    • - The YAZ library offers a set of useful utilities - related to the protocols, such as MARC (ISO2709) parser, - CCL (ISO8777) parser, - CQL - parser, memory management routines, character set conversion. -

    • - Portable code. YAZ compiles out-of-the box on most Unixes and - on Windows using Microsoft Visual C++. -

    • - Fast operation. The C based BER encoders/decoders as well - as the server component of YAZ is very fast. -

    • - Liberal license that allows for commercial use of YAZ. -

    -

    1. Reading this Manual

    Most implementors only need to read a fraction of the - material in thie manual, so a quick walkthrough of the chapters - is in order. -

    • - Chapter 2, Compilation and Installation contains installation - instructions for YAZ. You don't need reading this - if you expect to download YAZ binaries. - However, the chapter contains information about how - to make your application link - with YAZ. -

    • - Chapter 3, ZOOM describes the ZOOM API of YAZ. - This is definitely worth a read if you wish to develop a Z39.50/SRU - client. -

    • - Chapter 4, Generic server describes the generic frontend server - and explains how to develop server Z39.50/SRU applications for YAZ. - Obviously worth reading if you're to develop a server. -

    • - Chapter 5, The YAZ client describes how to use the YAZ Z39.50 - client. If you're developer and wish to test your server - or a server from another party, you might find this chapter - useful. -

    • - Chapter 7, The Z39.50 ASN.1 Module documents the most commonly used Z39.50 - C data structures offered by the YAZ API. Client - developers using ZOOM and non-Z39.50 implementors may skip this. -

    • - Chapter 8, SOAP and SRU describes how SRU and SOAP is used - in YAZ. Only if you're developing SRU applications - this section is a must. -

    • - Chapter 9, Supporting Tools contains sections for the various - tools offered by YAZ. Scan through the material quickly - and see what's relevant to you! SRU implementors - might find the CQL section - particularly useful. -

    • - Chapter 10, The ODR Module goes through the details of the - ODR module which is the work horse that encodes and decodes - BER packages. Implementors using ZOOM only, do not - need reading this. - Most other Z39.50 implementors only need to read the first two - sections (Section 1, “Introduction” and - Section 2, “Using ODR”). -

    • - Chapter 11, The COMSTACK Module describes the network layer module - COMSTACK. Implementors using ZOOM or the generic frontend server - may skip this. Others, presumably, handling client/server - communication on their own should read this. -

    diff --git a/dependencies/yaz_3.0.14/doc/introduction.xml b/dependencies/yaz_3.0.14/doc/introduction.xml deleted file mode 100644 index 8b18385..0000000 --- a/dependencies/yaz_3.0.14/doc/introduction.xml +++ /dev/null @@ -1,316 +0,0 @@ - - Introduction - - - &yaz; is a C/C++ library for information retrieval applications - using the Z39.50/SRU protocols for information retrieval. - - - - Properties of &yaz;: - - - Complete - Z39.50 version 3 support. - Amendments and Z39.50-2002 revision is supported. - - - Supports - SRU GET/POST/SOAP - version 1.1 (over HTTP and HTTPS). - - - Includes BER encoders/decoders for the - ISO ILL - protocol. - - - Supports the following transports: BER over TCP/IP - (RFC1729), - BER over unix local socket, and - HTTP 1.1. - - - Secure Socket Layer support using - OpenSSL. - If enabled, &yaz; uses HTTPS transport (for SOAP) or - "Secure BER" (for Z39.50). - - - Offers - ZOOM C API implementing both - Z39.50 and SRU. - - - The &yaz; library offers a set of useful utilities - related to the protocols, such as MARC (ISO2709) parser, - CCL (ISO8777) parser, - CQL - parser, memory management routines, character set conversion. - - - Portable code. &yaz; compiles out-of-the box on most Unixes and - on Windows using Microsoft Visual C++. - - - Fast operation. The C based BER encoders/decoders as well - as the server component of &yaz; is very fast. - - - Liberal license that allows for commercial use of &yaz;. - - - - - Reading this Manual - Most implementors only need to read a fraction of the - material in thie manual, so a quick walkthrough of the chapters - is in order. - - - - - contains installation - instructions for &yaz;. You don't need reading this - if you expect to download &yaz; binaries. - However, the chapter contains information about how - to make your application link - with &yaz;. - - - - - - describes the ZOOM API of &yaz;. - This is definitely worth a read if you wish to develop a Z39.50/SRU - client. - - - - - - describes the generic frontend server - and explains how to develop server Z39.50/SRU applications for &yaz;. - Obviously worth reading if you're to develop a server. - - - - - - describes how to use the &yaz; Z39.50 - client. If you're developer and wish to test your server - or a server from another party, you might find this chapter - useful. - - - - - - documents the most commonly used Z39.50 - C data structures offered by the &yaz; API. Client - developers using ZOOM and non-Z39.50 implementors may skip this. - - - - - - describes how SRU and SOAP is used - in &yaz;. Only if you're developing SRU applications - this section is a must. - - - - - - contains sections for the various - tools offered by &yaz;. Scan through the material quickly - and see what's relevant to you! SRU implementors - might find the CQL section - particularly useful. - - - - - - goes through the details of the - ODR module which is the work horse that encodes and decodes - BER packages. Implementors using ZOOM only, do not - need reading this. - Most other Z39.50 implementors only need to read the first two - sections ( and - ). - - - - - - describes the network layer module - COMSTACK. Implementors using ZOOM or the generic frontend server - may skip this. Others, presumably, handling client/server - communication on their own should read this. - - - - - - The API - - - The &yaz; - toolkit offers several different levels of access to the - ISO23950/Z39.50, - ILL and - SRU - protocols. - The level that you need to use depends on your requirements, and - the role (server or client) that you want to implement. - If you're developing a client application you should consider the - ZOOM API. - It is, by far, the easiest way to develop clients in C. - Server implementers should consider the - generic frontend server. - None of those high-level APIs support the whole protocol, but - they do include most facilities used in existing Z39.50 applications. - - - If you're using 'exotic' functionality (meaning anything not included in - the high-level APIs), developing non-standard extensions to Z39.50 or - you're going to develop an ILL application you'll have to learn the lower - level APIs of &yaz;. - - - The YAZ toolkit modules is shown in figure . - -
    - YAZ layers - - - - - - - - -
    - - There are four layers. - - - A client or server application (or both). - This layer includes ZOOM and the generic frontend server. - - - - - The second layer provides a C represenation of the - protocol units (packages) for Z39.50 ASN.1, ILL ASN.1, - SRU. - - - - - The third layer encodes and decodes protocol data units to - simple packages (buffer with certain length). The &odr; module - encodes and decodes BER whereas the HTTP modules encodes and - decodes HTTP ruquests/responses. - - - - - The lowest layer is &comstack; which exchanges the encoded packages - with a peer process over a network. - - - - - - The &asn; module represents the ASN.1 definition of - the Z39.50 protocol. It establishes a set of type and - structure definitions, with one structure for each of the top-level - PDUs, and one structure or type for each of the contained ASN.1 types. - For primitive types, or other types that are defined by the ASN.1 - standard itself (such as the EXTERNAL type), the C representation is - provided by the &odr; (Open Data Representation) subsystem. - - - &odr; is a basic mechanism for representing an - ASN.1 type in the C programming language, and for implementing BER - encoders and decoders for values of that type. The types defined in - the &asn; module generally have the prefix Z_, and - a suffix corresponding to the name of the type in the ASN.1 - specification of the protocol (generally Z39.50-1995). In the case of - base types (those originating in the ASN.1 standard itself), the prefix - Odr_ is sometimes seen. Either way, look for - the actual definition in either z-core.h (for the types - from the protocol), odr.h (for the primitive ASN.1 - types). - The &asn; library also provides functions (which are, in turn, - defined using &odr; primitives) for encoding and decoding data values. - Their general form is - - - int z_xxx - ODR o - Z_xxx **p - int optional - const char *name - - - (note the lower-case "z" in the function name) - - - - - If you are using the premade definitions of the &asn; module, and you - are not adding new protocol of your own, the only parts of &odr; that you - need to worry about are documented in - . - - - - - When you have created a BER-encoded buffer, you can use the &comstack; - subsystem to transmit (or receive) data over the network. The &comstack; - module provides simple functions for establishing a connection - (passively or actively, depending on the role of your application), - and for exchanging BER-encoded PDUs over that connection. When you - create a connection endpoint, you need to specify what transport to - use (TCP/IP, SSL or UNIX sockets). - For the remainder of the connection's lifetime, you don't have - to worry about the underlying transport protocol at all - the &comstack; - will ensure that the correct mechanism is used. - - - We call the combined interfaces to &odr;, &asn;, and &comstack; the service - level API. It's the API that most closely models the Z39.50 - service/protocol definition, and it provides unlimited access to all - fields and facilities of the protocol definitions. - - - The reason that the &yaz; service-level API is a conglomerate of the - APIs from three different submodules is twofold. First, we wanted to allow - the user a choice of different options for each major task. For instance, - if you don't like the protocol API provided by &odr;/&asn;, you - can use SNACC or BERUtils instead, and still have the benefits of the - transparent transport approach of the &comstack; module. Secondly, - we realize that you may have to fit the toolkit into an existing - event-processing structure, in a way that is incompatible with - the &comstack; interface or some other part of &yaz;. - -
    -
    - - diff --git a/dependencies/yaz_3.0.14/doc/license.html b/dependencies/yaz_3.0.14/doc/license.html deleted file mode 100644 index 5ccf876..0000000 --- a/dependencies/yaz_3.0.14/doc/license.html +++ /dev/null @@ -1,31 +0,0 @@ -Appendix B. License

    Appendix B. License

    1. Index Data Copyright

    - Copyright © 1995-2007 Index Data. -

    - All rights reserved. -

    - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: -

    • - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -

    • - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -

    • - Neither the name of Index Data nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. -

    - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. -

    diff --git a/dependencies/yaz_3.0.14/doc/license.other.html b/dependencies/yaz_3.0.14/doc/license.other.html deleted file mode 100644 index 00e4e6c..0000000 --- a/dependencies/yaz_3.0.14/doc/license.other.html +++ /dev/null @@ -1,48 +0,0 @@ -2. Additional Copyright Statements

    2. Additional Copyright Statements

    2.1. ziffy

    - The software in directory ziffy and the - ziffy application is copyright - Rocco Carbone and covered by the GNU General public license, version 2. -

    2.2. CCL

    - The optional CCL query language interpreter is covered by the following - license: -

    - Copyright © 1995, the EUROPAGATE consortium (see below). -


    -    The EUROPAGATE consortium members are:
    -    University College Dublin
    -    Danmarks Teknologiske Videnscenter
    -    An Chomhairle Leabharlanna
    -    Consejo Superior de Investigaciones Cientificas
    -   

    - Permission to use, copy, modify, distribute, and sell this software and - its documentation, in whole or in part, for any purpose, is hereby granted, - provided that: -

    - 1. This copyright and permission notice appear in all copies of the - software and its documentation. Notices of copyright or attribution - which appear at the beginning of any file must remain unchanged. -

    - 2. The names of EUROPAGATE or the project partners may not be used to - endorse or promote products derived from this software without specific - prior written permission. -

    - 3. Users of this software (implementors and gateway operators) agree to - inform the EUROPAGATE consortium of their use of the software. This - information will be used to evaluate the EUROPAGATE project and the - software, and to plan further developments. The consortium may use - the information in later publications. -

    - 4. Users of this software agree to make their best efforts, when - documenting their use of the software, to acknowledge the EUROPAGATE - consortium, and the role played by the software in their work. -

    - THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - USE OR PERFORMANCE OF THIS SOFTWARE. -

    diff --git a/dependencies/yaz_3.0.14/doc/license.xml b/dependencies/yaz_3.0.14/doc/license.xml deleted file mode 100644 index 100fa5f..0000000 --- a/dependencies/yaz_3.0.14/doc/license.xml +++ /dev/null @@ -1,143 +0,0 @@ - - License - - Index Data Copyright - - - Copyright © ©right-year; Index Data. - - - All rights reserved. - - - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - - - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - - - - Neither the name of Index Data nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - - - - - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - - - Additional Copyright Statements - - ziffy - - The software in directory ziffy and the - ziffy application is copyright - Rocco Carbone and covered by the GNU General public license, version 2. - - - - CCL - - The optional CCL query language interpreter is covered by the following - license: - - - - Copyright © 1995, the EUROPAGATE consortium (see below). - - - - The EUROPAGATE consortium members are: - University College Dublin - Danmarks Teknologiske Videnscenter - An Chomhairle Leabharlanna - Consejo Superior de Investigaciones Cientificas - - - - Permission to use, copy, modify, distribute, and sell this software and - its documentation, in whole or in part, for any purpose, is hereby granted, - provided that: - - - - 1. This copyright and permission notice appear in all copies of the - software and its documentation. Notices of copyright or attribution - which appear at the beginning of any file must remain unchanged. - - - - 2. The names of EUROPAGATE or the project partners may not be used to - endorse or promote products derived from this software without specific - prior written permission. - - - - 3. Users of this software (implementors and gateway operators) agree to - inform the EUROPAGATE consortium of their use of the software. This - information will be used to evaluate the EUROPAGATE project and the - software, and to plan further developments. The consortium may use - the information in later publications. - - - - 4. Users of this software agree to make their best efforts, when - documenting their use of the software, to acknowledge the EUROPAGATE - consortium, and the role played by the software in their work. - - - - THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - USE OR PERFORMANCE OF THIS SOFTWARE. - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/list-oids.html b/dependencies/yaz_3.0.14/doc/list-oids.html deleted file mode 100644 index 3a02327..0000000 --- a/dependencies/yaz_3.0.14/doc/list-oids.html +++ /dev/null @@ -1,1123 +0,0 @@ -Appendix A. List of Object Identifiers

    Appendix A. List of Object Identifiers

    - These is a list of object identifiers that are built into YAZ. -

    NameClassConstant / OID
    -BER - -TRANSYN - -yaz_oid_transyn_ber -
    -2.1.1 -
    -ISO2709 - -TRANSYN - -yaz_oid_transyn_iso2709 -
    -1.0.2709.1.1 -
    -ISOILL-1 - -GENERAL - -yaz_oid_general_isoill_1 -
    -1.0.10161.2.1 -
    -Z-APDU - -ABSYN - -yaz_oid_absyn_z_apdu -
    -2.1 -
    -Z-BASIC - -APPCTX - -yaz_oid_appctx_z_basic -
    -1.1 -
    -Bib-1 - -ATTSET - -yaz_oid_attset_bib_1 -
    -Z3950_PREFIX.3.1 -
    -Exp-1 - -ATTSET - -yaz_oid_attset_exp_1 -
    -Z3950_PREFIX.3.2 -
    -Ext-1 - -ATTSET - -yaz_oid_attset_ext_1 -
    -Z3950_PREFIX.3.3 -
    -CCL-1 - -ATTSET - -yaz_oid_attset_ccl_1 -
    -Z3950_PREFIX.3.4 -
    -GILS - -ATTSET - -yaz_oid_attset_gils -
    -Z3950_PREFIX.3.5 -
    -GILS-attset - -ATTSET - -yaz_oid_attset_gils_attset -
    -Z3950_PREFIX.3.5 -
    -STAS-attset - -ATTSET - -yaz_oid_attset_stas_attset -
    -Z3950_PREFIX.3.6 -
    -Collections-attset - -ATTSET - -yaz_oid_attset_collections_attset -
    -Z3950_PREFIX.3.7 -
    -CIMI-attset - -ATTSET - -yaz_oid_attset_cimi_attset -
    -Z3950_PREFIX.3.8 -
    -Geo-attset - -ATTSET - -yaz_oid_attset_geo_attset -
    -Z3950_PREFIX.3.9 -
    -ZBIG - -ATTSET - -yaz_oid_attset_zbig -
    -Z3950_PREFIX.3.10 -
    -Util - -ATTSET - -yaz_oid_attset_util -
    -Z3950_PREFIX.3.11 -
    -XD-1 - -ATTSET - -yaz_oid_attset_xd_1 -
    -Z3950_PREFIX.3.12 -
    -Zthes - -ATTSET - -yaz_oid_attset_zthes -
    -Z3950_PREFIX.3.13 -
    -Fin-1 - -ATTSET - -yaz_oid_attset_fin_1 -
    -Z3950_PREFIX.3.14 -
    -Dan-1 - -ATTSET - -yaz_oid_attset_dan_1 -
    -Z3950_PREFIX.3.15 -
    -Holdings - -ATTSET - -yaz_oid_attset_holdings -
    -Z3950_PREFIX.3.16 -
    -MARC - -ATTSET - -yaz_oid_attset_marc -
    -Z3950_PREFIX.3.17 -
    -Bib-2 - -ATTSET - -yaz_oid_attset_bib_2 -
    -Z3950_PREFIX.3.18 -
    -ZeeRex - -ATTSET - -yaz_oid_attset_zeerex -
    -Z3950_PREFIX.3.19 -
    -Thesaurus-attset - -ATTSET - -yaz_oid_attset_thesaurus_attset -
    -Z3950_PREFIX.3.1000.81.1 -
    -IDXPATH - -ATTSET - -yaz_oid_attset_idxpath -
    -Z3950_PREFIX.3.1000.81.2 -
    -EXTLITE - -ATTSET - -yaz_oid_attset_extlite -
    -Z3950_PREFIX.3.1000.81.3 -
    -Bib-1 - -DIAGSET - -yaz_oid_diagset_bib_1 -
    -Z3950_PREFIX.4.1 -
    -Diag-1 - -DIAGSET - -yaz_oid_diagset_diag_1 -
    -Z3950_PREFIX.4.2 -
    -Diag-ES - -DIAGSET - -yaz_oid_diagset_diag_es -
    -Z3950_PREFIX.4.3 -
    -Diag-General - -DIAGSET - -yaz_oid_diagset_diag_general -
    -Z3950_PREFIX.4.3 -
    -Unimarc - -RECSYN - -yaz_oid_recsyn_unimarc -
    -Z3950_PREFIX.5.1 -
    -Intermarc - -RECSYN - -yaz_oid_recsyn_intermarc -
    -Z3950_PREFIX.5.2 -
    -CCF - -RECSYN - -yaz_oid_recsyn_ccf -
    -Z3950_PREFIX.5.3 -
    -USmarc - -RECSYN - -yaz_oid_recsyn_usmarc -
    -Z3950_PREFIX.5.10 -
    -MARC21 - -RECSYN - -yaz_oid_recsyn_marc21 -
    -Z3950_PREFIX.5.10 -
    -UKmarc - -RECSYN - -yaz_oid_recsyn_ukmarc -
    -Z3950_PREFIX.5.11 -
    -Normarc - -RECSYN - -yaz_oid_recsyn_normarc -
    -Z3950_PREFIX.5.12 -
    -Librismarc - -RECSYN - -yaz_oid_recsyn_librismarc -
    -Z3950_PREFIX.5.13 -
    -Danmarc - -RECSYN - -yaz_oid_recsyn_danmarc -
    -Z3950_PREFIX.5.14 -
    -Finmarc - -RECSYN - -yaz_oid_recsyn_finmarc -
    -Z3950_PREFIX.5.15 -
    -MAB - -RECSYN - -yaz_oid_recsyn_mab -
    -Z3950_PREFIX.5.16 -
    -Canmarc - -RECSYN - -yaz_oid_recsyn_canmarc -
    -Z3950_PREFIX.5.17 -
    -SBN - -RECSYN - -yaz_oid_recsyn_sbn -
    -Z3950_PREFIX.5.18 -
    -Picamarc - -RECSYN - -yaz_oid_recsyn_picamarc -
    -Z3950_PREFIX.5.19 -
    -Ausmarc - -RECSYN - -yaz_oid_recsyn_ausmarc -
    -Z3950_PREFIX.5.20 -
    -Ibermarc - -RECSYN - -yaz_oid_recsyn_ibermarc -
    -Z3950_PREFIX.5.21 -
    -Carmarc - -RECSYN - -yaz_oid_recsyn_carmarc -
    -Z3950_PREFIX.5.22 -
    -Malmarc - -RECSYN - -yaz_oid_recsyn_malmarc -
    -Z3950_PREFIX.5.23 -
    -JPmarc - -RECSYN - -yaz_oid_recsyn_jpmarc -
    -Z3950_PREFIX.5.24 -
    -SWEmarc - -RECSYN - -yaz_oid_recsyn_swemarc -
    -Z3950_PREFIX.5.25 -
    -SIGLEmarc - -RECSYN - -yaz_oid_recsyn_siglemarc -
    -Z3950_PREFIX.5.26 -
    -ISDSmarc - -RECSYN - -yaz_oid_recsyn_isdsmarc -
    -Z3950_PREFIX.5.27 -
    -RUSmarc - -RECSYN - -yaz_oid_recsyn_rusmarc -
    -Z3950_PREFIX.5.28 -
    -Hunmarc - -RECSYN - -yaz_oid_recsyn_hunmarc -
    -Z3950_PREFIX.5.29 -
    -NACSIS-CATP - -RECSYN - -yaz_oid_recsyn_nacsis_catp -
    -Z3950_PREFIX.5.30 -
    -FINMARC2000 - -RECSYN - -yaz_oid_recsyn_finmarc2000 -
    -Z3950_PREFIX.5.31 -
    -MARC21-fin - -RECSYN - -yaz_oid_recsyn_marc21_fin -
    -Z3950_PREFIX.5.32 -
    -Explain - -RECSYN - -yaz_oid_recsyn_explain -
    -Z3950_PREFIX.5.100 -
    -SUTRS - -RECSYN - -yaz_oid_recsyn_sutrs -
    -Z3950_PREFIX.5.101 -
    -OPAC - -RECSYN - -yaz_oid_recsyn_opac -
    -Z3950_PREFIX.5.102 -
    -Summary - -RECSYN - -yaz_oid_recsyn_summary -
    -Z3950_PREFIX.5.103 -
    -GRS-0 - -RECSYN - -yaz_oid_recsyn_grs_0 -
    -Z3950_PREFIX.5.104 -
    -GRS-1 - -RECSYN - -yaz_oid_recsyn_grs_1 -
    -Z3950_PREFIX.5.105 -
    -Extended - -RECSYN - -yaz_oid_recsyn_extended -
    -Z3950_PREFIX.5.106 -
    -Fragment - -RECSYN - -yaz_oid_recsyn_fragment -
    -Z3950_PREFIX.5.107 -
    -pdf - -RECSYN - -yaz_oid_recsyn_pdf -
    -Z3950_PREFIX.5.109.1 -
    -postscript - -RECSYN - -yaz_oid_recsyn_postscript -
    -Z3950_PREFIX.5.109.2 -
    -html - -RECSYN - -yaz_oid_recsyn_html -
    -Z3950_PREFIX.5.109.3 -
    -tiff - -RECSYN - -yaz_oid_recsyn_tiff -
    -Z3950_PREFIX.5.109.4 -
    -gif - -RECSYN - -yaz_oid_recsyn_gif -
    -Z3950_PREFIX.5.109.5 -
    -jpeg - -RECSYN - -yaz_oid_recsyn_jpeg -
    -Z3950_PREFIX.5.109.6 -
    -png - -RECSYN - -yaz_oid_recsyn_png -
    -Z3950_PREFIX.5.109.7 -
    -mpeg - -RECSYN - -yaz_oid_recsyn_mpeg -
    -Z3950_PREFIX.5.109.8 -
    -sgml - -RECSYN - -yaz_oid_recsyn_sgml -
    -Z3950_PREFIX.5.109.9 -
    -tiff-b - -RECSYN - -yaz_oid_recsyn_tiff_b -
    -Z3950_PREFIX.5.110.1 -
    -wav - -RECSYN - -yaz_oid_recsyn_wav -
    -Z3950_PREFIX.5.110.2 -
    -SQL-RS - -RECSYN - -yaz_oid_recsyn_sql_rs -
    -Z3950_PREFIX.5.111 -
    -SOIF - -RECSYN - -yaz_oid_recsyn_soif -
    -Z3950_PREFIX.5.1000.81.2 -
    -XML - -RECSYN - -yaz_oid_recsyn_xml -
    -Z3950_PREFIX.5.109.10 -
    -text-XML - -RECSYN - -yaz_oid_recsyn_text_xml -
    -Z3950_PREFIX.5.109.10 -
    -application-XML - -RECSYN - -yaz_oid_recsyn_application_xml -
    -Z3950_PREFIX.5.109.11 -
    -Resource-1 - -RESFORM - -yaz_oid_resform_resource_1 -
    -Z3950_PREFIX.7.1 -
    -Resource-2 - -RESFORM - -yaz_oid_resform_resource_2 -
    -Z3950_PREFIX.7.2 -
    -UNIverse-Resource-Report - -RESFORM - -yaz_oid_resform_universe_resource_report -
    -Z3950_PREFIX.7.1000.81.1 -
    -Prompt-1 - -ACCFORM - -yaz_oid_accform_prompt_1 -
    -Z3950_PREFIX.8.1 -
    -Des-1 - -ACCFORM - -yaz_oid_accform_des_1 -
    -Z3950_PREFIX.8.2 -
    -Krb-1 - -ACCFORM - -yaz_oid_accform_krb_1 -
    -Z3950_PREFIX.8.3 -
    -Persistent set - -EXTSERV - -yaz_oid_extserv_persistent_set -
    -Z3950_PREFIX.9.1 -
    -Persistent query - -EXTSERV - -yaz_oid_extserv_persistent_query -
    -Z3950_PREFIX.9.2 -
    -Periodic query - -EXTSERV - -yaz_oid_extserv_periodic_query -
    -Z3950_PREFIX.9.3 -
    -Item order - -EXTSERV - -yaz_oid_extserv_item_order -
    -Z3950_PREFIX.9.4 -
    -Database Update (first version) - -EXTSERV - -yaz_oid_extserv_database_update_first_version -
    -Z3950_PREFIX.9.5 -
    -Database Update (second version) - -EXTSERV - -yaz_oid_extserv_database_update_second_version -
    -Z3950_PREFIX.9.5.1 -
    -Database Update - -EXTSERV - -yaz_oid_extserv_database_update -
    -Z3950_PREFIX.9.5.1.1 -
    -exp. spec. - -EXTSERV - -yaz_oid_extserv_exp__spec_ -
    -Z3950_PREFIX.9.6 -
    -exp. inv. - -EXTSERV - -yaz_oid_extserv_exp__inv_ -
    -Z3950_PREFIX.9.7 -
    -Admin - -EXTSERV - -yaz_oid_extserv_admin -
    -Z3950_PREFIX.9.1000.81.1 -
    -searchResult-1 - -USERINFO - -yaz_oid_userinfo_searchresult_1 -
    -Z3950_PREFIX.10.1 -
    -CharSetandLanguageNegotiation - -USERINFO - -yaz_oid_userinfo_charsetandlanguagenegotiation -
    -Z3950_PREFIX.10.2 -
    -UserInfo-1 - -USERINFO - -yaz_oid_userinfo_userinfo_1 -
    -Z3950_PREFIX.10.3 -
    -MultipleSearchTerms-1 - -USERINFO - -yaz_oid_userinfo_multiplesearchterms_1 -
    -Z3950_PREFIX.10.4 -
    -MultipleSearchTerms-2 - -USERINFO - -yaz_oid_userinfo_multiplesearchterms_2 -
    -Z3950_PREFIX.10.5 -
    -DateTime - -USERINFO - -yaz_oid_userinfo_datetime -
    -Z3950_PREFIX.10.6 -
    -Proxy - -USERINFO - -yaz_oid_userinfo_proxy -
    -Z3950_PREFIX.10.1000.81.1 -
    -Cookie - -USERINFO - -yaz_oid_userinfo_cookie -
    -Z3950_PREFIX.10.1000.81.2 -
    -Client-IP - -USERINFO - -yaz_oid_userinfo_client_ip -
    -Z3950_PREFIX.10.1000.81.3 -
    -Scan-Set - -USERINFO - -yaz_oid_userinfo_scan_set -
    -Z3950_PREFIX.10.1000.81.4 -
    -Espec-1 - -ELEMSPEC - -yaz_oid_elemspec_espec_1 -
    -Z3950_PREFIX.11.1 -
    -Variant-1 - -VARSET - -yaz_oid_varset_variant_1 -
    -Z3950_PREFIX.12.1 -
    -WAIS-schema - -SCHEMA - -yaz_oid_schema_wais_schema -
    -Z3950_PREFIX.13.1 -
    -GILS-schema - -SCHEMA - -yaz_oid_schema_gils_schema -
    -Z3950_PREFIX.13.2 -
    -Collections-schema - -SCHEMA - -yaz_oid_schema_collections_schema -
    -Z3950_PREFIX.13.3 -
    -Geo-schema - -SCHEMA - -yaz_oid_schema_geo_schema -
    -Z3950_PREFIX.13.4 -
    -CIMI-schema - -SCHEMA - -yaz_oid_schema_cimi_schema -
    -Z3950_PREFIX.13.5 -
    -Update ES - -SCHEMA - -yaz_oid_schema_update_es -
    -Z3950_PREFIX.13.6 -
    -Holdings - -SCHEMA - -yaz_oid_schema_holdings -
    -Z3950_PREFIX.13.7 -
    -Zthes - -SCHEMA - -yaz_oid_schema_zthes -
    -Z3950_PREFIX.13.8 -
    -thesaurus-schema - -SCHEMA - -yaz_oid_schema_thesaurus_schema -
    -Z3950_PREFIX.13.1000.81.1 -
    -Explain-schema - -SCHEMA - -yaz_oid_schema_explain_schema -
    -Z3950_PREFIX.13.1000.81.2 -
    -TagsetM - -TAGSET - -yaz_oid_tagset_tagsetm -
    -Z3950_PREFIX.14.1 -
    -TagsetG - -TAGSET - -yaz_oid_tagset_tagsetg -
    -Z3950_PREFIX.14.2 -
    -STAS-tagset - -TAGSET - -yaz_oid_tagset_stas_tagset -
    -Z3950_PREFIX.14.3 -
    -GILS-tagset - -TAGSET - -yaz_oid_tagset_gils_tagset -
    -Z3950_PREFIX.14.4 -
    -Collections-tagset - -TAGSET - -yaz_oid_tagset_collections_tagset -
    -Z3950_PREFIX.14.5 -
    -CIMI-tagset - -TAGSET - -yaz_oid_tagset_cimi_tagset -
    -Z3950_PREFIX.14.6 -
    -thesaurus-tagset - -TAGSET - -yaz_oid_tagset_thesaurus_tagset -
    -Z3950_PREFIX.14.1000.81.1 -
    -Explain-tagset - -TAGSET - -yaz_oid_tagset_explain_tagset -
    -Z3950_PREFIX.14.1000.81.2 -
    -Zthes-tagset - -TAGSET - -yaz_oid_tagset_zthes_tagset -
    -Z3950_PREFIX.14.8 -
    -Charset-3 - -NEGOT - -yaz_oid_negot_charset_3 -
    -Z3950_PREFIX.15.3 -
    -Charset-4 - -NEGOT - -yaz_oid_negot_charset_4 -
    -Z3950_PREFIX.15.4 -
    -Charset-ID - -NEGOT - -yaz_oid_negot_charset_id -
    -Z3950_PREFIX.15.1000.81.1 -
    -CQL - -USERINFO - -yaz_oid_userinfo_cql -
    -Z3950_PREFIX.16.2 -
    -UCS-2 - -GENERAL - -yaz_oid_general_ucs_2 -
    -1.0.10646.1.0.2 -
    -UCS-4 - -GENERAL - -yaz_oid_general_ucs_4 -
    -1.0.10646.1.0.4 -
    -UTF-16 - -GENERAL - -yaz_oid_general_utf_16 -
    -1.0.10646.1.0.5 -
    -UTF-8 - -GENERAL - -yaz_oid_general_utf_8 -
    -1.0.10646.1.0.8 -
    -OCLC-userInfo - -USERINFO - -yaz_oid_userinfo_oclc_userinfo -
    -Z3950_PREFIX.10.1000.17.1 -
    -XML-ES - -EXTSERV - -yaz_oid_extserv_xml_es -
    -Z3950_PREFIX.9.1000.105.4 -
    diff --git a/dependencies/yaz_3.0.14/doc/marc.html b/dependencies/yaz_3.0.14/doc/marc.html deleted file mode 100644 index c654888..0000000 --- a/dependencies/yaz_3.0.14/doc/marc.html +++ /dev/null @@ -1,78 +0,0 @@ -5. MARC

    5. MARC

    - YAZ provides a fast utility that decodes MARC records and - encodes to a varity of output formats. The MARC records must - be encoded in ISO2709. -

    -    #include <yaz/marcdisp.h>
    -
    -    /* create handler */
    -    yaz_marc_t yaz_marc_create(void);
    -    /* destroy */
    -    void yaz_marc_destroy(yaz_marc_t mt);
    -
    -    /* set XML mode YAZ_MARC_LINE, YAZ_MARC_SIMPLEXML, ... */
    -    void yaz_marc_xml(yaz_marc_t mt, int xmlmode);
    -    #define YAZ_MARC_LINE      0
    -    #define YAZ_MARC_SIMPLEXML 1
    -    #define YAZ_MARC_OAIMARC   2
    -    #define YAZ_MARC_MARCXML   3
    -    #define YAZ_MARC_ISO2709   4
    -    #define YAZ_MARC_XCHANGE   5
    -
    -    /* supply iconv handle for character set conversion .. */
    -    void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd);
    -
    -    /* set debug level, 0=none, 1=more, 2=even more, .. */
    -    void yaz_marc_debug(yaz_marc_t mt, int level);
    -
    -    /* decode MARC in buf of size bsize. Returns >0 on success; <=0 on failure.
    -    On success, result in *result with size *rsize. */
    -    int yaz_marc_decode_buf (yaz_marc_t mt, const char *buf, int bsize,
    -                             char **result, int *rsize);
    -
    -    /* decode MARC in buf of size bsize. Returns >0 on success; <=0 on failure.
    -       On success, result in WRBUF */
    -    int yaz_marc_decode_wrbuf (yaz_marc_t mt, const char *buf,
    -                               int bsize, WRBUF wrbuf);
    -
    -   

    - A MARC conversion handle must be created by using - yaz_marc_create and destroyed - by calling yaz_marc_destroy. -

    - All other function operate on a yaz_marc_t handle. - The output is specified by a call to yaz_marc_xml. - The xmlmode must be one of -

    YAZ_MARC_LINE

    - A simple line-by-line format suitable for display but not - recommend for further (machine) processing. -

    YAZ_MARC_MARCXML

    - The resulting record is converted to MARCXML. -

    YAZ_MARC_ISO2709

    - The resulting record is converted to ISO2709 (MARC). -

    -

    - The actual conversion functions are - yaz_marc_decode_buf and - yaz_marc_decode_wrbuf which decodes and encodes - a MARC record. The former function operates on simple buffers, the - stores the resulting record in a WRBUF handle (WRBUF is a simple string - type). -

    Example 9.18. Display of MARC record

    - The followint program snippet illustrates how the MARC API may - be used to convert a MARC record to the line-by-line format: -

    -      void print_marc(const char *marc_buf, int marc_buf_size)
    -      {
    -         char *result;      /* for result buf */
    -         int result_len;    /* for size of result */
    -         yaz_marc_t mt = yaz_marc_create();
    -         yaz_marc_xml(mt, YAZ_MARC_LINE);
    -         yaz_marc_decode_buf(mt, marc_buf, marc_buf_size,
    -                             &result, &result_len);
    -         fwrite(result, result_len, 1, stdout);
    -         yaz_marc_destroy(mt);  /* note that result is now freed... */
    -      }
    -
    -      

    -


    diff --git a/dependencies/yaz_3.0.14/doc/odr.debugging.html b/dependencies/yaz_3.0.14/doc/odr.debugging.html deleted file mode 100644 index 98c6b78..0000000 --- a/dependencies/yaz_3.0.14/doc/odr.debugging.html +++ /dev/null @@ -1,11 +0,0 @@ -4. Debugging

    4. Debugging

    - The protocol modules are suffering somewhat from a lack of diagnostic - tools at the moment. Specifically ways to pretty-print PDUs that - aren't recognized by the system. We'll include something to this end - in a not-too-distant release. In the meantime, what we do when we get - packages we don't understand is to compile the ODR module with - ODR_DEBUG defined. This causes the module to dump tracing - information as it processes data units. With this output and the - protocol specification (Z39.50), it is generally fairly easy to see - what goes wrong. -

    diff --git a/dependencies/yaz_3.0.14/doc/odr.html b/dependencies/yaz_3.0.14/doc/odr.html deleted file mode 100644 index 9469f43..0000000 --- a/dependencies/yaz_3.0.14/doc/odr.html +++ /dev/null @@ -1,26 +0,0 @@ -Chapter 10. The ODR Module

    Chapter 10. The ODR Module

    1. Introduction

    - ODR is the BER-encoding/decoding subsystem of YAZ. Care as been taken - to isolate ODR from the rest of the package - specifically from the - transport interface. ODR may be used in any context where basic - ASN.1/BER representations are used. -

    - If you are only interested in writing a Z39.50 implementation based on - the PDUs that are already provided with YAZ, you only need to concern - yourself with the section on managing ODR streams - (Section 2, “Using ODR”). Only if you need to - implement ASN.1 beyond that which has been provided, should you - worry about the second half of the documentation - (Section 3, “Programming with ODR”). - If you use one of the higher-level interfaces, you can skip this - section entirely. -

    - This is important, so we'll repeat it for emphasis: You do - not need to read Section 3, “Programming with ODR” - to implement Z39.50 with YAZ. -

    - If you need a part of the protocol that isn't already in YAZ, you - should contact the authors before going to work on it yourself: We - might already be working on it. Conversely, if you implement a useful - part of the protocol before us, we'd be happy to include it in a - future release. -

    diff --git a/dependencies/yaz_3.0.14/doc/odr.programming.html b/dependencies/yaz_3.0.14/doc/odr.programming.html deleted file mode 100644 index 412b6a4..0000000 --- a/dependencies/yaz_3.0.14/doc/odr.programming.html +++ /dev/null @@ -1,494 +0,0 @@ -3. Programming with ODR

    3. Programming with ODR

    - The API of ODR is designed to reflect the structure of ASN.1, rather - than BER itself. Future releases may be able to represent data in - other external forms. -

    Tip

    - There is an ASN.1 tutorial available at - this site. - This site also has standards for ASN.1 (X.680) and BER (X.690) - online. -

    - The ODR interface is based loosely on that of the Sun Microsystems - XDR routines. - Specifically, each function which corresponds to an ASN.1 primitive - type has a dual function. Depending on the settings of the ODR - stream which is supplied as a parameter, the function may be used - either to encode or decode data. The functions that can be built - using these primitive functions, to represent more complex data types, - share this quality. The result is that you only have to enter the - definition for a type once - and you have the functionality of encoding, - decoding (and pretty-printing) all in one unit. - The resulting C source code is quite compact, and is a pretty - straightforward representation of the source ASN.1 specification. -

    - In many cases, the model of the XDR functions works quite well in this - role. - In others, it is less elegant. Most of the hassle comes from the optional - SEQUENCE members which don't exist in XDR. -

    3.1. The Primitive ASN.1 Types

    - ASN.1 defines a number of primitive types (many of which correspond - roughly to primitive types in structured programming languages, such as C). -

    3.1.1. INTEGER

    - The ODR function for encoding or decoding (or printing) the ASN.1 - INTEGER type looks like this: -

    -      int odr_integer(ODR o, int **p, int optional, const char *name);
    -     

    - (we don't allow values that can't be contained in a C integer.) -

    - This form is typical of the primitive ODR functions. They are named - after the type of data that they encode or decode. They take an ODR - stream, an indirect reference to the type in question, and an - optional flag (corresponding to the OPTIONAL keyword - of ASN.1) as parameters. They all return an integer value of either one - or zero. - When you use the primitive functions to construct encoders for complex - types of your own, you should follow this model as well. This - ensures that your new types can be reused as elements in yet more - complex types. -

    - The o parameter should obviously refer to a properly - initialized ODR stream of the right type (encoding/decoding/printing) - for the operation that you wish to perform. -

    - When encoding or printing, the function first looks at - * p. If * p (the pointer pointed - to by p) is a null pointer, this is taken to mean that - the data element is absent. If the optional parameter - is nonzero, the function will return one (signifying success) without - any further processing. If the optional is zero, an - internal error flag is set in the ODR stream, and the function will - return 0. No further operations can be carried out on the stream without - a call to the function odr_reset(). -

    - If *p is not a null pointer, it is expected to - point to an instance of the data type. The data will be subjected to - the encoding rules, and the result will be placed in the buffer held - by the ODR stream. -

    - The other ASN.1 primitives have similar functions that operate in - similar manners: -

    3.1.2. BOOLEAN

    -int odr_bool(ODR o, bool_t **p, int optional, const char *name);
    -     

    3.1.3. REAL

    - Not defined. -

    3.1.4. NULL

    -int odr_null(ODR o, bool_t **p, int optional, const char *name);
    -     

    - In this case, the value of **p is not important. If *p - is different from the null pointer, the null value is present, otherwise - it's absent. -

    3.1.5. OCTET STRING

    -typedef struct odr_oct
    -{
    -    unsigned char *buf;
    -    int len;
    -    int size;
    -} Odr_oct;
    -
    -int odr_octetstring(ODR o, Odr_oct **p, int optional,
    -                    const char *name);
    -     

    - The buf field should point to the character array - that holds the octetstring. The len field holds the - actual length, while the size field gives the size - of the allocated array (not of interest to you, in most cases). - The character array need not be null terminated. -

    - To make things a little easier, an alternative is given for string - types that are not expected to contain embedded NULL characters (eg. - VisibleString): -

    -      int odr_cstring(ODR o, char **p, int optional, const char *name);
    -     

    - Which encoded or decodes between OCTETSTRING representations and - null-terminates C strings. -

    - Functions are provided for the derived string types, eg: -

    -int odr_visiblestring(ODR o, char **p, int optional,
    -                      const char *name);
    -     

    3.1.6. BIT STRING

    -int odr_bitstring(ODR o, Odr_bitmask **p, int optional,
    -                  const char *name);
    -     

    - The opaque type Odr_bitmask is only suitable for - holding relatively brief bit strings, eg. for options fields, etc. - The constant ODR_BITMASK_SIZE multiplied by 8 - gives the maximum possible number of bits. -

    - A set of macros are provided for manipulating the - Odr_bitmask type: -

    -void ODR_MASK_ZERO(Odr_bitmask *b);
    -
    -void ODR_MASK_SET(Odr_bitmask *b, int bitno);
    -
    -void ODR_MASK_CLEAR(Odr_bitmask *b, int bitno);
    -
    -int ODR_MASK_GET(Odr_bitmask *b, int bitno);
    -     

    - The functions are modeled after the manipulation functions that - accompany the fd_set type used by the - select(2) call. - ODR_MASK_ZERO should always be called first on a - new bitmask, to initialize the bits to zero. -

    3.1.7. OBJECT IDENTIFIER

    -int odr_oid(ODR o, Odr_oid **p, int optional, const char *name);
    -     

    - The C OID representation is simply an array of integers, terminated by - the value -1 (the Odr_oid type is synonymous with - the int type). - We suggest that you use the OID database module (see - Section 3, “Object Identifiers (YAZ 2)”) to handle object identifiers - in your application. -

    3.2. Tagging Primitive Types

    - The simplest way of tagging a type is to use the - odr_implicit_tag() or - odr_explicit_tag() macros: -

    -int odr_implicit_tag(ODR o, Odr_fun fun, int class, int tag,
    -                     int optional, const char *name);
    -
    -int odr_explicit_tag(ODR o, Odr_fun fun, int class, int tag,
    -                     int optional, const char *name);
    -    

    - To create a type derived from the integer type by implicit tagging, you - might write: -

    -     MyInt ::= [210] IMPLICIT INTEGER
    -    

    - In the ODR system, this would be written like: -

    -int myInt(ODR o, int **p, int optional, const char *name)
    -{
    -    return odr_implicit_tag(o, odr_integer, p,
    -			    ODR_CONTEXT, 210, optional, name);
    -}
    -    

    - The function myInt() can then be used like any of - the primitive functions provided by ODR. Note that the behavior of - odr_explicit_tag() - and odr_implicit_tag() macros - act exactly the same as the functions they are applied to - they - respond to error conditions, etc, in the same manner - they - simply have three extra parameters. The class parameter may - take one of the values: ODR_CONTEXT, - ODR_PRIVATE, ODR_UNIVERSAL, or - /ODR_APPLICATION. -

    3.3. Constructed Types

    - Constructed types are created by combining primitive types. The - ODR system only implements the SEQUENCE and SEQUENCE OF constructions - (although adding the rest of the container types should be simple - enough, if the need arises). -

    - For implementing SEQUENCEs, the functions -

    -int odr_sequence_begin(ODR o, void *p, int size, const char *name);
    -int odr_sequence_end(ODR o);
    -    

    - are provided. -

    - The odr_sequence_begin() function should be - called in the beginning of a function that implements a SEQUENCE type. - Its parameters are the ODR stream, a pointer (to a pointer to the type - you're implementing), and the size of the type - (typically a C structure). On encoding, it returns 1 if - * p is a null pointer. The size - parameter is ignored. On decoding, it returns 1 if the type is found in - the data stream. size bytes of memory are allocated, - and *p is set to point to this space. - odr_sequence_end() is called at the end of the - complex function. Assume that a type is defined like this: -

    -MySequence ::= SEQUENCE {
    -     intval INTEGER,
    -     boolval BOOLEAN OPTIONAL
    -}
    -    

    - The corresponding ODR encoder/decoder function and the associated data - structures could be written like this: -

    -typedef struct MySequence
    -{
    -    int *intval;
    -    bool_t *boolval;
    -} MySequence;
    -     
    -int mySequence(ODR o, MySequence **p, int optional, const char *name)
    -{
    -    if (odr_sequence_begin(o, p, sizeof(**p), name) == 0)
    -        return optional && odr_ok(o);
    -    return
    -        odr_integer(o, &(*p)->intval, 0, "intval") &&
    -        odr_bool(o, &(*p)->boolval, 1, "boolval") &&
    -        odr_sequence_end(o);
    -}
    -
    -    

    - Note the 1 in the call to odr_bool(), to mark - that the sequence member is optional. - If either of the member types had been tagged, the macros - odr_implicit_tag() or - odr_explicit_tag() - could have been used. - The new function can be used exactly like the standard functions provided - with ODR. It will encode, decode or pretty-print a data value of the - MySequence type. We like to name types with an - initial capital, as done in ASN.1 definitions, and to name the - corresponding function with the first character of the name in lower case. - You could, of course, name your structures, types, and functions any way - you please - as long as you're consistent, and your code is easily readable. - odr_ok is just that - a predicate that returns the - state of the stream. It is used to ensure that the behavior of the new - type is compatible with the interface of the primitive types. -

    3.4. Tagging Constructed Types

    Note

    - See Section 3.2, “Tagging Primitive Types” for information on how to tag - the primitive types, as well as types that are already defined. -

    3.4.1. Implicit Tagging

    - Assume the type above had been defined as -

    -MySequence ::= [10] IMPLICIT SEQUENCE {
    -      intval INTEGER,
    -      boolval BOOLEAN OPTIONAL
    -}
    -     

    - You would implement this in ODR by calling the function -

    -int odr_implicit_settag(ODR o, int class, int tag);
    -     

    - which overrides the tag of the type immediately following it. The - macro odr_implicit_tag() works by calling - odr_implicit_settag() immediately - before calling the function pointer argument. - Your type function could look like this: -

    -int mySequence(ODR o, MySequence **p, int optional, const char *name)
    -{
    -    if (odr_implicit_settag(o, ODR_CONTEXT, 10) == 0 ||
    -        odr_sequence_begin(o, p, sizeof(**p), name) == 0)
    -        return optional && odr_ok(o);
    -    return
    -        odr_integer(o, &(*p)->intval, 0, "intval") &&
    -        odr_bool(o, &(*p)->boolval, 1, "boolval") &&
    -        odr_sequence_end(o);
    -}
    -     

    - The definition of the structure MySequence would be - the same. -

    3.4.2. Explicit Tagging

    - Explicit tagging of constructed types is a little more complicated, - since you are in effect adding a level of construction to the data. -

    - Assume the definition: -

    -MySequence ::= [10] IMPLICIT SEQUENCE {
    -   intval INTEGER,
    -   boolval BOOLEAN OPTIONAL
    -}
    -     

    - Since the new type has an extra level of construction, two new functions - are needed to encapsulate the base type: -

    -int odr_constructed_begin(ODR o, void *p, int class, int tag,
    -                          const char *name);
    -
    -int odr_constructed_end(ODR o);
    -     

    - Assume that the IMPLICIT in the type definition above were replaced - with EXPLICIT (or that the IMPLICIT keyword were simply deleted, which - would be equivalent). The structure definition would look the same, - but the function would look like this: -

    -int mySequence(ODR o, MySequence **p, int optional, const char *name)
    -{
    -    if (odr_constructed_begin(o, p, ODR_CONTEXT, 10, name) == 0)
    -        return optional && odr_ok(o);
    -    if (o->direction == ODR_DECODE)
    -        *p = odr_malloc(o, sizeof(**p));
    -    if (odr_sequence_begin(o, p, sizeof(**p), 0) == 0)
    -    {
    -        *p = 0; /* this is almost certainly a protocol error */
    -        return 0;
    -    }
    -    return
    -        odr_integer(o, &(*p)->intval, 0, "intval") &&
    -        odr_bool(o, &(*p)->boolval, 1, "boolval") &&
    -        odr_sequence_end(o) &&
    -        odr_constructed_end(o);
    -}
    -     

    - Notice that the interface here gets kind of nasty. The reason is - simple: Explicitly tagged, constructed types are fairly rare in - the protocols that we care about, so the - esthetic annoyance (not to mention the dangers of a cluttered - interface) is less than the time that would be required to develop a - better interface. Nevertheless, it is far from satisfying, and it's a - point that will be worked on in the future. One option for you would - be to simply apply the odr_explicit_tag() macro to - the first function, and not - have to worry about odr_constructed_* yourself. - Incidentally, as you might have guessed, the - odr_sequence_ functions are themselves - implemented using the /odr_constructed_ functions. -

    3.5. SEQUENCE OF

    - To handle sequences (arrays) of a specific type, the function -

    -int odr_sequence_of(ODR o, int (*fun)(ODR o, void *p, int optional),
    -                    void *p, int *num, const char *name);
    -    

    - The fun parameter is a pointer to the decoder/encoder - function of the type. p is a pointer to an array of - pointers to your type. num is the number of elements - in the array. -

    - Assume a type -

    -MyArray ::= SEQUENCE OF INTEGER
    -    

    - The C representation might be -

    -typedef struct MyArray
    -{
    -    int num_elements;
    -    int **elements;
    -} MyArray;
    -    

    - And the function might look like -

    -int myArray(ODR o, MyArray **p, int optional, const char *name)
    -{
    -    if (o->direction == ODR_DECODE)
    -        *p = odr_malloc(o, sizeof(**p));
    -    if (odr_sequence_of(o, odr_integer, &(*p)->elements,
    -        &(*p)->num_elements, name))
    -        return 1;
    -    *p = 0;
    -        return optional && odr_ok(o);
    -}
    -    

    3.6. CHOICE Types

    - The choice type is used fairly often in some ASN.1 definitions, so - some work has gone into streamlining its interface. -

    - CHOICE types are handled by the function: -

    -int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp,
    -               const char *name);
    -    

    - The arm array is used to describe each of the possible - types that the CHOICE type may assume. Internally in your application, - the CHOICE type is represented as a discriminated union. That is, a - C union accompanied by an integer (or enum) identifying the active - 'arm' of the union. - whichp is a pointer to the union discriminator. - When encoding, it is examined to determine the current type. - When decoding, it is set to reference the type that was found in - the input stream. -

    - The Odr_arm type is defined thus: -

    -typedef struct odr_arm
    -{
    -    int tagmode;
    -    int class;
    -    int tag;
    -    int which;
    -    Odr_fun fun;
    -    char *name;
    -} Odr_arm;
    -    

    - The interpretation of the fields are: -

    tagmode

    Either ODR_IMPLICIT, - ODR_EXPLICIT, or ODR_NONE (-1) - to mark no tagging.

    which

    The value of the discriminator that corresponds to - this CHOICE element. Typically, it will be a #defined constant, or - an enum member.

    fun

    A pointer to a function that implements the type of - the CHOICE member. It may be either a standard ODR type or a type - defined by yourself.

    name

    Name of tag.

    - A handy way to prepare the array for use by the - odr_choice() function is to - define it as a static, initialized array in the beginning of your - decoding/encoding function. Assume the type definition: -

    -MyChoice ::= CHOICE {
    -    untagged INTEGER,
    -    tagged   [99] IMPLICIT INTEGER,
    -    other    BOOLEAN
    -}
    -    

    - Your C type might look like -

    -typedef struct MyChoice
    -{
    -    enum
    -    {
    -        MyChoice_untagged,
    -        MyChoice_tagged,
    -        MyChoice_other
    -    } which;
    -    union
    -    {
    -        int *untagged;
    -        int *tagged;
    -        bool_t *other;
    -    } u;
    -};
    -    

    - And your function could look like this: -

    -int myChoice(ODR o, MyChoice **p, int optional, const char *name)
    -{
    -    static Odr_arm arm[] =
    -    {
    -      {-1, -1, -1, MyChoice_untagged, odr_integer, "untagged"},
    -      {ODR_IMPLICIT, ODR_CONTEXT, 99, MyChoice_tagged, odr_integer,
    -      "tagged"},
    -      {-1, -1, -1, MyChoice_other, odr_boolean, "other"},
    -      {-1, -1, -1, -1, 0}
    -    };
    -
    -    if (o->direction == ODR_DECODE)
    -        *p = odr_malloc(o, sizeof(**p);
    -    else if (!*p)
    -        return optional && odr_ok(o);
    -
    -    if (odr_choice(o, arm, &(*p)->u, &(*p)->which), name)
    -        return 1;
    -    *p = 0;
    -        return optional && odr_ok(o);
    -}
    -    

    - In some cases (say, a non-optional choice which is a member of a - sequence), you can "embed" the union and its discriminator in the - structure belonging to the enclosing type, and you won't need to - fiddle with memory allocation to create a separate structure to - wrap the discriminator and union. -

    - The corresponding function is somewhat nicer in the Sun XDR interface. - Most of the complexity of this interface comes from the possibility of - declaring sequence elements (including CHOICEs) optional. -

    - The ASN.1 specifications naturally requires that each member of a - CHOICE have a distinct tag, so they can be told apart on decoding. - Sometimes it can be useful to define a CHOICE that has multiple types - that share the same tag. You'll need some other mechanism, perhaps - keyed to the context of the CHOICE type. In effect, we would like to - introduce a level of context-sensitiveness to our ASN.1 specification. - When encoding an internal representation, we have no problem, as long - as each CHOICE member has a distinct discriminator value. For - decoding, we need a way to tell the choice function to look for a - specific arm of the table. The function -

    -void odr_choice_bias(ODR o, int what);
    -    

    - provides this functionality. When called, it leaves a notice for the next - call to odr_choice() to be called on the decoding - stream o that only the arm entry with - a which field equal to what - should be tried. -

    - The most important application (perhaps the only one, really) is in - the definition of application-specific EXTERNAL encoders/decoders - which will automatically decode an ANY member given the direct or - indirect reference. -

    diff --git a/dependencies/yaz_3.0.14/doc/odr.use.html b/dependencies/yaz_3.0.14/doc/odr.use.html deleted file mode 100644 index 3bfc7e6..0000000 --- a/dependencies/yaz_3.0.14/doc/odr.use.html +++ /dev/null @@ -1,330 +0,0 @@ -2. Using ODR

    2. Using ODR

    2.1. ODR Streams

    - Conceptually, the ODR stream is the source of encoded data in the - decoding mode; when encoding, it is the receptacle for the encoded - data. Before you can use an ODR stream it must be allocated. This is - done with the function -

    -     ODR odr_createmem(int direction);
    -    

    - The odr_createmem() function takes as argument one - of three manifest constants: ODR_ENCODE, - ODR_DECODE, or ODR_PRINT. - An ODR stream can be in only one mode - it is not possible to change - its mode once it's selected. Typically, your program will allocate - at least two ODR streams - one for decoding, and one for encoding. -

    - When you're done with the stream, you can use -

    -     void odr_destroy(ODR o);
    -    

    - to release the resources allocated for the stream. -

    2.2. Memory Management

    - Two forms of memory management take place in the ODR system. The first - one, which has to do with allocating little bits of memory (sometimes - quite large bits of memory, actually) when a protocol package is - decoded, and turned into a complex of interlinked structures. This - section deals with this system, and how you can use it for your own - purposes. The next section deals with the memory management which is - required when encoding data - to make sure that a large enough buffer is - available to hold the fully encoded PDU. -

    - The ODR module has its own memory management system, which is - used whenever memory is required. Specifically, it is used to allocate - space for data when decoding incoming PDUs. You can use the memory - system for your own purposes, by using the function -

    -     void *odr_malloc(ODR o, int size);
    -    

    - You can't use the normal free(2) routine to free - memory allocated by this function, and ODR doesn't provide a parallel - function. Instead, you can call -

    -     void odr_reset(ODR o, int size);
    -    

    - when you are done with the - memory: Everything allocated since the last call to - odr_reset() is released. - The odr_reset() call is also required to clear - up an error condition on a stream. -

    - The function -

    -     int odr_total(ODR o);
    -    

    - returns the number of bytes allocated on the stream since the last call to - odr_reset(). -

    - The memory subsystem of ODR is fairly efficient at allocating and - releasing little bits of memory. Rather than managing the individual, - small bits of space, the system maintains a free-list of larger chunks - of memory, which are handed out in small bits. This scheme is - generally known as a nibble memory system. - It is very useful for maintaining short-lived constructions such - as protocol PDUs. -

    - If you want to retain a bit of memory beyond the next call to - odr_reset(), you can use the function -

    -     ODR_MEM odr_extract_mem(ODR o);
    -    

    - This function will give you control of the memory recently allocated - on the ODR stream. The memory will live (past calls to - odr_reset()), until you call the function -

    -     void odr_release_mem(ODR_MEM p);
    -    

    - The opaque ODR_MEM handle has no other purpose than - referencing the memory block for you until you want to release it. -

    - You can use odr_extract_mem() repeatedly between - allocating data, to retain individual control of separate chunks of data. -

    2.3. Encoding and Decoding Data

    - When encoding data, the ODR stream will write the encoded octet string - in an internal buffer. To retrieve the data, use the function -

    -     char *odr_getbuf(ODR o, int *len, int *size);
    -    

    - The integer pointed to by len is set to the length of the encoded - data, and a pointer to that data is returned. *size - is set to the size of the buffer (unless size is null, - signaling that you are not interested in the size). The next call to - a primitive function using the same ODR stream will overwrite the - data, unless a different buffer has been supplied using the call -

    -     void odr_setbuf(ODR o, char *buf, int len, int can_grow);
    -    

    - which sets the encoding (or decoding) buffer used by - o to buf, using the length - len. - Before a call to an encoding function, you can use - odr_setbuf() to provide the stream with an encoding - buffer of sufficient size (length). The can_grow - parameter tells the encoding ODR stream whether it is allowed to use - realloc(2) to increase the size of the buffer when - necessary. The default condition of a new encoding stream is equivalent - to the results of calling -

    -     odr_setbuf(stream, 0, 0, 1);
    -    

    - In this case, the stream will allocate and reallocate memory as - necessary. The stream reallocates memory by repeatedly doubling the - size of the buffer - the result is that the buffer will typically - reach its maximum, working size with only a small number of reallocation - operations. The memory is freed by the stream when the latter is destroyed, - unless it was assigned by the user with the can_grow - parameter set to zero (in this case, you are expected to retain - control of the memory yourself). -

    - To assume full control of an encoded buffer, you must first call - odr_getbuf() to fetch the buffer and its length. - Next, you should call odr_setbuf() to provide a - different buffer (or a null pointer) to the stream. In the simplest - case, you will reuse the same buffer over and over again, and you - will just need to call odr_getbuf() after each - encoding operation to get the length and address of the buffer. - Note that the stream may reallocate the buffer during an encoding - operation, so it is necessary to retrieve the correct address after - each encoding operation. -

    - It is important to realize that the ODR stream will not release this - memory when you call odr_reset(): It will - merely update its internal pointers to prepare for the encoding of a - new data value. - When the stream is released by the odr_destroy() - function, the memory given to it by odr_setbuf will - be released only if the can_grow - parameter to odr_setbuf() was nonzero. The - can_grow parameter, in other words, is a way of - signaling who is to own the buffer, you or the ODR stream. If you never call - odr_setbuf() on your encoding stream, which is - typically the case, the buffer allocated by the stream will belong to - the stream by default. -

    - When you wish to decode data, you should first call - odr_setbuf(), to tell the decoding stream - where to find the encoded data, and how long the buffer is - (the can_grow parameter is ignored by a decoding - stream). After this, you can call the function corresponding to the - data you wish to decode (eg, odr_integer() odr - z_APDU()). -

    Example 10.1. Encoding and decoding functions

    -      int odr_integer(ODR o, int **p, int optional, const char *name);
    -      
    -      int z_APDU(ODR o, Z_APDU **p, int optional, const char *name);
    -     

    - If the data is absent (or doesn't match the tag corresponding to - the type), the return value will be either 0 or 1 depending on the - optional flag. If optional - is 0 and the data is absent, an error flag will be raised in the - stream, and you'll need to call odr_reset() before - you can use the stream again. If optional is - nonzero, the pointer pointed to/ by - p will be set to the null value, and the function - will return 1. - The name argument is used to pretty-print the - tag in question. It may be set to NULL if - pretty-printing is not desired. -

    - If the data value is found where it's expected, the pointer - pointed to by the p argument - will be set to point to the decoded type. - The space for the type will be allocated and owned by the ODR - stream, and it will live until you call - odr_reset() on the stream. You cannot use - free(2) to release the memory. - You can decode several data elements (by repeated calls to - odr_setbuf() and your decoding function), and - new memory will be allocated each time. When you do call - odr_reset(), everything decoded since the - last call to odr_reset() will be released. -

    Example 10.2. Encoding and decoding of an integer

    - The use of the double indirection can be a little confusing at first - (its purpose will become clear later on, hopefully), - so an example is in order. We'll encode an integer value, and - immediately decode it again using a different stream. A useless, but - informative operation. -

    -void do_nothing_useful(int value)
    -{
    -    ODR encode, decode;
    -    int *valp, *resvalp;
    -    char *bufferp;
    -    int len;
    -     
    -    /* allocate streams */
    -    if (!(encode = odr_createmem(ODR_ENCODE)))
    -        return;
    -    if (!(decode = odr_createmem(ODR_DECODE)))
    -        return;
    -
    -    valp = &amp;value;
    -    if (odr_integer(encode, &amp;valp, 0, 0) == 0)
    -    {
    -        printf("encoding went bad\n");
    -        return;
    -    }
    -    bufferp = odr_getbuf(encode, &amp;len);
    -    printf("length of encoded data is &percnt;d\n", len);
    -
    -    /* now let's decode the thing again */
    -    odr_setbuf(decode, bufferp, len);
    -    if (odr_integer(decode, &amp;resvalp, 0, 0) == 0)
    -    {
    -        printf("decoding went bad\n");
    -        return;
    -    }
    -    printf("the value is &percnt;d\n", *resvalp);
    -
    -    /* clean up */
    -    odr_destroy(encode);
    -    odr_destroy(decode);
    -}
    -
    -     

    - This looks like a lot of work, offhand. In practice, the ODR streams - will typically be allocated once, in the beginning of your program - (or at the beginning of a new network session), and the encoding - and decoding will only take place in a few, isolated places in your - program, so the overhead is quite manageable. -


    2.4. Printing

    - When an ODR stream is created of type ODR_PRINT - the ODR module will print the contents of a PDU in a readable format. - By default output is written to the stderr stream. - This behavior can be changed, however, by calling the function -

    -      odr_setprint(ODR o, FILE *file);
    -     

    - before encoders or decoders are being invoked. - It is also possible to direct the output to a buffer (of indeed - another file), by using the more generic mechanism: -

    -      void odr_set_stream(ODR o, void *handle,
    -                         void (*stream_write)(ODR o, void *handle, int type,
    -                                              const char *buf, int len),
    -                         void (*stream_close)(void *handle));
    -     

    - Here the user provides an opaque handle and two handlers, - stream_write for writing, - and stream_close which is supposed - to close/free resources associated with handle. - The stream_close handler is optional and - if NULL for the function is provided, it will not be invoked. - The stream_write takes the ODR handle - as parameter, the user defined handle, a type - ODR_OCTETSTRING, ODR_VISIBLESTRING - which indicates the type of contents is being written. -

    - Another utility useful for diagnostics (error handling) or as - part of the printing facilities is: -

    -      const char **odr_get_element_path(ODR o);
    -     

    - which returns a list of current elements that ODR deals with at the - moment. For the returned array, say ar, - ar[0] is the top level element, - ar[n] is the last. The last element has the - property that ar[n+1] == NULL. -

    Example 10.3. Element Path for record

    - For a database record part of a PresentResponse the - array returned by odr_get_element - is presentResponse, databaseOrSurDiagnostics, ?, record, ?, databaseRecord . The question mark appears due to - unnamed constructions. -


    2.5. Diagnostics

    - The encoding/decoding functions all return 0 when an error occurs. - Until you call odr_reset(), you cannot use the - stream again, and any function called will immediately return 0. -

    - To provide information to the programmer or administrator, the function -

    -     void odr_perror(ODR o, char *message);
    -    

    - is provided, which prints the message argument to - stderr along with an error message from the stream. -

    - You can also use the function -

    -     int odr_geterror(ODR o);
    -    

    - to get the current error number from the screen. The number will be - one of these constants: -

    Table 10.1. ODR Error codes

    codeDescription
    OMEMORYMemory allocation failed.
    OSYSERRA system- or library call has failed. - The standard diagnostic variable errno should be - examined to determine the actual error.
    OSPACENo more space for encoding. - This will only occur when the user has explicitly provided a - buffer for an encoding stream without allowing the system to - allocate more space.
    OREQUIREDThis is a common protocol error; A - required data element was missing during encoding or decoding.
    OUNEXPECTEDAn unexpected data element was - found during decoding.
    OOTHEROther error. This is typically an - indication of misuse of the ODR system by the programmer, and also - that the diagnostic system isn't as good as it should be, yet.

    - The character string array -

    -     char *odr_errlist[]
    -    

    - can be indexed by the error code to obtain a human-readable - representation of the problem. -

    2.6. Summary and Synopsis

    -     #include <odr.h>
    -
    -     ODR odr_createmem(int direction);
    -
    -     void odr_destroy(ODR o);
    -
    -     void odr_reset(ODR o);
    -
    -     char *odr_getbuf(ODR o, int *len);
    -
    -     void odr_setbuf(ODR o, char *buf, int len);
    -
    -     void *odr_malloc(ODR o, int size);
    -
    -     ODR_MEM odr_extract_mem(ODR o);
    -
    -     void odr_release_mem(ODR_MEM r);
    -
    -     int odr_geterror(ODR o);
    -
    -     void odr_perror(char *message);
    -
    -     extern char *odr_errlist[];
    -    
    diff --git a/dependencies/yaz_3.0.14/doc/odr.xml b/dependencies/yaz_3.0.14/doc/odr.xml deleted file mode 100644 index 2e5c81a..0000000 --- a/dependencies/yaz_3.0.14/doc/odr.xml +++ /dev/null @@ -1,1312 +0,0 @@ - - The ODR Module - - Introduction - - - &odr; is the BER-encoding/decoding subsystem of &yaz;. Care as been taken - to isolate &odr; from the rest of the package - specifically from the - transport interface. &odr; may be used in any context where basic - ASN.1/BER representations are used. - - - - If you are only interested in writing a Z39.50 implementation based on - the PDUs that are already provided with &yaz;, you only need to concern - yourself with the section on managing ODR streams - (). Only if you need to - implement ASN.1 beyond that which has been provided, should you - worry about the second half of the documentation - (). - If you use one of the higher-level interfaces, you can skip this - section entirely. - - - - This is important, so we'll repeat it for emphasis: You do - not need to read - to implement Z39.50 with &yaz;. - - - - If you need a part of the protocol that isn't already in &yaz;, you - should contact the authors before going to work on it yourself: We - might already be working on it. Conversely, if you implement a useful - part of the protocol before us, we'd be happy to include it in a - future release. - - - - Using ODR - - ODR Streams - - - Conceptually, the ODR stream is the source of encoded data in the - decoding mode; when encoding, it is the receptacle for the encoded - data. Before you can use an ODR stream it must be allocated. This is - done with the function - - - - ODR odr_createmem(int direction); - - - - The odr_createmem() function takes as argument one - of three manifest constants: ODR_ENCODE, - ODR_DECODE, or ODR_PRINT. - An &odr; stream can be in only one mode - it is not possible to change - its mode once it's selected. Typically, your program will allocate - at least two ODR streams - one for decoding, and one for encoding. - - - - When you're done with the stream, you can use - - - - void odr_destroy(ODR o); - - - - to release the resources allocated for the stream. - - - - Memory Management - - - Two forms of memory management take place in the &odr; system. The first - one, which has to do with allocating little bits of memory (sometimes - quite large bits of memory, actually) when a protocol package is - decoded, and turned into a complex of interlinked structures. This - section deals with this system, and how you can use it for your own - purposes. The next section deals with the memory management which is - required when encoding data - to make sure that a large enough buffer is - available to hold the fully encoded PDU. - - - - The &odr; module has its own memory management system, which is - used whenever memory is required. Specifically, it is used to allocate - space for data when decoding incoming PDUs. You can use the memory - system for your own purposes, by using the function - - - - void *odr_malloc(ODR o, int size); - - - - You can't use the normal free(2) routine to free - memory allocated by this function, and &odr; doesn't provide a parallel - function. Instead, you can call - - - - void odr_reset(ODR o, int size); - - - - when you are done with the - memory: Everything allocated since the last call to - odr_reset() is released. - The odr_reset() call is also required to clear - up an error condition on a stream. - - - - The function - - - - int odr_total(ODR o); - - - - returns the number of bytes allocated on the stream since the last call to - odr_reset(). - - - - The memory subsystem of &odr; is fairly efficient at allocating and - releasing little bits of memory. Rather than managing the individual, - small bits of space, the system maintains a free-list of larger chunks - of memory, which are handed out in small bits. This scheme is - generally known as a nibble memory system. - It is very useful for maintaining short-lived constructions such - as protocol PDUs. - - - - If you want to retain a bit of memory beyond the next call to - odr_reset(), you can use the function - - - - ODR_MEM odr_extract_mem(ODR o); - - - - This function will give you control of the memory recently allocated - on the ODR stream. The memory will live (past calls to - odr_reset()), until you call the function - - - - void odr_release_mem(ODR_MEM p); - - - - The opaque ODR_MEM handle has no other purpose than - referencing the memory block for you until you want to release it. - - - - You can use odr_extract_mem() repeatedly between - allocating data, to retain individual control of separate chunks of data. - - - - Encoding and Decoding Data - - - When encoding data, the ODR stream will write the encoded octet string - in an internal buffer. To retrieve the data, use the function - - - - char *odr_getbuf(ODR o, int *len, int *size); - - - - The integer pointed to by len is set to the length of the encoded - data, and a pointer to that data is returned. *size - is set to the size of the buffer (unless size is null, - signaling that you are not interested in the size). The next call to - a primitive function using the same &odr; stream will overwrite the - data, unless a different buffer has been supplied using the call - - - - void odr_setbuf(ODR o, char *buf, int len, int can_grow); - - - - which sets the encoding (or decoding) buffer used by - o to buf, using the length - len. - Before a call to an encoding function, you can use - odr_setbuf() to provide the stream with an encoding - buffer of sufficient size (length). The can_grow - parameter tells the encoding &odr; stream whether it is allowed to use - realloc(2) to increase the size of the buffer when - necessary. The default condition of a new encoding stream is equivalent - to the results of calling - - - - odr_setbuf(stream, 0, 0, 1); - - - - In this case, the stream will allocate and reallocate memory as - necessary. The stream reallocates memory by repeatedly doubling the - size of the buffer - the result is that the buffer will typically - reach its maximum, working size with only a small number of reallocation - operations. The memory is freed by the stream when the latter is destroyed, - unless it was assigned by the user with the can_grow - parameter set to zero (in this case, you are expected to retain - control of the memory yourself). - - - - To assume full control of an encoded buffer, you must first call - odr_getbuf() to fetch the buffer and its length. - Next, you should call odr_setbuf() to provide a - different buffer (or a null pointer) to the stream. In the simplest - case, you will reuse the same buffer over and over again, and you - will just need to call odr_getbuf() after each - encoding operation to get the length and address of the buffer. - Note that the stream may reallocate the buffer during an encoding - operation, so it is necessary to retrieve the correct address after - each encoding operation. - - - - It is important to realize that the ODR stream will not release this - memory when you call odr_reset(): It will - merely update its internal pointers to prepare for the encoding of a - new data value. - When the stream is released by the odr_destroy() - function, the memory given to it by odr_setbuf will - be released only if the can_grow - parameter to odr_setbuf() was nonzero. The - can_grow parameter, in other words, is a way of - signaling who is to own the buffer, you or the ODR stream. If you never call - odr_setbuf() on your encoding stream, which is - typically the case, the buffer allocated by the stream will belong to - the stream by default. - - - - When you wish to decode data, you should first call - odr_setbuf(), to tell the decoding stream - where to find the encoded data, and how long the buffer is - (the can_grow parameter is ignored by a decoding - stream). After this, you can call the function corresponding to the - data you wish to decode (eg, odr_integer() odr - z_APDU()). - - - - Encoding and decoding functions - - int odr_integer(ODR o, int **p, int optional, const char *name); - - int z_APDU(ODR o, Z_APDU **p, int optional, const char *name); - - - - - If the data is absent (or doesn't match the tag corresponding to - the type), the return value will be either 0 or 1 depending on the - optional flag. If optional - is 0 and the data is absent, an error flag will be raised in the - stream, and you'll need to call odr_reset() before - you can use the stream again. If optional is - nonzero, the pointer pointed to/ by - p will be set to the null value, and the function - will return 1. - The name argument is used to pretty-print the - tag in question. It may be set to NULL if - pretty-printing is not desired. - - - - If the data value is found where it's expected, the pointer - pointed to by the p argument - will be set to point to the decoded type. - The space for the type will be allocated and owned by the &odr; - stream, and it will live until you call - odr_reset() on the stream. You cannot use - free(2) to release the memory. - You can decode several data elements (by repeated calls to - odr_setbuf() and your decoding function), and - new memory will be allocated each time. When you do call - odr_reset(), everything decoded since the - last call to odr_reset() will be released. - - - - Encoding and decoding of an integer - - The use of the double indirection can be a little confusing at first - (its purpose will become clear later on, hopefully), - so an example is in order. We'll encode an integer value, and - immediately decode it again using a different stream. A useless, but - informative operation. - - - - - This looks like a lot of work, offhand. In practice, the &odr; streams - will typically be allocated once, in the beginning of your program - (or at the beginning of a new network session), and the encoding - and decoding will only take place in a few, isolated places in your - program, so the overhead is quite manageable. - - - - - - Printing - - When an ODR stream is created of type ODR_PRINT - the ODR module will print the contents of a PDU in a readable format. - By default output is written to the stderr stream. - This behavior can be changed, however, by calling the function - - odr_setprint(ODR o, FILE *file); - - before encoders or decoders are being invoked. - It is also possible to direct the output to a buffer (of indeed - another file), by using the more generic mechanism: - - void odr_set_stream(ODR o, void *handle, - void (*stream_write)(ODR o, void *handle, int type, - const char *buf, int len), - void (*stream_close)(void *handle)); - - Here the user provides an opaque handle and two handlers, - stream_write for writing, - and stream_close which is supposed - to close/free resources associated with handle. - The stream_close handler is optional and - if NULL for the function is provided, it will not be invoked. - The stream_write takes the ODR handle - as parameter, the user defined handle, a type - ODR_OCTETSTRING, ODR_VISIBLESTRING - which indicates the type of contents is being written. - - - Another utility useful for diagnostics (error handling) or as - part of the printing facilities is: - - const char **odr_get_element_path(ODR o); - - which returns a list of current elements that ODR deals with at the - moment. For the returned array, say ar, - ar[0] is the top level element, - ar[n] is the last. The last element has the - property that ar[n+1] == NULL. - - - Element Path for record - - For a database record part of a PresentResponse the - array returned by odr_get_element - is presentResponse, databaseOrSurDiagnostics, ?, record, ?, databaseRecord . The question mark appears due to - unnamed constructions. - - - - Diagnostics - - - The encoding/decoding functions all return 0 when an error occurs. - Until you call odr_reset(), you cannot use the - stream again, and any function called will immediately return 0. - - - - To provide information to the programmer or administrator, the function - - - - void odr_perror(ODR o, char *message); - - - - is provided, which prints the message argument to - stderr along with an error message from the stream. - - - - You can also use the function - - - - int odr_geterror(ODR o); - - - - to get the current error number from the screen. The number will be - one of these constants: - - - - ODR Error codes - - - - code - Description - - - - - OMEMORYMemory allocation failed. - - - - OSYSERRA system- or library call has failed. - The standard diagnostic variable errno should be - examined to determine the actual error. - - - - OSPACENo more space for encoding. - This will only occur when the user has explicitly provided a - buffer for an encoding stream without allowing the system to - allocate more space. - - - - OREQUIREDThis is a common protocol error; A - required data element was missing during encoding or decoding. - - - - OUNEXPECTEDAn unexpected data element was - found during decoding. - - - OOTHEROther error. This is typically an - indication of misuse of the &odr; system by the programmer, and also - that the diagnostic system isn't as good as it should be, yet. - - - -
    - - - The character string array - - - - char *odr_errlist[] - - - - can be indexed by the error code to obtain a human-readable - representation of the problem. - - -
    - - Summary and Synopsis - - - #include <odr.h> - - ODR odr_createmem(int direction); - - void odr_destroy(ODR o); - - void odr_reset(ODR o); - - char *odr_getbuf(ODR o, int *len); - - void odr_setbuf(ODR o, char *buf, int len); - - void *odr_malloc(ODR o, int size); - - ODR_MEM odr_extract_mem(ODR o); - - void odr_release_mem(ODR_MEM r); - - int odr_geterror(ODR o); - - void odr_perror(char *message); - - extern char *odr_errlist[]; - - - -
    - - Programming with ODR - - - The API of &odr; is designed to reflect the structure of ASN.1, rather - than BER itself. Future releases may be able to represent data in - other external forms. - - - - - There is an ASN.1 tutorial available at - this site. - This site also has standards for ASN.1 (X.680) and BER (X.690) - online. - - - - - The ODR interface is based loosely on that of the Sun Microsystems - XDR routines. - Specifically, each function which corresponds to an ASN.1 primitive - type has a dual function. Depending on the settings of the ODR - stream which is supplied as a parameter, the function may be used - either to encode or decode data. The functions that can be built - using these primitive functions, to represent more complex data types, - share this quality. The result is that you only have to enter the - definition for a type once - and you have the functionality of encoding, - decoding (and pretty-printing) all in one unit. - The resulting C source code is quite compact, and is a pretty - straightforward representation of the source ASN.1 specification. - - - - In many cases, the model of the XDR functions works quite well in this - role. - In others, it is less elegant. Most of the hassle comes from the optional - SEQUENCE members which don't exist in XDR. - - - - The Primitive ASN.1 Types - - - ASN.1 defines a number of primitive types (many of which correspond - roughly to primitive types in structured programming languages, such as C). - - - INTEGER - - - The &odr; function for encoding or decoding (or printing) the ASN.1 - INTEGER type looks like this: - - - - int odr_integer(ODR o, int **p, int optional, const char *name); - - - - (we don't allow values that can't be contained in a C integer.) - - - - This form is typical of the primitive &odr; functions. They are named - after the type of data that they encode or decode. They take an &odr; - stream, an indirect reference to the type in question, and an - optional flag (corresponding to the OPTIONAL keyword - of ASN.1) as parameters. They all return an integer value of either one - or zero. - When you use the primitive functions to construct encoders for complex - types of your own, you should follow this model as well. This - ensures that your new types can be reused as elements in yet more - complex types. - - - - The o parameter should obviously refer to a properly - initialized &odr; stream of the right type (encoding/decoding/printing) - for the operation that you wish to perform. - - - - When encoding or printing, the function first looks at - * p. If * p (the pointer pointed - to by p) is a null pointer, this is taken to mean that - the data element is absent. If the optional parameter - is nonzero, the function will return one (signifying success) without - any further processing. If the optional is zero, an - internal error flag is set in the &odr; stream, and the function will - return 0. No further operations can be carried out on the stream without - a call to the function odr_reset(). - - - - If *p is not a null pointer, it is expected to - point to an instance of the data type. The data will be subjected to - the encoding rules, and the result will be placed in the buffer held - by the &odr; stream. - - - - The other ASN.1 primitives have similar functions that operate in - similar manners: - - - BOOLEAN - - -int odr_bool(ODR o, bool_t **p, int optional, const char *name); - - - - REAL - - - Not defined. - - - - NULL - - -int odr_null(ODR o, bool_t **p, int optional, const char *name); - - - - In this case, the value of **p is not important. If *p - is different from the null pointer, the null value is present, otherwise - it's absent. - - - - OCTET STRING - - -typedef struct odr_oct -{ - unsigned char *buf; - int len; - int size; -} Odr_oct; - -int odr_octetstring(ODR o, Odr_oct **p, int optional, - const char *name); - - - - The buf field should point to the character array - that holds the octetstring. The len field holds the - actual length, while the size field gives the size - of the allocated array (not of interest to you, in most cases). - The character array need not be null terminated. - - - - To make things a little easier, an alternative is given for string - types that are not expected to contain embedded NULL characters (eg. - VisibleString): - - - - int odr_cstring(ODR o, char **p, int optional, const char *name); - - - - Which encoded or decodes between OCTETSTRING representations and - null-terminates C strings. - - - - Functions are provided for the derived string types, eg: - - - -int odr_visiblestring(ODR o, char **p, int optional, - const char *name); - - - - BIT STRING - - -int odr_bitstring(ODR o, Odr_bitmask **p, int optional, - const char *name); - - - - The opaque type Odr_bitmask is only suitable for - holding relatively brief bit strings, eg. for options fields, etc. - The constant ODR_BITMASK_SIZE multiplied by 8 - gives the maximum possible number of bits. - - - - A set of macros are provided for manipulating the - Odr_bitmask type: - - - -void ODR_MASK_ZERO(Odr_bitmask *b); - -void ODR_MASK_SET(Odr_bitmask *b, int bitno); - -void ODR_MASK_CLEAR(Odr_bitmask *b, int bitno); - -int ODR_MASK_GET(Odr_bitmask *b, int bitno); - - - - The functions are modeled after the manipulation functions that - accompany the fd_set type used by the - select(2) call. - ODR_MASK_ZERO should always be called first on a - new bitmask, to initialize the bits to zero. - - - - OBJECT IDENTIFIER - - -int odr_oid(ODR o, Odr_oid **p, int optional, const char *name); - - - - The C OID representation is simply an array of integers, terminated by - the value -1 (the Odr_oid type is synonymous with - the int type). - We suggest that you use the OID database module (see - ) to handle object identifiers - in your application. - - - - - Tagging Primitive Types - - - The simplest way of tagging a type is to use the - odr_implicit_tag() or - odr_explicit_tag() macros: - - - -int odr_implicit_tag(ODR o, Odr_fun fun, int class, int tag, - int optional, const char *name); - -int odr_explicit_tag(ODR o, Odr_fun fun, int class, int tag, - int optional, const char *name); - - - - To create a type derived from the integer type by implicit tagging, you - might write: - - - - MyInt ::= [210] IMPLICIT INTEGER - - - - In the &odr; system, this would be written like: - - - -int myInt(ODR o, int **p, int optional, const char *name) -{ - return odr_implicit_tag(o, odr_integer, p, - ODR_CONTEXT, 210, optional, name); -} - - - - The function myInt() can then be used like any of - the primitive functions provided by &odr;. Note that the behavior of - odr_explicit_tag() - and odr_implicit_tag() macros - act exactly the same as the functions they are applied to - they - respond to error conditions, etc, in the same manner - they - simply have three extra parameters. The class parameter may - take one of the values: ODR_CONTEXT, - ODR_PRIVATE, ODR_UNIVERSAL, or - /ODR_APPLICATION. - - - - Constructed Types - - - Constructed types are created by combining primitive types. The - &odr; system only implements the SEQUENCE and SEQUENCE OF constructions - (although adding the rest of the container types should be simple - enough, if the need arises). - - - - For implementing SEQUENCEs, the functions - - - -int odr_sequence_begin(ODR o, void *p, int size, const char *name); -int odr_sequence_end(ODR o); - - - - are provided. - - - - The odr_sequence_begin() function should be - called in the beginning of a function that implements a SEQUENCE type. - Its parameters are the &odr; stream, a pointer (to a pointer to the type - you're implementing), and the size of the type - (typically a C structure). On encoding, it returns 1 if - * p is a null pointer. The size - parameter is ignored. On decoding, it returns 1 if the type is found in - the data stream. size bytes of memory are allocated, - and *p is set to point to this space. - odr_sequence_end() is called at the end of the - complex function. Assume that a type is defined like this: - - - -MySequence ::= SEQUENCE { - intval INTEGER, - boolval BOOLEAN OPTIONAL -} - - - - The corresponding &odr; encoder/decoder function and the associated data - structures could be written like this: - - - -typedef struct MySequence -{ - int *intval; - bool_t *boolval; -} MySequence; - -int mySequence(ODR o, MySequence **p, int optional, const char *name) -{ - if (odr_sequence_begin(o, p, sizeof(**p), name) == 0) - return optional && odr_ok(o); - return - odr_integer(o, &(*p)->intval, 0, "intval") && - odr_bool(o, &(*p)->boolval, 1, "boolval") && - odr_sequence_end(o); -} - - - - - Note the 1 in the call to odr_bool(), to mark - that the sequence member is optional. - If either of the member types had been tagged, the macros - odr_implicit_tag() or - odr_explicit_tag() - could have been used. - The new function can be used exactly like the standard functions provided - with &odr;. It will encode, decode or pretty-print a data value of the - MySequence type. We like to name types with an - initial capital, as done in ASN.1 definitions, and to name the - corresponding function with the first character of the name in lower case. - You could, of course, name your structures, types, and functions any way - you please - as long as you're consistent, and your code is easily readable. - odr_ok is just that - a predicate that returns the - state of the stream. It is used to ensure that the behavior of the new - type is compatible with the interface of the primitive types. - - - - - Tagging Constructed Types - - - - See for information on how to tag - the primitive types, as well as types that are already defined. - - - - - Implicit Tagging - - - Assume the type above had been defined as - - - -MySequence ::= [10] IMPLICIT SEQUENCE { - intval INTEGER, - boolval BOOLEAN OPTIONAL -} - - - - You would implement this in &odr; by calling the function - - - -int odr_implicit_settag(ODR o, int class, int tag); - - - - which overrides the tag of the type immediately following it. The - macro odr_implicit_tag() works by calling - odr_implicit_settag() immediately - before calling the function pointer argument. - Your type function could look like this: - - - -int mySequence(ODR o, MySequence **p, int optional, const char *name) -{ - if (odr_implicit_settag(o, ODR_CONTEXT, 10) == 0 || - odr_sequence_begin(o, p, sizeof(**p), name) == 0) - return optional && odr_ok(o); - return - odr_integer(o, &(*p)->intval, 0, "intval") && - odr_bool(o, &(*p)->boolval, 1, "boolval") && - odr_sequence_end(o); -} - - - - The definition of the structure MySequence would be - the same. - - - - Explicit Tagging - - - Explicit tagging of constructed types is a little more complicated, - since you are in effect adding a level of construction to the data. - - - - Assume the definition: - - - -MySequence ::= [10] IMPLICIT SEQUENCE { - intval INTEGER, - boolval BOOLEAN OPTIONAL -} - - - - Since the new type has an extra level of construction, two new functions - are needed to encapsulate the base type: - - - -int odr_constructed_begin(ODR o, void *p, int class, int tag, - const char *name); - -int odr_constructed_end(ODR o); - - - - Assume that the IMPLICIT in the type definition above were replaced - with EXPLICIT (or that the IMPLICIT keyword were simply deleted, which - would be equivalent). The structure definition would look the same, - but the function would look like this: - - - -int mySequence(ODR o, MySequence **p, int optional, const char *name) -{ - if (odr_constructed_begin(o, p, ODR_CONTEXT, 10, name) == 0) - return optional && odr_ok(o); - if (o->direction == ODR_DECODE) - *p = odr_malloc(o, sizeof(**p)); - if (odr_sequence_begin(o, p, sizeof(**p), 0) == 0) - { - *p = 0; /* this is almost certainly a protocol error */ - return 0; - } - return - odr_integer(o, &(*p)->intval, 0, "intval") && - odr_bool(o, &(*p)->boolval, 1, "boolval") && - odr_sequence_end(o) && - odr_constructed_end(o); -} - - - - Notice that the interface here gets kind of nasty. The reason is - simple: Explicitly tagged, constructed types are fairly rare in - the protocols that we care about, so the - esthetic annoyance (not to mention the dangers of a cluttered - interface) is less than the time that would be required to develop a - better interface. Nevertheless, it is far from satisfying, and it's a - point that will be worked on in the future. One option for you would - be to simply apply the odr_explicit_tag() macro to - the first function, and not - have to worry about odr_constructed_* yourself. - Incidentally, as you might have guessed, the - odr_sequence_ functions are themselves - implemented using the /odr_constructed_ functions. - - - - - SEQUENCE OF - - - To handle sequences (arrays) of a specific type, the function - - - -int odr_sequence_of(ODR o, int (*fun)(ODR o, void *p, int optional), - void *p, int *num, const char *name); - - - - The fun parameter is a pointer to the decoder/encoder - function of the type. p is a pointer to an array of - pointers to your type. num is the number of elements - in the array. - - - - Assume a type - - - -MyArray ::= SEQUENCE OF INTEGER - - - - The C representation might be - - - -typedef struct MyArray -{ - int num_elements; - int **elements; -} MyArray; - - - - And the function might look like - - - -int myArray(ODR o, MyArray **p, int optional, const char *name) -{ - if (o->direction == ODR_DECODE) - *p = odr_malloc(o, sizeof(**p)); - if (odr_sequence_of(o, odr_integer, &(*p)->elements, - &(*p)->num_elements, name)) - return 1; - *p = 0; - return optional && odr_ok(o); -} - - - - CHOICE Types - - - The choice type is used fairly often in some ASN.1 definitions, so - some work has gone into streamlining its interface. - - - - CHOICE types are handled by the function: - - - -int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp, - const char *name); - - - - The arm array is used to describe each of the possible - types that the CHOICE type may assume. Internally in your application, - the CHOICE type is represented as a discriminated union. That is, a - C union accompanied by an integer (or enum) identifying the active - 'arm' of the union. - whichp is a pointer to the union discriminator. - When encoding, it is examined to determine the current type. - When decoding, it is set to reference the type that was found in - the input stream. - - - - The Odr_arm type is defined thus: - - - -typedef struct odr_arm -{ - int tagmode; - int class; - int tag; - int which; - Odr_fun fun; - char *name; -} Odr_arm; - - - - The interpretation of the fields are: - - - - tagmode - Either ODR_IMPLICIT, - ODR_EXPLICIT, or ODR_NONE (-1) - to mark no tagging. - - - which - The value of the discriminator that corresponds to - this CHOICE element. Typically, it will be a #defined constant, or - an enum member. - - - fun - A pointer to a function that implements the type of - the CHOICE member. It may be either a standard &odr; type or a type - defined by yourself. - - - name - Name of tag. - - - - - A handy way to prepare the array for use by the - odr_choice() function is to - define it as a static, initialized array in the beginning of your - decoding/encoding function. Assume the type definition: - - - -MyChoice ::= CHOICE { - untagged INTEGER, - tagged [99] IMPLICIT INTEGER, - other BOOLEAN -} - - - - Your C type might look like - - - -typedef struct MyChoice -{ - enum - { - MyChoice_untagged, - MyChoice_tagged, - MyChoice_other - } which; - union - { - int *untagged; - int *tagged; - bool_t *other; - } u; -}; - - - - And your function could look like this: - - - -int myChoice(ODR o, MyChoice **p, int optional, const char *name) -{ - static Odr_arm arm[] = - { - {-1, -1, -1, MyChoice_untagged, odr_integer, "untagged"}, - {ODR_IMPLICIT, ODR_CONTEXT, 99, MyChoice_tagged, odr_integer, - "tagged"}, - {-1, -1, -1, MyChoice_other, odr_boolean, "other"}, - {-1, -1, -1, -1, 0} - }; - - if (o->direction == ODR_DECODE) - *p = odr_malloc(o, sizeof(**p); - else if (!*p) - return optional && odr_ok(o); - - if (odr_choice(o, arm, &(*p)->u, &(*p)->which), name) - return 1; - *p = 0; - return optional && odr_ok(o); -} - - - - In some cases (say, a non-optional choice which is a member of a - sequence), you can "embed" the union and its discriminator in the - structure belonging to the enclosing type, and you won't need to - fiddle with memory allocation to create a separate structure to - wrap the discriminator and union. - - - - The corresponding function is somewhat nicer in the Sun XDR interface. - Most of the complexity of this interface comes from the possibility of - declaring sequence elements (including CHOICEs) optional. - - - - The ASN.1 specifications naturally requires that each member of a - CHOICE have a distinct tag, so they can be told apart on decoding. - Sometimes it can be useful to define a CHOICE that has multiple types - that share the same tag. You'll need some other mechanism, perhaps - keyed to the context of the CHOICE type. In effect, we would like to - introduce a level of context-sensitiveness to our ASN.1 specification. - When encoding an internal representation, we have no problem, as long - as each CHOICE member has a distinct discriminator value. For - decoding, we need a way to tell the choice function to look for a - specific arm of the table. The function - - - -void odr_choice_bias(ODR o, int what); - - - - provides this functionality. When called, it leaves a notice for the next - call to odr_choice() to be called on the decoding - stream o that only the arm entry with - a which field equal to what - should be tried. - - - - The most important application (perhaps the only one, really) is in - the definition of application-specific EXTERNAL encoders/decoders - which will automatically decode an ANY member given the direct or - indirect reference. - - - - - - Debugging - - - The protocol modules are suffering somewhat from a lack of diagnostic - tools at the moment. Specifically ways to pretty-print PDUs that - aren't recognized by the system. We'll include something to this end - in a not-too-distant release. In the meantime, what we do when we get - packages we don't understand is to compile the ODR module with - ODR_DEBUG defined. This causes the module to dump tracing - information as it processes data units. With this output and the - protocol specification (Z39.50), it is generally fairly easy to see - what goes wrong. - - -
    - diff --git a/dependencies/yaz_3.0.14/doc/server.backend.html b/dependencies/yaz_3.0.14/doc/server.backend.html deleted file mode 100644 index 857de47..0000000 --- a/dependencies/yaz_3.0.14/doc/server.backend.html +++ /dev/null @@ -1,11 +0,0 @@ -3. The Backend API

    3. The Backend API

    - The header file that you need to use the interface are in the - include/yaz directory. It's called - backend.h. It will include other files from - the include/yaz directory, so you'll - probably want to use the -I option of your compiler to tell it - where to find the files. When you run - make in the top-level YAZ directory, - everything you need to create your server is to link with the - lib/libyaz.la library. -

    diff --git a/dependencies/yaz_3.0.14/doc/server.backendfunctions.html b/dependencies/yaz_3.0.14/doc/server.backendfunctions.html deleted file mode 100644 index a75bae0..0000000 --- a/dependencies/yaz_3.0.14/doc/server.backendfunctions.html +++ /dev/null @@ -1,377 +0,0 @@ -5. The Backend Functions

    5. The Backend Functions

    - For each service of the protocol, the backend interface declares one or - two functions. You are required to provide implementations of the - functions representing the services that you wish to implement. -

    5.1. Init

    -bend_initresult (*bend_init)(bend_initrequest *r);
    -    

    - This handler is called once for each new connection request, after - a new process/thread has been created, and an Initialize Request has - been received from the client. The pointer to the - bend_init handler is passed in the call to - statserv_start. -

    - This handler is also called when operating in SRU mode - when - a connection has been made (even though SRU does not offer - this service). -

    - Unlike previous versions of YAZ, the bend_init also - serves as a handler that defines the Z39.50 services that the backend - wish to support. Pointers to all service handlers, - including search - and fetch must be specified here in this handler. -

    - The request - and result structures are defined as -

    -typedef struct bend_initrequest
    -{
    -    /** \brief user/name/password to be read */
    -    Z_IdAuthentication *auth; 
    -    /** \brief encoding stream (for results) */
    -    ODR stream;
    -    /** \brief printing stream */
    -    ODR print;
    -    /** \brief decoding stream (use stream for results) */
    -    ODR decode; 
    -    /** \brief reference ID */
    -    Z_ReferenceId *referenceId;
    -    /** \brief peer address of client */
    -    char *peer_name;           
    -    
    -    /** \brief character set and language negotiation 
    -
    -    see include/yaz/z-charneg.h 
    -    */
    -    Z_CharSetandLanguageNegotiation *charneg_request;
    -
    -    /** \brief character negotiation response */
    -    Z_External *charneg_response;
    -
    -    /** \brief character set (encoding) for query terms 
    -        
    -    This is NULL by default. It should be set to the native character
    -    set that the backend assumes for query terms */
    -    char *query_charset;      
    -
    -    /** \brief whehter query_charset also applies to recors 
    -    
    -    Is 0 (No) by default. Set to 1 (yes) if records is in the same
    -    character set as queries. If in doubt, use 0 (No).
    -    */
    -    int records_in_same_charset;
    -
    -    char *implementation_id;
    -    char *implementation_name;
    -    char *implementation_version;
    -
    -    /** \brief Z39.50 sort handler */
    -    int (*bend_sort)(void *handle, bend_sort_rr *rr);
    -    /** \brief SRU/Z39.50 search handler */
    -    int (*bend_search)(void *handle, bend_search_rr *rr);
    -    /** \brief SRU/Z39.50 fetch handler */
    -    int (*bend_fetch)(void *handle, bend_fetch_rr *rr);
    -    /** \brief SRU/Z39.50 present handler */
    -    int (*bend_present)(void *handle, bend_present_rr *rr);
    -    /** \brief Z39.50 extended services handler */
    -    int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr);
    -    /** \brief Z39.50 delete result set handler */
    -    int (*bend_delete)(void *handle, bend_delete_rr *rr);
    -    /** \brief Z39.50 scan handler */
    -    int (*bend_scan)(void *handle, bend_scan_rr *rr);
    -    /** \brief Z39.50 segment facility handler */
    -    int (*bend_segment)(void *handle, bend_segment_rr *rr);
    -    /** \brief SRU explain handler */
    -    int (*bend_explain)(void *handle, bend_explain_rr *rr);
    -    /** \brief SRU scan handler */
    -    int (*bend_srw_scan)(void *handle, bend_scan_rr *rr);
    -    /** \brief SRU record update handler */
    -    int (*bend_srw_update)(void *handle, bend_update_rr *rr);
    -
    -} bend_initrequest;
    -
    -typedef struct bend_initresult
    -{
    -    int errcode;               /* 0==OK */
    -    char *errstring;           /* system error string or NULL */
    -    void *handle;              /* private handle to the backend module */
    -} bend_initresult;
    -    

    - In general, the server frontend expects that the - bend_*result pointer that you return is valid at - least until the next call to a bend_* function. - This applies to all of the functions described herein. The parameter - structure passed to you in the call belongs to the server frontend, and - you should not make assumptions about its contents after the current - function call has completed. In other words, if you want to retain any - of the contents of a request structure, you should copy them. -

    - The errcode should be zero if the initialization of - the backend went well. Any other value will be interpreted as an error. - The errstring isn't used in the current version, but - one option would be to stick it in the initResponse as a VisibleString. - The handle is the most important parameter. It should - be set to some value that uniquely identifies the current session to - the backend implementation. It is used by the frontend server in any - future calls to a backend function. - The typical use is to set it to point to a dynamically allocated state - structure that is private to your backend module. -

    - The auth member holds the authentication information - part of the Z39.50 Initialize Request. Interpret this if your serves - requires authentication. -

    - The members peer_name, - implementation_id, - implementation_name and - implementation_version holds - DNS of client, ID of implementor, name - of client (Z39.50) implementation - and version. -

    - The bend_ - members are set to NULL when - bend_init is called. Modify the pointers by - setting them to point to backend functions. -

    5.2. Search and Retrieve

    We now describe the handlers that are required to support search - - and retrieve. You must support two functions - one for search - and one - for fetch (retrieval of one record). If desirable you can provide a - third handler which is called when a present request is received which - allows you to optimize retrieval of multiple-records. -

    -int (*bend_search) (void *handle, bend_search_rr *rr);
    -
    -typedef struct {
    -    char *setname;             /* name to give to this set */
    -    int replace_set;           /* replace set, if it already exists */
    -    int num_bases;             /* number of databases in list */
    -    char **basenames;          /* databases to search */
    -    Z_ReferenceId *referenceId;/* reference ID */
    -    Z_Query *query;            /* query structure */
    -    ODR stream;                /* encode stream */
    -    ODR decode;                /* decode stream */
    -    ODR print;                 /* print stream */
    -
    -    bend_request request;
    -    bend_association association;
    -    int *fd;
    -    int hits;                  /* number of hits */
    -    int errcode;               /* 0==OK */
    -    char *errstring;           /* system error string or NULL */
    -    Z_OtherInformation *search_info; /* additional search info */
    -    char *srw_sortKeys;        /* holds SRU/SRW sortKeys info */
    -    char *srw_setname;         /* holds SRU/SRW generated resultsetID */
    -    int *srw_setnameIdleTime;  /* holds SRU/SRW life-time */
    -    int estimated_hit_count;   /* if hit count is estimated */
    -    int partial_resultset;     /* if result set is partial */
    -} bend_search_rr;
    -    

    - The bend_search handler is a fairly close - approximation of a protocol Z39.50 Search Request - and Response PDUs - The setname is the resultSetName from the protocol. - You are required to establish a mapping between the set name and whatever - your backend database likes to use. - Similarly, the replace_set is a boolean value - corresponding to the resultSetIndicator field in the protocol. - num_bases/basenames is a length of/array of character - pointers to the database names provided by the client. - The query is the full query structure as defined in - the protocol ASN.1 specification. - It can be either of the possible query types, and it's up to you to - determine if you can handle the provided query type. - Rather than reproduce the C interface here, we'll refer you to the - structure definitions in the file - include/yaz/z-core.h. If you want to look at the - attributeSetId OID of the RPN query, you can either match it against - your own internal tables, or you can use the - oid_getentbyoid function provided by YAZ. -

    - The structure contains a number of hits, and an - errcode/errstring pair. If an error occurs - during the search, or if you're unhappy with the request, you should - set the errcode to a value from the BIB-1 diagnostic set. The value - will then be returned to the user in a nonsurrogate diagnostic record - in the response. The errstring, if provided, will - go in the addinfo field. Look at the protocol definition for the - defined error codes, and the suggested uses of the addinfo field. -

    - The bend_search handler is also called when - the frontend server receives a SRU SearchRetrieveRequest. - For SRU, a CQL query is usually provided by the client. - The CQL query is available as part of Z_Query - structure (note that CQL is now part of Z39.50 via an external). - To support CQL in existing implementations that only do Type-1, - we refer to the CQL-to-PQF tool described - here. -

    - To maintain backwards compatibility, the frontend server - of yaz always assume that error codes are BIB-1 diagnostics. - For SRU operation, a Bib-1 diagnostic code is mapped to - SRU diagnostic. -

    -int (*bend_fetch) (void *handle, bend_fetch_rr *rr);
    -
    -typedef struct bend_fetch_rr {
    -    char *setname;             /* set name */
    -    int number;                /* record number */
    -    Z_ReferenceId *referenceId;/* reference ID */
    -    Odr_oid *request_format;        /* format, transfer syntax (OID) */
    -    Z_RecordComposition *comp; /* Formatting instructions */
    -    ODR stream;                /* encoding stream - memory source if req */
    -    ODR print;                 /* printing stream */
    -
    -    char *basename;            /* name of database that provided record */
    -    int len;                   /* length of record or -1 if structured */
    -    char *record;              /* record */
    -    int last_in_set;           /* is it?  */
    -    Odr_oid *output_format;        /* response format/syntax (OID) */
    -    int errcode;               /* 0==success */
    -    char *errstring;           /* system error string or NULL */
    -    int surrogate_flag;        /* surrogate diagnostic */
    -    char *schema;              /* string record schema input/output */
    -} bend_fetch_rr;
    -    

    - The frontend server calls the bend_fetch handler - when it needs database records to fulfill a Z39.50 Search Request, a - Z39.50 Present Request or a SRU SearchRetrieveRequest. - The setname is simply the name of the result set - that holds the reference to the desired record. - The number is the offset into the set (with 1 - being the first record in the set). The format field - is the record format requested by the client (See - Section 3, “Object Identifiers (YAZ 2)”). - A value of NULL for format indicates that the - client did not request a specific format. - The stream argument is an ODR stream which - should be used for allocating space for structured data records. - The stream will be reset when all records have been assembled, and - the response package has been transmitted. - For unstructured data, the backend is responsible for maintaining a - static or dynamic buffer for the record between calls. -

    - If a SRU SearchRetrieveRequest is received by the frontend server, - the referenceId is NULL and the - format (transfer syntax) is the OID for XML. - The schema for SRU is stored in both the - Z_RecordComposition - structure and schema (simple string). -

    - In the structure, the basename is the name of the - database that holds the - record. len is the length of the record returned, in - bytes, and record is a pointer to the record. - last_in_set should be nonzero only if the record - returned is the last one in the given result set. - errcode and errstring, if - given, will be interpreted as a global error pertaining to the - set, and will be returned in a non-surrogate-diagnostic. - If you wish to return the error as a surrogate-diagnostic - (local error) you can do this by setting - surrogate_flag to 1 also. -

    - If the len field has the value -1, then - record is assumed to point to a constructed data - type. The format field will be used to determine - which encoder should be used to serialize the data. -

    Note

    - If your backend generates structured records, it should use - odr_malloc() on the provided stream for allocating - data: This allows the frontend server to keep track of the record sizes. -

    - The format field is mapped to an object identifier - in the direct reference of the resulting EXTERNAL representation - of the record. -

    Note

    - The current version of YAZ only supports the direct reference mode. -

    -int (*bend_present) (void *handle, bend_present_rr *rr);
    -
    -typedef struct {
    -    char *setname;             /* set name */
    -    int start;
    -    int number;                /* record number */
    -    Odr_oid *format;           /* format, transfer syntax (OID) */
    -    Z_ReferenceId *referenceId;/* reference ID */
    -    Z_RecordComposition *comp; /* Formatting instructions */
    -    ODR stream;                /* encoding stream - memory source if required */
    -    ODR print;                 /* printing stream */
    -    bend_request request;
    -    bend_association association;
    -
    -    int hits;                  /* number of hits */
    -    int errcode;               /* 0==OK */
    -    char *errstring;           /* system error string or NULL */
    -} bend_present_rr;
    -    

    - The bend_present handler is called when - the server receives a Z39.50 Present Request. - The setname, - start and number is the - name of the result set - start position - and number of records to - be retrieved respectively. format and - comp is the preferred transfer syntax and element - specifications of the present request. -

    - Note that this is handler serves as a supplement for - bend_fetch and need not to be defined in order to - support search - and retrieve. -

    5.3. Delete

    - For back-ends that supports delete of a result set only one handler - must be defined. -

    -int (*bend_delete)(void *handle, bend_delete_rr *rr);
    -
    -typedef struct bend_delete_rr {
    -    int function;
    -    int num_setnames;
    -    char **setnames;
    -    Z_ReferenceId *referenceId;
    -    int delete_status;      /* status for the whole operation */
    -    int *statuses;          /* status each set - indexed as setnames */
    -    ODR stream;
    -    ODR print; 
    -} bend_delete_rr;
    -    

    Note

    - The delete set function definition is rather primitive, mostly because - we have had no practical need for it as of yet. If someone wants - to provide a full delete service, we'd be happy to add the - extra parameters that are required. Are there clients out there - that will actually delete sets they no longer need? -

    5.4. Scan

    - For servers that wish to offer the scan service one handler - must be defined. -

    -int (*bend_scan)(void *handle, bend_scan_rr *rr);
    -
    -typedef enum {
    -    BEND_SCAN_SUCCESS,  /* ok */
    -    BEND_SCAN_PARTIAL   /* not all entries could be found */
    -} bend_scan_status;
    -
    -typedef struct bend_scan_rr {
    -    int num_bases;      /* number of elements in databaselist */
    -    char **basenames;   /* databases to search */
    -    Odr_oid *attributeset;
    -    Z_ReferenceId *referenceId; /* reference ID */
    -    Z_AttributesPlusTerm *term;
    -    ODR stream;         /* encoding stream - memory source if required */
    -    ODR print;          /* printing stream */
    -
    -    int *step_size;     /* step size */
    -    int term_position;  /* desired index of term in result list/returned */
    -    int num_entries;    /* number of entries requested/returned */
    -
    -    /* scan term entries. The called handler does not have
    -       to allocate this. Size of entries is num_entries (see above) */
    -    struct scan_entry *entries;
    -    bend_scan_status status;
    -    int errcode;
    -    char *errstring;
    -    char *scanClause;   /* CQL scan clause */
    -    char *setname;      /* Scan in result set (NULL if omitted) */
    -} bend_scan_rr;
    -    

    - This backend server handles both Z39.50 scan - and SRU scan. In order for a handler to distinguish between SRU (CQL) scan - Z39.50 Scan , it must check for a non-NULL value of - scanClause. -

    Note

    - if designed today, it would be a choice using a union or similar, - but that would break binary compatibility with existing servers. -

    diff --git a/dependencies/yaz_3.0.14/doc/server.frontend.html b/dependencies/yaz_3.0.14/doc/server.frontend.html deleted file mode 100644 index e2f1666..0000000 --- a/dependencies/yaz_3.0.14/doc/server.frontend.html +++ /dev/null @@ -1,36 +0,0 @@ -2. The Database Frontend

    2. The Database Frontend

    - We refer to this software as a generic database frontend. Your - database system is the backend database, and the - interface between the two is called the backend API. - The backend API consists of a small number of function handlers and - structure definitions. You are required to provide the - main() routine for the server (which can be - quite simple), as well as a set of handlers to match each of the - prototypes. - The interface functions that you write can use any mechanism you like - to communicate with your database system: You might link the whole - thing together with your database application and access it by - function calls; you might use IPC to talk to a database server - somewhere; or you might link with third-party software that handles - the communication for you (like a commercial database client library). - At any rate, the handlers will perform the tasks of: -

    • - Initialization. -

    • - Searching. -

    • - Fetching records. -

    • - Scanning the database index (optional - if you wish to implement SCAN). -

    • - Extended Services (optional). -

    • - Result-Set Delete (optional). -

    • - Result-Set Sort (optional). -

    • - Return Explain for SRU (optional). -

    - (more functions will be added in time to support as much of - Z39.50-1995 as possible). -

    diff --git a/dependencies/yaz_3.0.14/doc/server.html b/dependencies/yaz_3.0.14/doc/server.html deleted file mode 100644 index 35a02b8..0000000 --- a/dependencies/yaz_3.0.14/doc/server.html +++ /dev/null @@ -1,35 +0,0 @@ -Chapter 4. Generic server

    Chapter 4. Generic server

    1. Introduction

    - If you aren't into documentation, a good way to learn how the - back end interface works is to look at the backend.h - file. Then, look at the small dummy-server in - ztest/ztest.c. The backend.h - file also makes a good reference, once you've chewed your way through - the prose of this file. -

    - If you have a database system that you would like to make available by - means of Z39.50 or SRU, YAZ basically offers your two options. You - can use the APIs provided by the Z39.50 ASN.1, ODR, and COMSTACK - modules to - create and decode PDUs, and exchange them with a client. - Using this low-level interface gives you access to all fields and - options of the protocol, and you can construct your server as close - to your existing database as you like. - It is also a fairly involved process, requiring - you to set up an event-handling mechanism, protocol state machine, - etc. To simplify server implementation, we have implemented a compact - and simple, but reasonably full-functioned server-frontend that will - handle most of the protocol mechanics, while leaving you to - concentrate on your database interface. -

    Note

    - The backend interface was designed in anticipation of a specific - integration task, while still attempting to achieve some degree of - generality. We realize fully that there are points where the - interface can be improved significantly. If you have specific - functions or parameters that you think could be useful, send us a - mail (or better, sign on to the mailing list referred to in the - top-level README file). We will try to fit good suggestions into future - releases, to the extent that it can be done without requiring - too many structural changes in existing applications. -

    Note

    - The YAZ server does not support XCQL. -

    diff --git a/dependencies/yaz_3.0.14/doc/server.invocation.html b/dependencies/yaz_3.0.14/doc/server.invocation.html deleted file mode 100644 index 503b361..0000000 --- a/dependencies/yaz_3.0.14/doc/server.invocation.html +++ /dev/null @@ -1,167 +0,0 @@ -6. Application Invocation

    6. Application Invocation

    - The finished application has the following - invocation syntax (by way of statserv_main()): -

    application [-install] [-installa] [-remove] [-a file] [-v level] [-l file] [-u uid] [-c config] [-f vconfig] [-C fname] [-t minutes] [-k kilobytes] [-d daemon] [-w dir] [-p pidfile] [-r kilobytes] [-ziDST1] [listener-spec...]

    - The options are: - - - -

    -a - file

    - Specify a file for dumping PDUs (for diagnostic purposes). - The special name - (dash) sends output to - stderr. -

    -S

    - Don't fork or make threads on connection requests. This is good for - debugging, but not recommended for real operation: Although the - server is asynchronous and non-blocking, it can be nice to keep - a software malfunction (okay then, a crash) from affecting all - current users. -

    -1

    - Like -S but after one session the server - exits. This mode is for debugging only. -

    -T

    - Operate the server in threaded mode. The server creates a thread - for each connection rather than a fork a process. Only available - on UNIX systems that offers POSIX threads. -

    -s

    - Use the SR protocol (obsolete). -

    -z

    - Use the Z39.50 protocol (default). This option and -s - complement each other. - You can use both multiple times on the same command - line, between listener-specifications (see below). This way, you - can set up the server to listen for connections in both protocols - concurrently, on different local ports. -

    -l - file

    The logfile. -

    -c - config

    A user option that serves as a specifier for some - sort of configuration, usually a filename. - The argument to this option is transferred to member - configname of the - statserv_options_block. -

    -f - vconfig

    This specifies an XML file that describes - one or more YAZ frontend virtual servers. -

    -C - fname

    Sets SSL certificate file name for server (PEM). -

    -v - level

    - The log level. Use a comma-separated list of members of the set - {fatal,debug,warn,log,malloc,all,none}. -

    -u - uid

    - Set user ID. Sets the real UID of the server process to that of the - given user. It's useful if you aren't comfortable with having the - server run as root, but you need to start it as such to bind a - privileged port. -

    -w - dir

    - The server changes to this directory during before listening - on incoming connections. This option is useful - when the server is operating from the inetd - daemon (see -i). -

    -p - pidfile

    - Specifies that the server should write its Process ID to - file given by pidfile. - A typical location would be /var/run/yaz-ztest.pid. -

    -i

    - Use this to make the the server run from the - inetd server (UNIX only). -

    -D

    - Use this to make the server put itself in the background and - run as a daemon. If neither -i nor - -D is given, the server starts in the foreground. -

    -install

    - Use this to install the server as an NT service - (Windows NT/2000/XP only). - Control the server by going to the Services in the Control Panel. -

    -installa

    - Use this to install and activate the server as an NT service - (Windows NT/2000/XP only). - Control the server by going to the Services in the Control Panel. -

    -remove

    - Use this to remove the server from the NT services - (Windows NT/2000/XP only). -

    -t - minutes

    - Idle session timeout, in minutes. -

    -k - size

    - Maximum record size/message size, in kilobytes. -

    -r - size

    - Maximum size of log file before rotation occurs, in kilobytes. - Default size is 1048576 k (=1 GB). -

    -d - daemon

    - Set name of daemon to be used in hosts access file. - See - hosts_access(5) - and - tcpd(8). -

    -m - time-format

    - Sets the format of time-stamps in the log-file. Specify a string in - the input format to strftime(). -

    - - - - -

    - A listener specification consists of a transport mode followed by a - colon (:) followed by a listener address. The transport mode is - either tcp, unix: or - ssl. -

    - For TCP and SSL, an address has the form -

    -    hostname | IP-number [: portnumber]
    -   

    - The port number defaults to 210 (standard Z39.50 port). -

    - For UNIX, the address is the filename of socket. -

    - For TCP/IP and SSL, the special hostname @ - (at sign) is mapped to the address INADDR_ANY, - which causes the server to listen on any local interface. -

    Example 4.1. Running the GFS on Unix

    - Assuming the server application appname is - started as root, the following will make it listen on port 210. - The server will change identity to nobody - and write its log to /var/log/app.log. -

    -      appname -l /var/log/app.log -u nobody tcp:@:210
    -     

    -

    - The server will accept Z39.50 requests and offer SRU service on port 210. -


    Example 4.2. Setting up Apache as SRU Frontend

    - If you use Apache - as your public web server and want to offer HTTP port 80 - access to the YAZ server on 210, you can use the - - ProxyPass - directive. - If you have virtual host - srw.mydomain you can use the following directives - in Apache's httpd.conf: -

    -      <VirtualHost *>
    -       ErrorLog /home/srw/logs/error_log
    -       TransferLog /home/srw/logs/access_log
    -       ProxyPass / http://srw.mydomain:210/
    -      </VirtualHost>
    -     

    -

    - The above for the Apache 1.3 series. -


    Example 4.3. Running a server with local access only

    - Servers that is only being accessed from the local host should listen - on UNIX file socket rather than a Internet socket. To listen on - /tmp/mysocket start the server as follows: -

    -      appname tcp:/tmp/mysocket
    -     

    -


    diff --git a/dependencies/yaz_3.0.14/doc/server.main.html b/dependencies/yaz_3.0.14/doc/server.main.html deleted file mode 100644 index 6ca2c5e..0000000 --- a/dependencies/yaz_3.0.14/doc/server.main.html +++ /dev/null @@ -1,117 +0,0 @@ -4. Your main() Routine

    4. Your main() Routine

    - As mentioned, your main() routine can be quite brief. - If you want to initialize global parameters, or read global configuration - tables, this is the place to do it. At the end of the routine, you should - call the function -

    -int statserv_main(int argc, char **argv,
    -                  bend_initresult *(*bend_init)(bend_initrequest *r),
    -                  void (*bend_close)(void *handle));
    -   

    - The third and fourth arguments are pointers to handlers. Handler - bend_init is called whenever the server receives - an Initialize Request, so it serves as a Z39.50 session initializer. The - bend_close handler is called when the session is - closed. -

    - statserv_main will establish listening sockets - according to the parameters given. When connection requests are received, - the event handler will typically fork() and - create a sub-process to handle a new connection. - Alternatively the server may be setup to create threads for each - connection. - If you do use global variables and forking, you should be aware, then, - that these cannot be shared between associations, unless you explicitly - disable forking by command line parameters. -

    - The server provides a mechanism for controlling some of its behavior - without using command-line options. The function -

    -    statserv_options_block *statserv_getcontrol(void);
    -   

    - will return a pointer to a struct statserv_options_block - describing the current default settings of the server. The structure - contains these elements: - -

    - int dynamic

    - A boolean value, which determines whether the server - will fork on each incoming request (TRUE), or not (FALSE). Default is - TRUE. This flag is only read by UNIX-based servers (WIN32 based servers - doesn't fork). -

    - int threads

    - A boolean value, which determines whether the server - will create a thread on each incoming request (TRUE), or not (FALSE). - Default is FALSE. This flag is only read by UNIX-based servers - that offer POSIX Threads support. - WIN32-based servers always operate in threaded mode. -

    - int inetd

    - A boolean value, which determines whether the server - will operates under a UNIX INET daemon (inetd). Default is FALSE. -

    - char logfile[ODR_MAXNAME+1]

    File for diagnostic output ("": stderr). -

    - char apdufile[ODR_MAXNAME+1]

    - Name of file for logging incoming and outgoing APDUs - ("": don't log APDUs, "-": - stderr). -

    - char default_listen[1024]

    Same form as the command-line specification of - listener address. "": no default listener address. - Default is to listen at "tcp:@:9999". You can only - specify one default listener address in this fashion. -

    - enum oid_proto default_proto;

    Either PROTO_Z3950 or - PROTO_SR. - Default is PROTO_Z39_50. -

    - int idle_timeout;

    Maximum session idle-time, in minutes. Zero indicates - no (infinite) timeout. Default is 15 minutes. -

    - int maxrecordsize;

    Maximum permissible record (message) size. Default - is 1Mb. This amount of memory will only be allocated if a - client requests a very large amount of records in one operation - (or a big record). - Set it to a lower number if you are worried about resource - consumption on your host system. -

    - char configname[ODR_MAXNAME+1]

    Passed to the backend when a new connection is received. -

    - char setuid[ODR_MAXNAME+1]

    Set user id to the user specified, after binding - the listener addresses. -

    - void (*bend_start)(struct statserv_options_block *p) -

    Pointer to function which is called after the - command line options have been parsed - but before the server - starts listening. - For forked UNIX servers this handler is called in the mother - process; for threaded servers this handler is called in the - main thread. - The default value of this pointer is NULL in which case it - isn't invoked by the frontend server. - When the server operates as an NT service this handler is called - whenever the service is started. -

    - void (*bend_stop)(struct statserv_options_block *p) -

    Pointer to function which is called whenever the server - has stopped listening for incoming connections. This function pointer - has a default value of NULL in which case it isn't called. - When the server operates as an NT service this handler is called - whenever the service is stopped. -

    - void *handle

    User defined pointer (default value NULL). - This is a per-server handle that can be used to specify "user-data". - Do not confuse this with the session-handle as returned by bend_init. -

    -

    - The pointer returned by statserv_getcontrol points to - a static area. You are allowed to change the contents of the structure, - but the changes will not take effect before you call -

    -void statserv_setcontrol(statserv_options_block *block);
    -   

    Note

    - that you should generally update this structure before calling - statserv_main(). -

    diff --git a/dependencies/yaz_3.0.14/doc/server.vhosts.html b/dependencies/yaz_3.0.14/doc/server.vhosts.html deleted file mode 100644 index 2295294..0000000 --- a/dependencies/yaz_3.0.14/doc/server.vhosts.html +++ /dev/null @@ -1,154 +0,0 @@ -7. GFS Configuration and Virtual Hosts

    7. GFS Configuration and Virtual Hosts

    - The Virtual hosts mechanism allows a YAZ frontend server to - support multiple backends. A backend is selected on the basis of - the TCP/IP binding (port+listening adddress) and/or the virtual host. -

    - A backend can be configured to execute in a particular working - directory. Or the YAZ frontend may perform CQL to RPN conversion, thus - allowing traditional Z39.50 backends to be offered as a SRW/SRU - service. SRW/SRU Explain information for a particular backend may also - be specified. -

    - For the HTTP protocol, the virtual host is specified in the Host header. - For the Z39.50 protocol, the virtual host is specified as in the - Initialize Request in the OtherInfo, OID 1.2.840.10003.10.1000.81.1. -

    Note

    - Not all Z39.50 clients allows the VHOST information to be set. - For those the selection of the backend must rely on the - TCP/IP information alone (port and address). -

    - The YAZ frontend server uses XML to describe the backend - configurations. Command-line option -f - specifies filename of the XML configuration. -

    - The configuration uses the root element yazgfs. - This element includes a list of listen elements, - followed by one or more server elements. -

    - The listen describes listener (transport end point), - such as TCP/IP, Unix file socket or SSL server. Content for - a listener: -

    CDATA (required)

    - The CDATA for the listen element holds the - listener string, such as tcp:@:210, - tcp:server1:2100, - etc. -

    attribute id (optional)

    - identifier for this listener. This may be referred to from - server sections. -

    -

    Note

    - We expect more information to be added for the listen section in - a future version, such as CERT file for SSL servers. -

    -

    - The server describes a server and the parameters - for this server type. Content for a server: -

    attribute id (optional)

    - Identifier for this server. Currently not used for anything, - but it might be for logging purposes. -

    attribute listenref (optional)

    - Specifies listener for this server. If this attribute is not - given, the server is accessible from all listener. In order - for the server to be used for real, howeever, the virtual host - must match (if specified in the configuration). -

    element config (optional)

    - Specifies the server configuration. This is equivalent - to the config specified using command line option - -c. -

    element directory (optional)

    - Specifies a working directory for this backend server. If - specifid, the YAZ fronend changes current working directory - to this directory whenever a backend of this type is - started (backend handler bend_start), stopped (backend handler hand_stop) - and initialized (bend_init). -

    element host (optional)

    - Specifies the virtual host for this server. If this is specified - a client must specify this host string in - order to use this backend. -

    element cql2rpn (optional)

    - Specifies a filename that includes CQL to RPN conversion for this - backend server. See Section 1.3.4, “Specification of CQL to RPN mappings” - If given, the backend server will only "see" a Type-1/RPN query. -

    element ccl2rpn (optional)

    - Specifies a filename that includes CCL to RPN conversion for this - backend server. See Section 1.2.2, “CCL Qualifiers” - If given, the backend server will only "see" a Type-1/RPN query. -

    element stylesheet (optional)

    - Specifies the stylesheet reference to be part of SRU HTTP responses - when the client does not specify one. If neither this is given, nor - the client specifies one, no stylesheet reference is part of the - SRU HTTP response. -

    element docpath (optional)

    - Specifies a path for local file access using HTTP. All URLs with - a leading prefix (/ exluded) that matches the value of docpath - are used for file access. For example, if the server is to offer - access in directory xsl, the docpath would be - xsl and all URLs of the form - http://host/exl will result in a local file access. -

    element explain (optional)

    - Specifies SRW/SRU ZeeRex content for this server. Copied verbatim - to the client. As things are now, some of the Explain content - seeem redundant because host information, etc. is also stored - elsewhere. -

    element maximumrecordsize (optional)

    - Specifies maximum record size/message size, in bytes. This - value also servers as maximum size of incoming - packages (for Record Updates etc). It's the same value as that - given by the -k option. -

    element retrievalinfo (optional)

    - Enables the retrieval facility supporting conversions and - specifications of record formats/types. - See Section 6, “Retrieval Facility” for - more information. -

    -

    - The XML below configures a server that accepts connections from - two ports, TCP/IP port 9900 and a local UNIX file socket. - We name the TCP/IP server public and the - other server internal. -

    -  
    - <yazgfs>
    -  <listen id="public">tcp:@:9900</listen>
    -  <listen id="internal">unix:/var/tmp/socket</listen>
    -  <server id="server1">
    -    <host>server1.mydomain</host>
    -    <directory>/var/www/s1</directory>
    -    <config>config.cfg</config>
    -  </server>
    -  <server id="server2">
    -    <host>server2.mydomain</host>
    -    <directory>/var/www/s2</directory>
    -    <config>config.cfg</config>
    -    <cql2rpn>../etc/pqf.properties</cql2rpn>
    -    <explain xmlns="http://explain.z3950.org/dtd/2.0/">
    -      <serverInfo>
    -        <host>server2.mydomain</host>
    -        <port>9900</port>
    -        <database>a</database>
    -      </serverInfo>
    -    </explain>
    -  </server>
    -  <server id="server3" listenref="internal">
    -    <directory>/var/www/s3</directory>
    -    <config>config.cfg</config>
    -  </server>
    - </yazgfs>
    -
    - 

    - There are three configured backend servers. The first two - servers, "server1" and "server2", - can be reached by both listener addresses - since - no listenref attribute is specified. - In order to distinguish between the two a virtual host has - been specified for each of server in the host - elements. -

    - For "server2" elements for CQL to RPN conversion - is supported and explain information has been added (a short one here - to keep the example small). -

    - The third server, "server3" can only be reached - via listener "internal". -

    diff --git a/dependencies/yaz_3.0.14/doc/soap.html b/dependencies/yaz_3.0.14/doc/soap.html deleted file mode 100644 index f498f8b..0000000 --- a/dependencies/yaz_3.0.14/doc/soap.html +++ /dev/null @@ -1,12 +0,0 @@ -Chapter 8. SOAP and SRU

    Chapter 8. SOAP and SRU

    1. Introduction

    - YAZ uses a very simple implementation of - SOAP that only, - currenly, supports what is sufficient to offer SRU SOAP functionality. - The implementation uses the - tree API of - libxml2 to encode and decode SOAP packages. -

    - Like the Z39.50 ASN.1 module, the YAZ SRU implementation uses - simple C structs to represent SOAP packages as well as - HTTP packages. -

    diff --git a/dependencies/yaz_3.0.14/doc/soap.http.html b/dependencies/yaz_3.0.14/doc/soap.http.html deleted file mode 100644 index a79255a..0000000 --- a/dependencies/yaz_3.0.14/doc/soap.http.html +++ /dev/null @@ -1,27 +0,0 @@ -2. HTTP

    2. HTTP

    - YAZ only offers HTTP as transport carrier for SOAP, but it is - relatively easy to change that. -

    - The following definition of Z_GDU (Generic Data - Unit) allows for both HTTP and Z39.50 in one packet. -

    -#include <yaz/zgdu.h>
    -
    -#define Z_GDU_Z3950         1
    -#define Z_GDU_HTTP_Request  2
    -#define Z_GDU_HTTP_Response 3
    -typedef struct {
    -  int which;
    -  union {
    -    Z_APDU *z3950;
    -    Z_HTTP_Request *HTTP_Request;
    -    Z_HTTP_Response *HTTP_Response;
    -  } u;
    -} Z_GDU ;
    -    

    - The corresponding Z_GDU encoder/decoder is z_GDU. - The z3950 is any of the known BER encoded Z39.50 - APDUs. - HTTP_Request and HTTP_Response - is the HTTP Request and Response respectively. -

    diff --git a/dependencies/yaz_3.0.14/doc/soap.srw.html b/dependencies/yaz_3.0.14/doc/soap.srw.html deleted file mode 100644 index c638c0f..0000000 --- a/dependencies/yaz_3.0.14/doc/soap.srw.html +++ /dev/null @@ -1,97 +0,0 @@ -4. SRU

    4. SRU

    - SRU SOAP is just one implementation of a SOAP handler as described - in the previous section. - The encoder/decoder handler for SRU is defined as - follows: -

    -#include <yaz/srw.h>
    -
    -int yaz_srw_codec(ODR o, void * pptr,
    -                  Z_SRW_GDU **handler_data,
    -                  void *client_data, const char *ns);
    -      

    - Here, Z_SRW_GDU is either - searchRetrieveRequest or a searchRetrieveResponse. -

    Note

    - The xQuery and xSortKeys are not handled yet by - the SRW implementation of YAZ. Explain is also missing. - Future versions of YAZ will include these features. -

    - The definition of searchRetrieveRequest is: -

    -typedef struct {
    -
    -#define Z_SRW_query_type_cql  1
    -#define Z_SRW_query_type_xcql 2
    -#define Z_SRW_query_type_pqf  3
    -    int query_type;
    -    union {
    -        char *cql;
    -        char *xcql;
    -        char *pqf;
    -    } query;
    -
    -#define Z_SRW_sort_type_none 1
    -#define Z_SRW_sort_type_sort 2
    -#define Z_SRW_sort_type_xSort 3
    -    int sort_type;
    -    union {
    -        char *none;
    -        char *sortKeys;
    -        char *xSortKeys;
    -    } sort;
    -    int  *startRecord;
    -    int  *maximumRecords;
    -    char *recordSchema;
    -    char *recordPacking;
    -    char *database;
    -} Z_SRW_searchRetrieveRequest;
    -      

    - Please observe that data of type xsd:string is represented - as a char pointer (char *). A null pointer - means that the element is absent. - Data of type xsd:integer is representd as a pointer to - an int (int *). Again, a null pointer - us used for absent elements. -

    - The SearchRetrieveResponse has the following definition. -

    -typedef struct {
    -    int * numberOfRecords;
    -    char * resultSetId;
    -    int * resultSetIdleTime;
    -    
    -    Z_SRW_record *records;
    -    int num_records;
    -
    -    Z_SRW_diagnostic *diagnostics;
    -    int num_diagnostics;
    -    int *nextRecordPosition;
    -} Z_SRW_searchRetrieveResponse;
    -      

    - The num_records and num_diagnostics - is number of returned records and diagnostics respectively and also - correspond to the "size of" arrays records - and diagnostics. -

    - A retrieval record is defined as follows: -

    -typedef struct {
    -    char *recordSchema;
    -    char *recordData_buf;
    -    int recordData_len;
    -    int *recordPosition;
    -} Z_SRW_record;
    -      

    - The record data is defined as a buffer of some length so that - data can be of any type. SRW 1.0 currenly doesn't allow for this - (only XML), but future versions might do. -

    - And, a diagnostic as: -

    -typedef struct {
    -    int  *code;
    -    char *details;
    -} Z_SRW_diagnostic;
    -      

    -

    diff --git a/dependencies/yaz_3.0.14/doc/soap.xml b/dependencies/yaz_3.0.14/doc/soap.xml deleted file mode 100644 index b1c7d07..0000000 --- a/dependencies/yaz_3.0.14/doc/soap.xml +++ /dev/null @@ -1,265 +0,0 @@ - -SOAP and SRU - Introduction - - &yaz; uses a very simple implementation of - SOAP that only, - currenly, supports what is sufficient to offer SRU SOAP functionality. - The implementation uses the - tree API of - libxml2 to encode and decode SOAP packages. - - - Like the Z39.50 ASN.1 module, the &yaz; SRU implementation uses - simple C structs to represent SOAP packages as well as - HTTP packages. - - - HTTP - - &yaz; only offers HTTP as transport carrier for SOAP, but it is - relatively easy to change that. - - - The following definition of Z_GDU (Generic Data - Unit) allows for both HTTP and Z39.50 in one packet. - - -#include <yaz/zgdu.h> - -#define Z_GDU_Z3950 1 -#define Z_GDU_HTTP_Request 2 -#define Z_GDU_HTTP_Response 3 -typedef struct { - int which; - union { - Z_APDU *z3950; - Z_HTTP_Request *HTTP_Request; - Z_HTTP_Response *HTTP_Response; - } u; -} Z_GDU ; - - - The corresponding Z_GDU encoder/decoder is z_GDU. - The z3950 is any of the known BER encoded Z39.50 - APDUs. - HTTP_Request and HTTP_Response - is the HTTP Request and Response respectively. - - - SOAP Packages - - Every SOAP package in &yaz; is represented as follows: - -#include <yaz/soap.h> - -typedef struct { - char *fault_code; - char *fault_string; - char *details; -} Z_SOAP_Fault; - -typedef struct { - int no; - char *ns; - void *p; -} Z_SOAP_Generic; - -#define Z_SOAP_fault 1 -#define Z_SOAP_generic 2 -#define Z_SOAP_error 3 -typedef struct { - int which; - union { - Z_SOAP_Fault *fault; - Z_SOAP_Generic *generic; - Z_SOAP_Fault *soap_error; - } u; - const char *ns; -} Z_SOAP; - - - - The fault and soap_error - arms represent both a SOAP fault - struct - Z_SOAP_Fault. Any other generic - (valid) package is represented by Z_SOAP_Generic. - - - The ns as part of Z_SOAP - is the namespace for SOAP itself and reflects the SOAP - version. For version 1.1 it is - http://schemas.xmlsoap.org/soap/envelope/, - for version 1.2 it is - http://www.w3.org/2001/06/soap-envelope. - - -int z_soap_codec(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers); - - - The content_buf and content_len - is XML buffer and length of buffer respectively. - - - The handlers is a list of SOAP codec - handlers - one handler for each service namespace. For SRU SOAP, the - namespace would be http://www.loc.gov/zing/srw/v1.0/. - - - When decoding, the z_soap_codec - inspects the XML content - and tries to match one of the services namespaces of the - supplied handlers. If there is a match a handler function - is invoked which decodes that particular SOAP package. - If successful, the returned Z_SOAP package will be - of type Z_SOAP_Generic. - Member no is - set the offset of handler that matched; ns - is set to namespace of matching handler; the void pointer - p is set to the C data structure assocatiated - with the handler. - - - When a NULL namespace is met (member ns bwlow), - that specifies end-of-list. - - - Each handler is defined as follows: - -typedef struct { - char *ns; - void *client_data; - Z_SOAP_fun f; -} Z_SOAP_Handler; - - The ns is namespace of service associated with - handler f. client_data - is user-defined data which is passed to handler. - - - The prototype for a SOAP service handler is: - -int handler(ODR o, void * ptr, void **handler_data, - void *client_data, const char *ns); - - The o specifies the mode (decode/encode) - as usual. The second argument, ptr, - is a libxml2 tree node pointer (xmlNodePtr) - and is a pointer to the Body element - of the SOAP package. The handler_data - is an opaque pointer to a C definitions associated with the - SOAP service. client_data is the pointer - which was set as part of the Z_SOAP_handler. - Finally, ns the service namespace. - - - SRU - - SRU SOAP is just one implementation of a SOAP handler as described - in the previous section. - The encoder/decoder handler for SRU is defined as - follows: - -#include <yaz/srw.h> - -int yaz_srw_codec(ODR o, void * pptr, - Z_SRW_GDU **handler_data, - void *client_data, const char *ns); - - Here, Z_SRW_GDU is either - searchRetrieveRequest or a searchRetrieveResponse. - - - - The xQuery and xSortKeys are not handled yet by - the SRW implementation of &yaz;. Explain is also missing. - Future versions of &yaz; will include these features. - - - - The definition of searchRetrieveRequest is: - -typedef struct { - -#define Z_SRW_query_type_cql 1 -#define Z_SRW_query_type_xcql 2 -#define Z_SRW_query_type_pqf 3 - int query_type; - union { - char *cql; - char *xcql; - char *pqf; - } query; - -#define Z_SRW_sort_type_none 1 -#define Z_SRW_sort_type_sort 2 -#define Z_SRW_sort_type_xSort 3 - int sort_type; - union { - char *none; - char *sortKeys; - char *xSortKeys; - } sort; - int *startRecord; - int *maximumRecords; - char *recordSchema; - char *recordPacking; - char *database; -} Z_SRW_searchRetrieveRequest; - - Please observe that data of type xsd:string is represented - as a char pointer (char *). A null pointer - means that the element is absent. - Data of type xsd:integer is representd as a pointer to - an int (int *). Again, a null pointer - us used for absent elements. - - - The SearchRetrieveResponse has the following definition. - -typedef struct { - int * numberOfRecords; - char * resultSetId; - int * resultSetIdleTime; - - Z_SRW_record *records; - int num_records; - - Z_SRW_diagnostic *diagnostics; - int num_diagnostics; - int *nextRecordPosition; -} Z_SRW_searchRetrieveResponse; - - The num_records and num_diagnostics - is number of returned records and diagnostics respectively and also - correspond to the "size of" arrays records - and diagnostics. - - - A retrieval record is defined as follows: - -typedef struct { - char *recordSchema; - char *recordData_buf; - int recordData_len; - int *recordPosition; -} Z_SRW_record; - - The record data is defined as a buffer of some length so that - data can be of any type. SRW 1.0 currenly doesn't allow for this - (only XML), but future versions might do. - - - And, a diagnostic as: - -typedef struct { - int *code; - char *details; -} Z_SRW_diagnostic; - - - - - diff --git a/dependencies/yaz_3.0.14/doc/soap.xml.html b/dependencies/yaz_3.0.14/doc/soap.xml.html deleted file mode 100644 index 626e215..0000000 --- a/dependencies/yaz_3.0.14/doc/soap.xml.html +++ /dev/null @@ -1,97 +0,0 @@ -3. SOAP Packages

    3. SOAP Packages

    - Every SOAP package in YAZ is represented as follows: -

    -#include <yaz/soap.h>
    -
    -typedef struct {
    -    char *fault_code;
    -    char *fault_string;
    -    char *details;
    -} Z_SOAP_Fault;
    -
    -typedef struct {
    -    int no;
    -    char *ns;
    -    void *p;
    -} Z_SOAP_Generic;
    -
    -#define Z_SOAP_fault 1
    -#define Z_SOAP_generic 2
    -#define Z_SOAP_error 3
    -typedef struct {
    -    int which;
    -    union {
    -        Z_SOAP_Fault   *fault;
    -        Z_SOAP_Generic *generic;
    -        Z_SOAP_Fault   *soap_error;
    -    } u;
    -    const char *ns;
    -} Z_SOAP;
    -      

    -

    - The fault and soap_error - arms represent both a SOAP fault - struct - Z_SOAP_Fault. Any other generic - (valid) package is represented by Z_SOAP_Generic. -

    - The ns as part of Z_SOAP - is the namespace for SOAP itself and reflects the SOAP - version. For version 1.1 it is - http://schemas.xmlsoap.org/soap/envelope/, - for version 1.2 it is - http://www.w3.org/2001/06/soap-envelope. -

    -int z_soap_codec(ODR o, Z_SOAP **pp,
    -                 char **content_buf, int *content_len,
    -                 Z_SOAP_Handler *handlers);
    -    

    - The content_buf and content_len - is XML buffer and length of buffer respectively. -

    - The handlers is a list of SOAP codec - handlers - one handler for each service namespace. For SRU SOAP, the - namespace would be http://www.loc.gov/zing/srw/v1.0/. -

    - When decoding, the z_soap_codec - inspects the XML content - and tries to match one of the services namespaces of the - supplied handlers. If there is a match a handler function - is invoked which decodes that particular SOAP package. - If successful, the returned Z_SOAP package will be - of type Z_SOAP_Generic. - Member no is - set the offset of handler that matched; ns - is set to namespace of matching handler; the void pointer - p is set to the C data structure assocatiated - with the handler. -

    - When a NULL namespace is met (member ns bwlow), - that specifies end-of-list. -

    - Each handler is defined as follows: -

    -typedef struct {
    -    char *ns;
    -    void *client_data;
    -    Z_SOAP_fun f;
    -} Z_SOAP_Handler;
    -      

    - The ns is namespace of service associated with - handler f. client_data - is user-defined data which is passed to handler. -

    - The prototype for a SOAP service handler is: -

    -int handler(ODR o, void * ptr, void **handler_data,
    -            void *client_data, const char *ns);
    -      

    - The o specifies the mode (decode/encode) - as usual. The second argument, ptr, - is a libxml2 tree node pointer (xmlNodePtr) - and is a pointer to the Body element - of the SOAP package. The handler_data - is an opaque pointer to a C definitions associated with the - SOAP service. client_data is the pointer - which was set as part of the Z_SOAP_handler. - Finally, ns the service namespace. -

    diff --git a/dependencies/yaz_3.0.14/doc/std-oid-table.xml b/dependencies/yaz_3.0.14/doc/std-oid-table.xml deleted file mode 100644 index 7e15a0e..0000000 --- a/dependencies/yaz_3.0.14/doc/std-oid-table.xml +++ /dev/null @@ -1,2257 +0,0 @@ - - - - - - - - -Name -Class -Constant / OID - - - - - -BER - - -TRANSYN - - -yaz_oid_transyn_ber - - - - -2.1.1 - - - - -ISO2709 - - -TRANSYN - - -yaz_oid_transyn_iso2709 - - - - -1.0.2709.1.1 - - - - -ISOILL-1 - - -GENERAL - - -yaz_oid_general_isoill_1 - - - - -1.0.10161.2.1 - - - - -Z-APDU - - -ABSYN - - -yaz_oid_absyn_z_apdu - - - - -2.1 - - - - -Z-BASIC - - -APPCTX - - -yaz_oid_appctx_z_basic - - - - -1.1 - - - - -Bib-1 - - -ATTSET - - -yaz_oid_attset_bib_1 - - - - -Z3950_PREFIX.3.1 - - - - -Exp-1 - - -ATTSET - - -yaz_oid_attset_exp_1 - - - - -Z3950_PREFIX.3.2 - - - - -Ext-1 - - -ATTSET - - -yaz_oid_attset_ext_1 - - - - -Z3950_PREFIX.3.3 - - - - -CCL-1 - - -ATTSET - - -yaz_oid_attset_ccl_1 - - - - -Z3950_PREFIX.3.4 - - - - -GILS - - -ATTSET - - -yaz_oid_attset_gils - - - - -Z3950_PREFIX.3.5 - - - - -GILS-attset - - -ATTSET - - -yaz_oid_attset_gils_attset - - - - -Z3950_PREFIX.3.5 - - - - -STAS-attset - - -ATTSET - - -yaz_oid_attset_stas_attset - - - - -Z3950_PREFIX.3.6 - - - - -Collections-attset - - -ATTSET - - -yaz_oid_attset_collections_attset - - - - -Z3950_PREFIX.3.7 - - - - -CIMI-attset - - -ATTSET - - -yaz_oid_attset_cimi_attset - - - - -Z3950_PREFIX.3.8 - - - - -Geo-attset - - -ATTSET - - -yaz_oid_attset_geo_attset - - - - -Z3950_PREFIX.3.9 - - - - -ZBIG - - -ATTSET - - -yaz_oid_attset_zbig - - - - -Z3950_PREFIX.3.10 - - - - -Util - - -ATTSET - - -yaz_oid_attset_util - - - - -Z3950_PREFIX.3.11 - - - - -XD-1 - - -ATTSET - - -yaz_oid_attset_xd_1 - - - - -Z3950_PREFIX.3.12 - - - - -Zthes - - -ATTSET - - -yaz_oid_attset_zthes - - - - -Z3950_PREFIX.3.13 - - - - -Fin-1 - - -ATTSET - - -yaz_oid_attset_fin_1 - - - - -Z3950_PREFIX.3.14 - - - - -Dan-1 - - -ATTSET - - -yaz_oid_attset_dan_1 - - - - -Z3950_PREFIX.3.15 - - - - -Holdings - - -ATTSET - - -yaz_oid_attset_holdings - - - - -Z3950_PREFIX.3.16 - - - - -MARC - - -ATTSET - - -yaz_oid_attset_marc - - - - -Z3950_PREFIX.3.17 - - - - -Bib-2 - - -ATTSET - - -yaz_oid_attset_bib_2 - - - - -Z3950_PREFIX.3.18 - - - - -ZeeRex - - -ATTSET - - -yaz_oid_attset_zeerex - - - - -Z3950_PREFIX.3.19 - - - - -Thesaurus-attset - - -ATTSET - - -yaz_oid_attset_thesaurus_attset - - - - -Z3950_PREFIX.3.1000.81.1 - - - - -IDXPATH - - -ATTSET - - -yaz_oid_attset_idxpath - - - - -Z3950_PREFIX.3.1000.81.2 - - - - -EXTLITE - - -ATTSET - - -yaz_oid_attset_extlite - - - - -Z3950_PREFIX.3.1000.81.3 - - - - -Bib-1 - - -DIAGSET - - -yaz_oid_diagset_bib_1 - - - - -Z3950_PREFIX.4.1 - - - - -Diag-1 - - -DIAGSET - - -yaz_oid_diagset_diag_1 - - - - -Z3950_PREFIX.4.2 - - - - -Diag-ES - - -DIAGSET - - -yaz_oid_diagset_diag_es - - - - -Z3950_PREFIX.4.3 - - - - -Diag-General - - -DIAGSET - - -yaz_oid_diagset_diag_general - - - - -Z3950_PREFIX.4.3 - - - - -Unimarc - - -RECSYN - - -yaz_oid_recsyn_unimarc - - - - -Z3950_PREFIX.5.1 - - - - -Intermarc - - -RECSYN - - -yaz_oid_recsyn_intermarc - - - - -Z3950_PREFIX.5.2 - - - - -CCF - - -RECSYN - - -yaz_oid_recsyn_ccf - - - - -Z3950_PREFIX.5.3 - - - - -USmarc - - -RECSYN - - -yaz_oid_recsyn_usmarc - - - - -Z3950_PREFIX.5.10 - - - - -MARC21 - - -RECSYN - - -yaz_oid_recsyn_marc21 - - - - -Z3950_PREFIX.5.10 - - - - -UKmarc - - -RECSYN - - -yaz_oid_recsyn_ukmarc - - - - -Z3950_PREFIX.5.11 - - - - -Normarc - - -RECSYN - - -yaz_oid_recsyn_normarc - - - - -Z3950_PREFIX.5.12 - - - - -Librismarc - - -RECSYN - - -yaz_oid_recsyn_librismarc - - - - -Z3950_PREFIX.5.13 - - - - -Danmarc - - -RECSYN - - -yaz_oid_recsyn_danmarc - - - - -Z3950_PREFIX.5.14 - - - - -Finmarc - - -RECSYN - - -yaz_oid_recsyn_finmarc - - - - -Z3950_PREFIX.5.15 - - - - -MAB - - -RECSYN - - -yaz_oid_recsyn_mab - - - - -Z3950_PREFIX.5.16 - - - - -Canmarc - - -RECSYN - - -yaz_oid_recsyn_canmarc - - - - -Z3950_PREFIX.5.17 - - - - -SBN - - -RECSYN - - -yaz_oid_recsyn_sbn - - - - -Z3950_PREFIX.5.18 - - - - -Picamarc - - -RECSYN - - -yaz_oid_recsyn_picamarc - - - - -Z3950_PREFIX.5.19 - - - - -Ausmarc - - -RECSYN - - -yaz_oid_recsyn_ausmarc - - - - -Z3950_PREFIX.5.20 - - - - -Ibermarc - - -RECSYN - - -yaz_oid_recsyn_ibermarc - - - - -Z3950_PREFIX.5.21 - - - - -Carmarc - - -RECSYN - - -yaz_oid_recsyn_carmarc - - - - -Z3950_PREFIX.5.22 - - - - -Malmarc - - -RECSYN - - -yaz_oid_recsyn_malmarc - - - - -Z3950_PREFIX.5.23 - - - - -JPmarc - - -RECSYN - - -yaz_oid_recsyn_jpmarc - - - - -Z3950_PREFIX.5.24 - - - - -SWEmarc - - -RECSYN - - -yaz_oid_recsyn_swemarc - - - - -Z3950_PREFIX.5.25 - - - - -SIGLEmarc - - -RECSYN - - -yaz_oid_recsyn_siglemarc - - - - -Z3950_PREFIX.5.26 - - - - -ISDSmarc - - -RECSYN - - -yaz_oid_recsyn_isdsmarc - - - - -Z3950_PREFIX.5.27 - - - - -RUSmarc - - -RECSYN - - -yaz_oid_recsyn_rusmarc - - - - -Z3950_PREFIX.5.28 - - - - -Hunmarc - - -RECSYN - - -yaz_oid_recsyn_hunmarc - - - - -Z3950_PREFIX.5.29 - - - - -NACSIS-CATP - - -RECSYN - - -yaz_oid_recsyn_nacsis_catp - - - - -Z3950_PREFIX.5.30 - - - - -FINMARC2000 - - -RECSYN - - -yaz_oid_recsyn_finmarc2000 - - - - -Z3950_PREFIX.5.31 - - - - -MARC21-fin - - -RECSYN - - -yaz_oid_recsyn_marc21_fin - - - - -Z3950_PREFIX.5.32 - - - - -Explain - - -RECSYN - - -yaz_oid_recsyn_explain - - - - -Z3950_PREFIX.5.100 - - - - -SUTRS - - -RECSYN - - -yaz_oid_recsyn_sutrs - - - - -Z3950_PREFIX.5.101 - - - - -OPAC - - -RECSYN - - -yaz_oid_recsyn_opac - - - - -Z3950_PREFIX.5.102 - - - - -Summary - - -RECSYN - - -yaz_oid_recsyn_summary - - - - -Z3950_PREFIX.5.103 - - - - -GRS-0 - - -RECSYN - - -yaz_oid_recsyn_grs_0 - - - - -Z3950_PREFIX.5.104 - - - - -GRS-1 - - -RECSYN - - -yaz_oid_recsyn_grs_1 - - - - -Z3950_PREFIX.5.105 - - - - -Extended - - -RECSYN - - -yaz_oid_recsyn_extended - - - - -Z3950_PREFIX.5.106 - - - - -Fragment - - -RECSYN - - -yaz_oid_recsyn_fragment - - - - -Z3950_PREFIX.5.107 - - - - -pdf - - -RECSYN - - -yaz_oid_recsyn_pdf - - - - -Z3950_PREFIX.5.109.1 - - - - -postscript - - -RECSYN - - -yaz_oid_recsyn_postscript - - - - -Z3950_PREFIX.5.109.2 - - - - -html - - -RECSYN - - -yaz_oid_recsyn_html - - - - -Z3950_PREFIX.5.109.3 - - - - -tiff - - -RECSYN - - -yaz_oid_recsyn_tiff - - - - -Z3950_PREFIX.5.109.4 - - - - -gif - - -RECSYN - - -yaz_oid_recsyn_gif - - - - -Z3950_PREFIX.5.109.5 - - - - -jpeg - - -RECSYN - - -yaz_oid_recsyn_jpeg - - - - -Z3950_PREFIX.5.109.6 - - - - -png - - -RECSYN - - -yaz_oid_recsyn_png - - - - -Z3950_PREFIX.5.109.7 - - - - -mpeg - - -RECSYN - - -yaz_oid_recsyn_mpeg - - - - -Z3950_PREFIX.5.109.8 - - - - -sgml - - -RECSYN - - -yaz_oid_recsyn_sgml - - - - -Z3950_PREFIX.5.109.9 - - - - -tiff-b - - -RECSYN - - -yaz_oid_recsyn_tiff_b - - - - -Z3950_PREFIX.5.110.1 - - - - -wav - - -RECSYN - - -yaz_oid_recsyn_wav - - - - -Z3950_PREFIX.5.110.2 - - - - -SQL-RS - - -RECSYN - - -yaz_oid_recsyn_sql_rs - - - - -Z3950_PREFIX.5.111 - - - - -SOIF - - -RECSYN - - -yaz_oid_recsyn_soif - - - - -Z3950_PREFIX.5.1000.81.2 - - - - -XML - - -RECSYN - - -yaz_oid_recsyn_xml - - - - -Z3950_PREFIX.5.109.10 - - - - -text-XML - - -RECSYN - - -yaz_oid_recsyn_text_xml - - - - -Z3950_PREFIX.5.109.10 - - - - -application-XML - - -RECSYN - - -yaz_oid_recsyn_application_xml - - - - -Z3950_PREFIX.5.109.11 - - - - -Resource-1 - - -RESFORM - - -yaz_oid_resform_resource_1 - - - - -Z3950_PREFIX.7.1 - - - - -Resource-2 - - -RESFORM - - -yaz_oid_resform_resource_2 - - - - -Z3950_PREFIX.7.2 - - - - -UNIverse-Resource-Report - - -RESFORM - - -yaz_oid_resform_universe_resource_report - - - - -Z3950_PREFIX.7.1000.81.1 - - - - -Prompt-1 - - -ACCFORM - - -yaz_oid_accform_prompt_1 - - - - -Z3950_PREFIX.8.1 - - - - -Des-1 - - -ACCFORM - - -yaz_oid_accform_des_1 - - - - -Z3950_PREFIX.8.2 - - - - -Krb-1 - - -ACCFORM - - -yaz_oid_accform_krb_1 - - - - -Z3950_PREFIX.8.3 - - - - -Persistent set - - -EXTSERV - - -yaz_oid_extserv_persistent_set - - - - -Z3950_PREFIX.9.1 - - - - -Persistent query - - -EXTSERV - - -yaz_oid_extserv_persistent_query - - - - -Z3950_PREFIX.9.2 - - - - -Periodic query - - -EXTSERV - - -yaz_oid_extserv_periodic_query - - - - -Z3950_PREFIX.9.3 - - - - -Item order - - -EXTSERV - - -yaz_oid_extserv_item_order - - - - -Z3950_PREFIX.9.4 - - - - -Database Update (first version) - - -EXTSERV - - -yaz_oid_extserv_database_update_first_version - - - - -Z3950_PREFIX.9.5 - - - - -Database Update (second version) - - -EXTSERV - - -yaz_oid_extserv_database_update_second_version - - - - -Z3950_PREFIX.9.5.1 - - - - -Database Update - - -EXTSERV - - -yaz_oid_extserv_database_update - - - - -Z3950_PREFIX.9.5.1.1 - - - - -exp. spec. - - -EXTSERV - - -yaz_oid_extserv_exp__spec_ - - - - -Z3950_PREFIX.9.6 - - - - -exp. inv. - - -EXTSERV - - -yaz_oid_extserv_exp__inv_ - - - - -Z3950_PREFIX.9.7 - - - - -Admin - - -EXTSERV - - -yaz_oid_extserv_admin - - - - -Z3950_PREFIX.9.1000.81.1 - - - - -searchResult-1 - - -USERINFO - - -yaz_oid_userinfo_searchresult_1 - - - - -Z3950_PREFIX.10.1 - - - - -CharSetandLanguageNegotiation - - -USERINFO - - -yaz_oid_userinfo_charsetandlanguagenegotiation - - - - -Z3950_PREFIX.10.2 - - - - -UserInfo-1 - - -USERINFO - - -yaz_oid_userinfo_userinfo_1 - - - - -Z3950_PREFIX.10.3 - - - - -MultipleSearchTerms-1 - - -USERINFO - - -yaz_oid_userinfo_multiplesearchterms_1 - - - - -Z3950_PREFIX.10.4 - - - - -MultipleSearchTerms-2 - - -USERINFO - - -yaz_oid_userinfo_multiplesearchterms_2 - - - - -Z3950_PREFIX.10.5 - - - - -DateTime - - -USERINFO - - -yaz_oid_userinfo_datetime - - - - -Z3950_PREFIX.10.6 - - - - -Proxy - - -USERINFO - - -yaz_oid_userinfo_proxy - - - - -Z3950_PREFIX.10.1000.81.1 - - - - -Cookie - - -USERINFO - - -yaz_oid_userinfo_cookie - - - - -Z3950_PREFIX.10.1000.81.2 - - - - -Client-IP - - -USERINFO - - -yaz_oid_userinfo_client_ip - - - - -Z3950_PREFIX.10.1000.81.3 - - - - -Scan-Set - - -USERINFO - - -yaz_oid_userinfo_scan_set - - - - -Z3950_PREFIX.10.1000.81.4 - - - - -Espec-1 - - -ELEMSPEC - - -yaz_oid_elemspec_espec_1 - - - - -Z3950_PREFIX.11.1 - - - - -Variant-1 - - -VARSET - - -yaz_oid_varset_variant_1 - - - - -Z3950_PREFIX.12.1 - - - - -WAIS-schema - - -SCHEMA - - -yaz_oid_schema_wais_schema - - - - -Z3950_PREFIX.13.1 - - - - -GILS-schema - - -SCHEMA - - -yaz_oid_schema_gils_schema - - - - -Z3950_PREFIX.13.2 - - - - -Collections-schema - - -SCHEMA - - -yaz_oid_schema_collections_schema - - - - -Z3950_PREFIX.13.3 - - - - -Geo-schema - - -SCHEMA - - -yaz_oid_schema_geo_schema - - - - -Z3950_PREFIX.13.4 - - - - -CIMI-schema - - -SCHEMA - - -yaz_oid_schema_cimi_schema - - - - -Z3950_PREFIX.13.5 - - - - -Update ES - - -SCHEMA - - -yaz_oid_schema_update_es - - - - -Z3950_PREFIX.13.6 - - - - -Holdings - - -SCHEMA - - -yaz_oid_schema_holdings - - - - -Z3950_PREFIX.13.7 - - - - -Zthes - - -SCHEMA - - -yaz_oid_schema_zthes - - - - -Z3950_PREFIX.13.8 - - - - -thesaurus-schema - - -SCHEMA - - -yaz_oid_schema_thesaurus_schema - - - - -Z3950_PREFIX.13.1000.81.1 - - - - -Explain-schema - - -SCHEMA - - -yaz_oid_schema_explain_schema - - - - -Z3950_PREFIX.13.1000.81.2 - - - - -TagsetM - - -TAGSET - - -yaz_oid_tagset_tagsetm - - - - -Z3950_PREFIX.14.1 - - - - -TagsetG - - -TAGSET - - -yaz_oid_tagset_tagsetg - - - - -Z3950_PREFIX.14.2 - - - - -STAS-tagset - - -TAGSET - - -yaz_oid_tagset_stas_tagset - - - - -Z3950_PREFIX.14.3 - - - - -GILS-tagset - - -TAGSET - - -yaz_oid_tagset_gils_tagset - - - - -Z3950_PREFIX.14.4 - - - - -Collections-tagset - - -TAGSET - - -yaz_oid_tagset_collections_tagset - - - - -Z3950_PREFIX.14.5 - - - - -CIMI-tagset - - -TAGSET - - -yaz_oid_tagset_cimi_tagset - - - - -Z3950_PREFIX.14.6 - - - - -thesaurus-tagset - - -TAGSET - - -yaz_oid_tagset_thesaurus_tagset - - - - -Z3950_PREFIX.14.1000.81.1 - - - - -Explain-tagset - - -TAGSET - - -yaz_oid_tagset_explain_tagset - - - - -Z3950_PREFIX.14.1000.81.2 - - - - -Zthes-tagset - - -TAGSET - - -yaz_oid_tagset_zthes_tagset - - - - -Z3950_PREFIX.14.8 - - - - -Charset-3 - - -NEGOT - - -yaz_oid_negot_charset_3 - - - - -Z3950_PREFIX.15.3 - - - - -Charset-4 - - -NEGOT - - -yaz_oid_negot_charset_4 - - - - -Z3950_PREFIX.15.4 - - - - -Charset-ID - - -NEGOT - - -yaz_oid_negot_charset_id - - - - -Z3950_PREFIX.15.1000.81.1 - - - - -CQL - - -USERINFO - - -yaz_oid_userinfo_cql - - - - -Z3950_PREFIX.16.2 - - - - -UCS-2 - - -GENERAL - - -yaz_oid_general_ucs_2 - - - - -1.0.10646.1.0.2 - - - - -UCS-4 - - -GENERAL - - -yaz_oid_general_ucs_4 - - - - -1.0.10646.1.0.4 - - - - -UTF-16 - - -GENERAL - - -yaz_oid_general_utf_16 - - - - -1.0.10646.1.0.5 - - - - -UTF-8 - - -GENERAL - - -yaz_oid_general_utf_8 - - - - -1.0.10646.1.0.8 - - - - -OCLC-userInfo - - -USERINFO - - -yaz_oid_userinfo_oclc_userinfo - - - - -Z3950_PREFIX.10.1000.17.1 - - - - -XML-ES - - -EXTSERV - - -yaz_oid_extserv_xml_es - - - - -Z3950_PREFIX.9.1000.105.4 - - - - - diff --git a/dependencies/yaz_3.0.14/doc/tools.html b/dependencies/yaz_3.0.14/doc/tools.html deleted file mode 100644 index a72c4fd..0000000 --- a/dependencies/yaz_3.0.14/doc/tools.html +++ /dev/null @@ -1,1061 +0,0 @@ -Chapter 9. Supporting Tools

    Chapter 9. Supporting Tools

    - In support of the service API - primarily the ASN module, which - provides the pro-grammatic interface to the Z39.50 APDUs, YAZ contains - a collection of tools that support the development of applications. -

    1. Query Syntax Parsers

    - Since the type-1 (RPN) query structure has no direct, useful string - representation, every origin application needs to provide some form of - mapping from a local query notation or representation to a - Z_RPNQuery structure. Some programmers will prefer to - construct the query manually, perhaps using - odr_malloc() to simplify memory management. - The YAZ distribution includes three separate, query-generating tools - that may be of use to you. -

    1.1. Prefix Query Format

    - Since RPN or reverse polish notation is really just a fancy way of - describing a suffix notation format (operator follows operands), it - would seem that the confusion is total when we now introduce a prefix - notation for RPN. The reason is one of simple laziness - it's somewhat - simpler to interpret a prefix format, and this utility was designed - for maximum simplicity, to provide a baseline representation for use - in simple test applications and scripting environments (like Tcl). The - demonstration client included with YAZ uses the PQF. -

    Note

    - The PQF have been adopted by other parties developing Z39.50 - software. It is often referred to as Prefix Query Notation - - PQN. -

    - The PQF is defined by the pquery module in the YAZ library. - There are two sets of function that have similar behavior. First - set operates on a PQF parser handle, second set doesn't. First set - set of functions are more flexible than the second set. Second set - is obsolete and is only provided to ensure backwards compatibility. -

    - First set of functions all operate on a PQF parser handle: -

    -     #include <yaz/pquery.h>
    -
    -     YAZ_PQF_Parser yaz_pqf_create (void);
    -
    -     void yaz_pqf_destroy (YAZ_PQF_Parser p);
    -
    -     Z_RPNQuery *yaz_pqf_parse (YAZ_PQF_Parser p, ODR o, const char *qbuf);
    -
    -     Z_AttributesPlusTerm *yaz_pqf_scan (YAZ_PQF_Parser p, ODR o,
    -                          Odr_oid **attributeSetId, const char *qbuf);
    -
    -
    -     int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off);
    -    

    - A PQF parser is created and destructed by functions - yaz_pqf_create and - yaz_pqf_destroy respectively. - Function yaz_pqf_parse parses query given - by string qbuf. If parsing was successful, - a Z39.50 RPN Query is returned which is created using ODR stream - o. If parsing failed, a NULL pointer is - returned. - Function yaz_pqf_scan takes a scan query in - qbuf. If parsing was successful, the function - returns attributes plus term pointer and modifies - attributeSetId to hold attribute set for the - scan request - both allocated using ODR stream o. - If parsing failed, yaz_pqf_scan returns a NULL pointer. - Error information for bad queries can be obtained by a call to - yaz_pqf_error which returns an error code and - modifies *msg to point to an error description, - and modifies *off to the offset within last - query were parsing failed. -

    - The second set of functions are declared as follows: -

    -     #include <yaz/pquery.h>
    -
    -     Z_RPNQuery *p_query_rpn (ODR o, oid_proto proto, const char *qbuf);
    -
    -     Z_AttributesPlusTerm *p_query_scan (ODR o, oid_proto proto,
    -                             Odr_oid **attributeSetP, const char *qbuf);
    -
    -     int p_query_attset (const char *arg);
    -    

    - The function p_query_rpn() takes as arguments an - ODR stream (see section The ODR Module) - to provide a memory source (the structure created is released on - the next call to odr_reset() on the stream), a - protocol identifier (one of the constants PROTO_Z3950 and - PROTO_SR), an attribute set reference, and - finally a null-terminated string holding the query string. -

    - If the parse went well, p_query_rpn() returns a - pointer to a Z_RPNQuery structure which can be - placed directly into a Z_SearchRequest. - If parsing failed, due to syntax error, a NULL pointer is returned. -

    - The p_query_attset specifies which attribute set - to use if the query doesn't specify one by the - @attrset operator. - The p_query_attset returns 0 if the argument is a - valid attribute set specifier; otherwise the function returns -1. -

    - The grammar of the PQF is as follows: -


    -     query ::= top-set query-struct.
    -
    -     top-set ::= [ '@attrset' string ]
    -
    -     query-struct ::= attr-spec | simple | complex | '@term' term-type query
    -
    -     attr-spec ::= '@attr' [ string ] string query-struct
    -
    -     complex ::= operator query-struct query-struct.
    -
    -     operator ::= '@and' | '@or' | '@not' | '@prox' proximity.
    -
    -     simple ::= result-set | term.
    -
    -     result-set ::= '@set' string.
    -
    -     term ::= string.
    -
    -     proximity ::= exclusion distance ordered relation which-code unit-code.
    -
    -     exclusion ::= '1' | '0' | 'void'.
    -
    -     distance ::= integer.
    -
    -     ordered ::= '1' | '0'.
    -
    -     relation ::= integer.
    -
    -     which-code ::= 'known' | 'private' | integer.
    -
    -     unit-code ::= integer.
    -
    -     term-type ::= 'general' | 'numeric' | 'string' | 'oid' | 'datetime' | 'null'.
    -    

    - You will note that the syntax above is a fairly faithful - representation of RPN, except for the Attribute, which has been - moved a step away from the term, allowing you to associate one or more - attributes with an entire query structure. The parser will - automatically apply the given attributes to each term as required. -

    - The @attr operator is followed by an attribute specification - (attr-spec above). The specification consists - of an optional attribute set, an attribute type-value pair and - a sub-query. The attribute type-value pair is packed in one string: - an attribute type, an equals sign, and an attribute value, like this: - @attr 1=1003. - The type is always an integer but the value may be either an - integer or a string (if it doesn't start with a digit character). - A string attribute-value is encoded as a Type-1 ``complex'' - attribute with the list of values containing the single string - specified, and including no semantic indicators. -

    - Version 3 of the Z39.50 specification defines various encoding of terms. - Use @term type - string, - where type is one of: general, - numeric or string - (for InternationalString). - If no term type has been given, the general form - is used. This is the only encoding allowed in both versions 2 and 3 - of the Z39.50 standard. -

    1.1.1. Using Proximity Operators with PQF

    Note

    - This is an advanced topic, describing how to construct - queries that make very specific requirements on the - relative location of their operands. - You may wish to skip this section and go straight to - the example PQF queries. -

    -

    Warning

    - Most Z39.50 servers do not support proximity searching, or - support only a small subset of the full functionality that - can be expressed using the PQF proximity operator. Be - aware that the ability to express a - query in PQF is no guarantee that any given server will - be able to execute it. -

    -

    - The proximity operator @prox is a special - and more restrictive version of the conjunction operator - @and. Its semantics are described in - section 3.7.2 (Proximity) of Z39.50 the standard itself, which - can be read on-line at - http://www.loc.gov/z3950/agency/markup/09.html#3.7.2 -

    - In PQF, the proximity operation is represented by a sequence - of the form -

    -@prox exclusion distance ordered relation which-code unit-code
    -	

    - in which the meanings of the parameters are as described in in - the standard, and they can take the following values: -

    • exclusion.  - 0 = false (i.e. the proximity condition specified by the - remaining parameters must be satisfied) or - 1 = true (the proximity condition specified by the - remaining parameters must not be - satisifed). -

    • distance.  - An integer specifying the difference between the locations - of the operands: e.g. two adjacent words would have - distance=1 since their locations differ by one unit. -

    • ordered.  - 1 = ordered (the operands must occur in the order the - query specifies them) or - 0 = unordered (they may appear in either order). -

    • relation.  - Recognised values are - 1 (lessThan), - 2 (lessThanOrEqual), - 3 (equal), - 4 (greaterThanOrEqual), - 5 (greaterThan) and - 6 (notEqual). -

    • which-code.  - known - or - k - (the unit-code parameter is taken from the well-known list - of alternatives described in below) or - private - or - p - (the unit-code paramater has semantics specific to an - out-of-band agreement such as a profile). -

    • unit-code.  - If the which-code parameter is known - then the recognised values are - 1 (character), - 2 (word), - 3 (sentence), - 4 (paragraph), - 5 (section), - 6 (chapter), - 7 (document), - 8 (element), - 9 (subelement), - 10 (elementType) and - 11 (byte). - If which-code is private then the - acceptable values are determined by the profile. -

    - (The numeric values of the relation and well-known unit-code - parameters are taken straight from - the ASN.1 of the proximity structure in the standard.) -

    1.1.2. PQF queries

    Example 9.1. PQF queries using simple terms

    -

    -	dylan
    -
    -	"bob dylan"
    -       

    -


    Example 9.2. PQF boolean operators

    -

    -	@or "dylan" "zimmerman"
    -
    -	@and @or dylan zimmerman when
    -
    -	@and when @or dylan zimmerman
    -       

    -


    Example 9.3. PQF references to result sets

    -

    -	@set Result-1
    -
    -	@and @set seta @set setb
    -       

    -


    Example 9.4. Attributes for terms

    -

    -	@attr 1=4 computer
    -
    -	@attr 1=4 @attr 4=1 "self portrait"
    -
    -	@attrset exp1 @attr 1=1 CategoryList
    -
    -	@attr gils 1=2008 Copenhagen
    -
    -	@attr 1=/book/title computer
    -       

    -


    Example 9.5. PQF Proximity queries

    -

    -	@prox 0 3 1 2 k 2 dylan zimmerman
    -       

    -

    Note

    - Here the parameters 0, 3, 1, 2, k and 2 represent exclusion, - distance, ordered, relation, which-code and unit-code, in that - order. So: -

    • - exclusion = 0: the proximity condition must hold -

    • - distance = 3: the terms must be three units apart -

    • - ordered = 1: they must occur in the order they are specified -

    • - relation = 2: lessThanOrEqual (to the distance of 3 units) -

    • - which-code is ``known'', so the standard unit-codes are used -

    • - unit-code = 2: word. -

    - So the whole proximity query means that the words - dylan and zimmerman must - both occur in the record, in that order, differing in position - by three or fewer words (i.e. with two or fewer words between - them.) The query would find ``Bob Dylan, aka. Robert - Zimmerman'', but not ``Bob Dylan, born as Robert Zimmerman'' - since the distance in this case is four. -

    -


    Example 9.6. PQF specification of search term type

    -

    -	@term string "a UTF-8 string, maybe?"
    -       

    -


    Example 9.7. PQF mixed queries

    -

    -	@or @and bob dylan @set Result-1
    -	
    -	@attr 4=1 @and @attr 1=1 "bob dylan" @attr 1=4 "slow train coming"
    -	
    -	@and @attr 2=4 @attr gils 1=2038 -114 @attr 2=2 @attr gils 1=2039 -109
    -      

    -

    Note

    - The last of these examples is a spatial search: in - the GILS attribute set, - access point - 2038 indicates West Bounding Coordinate and - 2030 indicates East Bounding Coordinate, - so the query is for areas extending from -114 degrees - to no more than -109 degrees. -

    -


    1.2. CCL

    - Not all users enjoy typing in prefix query structures and numerical - attribute values, even in a minimalistic test client. In the library - world, the more intuitive Common Command Language - CCL (ISO 8777) - has enjoyed some popularity - especially before the widespread - availability of graphical interfaces. It is still useful in - applications where you for some reason or other need to provide a - symbolic language for expressing boolean query structures. -

    - The EUROPAGATE research project working under the Libraries programme - of the European Commission's DG XIII has, amongst other useful tools, - implemented a general-purpose CCL parser which produces an output - structure that can be trivially converted to the internal RPN - representation of YAZ (The Z_RPNQuery structure). - Since the CCL utility - along with the rest of the software - produced by EUROPAGATE - is made freely available on a liberal - license, it is included as a supplement to YAZ. -

    1.2.1. CCL Syntax

    - The CCL parser obeys the following grammar for the FIND argument. - The syntax is annotated by in the lines prefixed by - --. -

    -      CCL-Find ::= CCL-Find Op Elements
    -                | Elements.
    -
    -      Op ::= "and" | "or" | "not"
    -      -- The above means that Elements are separated by boolean operators.
    -
    -      Elements ::= '(' CCL-Find ')'
    -                | Set
    -                | Terms
    -                | Qualifiers Relation Terms
    -                | Qualifiers Relation '(' CCL-Find ')'
    -                | Qualifiers '=' string '-' string
    -      -- Elements is either a recursive definition, a result set reference, a
    -      -- list of terms, qualifiers followed by terms, qualifiers followed
    -      -- by a recursive definition or qualifiers in a range (lower - upper).
    -
    -      Set ::= 'set' = string
    -      -- Reference to a result set
    -
    -      Terms ::= Terms Prox Term
    -             | Term
    -      -- Proximity of terms.
    -
    -      Term ::= Term string
    -            | string
    -      -- This basically means that a term may include a blank
    -
    -      Qualifiers ::= Qualifiers ',' string
    -                  | string
    -      -- Qualifiers is a list of strings separated by comma
    -
    -      Relation ::= '=' | '>=' | '<=' | '<>' | '>' | '<'
    -      -- Relational operators. This really doesn't follow the ISO8777
    -      -- standard.
    -
    -      Prox ::= '%' | '!'
    -      -- Proximity operator
    -
    -     

    Example 9.8. CCL queries

    - The following queries are all valid: -

    -       dylan
    -       
    -       "bob dylan"
    -       
    -       dylan or zimmerman
    -       
    -       set=1
    -       
    -       (dylan and bob) or set=1
    -       
    -      

    - Assuming that the qualifiers ti, - au - and date are defined we may use: -

    -       ti=self portrait
    -       
    -       au=(bob dylan and slow train coming)
    -
    -       date>1980 and (ti=((self portrait)))
    -       
    -      

    1.2.2. CCL Qualifiers

    - Qualifiers are used to direct the search to a particular searchable - index, such as title (ti) and author indexes (au). The CCL standard - itself doesn't specify a particular set of qualifiers, but it does - suggest a few short-hand notations. You can customize the CCL parser - to support a particular set of qualifiers to reflect the current target - profile. Traditionally, a qualifier would map to a particular - use-attribute within the BIB-1 attribute set. It is also - possible to set other attributes, such as the structure - attribute. -

    - A CCL profile is a set of predefined CCL qualifiers that may be - read from a file or set in the CCL API. - The YAZ client reads its CCL qualifiers from a file named - default.bib. There are four types of - lines in a CCL profile: qualifier specification, - qualifier alias, comments and directives. -

    1.2.2.1. Qualifier specification

    - A qualifier specification is of the form: -

    - qualifier-name - [attributeset,]type=val - [attributeset,]type=val ... -

    - where qualifier-name is the name of the - qualifier to be used (eg. ti), - type is attribute type in the attribute - set (Bib-1 is used if no attribute set is given) and - val is attribute value. - The type can be specified as an - integer or as it be specified either as a single-letter: - u for use, - r for relation,p for position, - s for structure,t for truncation - or c for completeness. - The attributes for the special qualifier name term - are used when no CCL qualifier is given in a query. -

    Table 9.1. Common Bib-1 attributes

    TypeDescription
    u=value - Use attribute (1). Common use attributes are - 1 Personal-name, 4 Title, 7 ISBN, 8 ISSN, 30 Date, - 62 Subject, 1003 Author), 1016 Any. Specify value - as an integer. -
    r=value - Relation attribute (2). Common values are - 1 <, 2 <=, 3 =, 4 >=, 5 >, 6 <>, - 100 phonetic, 101 stem, 102 relevance, 103 always matches. -
    p=value - Position attribute (3). Values: 1 first in field, 2 - first in any subfield, 3 any position in field. -
    s=value - Structure attribute (4). Values: 1 phrase, 2 word, - 3 key, 4 year, 5 date, 6 word list, 100 date (un), - 101 name (norm), 102 name (un), 103 structure, 104 urx, - 105 free-form-text, 106 document-text, 107 local-number, - 108 string, 109 numeric string. -
    t=value - Truncation attribute (5). Values: 1 right, 2 left, - 3 left& right, 100 none, 101 process #, 102 regular-1, - 103 regular-2, 104 CCL. -
    c=value - Completeness attribute (6). Values: 1 incomplete subfield, - 2 complete subfield, 3 complete field. -


    -

    - Refer to the complete - list of Bib-1 attributes -

    - It is also possible to specify non-numeric attribute values, - which are used in combination with certain types. - The special combinations are: - -

    Table 9.2. Special attribute combos

    NameDescription
    s=pw - The structure is set to either word or phrase depending - on the number of tokens in a term (phrase-word). -
    s=al - Each token in the term is ANDed. (and-list). - This does not set the structure at all. -
    s=ol - Each token in the term is ORed. (or-list). - This does not set the structure at all. -
    r=o - Allows ranges and the operators greather-than, less-than, ... - equals. - This sets Bib-1 relation attribute accordingly (relation - ordered). A query construct is only treated as a range if - dash is used and that is surrounded by white-space. So - -1980 is treated as term - "-1980" not <= 1980. - If - 1980 is used, however, that is - treated as a range. -
    r=r - Similar to r=o but assumes that terms - are non-negative (not prefixed with -). - Thus, a dash will always be treated as a range. - The construct 1980-1990 is - treated as a range with r=r but as a - single term "1980-1990" with - r=o. The special attribute - r=r is available in YAZ 2.0.24 or later. -
    t=l - Allows term to be left-truncated. - If term is of the form ?x, the resulting - Type-1 term is x and truncation is left. -
    t=r - Allows term to be right-truncated. - If term is of the form x?, the resulting - Type-1 term is x and truncation is right. -
    t=n - If term is does not include ?, the - truncation attribute is set to none (100). -
    t=b - Allows term to be both left&right truncated. - If term is of the form ?x?, the - resulting term is x and trunctation is - set to both left&right. -


    -

    Example 9.9. CCL profile

    - Consider the following definition: -

    -	ti       u=4 s=1
    -	au       u=1 s=1
    -	term     s=105
    -	ranked   r=102
    -	date     u=30 r=o
    -      

    - ti and au both set - structure attribute to phrase (s=1). - ti - sets the use-attribute to 4. au sets the - use-attribute to 1. - When no qualifiers are used in the query the structure-attribute is - set to free-form-text (105) (rule for term). - The date sets the relation attribute to - the relation used in the CCL query and sets the use attribute - to 30 (Bib-1 Date). -

    - You can combine attributes. To Search for "ranked title" you - can do -

    -	 ti,ranked=knuth computer
    -	

    - which will set relation=ranked, use=title, structure=phrase. -

    - Query -

    -	 date > 1980
    -	

    - is a valid query. But -

    -	 ti > 1980
    -	

    - is invalid. -


    1.2.2.2. Qualifier alias

    - A qualifier alias is of the form: -

    - q - q1 q2 .. -

    - which declares q to - be an alias for q1, - q2... such that the CCL - query q=x is equivalent to - q1=x or q2=x or .... -

    1.2.2.3. Comments

    - Lines with white space or lines that begin with - character # are treated as comments. -

    1.2.2.4. Directives

    - Directive specifications takes the form -

    @directive value -

    Table 9.3. CCL directives

    NameDescriptionDefault
    truncationTruncation character?
    fieldSpecifies how multiple fields are to be - combined. There are two modes: or: - multiple qualifier fields are ORed, - merge: attributes for the qualifier - fields are merged and assigned to one term. - merge
    caseSpecificies if CCL operatores and qualifiers should be - compared with case sensitivity or not. Specify 0 for - case sensitive; 1 for case insensitive.0
    andSpecifies token for CCL operator AND.and
    orSpecifies token for CCL operator OR.or
    notSpecifies token for CCL operator NOT.not
    setSpecifies token for CCL operator SET.set

    1.2.3. CCL API

    - All public definitions can be found in the header file - ccl.h. A profile identifier is of type - CCL_bibset. A profile must be created with the call - to the function ccl_qual_mk which returns a profile - handle of type CCL_bibset. -

    - To read a file containing qualifier definitions the function - ccl_qual_file may be convenient. This function - takes an already opened FILE handle pointer as - argument along with a CCL_bibset handle. -

    - To parse a simple string with a FIND query use the function -

    -struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str,
    -                                   int *error, int *pos);
    -     

    - which takes the CCL profile (bibset) and query - (str) as input. Upon successful completion the RPN - tree is returned. If an error occur, such as a syntax error, the integer - pointed to by error holds the error code and - pos holds the offset inside query string in which - the parsing failed. -

    - An English representation of the error may be obtained by calling - the ccl_err_msg function. The error codes are - listed in ccl.h. -

    - To convert the CCL RPN tree (type - struct ccl_rpn_node *) - to the Z_RPNQuery of YAZ the function ccl_rpn_query - must be used. This function which is part of YAZ is implemented in - yaz-ccl.c. - After calling this function the CCL RPN tree is probably no longer - needed. The ccl_rpn_delete destroys the CCL RPN tree. -

    - A CCL profile may be destroyed by calling the - ccl_qual_rm function. -

    - The token names for the CCL operators may be changed by setting the - globals (all type char *) - ccl_token_and, ccl_token_or, - ccl_token_not and ccl_token_set. - An operator may have aliases, i.e. there may be more than one name for - the operator. To do this, separate each alias with a space character. -

    1.3. CQL

    - CQL - - Common Query Language - was defined for the - SRU protocol. - In many ways CQL has a similar syntax to CCL. - The objective of CQL is different. Where CCL aims to be - an end-user language, CQL is the protocol - query language for SRU. -

    Tip

    - If you are new to CQL, read the - Gentle Introduction. -

    - The CQL parser in YAZ provides the following: -

    • - It parses and validates a CQL query. -

    • - It generates a C structure that allows you to convert - a CQL query to some other query language, such as SQL. -

    • - The parser converts a valid CQL query to PQF, thus providing a - way to use CQL for both SRU servers and Z39.50 targets at the - same time. -

    • - The parser converts CQL to - XCQL. - XCQL is an XML representation of CQL. - XCQL is part of the SRU specification. However, since SRU - supports CQL only, we don't expect XCQL to be widely used. - Furthermore, CQL has the advantage over XCQL that it is - easy to read. -

    -

    1.3.1. CQL parsing

    - A CQL parser is represented by the CQL_parser - handle. Its contents should be considered YAZ internal (private). -

    -#include <yaz/cql.h>
    -
    -typedef struct cql_parser *CQL_parser;
    -
    -CQL_parser cql_parser_create(void);
    -void cql_parser_destroy(CQL_parser cp);
    -      

    - A parser is created by cql_parser_create and - is destroyed by cql_parser_destroy. -

    - To parse a CQL query string, the following function - is provided: -

    -int cql_parser_string(CQL_parser cp, const char *str);
    -      

    - A CQL query is parsed by the cql_parser_string - which takes a query str. - If the query was valid (no syntax errors), then zero is returned; - otherwise -1 is returned to indicate a syntax error. -

    -

    -int cql_parser_stream(CQL_parser cp,
    -                      int (*getbyte)(void *client_data),
    -                      void (*ungetbyte)(int b, void *client_data),
    -                      void *client_data);
    -
    -int cql_parser_stdio(CQL_parser cp, FILE *f);
    -      

    - The functions cql_parser_stream and - cql_parser_stdio parses a CQL query - - just like cql_parser_string. - The only difference is that the CQL query can be - fed to the parser in different ways. - The cql_parser_stream uses a generic - byte stream as input. The cql_parser_stdio - uses a FILE handle which is opened for reading. -

    1.3.2. CQL tree

    - The the query string is valid, the CQL parser - generates a tree representing the structure of the - CQL query. -

    -

    -struct cql_node *cql_parser_result(CQL_parser cp);
    -      

    - cql_parser_result returns the - a pointer to the root node of the resulting tree. -

    - Each node in a CQL tree is represented by a - struct cql_node. - It is defined as follows: -

    -#define CQL_NODE_ST 1
    -#define CQL_NODE_BOOL 2
    -struct cql_node {
    -    int which;
    -    union {
    -        struct {
    -            char *index;
    -	    char *index_uri;
    -            char *term;
    -            char *relation;
    -	    char *relation_uri;
    -            struct cql_node *modifiers;
    -        } st;
    -        struct {
    -            char *value;
    -            struct cql_node *left;
    -            struct cql_node *right;
    -            struct cql_node *modifiers;
    -        } boolean;
    -    } u;
    -};
    -      

    - There are two node types: search term (ST) and boolean (BOOL). - A modifier is treated as a search term too. -

    - The search term node has five members: -

    • - index: index for search term. - If an index is unspecified for a search term, - index will be NULL. -

    • - index_uri: index URi for search term - or NULL if none could be resolved for the index. -

    • - term: the search term itself. -

    • - relation: relation for search term. -

    • - relation_uri: relation URI for search term. -

    • - modifiers: relation modifiers for search - term. The modifiers list itself of cql_nodes - each of type ST. -

    -

    - The boolean node represents both and, - or, not as well as - proximity. -

    • - left and right: left - - and right operand respectively. -

    • - modifiers: proximity arguments. -

    -

    1.3.3. CQL to PQF conversion

    - Conversion to PQF (and Z39.50 RPN) is tricky by the fact - that the resulting RPN depends on the Z39.50 target - capabilities (combinations of supported attributes). - In addition, the CQL and SRU operates on index prefixes - (URI or strings), whereas the RPN uses Object Identifiers - for attribute sets. -

    - The CQL library of YAZ defines a cql_transform_t - type. It represents a particular mapping between CQL and RPN. - This handle is created and destroyed by the functions: -

    -cql_transform_t cql_transform_open_FILE (FILE *f);
    -cql_transform_t cql_transform_open_fname(const char *fname);
    -void cql_transform_close(cql_transform_t ct);
    -      

    - The first two functions create a tranformation handle from - either an already open FILE or from a filename respectively. -

    - The handle is destroyed by cql_transform_close - in which case no further reference of the handle is allowed. -

    - When a cql_transform_t handle has been created - you can convert to RPN. -

    -int cql_transform_buf(cql_transform_t ct,
    -                      struct cql_node *cn, char *out, int max);
    -      

    - This function converts the CQL tree cn - using handle ct. - For the resulting PQF, you supply a buffer out - which must be able to hold at at least max - characters. -

    - If conversion failed, cql_transform_buf - returns a non-zero SRU error code; otherwise zero is returned - (conversion successful). The meanings of the numeric error - codes are listed in the SRU specifications at - http://www.loc.gov/standards/sru/resources/diagnostics-list.html -

    - If conversion fails, more information can be obtained by calling -

    -int cql_transform_error(cql_transform_t ct, char **addinfop);
    -      

    - This function returns the most recently returned numeric - error-code and sets the string-pointer at - *addinfop to point to a string containing - additional information about the error that occurred: for - example, if the error code is 15 (``Illegal or unsupported context - set''), the additional information is the name of the requested - context set that was not recognised. -

    - The SRU error-codes may be translated into brief human-readable - error messages using -

    -const char *cql_strerror(int code);
    -      

    -

    - If you wish to be able to produce a PQF result in a different - way, there are two alternatives. -

    -void cql_transform_pr(cql_transform_t ct,
    -                      struct cql_node *cn,
    -                      void (*pr)(const char *buf, void *client_data),
    -                      void *client_data);
    -
    -int cql_transform_FILE(cql_transform_t ct,
    -                       struct cql_node *cn, FILE *f);
    -      

    - The former function produces output to a user-defined - output stream. The latter writes the result to an already - open FILE. -

    1.3.4. Specification of CQL to RPN mappings

    - The file supplied to functions - cql_transform_open_FILE, - cql_transform_open_fname follows - a structure found in many Unix utilities. - It consists of mapping specifications - one per line. - Lines starting with # are ignored (comments). -

    - Each line is of the form -


    -       CQL pattern =   RPN equivalent
    -      

    -

    - An RPN pattern is a simple attribute list. Each attribute pair - takes the form: -


    -       [settype=value
    -      

    - The attribute set is optional. - The type is the attribute type, - value the attribute value. -

    - The character * (asterisk) has special meaning - when used in the RPN pattern. - Each occurrence of * is substituted with the - CQL matching name (index, relation, qualifier etc). - This facility can be used to copy a CQL name verbatim to the RPN result. -

    - The following CQL patterns are recognized: -

    - index.set.name -

    - This pattern is invoked when a CQL index, such as - dc.title is converted. set - and name are the context set and index - name respectively. - Typically, the RPN specifies an equivalent use attribute. -

    - For terms not bound by an index the pattern - index.cql.serverChoice is used. - Here, the prefix cql is defined as - http://www.loc.gov/zing/cql/cql-indexes/v1.0/. - If this pattern is not defined, the mapping will fail. -

    - The pattern, - index.set.* - is used when no other index pattern is matched. -

    - qualifier.set.name - (DEPRECATED) -

    - For backwards compatibility, this is recognised as a synonym of - index.set.name -

    - relation.relation -

    - This pattern specifies how a CQL relation is mapped to RPN. - pattern is name of relation - operator. Since = is used as - separator between CQL pattern and RPN, CQL relations - including = cannot be - used directly. To avoid a conflict, the names - ge, - eq, - le, - must be used for CQL operators, greater-than-or-equal, - equal, less-than-or-equal respectively. - The RPN pattern is supposed to include a relation attribute. -

    - For terms not bound by a relation, the pattern - relation.scr is used. If the pattern - is not defined, the mapping will fail. -

    - The special pattern, relation.* is used - when no other relation pattern is matched. -

    - relationModifier.mod -

    - This pattern specifies how a CQL relation modifier is mapped to RPN. - The RPN pattern is usually a relation attribute. -

    - structure.type -

    - This pattern specifies how a CQL structure is mapped to RPN. - Note that this CQL pattern is somewhat to similar to - CQL pattern relation. - The type is a CQL relation. -

    - The pattern, structure.* is used - when no other structure pattern is matched. - Usually, the RPN equivalent specifies a structure attribute. -

    - position.type -

    - This pattern specifies how the anchor (position) of - CQL is mapped to RPN. - The type is one - of first, any, - last, firstAndLast. -

    - The pattern, position.* is used - when no other position pattern is matched. -

    - set.prefix -

    - This specification defines a CQL context set for a given prefix. - The value on the right hand side is the URI for the set - - not RPN. All prefixes used in - index patterns must be defined this way. -

    - set -

    - This specification defines a default CQL context set for index names. - The value on the right hand side is the URI for the set. -

    -

    Example 9.10. CQL to RPN mapping file

    - This simple file defines two context sets, three indexes and three - relations, a position pattern and a default structure. -

    -       set.cql  = http://www.loc.gov/zing/cql/context-sets/cql/v1.1/
    -       set.dc   = http://www.loc.gov/zing/cql/dc-indexes/v1.0/
    -
    -       index.cql.serverChoice = 1=1016
    -       index.dc.title         = 1=4
    -       index.dc.subject       = 1=21
    -  
    -       relation.<             = 2=1
    -       relation.eq            = 2=3
    -       relation.scr           = 2=3
    -
    -       position.any           = 3=3 6=1
    -
    -       structure.*            = 4=1
    -
    -      

    - With the mappings above, the CQL query -

    -        computer
    -       

    - is converted to the PQF: -

    -        @attr 1=1016 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 "computer"
    -       

    - by rules index.cql.serverChoice, - relation.scr, structure.*, - position.any. -

    - CQL query -

    -        computer^
    -       

    - is rejected, since position.right is - undefined. -

    - CQL query -

    -        >my = "http://www.loc.gov/zing/cql/dc-indexes/v1.0/" my.title = x
    -       

    - is converted to -

    -        @attr 1=4 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 "x"
    -       

    -


    Example 9.11. CQL to RPN string attributes

    - In this example we allow any index to be passed to RPN as - a use attribute. -

    -       # Identifiers for prefixes used in this file. (index.*)
    -       set.cql  = info:srw/cql-context-set/1/cql-v1.1
    -       set.rpn  = http://bogus/rpn
    -       set      = http://bogus/rpn
    -
    -       # The default index when none is specified by the query
    -       index.cql.serverChoice     = 1=any
    -
    -       index.rpn.*                = 1=*
    -       relation.eq                = 2=3
    -       structure.*                = 4=1
    -       position.any               = 3=3
    -
    -      

    - The http://bogus/rpn context set is also the default - so we can make queries such as -

    -        title = a
    -       

    - which is converted to -

    -        @attr 2=3 @attr 4=1 @attr 3=3 @attr 1=title "a"
    -       

    -


    Example 9.12. CQL to RPN using Bath Profile

    - The file etc/pqf.properties has mappings from - the Bath Profile and Dublin Core to RPN. - If YAZ is installed as a package it's usually located - in /usr/share/yaz/etc and part of the - development package, such as libyaz-dev. -


    1.3.5. CQL to XCQL conversion

    - Conversion from CQL to XCQL is trivial and does not - require a mapping to be defined. - There three functions to choose from depending on the - way you wish to store the resulting output (XML buffer - containing XCQL). -

    -int cql_to_xml_buf(struct cql_node *cn, char *out, int max);
    -void cql_to_xml(struct cql_node *cn, 
    -                void (*pr)(const char *buf, void *client_data),
    -                void *client_data);
    -void cql_to_xml_stdio(struct cql_node *cn, FILE *f);
    -      

    - Function cql_to_xml_buf converts - to XCQL and stores result in a user supplied buffer of a given - max size. -

    - cql_to_xml writes the result in - a user defined output stream. - cql_to_xml_stdio writes to a - a file. -

    diff --git a/dependencies/yaz_3.0.14/doc/tools.log.html b/dependencies/yaz_3.0.14/doc/tools.log.html deleted file mode 100644 index 918bc23..0000000 --- a/dependencies/yaz_3.0.14/doc/tools.log.html +++ /dev/null @@ -1,117 +0,0 @@ -4. Log

    4. Log

    - YAZ has evolved a fairly complex log system which should be useful both - for debugging YAZ itself, debugging applications that use YAZ, and for - production use of those applications. -

    - The log functions are declared in header yaz/log.h - and implemented in src/log.c. - Due to name clash with syslog and some math utilities the logging - interface has been modified as of YAZ 2.0.29. The obsolete interface - is still available if in header file yaz/log.h. - The key points of the interface are: -

    -   void yaz_log(int level, const char *fmt, ...)
    -
    -   void yaz_log_init(int level, const char *prefix, const char *name);
    -   void yaz_log_init_file(const char *fname);
    -   void yaz_log_init_level(int level);
    -   void yaz_log_init_prefix(const char *prefix);
    -   void yaz_log_time_format(const char *fmt);
    -   void yaz_log_init_max_size(int mx);
    -
    -   int yaz_log_mask_str(const char *str);
    -   int yaz_log_module_level(const char *name);
    -  

    - The reason for the whole log module is the yaz_log - function. It takes a bitmask indicating the log levels, a - printf-like format string, and a variable number of - arguments to log. -

    - The log level is a bit mask, that says on which level(s) - the log entry should be made, and optionally set some behaviour of the - logging. In the most simple cases, it can be one of YLOG_FATAL, - YLOG_DEBUG, YLOG_WARN, YLOG_LOG. Those can be combined with bits - that modify the way the log entry is written:YLOG_ERRNO, - YLOG_NOTIME, YLOG_FLUSH. - Most of the rest of the bits are deprecated, and should not be used. Use - the dynamic log levels instead. -

    - Applications that use YAZ, should not use the LOG_LOG for ordinary - messages, but should make use of the dynamic loglevel system. This consists - of two parts, defining the loglevel and checking it. -

    - To define the log levels, the (main) program should pass a string to - yaz_log_mask_str to define which log levels are to be - logged. This string should be a comma-separated list of log level names, - and can contain both hard-coded names and dynamic ones. The log level - calculation starts with YLOG_DEFAULT_LEVEL and adds a bit - for each word it meets, unless the word starts with a '-', in which case it - clears the bit. If the string 'none' is found, - all bits are cleared. Typically this string comes from the command-line, - often identified by -v. The - yaz_log_mask_str returns a log level that should be - passed to yaz_log_init_level for it to take effect. -

    - Each module should check what log bits it should be used, by calling - yaz_log_module_level with a suitable name for the - module. The name is cleared from a preceding path and an extension, if any, - so it is quite possible to use __FILE__ for it. If the - name has been passed to yaz_log_mask_str, the routine - returns a non-zero bitmask, which should then be used in consequent calls - to yaz_log. (It can also be tested, so as to avoid unnecessary calls to - yaz_log, in time-critical places, or when the log entry would take time - to construct.) -

    - Yaz uses the following dynamic log levels: - server, session, request, requestdetail for the server - functionality. - zoom for the zoom client api. - ztest for the simple test server. - malloc, nmem, odr, eventl for internal debugging of yaz itself. - Of course, any program using yaz is welcome to define as many new ones, as - it needs. -

    - By default the log is written to stderr, but this can be changed by a call - to yaz_log_init_file or - yaz_log_init. If the log is directed to a file, the - file size is checked at every write, and if it exceeds the limit given in - yaz_log_init_max_size, the log is rotated. The - rotation keeps one old version (with a .1 appended to - the name). The size defaults to 1GB. Setting it to zero will disable the - rotation feature. -

    -  A typical yaz-log looks like this
    -  13:23:14-23/11 yaz-ztest(1) [session] Starting session from tcp:127.0.0.1 (pid=30968)
    -  13:23:14-23/11 yaz-ztest(1) [request] Init from 'YAZ' (81) (ver 2.0.28) OK
    -  13:23:17-23/11 yaz-ztest(1) [request] Search Z: @attrset Bib-1 foo  OK:7 hits
    -  13:23:22-23/11 yaz-ztest(1) [request] Present: [1] 2+2  OK 2 records returned
    -  13:24:13-23/11 yaz-ztest(1) [request] Close OK
    -  

    - The log entries start with a time stamp. This can be omitted by setting the - YLOG_NOTIME bit in the loglevel. This way automatic tests - can be hoped to produce identical log files, that are easy to diff. The - format of the time stamp can be set with - yaz_log_time_format, which takes a format string just - like strftime. -

    - Next in a log line comes the prefix, often the name of the program. For - yaz-based servers, it can also contain the session number. Then - comes one or more logbits in square brackets, depending on the logging - level set by yaz_log_init_level and the loglevel - passed to yaz_log_init_level. Finally comes the format - string and additional values passed to yaz_log -

    - The log level YLOG_LOGLVL, enabled by the string - loglevel, will log all the log-level affecting - operations. This can come in handy if you need to know what other log - levels would be useful. Grep the logfile for [loglevel]. -

    - The log system is almost independent of the rest of YAZ, the only - important dependence is of nmem, and that only for - using the semaphore definition there. -

    - The dynamic log levels and log rotation were introduced in YAZ 2.0.28. At - the same time, the log bit names were changed from - LOG_something to YLOG_something, - to avoid collision with syslog.h. -

    diff --git a/dependencies/yaz_3.0.14/doc/tools.nmem.html b/dependencies/yaz_3.0.14/doc/tools.nmem.html deleted file mode 100644 index f58ba38..0000000 --- a/dependencies/yaz_3.0.14/doc/tools.nmem.html +++ /dev/null @@ -1,46 +0,0 @@ -3. Nibble Memory

    3. Nibble Memory

    - Sometimes when you need to allocate and construct a large, - interconnected complex of structures, it can be a bit of a pain to - release the associated memory again. For the structures describing the - Z39.50 PDUs and related structures, it is convenient to use the - memory-management system of the ODR subsystem (see - Section 2, “Using ODR”). However, in some circumstances - where you might otherwise benefit from using a simple nibble memory - management system, it may be impractical to use - odr_malloc() and odr_reset(). - For this purpose, the memory manager which also supports the ODR - streams is made available in the NMEM module. The external interface - to this module is given in the nmem.h file. -

    - The following prototypes are given: -

    -    NMEM nmem_create(void);
    -    void nmem_destroy(NMEM n);
    -    void *nmem_malloc(NMEM n, int size);
    -    void nmem_reset(NMEM n);
    -    int nmem_total(NMEM n);
    -    void nmem_init(void);
    -    void nmem_exit(void);
    -   

    - The nmem_create() function returns a pointer to a - memory control handle, which can be released again by - nmem_destroy() when no longer needed. - The function nmem_malloc() allocates a block of - memory of the requested size. A call to nmem_reset() - or nmem_destroy() will release all memory allocated - on the handle since it was created (or since the last call to - nmem_reset(). The function - nmem_total() returns the number of bytes currently - allocated on the handle. -

    - The nibble memory pool is shared amongst threads. POSIX - mutex'es and WIN32 Critical sections are introduced to keep the - module thread safe. Function nmem_init() - initializes the nibble memory library and it is called automatically - the first time the YAZ.DLL is loaded. YAZ uses - function DllMain to achieve this. You should - not call nmem_init or - nmem_exit unless you're absolute sure what - you're doing. Note that in previous YAZ versions you'd have to call - nmem_init yourself. -

    diff --git a/dependencies/yaz_3.0.14/doc/tools.oid.html b/dependencies/yaz_3.0.14/doc/tools.oid.html deleted file mode 100644 index eed1f71..0000000 --- a/dependencies/yaz_3.0.14/doc/tools.oid.html +++ /dev/null @@ -1,326 +0,0 @@ -2. Object Identifiers

    2. Object Identifiers

    - The basic YAZ representation of an OID is an array of integers, - terminated with the value -1. This integer is of type - Odr_oid. -

    - Fundamental OID operations and the type Odr_oid - are defined in yaz/oid_util.h. -

    - An OID can either be declared as a automatic variable or it can - allocated using the memory utilities or ODR/NMEM. It's - guaranteed that an OID can fit in OID_SIZE integers. -

    Example 9.13. Create OID on stack

    - We can create an OID for the Bib-1 attribute set with: -

    -      Odr_oid bib1[OID_SIZE];
    -      bib1[0] = 1;
    -      bib1[1] = 2;
    -      bib1[2] = 840;
    -      bib1[3] = 10003;
    -      bib1[4] = 3;
    -      bib1[5] = 1;
    -      bib1[6] = -1;
    -     

    -


    - And OID may also be filled from a string-based representation using - dots (.). This is achieved by function -

    -     int oid_dotstring_to_oid(const char *name, Odr_oid *oid);
    -    

    - This functions returns 0 if name could be converted; -1 otherwise. -

    Example 9.14. Using oid_oiddotstring_to_oid

    - We can fill the Bib-1 attribute set OID easier with: -

    -      Odr_oid bib1[OID_SIZE];
    -      oid_oiddotstring_to_oid("1.2.840.10003.3.1", bib1);
    -     

    -


    - We can also allocate an OID dynamically on a ODR stream with: -

    -    Odr_oid *odr_getoidbystr(ODR o, const char *str);
    -   

    - This creates an OID from string-based representation using dots. - This function take an ODR stream as parameter. This stream is used to - allocate memory for the data elements, which is released on a - subsequent call to odr_reset() on that stream. -

    Example 9.15. Using odr_getoidbystr

    - We can create a OID for the Bib-1 attribute set with: -

    -      Odr_oid *bib1 = odr_getoidbystr(odr, "1.2.840.10003.3.1");
    -     

    -


    - The function -

    -     char *oid_oid_to_dotstring(const Odr_oid *oid, char *oidbuf)
    -    

    - does the reverse of oid_oiddotstring_to_oid. It - converts an OID to the string-based representation using dots. - The supplied char buffer oidbuf holds the resulting - string and must be at least OID_STR_MAX in size. -

    - OIDs can be copied with oid_oidcpy which takes - two OID lists as arguments. Alternativly, an OID copy can be allocated - on a ODR stream with: -

    -     Odr_oid *odr_oiddup(ODR odr, const Odr_oid *o);
    -    

    -

    - OIDs can be compared with oid_oidcmp which returns - zero if the two OIDs provided are identical; non-zero otherwise. -

    2.1. OID database

    - From YAZ version 3 and later, the oident system has been replaced - by an OID database. OID database is a misnomer .. the old odient - system was also a database. -

    - The OID database is really just a map between named Object Identifiers - (string) and their OID raw equivalents. Most operations either - convert from string to OID or other way around. -

    - Unfortunately, whenever we supply a string we must also specify the - OID class. The class is necessary because some - strings correspond to multiple OIDs. An example of such a string is - Bib-1 which may either be an attribute-set - or a diagnostic-set. -

    - Applications using the YAZ database should include - yaz/oid_db.h. -

    - A YAZ database handle is of type yaz_oid_db_t. - Actually that's a pointer. You need not think deal with that. - YAZ has a built-in database which can be considered "constant" for - most purposes. - We can get hold that by using function yaz_oid_std. -

    - All functions with prefix yaz_string_to_oid - converts from class + string to OID. We have variants of this - operation due to different memory allocation strategies. -

    - All functions with prefix - yaz_oid_to_string converts from OID to string - + class. -

    Example 9.16. Create OID with YAZ DB

    - We can create an OID for the Bib-1 attribute set on the ODR stream - odr with: -

    -        Odr_oid *bib1 = 
    -         yaz_string_to_oid_odr(yaz_oid_std(), CLASS_ATTSET, "Bib-1", odr);
    -      

    - This is more complex than using odr_getoidbystr. - You would only use yaz_string_to_oid_odr when the - string (here Bib-1) is supplied by a user or configuration. -


    2.2. Standard OIDs

    - All the object identifers in the standard OID database as returned - by yaz_oid_std can referenced directly in a - program as a constant OID. - Each constant OID is prefixed with yaz_oid_ - - followed by OID class (lowercase) - then by OID name (normalized and - lowercase). -

    - See Appendix A, List of Object Identifiers for list of all object identifiers - built into YAZ. - These are declared in yaz/oid_std.h but are - included by yaz/oid_db.h as well. -

    Example 9.17. Use a built-in OID

    - We can allocate our own OID filled with the constant OID for - Bib-1 with: -

    -        Odr_oid *bib1 = odr_oiddup(o, yaz_oid_attset_bib1);
    -      

    -


    2.3. OID oident

    Note

    - The oident utility has been removed from YAZ version 3. This - sub section only applies to YAZ version 2. -

    - The OID module provides a higher-level representation of the - family of object identifiers which describe the Z39.50 protocol and its - related objects. The definition of the module interface is given in - the oid.h file. -

    - The interface is mainly based on the oident structure. - The definition of this structure looks like this: -

    -typedef struct oident
    -{
    -    oid_proto proto;
    -    oid_class oclass;
    -    oid_value value;
    -    int oidsuffix[OID_SIZE];
    -    char *desc;
    -} oident;
    -   

    - The proto field takes one of the values -

    -    PROTO_Z3950
    -    PROTO_GENERAL
    -   

    - Use PROTO_Z3950 for Z39.50 Object Identifers, - PROTO_GENERAL for other types (such as - those associated with ILL). -

    - - The oclass field takes one of the values -

    -    CLASS_APPCTX
    -    CLASS_ABSYN
    -    CLASS_ATTSET
    -    CLASS_TRANSYN
    -    CLASS_DIAGSET
    -    CLASS_RECSYN
    -    CLASS_RESFORM
    -    CLASS_ACCFORM
    -    CLASS_EXTSERV
    -    CLASS_USERINFO
    -    CLASS_ELEMSPEC
    -    CLASS_VARSET
    -    CLASS_SCHEMA
    -    CLASS_TAGSET
    -    CLASS_GENERAL
    -   

    - corresponding to the OID classes defined by the Z39.50 standard. - - Finally, the value field takes one of the values -

    -    VAL_APDU
    -    VAL_BER
    -    VAL_BASIC_CTX
    -    VAL_BIB1
    -    VAL_EXP1
    -    VAL_EXT1
    -    VAL_CCL1
    -    VAL_GILS
    -    VAL_WAIS
    -    VAL_STAS
    -    VAL_DIAG1
    -    VAL_ISO2709
    -    VAL_UNIMARC
    -    VAL_INTERMARC
    -    VAL_CCF
    -    VAL_USMARC
    -    VAL_UKMARC
    -    VAL_NORMARC
    -    VAL_LIBRISMARC
    -    VAL_DANMARC
    -    VAL_FINMARC
    -    VAL_MAB
    -    VAL_CANMARC
    -    VAL_SBN
    -    VAL_PICAMARC
    -    VAL_AUSMARC
    -    VAL_IBERMARC
    -    VAL_EXPLAIN
    -    VAL_SUTRS
    -    VAL_OPAC
    -    VAL_SUMMARY
    -    VAL_GRS0
    -    VAL_GRS1
    -    VAL_EXTENDED
    -    VAL_RESOURCE1
    -    VAL_RESOURCE2
    -    VAL_PROMPT1
    -    VAL_DES1
    -    VAL_KRB1
    -    VAL_PRESSET
    -    VAL_PQUERY
    -    VAL_PCQUERY
    -    VAL_ITEMORDER
    -    VAL_DBUPDATE
    -    VAL_EXPORTSPEC
    -    VAL_EXPORTINV
    -    VAL_NONE
    -    VAL_SETM
    -    VAL_SETG
    -    VAL_VAR1
    -    VAL_ESPEC1
    -   

    - again, corresponding to the specific OIDs defined by the standard. - Refer to the - - Registry of Z39.50 Object Identifiers for the - whole list. -

    - The desc field contains a brief, mnemonic name for the OID in question. -

    - The function -

    -    struct oident *oid_getentbyoid(int *o);
    -   

    - takes as argument an OID, and returns a pointer to a static area - containing an oident structure. You typically use - this function when you receive a PDU containing an OID, and you wish - to branch out depending on the specific OID value. -

    - The function -

    -    int *oid_ent_to_oid(struct oident *ent, int *dst);
    -   

    - Takes as argument an oident structure - in which - the proto, oclass/, and - value fields are assumed to be set correctly - - and returns a pointer to a the buffer as given by dst - containing the base - representation of the corresponding OID. The function returns - NULL and the array dst is unchanged if a mapping couldn't place. - The array dst should be at least of size - OID_SIZE. -

    - - The oid_ent_to_oid() function can be used whenever - you need to prepare a PDU containing one or more OIDs. The separation of - the protocol element from the remainder of the - OID-description makes it simple to write applications that can - communicate with either Z39.50 or OSI SR-based applications. -

    - The function -

    -    oid_value oid_getvalbyname(const char *name);
    -   

    - takes as argument a mnemonic OID name, and returns the - /value field of the first entry in the database that - contains the given name in its desc field. -

    - Three utility functions are provided for translating OIDs' - symbolic names (e.g. Usmarc into OID structures - (int arrays) and strings containing the OID in dotted notation - (e.g. 1.2.840.10003.9.5.1). They are: -

    -    int *oid_name_to_oid(oid_class oclass, const char *name, int *oid);
    -    char *oid_to_dotstring(const int *oid, char *oidbuf);
    -    char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf);
    -   

    - oid_name_to_oid() - translates the specified symbolic name, - interpreted as being of class oclass. (The - class must be specified as many symbolic names exist within - multiple classes - for example, Zthes is the - symbolic name of an attribute set, a schema and a tag-set.) The - sequence of integers representing the OID is written into the - area oid provided by the caller; it is the - caller's responsibility to ensure that this area is large enough - to contain the translated OID. As a convenience, the address of - the buffer (i.e. the value of oid) is - returned. -

    - oid_to_dotstring() - Translates the int-array oid into a dotted - string which is written into the area oidbuf - supplied by the caller; it is the caller's responsibility to - ensure that this area is large enough. The address of the buffer - is returned. -

    - oid_name_to_dotstring() - combines the previous two functions to derive a dotted string - representing the OID specified by oclass and - name, writing it into the buffer passed as - oidbuf and returning its address. -

    Note

    - The OID module has been criticized - and perhaps rightly so - - for needlessly abstracting the - representation of OIDs. Other toolkits use a simple - string-representation of OIDs with good results. In practice, we have - found the interface comfortable and quick to work with, and it is a - simple matter (for what it's worth) to create applications compatible - with both ISO SR and Z39.50. Finally, the use of the - /oident database is by no means mandatory. - You can easily create your own system for representing OIDs, as long - as it is compatible with the low-level integer-array representation - of the ODR module. -

    diff --git a/dependencies/yaz_3.0.14/doc/tools.retrieval.html b/dependencies/yaz_3.0.14/doc/tools.retrieval.html deleted file mode 100644 index 0f06a67..0000000 --- a/dependencies/yaz_3.0.14/doc/tools.retrieval.html +++ /dev/null @@ -1,145 +0,0 @@ -6. Retrieval Facility

    6. Retrieval Facility

    - YAZ version 2.1.20 or later includes a Retrieval facility tool - which allows a SRU/Z39.50 to describe itself and perform record - conversions. The idea is the following: - -

    • - An SRU/Z39.50 client sends a retrieval request which includes - a combination of the following parameters: syntax (format), - schema (or element set name). -

    • - The retrieval facility is invoked with parameters in a - server/proxy. The retrieval facility matches the parameters a set of - "supported" retrieval types. - If there is no match, the retrieval signals an error - (syntax and / or schema not supported). -

    • - For a successful match, the backend is invoked with the same - or altered retrieval parameters (syntax, schema). If - a record is received from the backend, it is converted to the - frontend name / syntax. -

    • - The resulting record is sent back the client and tagged with - the frontend syntax / schema. -

    -

    - The Retrieval facility is driven by an XML configuration. The - configuration is neither Z39.50 ZeeRex or SRU ZeeRex. But it - should be easy to generate both of them from the XML configuration. - (unfortunately the two versions - of ZeeRex differ substantially in this regard). -

    6.1. Retrieval XML format

    - All elements should be covered by namespace - http://indexdata.com/yaz . - The root element node must be retrievalinfo. -

    - The retrievalinfo must include one or - more retrieval elements. Each - retrieval defines specific combination of - syntax, name and identifier supported by this retrieval service. -

    - The retrieval element may include any of the - following attributes: -

    syntax (REQUIRED)

    - Defines the record syntax. Possible values is any - of the names defined in YAZ' OID database or a raw - OID in (n.n ... n). -

    name (OPTIONAL)

    - Defines the name of the retrieval format. This can be - any string. For SRU, the value, is equivalent to schema (short-hand); - for Z39.50 it's equivalent to simple element set name. -

    identifier (OPTIONAL)

    - Defines the URI schema name of the retrieval format. This can be - any string. For SRU, the value, is equivalent to URI schema. - For Z39.50, there is no equivalent. -

    -

    - The retrieval may include one - backend element. If a backend - element is given, it specifies how the records are retrieved by - some backend and how the records are converted from the backend to - the "frontend". -

    - The attributes, name and syntax - may be specified for the backend element. These - semantics of these attributes is equivalent to those for the - retrieval. However, these values are passed to - the "backend". -

    - The backend element may includes one or more - conversion instructions (as children elements). The supported - conversions are: -

    marc

    - The marc element specifies a conversion - to - and from ISO2709 encoded MARC and - MARCXML/MarcXchange. - The following attributes may be specified: - -

    inputformat (REQUIRED)

    - Format of input. Supported values are - marc (for ISO2709); and xml - for MARCXML/MarcXchange. -

    outputformat (REQUIRED)

    - Format of output. Supported values are - line (MARC line format); - marcxml (for MARCXML), - marc (ISO2709), - marcxhcange (for MarcXchange). -

    inputcharset (OPTIONAL)

    - Encoding of input. For XML input formats, this need not - be given, but for ISO2709 based inputformats, this should - be set to the encoding used. For MARC21 records, a common - inputcharset value would be marc-8. -

    outputcharset (OPTIONAL)

    - Encoding of output. If outputformat is XML based, it is - strongly recommened to use utf-8. -

    -

    xslt

    - The xslt element specifies a conversion - via XSLT. The following attributes may be specified: - -

    stylesheet (REQUIRED)

    - Stylesheet file. -

    - -

    -

    6.2. Retrieval Facility Examples

    Example 9.19. MARC21 backend

    - A typical way to use the retrieval facility is to enable XML - for servers that only supports ISO2709 encoded MARC21 records. -

    -     <retrievalinfo>
    -       <retrieval syntax="usmarc" name="F"/>
    -       <retrieval syntax="usmarc" name="B"/>
    -       <retrieval syntax="xml" name="marcxml"
    -		  identifier="info:srw/schema/1/marcxml-v1.1">
    -         <backend syntax="usmarc" name="F">
    -	   <marc inputformat="marc" outputformat="marcxml"
    -		 inputcharset="marc-8"/>
    -	 </backend>
    -       </retrieval>
    -       <retrieval syntax="xml" name="dc">
    -         <backend syntax="usmarc" name="F">
    -	   <marc inputformat="marc" outputformat="marcxml"
    -		 inputcharset="marc-8"/>
    -           <xslt stylesheet="MARC21slim2DC.xsl"/>
    -	 </backend>
    -       </retrieval>
    -     </retrievalinfo>
    -
    -     

    - This means that our frontend supports: -

    • - MARC21 F(ull) records. -

    • - MARC21 B(rief) records. -

    • - MARCXML records. -

    • - Dublin core records. -

    -


    6.3. API

    - It should be easy to use the retrieval systems from applications. Refer - to the headers - yaz/retrieval.h and - yaz/record_conv.h. -

    diff --git a/dependencies/yaz_3.0.14/doc/tools.xml b/dependencies/yaz_3.0.14/doc/tools.xml deleted file mode 100644 index 931f9ab..0000000 --- a/dependencies/yaz_3.0.14/doc/tools.xml +++ /dev/null @@ -1,2570 +0,0 @@ - - Supporting Tools - - - In support of the service API - primarily the ASN module, which - provides the pro-grammatic interface to the Z39.50 APDUs, &yaz; contains - a collection of tools that support the development of applications. - - - Query Syntax Parsers - - - Since the type-1 (RPN) query structure has no direct, useful string - representation, every origin application needs to provide some form of - mapping from a local query notation or representation to a - Z_RPNQuery structure. Some programmers will prefer to - construct the query manually, perhaps using - odr_malloc() to simplify memory management. - The &yaz; distribution includes three separate, query-generating tools - that may be of use to you. - - - Prefix Query Format - - - Since RPN or reverse polish notation is really just a fancy way of - describing a suffix notation format (operator follows operands), it - would seem that the confusion is total when we now introduce a prefix - notation for RPN. The reason is one of simple laziness - it's somewhat - simpler to interpret a prefix format, and this utility was designed - for maximum simplicity, to provide a baseline representation for use - in simple test applications and scripting environments (like Tcl). The - demonstration client included with YAZ uses the PQF. - - - - - The PQF have been adopted by other parties developing Z39.50 - software. It is often referred to as Prefix Query Notation - - PQN. - - - - The PQF is defined by the pquery module in the YAZ library. - There are two sets of function that have similar behavior. First - set operates on a PQF parser handle, second set doesn't. First set - set of functions are more flexible than the second set. Second set - is obsolete and is only provided to ensure backwards compatibility. - - - First set of functions all operate on a PQF parser handle: - - - #include <yaz/pquery.h> - - YAZ_PQF_Parser yaz_pqf_create (void); - - void yaz_pqf_destroy (YAZ_PQF_Parser p); - - Z_RPNQuery *yaz_pqf_parse (YAZ_PQF_Parser p, ODR o, const char *qbuf); - - Z_AttributesPlusTerm *yaz_pqf_scan (YAZ_PQF_Parser p, ODR o, - Odr_oid **attributeSetId, const char *qbuf); - - - int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off); - - - A PQF parser is created and destructed by functions - yaz_pqf_create and - yaz_pqf_destroy respectively. - Function yaz_pqf_parse parses query given - by string qbuf. If parsing was successful, - a Z39.50 RPN Query is returned which is created using ODR stream - o. If parsing failed, a NULL pointer is - returned. - Function yaz_pqf_scan takes a scan query in - qbuf. If parsing was successful, the function - returns attributes plus term pointer and modifies - attributeSetId to hold attribute set for the - scan request - both allocated using ODR stream o. - If parsing failed, yaz_pqf_scan returns a NULL pointer. - Error information for bad queries can be obtained by a call to - yaz_pqf_error which returns an error code and - modifies *msg to point to an error description, - and modifies *off to the offset within last - query were parsing failed. - - - The second set of functions are declared as follows: - - - #include <yaz/pquery.h> - - Z_RPNQuery *p_query_rpn (ODR o, oid_proto proto, const char *qbuf); - - Z_AttributesPlusTerm *p_query_scan (ODR o, oid_proto proto, - Odr_oid **attributeSetP, const char *qbuf); - - int p_query_attset (const char *arg); - - - The function p_query_rpn() takes as arguments an - &odr; stream (see section The ODR Module) - to provide a memory source (the structure created is released on - the next call to odr_reset() on the stream), a - protocol identifier (one of the constants PROTO_Z3950 and - PROTO_SR), an attribute set reference, and - finally a null-terminated string holding the query string. - - - If the parse went well, p_query_rpn() returns a - pointer to a Z_RPNQuery structure which can be - placed directly into a Z_SearchRequest. - If parsing failed, due to syntax error, a NULL pointer is returned. - - - The p_query_attset specifies which attribute set - to use if the query doesn't specify one by the - @attrset operator. - The p_query_attset returns 0 if the argument is a - valid attribute set specifier; otherwise the function returns -1. - - - - The grammar of the PQF is as follows: - - - - query ::= top-set query-struct. - - top-set ::= [ '@attrset' string ] - - query-struct ::= attr-spec | simple | complex | '@term' term-type query - - attr-spec ::= '@attr' [ string ] string query-struct - - complex ::= operator query-struct query-struct. - - operator ::= '@and' | '@or' | '@not' | '@prox' proximity. - - simple ::= result-set | term. - - result-set ::= '@set' string. - - term ::= string. - - proximity ::= exclusion distance ordered relation which-code unit-code. - - exclusion ::= '1' | '0' | 'void'. - - distance ::= integer. - - ordered ::= '1' | '0'. - - relation ::= integer. - - which-code ::= 'known' | 'private' | integer. - - unit-code ::= integer. - - term-type ::= 'general' | 'numeric' | 'string' | 'oid' | 'datetime' | 'null'. - - - - You will note that the syntax above is a fairly faithful - representation of RPN, except for the Attribute, which has been - moved a step away from the term, allowing you to associate one or more - attributes with an entire query structure. The parser will - automatically apply the given attributes to each term as required. - - - - The @attr operator is followed by an attribute specification - (attr-spec above). The specification consists - of an optional attribute set, an attribute type-value pair and - a sub-query. The attribute type-value pair is packed in one string: - an attribute type, an equals sign, and an attribute value, like this: - @attr 1=1003. - The type is always an integer but the value may be either an - integer or a string (if it doesn't start with a digit character). - A string attribute-value is encoded as a Type-1 ``complex'' - attribute with the list of values containing the single string - specified, and including no semantic indicators. - - - - Version 3 of the Z39.50 specification defines various encoding of terms. - Use @term type - string, - where type is one of: general, - numeric or string - (for InternationalString). - If no term type has been given, the general form - is used. This is the only encoding allowed in both versions 2 and 3 - of the Z39.50 standard. - - - - Using Proximity Operators with PQF - - - This is an advanced topic, describing how to construct - queries that make very specific requirements on the - relative location of their operands. - You may wish to skip this section and go straight to - the example PQF queries. - - - - - Most Z39.50 servers do not support proximity searching, or - support only a small subset of the full functionality that - can be expressed using the PQF proximity operator. Be - aware that the ability to express a - query in PQF is no guarantee that any given server will - be able to execute it. - - - - - - The proximity operator @prox is a special - and more restrictive version of the conjunction operator - @and. Its semantics are described in - section 3.7.2 (Proximity) of Z39.50 the standard itself, which - can be read on-line at - - - - In PQF, the proximity operation is represented by a sequence - of the form - -@prox exclusion distance ordered relation which-code unit-code - - in which the meanings of the parameters are as described in in - the standard, and they can take the following values: - - exclusion - 0 = false (i.e. the proximity condition specified by the - remaining parameters must be satisfied) or - 1 = true (the proximity condition specified by the - remaining parameters must not be - satisifed). - - distance - An integer specifying the difference between the locations - of the operands: e.g. two adjacent words would have - distance=1 since their locations differ by one unit. - - ordered - 1 = ordered (the operands must occur in the order the - query specifies them) or - 0 = unordered (they may appear in either order). - - relation - Recognised values are - 1 (lessThan), - 2 (lessThanOrEqual), - 3 (equal), - 4 (greaterThanOrEqual), - 5 (greaterThan) and - 6 (notEqual). - - which-code - known - or - k - (the unit-code parameter is taken from the well-known list - of alternatives described in below) or - private - or - p - (the unit-code paramater has semantics specific to an - out-of-band agreement such as a profile). - - unit-code - If the which-code parameter is known - then the recognised values are - 1 (character), - 2 (word), - 3 (sentence), - 4 (paragraph), - 5 (section), - 6 (chapter), - 7 (document), - 8 (element), - 9 (subelement), - 10 (elementType) and - 11 (byte). - If which-code is private then the - acceptable values are determined by the profile. - - - (The numeric values of the relation and well-known unit-code - parameters are taken straight from - the ASN.1 of the proximity structure in the standard.) - - - - PQF queries - - - PQF queries using simple terms - - - dylan - - "bob dylan" - - - - - PQF boolean operators - - - @or "dylan" "zimmerman" - - @and @or dylan zimmerman when - - @and when @or dylan zimmerman - - - - - PQF references to result sets - - - @set Result-1 - - @and @set seta @set setb - - - - - Attributes for terms - - - @attr 1=4 computer - - @attr 1=4 @attr 4=1 "self portrait" - - @attrset exp1 @attr 1=1 CategoryList - - @attr gils 1=2008 Copenhagen - - @attr 1=/book/title computer - - - - - PQF Proximity queries - - - @prox 0 3 1 2 k 2 dylan zimmerman - - - Here the parameters 0, 3, 1, 2, k and 2 represent exclusion, - distance, ordered, relation, which-code and unit-code, in that - order. So: - - - exclusion = 0: the proximity condition must hold - - - distance = 3: the terms must be three units apart - - - ordered = 1: they must occur in the order they are specified - - - relation = 2: lessThanOrEqual (to the distance of 3 units) - - - which-code is ``known'', so the standard unit-codes are used - - - unit-code = 2: word. - - - So the whole proximity query means that the words - dylan and zimmerman must - both occur in the record, in that order, differing in position - by three or fewer words (i.e. with two or fewer words between - them.) The query would find ``Bob Dylan, aka. Robert - Zimmerman'', but not ``Bob Dylan, born as Robert Zimmerman'' - since the distance in this case is four. - - - - - PQF specification of search term type - - - @term string "a UTF-8 string, maybe?" - - - - - PQF mixed queries - - - @or @and bob dylan @set Result-1 - - @attr 4=1 @and @attr 1=1 "bob dylan" @attr 1=4 "slow train coming" - - @and @attr 2=4 @attr gils 1=2038 -114 @attr 2=2 @attr gils 1=2039 -109 - - - - The last of these examples is a spatial search: in - the GILS attribute set, - access point - 2038 indicates West Bounding Coordinate and - 2030 indicates East Bounding Coordinate, - so the query is for areas extending from -114 degrees - to no more than -109 degrees. - - - - - - - CCL - - - Not all users enjoy typing in prefix query structures and numerical - attribute values, even in a minimalistic test client. In the library - world, the more intuitive Common Command Language - CCL (ISO 8777) - has enjoyed some popularity - especially before the widespread - availability of graphical interfaces. It is still useful in - applications where you for some reason or other need to provide a - symbolic language for expressing boolean query structures. - - - - The EUROPAGATE research project working under the Libraries programme - of the European Commission's DG XIII has, amongst other useful tools, - implemented a general-purpose CCL parser which produces an output - structure that can be trivially converted to the internal RPN - representation of &yaz; (The Z_RPNQuery structure). - Since the CCL utility - along with the rest of the software - produced by EUROPAGATE - is made freely available on a liberal - license, it is included as a supplement to &yaz;. - - - - CCL Syntax - - - The CCL parser obeys the following grammar for the FIND argument. - The syntax is annotated by in the lines prefixed by - --. - - - - CCL-Find ::= CCL-Find Op Elements - | Elements. - - Op ::= "and" | "or" | "not" - -- The above means that Elements are separated by boolean operators. - - Elements ::= '(' CCL-Find ')' - | Set - | Terms - | Qualifiers Relation Terms - | Qualifiers Relation '(' CCL-Find ')' - | Qualifiers '=' string '-' string - -- Elements is either a recursive definition, a result set reference, a - -- list of terms, qualifiers followed by terms, qualifiers followed - -- by a recursive definition or qualifiers in a range (lower - upper). - - Set ::= 'set' = string - -- Reference to a result set - - Terms ::= Terms Prox Term - | Term - -- Proximity of terms. - - Term ::= Term string - | string - -- This basically means that a term may include a blank - - Qualifiers ::= Qualifiers ',' string - | string - -- Qualifiers is a list of strings separated by comma - - Relation ::= '=' | '>=' | '<=' | '<>' | '>' | '<' - -- Relational operators. This really doesn't follow the ISO8777 - -- standard. - - Prox ::= '%' | '!' - -- Proximity operator - - - - - CCL queries - - The following queries are all valid: - - - - dylan - - "bob dylan" - - dylan or zimmerman - - set=1 - - (dylan and bob) or set=1 - - - - Assuming that the qualifiers ti, - au - and date are defined we may use: - - - - ti=self portrait - - au=(bob dylan and slow train coming) - - date>1980 and (ti=((self portrait))) - - - - - - - CCL Qualifiers - - - Qualifiers are used to direct the search to a particular searchable - index, such as title (ti) and author indexes (au). The CCL standard - itself doesn't specify a particular set of qualifiers, but it does - suggest a few short-hand notations. You can customize the CCL parser - to support a particular set of qualifiers to reflect the current target - profile. Traditionally, a qualifier would map to a particular - use-attribute within the BIB-1 attribute set. It is also - possible to set other attributes, such as the structure - attribute. - - - - A CCL profile is a set of predefined CCL qualifiers that may be - read from a file or set in the CCL API. - The YAZ client reads its CCL qualifiers from a file named - default.bib. There are four types of - lines in a CCL profile: qualifier specification, - qualifier alias, comments and directives. - - - Qualifier specification - - A qualifier specification is of the form: - - - - qualifier-name - [attributeset,]type=val - [attributeset,]type=val ... - - - - where qualifier-name is the name of the - qualifier to be used (eg. ti), - type is attribute type in the attribute - set (Bib-1 is used if no attribute set is given) and - val is attribute value. - The type can be specified as an - integer or as it be specified either as a single-letter: - u for use, - r for relation,p for position, - s for structure,t for truncation - or c for completeness. - The attributes for the special qualifier name term - are used when no CCL qualifier is given in a query. - - Common Bib-1 attributes - - - - - - Type - Description - - - - - u=value - - Use attribute (1). Common use attributes are - 1 Personal-name, 4 Title, 7 ISBN, 8 ISSN, 30 Date, - 62 Subject, 1003 Author), 1016 Any. Specify value - as an integer. - - - - - r=value - - Relation attribute (2). Common values are - 1 <, 2 <=, 3 =, 4 >=, 5 >, 6 <>, - 100 phonetic, 101 stem, 102 relevance, 103 always matches. - - - - - p=value - - Position attribute (3). Values: 1 first in field, 2 - first in any subfield, 3 any position in field. - - - - - s=value - - Structure attribute (4). Values: 1 phrase, 2 word, - 3 key, 4 year, 5 date, 6 word list, 100 date (un), - 101 name (norm), 102 name (un), 103 structure, 104 urx, - 105 free-form-text, 106 document-text, 107 local-number, - 108 string, 109 numeric string. - - - - - t=value - - Truncation attribute (5). Values: 1 right, 2 left, - 3 left& right, 100 none, 101 process #, 102 regular-1, - 103 regular-2, 104 CCL. - - - - - c=value - - Completeness attribute (6). Values: 1 incomplete subfield, - 2 complete subfield, 3 complete field. - - - - - -
    -
    - - Refer to the complete - list of Bib-1 attributes - - - It is also possible to specify non-numeric attribute values, - which are used in combination with certain types. - The special combinations are: - - - Special attribute combos - - - - - - Name - Description - - - - - s=pw - The structure is set to either word or phrase depending - on the number of tokens in a term (phrase-word). - - - - s=al - Each token in the term is ANDed. (and-list). - This does not set the structure at all. - - - - s=ol - Each token in the term is ORed. (or-list). - This does not set the structure at all. - - - - r=o - Allows ranges and the operators greather-than, less-than, ... - equals. - This sets Bib-1 relation attribute accordingly (relation - ordered). A query construct is only treated as a range if - dash is used and that is surrounded by white-space. So - -1980 is treated as term - "-1980" not <= 1980. - If - 1980 is used, however, that is - treated as a range. - - - - r=r - Similar to r=o but assumes that terms - are non-negative (not prefixed with -). - Thus, a dash will always be treated as a range. - The construct 1980-1990 is - treated as a range with r=r but as a - single term "1980-1990" with - r=o. The special attribute - r=r is available in YAZ 2.0.24 or later. - - - - t=l - Allows term to be left-truncated. - If term is of the form ?x, the resulting - Type-1 term is x and truncation is left. - - - - t=r - Allows term to be right-truncated. - If term is of the form x?, the resulting - Type-1 term is x and truncation is right. - - - - t=n - If term is does not include ?, the - truncation attribute is set to none (100). - - - - t=b - Allows term to be both left&right truncated. - If term is of the form ?x?, the - resulting term is x and trunctation is - set to both left&right. - - - - -
    -
    - CCL profile - - Consider the following definition: - - - - ti u=4 s=1 - au u=1 s=1 - term s=105 - ranked r=102 - date u=30 r=o - - - ti and au both set - structure attribute to phrase (s=1). - ti - sets the use-attribute to 4. au sets the - use-attribute to 1. - When no qualifiers are used in the query the structure-attribute is - set to free-form-text (105) (rule for term). - The date sets the relation attribute to - the relation used in the CCL query and sets the use attribute - to 30 (Bib-1 Date). - - - You can combine attributes. To Search for "ranked title" you - can do - - ti,ranked=knuth computer - - which will set relation=ranked, use=title, structure=phrase. - - - Query - - date > 1980 - - is a valid query. But - - ti > 1980 - - is invalid. - - -
    - - Qualifier alias - - A qualifier alias is of the form: - - - q - q1 q2 .. - - - which declares q to - be an alias for q1, - q2... such that the CCL - query q=x is equivalent to - q1=x or q2=x or .... - - - - - Comments - - Lines with white space or lines that begin with - character # are treated as comments. - - - - - Directives - - Directive specifications takes the form - - @directive value - - - CCL directives - - - - - - - Name - Description - Default - - - - - truncation - Truncation character - ? - - - field - Specifies how multiple fields are to be - combined. There are two modes: or: - multiple qualifier fields are ORed, - merge: attributes for the qualifier - fields are merged and assigned to one term. - - merge - - - case - Specificies if CCL operatores and qualifiers should be - compared with case sensitivity or not. Specify 0 for - case sensitive; 1 for case insensitive. - 0 - - - - and - Specifies token for CCL operator AND. - and - - - - or - Specifies token for CCL operator OR. - or - - - - not - Specifies token for CCL operator NOT. - not - - - - set - Specifies token for CCL operator SET. - set - - - -
    -
    -
    - - CCL API - - All public definitions can be found in the header file - ccl.h. A profile identifier is of type - CCL_bibset. A profile must be created with the call - to the function ccl_qual_mk which returns a profile - handle of type CCL_bibset. - - - - To read a file containing qualifier definitions the function - ccl_qual_file may be convenient. This function - takes an already opened FILE handle pointer as - argument along with a CCL_bibset handle. - - - - To parse a simple string with a FIND query use the function - - -struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str, - int *error, int *pos); - - - which takes the CCL profile (bibset) and query - (str) as input. Upon successful completion the RPN - tree is returned. If an error occur, such as a syntax error, the integer - pointed to by error holds the error code and - pos holds the offset inside query string in which - the parsing failed. - - - - An English representation of the error may be obtained by calling - the ccl_err_msg function. The error codes are - listed in ccl.h. - - - - To convert the CCL RPN tree (type - struct ccl_rpn_node *) - to the Z_RPNQuery of YAZ the function ccl_rpn_query - must be used. This function which is part of YAZ is implemented in - yaz-ccl.c. - After calling this function the CCL RPN tree is probably no longer - needed. The ccl_rpn_delete destroys the CCL RPN tree. - - - - A CCL profile may be destroyed by calling the - ccl_qual_rm function. - - - - The token names for the CCL operators may be changed by setting the - globals (all type char *) - ccl_token_and, ccl_token_or, - ccl_token_not and ccl_token_set. - An operator may have aliases, i.e. there may be more than one name for - the operator. To do this, separate each alias with a space character. - - -
    - CQL - - CQL - - Common Query Language - was defined for the - SRU protocol. - In many ways CQL has a similar syntax to CCL. - The objective of CQL is different. Where CCL aims to be - an end-user language, CQL is the protocol - query language for SRU. - - - - If you are new to CQL, read the - Gentle Introduction. - - - - The CQL parser in &yaz; provides the following: - - - - It parses and validates a CQL query. - - - - - It generates a C structure that allows you to convert - a CQL query to some other query language, such as SQL. - - - - - The parser converts a valid CQL query to PQF, thus providing a - way to use CQL for both SRU servers and Z39.50 targets at the - same time. - - - - - The parser converts CQL to - XCQL. - XCQL is an XML representation of CQL. - XCQL is part of the SRU specification. However, since SRU - supports CQL only, we don't expect XCQL to be widely used. - Furthermore, CQL has the advantage over XCQL that it is - easy to read. - - - - - CQL parsing - - A CQL parser is represented by the CQL_parser - handle. Its contents should be considered &yaz; internal (private). - -#include <yaz/cql.h> - -typedef struct cql_parser *CQL_parser; - -CQL_parser cql_parser_create(void); -void cql_parser_destroy(CQL_parser cp); - - A parser is created by cql_parser_create and - is destroyed by cql_parser_destroy. - - - To parse a CQL query string, the following function - is provided: - -int cql_parser_string(CQL_parser cp, const char *str); - - A CQL query is parsed by the cql_parser_string - which takes a query str. - If the query was valid (no syntax errors), then zero is returned; - otherwise -1 is returned to indicate a syntax error. - - - -int cql_parser_stream(CQL_parser cp, - int (*getbyte)(void *client_data), - void (*ungetbyte)(int b, void *client_data), - void *client_data); - -int cql_parser_stdio(CQL_parser cp, FILE *f); - - The functions cql_parser_stream and - cql_parser_stdio parses a CQL query - - just like cql_parser_string. - The only difference is that the CQL query can be - fed to the parser in different ways. - The cql_parser_stream uses a generic - byte stream as input. The cql_parser_stdio - uses a FILE handle which is opened for reading. - - - - CQL tree - - The the query string is valid, the CQL parser - generates a tree representing the structure of the - CQL query. - - - -struct cql_node *cql_parser_result(CQL_parser cp); - - cql_parser_result returns the - a pointer to the root node of the resulting tree. - - - Each node in a CQL tree is represented by a - struct cql_node. - It is defined as follows: - -#define CQL_NODE_ST 1 -#define CQL_NODE_BOOL 2 -struct cql_node { - int which; - union { - struct { - char *index; - char *index_uri; - char *term; - char *relation; - char *relation_uri; - struct cql_node *modifiers; - } st; - struct { - char *value; - struct cql_node *left; - struct cql_node *right; - struct cql_node *modifiers; - } boolean; - } u; -}; - - There are two node types: search term (ST) and boolean (BOOL). - A modifier is treated as a search term too. - - - The search term node has five members: - - - - index: index for search term. - If an index is unspecified for a search term, - index will be NULL. - - - - - index_uri: index URi for search term - or NULL if none could be resolved for the index. - - - - - term: the search term itself. - - - - - relation: relation for search term. - - - - - relation_uri: relation URI for search term. - - - - - modifiers: relation modifiers for search - term. The modifiers list itself of cql_nodes - each of type ST. - - - - - - - The boolean node represents both and, - or, not as well as - proximity. - - - - left and right: left - - and right operand respectively. - - - - - modifiers: proximity arguments. - - - - - - - CQL to PQF conversion - - Conversion to PQF (and Z39.50 RPN) is tricky by the fact - that the resulting RPN depends on the Z39.50 target - capabilities (combinations of supported attributes). - In addition, the CQL and SRU operates on index prefixes - (URI or strings), whereas the RPN uses Object Identifiers - for attribute sets. - - - The CQL library of &yaz; defines a cql_transform_t - type. It represents a particular mapping between CQL and RPN. - This handle is created and destroyed by the functions: - -cql_transform_t cql_transform_open_FILE (FILE *f); -cql_transform_t cql_transform_open_fname(const char *fname); -void cql_transform_close(cql_transform_t ct); - - The first two functions create a tranformation handle from - either an already open FILE or from a filename respectively. - - - The handle is destroyed by cql_transform_close - in which case no further reference of the handle is allowed. - - - When a cql_transform_t handle has been created - you can convert to RPN. - -int cql_transform_buf(cql_transform_t ct, - struct cql_node *cn, char *out, int max); - - This function converts the CQL tree cn - using handle ct. - For the resulting PQF, you supply a buffer out - which must be able to hold at at least max - characters. - - - If conversion failed, cql_transform_buf - returns a non-zero SRU error code; otherwise zero is returned - (conversion successful). The meanings of the numeric error - codes are listed in the SRU specifications at - - - - If conversion fails, more information can be obtained by calling - -int cql_transform_error(cql_transform_t ct, char **addinfop); - - This function returns the most recently returned numeric - error-code and sets the string-pointer at - *addinfop to point to a string containing - additional information about the error that occurred: for - example, if the error code is 15 (``Illegal or unsupported context - set''), the additional information is the name of the requested - context set that was not recognised. - - - The SRU error-codes may be translated into brief human-readable - error messages using - -const char *cql_strerror(int code); - - - - If you wish to be able to produce a PQF result in a different - way, there are two alternatives. - -void cql_transform_pr(cql_transform_t ct, - struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data); - -int cql_transform_FILE(cql_transform_t ct, - struct cql_node *cn, FILE *f); - - The former function produces output to a user-defined - output stream. The latter writes the result to an already - open FILE. - - - - Specification of CQL to RPN mappings - - The file supplied to functions - cql_transform_open_FILE, - cql_transform_open_fname follows - a structure found in many Unix utilities. - It consists of mapping specifications - one per line. - Lines starting with # are ignored (comments). - - - Each line is of the form - - CQL pattern = RPN equivalent - - - - An RPN pattern is a simple attribute list. Each attribute pair - takes the form: - - [set] type=value - - The attribute set is optional. - The type is the attribute type, - value the attribute value. - - - The character * (asterisk) has special meaning - when used in the RPN pattern. - Each occurrence of * is substituted with the - CQL matching name (index, relation, qualifier etc). - This facility can be used to copy a CQL name verbatim to the RPN result. - - - The following CQL patterns are recognized: - - - index.set.name - - - - This pattern is invoked when a CQL index, such as - dc.title is converted. set - and name are the context set and index - name respectively. - Typically, the RPN specifies an equivalent use attribute. - - - For terms not bound by an index the pattern - index.cql.serverChoice is used. - Here, the prefix cql is defined as - http://www.loc.gov/zing/cql/cql-indexes/v1.0/. - If this pattern is not defined, the mapping will fail. - - - The pattern, - index.set.* - is used when no other index pattern is matched. - - - - - qualifier.set.name - (DEPRECATED) - - - - For backwards compatibility, this is recognised as a synonym of - index.set.name - - - - - relation.relation - - - - This pattern specifies how a CQL relation is mapped to RPN. - pattern is name of relation - operator. Since = is used as - separator between CQL pattern and RPN, CQL relations - including = cannot be - used directly. To avoid a conflict, the names - ge, - eq, - le, - must be used for CQL operators, greater-than-or-equal, - equal, less-than-or-equal respectively. - The RPN pattern is supposed to include a relation attribute. - - - For terms not bound by a relation, the pattern - relation.scr is used. If the pattern - is not defined, the mapping will fail. - - - The special pattern, relation.* is used - when no other relation pattern is matched. - - - - - - relationModifier.mod - - - - This pattern specifies how a CQL relation modifier is mapped to RPN. - The RPN pattern is usually a relation attribute. - - - - - - structure.type - - - - This pattern specifies how a CQL structure is mapped to RPN. - Note that this CQL pattern is somewhat to similar to - CQL pattern relation. - The type is a CQL relation. - - - The pattern, structure.* is used - when no other structure pattern is matched. - Usually, the RPN equivalent specifies a structure attribute. - - - - - - position.type - - - - This pattern specifies how the anchor (position) of - CQL is mapped to RPN. - The type is one - of first, any, - last, firstAndLast. - - - The pattern, position.* is used - when no other position pattern is matched. - - - - - - set.prefix - - - - This specification defines a CQL context set for a given prefix. - The value on the right hand side is the URI for the set - - not RPN. All prefixes used in - index patterns must be defined this way. - - - - - - set - - - - This specification defines a default CQL context set for index names. - The value on the right hand side is the URI for the set. - - - - - - - - CQL to RPN mapping file - - This simple file defines two context sets, three indexes and three - relations, a position pattern and a default structure. - - - - - With the mappings above, the CQL query - - computer - - is converted to the PQF: - - @attr 1=1016 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 "computer" - - by rules index.cql.serverChoice, - relation.scr, structure.*, - position.any. - - - CQL query - - computer^ - - is rejected, since position.right is - undefined. - - - CQL query - - >my = "http://www.loc.gov/zing/cql/dc-indexes/v1.0/" my.title = x - - is converted to - - @attr 1=4 @attr 2=3 @attr 4=1 @attr 3=3 @attr 6=1 "x" - - - - - CQL to RPN string attributes - - In this example we allow any index to be passed to RPN as - a use attribute. - - - - - The http://bogus/rpn context set is also the default - so we can make queries such as - - title = a - - which is converted to - - @attr 2=3 @attr 4=1 @attr 3=3 @attr 1=title "a" - - - - - CQL to RPN using Bath Profile - - The file etc/pqf.properties has mappings from - the Bath Profile and Dublin Core to RPN. - If YAZ is installed as a package it's usually located - in /usr/share/yaz/etc and part of the - development package, such as libyaz-dev. - - - - CQL to XCQL conversion - - Conversion from CQL to XCQL is trivial and does not - require a mapping to be defined. - There three functions to choose from depending on the - way you wish to store the resulting output (XML buffer - containing XCQL). - -int cql_to_xml_buf(struct cql_node *cn, char *out, int max); -void cql_to_xml(struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data); -void cql_to_xml_stdio(struct cql_node *cn, FILE *f); - - Function cql_to_xml_buf converts - to XCQL and stores result in a user supplied buffer of a given - max size. - - - cql_to_xml writes the result in - a user defined output stream. - cql_to_xml_stdio writes to a - a file. - - - -
    - Object Identifiers - - - The basic YAZ representation of an OID is an array of integers, - terminated with the value -1. This integer is of type - Odr_oid. - - - Fundamental OID operations and the type Odr_oid - are defined in yaz/oid_util.h. - - - An OID can either be declared as a automatic variable or it can - allocated using the memory utilities or ODR/NMEM. It's - guaranteed that an OID can fit in OID_SIZE integers. - - Create OID on stack - - We can create an OID for the Bib-1 attribute set with: - - Odr_oid bib1[OID_SIZE]; - bib1[0] = 1; - bib1[1] = 2; - bib1[2] = 840; - bib1[3] = 10003; - bib1[4] = 3; - bib1[5] = 1; - bib1[6] = -1; - - - - - And OID may also be filled from a string-based representation using - dots (.). This is achieved by function - - int oid_dotstring_to_oid(const char *name, Odr_oid *oid); - - This functions returns 0 if name could be converted; -1 otherwise. - - Using oid_oiddotstring_to_oid - - We can fill the Bib-1 attribute set OID easier with: - - Odr_oid bib1[OID_SIZE]; - oid_oiddotstring_to_oid("1.2.840.10003.3.1", bib1); - - - - - We can also allocate an OID dynamically on a ODR stream with: - - Odr_oid *odr_getoidbystr(ODR o, const char *str); - - This creates an OID from string-based representation using dots. - This function take an &odr; stream as parameter. This stream is used to - allocate memory for the data elements, which is released on a - subsequent call to odr_reset() on that stream. - - - Using odr_getoidbystr - - We can create a OID for the Bib-1 attribute set with: - - Odr_oid *bib1 = odr_getoidbystr(odr, "1.2.840.10003.3.1"); - - - - - - The function - - char *oid_oid_to_dotstring(const Odr_oid *oid, char *oidbuf) - - does the reverse of oid_oiddotstring_to_oid. It - converts an OID to the string-based representation using dots. - The supplied char buffer oidbuf holds the resulting - string and must be at least OID_STR_MAX in size. - - - - OIDs can be copied with oid_oidcpy which takes - two OID lists as arguments. Alternativly, an OID copy can be allocated - on a ODR stream with: - - Odr_oid *odr_oiddup(ODR odr, const Odr_oid *o); - - - - - OIDs can be compared with oid_oidcmp which returns - zero if the two OIDs provided are identical; non-zero otherwise. - - - OID database - - From YAZ version 3 and later, the oident system has been replaced - by an OID database. OID database is a misnomer .. the old odient - system was also a database. - - - The OID database is really just a map between named Object Identifiers - (string) and their OID raw equivalents. Most operations either - convert from string to OID or other way around. - - - Unfortunately, whenever we supply a string we must also specify the - OID class. The class is necessary because some - strings correspond to multiple OIDs. An example of such a string is - Bib-1 which may either be an attribute-set - or a diagnostic-set. - - - Applications using the YAZ database should include - yaz/oid_db.h. - - - A YAZ database handle is of type yaz_oid_db_t. - Actually that's a pointer. You need not think deal with that. - YAZ has a built-in database which can be considered "constant" for - most purposes. - We can get hold that by using function yaz_oid_std. - - - All functions with prefix yaz_string_to_oid - converts from class + string to OID. We have variants of this - operation due to different memory allocation strategies. - - - All functions with prefix - yaz_oid_to_string converts from OID to string - + class. - - - Create OID with YAZ DB - - We can create an OID for the Bib-1 attribute set on the ODR stream - odr with: - - Odr_oid *bib1 = - yaz_string_to_oid_odr(yaz_oid_std(), CLASS_ATTSET, "Bib-1", odr); - - This is more complex than using odr_getoidbystr. - You would only use yaz_string_to_oid_odr when the - string (here Bib-1) is supplied by a user or configuration. - - - - - Standard OIDs - - - All the object identifers in the standard OID database as returned - by yaz_oid_std can referenced directly in a - program as a constant OID. - Each constant OID is prefixed with yaz_oid_ - - followed by OID class (lowercase) - then by OID name (normalized and - lowercase). - - - See for list of all object identifiers - built into YAZ. - These are declared in yaz/oid_std.h but are - included by yaz/oid_db.h as well. - - - Use a built-in OID - - We can allocate our own OID filled with the constant OID for - Bib-1 with: - - Odr_oid *bib1 = odr_oiddup(o, yaz_oid_attset_bib1); - - - - - - OID oident - - - - The oident utility has been removed from YAZ version 3. This - sub section only applies to YAZ version 2. - - - - - The OID module provides a higher-level representation of the - family of object identifiers which describe the Z39.50 protocol and its - related objects. The definition of the module interface is given in - the oid.h file. - - - - The interface is mainly based on the oident structure. - The definition of this structure looks like this: - - - -typedef struct oident -{ - oid_proto proto; - oid_class oclass; - oid_value value; - int oidsuffix[OID_SIZE]; - char *desc; -} oident; - - - - The proto field takes one of the values - - - - PROTO_Z3950 - PROTO_GENERAL - - - - Use PROTO_Z3950 for Z39.50 Object Identifers, - PROTO_GENERAL for other types (such as - those associated with ILL). - - - - The oclass field takes one of the values - - - - CLASS_APPCTX - CLASS_ABSYN - CLASS_ATTSET - CLASS_TRANSYN - CLASS_DIAGSET - CLASS_RECSYN - CLASS_RESFORM - CLASS_ACCFORM - CLASS_EXTSERV - CLASS_USERINFO - CLASS_ELEMSPEC - CLASS_VARSET - CLASS_SCHEMA - CLASS_TAGSET - CLASS_GENERAL - - - - corresponding to the OID classes defined by the Z39.50 standard. - - Finally, the value field takes one of the values - - - - VAL_APDU - VAL_BER - VAL_BASIC_CTX - VAL_BIB1 - VAL_EXP1 - VAL_EXT1 - VAL_CCL1 - VAL_GILS - VAL_WAIS - VAL_STAS - VAL_DIAG1 - VAL_ISO2709 - VAL_UNIMARC - VAL_INTERMARC - VAL_CCF - VAL_USMARC - VAL_UKMARC - VAL_NORMARC - VAL_LIBRISMARC - VAL_DANMARC - VAL_FINMARC - VAL_MAB - VAL_CANMARC - VAL_SBN - VAL_PICAMARC - VAL_AUSMARC - VAL_IBERMARC - VAL_EXPLAIN - VAL_SUTRS - VAL_OPAC - VAL_SUMMARY - VAL_GRS0 - VAL_GRS1 - VAL_EXTENDED - VAL_RESOURCE1 - VAL_RESOURCE2 - VAL_PROMPT1 - VAL_DES1 - VAL_KRB1 - VAL_PRESSET - VAL_PQUERY - VAL_PCQUERY - VAL_ITEMORDER - VAL_DBUPDATE - VAL_EXPORTSPEC - VAL_EXPORTINV - VAL_NONE - VAL_SETM - VAL_SETG - VAL_VAR1 - VAL_ESPEC1 - - - - again, corresponding to the specific OIDs defined by the standard. - Refer to the - - Registry of Z39.50 Object Identifiers for the - whole list. - - - - The desc field contains a brief, mnemonic name for the OID in question. - - - - The function - - - - struct oident *oid_getentbyoid(int *o); - - - - takes as argument an OID, and returns a pointer to a static area - containing an oident structure. You typically use - this function when you receive a PDU containing an OID, and you wish - to branch out depending on the specific OID value. - - - - The function - - - - int *oid_ent_to_oid(struct oident *ent, int *dst); - - - - Takes as argument an oident structure - in which - the proto, oclass/, and - value fields are assumed to be set correctly - - and returns a pointer to a the buffer as given by dst - containing the base - representation of the corresponding OID. The function returns - NULL and the array dst is unchanged if a mapping couldn't place. - The array dst should be at least of size - OID_SIZE. - - - - The oid_ent_to_oid() function can be used whenever - you need to prepare a PDU containing one or more OIDs. The separation of - the protocol element from the remainder of the - OID-description makes it simple to write applications that can - communicate with either Z39.50 or OSI SR-based applications. - - - - The function - - - - oid_value oid_getvalbyname(const char *name); - - - - takes as argument a mnemonic OID name, and returns the - /value field of the first entry in the database that - contains the given name in its desc field. - - - - Three utility functions are provided for translating OIDs' - symbolic names (e.g. Usmarc into OID structures - (int arrays) and strings containing the OID in dotted notation - (e.g. 1.2.840.10003.9.5.1). They are: - - - - int *oid_name_to_oid(oid_class oclass, const char *name, int *oid); - char *oid_to_dotstring(const int *oid, char *oidbuf); - char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oidbuf); - - - - oid_name_to_oid() - translates the specified symbolic name, - interpreted as being of class oclass. (The - class must be specified as many symbolic names exist within - multiple classes - for example, Zthes is the - symbolic name of an attribute set, a schema and a tag-set.) The - sequence of integers representing the OID is written into the - area oid provided by the caller; it is the - caller's responsibility to ensure that this area is large enough - to contain the translated OID. As a convenience, the address of - the buffer (i.e. the value of oid) is - returned. - - - oid_to_dotstring() - Translates the int-array oid into a dotted - string which is written into the area oidbuf - supplied by the caller; it is the caller's responsibility to - ensure that this area is large enough. The address of the buffer - is returned. - - - oid_name_to_dotstring() - combines the previous two functions to derive a dotted string - representing the OID specified by oclass and - name, writing it into the buffer passed as - oidbuf and returning its address. - - - - - The OID module has been criticized - and perhaps rightly so - - for needlessly abstracting the - representation of OIDs. Other toolkits use a simple - string-representation of OIDs with good results. In practice, we have - found the interface comfortable and quick to work with, and it is a - simple matter (for what it's worth) to create applications compatible - with both ISO SR and Z39.50. Finally, the use of the - /oident database is by no means mandatory. - You can easily create your own system for representing OIDs, as long - as it is compatible with the low-level integer-array representation - of the ODR module. - - - - - - Nibble Memory - - - Sometimes when you need to allocate and construct a large, - interconnected complex of structures, it can be a bit of a pain to - release the associated memory again. For the structures describing the - Z39.50 PDUs and related structures, it is convenient to use the - memory-management system of the &odr; subsystem (see - ). However, in some circumstances - where you might otherwise benefit from using a simple nibble memory - management system, it may be impractical to use - odr_malloc() and odr_reset(). - For this purpose, the memory manager which also supports the &odr; - streams is made available in the NMEM module. The external interface - to this module is given in the nmem.h file. - - - - The following prototypes are given: - - - - NMEM nmem_create(void); - void nmem_destroy(NMEM n); - void *nmem_malloc(NMEM n, int size); - void nmem_reset(NMEM n); - int nmem_total(NMEM n); - void nmem_init(void); - void nmem_exit(void); - - - - The nmem_create() function returns a pointer to a - memory control handle, which can be released again by - nmem_destroy() when no longer needed. - The function nmem_malloc() allocates a block of - memory of the requested size. A call to nmem_reset() - or nmem_destroy() will release all memory allocated - on the handle since it was created (or since the last call to - nmem_reset(). The function - nmem_total() returns the number of bytes currently - allocated on the handle. - - - - The nibble memory pool is shared amongst threads. POSIX - mutex'es and WIN32 Critical sections are introduced to keep the - module thread safe. Function nmem_init() - initializes the nibble memory library and it is called automatically - the first time the YAZ.DLL is loaded. &yaz; uses - function DllMain to achieve this. You should - not call nmem_init or - nmem_exit unless you're absolute sure what - you're doing. Note that in previous &yaz; versions you'd have to call - nmem_init yourself. - - - - - Log - - &yaz; has evolved a fairly complex log system which should be useful both - for debugging &yaz; itself, debugging applications that use &yaz;, and for - production use of those applications. - - - The log functions are declared in header yaz/log.h - and implemented in src/log.c. - Due to name clash with syslog and some math utilities the logging - interface has been modified as of YAZ 2.0.29. The obsolete interface - is still available if in header file yaz/log.h. - The key points of the interface are: - - - void yaz_log(int level, const char *fmt, ...) - - void yaz_log_init(int level, const char *prefix, const char *name); - void yaz_log_init_file(const char *fname); - void yaz_log_init_level(int level); - void yaz_log_init_prefix(const char *prefix); - void yaz_log_time_format(const char *fmt); - void yaz_log_init_max_size(int mx); - - int yaz_log_mask_str(const char *str); - int yaz_log_module_level(const char *name); - - - - The reason for the whole log module is the yaz_log - function. It takes a bitmask indicating the log levels, a - printf-like format string, and a variable number of - arguments to log. - - - - The log level is a bit mask, that says on which level(s) - the log entry should be made, and optionally set some behaviour of the - logging. In the most simple cases, it can be one of YLOG_FATAL, - YLOG_DEBUG, YLOG_WARN, YLOG_LOG. Those can be combined with bits - that modify the way the log entry is written:YLOG_ERRNO, - YLOG_NOTIME, YLOG_FLUSH. - Most of the rest of the bits are deprecated, and should not be used. Use - the dynamic log levels instead. - - - - Applications that use &yaz;, should not use the LOG_LOG for ordinary - messages, but should make use of the dynamic loglevel system. This consists - of two parts, defining the loglevel and checking it. - - - - To define the log levels, the (main) program should pass a string to - yaz_log_mask_str to define which log levels are to be - logged. This string should be a comma-separated list of log level names, - and can contain both hard-coded names and dynamic ones. The log level - calculation starts with YLOG_DEFAULT_LEVEL and adds a bit - for each word it meets, unless the word starts with a '-', in which case it - clears the bit. If the string 'none' is found, - all bits are cleared. Typically this string comes from the command-line, - often identified by -v. The - yaz_log_mask_str returns a log level that should be - passed to yaz_log_init_level for it to take effect. - - - - Each module should check what log bits it should be used, by calling - yaz_log_module_level with a suitable name for the - module. The name is cleared from a preceding path and an extension, if any, - so it is quite possible to use __FILE__ for it. If the - name has been passed to yaz_log_mask_str, the routine - returns a non-zero bitmask, which should then be used in consequent calls - to yaz_log. (It can also be tested, so as to avoid unnecessary calls to - yaz_log, in time-critical places, or when the log entry would take time - to construct.) - - - - Yaz uses the following dynamic log levels: - server, session, request, requestdetail for the server - functionality. - zoom for the zoom client api. - ztest for the simple test server. - malloc, nmem, odr, eventl for internal debugging of yaz itself. - Of course, any program using yaz is welcome to define as many new ones, as - it needs. - - - - By default the log is written to stderr, but this can be changed by a call - to yaz_log_init_file or - yaz_log_init. If the log is directed to a file, the - file size is checked at every write, and if it exceeds the limit given in - yaz_log_init_max_size, the log is rotated. The - rotation keeps one old version (with a .1 appended to - the name). The size defaults to 1GB. Setting it to zero will disable the - rotation feature. - - - - A typical yaz-log looks like this - 13:23:14-23/11 yaz-ztest(1) [session] Starting session from tcp:127.0.0.1 (pid=30968) - 13:23:14-23/11 yaz-ztest(1) [request] Init from 'YAZ' (81) (ver 2.0.28) OK - 13:23:17-23/11 yaz-ztest(1) [request] Search Z: @attrset Bib-1 foo OK:7 hits - 13:23:22-23/11 yaz-ztest(1) [request] Present: [1] 2+2 OK 2 records returned - 13:24:13-23/11 yaz-ztest(1) [request] Close OK - - - - The log entries start with a time stamp. This can be omitted by setting the - YLOG_NOTIME bit in the loglevel. This way automatic tests - can be hoped to produce identical log files, that are easy to diff. The - format of the time stamp can be set with - yaz_log_time_format, which takes a format string just - like strftime. - - - - Next in a log line comes the prefix, often the name of the program. For - yaz-based servers, it can also contain the session number. Then - comes one or more logbits in square brackets, depending on the logging - level set by yaz_log_init_level and the loglevel - passed to yaz_log_init_level. Finally comes the format - string and additional values passed to yaz_log - - - - The log level YLOG_LOGLVL, enabled by the string - loglevel, will log all the log-level affecting - operations. This can come in handy if you need to know what other log - levels would be useful. Grep the logfile for [loglevel]. - - - - The log system is almost independent of the rest of &yaz;, the only - important dependence is of nmem, and that only for - using the semaphore definition there. - - - - The dynamic log levels and log rotation were introduced in &yaz; 2.0.28. At - the same time, the log bit names were changed from - LOG_something to YLOG_something, - to avoid collision with syslog.h. - - - - - MARC - - - YAZ provides a fast utility that decodes MARC records and - encodes to a varity of output formats. The MARC records must - be encoded in ISO2709. - - - - /* create handler */ - yaz_marc_t yaz_marc_create(void); - /* destroy */ - void yaz_marc_destroy(yaz_marc_t mt); - - /* set XML mode YAZ_MARC_LINE, YAZ_MARC_SIMPLEXML, ... */ - void yaz_marc_xml(yaz_marc_t mt, int xmlmode); - #define YAZ_MARC_LINE 0 - #define YAZ_MARC_SIMPLEXML 1 - #define YAZ_MARC_OAIMARC 2 - #define YAZ_MARC_MARCXML 3 - #define YAZ_MARC_ISO2709 4 - #define YAZ_MARC_XCHANGE 5 - - /* supply iconv handle for character set conversion .. */ - void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd); - - /* set debug level, 0=none, 1=more, 2=even more, .. */ - void yaz_marc_debug(yaz_marc_t mt, int level); - - /* decode MARC in buf of size bsize. Returns >0 on success; <=0 on failure. - On success, result in *result with size *rsize. */ - int yaz_marc_decode_buf (yaz_marc_t mt, const char *buf, int bsize, - char **result, int *rsize); - - /* decode MARC in buf of size bsize. Returns >0 on success; <=0 on failure. - On success, result in WRBUF */ - int yaz_marc_decode_wrbuf (yaz_marc_t mt, const char *buf, - int bsize, WRBUF wrbuf); -]]> - - - A MARC conversion handle must be created by using - yaz_marc_create and destroyed - by calling yaz_marc_destroy. - - - All other function operate on a yaz_marc_t handle. - The output is specified by a call to yaz_marc_xml. - The xmlmode must be one of - - - YAZ_MARC_LINE - - - A simple line-by-line format suitable for display but not - recommend for further (machine) processing. - - - - - - YAZ_MARC_MARCXML - - - The resulting record is converted to MARCXML. - - - - - - YAZ_MARC_ISO2709 - - - The resulting record is converted to ISO2709 (MARC). - - - - - - - The actual conversion functions are - yaz_marc_decode_buf and - yaz_marc_decode_wrbuf which decodes and encodes - a MARC record. The former function operates on simple buffers, the - stores the resulting record in a WRBUF handle (WRBUF is a simple string - type). - - - Display of MARC record - - The followint program snippet illustrates how the MARC API may - be used to convert a MARC record to the line-by-line format: - - - - - - - - Retrieval Facility - - YAZ version 2.1.20 or later includes a Retrieval facility tool - which allows a SRU/Z39.50 to describe itself and perform record - conversions. The idea is the following: - - - - - An SRU/Z39.50 client sends a retrieval request which includes - a combination of the following parameters: syntax (format), - schema (or element set name). - - - - - - The retrieval facility is invoked with parameters in a - server/proxy. The retrieval facility matches the parameters a set of - "supported" retrieval types. - If there is no match, the retrieval signals an error - (syntax and / or schema not supported). - - - - - - For a successful match, the backend is invoked with the same - or altered retrieval parameters (syntax, schema). If - a record is received from the backend, it is converted to the - frontend name / syntax. - - - - - - The resulting record is sent back the client and tagged with - the frontend syntax / schema. - - - - - - - The Retrieval facility is driven by an XML configuration. The - configuration is neither Z39.50 ZeeRex or SRU ZeeRex. But it - should be easy to generate both of them from the XML configuration. - (unfortunately the two versions - of ZeeRex differ substantially in this regard). - - - Retrieval XML format - - All elements should be covered by namespace - http://indexdata.com/yaz . - The root element node must be retrievalinfo. - - - The retrievalinfo must include one or - more retrieval elements. Each - retrieval defines specific combination of - syntax, name and identifier supported by this retrieval service. - - - The retrieval element may include any of the - following attributes: - - syntax (REQUIRED) - - - Defines the record syntax. Possible values is any - of the names defined in YAZ' OID database or a raw - OID in (n.n ... n). - - - - name (OPTIONAL) - - - Defines the name of the retrieval format. This can be - any string. For SRU, the value, is equivalent to schema (short-hand); - for Z39.50 it's equivalent to simple element set name. - - - - identifier (OPTIONAL) - - - Defines the URI schema name of the retrieval format. This can be - any string. For SRU, the value, is equivalent to URI schema. - For Z39.50, there is no equivalent. - - - - - - - The retrieval may include one - backend element. If a backend - element is given, it specifies how the records are retrieved by - some backend and how the records are converted from the backend to - the "frontend". - - - The attributes, name and syntax - may be specified for the backend element. These - semantics of these attributes is equivalent to those for the - retrieval. However, these values are passed to - the "backend". - - - The backend element may includes one or more - conversion instructions (as children elements). The supported - conversions are: - - marc - - - The marc element specifies a conversion - to - and from ISO2709 encoded MARC and - &acro.marcxml;/MarcXchange. - The following attributes may be specified: - - - inputformat (REQUIRED) - - - Format of input. Supported values are - marc (for ISO2709); and xml - for MARCXML/MarcXchange. - - - - - outputformat (REQUIRED) - - - Format of output. Supported values are - line (MARC line format); - marcxml (for MARCXML), - marc (ISO2709), - marcxhcange (for MarcXchange). - - - - - inputcharset (OPTIONAL) - - - Encoding of input. For XML input formats, this need not - be given, but for ISO2709 based inputformats, this should - be set to the encoding used. For MARC21 records, a common - inputcharset value would be marc-8. - - - - - outputcharset (OPTIONAL) - - - Encoding of output. If outputformat is XML based, it is - strongly recommened to use utf-8. - - - - - - - - - xslt - - - The xslt element specifies a conversion - via &acro.xslt;. The following attributes may be specified: - - - stylesheet (REQUIRED) - - - Stylesheet file. - - - - - - - - - - - - - Retrieval Facility Examples - - MARC21 backend - - A typical way to use the retrieval facility is to enable XML - for servers that only supports ISO2709 encoded MARC21 records. - - - - - - - - - - - - - - - - -]]> - - - This means that our frontend supports: - - - - MARC21 F(ull) records. - - - - - MARC21 B(rief) records. - - - - - - MARCXML records. - - - - - - Dublin core records. - - - - - - - - API - - It should be easy to use the retrieval systems from applications. Refer - to the headers - yaz/retrieval.h and - yaz/record_conv.h. - - - -
    - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-asncomp-man.xml b/dependencies/yaz_3.0.14/doc/yaz-asncomp-man.xml deleted file mode 100644 index 77fed0c..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-asncomp-man.xml +++ /dev/null @@ -1,266 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - YAZ - &version; - - - - yaz-asncomp - 1 - - - - yaz-asncomp - YAZ ASN.1 compiler - - - - - yaz-asncomp - - - - - - - - - filename - - - - DESCRIPTION - - yaz-asncomp is an ASN.1 compiler that - reads an ASN.1 specification in filename - and produces C/C++ definitions and BER encoders/decoders for it. - - - The produced C/C++ code and header files uses the ODR module of YAZ - which is a library that encodes/decodes/prints BER packages. - yaz-asncomp allows you to specify name of - resulting source via options. Alternatively, you can specify - a DEFINISIONS file, which provides customized output to - many output files - if the ASN.1 specification file consists - of many modules. - - - This utility is written in Tcl. Any version of Tcl should work. - - - - OPTIONS - - -v - - - - Makes the ASN.1 compiler print more verbose about the - various stages of operations. - - - - - -c - cfile - - Specifies the name of the C/C++ file with encoders/decoders. - - - - -h - hfile - - Specifies the name of header file with definitions. - - - - -p - pfile - - Specifies the name of the a private header file with - definitions. By default all definitions are put - in header file (option -h). - - - - -d - dfile - - Specifies the name of a definitions file. - - - - -I - iout - - Specifies first part of directory in which header files - are written. - - - - -i - idir - - Specifies second part of directory in which header files - are written. - - - - -m - module - - Specifies that ASN.1 compiler should only process the - module given. If this option is not specified, - all modules in the ASN.1 file are processed. - - - - - - DEFINITIONS FILE - - The definitions file is really a Tcl script but follows - traditional rules for Shell like configuration files. - That is # denotes the beginning of a comment. Definitions - are line oriented. The definitions files usually consists of - a series of variable assignments of the form: - - - set name value - - - Available variables are: - - - default-prefix - - Sets prefix for names in the produced output. - The value consists of three tokens: C function prefix, - C typedef prefix and preprocessor prefix respectively. - - - - prefix(module) - - This value sets prefix values for module - module. - The value has same form as default-prefix. - - - - filename(module) - - Specifies filename for C/header file for module - module. - - - - init(module,h) - - Code fragment to be put in first part of public header for module - module. - - - - body(module,h) - - Code fragment to be put in last part of public header for module - module (trailer). - - - - init(module,c) - - Code fragment to be put in first part of C based encoder/decoder for - module module. - - - - body(module,c) - - Code fragment to be put in last part of C based encoder/decoder for - module module (trailer). - - - - map(module,name) - - Maps ASN.1 type in module module - of name to value. - - - - membermap(module,name,member) - - Maps member member in SEQUENCE/CHOICE of - name in module - module to value. - The value consists of one or two tokens. - First token is name of C preprocessor part. Second token - is resulting C member name. If second token is omitted - the value (one token) is both preprocessor part and - C struct,union. - - - - unionmap(module,name,member) - - Maps member member in CHOICE of - name in module - module to value. - Value consists of to or three tokens. The first token - is name of the integer in the union that - is used as selector for the union itself. - The second token is name of the union. - The third token overrides the name of the CHOICE member; - if omitted the member name is used. - - - - - - FILES - - /usr/share/yaz/z39.50/z.tcl - - - /usr/share/yaz/z39.50/*.asn - - - SEE ALSO - - - yaz - 7 - - - Section "The ODR Module" in the YAZ manual. - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-client-commands.xml b/dependencies/yaz_3.0.14/doc/yaz-client-commands.xml deleted file mode 100644 index bb3d409..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-client-commands.xml +++ /dev/null @@ -1,762 +0,0 @@ - - - - open zurl - - - Opens a connection to a server. The syntax for - zurl is the same as described - above for connecting from the command line. - - - Syntax: - - - [(tcp|ssl|unix|http)':']host - [:port][/base] - - - - - quit - - - Quits YAZ client - - - - find query - - Sends a Search Request using the query - given. By default the query is assumed to be PQF. See command - querytype. - - - - - delete setname - - Deletes result set with name setname - on the server. - - - - base base1 - base2 ... - - - Sets the name(s) of the database(s) to search. One or more - databases may be specified separated by blanks. This commands overrides - the database given in zurl. - - - - - show - [start[+number]] - - - Fetches records by sending a Present Request from the start - position given by - start - a number of records given by number. If - start is not given, then the client - will fetch from position of the last retrieved record plus 1. If - number is not given, then one record will - be fetched at a time. - - - - - scan term - - - Scans - database index for a term. The syntax resembles the syntax - for find. - If you want to scan for the word water you could - write - - - scan water - - - but if you want to scan only in, say the title field, you would write - - - scan @attr 1=4 water - - - - - setscan set term - - - Scans database index for a term within a result set. This - is similar to the scan command but has a result set as its first argument. - - - - - scanpos pos - - - - Sets preferred position for scan. This value - is used in next scan. By default position is 1. - - - - - scansize size - - - - Sets number of entries to be returned by scan. Default - number of entries is 20. - - - - - scanstep step - - - - Set step-size for scan. This value is used in next scan - sent to the target. By default step-size is 0. - - - - - sort sortspecs - - - Sorts a result set. The sort command takes a - sequence of space-separated sort specifications, with each sort - specification consisting of two space-separated words (so that the - whole specification list is made up of an even number of words). - The first word of each specification - holds a field (sort criterion) and the second holds flags. - If the sort criterion includes = it is assumed - that the SortKey is of type - sortAttributes using Bib-1: in this case - the integer before = is - the attribute type and the integer following = - is the attribute value. - If no = is in the criterion it is treated as a - sortfield of type InternationalString. - The flags word of each sort specification must consist of - s - for case sensitive or i for case insensitive, and - < for ascending order or > - for descending order. - - - - - sort+ - - - Same as sort but stores the sorted - result set in a new result set. - - - - - authentication openauth - - - Sets up a authentication string if a server requires - authentication (v2 OpenStyle). The authentication string is first - sent to the server when the - open command is - issued and the Z39.50 Initialize Request is sent, so this command - must be used before open in order to be effective. - A common convention for the authopen string - is that the username - and password is separated by a slash, e.g. - myusername/mysecret. - - - - - - sru method version - - - Selects SRU method and version. - Must be one of POST, - GET, SOAP (default). Version - should be either 1.1 or 1.2. Other versions are allowed - for testing - purposes (version negotiation with SRU server). - - - - - - list_all - - - This command displays status and values for many settings. - - - - - - lslb n - - - Sets the limit for when no records should be returned - together with the search result. - See the - - Z39.50 standard - - for more details. - - - - - - ssub n - - - Sets the limit for when all records should be returned with - the search result. - See the - - Z39.50 standard - for more details. - - - - - - mspn n - - - Sets the number of records should be returned if the - number of records in the result set is between the values of - lslb and ssub. - See the - - Z39.50 standard - - for more details. - - - - - status - - - Displays the values of lslb, - ssub and mspn. - - - - - setname - - - Switches named result sets on and off. Default is on. - - - - - cancel - - - Sends a Trigger Resource Control Request to the target. - - - - - format oid - - - Sets the preferred transfer syntax for retrieved records. - yaz-client supports all the record syntaxes that currently - are registered. See - - Z39.50 Standard - - for more details. Commonly used records syntaxes include usmarc, - sutrs, grs1 and xml. - - - - - elements e - - - Sets the element set name for the records. Many targets support - element sets are B (for brief) and F (for full). - - - - - close - - - Sends a Z39.50 Close APDU and closes connection with the peer - - - - - querytype type - - - Sets the query type as used by command - find. - The following is supported: - prefix for - Prefix Query Notation (Type-1 Query); - ccl for CCL search (Type-2 Query), - cql for CQL (Type-104 search with CQL OID), - ccl2rpn for - CCL to RPN conversion (Type-1 Query). - cql2rpn for - CQL to RPN conversion (Type-1 Query). - - - - - attributeset set - - - - Sets attribute set OID for prefix queries (RPN, Type-1). - - - - - refid id - - - Sets reference ID for Z39.50 Request(s). - - - - - itemorder - type no - - - Sends an Item Order Request using the ILL External. - type is either 1 or 2 which corresponds to - ILL-Profile 1 and 2 respectively. The no - is the Result Set position of the record to be ordered. - - - - - update - action - recid - doc - - - Sends Item Update Request. The action - argument must be the action type: one of insert, - replace, delete and - update. The second argument, - recid, is the - record identifier (any string). Third argument which is optional is - the record document for the request. If doc is a quoted string - (double quotes) the string content is used verbatim. If doc is not - a quoted string, it is assumed to be a filename which is read, then - sent as the docuemnt content. If doc is omitted, the last received - record (as parf of present response or piggybacked search response) - is used for the update. - - - - - - source - filename - - - Executes list of commands from - file filename, just like source on - most UNIX shells. A single dot (.) can be used - as an alternative. - - - - - - ! - args - - - Executes command args in subshell - using the system call. - - - - - - push_command - command - - - The push_command takes another command as its argument. - That command is then added to the history information (so - you can retrieve it later). The command itself is not - executed. This command only works if you have GNU readline/history - enabled. - - - - - - set_apdufile - filename - - - Sets that APDU should be logged to file - filename. Another way to achieve - APDU log is by using command-line option -a. - - - - - - set_auto_reconnect - flag - - - Specifies whether YAZ client automatically reconnect if - target closes connection (Z39.50 only). - - - flag must be either - on or off. - - - - - - set_auto_wait - flag - - - Specifies whether YAZ client should wait for - response protocol packages after a request. - By default YAZ client waits (on) for response packages immediately - after a command (find, show) has been issued. If off - is used, YAZ client does not attempt to receive packages automatically. - These will have to be manually received when command - - wait_response - is used. - - - flag must be either - on or off. - - - - - - set_marcdump - filename - - - Specifies that all retrieved records should be appended to - file filename. This command does the - thing as option -m. - - - - - - schema - schemaid - - - Specifies schema for retrieval. - Schema may be specified as an OID for Z39.50. - For SRU, schema is a simple string URI. - - - - - - charset - negotiationcharset - [displaycharset] - [[marccharset]] - - - Specifies character set (encoding) for Z39.50 - negotiation / SRU encoding and/or character set for output (terminal). - - - negotiationcharset is the name - of the character set to be negotiated by the server. The special name - - for negotiationcharset - specifies no character set to be negotiated. - - - If displaycharset is given, it specifies name - of the character set of the output (on the terminal on which - YAZ client is running). To disable conversion of characters - to the output encoding, the special name - (dash) - can be used. - If the special name auto is given, YAZ client will - convert strings to the encoding of the - terminal as returned by nl_langinfo call. - - - If marcharset is given, it specifies name - of the character set of retrieved MARC records from server. See - also marcharset command. - - - - Since character set negotation takes effect in the Z39.50 - Initialize Request you should issue this command before - command open - is used. - - - - - MARC records are not covered by Z39.50 character set negotiation, - so that's why there is a separate character that must be known - in order to do meaningful converson(s). - - - - - - - negcharset - charset - - - Specifies character set for negotiation (Z39.50). The - argument is the same as second argument for command - charset. - - - - - - displaycharset - charset - - - Specifies character set for output (display). The - argument is the same as second argument for command - charset. - - - - - - marccharset - charset - - - Specifies character set for retrieved MARC records so - that YAZ client can display them in a character suitable - for your display. See charset command. - If auto is given, YAZ will assume - that MARC21/USMARC is using MARC8/UTF8 and ISO-8859-1 - for all other MARC variants. The charset argument is the - same as third argument for command - charset. - - - - - - querycharset - charset - - - Specifies character set for query terms for Z39.50 RPN - queries and Z39.50 Scan Requests (termListAndStartPoint). - This is a pure client-side conversion which converts from - displayCharset to queryCharset. - - - - - - set_cclfile - filename - - - Specifies that CCL fields should be read from file - file filename. This command does the - thing as option -c. - - - - - - set_cqlfile - filename - - - Specifies that CQL fields should be read from file - file filename. This command does the - thing as option -q. - - - - - - register_oid - name - class - OID - - - This command allows you to register your own object - identifier - so that instead of entering a long dot-notation - you can use a short name instead. - The name is your - name for the OID, class is the - class, and OID is the raw OID in - dot notation. Class is one appctx, - absyn, attet, - transyn, diagset, - recsyn, resform, - accform, extserv, - userinfo, elemspec, - varset, schema, - tagset, general. - If you're in doubt use the general - class. - - - - - - register_tab - command - string - - - This command registers a TAB completion string for - the command given. - - - - - - sleep - seconds - - - This command makes YAZ client sleep (be idle) for - the number of seconds given. - - - - - - wait_response - [ number] - - - This command makes YAZ client wait for a number of - response packages from target. If number is - omitted, 1 is assumed. - - This command is rarely used and is only useful if command - - set_auto_wait - is set to off. - - - - - - xmles - OID - doc - - - Sends XML Extended Services request using the OID and doc given. - - - - - - zversion - ver - - - This command sets Z39.50 version for negotiation. - Should be used before - open. - By default 3 (version 3) is used. - - - - - - options - op1 op2.. - - - This command sets Z39.50 options for negotiation. - Should be used before - open. - - - The following options are supported: - search, - present, - delSet, - resourceReport, - triggerResourceCtrl, - resourceCtrl, - accessCtrl, - scan, - sort, - extendedServices, - level_1Segmentation, - level_2Segmentation, - concurrentOperations, - namedResultSets, - encapsulation, - resultCount, - negotiationModel, - duplicationDetection, - queryType104, - pQESCorrection, - stringSchema. - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-client-man.xml b/dependencies/yaz_3.0.14/doc/yaz-client-man.xml deleted file mode 100644 index d9dc768..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-client-man.xml +++ /dev/null @@ -1,225 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - - YAZ - &version; - - - - yaz-client - 1 - - - - yaz-client - Z39.50/SRU client for implementors - - - - - yaz-client - - - - - - - - - - - - addr - - - - - DESCRIPTION - - yaz-client is a Z39.50/SRU client (origin) with a - simple command line interface that allows you to test behavior and - performance of Z39.50 targets and SRU servers. - - - If the addr is specified, the client creates - a connection to the Z39.50/SRU target at the address given. - - - When yaz-client is started it tries to read - commands from one of the following files: - - - Command file if it is given by option -f. - - - .yazclientrc in current working directory. - - - .yazclientrc in the user's home directory. - The value of the HOME is used to determine - the home directory. Normally, HOME is only set - on POSIX systems such as Linux, FreeBSD, Solaris. - - - - - - OPTIONS - - - -a filename - - If specified, logging of protocol packages will be appended - file given. If filename is - specified as -, the output is written - to stdout. - - - - -b filename - - If specified, YAZ will dump BER data in readable notation - to the file specified. If filename - is specified as - the output is written - to stdout. - - - - -c filename - - If specified, CCL configuration will be read from - the file given. - - - - -d dump - - If specified, YAZ will dump BER data for all PDUs sent and received - to individual files, named - dump.DDD.raw, - where DDD is 001, 002, 003, .. - - - - - -f cmdfile - - Reads commands from cmdfile. When - this option is used, YAZ client does not read .yazclientrc - from current directory or home directory. - - - - - -k size - - Sets preferred messages and maximum record size for Initialize - Request in kilobytes. Default value is 1024 (1 MB). - - - - -m filename - - If specified, retrieved records will be appended to the file given. - - - - -p addr - - If specified, the client will use the proxy at the address - given. - - - - -q filename - - If specified, CQL configuration will be read from - the file given. - - - - -u auth - - If specified, the auth string - will be used for authentication. - - - - -V - - Prints YAZ version. - - - - -x - - Makes the YAZ client print hex dumps of packages sent and received - on standard output. - - - - - - COMMANDS - - The YAZ client accepts the following commands. - - &yaz-client-commands; - - FILES - - yaz-<version>/client/client.c - - - $HOME/.yazclientrc - - - $HOME/.yazclient.history - - - SEE ALSO - - - yaz - 7 - - - - Section "The YAZ Client" in the YAZ manual. - - - Section "Prefix Query Format" in the YAZ manual. - - - Section "Common Command Language" in the YAZ manual. - - - Section "Common Query Language" in the YAZ manual. - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-config-man.xml b/dependencies/yaz_3.0.14/doc/yaz-config-man.xml deleted file mode 100644 index d90dd70..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-config-man.xml +++ /dev/null @@ -1,145 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - - YAZ - &version; - - - - yaz-config - 8 - - - - yaz-config - Script to get information about YAZ. - - - - - yaz-config - - - - - - - libraries - - - - DESCRIPTION - - yaz-config is a script that returns information - that your own software should use to build software that uses YAZ. - - - - The following libraries are supported: - - - - - threads - - Use the threaded version of YAZ. - - - - - - - OPTIONS - - - - --prefix[=DIR] - - Returns prefix of YAZ or assume a different one if DIR is - specified. - - - - - --version - - Returns version of YAZ. - - - - - --libs - - Library specification be used when using YAZ. - - - - - --lalibs - - Return library specification. - - - - - --cflags - - Return C Compiler flags. - - - - - --comp - - Returns full path to YAZ' ASN.1 compiler: yaz-asncomp. - - - - - - - FILES - - &prefix;/bin/yaz-config - - - &prefix;/lib/libyaz*.a - - - &prefix;/include/yaz/*.h - - - SEE ALSO - - yaz(7) - - - Section "How to make apps using YAZ on UNIX" in the YAZ manual. - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-iconv-man.xml b/dependencies/yaz_3.0.14/doc/yaz-iconv-man.xml deleted file mode 100644 index d8cb074..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-iconv-man.xml +++ /dev/null @@ -1,124 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - - YAZ - &version; - - - - yaz-iconv - 1 - - - - yaz-iconv - YAZ Charcter set conversion utility - - - - - yaz-iconv - - - - file - - - - DESCRIPTION - - yaz-iconv converts data in file in character - set specified by from to output in - character set as specified by to. - - - This yaz-iconv utility similar to the - iconv found on many POSIX systems (Glibc, Solaris, etc). - - - If no file is specified, - yaz-iconv reads from standard input. - - - - OPTIONS - - - - -ffrom] - - Specify the character set from - of the input file. - Should be used in conjunction with option -t. - - - - - -tto] - - Specify the character set of - of the output. - Should be used in conjunction with option -f. - - - - - -v - - Print more information about the conversion process. - - - - - - - EXAMPLES - - The following command converts from ISO-8859-1 (Latin-1) to - UTF-8. - - yaz-iconv -f ISO-8859-1 -t UTF-8 -X <input.lst >output.lst - - - - - FILES - - prefix/bin/yaz-iconv - - - prefix/include/yaz/yaz-iconv.h - - - SEE ALSO - - yaz(7) - iconv(1) - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-illclient-man.xml b/dependencies/yaz_3.0.14/doc/yaz-illclient-man.xml deleted file mode 100644 index 1000201..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-illclient-man.xml +++ /dev/null @@ -1,137 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - - YAZ - &version; - - - - yaz-illclient - 1 - - - - yaz-illclient - ILL client - - - - - yaz-illclient - - - name=value - - - - - server-addr - - - - DESCRIPTION - - yaz-illclient is an client which sends an ISO - ILL request to a remote server and decodes the response from it. - Exactly one server address ( server-addr ) - must be specified. - - - - OPTIONS - - - - -f filename] - - Specify filename. - - - - - -v loglevel] - - Specify the log level - - - - - -D name=value] - - Defines name & value pair. - - - - - -o - - Enable OCLC authentication. - - - - - -u user] - - Specify user. - - - - - -p password] - - Specify password. - - - - - -V - - Show yaz-illclient version. - - - - - - - EXAMPLES - - None yet. - - - - FILES - - None yet. - - - SEE ALSO - - yaz(7) - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-log-man.xml b/dependencies/yaz_3.0.14/doc/yaz-log-man.xml deleted file mode 100644 index 6dcce24..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-log-man.xml +++ /dev/null @@ -1,294 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - - YAZ - &version; - - - - yaz-log - 7 - - - - yaz-log - Log handling in all yaz-based programs - - - - - yaz-XXXX - - - - - - DESCRIPTION - - All YAZ-based programs use a common log subsystem, and should support - common command line options for controlling it. This man page documents - those. - - - - - - OPTIONS - - - - -l logfile - - - Specify the file where the log is to be written. If none is specified, - stderr is used. The log is appended to this file. - If the file grows overly large, it is silently rotated: It is renamed to - logfile.1, - logfile.2, .., 9 - (old such file is deleted), and a - new file is opened. The limit defaults to 1GB, but can be set by the - program. - The rotating limit can be specified with option -r - for the YAZ frontend server (yaz-ztest). - - - Rotation can also be implicitly enabled by using a filename - which gets changed for a given date, due to substitutions as - given by the strftime(3) function. - - - - - - -v loglevel - - Specify the logging level. The argument is a set of log level names, - separated by commas (no whitespace!), optionally preceded by a '-' to - negate that level. Most programs have their own default, often - containing fatal,warn,log, and some - application-specific values. The default list can be cleared with the - word none, or individual bits can be removed by - prefixing them with a dash '-'. - - - - - - - LOG LEVELS TO CONTROL LOGGING - - Some of the log levels control the way the log is written. - - - flush causes the log to be flushed after every write. - This can have serious implications to performance, and should not be used - in production. On the other hand, when debugging a program crash, this can - be extremely useful. The option debug implies - flush as well. - - - notime prevents the writing of time stamps. This is - intended for automatic test scripts, which should produce predictable log - files that are easy to compare. - - - - - GENERAL LOG LEVELS IN YAZ ITSELF - - YAZ itself uses the following log levels: - - - fatal for fatal errors, that prevent further execution - of the program. - - - warn for warnings about things that should be corrected. - - - debug for debugging. This flag may be used temporarily - when developing or debugging yaz, or a program that uses yaz. It is - practically deprecated, you should be defining and using your own log - levels (see below). - - - all turns on almost all hard-coded log levels. - - - loglevel logs information about the log levels used by - the program. Every time the log level is changed, lists all bits that are - on. Every time a module asks for its log bits, this is logged. This can be - used for getting an idea of what log levels are available in any program - that uses yaz-log. Start the program with -v - none,loglevel, and do some common operations with it. Another way - is to grep for yaz_log_module_level in the source - code, as in - - find . -name '*.[ch]' -print | - xargs grep yaz_log_module_level | - grep '"' | - cut -d'"' -f2 | - sort -u - - - - eventl, malloc, - nmem, odr are used internally for - debugging yaz. - - - - - - LOG LEVELS FOR CLIENTS - - zoom logs the calls to the zoom API, which may be useful - in debugging client applications. - - - - LOG LEVELS FOR SERVERS - - server logs the server functions on a high level, - starting up, listening on a port, etc. - - - session logs individual sessions (connections). - - - request logs a one-liner for each request (init, search, - etc). - - - requestdetail logs the details of every request, before - it is passed to the back-end, and the results received from it. - - - Each server program (zebra, etc) is supposed to define its own log levels - in addition to these. As they depend on the server in question, they can - not be described here. See above how to find out about them. - - - - LOGGING EXAMPLES - - See what log levels yaz-ztest is using: - - yaz-ztest -1 -v none,loglevel - 14:43:29-23/11 [loglevel] Setting log level to 4096 = 0x00001000 - 14:43:29-23/11 [loglevel] Static log bit 00000001 'fatal' is off - 14:43:29-23/11 [loglevel] Static log bit 00000002 'debug' is off - 14:43:29-23/11 [loglevel] Static log bit 00000004 'warn' is off - 14:43:29-23/11 [loglevel] Static log bit 00000008 'log' is off - 14:43:29-23/11 [loglevel] Static log bit 00000080 'malloc' is off - 14:43:29-23/11 [loglevel] Static log bit 00000800 'flush' is off - 14:43:29-23/11 [loglevel] Static log bit 00001000 'loglevel' is ON - 14:43:29-23/11 [loglevel] Static log bit 00002000 'server' is off - 14:43:29-23/11 [loglevel] Dynamic log bit 00004000 'session' is off - 14:43:29-23/11 [loglevel] Dynamic log bit 00008000 'request' is off - 14:44:13-23/11 yaz-ztest [loglevel] returning log bit 0x4000 for 'session' - 14:44:13-23/11 yaz-ztest [loglevel] returning log bit 0x2000 for 'server' - 14:44:13-23/11 yaz-ztest [loglevel] returning NO log bit for 'eventl' - 14:44:20-23/11 yaz-ztest [loglevel] returning log bit 0x4000 for 'session' - 14:44:20-23/11 yaz-ztest [loglevel] returning log bit 0x8000 for 'request' - 14:44:20-23/11 yaz-ztest [loglevel] returning NO log bit for 'requestdetail' - 14:44:20-23/11 yaz-ztest [loglevel] returning NO log bit for 'odr' - 14:44:20-23/11 yaz-ztest [loglevel] returning NO log bit for 'ztest' - - - - See the details of the requests for yaz-ztest - - ./yaz-ztest -1 -v requestdetail - 14:45:35-23/11 yaz-ztest [server] Adding static Z3950 listener on tcp:@:9999 - 14:45:35-23/11 yaz-ztest [server] Starting server ./yaz-ztest pid=32200 - 14:45:38-23/11 yaz-ztest [session] Starting session from tcp:127.0.0.1 (pid=32200) - 14:45:38-23/11 yaz-ztest [requestdetail] Got initRequest - 14:45:38-23/11 yaz-ztest [requestdetail] Id: 81 - 14:45:38-23/11 yaz-ztest [requestdetail] Name: YAZ - 14:45:38-23/11 yaz-ztest [requestdetail] Version: 2.0.28 - 14:45:38-23/11 yaz-ztest [requestdetail] Negotiated to v3: srch prst del extendedServices namedresults scan sort - 14:45:38-23/11 yaz-ztest [request] Init from 'YAZ' (81) (ver 2.0.28) OK - 14:45:39-23/11 yaz-ztest [requestdetail] Got SearchRequest. - 14:45:39-23/11 yaz-ztest [requestdetail] ResultSet '1' - 14:45:39-23/11 yaz-ztest [requestdetail] Database 'Default' - 14:45:39-23/11 yaz-ztest [requestdetail] RPN query. Type: Bib-1 - 14:45:39-23/11 yaz-ztest [requestdetail] term 'foo' (general) - 14:45:39-23/11 yaz-ztest [requestdetail] resultCount: 7 - 14:45:39-23/11 yaz-ztest [request] Search Z: @attrset Bib-1 foo OK:7 hits - 14:45:41-23/11 yaz-ztest [requestdetail] Got PresentRequest. - 14:45:41-23/11 yaz-ztest [requestdetail] Request to pack 1+1 1 - 14:45:41-23/11 yaz-ztest [requestdetail] pms=1048576, mrs=1048576 - 14:45:41-23/11 yaz-ztest [request] Present: [1] 1+1 OK 1 records returned - - - - - LOG FILENAME EXAMPLES - - A file with format my_YYYYMMDD.log is where Y, M, D is year, month, and day - digits is given as follows - -l my_%Y%m%d.log . And since the filename - is depending on day, rotaion will occur on midnight. - - - A weekly log could be specified as - -l my_%Y%U.log. - - - - FILES - - prefix/include/yaz/log.h - prefix/src/log.c - - - SEE ALSO - - - yaz - 7 - - - - yaz-ztest - 8 - - - - yaz-client - 1 - - - - strftime - 3 - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-man.xml b/dependencies/yaz_3.0.14/doc/yaz-man.xml deleted file mode 100644 index 81ed583..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-man.xml +++ /dev/null @@ -1,141 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - - YAZ - &version; - - - - yaz - 7 - - - - yaz - Z39.50 toolkit. - - - - - YAZ - - - - DESCRIPTION - - YAZ is a C/C++ programmer's toolkit supporting the development - of Z39.50v3 clients and servers. The YAZ toolkit offers - several different levels of access to the ISO23950/Z39.50, SRU - and ILL protocols. The level that you need to use depends - on your requirements, and the role (server of client) that you want - to implement. - - - - COPYRIGHT - - Copyright © ©right-year; Index Data. - - - All rights reserved. - - - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - - - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - - - - Neither the name of Index Data nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - - - - - THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - - - - - SEE ALSO - - - yaz-client - 1 - , - - yaz-ztest - 8 - , - - yaz-config - 8 - , - - zoomsh - 1 - - - YAZ manual ( - &prefix;/share/doc/yaz) - - - YAZ home page. - - - Z39.50 Maintenance Agency Page. - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-marcdump-man.xml b/dependencies/yaz_3.0.14/doc/yaz-marcdump-man.xml deleted file mode 100644 index 2ddc781..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-marcdump-man.xml +++ /dev/null @@ -1,176 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - - YAZ - &version; - - - yaz-marcdump - 1 - - - - yaz-marcdump - MARC record dump utility - - - - - yaz-marcdump - - - - - - - - file - - - - DESCRIPTION - - yaz-marcdump reads MARC records from one or - more files. - It parses each record and supports output in line-format, - ISO2709, MARCXML, MarcXchange as well as Hex output. - - - This utility parses records ISO2709(raw MARC) as well as XML - if that is structured as MARCXML/MarcXchange. - - - - As of YAZ 2.1.18, OAI-MARC is no longer supported. - OAI-MARC is deprecated. Use MARCXML instead. - - - - By default, each record is written to standard output in a line - format with newline for each field, $x for each subfield x. - The output format may be changed with option -o, - - - yaz-marcdump can also be requested to perform - character set conversion of each record. - - - - OPTIONS - - - - -i format - - Specifies input format. Must be one of - marcxml, marc (ISO2709), - line (line mode MARC). - - - - - -o format - - Specifies output format. Must be one of - marcxml, marc (ISO2709), - line (line mode MARC). - - - - - -f from - - Specify the character set from - of the input MARC record. - Should be used in conjunction with option -t. - - - - - -t to - - Specify the character set of - of the output. - Should be used in conjunction with option -f. - - - - - -l leaderspec - - Specify a simple modification string for MARC leader. The - leaderspec is a list of pos=value - pairs, where pos is an integer offset (0 - 23) for leader. Value - is either a quoted string or an integer (character value in decimal). - Pairs are comma separated. For example, to set leader at offset 9 - to a, use 9=a. - - - - - -v - - Writes more information about the parsing process. - Useful if you have ill-formatted ISO2709 records as input. - - - - - - - EXAMPLES - - The following command converts MARC21/USMARC in MARC-8 encoding to - MARC21/USMARC in UTF-8 encoding. Leader offset 9 is set to 'a'. - Both input and output records are ISO2709 encoded. - - yaz-marcdump -f MARC-8 -t UTF-8 -o marc -l 9=97 marc21.raw >marc21.utf8.raw - - - - The same records may be converted to MARCXML instead in UTF-8: - - yaz-marcdump -f MARC-8 -t UTF-8 -o marcxml marc21.raw >marcxml.xml - - - - - FILES - - prefix/bin/yaz-marcdump - - - prefix/include/yaz/marcdisp.h - - - SEE ALSO - - yaz(7) - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz-ztest-man.xml b/dependencies/yaz_3.0.14/doc/yaz-ztest-man.xml deleted file mode 100644 index 0fdd4f2..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz-ztest-man.xml +++ /dev/null @@ -1,110 +0,0 @@ - - %local; - - %entities; - - %idcommon; - - - -]> - - - - YAZ - &version; - - - - yaz-ztest - 8 - - - - yaz-ztest - Z39.50 Test Server - - - - &gfs-synopsis; - - DESCRIPTION - - yaz-ztest is a Z39.50 test server that uses - the YAZ generic frontend server API. - The server acts as a real Z39.50 server but does not use a database. - It returns a random hit count and returns a subset of a few built-in - records. - - - The listener-spec consists of a transport - mode followed by a colon, followed by a listener address. The - transport mode is either tcp, unix, - or ssl. - - - For TCP and SSL, an address has the form: - - hostname | IP-number [ : portnumber ] - - - - For UNIX local socket the address is the filename of the local socket. - - - - OPTIONS - &gfs-options; - - GFS CONFIGURATION AND VIRTUAL HOSTS - &gfs-virtual; - - FILES - - yaz-<version>/ztest/yaz-ztest.c - - - yaz-<version>/include/yaz/backend.h - - - Retrieval Facility - - Refer to the "Retrieval Facility" in the YAZ manual - - - CQL to RPN conversions - - Refer to the "Specification of CQL to RPN mappings" in YAZ manual. - - - SEE ALSO - - - yaz - 7 - - - yaz-log - 7 - - - - - - diff --git a/dependencies/yaz_3.0.14/doc/yaz.xml b/dependencies/yaz_3.0.14/doc/yaz.xml deleted file mode 100644 index 066d9dc..0000000 --- a/dependencies/yaz_3.0.14/doc/yaz.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - %local; - - %entities; - - %idcommon; -]> - - &bookinfo; - &chap-introduction; - &chap-installation; - &chap-zoom; - &chap-frontend; - &chap-client; - &chap-ziffy; - &chap-asn; - &chap-soap; - &chap-tools; - &chap-odr; - &chap-comstack; - &chap-future; - - List of Object Identifiers - - These is a list of object identifiers that are built into YAZ. - - &std-oid-table; - - - &app-license; - &app-indexdata; - &app-credits; - - - diff --git a/dependencies/yaz_3.0.14/doc/ziffy.html b/dependencies/yaz_3.0.14/doc/ziffy.html deleted file mode 100644 index 7b78e3d..0000000 --- a/dependencies/yaz_3.0.14/doc/ziffy.html +++ /dev/null @@ -1,15 +0,0 @@ -Chapter 6. ziffy

    Chapter 6. ziffy

    1. Introduction

    - ziffy is a promiscuous Z39.50 APDU sniffer, like the popular tcpdump. - ziffy can capture and show all Z39.50 traffic on your LAN segment. -

    - ziffy is copyright Rocco Carbone and is covered by the GPL. ziffy - uses libpcap to capture the packages - and is part of YAZ 2.1.42 or later. - Source and documentation for the ziffy utility is part of the sub - directory ziffy in the YAZ source package. -

    - The ziffy software is also a standalone piece of software and - can be obtained separately. The ziffy as part of YAZ, uses - YAZ for decoding Z39.50 packages. The standalone version can - use different decoders (SNACC and X/ASN.1) -

    diff --git a/dependencies/yaz_3.0.14/doc/ziffy.using.html b/dependencies/yaz_3.0.14/doc/ziffy.using.html deleted file mode 100644 index 4533872..0000000 --- a/dependencies/yaz_3.0.14/doc/ziffy.using.html +++ /dev/null @@ -1,11 +0,0 @@ -2. Using Ziffy

    2. Using Ziffy

    - ziffy must be executed with root priviledge. -

    Example 6.1. Starting ziffy from the command line

    - In the command below ziffy is started and dumps all Z39.50 traffic - on ethernet device eth0 -

    -     # ziffy -i eth0
    -    

    - For more information about ziffy refer to the man page ziffy(1) and - the material in sub directory ziffy. -

    diff --git a/dependencies/yaz_3.0.14/doc/ziffy.xml b/dependencies/yaz_3.0.14/doc/ziffy.xml deleted file mode 100644 index f7757f6..0000000 --- a/dependencies/yaz_3.0.14/doc/ziffy.xml +++ /dev/null @@ -1,56 +0,0 @@ - - ziffy - Introduction - - ziffy is a promiscuous Z39.50 APDU sniffer, like the popular tcpdump. - ziffy can capture and show all Z39.50 traffic on your LAN segment. - - - ziffy is copyright Rocco Carbone and is covered by the GPL. ziffy - uses libpcap to capture the packages - and is part of YAZ 2.1.42 or later. - Source and documentation for the ziffy utility is part of the sub - directory ziffy in the YAZ source package. - - - The ziffy software is also a standalone piece of software and - can be obtained separately. The ziffy as part of YAZ, uses - YAZ for decoding Z39.50 packages. The standalone version can - use different decoders (SNACC and X/ASN.1) - - - Using Ziffy - - ziffy must be executed with root priviledge. - - - Starting ziffy from the command line - - In the command below ziffy is started and dumps all Z39.50 traffic - on ethernet device eth0 - - - # ziffy -i eth0 - - - - For more information about ziffy refer to the man page ziffy(1) and - the material in sub directory ziffy. - - - - - diff --git a/dependencies/yaz_3.0.14/doc/zoom.events.html b/dependencies/yaz_3.0.14/doc/zoom.events.html deleted file mode 100644 index c351903..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.events.html +++ /dev/null @@ -1,28 +0,0 @@ -8. Events

    8. Events

    - If you're developing non-blocking applications, you have to deal - with events. -

    -    int ZOOM_event (int no, ZOOM_connection *cs);
    -   

    - The ZOOM_event executes pending events for - a number of connections. Supply the number of connections in - no and an array of connections in - cs (cs[0] ... cs[no-1]). - A pending event could be a sending a search, receiving a response, - etc. - When an event has occurred for one of the connections, this function - returns a positive integer n denoting that an event - occurred for connection cs[n-1]. - When no events are pending for the connections, a value of zero is - returned. - To ensure that all outstanding requests are performed call this function - repeatedly until zero is returned. -

    - If ZOOM_event returns and returns non-zero, the - last event that occurred can be expected. -

    -    int ZOOM_connection_last_event(ZOOM_connection cs);
    -   

    - ZOOM_connection_last_event returns an event type - (integer) for the last event. -

    Table 3.10. ZOOM Event IDs

    EventDescription
    ZOOM_EVENT_NONENo event has occurred
    ZOOM_EVENT_CONNECTTCP/IP connect has initiated
    ZOOM_EVENT_SEND_DATAData has been transmitted (sending)
    ZOOM_EVENT_RECV_DATAData has been received)
    ZOOM_EVENT_TIMEOUTTimeout
    ZOOM_EVENT_UNKNOWNUnknown event
    ZOOM_EVENT_SEND_APDUAn APDU has been transmitted (sending)
    ZOOM_EVENT_RECV_APDUAn APDU has been received
    ZOOM_EVENT_RECV_RECORDA result-set record has been received
    ZOOM_EVENT_RECV_SEARCHA search result been received

    diff --git a/dependencies/yaz_3.0.14/doc/zoom.extendedservices.html b/dependencies/yaz_3.0.14/doc/zoom.extendedservices.html deleted file mode 100644 index 8c23e66..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.extendedservices.html +++ /dev/null @@ -1,105 +0,0 @@ -6. Extended Services

    6. Extended Services

    - ZOOM offers an interface to a subset of the Z39.50 extended services - as well as a few privately defined ones: -

    - To create an extended service operation a ZOOM_package - must be created. The operation is a five step operation. The - package is created, package is configured by means of options, - the package is send, result is inspected (by means of options), - the package is destroyed. -

    -    ZOOM_package ZOOM_connection_package(ZOOM_connection c,
    -                                         ZOOM_options options);
    -
    -    const char *ZOOM_package_option_get(ZOOM_package p,
    -                                        const char *key);
    -    void ZOOM_package_option_set(ZOOM_package p, const char *key,
    -                                 const char *val);
    -    void ZOOM_package_send(ZOOM_package p, const char *type);
    -
    -    void ZOOM_package_destroy(ZOOM_package p);
    -   

    - The ZOOM_connection_package creates a - package for the connection given using the options specified. -

    - Functions ZOOM_package_option_get and - ZOOM_package_option_set gets and sets - options. -

    - ZOOM_package_send sends - the package the via connection specified in - ZOOM_connection_package. - The type specifies the actual extended service - package type to be sent. -

    Table 3.5. Extended Service Common Options

    OptionDescriptionDefault
    package-nameExtended Service Request package name. Must be specified - as part of a requestnone
    user-idUser ID of Extended Service Package. Is a request optionnone
    function - Function of package - one of create, - delete, modify. Is - a request option. - create
    waitAction - Wait action for package. Possible values: - wait, waitIfPossible, - dontWait or dontReturnPackage. - waitIfPossible
    targetReference - Target Reference. This is part of the response as returned - by the server. Read it after a successful operation. - none

    6.1. Item Order

    - For Item Order, type must be set to itemorder in - ZOOM_package_send. -

    Table 3.6. Item Order Options

    OptionDescriptionDefault
    contact-nameILL contact namenone
    contact-phoneILL contact phonenone
    contact-emailILL contact emailnone
    itemorder-itemPosition for item (record) requested. An integer1

    6.2. Record Update

    - For Record Update, type must be set to update in - ZOOM_package_send. -

    Table 3.7. Record Update Options

    OptionDescriptionDefault
    action - The update action. One of - specialUpdate, - recordInsert, - recordReplace, - recordDelete, - elementUpdate. - specialUpdate (recordInsert for updateVersion=1 which does not support specialUpdate)
    recordIdOpaqueOpaque Record IDnone
    recordIdNumberRecord ID numbernone
    recordThe record itselfnone
    syntaxThe record syntax (transfer syntax). Is a string that - is a known record syntax. - no syntax
    databaseNameDatabase from connection objectDefault
    correlationInfo.noteCorrelation Info Note (string)none
    correlationInfo.idCorrelation Info ID (integer)none
    elementSetNameElement Set for Recordnone
    updateVersionRecord Update version which holds one of the values - 1, 2 or 3. Each version has a distinct OID: - 1.2.840.10003.9.5 - (first version) , - 1.2.840.10003.9.5.1 - (second version) and - 1.2.840.10003.9.5.1.1 - (third and - newest version). - 3

    6.3. Database Create

    - For Database Create, type must be set to create in - ZOOM_package_send. -

    Table 3.8. Database Create Options

    OptionDescriptionDefault
    databaseNameDatabase from connection objectDefault

    6.4. Database Drop

    - For Database Drop, type must be set to drop in - ZOOM_package_send. -

    Table 3.9. Database Drop Options

    OptionDescriptionDefault
    databaseNameDatabase from connection objectDefault

    6.5. Commit Operation

    - For Commit, type must be set to commit in - ZOOM_package_send. -

    6.6. Protocol behavior

    - All the extended services are Z39.50-only. -

    Note

    - The database create, drop and commit services are privately defined - operations. - Refer to esadmin.asn in YAZ for the ASN.1 - definitions. -

    diff --git a/dependencies/yaz_3.0.14/doc/zoom.html b/dependencies/yaz_3.0.14/doc/zoom.html deleted file mode 100644 index 5b79b52..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.html +++ /dev/null @@ -1,257 +0,0 @@ -Chapter 3. ZOOM

    Chapter 3. ZOOM

    - ZOOM is an acronym for 'Z39.50 Object-Orientation Model' and is - an initiative started by Mike Taylor (Mike is from the UK, which - explains the peculiar name of the model). The goal of ZOOM is to - provide a common Z39.50 client API not bound to a particular - programming language or toolkit. -

    Note

    - A recent addition to YAZ is SRU support. You can now make - SRU ZOOM connections by specifying scheme http:// - for the hostname for a connection. The dialect of SRU used is - specified by the value of the connection's sru - option, which may be SRU over HTTP GET (get), - SRU over HTTP POST (post) or SRW (SRU over - SOAP) (soap). Using the facility for embedding - options in target strings, a connection can be forced to use SRU - rather the SRW (the default) by prefixing the target string with - sru=get,, like this: - sru=get,http://sru.miketaylor.org.uk:80/sru.pl -

    - The lack of a simple Z39.50 client API for YAZ has become more - and more apparent over time. So when the first ZOOM specification - became available, - an implementation for YAZ was quickly developed. For the first time, it is - now as easy (or easier!) to develop clients than servers with YAZ. This - chapter describes the ZOOM C binding. Before going further, please - reconsider whether C is the right programming language for the job. - There are other language bindings available for YAZ, and still - more - are in active development. See the - ZOOM web-site for - more information. -

    - In order to fully understand this chapter you should read and - try the example programs zoomtst1.c, - zoomtst2.c, .. in the zoom - directory. -

    - The C language misses features found in object oriented languages - such as C++, Java, etc. For example, you'll have to manually, - destroy all objects you create, even though you may think of them as - temporary. Most objects has a _create - and a - _destroy variant. - All objects are in fact pointers to internal stuff, but you don't see - that because of typedefs. All destroy methods should gracefully ignore a - NULL pointer. -

    - In each of the sections below you'll find a sub section called - protocol behavior, that describes how the API maps to the Z39.50 - protocol. -

    1. Connections

    The Connection object is a session with a target. -

    -    #include <yaz/zoom.h>
    -    
    -    ZOOM_connection ZOOM_connection_new (const char *host, int portnum);
    -    
    -    ZOOM_connection ZOOM_connection_create (ZOOM_options options);
    -    
    -    void ZOOM_connection_connect(ZOOM_connection c, const char *host,
    -                                 int portnum);
    -    void ZOOM_connection_destroy (ZOOM_connection c);
    -   

    - Connection objects are created with either function - ZOOM_connection_new or - ZOOM_connection_create. - The former creates and automatically attempts to establish a network - connection with the target. The latter doesn't establish - a connection immediately, thus allowing you to specify options - before establishing network connection using the function - ZOOM_connection_connect. - If the port number, portnum, is zero, the - host is consulted for a port specification. - If no port is given, 210 is used. A colon denotes the beginning of - a port number in the host string. If the host string includes a - slash, the following part specifies a database for the connection. -

    - You can prefix the host with a scheme followed by colon. The - default scheme is tcp (Z39.50 protocol). - The scheme http selects SRU over HTTP. -

    - You can prefix the scheme-qualified host-string with one or more - comma-separated - key=value - sequences, each of which represents an option to be set into the - connection structure before the - protocol-level connection is forged and the initialization - handshake takes place. This facility can be used to provide - authentication credentials, as in host-strings such as: - user=admin,password=halfAm4n,tcp:localhost:8017/db -

    - Connection objects should be destroyed using the function - ZOOM_connection_destroy. -

    -    void ZOOM_connection_option_set(ZOOM_connection c,
    -                                    const char *key, const char *val);
    -
    -    void ZOOM_connection_option_setl(ZOOM_connection c,
    -                                     const char *key,
    -                                     const char *val, int len);
    -
    -    const char *ZOOM_connection_option_get(ZOOM_connection c,
    -                                           const char *key);
    -    const char *ZOOM_connection_option_getl(ZOOM_connection c,
    -                                            const char *key,
    -                                            int *lenp);
    -   

    - The functions ZOOM_connection_option_set and - ZOOM_connection_option_setl allows you to - set an option given by key to the value - value for the connection. - For ZOOM_connection_option_set, the - value is assumed to be a 0-terminated string. Function - ZOOM_connection_option_setl specifies a - value of a certain size (len). -

    - Functions ZOOM_connection_option_get and - ZOOM_connection_option_getl returns - the value for an option given by key. -

    Table 3.1. ZOOM Connection Options

    OptionDescriptionDefault
    - implementationNameName of Your client - none
    - userAuthentication user name - none
    - groupAuthentication group name - none
    - passwordAuthentication password. - none
    - hostTarget host. This setting is "read-only". - It's automatically set internally when connecting to a target. - none
    - proxyProxy host - none
    - asyncIf true (1) the connection operates in - asynchronous operation which means that all calls are non-blocking - except - ZOOM_event. - 0
    - maximumRecordSize Maximum size of single record. - 1 MB
    - preferredMessageSize Maximum size of multiple records. - 1 MB
    - lang Language for negotiation. - none
    - charset Character set for negotiation. - none
    - serverImplementationId - Implementation ID of server. (The old targetImplementationId - option is also supported for the benefit of old applications.) - none
    - targetImplementationName - Implementation Name of server. (The old - targetImplementationName option is also supported for the - benefit of old applications.) - none
    - serverImplementationVersion - Implementation Version of server. (the old - targetImplementationVersion option is also supported for the - benefit of old applications.) - none
    - databaseNameOne or more database names - separated by character plus (+), which to - be used by subsequent search requests on this Connection. - Default
    - piggybackTrue (1) if piggyback should be - used in searches; false (0) if not. - 1
    - smallSetUpperBoundIf hits is less than or equal to this - value, then target will return all records using small element set name - 0
    - largeSetLowerBoundIf hits is greater than this - value, the target will return no records. - 1
    - mediumSetPresentNumberThis value represents - the number of records to be returned as part of a search when when - hits is less than or equal to large set lower bound and if hits - is greater than small set upper bound. - 0
    - smallSetElementSetName - The element set name to be used for small result sets. - none
    - mediumSetElementSetName - The element set name to be for medium-sized result sets. - none
    - init_opt_search, init_opt_present, init_opt_delSet, etc. - After a successful Init, these options may be interrogated to - discover whether the server claims to support the specified - operations. - none
    - sru_version - SRU/SRW version. Should be 1.1, or - 1.2. This is , prior to connect, the version - to offer (highest version). And following connect (in fact - first operation), holds the negotiated version with the server - (same or lower version). - 1.2

    - If either option lang or charset - is set, then - - Character Set and Language Negotiation is in effect. -

    -     int ZOOM_connection_error (ZOOM_connection c, const char **cp,
    -                                const char **addinfo);
    -     int ZOOM_connection_error_x (ZOOM_connection c, const char **cp,
    -                                  const char **addinfo, const char **dset);
    -   

    - Function ZOOM_connection_error checks for - errors for the last operation(s) performed. The function returns - zero if no errors occurred; non-zero otherwise indicating the error. - Pointers cp and addinfo - holds messages for the error and additional-info if passed as - non-NULL. Function - ZOOM_connection_error_x is an extended version - of ZOOM_connection_error that is capable of - returning name of diagnostic set in dset. -

    1.1. Z39.50 Protocol behavior

    - The calls ZOOM_connection_new and - ZOOM_connection_connect establishes a TCP/IP - connection and sends an Initialize Request to the target if - possible. In addition, the calls waits for an Initialize Response - from the target and the result is inspected (OK or rejected). -

    - If proxy is set then the client will establish - a TCP/IP connection with the peer as specified by the - proxy host and the hostname as part of the - connect calls will be set as part of the Initialize Request. - The proxy server will then "forward" the PDU's transparently - to the target behind the proxy. -

    - For the authentication parameters, if option user - is set and both options group and - pass are unset, then Open style - authentication is used (Version 2/3) in which case the username - is usually followed by a slash, then by a password. - If either group - or pass is set then idPass authentication - (Version 3 only) is used. If none of the options are set, no - authentication parameters are set as part of the Initialize Request - (obviously). -

    - When option async is 1, it really means that - all network operations are postponed (and queued) until the - function ZOOM_event is invoked. When doing so - it doesn't make sense to check for errors after - ZOOM_connection_new is called since that - operation "connecting - and init" is still incomplete and the - API cannot tell the outcome (yet). -

    1.2. SRU Protocol behavior

    - The SRU protocol doesn't feature an Inititialize Request, so - the connection phase merely establishes a TCP/IP connection - with the SOAP service. -

    Most of the ZOOM connection options do not - affect SRU and they are ignored. However, future versions - of YAZ might honor implementationName and - put that as part of User-Agent header for HTTP requests. -

    - The charset is used in the Content-Type header - of HTTP requests. -

    diff --git a/dependencies/yaz_3.0.14/doc/zoom.options.html b/dependencies/yaz_3.0.14/doc/zoom.options.html deleted file mode 100644 index 5acd25e..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.options.html +++ /dev/null @@ -1,24 +0,0 @@ -7. Options

    7. Options

    - Most ZOOM objects provide a way to specify options to change behavior. - From an implementation point of view a set of options is just like - an associative array / hash. -

    -     ZOOM_options ZOOM_options_create (void);
    -
    -     ZOOM_options ZOOM_options_create_with_parent (ZOOM_options parent);
    -
    -     void ZOOM_options_destroy (ZOOM_options opt);
    -   
    -     const char *ZOOM_options_get (ZOOM_options opt, const char *name);
    -
    -     void ZOOM_options_set (ZOOM_options opt, const char *name,
    -                            const char *v);
    -   
    -     typedef const char *(*ZOOM_options_callback)
    -                                     (void *handle, const char *name);
    -
    -     ZOOM_options_callback
    -             ZOOM_options_set_callback (ZOOM_options opt,
    -                                        ZOOM_options_callback c,
    -                                        void *handle);
    -   
    diff --git a/dependencies/yaz_3.0.14/doc/zoom.query.html b/dependencies/yaz_3.0.14/doc/zoom.query.html deleted file mode 100644 index fc6d308..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.query.html +++ /dev/null @@ -1,31 +0,0 @@ -2. Queries

    2. Queries

    - Query objects represents queries. -

    -     ZOOM_query ZOOM_query_create(void);
    -
    -     void ZOOM_query_destroy(ZOOM_query q);
    -
    -     int ZOOM_query_prefix(ZOOM_query q, const char *str);
    -
    -     int ZOOM_query_cql(ZOOM_query s, const char *str);
    -
    -     int ZOOM_query_sortby(ZOOM_query q, const char *criteria);
    -   

    - Create query objects using ZOOM_query_create - and destroy them by calling ZOOM_query_destroy. - RPN-queries can be specified in PQF - notation by using the - function ZOOM_query_prefix. - The ZOOM_query_cql specifies a CQL - query to be sent to the server/target. - More query types will be added in future versions of YAZ, such as - CCL to RPN-mapping, native CCL query, - etc. In addition to a search, a sort criteria may be set. Function - ZOOM_query_sortby specifies a - sort criteria using the same string notation for sort as offered by - the YAZ client. -

    2.1. Protocol behavior

    - The query object is just an interface for the member Query - in the SearchRequest. The sortby-function is an interface to the - sortSequence member of the SortRequest. -

    diff --git a/dependencies/yaz_3.0.14/doc/zoom.records.html b/dependencies/yaz_3.0.14/doc/zoom.records.html deleted file mode 100644 index 86b9ec8..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.records.html +++ /dev/null @@ -1,139 +0,0 @@ -4. Records

    4. Records

    - A record object is a retrieval record on the client side - - created from result sets. -

    -     void ZOOM_resultset_records(ZOOM_resultset r,
    -                                 ZOOM_record *recs,
    -                                 size_t start, size_t count);
    -     ZOOM_record ZOOM_resultset_record(ZOOM_resultset s, size_t pos);
    -
    -     const char *ZOOM_record_get(ZOOM_record rec, const char *type,
    -                                 size_t *len);
    -
    -     int ZOOM_record_error(ZOOM_record rec, const char **msg,
    -                           const char **addinfo, const char **diagset);
    -
    -     ZOOM_record ZOOM_record_clone (ZOOM_record rec);
    -
    -     void ZOOM_record_destroy (ZOOM_record rec);
    -   

    - References to temporary records are returned by functions - ZOOM_resultset_records or - ZOOM_resultset_record. -

    - If a persistent reference to a record is desired - ZOOM_record_clone should be used. - It returns a record reference that should be destroyed - by a call to ZOOM_record_destroy. -

    - A single record is returned by function - ZOOM_resultset_record that takes a - position as argument. First record has position zero. - If no record could be obtained NULL is returned. -

    - Error information for a record can be checked with - ZOOM_record_error which returns non-zero - (error code) if record is in error, called Surrogate - Diagnostics in Z39.50. -

    - Function ZOOM_resultset_records retrieves - a number of records from a result set. Parameter start - and count specifies the range of records to - be returned. Upon completion array - recs[0], ..recs[count-1] - holds record objects for the records. The array of records - recs should be allocated prior the call - ZOOM_resultset_records. Note that for those - records that couldn't be retrieved from the target - recs[ ..] is set to NULL. -

    - In order to extract information about a single record, - ZOOM_record_get is provided. The - function returns a pointer to certain record information. The - nature (type) of the pointer depends on the parameter, - type. -

    - The type is a string of the format: -

    - form[; charset=from[,to]] -

    - where form specifies the format of the - returned record, from - specifies the character set of the record in its original form - (as returned by the server), to specifies - the output (returned) - character set encoding. - If charset is not given, then no character set conversion takes place. - If to is omitted UTF-8 is assumed. -

    - In addition, for certain types, the length - len passed will be set to the size in bytes of - the returned information. -

    - The following are the supported values for form. -

    database

    Database of record is returned - as a C null-terminated string. Return type - const char *. -

    syntax

    The transfer syntax of the record is returned - as a C null-terminated string containing the symbolic name of - the record syntax, e.g. Usmarc. Return type - is - const char *. -

    schema

    The schema of the record is returned - as a C null-terminated string. Return type is - const char *. -

    render

    The record is returned in a display friendly - format. Upon completion buffer is returned - (type const char *) and length is stored in - *len. -

    raw

    The record is returned in the internal - YAZ specific format. For GRS-1, Explain, and others, the - raw data is returned as type - Z_External * which is just the type for - the member retrievalRecord in - type NamePlusRecord. - For SUTRS and octet aligned record (including all MARCs) the - octet buffer is returned and the length of the buffer. -

    xml

    The record is returned in XML if possible. - SRU and Z39.50 records with transfer syntax XML are - returned verbatim. MARC records are returned in - - MARCXML - - (converted from ISO2709 to MARCXML by YAZ). - GRS-1 and OPAC records are not supported for this form. - Upon completion, the XML buffer is returned - (type const char *) and length is stored in - *len. -

    opac

    OPAC for record is returned in XML. -

    -

    - Most - MARC21 - records uses the - MARC-8 - character set encoding. - An application that wishes to display in Latin-1 would use -

    -     render; charset=marc8,iso-8859-1
    -    

    -

    4.1. Z39.50 Protocol behavior

    - The functions ZOOM_resultset_record and - ZOOM_resultset_records inspects the client-side - record cache. Records not found in cache are fetched using - Present. - The functions may block (and perform network I/O) - even though option - async is 1, because they return records objects. - (and there's no way to return records objects without retrieving them!). -

    - There is a trick, however, in the usage of function - ZOOM_resultset_records that allows for - delayed retrieval (and makes it non-blocking). By using - a null pointer for recs you're indicating - you're not interested in getting records objects - now. -

    4.2. SRU Protocol behavior

    - The ZOOM driver for SRU treats records returned by a SRU server - as if they where Z39.50 records with transfer syntax XML and - no element set name or database name. -

    diff --git a/dependencies/yaz_3.0.14/doc/zoom.resultsets.html b/dependencies/yaz_3.0.14/doc/zoom.resultsets.html deleted file mode 100644 index 6a41ac4..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.resultsets.html +++ /dev/null @@ -1,167 +0,0 @@ -3. Result sets

    3. Result sets

    - The result set object is a container for records returned from - a target. -

    -     ZOOM_resultset ZOOM_connection_search(ZOOM_connection,
    -                                           ZOOM_query q);
    -
    -     ZOOM_resultset ZOOM_connection_search_pqf(ZOOM_connection c,
    -                                               const char *q);
    -
    -     void ZOOM_resultset_destroy(ZOOM_resultset r);
    -   

    - Function ZOOM_connection_search creates - a result set given a connection and query. - Destroy a result set by calling - ZOOM_resultset_destroy. - Simple clients may using PQF only may use function - ZOOM_connection_search_pqf in which case - creating query objects is not necessary. -

    -     void ZOOM_resultset_option_set (ZOOM_resultset r,
    -                                      const char *key,
    -                                      const char *val);
    -
    -     const char *ZOOM_resultset_option_get (ZOOM_resultset r,
    -                                             const char *key);
    -
    -     size_t ZOOM_resultset_size (ZOOM_resultset r);
    -   

    - Functions ZOOM_resultset_options_set and - ZOOM_resultset_get sets and gets an option - for a result set similar to ZOOM_connection_option_get - and ZOOM_connection_option_set. -

    - The number of hits also called result-count is returned by - function ZOOM_resultset_size. -

    Table 3.2. ZOOM Result set Options

    OptionDescriptionDefault
    - startOffset of first record to be - retrieved from target. First record has offset 0 unlike the - protocol specifications where first record has position 1. - 0
    - countNumber of records to be retrieved. - 0
    - presentChunkThe number of records to be - requested from the server in each chunk (present requst). The - value 0 means to request all the records in a single chunk. - (The old step - option is also supported for the benefit of old applications.) - 0
    - elementSetNameElement-Set name of records. - Most targets should honor element set name B - and F for brief and full respectively. - none
    - preferredRecordSyntaxPreferred Syntax, such as - USMARC, SUTRS, etc. - none
    - schemaSchema for retrieval, such as - Gils-schema, Geo-schema, etc. - none
    - setnameName of Result Set (Result Set ID). - If this option isn't set, the ZOOM module will automatically - allocate a result set name. - default
    - rpnCharsetCharacter set for RPN terms. - If this is set, ZOOM C will assume that the ZOOM application is - running UTF-8. Terms in RPN queries are then converted to the - rpnCharset. If this is unset, ZOOM C will not assume any encoding - of RPN terms and no conversion is performed. - none

    - For servers that support Search Info report, the following - options may be read using ZOOM_resultset_get. - This detailed information is read after a successful search has - completed. -

    - This information is a list of of items, where each item is - information about a term or subquery. All items in the list - are prefixed by - SearchResult.no - where no presents the item number (0=first, 1=second). - Read searchresult.size to determine the - number of items. -

    Table 3.3. Search Info Report Options

    OptionDescription
    searchresult.size - number of search result entries. This option is-nonexistant - if no entries are returned by the server. -
    searchresult.no.idsub query ID
    searchresult.no.countresult count for item (number of hits)
    searchresult.no.subquery.termsubquery term
    - searchresult.no.interpretation.term - interpretation term
    - searchresult.no.recommendation.term - recommendation term

    3.1. Z39.50 Protocol behavior

    - The creation of a result set involves at least a SearchRequest - - SearchResponse protocol handshake. Following that, if a sort - criteria was specified as part of the query, a SortRequest - - SortResponse handshake takes place. Note that it is necessary to - perform sorting before any retrieval takes place, so no records will - be returned from the target as part of the SearchResponse because these - would be unsorted. Hence, piggyback is disabled when sort criteria - are set. Following Search - and a possible sort - Retrieval takes - place - as one or more Present Requests/Response pairs being - transferred. -

    - The API allows for two different modes for retrieval. A high level - mode which is somewhat more powerful and a low level one. - The low level is enabled when searching on a Connection object - for which the settings - smallSetUpperBound, - mediumSetPresentNumber and - largeSetLowerBound are set. The low level mode - thus allows you to precisely set how records are returned as part - of a search response as offered by the Z39.50 protocol. - Since the client may be retrieving records as part of the - search response, this mode doesn't work well if sorting is used. -

    - The high-level mode allows you to fetch a range of records from - the result set with a given start offset. When you use this mode - the client will automatically use piggyback if that is possible - with the target and perform one or more present requests as needed. - Even if the target returns fewer records as part of a present response - because of a record size limit, etc. the client will repeat sending - present requests. As an example, if option start - is 0 (default) and count is 4, and - piggyback is 1 (default) and no sorting criteria - is specified, then the client will attempt to retrieve the 4 - records as part the search response (using piggyback). On the other - hand, if either start is positive or if - a sorting criteria is set, or if piggyback - is 0, then the client will not perform piggyback but send Present - Requests instead. -

    - If either of the options mediumSetElementSetName and - smallSetElementSetName are unset, the value - of option elementSetName is used for piggyback - searches. This means that for the high-level mode you only have - to specify one elementSetName option rather than three. -

    3.2. SRU Protocol behavior

    - Current version of YAZ does not take advantage of a result set id - returned by the SRU server. Future versions might do, however. - Since, the ZOOM driver does not save result set IDs any - present (retrieval) is transformed to a SRU SearchRetrieveRequest - with same query but, possibly, different offsets. -

    - Option schema specifies SRU schema - for retrieval. However, options elementSetName and - preferredRecordSyntax are ignored. -

    - Options start and count - are supported by SRU. - The remaining options - piggyback, - smallSetUpperBound, - largeSetLowerBound, - mediumSetPresentNumber, - mediumSetElementSetName, - smallSetElementSetName are - unsupported. -

    - SRU supports CQL queries, not PQF. - If PQF is used, however, the PQF query is transferred anyway - using non-standard element pQuery in - SRU SearchRetrieveRequest. -

    - Unfortunately, SRU does not define a database setting. Hence, - databaseName is unsupported and ignored. - However, the path part in host parameter for functions - ZOOM_connecton_new and - ZOOM_connection_connect acts as a - database (at least for the YAZ SRU server). -

    diff --git a/dependencies/yaz_3.0.14/doc/zoom.scan.html b/dependencies/yaz_3.0.14/doc/zoom.scan.html deleted file mode 100644 index 718d04f..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.scan.html +++ /dev/null @@ -1,86 +0,0 @@ -5. Scan

    5. Scan

    - This section describes an interface for Scan. Scan is not an - official part of the ZOOM model yet. The result of a scan operation - is the ZOOM_scanset which is a set of terms - returned by a target. -

    - The Scan interface is supported for both Z39.50 and SRU. -

    -    ZOOM_scanset ZOOM_connection_scan(ZOOM_connection c,
    -                                      const char *startpqf);
    -
    -    ZOOM_scanset ZOOM_connection_scan1(ZOOM_connection c,
    -                                       ZOOM_query q);
    -
    -    size_t ZOOM_scanset_size(ZOOM_scanset scan);
    -
    -    const char * ZOOM_scanset_term(ZOOM_scanset scan, size_t pos,
    -                                   int *occ, size_t *len);
    -
    -    const char * ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos,
    -                                           int *occ, size_t *len);
    -
    -    void ZOOM_scanset_destroy (ZOOM_scanset scan);
    -
    -    const char *ZOOM_scanset_option_get(ZOOM_scanset scan,
    -                                         const char *key);
    -
    -    void ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key,
    -                                 const char *val);
    -    

    - The scan set is created by function - ZOOM_connection_scan which performs a scan - operation on the connection using the specified - startpqf. - If the operation was successful, the size of the scan set can be - retrieved by a call to ZOOM_scanset_size. - Like result sets, the items are numbered 0,..size-1. - To obtain information about a particular scan term, call function - ZOOM_scanset_term. This function takes - a scan set offset pos and returns a pointer - to a raw term or NULL if - non-present. - If present, the occ and len - are set to the number of occurrences and the length - of the actual term respectively. - ZOOM_scanset_display_term is similar to - ZOOM_scanset_term except that it returns - the display term rather than the raw term. - In a few cases, the term is different from display term. Always - use the display term for display and the raw term for subsequent - scan operations (to get more terms, next scan result, etc). -

    - A scan set may be freed by a call to function - ZOOM_scanset_destroy. - Functions ZOOM_scanset_option_get and - ZOOM_scanset_option_set retrieves and sets - an option respectively. -

    - The startpqf is a subset of PQF, namely - the Attributes+Term part. Multiple @attr can - be used. For example to scan in title (complete) phrases: -


    -     @attr 1=4 @attr 6=2 "science o"
    -    

    -

    - The ZOOM_connecton_scan1 is a newer and - more generic alternative to ZOOM_connection_scan - which allows to use both CQL and PQF for Scan. -

    Table 3.4. ZOOM Scan Set Options

    OptionDescriptionDefault
    - numberNumber of Scan Terms requested in next scan. - After scan it holds the actual number of terms returned. - 10
    - positionPreferred Position of term in response - in next scan; actual position after completion of scan. - 1
    - stepSizeStep Size - 0
    - scanStatusAn integer indicating the Scan Status - of last scan. - 0
    - rpnCharsetCharacter set for RPN terms. - If this is set, ZOOM C will assume that the ZOOM application is - running UTF-8. Terms in RPN queries are then converted to the - rpnCharset. If this is unset, ZOOM C will not assume any encoding - of RPN terms and no conversion is performed. - none

    diff --git a/dependencies/yaz_3.0.14/doc/zoom.xml b/dependencies/yaz_3.0.14/doc/zoom.xml deleted file mode 100644 index f08adf6..0000000 --- a/dependencies/yaz_3.0.14/doc/zoom.xml +++ /dev/null @@ -1,1453 +0,0 @@ - - - ZOOM - - &zoom; is an acronym for 'Z39.50 Object-Orientation Model' and is - an initiative started by Mike Taylor (Mike is from the UK, which - explains the peculiar name of the model). The goal of &zoom; is to - provide a common Z39.50 client API not bound to a particular - programming language or toolkit. - - - - - A recent addition to &yaz; is SRU support. You can now make - SRU ZOOM connections by specifying scheme http:// - for the hostname for a connection. The dialect of SRU used is - specified by the value of the connection's sru - option, which may be SRU over HTTP GET (get), - SRU over HTTP POST (post) or SRW (SRU over - SOAP) (soap). Using the facility for embedding - options in target strings, a connection can be forced to use SRU - rather the SRW (the default) by prefixing the target string with - sru=get,, like this: - sru=get,http://sru.miketaylor.org.uk:80/sru.pl - - - - - The lack of a simple Z39.50 client API for &yaz; has become more - and more apparent over time. So when the first &zoom; specification - became available, - an implementation for &yaz; was quickly developed. For the first time, it is - now as easy (or easier!) to develop clients than servers with &yaz;. This - chapter describes the &zoom; C binding. Before going further, please - reconsider whether C is the right programming language for the job. - There are other language bindings available for &yaz;, and still - more - are in active development. See the - ZOOM web-site for - more information. - - - - In order to fully understand this chapter you should read and - try the example programs zoomtst1.c, - zoomtst2.c, .. in the zoom - directory. - - - - The C language misses features found in object oriented languages - such as C++, Java, etc. For example, you'll have to manually, - destroy all objects you create, even though you may think of them as - temporary. Most objects has a _create - and a - _destroy variant. - All objects are in fact pointers to internal stuff, but you don't see - that because of typedefs. All destroy methods should gracefully ignore a - NULL pointer. - - - In each of the sections below you'll find a sub section called - protocol behavior, that describes how the API maps to the Z39.50 - protocol. - - Connections - - The Connection object is a session with a target. - - - #include <yaz/zoom.h> - - ZOOM_connection ZOOM_connection_new (const char *host, int portnum); - - ZOOM_connection ZOOM_connection_create (ZOOM_options options); - - void ZOOM_connection_connect(ZOOM_connection c, const char *host, - int portnum); - void ZOOM_connection_destroy (ZOOM_connection c); - - - Connection objects are created with either function - ZOOM_connection_new or - ZOOM_connection_create. - The former creates and automatically attempts to establish a network - connection with the target. The latter doesn't establish - a connection immediately, thus allowing you to specify options - before establishing network connection using the function - ZOOM_connection_connect. - If the port number, portnum, is zero, the - host is consulted for a port specification. - If no port is given, 210 is used. A colon denotes the beginning of - a port number in the host string. If the host string includes a - slash, the following part specifies a database for the connection. - - - You can prefix the host with a scheme followed by colon. The - default scheme is tcp (Z39.50 protocol). - The scheme http selects SRU over HTTP. - - - You can prefix the scheme-qualified host-string with one or more - comma-separated - key=value - sequences, each of which represents an option to be set into the - connection structure before the - protocol-level connection is forged and the initialization - handshake takes place. This facility can be used to provide - authentication credentials, as in host-strings such as: - user=admin,password=halfAm4n,tcp:localhost:8017/db - - - Connection objects should be destroyed using the function - ZOOM_connection_destroy. - - - void ZOOM_connection_option_set(ZOOM_connection c, - const char *key, const char *val); - - void ZOOM_connection_option_setl(ZOOM_connection c, - const char *key, - const char *val, int len); - - const char *ZOOM_connection_option_get(ZOOM_connection c, - const char *key); - const char *ZOOM_connection_option_getl(ZOOM_connection c, - const char *key, - int *lenp); - - - The functions ZOOM_connection_option_set and - ZOOM_connection_option_setl allows you to - set an option given by key to the value - value for the connection. - For ZOOM_connection_option_set, the - value is assumed to be a 0-terminated string. Function - ZOOM_connection_option_setl specifies a - value of a certain size (len). - - - Functions ZOOM_connection_option_get and - ZOOM_connection_option_getl returns - the value for an option given by key. - - - ZOOM Connection Options - - - - - - - Option - Description - Default - - - - - implementationNameName of Your client - none - - userAuthentication user name - none - - groupAuthentication group name - none - - passwordAuthentication password. - none - - hostTarget host. This setting is "read-only". - It's automatically set internally when connecting to a target. - none - - proxyProxy host - none - - asyncIf true (1) the connection operates in - asynchronous operation which means that all calls are non-blocking - except - ZOOM_event. - 0 - - maximumRecordSize Maximum size of single record. - 1 MB - - preferredMessageSize Maximum size of multiple records. - 1 MB - - lang Language for negotiation. - none - - charset Character set for negotiation. - none - - serverImplementationId - Implementation ID of server. (The old targetImplementationId - option is also supported for the benefit of old applications.) - none - - targetImplementationName - Implementation Name of server. (The old - targetImplementationName option is also supported for the - benefit of old applications.) - none - - serverImplementationVersion - Implementation Version of server. (the old - targetImplementationVersion option is also supported for the - benefit of old applications.) - none - - databaseNameOne or more database names - separated by character plus (+), which to - be used by subsequent search requests on this Connection. - Default - - piggybackTrue (1) if piggyback should be - used in searches; false (0) if not. - 1 - - smallSetUpperBoundIf hits is less than or equal to this - value, then target will return all records using small element set name - 0 - - largeSetLowerBoundIf hits is greater than this - value, the target will return no records. - 1 - - mediumSetPresentNumberThis value represents - the number of records to be returned as part of a search when when - hits is less than or equal to large set lower bound and if hits - is greater than small set upper bound. - 0 - - smallSetElementSetName - The element set name to be used for small result sets. - none - - mediumSetElementSetName - The element set name to be for medium-sized result sets. - none - - init_opt_search, init_opt_present, init_opt_delSet, etc. - After a successful Init, these options may be interrogated to - discover whether the server claims to support the specified - operations. - none - - sru_version - SRU/SRW version. Should be 1.1, or - 1.2. This is , prior to connect, the version - to offer (highest version). And following connect (in fact - first operation), holds the negotiated version with the server - (same or lower version). - 1.2 - - -
    - - If either option lang or charset - is set, then - - Character Set and Language Negotiation is in effect. - - - int ZOOM_connection_error (ZOOM_connection c, const char **cp, - const char **addinfo); - int ZOOM_connection_error_x (ZOOM_connection c, const char **cp, - const char **addinfo, const char **dset); - - - Function ZOOM_connection_error checks for - errors for the last operation(s) performed. The function returns - zero if no errors occurred; non-zero otherwise indicating the error. - Pointers cp and addinfo - holds messages for the error and additional-info if passed as - non-NULL. Function - ZOOM_connection_error_x is an extended version - of ZOOM_connection_error that is capable of - returning name of diagnostic set in dset. - - - Z39.50 Protocol behavior - - The calls ZOOM_connection_new and - ZOOM_connection_connect establishes a TCP/IP - connection and sends an Initialize Request to the target if - possible. In addition, the calls waits for an Initialize Response - from the target and the result is inspected (OK or rejected). - - - If proxy is set then the client will establish - a TCP/IP connection with the peer as specified by the - proxy host and the hostname as part of the - connect calls will be set as part of the Initialize Request. - The proxy server will then "forward" the PDU's transparently - to the target behind the proxy. - - - For the authentication parameters, if option user - is set and both options group and - pass are unset, then Open style - authentication is used (Version 2/3) in which case the username - is usually followed by a slash, then by a password. - If either group - or pass is set then idPass authentication - (Version 3 only) is used. If none of the options are set, no - authentication parameters are set as part of the Initialize Request - (obviously). - - - When option async is 1, it really means that - all network operations are postponed (and queued) until the - function ZOOM_event is invoked. When doing so - it doesn't make sense to check for errors after - ZOOM_connection_new is called since that - operation "connecting - and init" is still incomplete and the - API cannot tell the outcome (yet). - - - - SRU Protocol behavior - - The SRU protocol doesn't feature an Inititialize Request, so - the connection phase merely establishes a TCP/IP connection - with the SOAP service. - - Most of the ZOOM connection options do not - affect SRU and they are ignored. However, future versions - of &yaz; might honor implementationName and - put that as part of User-Agent header for HTTP requests. - - - The charset is used in the Content-Type header - of HTTP requests. - - -
    - Queries - - Query objects represents queries. - - - ZOOM_query ZOOM_query_create(void); - - void ZOOM_query_destroy(ZOOM_query q); - - int ZOOM_query_prefix(ZOOM_query q, const char *str); - - int ZOOM_query_cql(ZOOM_query s, const char *str); - - int ZOOM_query_sortby(ZOOM_query q, const char *criteria); - - - Create query objects using ZOOM_query_create - and destroy them by calling ZOOM_query_destroy. - RPN-queries can be specified in PQF - notation by using the - function ZOOM_query_prefix. - The ZOOM_query_cql specifies a CQL - query to be sent to the server/target. - More query types will be added in future versions of &yaz;, such as - CCL to RPN-mapping, native CCL query, - etc. In addition to a search, a sort criteria may be set. Function - ZOOM_query_sortby specifies a - sort criteria using the same string notation for sort as offered by - the YAZ client. - - Protocol behavior - - The query object is just an interface for the member Query - in the SearchRequest. The sortby-function is an interface to the - sortSequence member of the SortRequest. - - - - Result sets - - The result set object is a container for records returned from - a target. - - - ZOOM_resultset ZOOM_connection_search(ZOOM_connection, - ZOOM_query q); - - ZOOM_resultset ZOOM_connection_search_pqf(ZOOM_connection c, - const char *q); - - void ZOOM_resultset_destroy(ZOOM_resultset r); - - - Function ZOOM_connection_search creates - a result set given a connection and query. - Destroy a result set by calling - ZOOM_resultset_destroy. - Simple clients may using PQF only may use function - ZOOM_connection_search_pqf in which case - creating query objects is not necessary. - - - void ZOOM_resultset_option_set (ZOOM_resultset r, - const char *key, - const char *val); - - const char *ZOOM_resultset_option_get (ZOOM_resultset r, - const char *key); - - size_t ZOOM_resultset_size (ZOOM_resultset r); - - - Functions ZOOM_resultset_options_set and - ZOOM_resultset_get sets and gets an option - for a result set similar to ZOOM_connection_option_get - and ZOOM_connection_option_set. - - - The number of hits also called result-count is returned by - function ZOOM_resultset_size. - - ZOOM Result set Options - - - - - - - Option - Description - Default - - - - - startOffset of first record to be - retrieved from target. First record has offset 0 unlike the - protocol specifications where first record has position 1. - 0 - - countNumber of records to be retrieved. - 0 - - presentChunkThe number of records to be - requested from the server in each chunk (present requst). The - value 0 means to request all the records in a single chunk. - (The old step - option is also supported for the benefit of old applications.) - 0 - - elementSetNameElement-Set name of records. - Most targets should honor element set name B - and F for brief and full respectively. - none - - preferredRecordSyntaxPreferred Syntax, such as - USMARC, SUTRS, etc. - none - - schemaSchema for retrieval, such as - Gils-schema, Geo-schema, etc. - none - - setnameName of Result Set (Result Set ID). - If this option isn't set, the ZOOM module will automatically - allocate a result set name. - default - - rpnCharsetCharacter set for RPN terms. - If this is set, ZOOM C will assume that the ZOOM application is - running UTF-8. Terms in RPN queries are then converted to the - rpnCharset. If this is unset, ZOOM C will not assume any encoding - of RPN terms and no conversion is performed. - none - - -
    - - For servers that support Search Info report, the following - options may be read using ZOOM_resultset_get. - This detailed information is read after a successful search has - completed. - - - This information is a list of of items, where each item is - information about a term or subquery. All items in the list - are prefixed by - SearchResult.no - where no presents the item number (0=first, 1=second). - Read searchresult.size to determine the - number of items. - - Search Info Report Options - - - - - - Option - Description - - - - - searchresult.size - - number of search result entries. This option is-nonexistant - if no entries are returned by the server. - - - - searchresult.no.id - sub query ID - - - searchresult.no.count - result count for item (number of hits) - - - searchresult.no.subquery.term - subquery term - - - - searchresult.no.interpretation.term - - interpretation term - - - - searchresult.no.recommendation.term - - recommendation term - - - -
    - - Z39.50 Protocol behavior - - The creation of a result set involves at least a SearchRequest - - SearchResponse protocol handshake. Following that, if a sort - criteria was specified as part of the query, a SortRequest - - SortResponse handshake takes place. Note that it is necessary to - perform sorting before any retrieval takes place, so no records will - be returned from the target as part of the SearchResponse because these - would be unsorted. Hence, piggyback is disabled when sort criteria - are set. Following Search - and a possible sort - Retrieval takes - place - as one or more Present Requests/Response pairs being - transferred. - - - The API allows for two different modes for retrieval. A high level - mode which is somewhat more powerful and a low level one. - The low level is enabled when searching on a Connection object - for which the settings - smallSetUpperBound, - mediumSetPresentNumber and - largeSetLowerBound are set. The low level mode - thus allows you to precisely set how records are returned as part - of a search response as offered by the Z39.50 protocol. - Since the client may be retrieving records as part of the - search response, this mode doesn't work well if sorting is used. - - - The high-level mode allows you to fetch a range of records from - the result set with a given start offset. When you use this mode - the client will automatically use piggyback if that is possible - with the target and perform one or more present requests as needed. - Even if the target returns fewer records as part of a present response - because of a record size limit, etc. the client will repeat sending - present requests. As an example, if option start - is 0 (default) and count is 4, and - piggyback is 1 (default) and no sorting criteria - is specified, then the client will attempt to retrieve the 4 - records as part the search response (using piggyback). On the other - hand, if either start is positive or if - a sorting criteria is set, or if piggyback - is 0, then the client will not perform piggyback but send Present - Requests instead. - - - If either of the options mediumSetElementSetName and - smallSetElementSetName are unset, the value - of option elementSetName is used for piggyback - searches. This means that for the high-level mode you only have - to specify one elementSetName option rather than three. - - - - SRU Protocol behavior - - Current version of &yaz; does not take advantage of a result set id - returned by the SRU server. Future versions might do, however. - Since, the ZOOM driver does not save result set IDs any - present (retrieval) is transformed to a SRU SearchRetrieveRequest - with same query but, possibly, different offsets. - - - Option schema specifies SRU schema - for retrieval. However, options elementSetName and - preferredRecordSyntax are ignored. - - - Options start and count - are supported by SRU. - The remaining options - piggyback, - smallSetUpperBound, - largeSetLowerBound, - mediumSetPresentNumber, - mediumSetElementSetName, - smallSetElementSetName are - unsupported. - - - SRU supports CQL queries, not PQF. - If PQF is used, however, the PQF query is transferred anyway - using non-standard element pQuery in - SRU SearchRetrieveRequest. - - - Unfortunately, SRU does not define a database setting. Hence, - databaseName is unsupported and ignored. - However, the path part in host parameter for functions - ZOOM_connecton_new and - ZOOM_connection_connect acts as a - database (at least for the &yaz; SRU server). - - -
    - Records - - A record object is a retrieval record on the client side - - created from result sets. - - - void ZOOM_resultset_records(ZOOM_resultset r, - ZOOM_record *recs, - size_t start, size_t count); - ZOOM_record ZOOM_resultset_record(ZOOM_resultset s, size_t pos); - - const char *ZOOM_record_get(ZOOM_record rec, const char *type, - size_t *len); - - int ZOOM_record_error(ZOOM_record rec, const char **msg, - const char **addinfo, const char **diagset); - - ZOOM_record ZOOM_record_clone (ZOOM_record rec); - - void ZOOM_record_destroy (ZOOM_record rec); - - - References to temporary records are returned by functions - ZOOM_resultset_records or - ZOOM_resultset_record. - - - If a persistent reference to a record is desired - ZOOM_record_clone should be used. - It returns a record reference that should be destroyed - by a call to ZOOM_record_destroy. - - - A single record is returned by function - ZOOM_resultset_record that takes a - position as argument. First record has position zero. - If no record could be obtained NULL is returned. - - - Error information for a record can be checked with - ZOOM_record_error which returns non-zero - (error code) if record is in error, called Surrogate - Diagnostics in Z39.50. - - - Function ZOOM_resultset_records retrieves - a number of records from a result set. Parameter start - and count specifies the range of records to - be returned. Upon completion array - recs[0], ..recs[count-1] - holds record objects for the records. The array of records - recs should be allocated prior the call - ZOOM_resultset_records. Note that for those - records that couldn't be retrieved from the target - recs[ ..] is set to NULL. - - - In order to extract information about a single record, - ZOOM_record_get is provided. The - function returns a pointer to certain record information. The - nature (type) of the pointer depends on the parameter, - type. - - - The type is a string of the format: - - - form[; charset=from[,to]] - - - where form specifies the format of the - returned record, from - specifies the character set of the record in its original form - (as returned by the server), to specifies - the output (returned) - character set encoding. - If charset is not given, then no character set conversion takes place. - If to is omitted UTF-8 is assumed. - - - In addition, for certain types, the length - len passed will be set to the size in bytes of - the returned information. - - - The following are the supported values for form. - - database - Database of record is returned - as a C null-terminated string. Return type - const char *. - - - syntax - The transfer syntax of the record is returned - as a C null-terminated string containing the symbolic name of - the record syntax, e.g. Usmarc. Return type - is - const char *. - - - schema - The schema of the record is returned - as a C null-terminated string. Return type is - const char *. - - - render - The record is returned in a display friendly - format. Upon completion buffer is returned - (type const char *) and length is stored in - *len. - - - raw - The record is returned in the internal - YAZ specific format. For GRS-1, Explain, and others, the - raw data is returned as type - Z_External * which is just the type for - the member retrievalRecord in - type NamePlusRecord. - For SUTRS and octet aligned record (including all MARCs) the - octet buffer is returned and the length of the buffer. - - - xml - The record is returned in XML if possible. - SRU and Z39.50 records with transfer syntax XML are - returned verbatim. MARC records are returned in - - MARCXML - - (converted from ISO2709 to MARCXML by YAZ). - GRS-1 and OPAC records are not supported for this form. - Upon completion, the XML buffer is returned - (type const char *) and length is stored in - *len. - - - opac - OPAC for record is returned in XML. - - - - - - Most - MARC21 - records uses the - MARC-8 - character set encoding. - An application that wishes to display in Latin-1 would use - - render; charset=marc8,iso-8859-1 - - - - Z39.50 Protocol behavior - - The functions ZOOM_resultset_record and - ZOOM_resultset_records inspects the client-side - record cache. Records not found in cache are fetched using - Present. - The functions may block (and perform network I/O) - even though option - async is 1, because they return records objects. - (and there's no way to return records objects without retrieving them!). - - - There is a trick, however, in the usage of function - ZOOM_resultset_records that allows for - delayed retrieval (and makes it non-blocking). By using - a null pointer for recs you're indicating - you're not interested in getting records objects - now. - - - - SRU Protocol behavior - - The ZOOM driver for SRU treats records returned by a SRU server - as if they where Z39.50 records with transfer syntax XML and - no element set name or database name. - - - - Scan - - This section describes an interface for Scan. Scan is not an - official part of the ZOOM model yet. The result of a scan operation - is the ZOOM_scanset which is a set of terms - returned by a target. - - - - The Scan interface is supported for both Z39.50 and SRU. - - - - ZOOM_scanset ZOOM_connection_scan(ZOOM_connection c, - const char *startpqf); - - ZOOM_scanset ZOOM_connection_scan1(ZOOM_connection c, - ZOOM_query q); - - size_t ZOOM_scanset_size(ZOOM_scanset scan); - - const char * ZOOM_scanset_term(ZOOM_scanset scan, size_t pos, - int *occ, size_t *len); - - const char * ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos, - int *occ, size_t *len); - - void ZOOM_scanset_destroy (ZOOM_scanset scan); - - const char *ZOOM_scanset_option_get(ZOOM_scanset scan, - const char *key); - - void ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key, - const char *val); - - - The scan set is created by function - ZOOM_connection_scan which performs a scan - operation on the connection using the specified - startpqf. - If the operation was successful, the size of the scan set can be - retrieved by a call to ZOOM_scanset_size. - Like result sets, the items are numbered 0,..size-1. - To obtain information about a particular scan term, call function - ZOOM_scanset_term. This function takes - a scan set offset pos and returns a pointer - to a raw term or NULL if - non-present. - If present, the occ and len - are set to the number of occurrences and the length - of the actual term respectively. - ZOOM_scanset_display_term is similar to - ZOOM_scanset_term except that it returns - the display term rather than the raw term. - In a few cases, the term is different from display term. Always - use the display term for display and the raw term for subsequent - scan operations (to get more terms, next scan result, etc). - - - A scan set may be freed by a call to function - ZOOM_scanset_destroy. - Functions ZOOM_scanset_option_get and - ZOOM_scanset_option_set retrieves and sets - an option respectively. - - - - The startpqf is a subset of PQF, namely - the Attributes+Term part. Multiple @attr can - be used. For example to scan in title (complete) phrases: - - @attr 1=4 @attr 6=2 "science o" - - - - - The ZOOM_connecton_scan1 is a newer and - more generic alternative to ZOOM_connection_scan - which allows to use both CQL and PQF for Scan. - - - - ZOOM Scan Set Options - - - - - - - Option - Description - Default - - - - - numberNumber of Scan Terms requested in next scan. - After scan it holds the actual number of terms returned. - 10 - - positionPreferred Position of term in response - in next scan; actual position after completion of scan. - 1 - - stepSizeStep Size - 0 - - scanStatusAn integer indicating the Scan Status - of last scan. - 0 - - rpnCharsetCharacter set for RPN terms. - If this is set, ZOOM C will assume that the ZOOM application is - running UTF-8. Terms in RPN queries are then converted to the - rpnCharset. If this is unset, ZOOM C will not assume any encoding - of RPN terms and no conversion is performed. - none - - -
    -
    - - Extended Services - - ZOOM offers an interface to a subset of the Z39.50 extended services - as well as a few privately defined ones: - - - - - Z39.50 Item Order (ILL). - See . - - - - - Record Update. This allows a client to insert, modify or delete - records. - See . - - - - - Database Create. This a non-standard feature. Allows a client - to create a database. - See . - - - - - Database Drop. This a non-standard feature. Allows a client - to delete/drop a database. - See . - - - - - Commit operation. This a non-standard feature. Allows a client - to commit operations. - See . - - - - - - To create an extended service operation a ZOOM_package - must be created. The operation is a five step operation. The - package is created, package is configured by means of options, - the package is send, result is inspected (by means of options), - the package is destroyed. - - - ZOOM_package ZOOM_connection_package(ZOOM_connection c, - ZOOM_options options); - - const char *ZOOM_package_option_get(ZOOM_package p, - const char *key); - void ZOOM_package_option_set(ZOOM_package p, const char *key, - const char *val); - void ZOOM_package_send(ZOOM_package p, const char *type); - - void ZOOM_package_destroy(ZOOM_package p); - - - The ZOOM_connection_package creates a - package for the connection given using the options specified. - - - Functions ZOOM_package_option_get and - ZOOM_package_option_set gets and sets - options. - - - ZOOM_package_send sends - the package the via connection specified in - ZOOM_connection_package. - The type specifies the actual extended service - package type to be sent. - - - - Extended Service Common Options - - - - - - - Option - Description - Default - - - - - package-name - Extended Service Request package name. Must be specified - as part of a request - none - - - user-id - User ID of Extended Service Package. Is a request option - none - - - function - - Function of package - one of create, - delete, modify. Is - a request option. - - create - - - waitAction - - Wait action for package. Possible values: - wait, waitIfPossible, - dontWait or dontReturnPackage. - - waitIfPossible - - - targetReference - - Target Reference. This is part of the response as returned - by the server. Read it after a successful operation. - - none - - - -
    - - Item Order - - For Item Order, type must be set to itemorder in - ZOOM_package_send. - - - - Item Order Options - - - - - - - Option - Description - Default - - - - - contact-name - ILL contact name - none - - - contact-phone - ILL contact phone - none - - - contact-email - ILL contact email - none - - - itemorder-item - Position for item (record) requested. An integer - 1 - - - -
    - -
    - - Record Update - - For Record Update, type must be set to update in - ZOOM_package_send. - - - - Record Update Options - - - - - - - Option - Description - Default - - - - - action - - The update action. One of - specialUpdate, - recordInsert, - recordReplace, - recordDelete, - elementUpdate. - - specialUpdate (recordInsert for updateVersion=1 which does not support specialUpdate) - - - recordIdOpaque - Opaque Record ID - none - - - recordIdNumber - Record ID number - none - - - record - The record itself - none - - - syntax - The record syntax (transfer syntax). Is a string that - is a known record syntax. - - no syntax - - - databaseName - Database from connection object - Default - - - correlationInfo.note - Correlation Info Note (string) - none - - - correlationInfo.id - Correlation Info ID (integer) - none - - - elementSetName - Element Set for Record - none - - - updateVersion - Record Update version which holds one of the values - 1, 2 or 3. Each version has a distinct OID: - 1.2.840.10003.9.5 - (first version) , - 1.2.840.10003.9.5.1 - (second version) and - 1.2.840.10003.9.5.1.1 - (third and - newest version). - - 3 - - - -
    - -
    - - Database Create - - For Database Create, type must be set to create in - ZOOM_package_send. - - - - Database Create Options - - - - - - - Option - Description - Default - - - - - databaseName - Database from connection object - Default - - - -
    -
    - - Database Drop - - For Database Drop, type must be set to drop in - ZOOM_package_send. - - - - Database Drop Options - - - - - - - Option - Description - Default - - - - - databaseName - Database from connection object - Default - - - -
    -
    - - Commit Operation - - For Commit, type must be set to commit in - ZOOM_package_send. - - - - - Protocol behavior - - All the extended services are Z39.50-only. - - - - The database create, drop and commit services are privately defined - operations. - Refer to esadmin.asn in YAZ for the ASN.1 - definitions. - - - -
    - - Options - - Most &zoom; objects provide a way to specify options to change behavior. - From an implementation point of view a set of options is just like - an associative array / hash. - - - ZOOM_options ZOOM_options_create (void); - - ZOOM_options ZOOM_options_create_with_parent (ZOOM_options parent); - - void ZOOM_options_destroy (ZOOM_options opt); - - - const char *ZOOM_options_get (ZOOM_options opt, const char *name); - - void ZOOM_options_set (ZOOM_options opt, const char *name, - const char *v); - - - typedef const char *(*ZOOM_options_callback) - (void *handle, const char *name); - - ZOOM_options_callback - ZOOM_options_set_callback (ZOOM_options opt, - ZOOM_options_callback c, - void *handle); - - - Events - - If you're developing non-blocking applications, you have to deal - with events. - - - int ZOOM_event (int no, ZOOM_connection *cs); - - - The ZOOM_event executes pending events for - a number of connections. Supply the number of connections in - no and an array of connections in - cs (cs[0] ... cs[no-1]). - A pending event could be a sending a search, receiving a response, - etc. - When an event has occurred for one of the connections, this function - returns a positive integer n denoting that an event - occurred for connection cs[n-1]. - When no events are pending for the connections, a value of zero is - returned. - To ensure that all outstanding requests are performed call this function - repeatedly until zero is returned. - - - If ZOOM_event returns and returns non-zero, the - last event that occurred can be expected. - - - int ZOOM_connection_last_event(ZOOM_connection cs); - - - ZOOM_connection_last_event returns an event type - (integer) for the last event. - - - - ZOOM Event IDs - - - - - - Event - Description - - - - - ZOOM_EVENT_NONE - No event has occurred - - - ZOOM_EVENT_CONNECT - TCP/IP connect has initiated - - - ZOOM_EVENT_SEND_DATA - Data has been transmitted (sending) - - - ZOOM_EVENT_RECV_DATA - Data has been received) - - - ZOOM_EVENT_TIMEOUT - Timeout - - - ZOOM_EVENT_UNKNOWN - Unknown event - - - ZOOM_EVENT_SEND_APDU - An APDU has been transmitted (sending) - - - ZOOM_EVENT_RECV_APDU - An APDU has been received - - - ZOOM_EVENT_RECV_RECORD - A result-set record has been received - - - ZOOM_EVENT_RECV_SEARCH - A search result been received - - - -
    -
    -
    - - - diff --git a/dependencies/yaz_3.0.14/doc/zoomsh-man.xml b/dependencies/yaz_3.0.14/doc/zoomsh-man.xml deleted file mode 100644 index 08e21f4..0000000 --- a/dependencies/yaz_3.0.14/doc/zoomsh-man.xml +++ /dev/null @@ -1,173 +0,0 @@ - - %local; - - %entities; - - %idcommon; -]> - - - - YAZ - &version; - - - - zoomsh - 1 - - - - zoomsh - ZOOM shell - - - - - zoomsh - commands - - - - DESCRIPTION - - zoomsh is a ZOOM client with a simple - command line interface. The client demonstrates the ZOOM - API and is useful for testing targets. - - - You may pass one or more commands to zoomsh. - These commands are invoked first. - - - EXAMPLES - - If you start the yaz-ztest in one console you - can use the ZOOM shell as follows: - connect localhost:9999 -ZOOM>search computer -localhost:9999: 7 hits -ZOOM>show 0 1 -1 Default USmarc -001 11224466 -003 DLC -005 00000000000000.0 -008 910710c19910701nju 00010 eng -010 $a 11224466 -040 $a DLC $c DLC -050 00 $a 123-xyz -100 10 $a Jack Collins -245 10 $a How to program a computer -260 1 $a Penguin -263 $a 8710 -300 $a p. cm. -ZOOM>quit -]]> - - - - You can also achieve the same result by passing the commands - as arguments on a single command line: - - - $ zoomsh "connect localhost:9999" "search computer" - "show 0 1" quit - - - COMMANDS - - - connect - zurl - - Connects to the target given by zurl. - - - close - [zurl] - - Closes connection to target given by - zurl or all targets if - zurl was omitted. - - - show - [start - [count]] - - - Displays count records starting at offset given - by start. First records has offset 0 - (unlike the Z39.50 protocol). - - - quit - - - Quits zoomsh. - - - set - name - [value] - - - Sets option name to - value. - - - get - name - - - Prints value of option name. - - - help - - - Prints list of available commands. - - - - - - SEE ALSO - - - yaz - 7 - , - - yaz-ztest - 8 - , - - - Section "Building clients with ZOOM" in the YAZ manual. - - - ZOOM home page. - - - - - diff --git a/dependencies/yaz_3.0.14/etc/MARC21slim2DC.xsl b/dependencies/yaz_3.0.14/etc/MARC21slim2DC.xsl deleted file mode 100644 index 2b038c9..0000000 --- a/dependencies/yaz_3.0.14/etc/MARC21slim2DC.xsl +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - abfghk - - - - - - - - - - - - - - yes - - - - yes - - - - text - cartographic - notated music - sound recording - still image - moving image - three dimensional object - software, multimedia - mixed material - - - - - - - - - - - - - ab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcd - - - - - - - - abcdu - - - - - - - - ot - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dependencies/yaz_3.0.14/etc/MARC21slim2MODS.xsl b/dependencies/yaz_3.0.14/etc/MARC21slim2MODS.xsl deleted file mode 100644 index ff35524..0000000 --- a/dependencies/yaz_3.0.14/etc/MARC21slim2MODS.xsl +++ /dev/null @@ -1,1873 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - BK - SE - - - BK - MM - CF - MP - VM - MU - - - - - - - - - - abfghk - - - - - - - - - - - <xsl:value-of select="substring($title,@ind2+1)"/> - - - - - <xsl:value-of select="$title"/> - - - - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abh</xsl:with-param> - </xsl:call-template> - - - - - - - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abfh</xsl:with-param> - </xsl:call-template> - - - - - - - - - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="(contains('adfhklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> - <xsl:value-of select="text()"/><xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ah</xsl:with-param> - </xsl:call-template> - - - - - - - - - - creator - - - - - - - - - creator - - - - - - - - creator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - personal - - - - - - - - - - - yes - - - yes - - - - text - cartographic - notated music - sound recording - still image - moving image - three dimensional object - software, multimedia - mixed material - - - - - globe - - - - remote sensing image - - - - - - - map - - - atlas - - - - - - - - - database - - - loose-leaf - - - series - - - newspaper - - - periodical - - - web site - - - - - - - - - abstract or summary - - - bibliography - - - catalog - - - dictionary - - - encyclopedia - - - handbook - - - legal article - - - index - - - discography - - - legislation - - - theses - - - survey of literature - - - review - - - programmed text - - - filmography - - - directory - - - statistics - - - technical report - - - legal case and case notes - - - law report or digest - - - treaty - - - - - - conference publication - - - - - - - - - numeric data - - - database - - - font - - - game - - - - - - - patent - - - festschrift - - - - - biography - - - - - - essay - - - drama - - - comic strip - - - fiction - - - humor, satire - - - letter - - - novel - - - short story - - - speech - - - - - - - - biography - - - conference publication - - - drama - - - essay - - - fiction - - - folktale - - - history - - - humor, satire - - - memoir - - - poetry - - - rehersal - - - reporting - - - sound - - - speech - - - - - - - - art original - - - kit - - - art reproduction - - - diorama - - - filmstrip - - - legal article - - - picture - - - graphic - - - technical drawing - - - motion picture - - - chart - - - flash card - - - microscope slide - - - model - - - realia - - - slide - - - transparency - - - videorecording - - - toy - - - - - - - - - - - abvxyz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - monographic - continuing - - - - - - - - ab - - - - - - - - - - - - rfc3066 - - - iso639-2b - - - - - - - - - - - - - - - - - reformatted digital - - - - - - - - - - - - - - - - - - - -
    braille
    -
    - -
    electronic
    -
    - -
    microfiche
    -
    - -
    microfilm
    -
    -
    - - - - - - - - -
    - - - -
    -
    - - - - - abce - - - -
    - - - - - - - - - - - - ab - - - - - - - - - agrt - - - - - - - - ab - - - - - - - - - adolescent - - - adult - - - general - - - juvenile - - - preschool - - - specialized - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - defg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ab - - - - - - - - abx - - - - - - - - ab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ab - - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">av</xsl:with-param> - </xsl:call-template> - <xsl:call-template name="part"/> - - - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">av</xsl:with-param> - </xsl:call-template> - <xsl:call-template name="part"/> - - - - - - - - - - - - - - - - - - - - - - - - - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - - - - - - - abcq - t - g - - - - - - - - - - - - - - - - - - - - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">dg</xsl:with-param> - </xsl:call-template> - - - - - - - - - - - - - - - - - c - t - dgn - - - - - - - - - - - - - - - - - - - - - - - - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - - - - - - - aqdc - t - gn - - - - - - - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfgklmorsv</xsl:with-param> - </xsl:call-template> - - - - - - - - - - - - - - <xsl:value-of select="marc:subfield[@code='a']"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - - - - - - - - - abcq - t - g - - - - - - - - - - - - - - - - - - - - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">dg</xsl:with-param> - </xsl:call-template> - - - - - - - - - - - - - - - - - c - t - dgn - - - - - - - - - - - - - - - - - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - - - - - - - aqdc - t - gn - - - - - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfgklmorsv</xsl:with-param> - </xsl:call-template> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - issue number - matrix number - music plate - music publisher - videorecording identifier - - - - ab - - - - - - - - ab - - - - - - - - - doi - uri - - - - - - - - - - - - - - - - abj - - - - - - - - abcd35 - - - - - - - - abcde35 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - n - n - fghkdlmor - - - - - p - p - fghkdlmor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - -
    -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - cdn - - - - - - - - - - - abcq - - - - - - - - - - - acdeq - - - - - - - - constituent - related - - - - - - - - - <xsl:value-of select="."/> - - - - - - - - - - <xsl:value-of select="."/> - - - - - - - - - - - - - - - - - - - - - - - - lcsh - lcshac - mesh - csh - nal - rvm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - abcq - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - cdnp - - - - - - - - - - - - - - - - abcdeqnp - - - - - - - - - - - - - - - - - - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfhklor</xsl:with-param> - </xsl:call-template> - <xsl:call-template name="part"/> - - - - - - - - - - - - - - abcd - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/etc/MARC21slim2RDFDC.xsl b/dependencies/yaz_3.0.14/etc/MARC21slim2RDFDC.xsl deleted file mode 100644 index 2e81677..0000000 --- a/dependencies/yaz_3.0.14/etc/MARC21slim2RDFDC.xsl +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - abfghk - - - - - - - - - - - - - - yes - - - - yes - - - - text - cartographic - notated music - sound recording - still image - moving image - three dimensional object - software, multimedia - mixed material - - - - - - - - - - - - - ab - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcdq - - - - - - - - abcd - - - - - - - - abcdu - - - - - - - - ot - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/etc/MARC21slimUtils.xsl b/dependencies/yaz_3.0.14/etc/MARC21slimUtils.xsl deleted file mode 100644 index acfe598..0000000 --- a/dependencies/yaz_3.0.14/etc/MARC21slimUtils.xsl +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/etc/maps.xml b/dependencies/yaz_3.0.14/etc/maps.xml deleted file mode 100644 index 083204b..0000000 --- a/dependencies/yaz_3.0.14/etc/maps.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dependencies/yaz_3.0.14/etc/pqf.properties b/dependencies/yaz_3.0.14/etc/pqf.properties deleted file mode 100644 index c24b1d0..0000000 --- a/dependencies/yaz_3.0.14/etc/pqf.properties +++ /dev/null @@ -1,157 +0,0 @@ -# $Id: pqf.properties,v 1.13 2006/09/20 10:12:29 mike Exp $ -# -# Propeties file to drive org.z3950.zing.cql.CQLNode's toPQF() -# back-end and the YAZ CQL-to-PQF converter. This specifies the -# interpretation of various CQL indexes, relations, etc. in terms -# of Type-1 query attributes. -# -# This configuration file generates queries using BIB-1 attributes. -# See http://www.loc.gov/z3950/agency/zing/cql/dc-indexes.html -# for the Maintenance Agency's work-in-progress mapping of Dublin Core -# indexes to Attribute Architecture (util, XD and BIB-2) -# attributes. - -# Identifiers for prefixes used in this file. (index.*) -set.cql = info:srw/cql-context-set/1/cql-v1.1 -set.rec = info:srw/cql-context-set/2/rec-1.1 -set.dc = info:srw/cql-context-set/1/dc-v1.1 -set.bath = http://zing.z3950.org/cql/bath/2.0/ - -# The default set when an index doesn't specify one: Dublin Core -set = info:srw/cql-context-set/1/dc-v1.1 - -# The default index when none is specified by the query -index.cql.serverChoice = 1=1016 - # srw.serverChoice is deprecated in favour of cql.serverChoice - # BIB-1 "any" -index.cql.allRecords = 1=_ALLRECORDS 2=103 - -index.rec.id = 1=12 - -index.dc.title = 1=4 -index.dc.subject = 1=21 -index.dc.creator = 1=1003 -index.dc.author = 1=1003 - ### Unofficial synonym for "creator" -index.dc.editor = 1=1020 -index.dc.publisher = 1=1018 -index.dc.description = 1=62 - # "abstract" -index.dc.date = 1=30 -index.dc.resourceType = 1=1031 - # guesswork: "Material-type" -index.dc.format = 1=1034 - # guesswork: "Content-type" -index.dc.resourceIdentifier = 1=12 - # "Local number" -index.dc.source = 1=1019 - # "Record-source" -index.dc.language = 1=54 - # "Code--language" -index.dc.relation = 1=? - ### No idea how to represent this -index.dc.coverage = 1=? - ### No idea how to represent this -index.dc.rights = 1=? - ### No idea how to represent this - -# Relation attributes are selected according to the CQL relation by -# looking up the "relation." property: -# -relation.< = 2=1 -relation.le = 2=2 -relation.eq = 2=3 -relation.exact = 2=3 -relation.ge = 2=4 -relation.> = 2=5 -relation.<> = 2=6 - -# These two are what Zebra uses -- may not work on other servers -relation.all = 4=6 -relation.any = 4=105 - -# BIB-1 doesn't have a server choice relation, so we just make the -# choice here, and use equality (which is clearly correct). -relation.scr = 2=3 - -# Relation modifiers. -# -relationModifier.relevant = 2=102 -relationModifier.fuzzy = 5=103 - ### truncation=regExpr-2 (5=103) in Zebra is "fuzzy matching" -relationModifier.stem = 2=101 -relationModifier.phonetic = 2=100 - -# Non-standard extensions to provoke Zebra's inline sorting -relationModifier.sort = 7=1 -relationModifier.sort-desc = 7=2 -relationModifier.numeric = 4=109 - -# Position attributes may be specified for anchored terms (those -# beginning with "^", which is stripped) and unanchored (those not -# beginning with "^"). This may change when we get a BIB-1 truncation -# attribute that says "do what CQL does". -# -position.first = 3=1 6=1 - # "first in field" -position.any = 3=3 6=1 - # "any position in field" -position.last = 3=4 6=1 - # not a standard BIB-1 attribute -position.firstAndLast = 3=3 6=3 - # search term is anchored to be complete field - -# Structure attributes may be specified for individual relations; a -# default structure attribute my be specified by the pseudo-relation -# "*", to be used whenever a relation not listed here occurs. -# -structure.exact = 4=108 - # string -structure.all = 4=2 -structure.any = 4=2 -structure.* = 4=1 - # phrase - -# Truncation attributes used to implement CQL wildcard patterns. The -# simpler forms, left, right- and both-truncation will be used for the -# simplest patterns, so that we produce PQF queries that conform more -# closely to the Bath Profile. However, when a more complex pattern -# such as "foo*bar" is used, we fall back on Z39.58-style masking. -# -truncation.right = 5=1 -truncation.left = 5=2 -truncation.both = 5=3 -truncation.none = 5=100 -truncation.regexp = 5=102 -truncation.z3958 = 5=104 - -# Finally, any additional attributes that should always be included -# with each term can be specified in the "always" property. -# -always = 6=1 -# 6=1: completeness = incomplete subfield - - -# Bath Profile support, added Thu Dec 18 13:06:20 GMT 2003 -# See the Bath Profile for SRW at -# http://zing.z3950.org/cql/bath.html -# including the Bath Context Set defined within that document. -# -# In this file, we only map index-names to BIB-1 use attributes, doing -# so in accordance with the specifications of the Z39.50 Bath Profile, -# and leaving the relations, wildcards, etc. to fend for themselves. - -index.bath.keyTitle = 1=33 -index.bath.possessingInstitution = 1=1044 -index.bath.name = 1=1002 -index.bath.personalName = 1=1 -index.bath.corporateName = 1=2 -index.bath.conferenceName = 1=3 -index.bath.uniformTitle = 1=6 -index.bath.isbn = 1=7 -index.bath.issn = 1=8 -index.bath.geographicName = 1=58 -index.bath.notes = 1=63 -index.bath.topicalSubject = 1=1079 -index.bath.genreForm = 1=1075 - diff --git a/dependencies/yaz_3.0.14/etc/yazgfs.xml b/dependencies/yaz_3.0.14/etc/yazgfs.xml deleted file mode 100644 index 9652102..0000000 --- a/dependencies/yaz_3.0.14/etc/yazgfs.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - tcp:@:9000 - - . - zebra.cfg - pqf.properties - xsl - xsl/default.xsl - 2000000 - - - - - - - - - - - - - - - - - - myserver.org - 9000 - Default - - - - - diff --git a/dependencies/yaz_3.0.14/include/yaz/backend.h b/dependencies/yaz_3.0.14/include/yaz/backend.h deleted file mode 100644 index a23eec2..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/backend.h +++ /dev/null @@ -1,395 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: backend.h,v 1.48 2007/05/30 08:12:17 adam Exp $ */ - -/** - * \file backend.h - * \brief Header for GFS - * - * This header includes all public definitions for the - * Generic Frontend Server (GFS). - */ - -#ifndef BACKEND_H -#define BACKEND_H - -#include -#include -#include -#include - -YAZ_BEGIN_CDECL - -typedef struct request *bend_request; -typedef struct association *bend_association; - -/** \brief Information for Z39.50/SRU search handler */ -typedef struct { - char *setname; /* name to give to this set */ - int replace_set; /* replace set, if it already exists */ - int num_bases; /* number of databases in list */ - char **basenames; /* databases to search */ - Z_ReferenceId *referenceId;/* reference ID */ - Z_Query *query; /* query structure */ - ODR stream; /* encode stream */ - ODR decode; /* decode stream */ - ODR print; /* print stream */ - - bend_request request; - bend_association association; - int *fd; - int hits; /* number of hits */ - int errcode; /* 0==OK */ - char *errstring; /* system error string or NULL */ - Z_OtherInformation *search_info; /* additional search info */ - char *srw_sortKeys; /* holds SRU/SRW sortKeys info */ - char *srw_setname; /* holds SRU/SRW generated resultsetID */ - int *srw_setnameIdleTime; /* holds SRU/SRW life-time */ - int estimated_hit_count; /* if hit count is estimated */ - int partial_resultset; /* if result set is partial */ -} bend_search_rr; - -/** \brief Information for present handler. Does not replace bend_fetch. */ -typedef struct { - char *setname; /* set name */ - int start; - int number; /* record number */ - Odr_oid *format; /* format, transfer syntax (OID) */ - Z_ReferenceId *referenceId;/* reference ID */ - Z_RecordComposition *comp; /* Formatting instructions */ - ODR stream; /* encoding stream - memory source if required */ - ODR print; /* printing stream */ - bend_request request; - bend_association association; - - int hits; /* number of hits */ - int errcode; /* 0==OK */ - char *errstring; /* system error string or NULL */ -} bend_present_rr; - -/** \brief Information for fetch record handler */ -typedef struct bend_fetch_rr { - char *setname; /* set name */ - int number; /* record number */ - Z_ReferenceId *referenceId;/* reference ID */ - Odr_oid *request_format; /* format, transfer syntax (OID) */ - Z_RecordComposition *comp; /* Formatting instructions */ - ODR stream; /* encoding stream - memory source if req */ - ODR print; /* printing stream */ - - char *basename; /* name of database that provided record */ - int len; /* length of record or -1 if structured */ - char *record; /* record */ - int last_in_set; /* is it? */ - Odr_oid *output_format; /* response format/syntax (OID) */ - int errcode; /* 0==success */ - char *errstring; /* system error string or NULL */ - int surrogate_flag; /* surrogate diagnostic */ - char *schema; /* string record schema input/output */ -} bend_fetch_rr; - -/** \brief Information for scan entry */ -struct scan_entry { - char *term; /* the returned scan term */ - int occurrences; /* no of occurrences or -1 if error (see below) */ - int errcode; /* Bib-1 diagnostic code; only used when occur.= -1 */ - char *errstring; /* Additional string */ - char *display_term; -}; - -typedef enum { - BEND_SCAN_SUCCESS, /* ok */ - BEND_SCAN_PARTIAL /* not all entries could be found */ -} bend_scan_status; - -/** \brief Information for SRU / Z39.50 scan handler */ -typedef struct bend_scan_rr { - int num_bases; /* number of elements in databaselist */ - char **basenames; /* databases to search */ - Odr_oid *attributeset; - Z_ReferenceId *referenceId; /* reference ID */ - Z_AttributesPlusTerm *term; - ODR stream; /* encoding stream - memory source if required */ - ODR print; /* printing stream */ - - int *step_size; /* step size */ - int term_position; /* desired index of term in result list/returned */ - int num_entries; /* number of entries requested/returned */ - - /* scan term entries. The called handler does not have - to allocate this. Size of entries is num_entries (see above) */ - struct scan_entry *entries; - bend_scan_status status; - int errcode; - char *errstring; - char *scanClause; /* CQL scan clause */ - char *setname; /* Scan in result set (NULL if omitted) */ -} bend_scan_rr; - -/** \brief Information for SRU record update handler */ -typedef struct bend_update_rr { - int num_bases; /* number of elements in databaselist */ - char **basenames; /* databases to search */ - Z_ReferenceId *referenceId; /* reference ID */ - ODR stream; /* encoding stream - memory source if required */ - ODR print; /* printing stream */ - char *operation; - char *operation_status; - char *record_id; - Z_SRW_recordVersion *record_versions; - int num_versions; - char *record_packing; - char *record_schema; - char *record_data; - char *extra_record_data; - char *extra_request_data; - char *extra_response_data; - char *uri; - char *message; - char *details; -} bend_update_rr; - -/** \brief Information for Z39.50 delete result set handler */ -typedef struct bend_delete_rr { - int function; - int num_setnames; - char **setnames; - Z_ReferenceId *referenceId; - int delete_status; /* status for the whole operation */ - int *statuses; /* status each set - indexed as setnames */ - ODR stream; - ODR print; -} bend_delete_rr; - -/** \brief Information for Z39.50 sort handler */ -typedef struct bend_sort_rr -{ - int num_input_setnames; - char **input_setnames; - char *output_setname; - Z_SortKeySpecList *sort_sequence; - ODR stream; - ODR print; - Z_ReferenceId *referenceId;/* reference ID */ - - int sort_status; - int errcode; - char *errstring; -} bend_sort_rr; - -/** \brief Information for Z39.50 extended services handler */ -typedef struct bend_esrequest_rr -{ - int ItemNo; - Z_ExtendedServicesRequest *esr; - - ODR stream; /* encoding stream */ - ODR decode; /* decoding stream */ - ODR print; /* printing stream */ - Z_ReferenceId *referenceId;/* reference ID */ - bend_request request; - bend_association association; - int errcode; /* 0==success, -1==accepted, >0 = failure */ - char *errstring; /* system error string or NULL */ - Z_TaskPackage *taskPackage; -} bend_esrequest_rr; - -/** \brief Information for Z39.50 segment handler */ -typedef struct bend_segment_rr { - Z_Segment *segment; - ODR stream; - ODR decode; - ODR print; - bend_request request; - bend_association association; -} bend_segment_rr; - -/** \brief Information for SRU Explain handler */ -typedef struct { - ODR stream; - ODR decode; - ODR print; - char *explain_buf; - char *database; - char *schema; - void *server_node_ptr; -} bend_explain_rr; - -/** \brief Information for the Init handler - -This includes both request -information (to be read) and response information which should be -set by the bend_init handler -*/ -typedef struct bend_initrequest -{ - /** \brief user/name/password to be read */ - Z_IdAuthentication *auth; - /** \brief encoding stream (for results) */ - ODR stream; - /** \brief printing stream */ - ODR print; - /** \brief decoding stream (use stream for results) */ - ODR decode; - /** \brief reference ID */ - Z_ReferenceId *referenceId; - /** \brief peer address of client */ - char *peer_name; - - /** \brief character set and language negotiation - - see include/yaz/z-charneg.h - */ - Z_CharSetandLanguageNegotiation *charneg_request; - - /** \brief character negotiation response */ - Z_External *charneg_response; - - /** \brief character set (encoding) for query terms - - This is NULL by default. It should be set to the native character - set that the backend assumes for query terms */ - char *query_charset; - - /** \brief whehter query_charset also applies to recors - - Is 0 (No) by default. Set to 1 (yes) if records is in the same - character set as queries. If in doubt, use 0 (No). - */ - int records_in_same_charset; - - char *implementation_id; - char *implementation_name; - char *implementation_version; - - /** \brief Z39.50 sort handler */ - int (*bend_sort)(void *handle, bend_sort_rr *rr); - /** \brief SRU/Z39.50 search handler */ - int (*bend_search)(void *handle, bend_search_rr *rr); - /** \brief SRU/Z39.50 fetch handler */ - int (*bend_fetch)(void *handle, bend_fetch_rr *rr); - /** \brief SRU/Z39.50 present handler */ - int (*bend_present)(void *handle, bend_present_rr *rr); - /** \brief Z39.50 extended services handler */ - int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr); - /** \brief Z39.50 delete result set handler */ - int (*bend_delete)(void *handle, bend_delete_rr *rr); - /** \brief Z39.50 scan handler */ - int (*bend_scan)(void *handle, bend_scan_rr *rr); - /** \brief Z39.50 segment facility handler */ - int (*bend_segment)(void *handle, bend_segment_rr *rr); - /** \brief SRU explain handler */ - int (*bend_explain)(void *handle, bend_explain_rr *rr); - /** \brief SRU scan handler */ - int (*bend_srw_scan)(void *handle, bend_scan_rr *rr); - /** \brief SRU record update handler */ - int (*bend_srw_update)(void *handle, bend_update_rr *rr); - -} bend_initrequest; - -/** \brief result for init handler (must be filled by handler) */ -typedef struct bend_initresult -{ - int errcode; /* 0==OK */ - char *errstring; /* system error string or NULL */ - void *handle; /* private handle to the backend module */ -} bend_initresult; - -YAZ_EXPORT void bend_request_send (bend_association a, bend_request req, - Z_APDU *res); - -YAZ_EXPORT bend_request bend_request_mk (bend_association a); - -YAZ_EXPORT void bend_request_destroy (bend_request *req); - -YAZ_EXPORT Z_ReferenceId *bend_request_getid (ODR odr, bend_request req); -YAZ_EXPORT int bend_backend_respond (bend_association a, bend_request req); -YAZ_EXPORT void bend_request_setdata(bend_request r, void *p); -YAZ_EXPORT void *bend_request_getdata(bend_request r); - -/** \brief control block for server */ -typedef struct statserv_options_block -{ - int dynamic; /* fork on incoming requests */ - int threads; /* use threads */ - int one_shot; /* one session then exit(1) */ - char apdufile[ODR_MAXNAME+1]; /* file for pretty-printed PDUs */ - char logfile[ODR_MAXNAME+1]; /* file for diagnostic output */ - char default_listen[1024]; /* 0 == no default listen */ - enum oid_proto default_proto; /* PROTO_SR or PROTO_Z3950 */ - int idle_timeout; /* how many minutes to wait before closing */ - int maxrecordsize; /* maximum value for negotiation */ - char configname[ODR_MAXNAME+1]; /* given to the backend in bend_init */ - char setuid[ODR_MAXNAME+1]; /* setuid to this user after binding */ - void (*bend_start)(struct statserv_options_block *p); - void (*bend_stop)(struct statserv_options_block *p); - int (*options_func)(int argc, char **argv); - int (*check_ip)(void *cd, const char *addr, int len, int type); - char daemon_name[128]; - int inetd; /* Do we use the inet deamon or not */ - - void *handle; /* Handle */ - bend_initresult *(*bend_init)(bend_initrequest *r); - void (*bend_close)(void *handle); -#ifdef WIN32 - /* We only have these members for the windows version */ - /* They seemed a bit large to have them there in general */ - char service_name[128]; /* NT Service Name */ - char app_name[128]; /* Application Name */ - char service_dependencies[128]; /* The services we are dependent on */ - char service_display_name[128]; /* The service display name */ -#endif /* WIN32 */ - struct bend_soap_handler *soap_handlers; - char pid_fname[128]; /* pid fname */ - int background; /* auto daemon */ - char cert_fname[128]; /* SSL certificate fname */ - char xml_config[128]; /* XML config filename */ -} statserv_options_block; - -YAZ_EXPORT int statserv_main( - int argc, char **argv, - bend_initresult *(*bend_init)(bend_initrequest *r), - void (*bend_close)(void *handle)); -YAZ_EXPORT int statserv_start(int argc, char **argv); -YAZ_EXPORT void statserv_closedown(void); -YAZ_EXPORT statserv_options_block *statserv_getcontrol(void); -YAZ_EXPORT void statserv_setcontrol(statserv_options_block *block); -YAZ_EXPORT int check_ip_tcpd(void *cd, const char *addr, int len, int type); - -YAZ_EXPORT int bend_assoc_is_alive(bend_association assoc); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/ccl.h b/dependencies/yaz_3.0.14/include/yaz/ccl.h deleted file mode 100644 index 5e954c4..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/ccl.h +++ /dev/null @@ -1,383 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -/** \file ccl.h - \brief Header with public definitions for CCL. -*/ - -/* - * CCL - header file - * - * $Id: ccl.h,v 1.29 2007/05/01 12:22:10 adam Exp $ - * - * Old Europagate Log: - * - * Revision 1.10 1996/01/08 08:41:22 adam - * Minor changes. - * - * Revision 1.9 1995/07/20 08:15:16 adam - * Bug fix: Token value for comma and OR were the same! - * - * Revision 1.8 1995/07/11 12:28:34 adam - * New function: ccl_token_simple (split into simple tokens) and - * ccl_token_del (delete tokens). - * - * Revision 1.7 1995/05/16 09:39:38 adam - * LICENSE. - * - * Revision 1.6 1995/05/11 14:04:03 adam - * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. - * New variable ccl_case_sensitive, which controls whether reserved - * words and field names are case sensitive or not. - * - * Revision 1.5 1995/02/23 08:32:11 adam - * Changed header. - * - * Revision 1.3 1995/02/16 13:20:10 adam - * Spell fix. - * - * Revision 1.2 1995/02/15 17:43:08 adam - * Minor changes to the ccl interface. Bug fix in iso2709 module. - * - * Revision 1.1 1995/02/14 19:55:21 adam - * Header files ccl.h/cclp.h are gone! They have been merged an - * moved to ../include/ccl.h. - * - */ - -#ifndef CCL_H -#define CCL_H - -#include -#include -#include -#include - -YAZ_BEGIN_CDECL - -#define CCL_ERR_OK 0 -#define CCL_ERR_TERM_EXPECTED 1 -#define CCL_ERR_RP_EXPECTED 2 -#define CCL_ERR_SETNAME_EXPECTED 3 -#define CCL_ERR_OP_EXPECTED 4 -#define CCL_ERR_BAD_RP 5 -#define CCL_ERR_UNKNOWN_QUAL 6 -#define CCL_ERR_DOUBLE_QUAL 7 -#define CCL_ERR_EQ_EXPECTED 8 -#define CCL_ERR_BAD_RELATION 9 -#define CCL_ERR_TRUNC_NOT_LEFT 10 -#define CCL_ERR_TRUNC_NOT_BOTH 11 -#define CCL_ERR_TRUNC_NOT_RIGHT 12 - -/** \brief attribute node (type, value) pair as used in RPN */ -struct ccl_rpn_attr { - /** \brief next attribute */ - struct ccl_rpn_attr *next; - /** \brief attribute set */ - char *set; - /** \brief attribute type, Bib-1: 1=use, 2=relation, 3=position, .. */ - int type; - /** \brief attribute value type (numeric or string) */ - int kind; -#define CCL_RPN_ATTR_NUMERIC 1 -#define CCL_RPN_ATTR_STRING 2 - union { - /** \brief numeric attribute value */ - int numeric; - /** \brief string attribute value */ - char *str; - } value; -}; - -/** \brief node type or RPN tree generated by the CCL parser */ -enum ccl_rpn_kind { - CCL_RPN_AND, - CCL_RPN_OR, - CCL_RPN_NOT, - CCL_RPN_TERM, - CCL_RPN_SET, - CCL_RPN_PROX -}; - -/** \brief RPN tree structure node */ -struct ccl_rpn_node { - /** \brief node type, one of CCL_RPN_AND, CCL_RPN_OR,.. */ - enum ccl_rpn_kind kind; - union { - /** \brief Boolean including proximity 0=left, 1=right, 2=prox parms */ - struct ccl_rpn_node *p[3]; - /** \brief Attributes + Term */ - struct { - char *term; - char *qual; - struct ccl_rpn_attr *attr_list; - } t; - /** Result set */ - char *setname; - } u; -}; - -/** \brief CCL bibset, AKA profile */ -typedef struct ccl_qualifiers *CCL_bibset; - -/** \brief CCL parser */ -typedef struct ccl_parser *CCL_parser; - -/** - \brief parse CCL find string using CCL profile return RPN tree - - Parses a CCL Find command in a simple C string. Returns CCL parse - tree node describing RPN if parsing is successful. If parsing is - unsuccesful, NULL is returned and error and pos is set accordingly. -*/ -YAZ_EXPORT -struct ccl_rpn_node *ccl_find_str(CCL_bibset bibset, - const char *str, int *error, int *pos); - - -/** - \brief parse CCL find string with parser and return RPN tree - - Parses a CCL Find command in a simple C string. Returns CCL parse - tree node describing RPN if parsing is successful. If parsing is - unsuccesful, NULL is returned and error and pos is set accordingly. -*/ -YAZ_EXPORT -struct ccl_rpn_node *ccl_parser_find_str(CCL_parser cclp, const char *str); - -/** Set case sensitivity for parser */ -YAZ_EXPORT -void ccl_parser_set_case(CCL_parser p, int case_sensitivity_flag); - -/** Return english-readable error message for CCL parser error number */ -YAZ_EXPORT -const char *ccl_err_msg(int ccl_errno); - -/** Delete RPN tree returned by ccl_find */ -YAZ_EXPORT -void ccl_rpn_delete(struct ccl_rpn_node *rpn); - -/** Dump RPN tree in readable format to fd_out */ -YAZ_EXPORT -void ccl_pr_tree(struct ccl_rpn_node *rpn, FILE *fd_out); - -/** Add qualifier and supply attribute pairs for it */ -YAZ_EXPORT -void ccl_qual_add(CCL_bibset b, const char *name, int no, int *attr); - -/** Add qualifier and supply attributes pairs+attribute set for it */ -YAZ_EXPORT -void ccl_qual_add_set(CCL_bibset b, const char *name, int no, - int *type, int *value, char **svalue, char **attsets); - -/** Add special qualifier */ -YAZ_EXPORT -void ccl_qual_add_special(CCL_bibset bibset, const char *n, const char *cp); - -/** Add combo qualifier */ -YAZ_EXPORT -void ccl_qual_add_combi(CCL_bibset b, const char *n, const char **names); - -/** Read CCL qualifier list spec from file inf */ -YAZ_EXPORT -void ccl_qual_file(CCL_bibset bibset, FILE *inf); - -/** Read CCL qualifier list spec from file inf */ -YAZ_EXPORT -int ccl_qual_fname(CCL_bibset bibset, const char *fname); - -/** Add CCL qualifier as buf spec(multiple lines). */ -YAZ_EXPORT -void ccl_qual_buf(CCL_bibset bibset, const char *buf); - -/** Add CCL qualifier as line spec. Note: line is _modified_ */ -YAZ_EXPORT -void ccl_qual_line(CCL_bibset bibset, char *line); - -/* Add CCL qualifier by using qual_name + value pair */ -YAZ_EXPORT -void ccl_qual_fitem(CCL_bibset bibset, const char *value, - const char *qual_name); - -/** Make CCL qualifier set */ -YAZ_EXPORT -CCL_bibset ccl_qual_mk(void); - -/** Delete CCL qualifier set */ -YAZ_EXPORT -void ccl_qual_rm(CCL_bibset *b); - -/** Char-to-upper function */ -extern int(*ccl_toupper)(int c); - -/** CCL version of ccl_stricmp */ -YAZ_EXPORT -int ccl_stricmp(const char *s1, const char *s2); - -/** CCL version of ccl_memicmp */ -YAZ_EXPORT -int ccl_memicmp(const char *s1, const char *s2, size_t n); - -/** Create CCL parser */ -YAZ_EXPORT -CCL_parser ccl_parser_create(CCL_bibset bibset); - -/** Destroy CCL parser */ -YAZ_EXPORT -void ccl_parser_destroy(CCL_parser p); - -/** Search for special qualifier */ -YAZ_EXPORT -const char **ccl_qual_search_special(CCL_bibset b, const char *name); -/** Pretty-print CCL RPN node tree to WRBUF */ -YAZ_EXPORT -void ccl_pquery(WRBUF w, struct ccl_rpn_node *p); - -YAZ_EXPORT -int ccl_parser_get_error(CCL_parser cclp, int *pos); - -YAZ_EXPORT -struct ccl_rpn_node *ccl_rpn_node_create(enum ccl_rpn_kind kind); - -YAZ_EXPORT -void ccl_add_attr_numeric(struct ccl_rpn_node *p, const char *set, - int type, int value); - -YAZ_EXPORT -void ccl_add_attr_string(struct ccl_rpn_node *p, const char *set, - int type, char *value); - -YAZ_EXPORT -int ccl_search_stop(CCL_bibset bibset, const char *qname, - const char *src_str, size_t src_len); - - -/** \brief stop words handle (pimpl) */ -typedef struct ccl_stop_words *ccl_stop_words_t; - -/** \brief creates stop words handle */ -YAZ_EXPORT -ccl_stop_words_t ccl_stop_words_create(void); - -/** \brief destroys stop words handle */ -YAZ_EXPORT -void ccl_stop_words_destroy(ccl_stop_words_t csw); - -/** \brief removes stop words from RPN tree */ -YAZ_EXPORT -int ccl_stop_words_tree(ccl_stop_words_t csw, - CCL_bibset bibset, struct ccl_rpn_node **t); - -/** \brief returns information about removed "stop" words */ -YAZ_EXPORT -int ccl_stop_words_info(ccl_stop_words_t csw, int idx, - const char **qualname, const char **term); - -#ifndef ccl_assert -#define ccl_assert(x) ; -#endif - - -/** \brief common attributes - - use (1) - - relation (2) - -1 none - 0 ordered - 1-6 relation (<, <=, =, >=, >, <>) - - position (3) - -1 none - 1 first in field - 2 first in sub field - 3 any position in field - structure (4) - -1 none - 0 word/phrase auto select - 1 phrase - 2 word - 3 key - 4 year - 5 date (normalized) - 6 word list - 100 date (un-normalized) - 101 name (normalized) - 102 name (un-normalized) - truncation (5) - completeness (6) -*/ - -#define CCL_BIB1_USE 1 -#define CCL_BIB1_REL 2 -#define CCL_BIB1_POS 3 -#define CCL_BIB1_STR 4 -#define CCL_BIB1_TRU 5 -#define CCL_BIB1_COM 6 - -#define CCL_BIB1_STR_WP (-1) -#define CCL_BIB1_STR_AND_LIST (-2) -#define CCL_BIB1_STR_OR_LIST (-3) -#define CCL_BIB1_REL_ORDER (-1) -#define CCL_BIB1_REL_PORDER (-2) - -#define CCL_BIB1_TRU_CAN_LEFT (-1) -#define CCL_BIB1_TRU_CAN_RIGHT (-2) -#define CCL_BIB1_TRU_CAN_BOTH (-3) -#define CCL_BIB1_TRU_CAN_NONE (-4) - - - -YAZ_END_CDECL - -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/ccl_xml.h b/dependencies/yaz_3.0.14/include/yaz/ccl_xml.h deleted file mode 100644 index bb0e6fb..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/ccl_xml.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: ccl_xml.h,v 1.1 2007/01/08 10:48:07 adam Exp $ */ - -/** - * \file ccl_xml.h - * \brief Header for CCL + XML stuff - */ -#ifndef YAZ_CCL_XML_H -#define YAZ_CCL_XML_H - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief configures CCL bibset using XML configuration - \param bibset CCL bibliographic profile - \param ptr xml node pointer pointing to "cclmap" element - \param addinfo has error message if configuration could not be parsed - \retval 0 OK - \retval -1 errors. Inspect addinfo for error message - - Configuration example: - \verbatim - - - - - - - - - - - - - - \endverbatim -*/ -YAZ_EXPORT -int ccl_xml_config(CCL_bibset bibset, const xmlNode *ptr, - const char **addinfo); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/charneg.h b/dependencies/yaz_3.0.14/include/yaz/charneg.h deleted file mode 100644 index ede83aa..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/charneg.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: charneg.h,v 1.10 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file charneg.h - * \brief Header for Z39.50 Charset negotiation utilities - * - * Helper functions for Character Set and Language Negotiation - 3 - */ -#ifndef CHARNEG_H -#define CHARNEG_H - -#include - -YAZ_BEGIN_CDECL - -/* - * Character set and language negotiation model - 3 (*) - * - * These a set helper functions for support (*). There are - * client and server parts. At that moment the (*) is based on - * Z_PrivateCharacterSet_externallySpecified method. - * - */ - -/* - * Get (*) record from request - */ -YAZ_EXPORT -Z_CharSetandLanguageNegotiation *yaz_get_charneg_record(Z_OtherInformation *p); - -/* - * Delete (*) record from request - */ -YAZ_EXPORT -int yaz_del_charneg_record(Z_OtherInformation **p); - -/* - * Client's part. - */ -YAZ_EXPORT -Z_External *yaz_set_proposal_charneg(ODR odr, - const char **charsets, int num_charsets, - const char **langs, - int num_langs, int selected); - -YAZ_EXPORT -Z_External *yaz_set_proposal_charneg_list(ODR o, - const char *delim, - const char *charset_list, - const char *lang_list, - int selected); - -YAZ_EXPORT -void yaz_get_response_charneg(NMEM mem, - Z_CharSetandLanguageNegotiation *p, - char **charset, char **lang, - int *selected); - -/* - * Server's part - */ - -YAZ_EXPORT -Z_External *yaz_set_response_charneg(ODR odr, - const char *charset, const char *lang, - int selected); - - -YAZ_EXPORT -void yaz_get_proposal_charneg(NMEM mem, - Z_CharSetandLanguageNegotiation *p, - char ***charsets, int *num_charsets, - char ***langs, int *num_langs, - int *selected); - - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/comstack.h b/dependencies/yaz_3.0.14/include/yaz/comstack.h deleted file mode 100644 index 04db248..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/comstack.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: comstack.h,v 1.27 2007/04/12 13:52:57 adam Exp $ */ - -/** - * \file comstack.h - * \brief Header for COMSTACK - */ - -#ifndef COMSTACK_H -#define COMSTACK_H - -#include -#include -#include - -YAZ_BEGIN_CDECL - -#define COMSTACK_DEFAULT_TIMEOUT -1 /* not used yet */ - -struct comstack; -typedef struct comstack *COMSTACK; -typedef COMSTACK (*CS_TYPE)(int s, int flags, int protocol, void *vp); - -struct comstack -{ - CS_TYPE type; - int cerrno; /* current error code of this stack */ - char *stackerr;/* current lower-layer error string, or null if none */ - int iofile; /* UNIX file descriptor for iochannel */ - int timeout; /* how long to wait for trailing blocks (ignored for now) */ - void *cprivate;/* state info for lower stack */ - int max_recv_bytes; /* max size of incoming package */ - int state; /* current state */ -#define CS_ST_UNBND 0 -#define CS_ST_IDLE 1 -#define CS_ST_INCON 2 -#define CS_ST_OUTCON 3 -#define CS_ST_DATAXFER 4 -#define CS_ST_ACCEPT 5 -#define CS_ST_CONNECTING 6 - int newfd; /* storing new descriptor between listen and accept */ - int flags; /* flags, blocking etc.. CS_FLAGS_.. */ - unsigned io_pending; /* flag to signal read / write op is incomplete */ - int event; /* current event */ -#define CS_NONE 0 -#define CS_CONNECT 1 -#define CS_DISCON 2 -#define CS_LISTEN 3 -#define CS_DATA 4 - enum oid_proto protocol; /* what application protocol are we talking? */ - int (*f_put)(COMSTACK handle, char *buf, int size); - int (*f_get)(COMSTACK handle, char **buf, int *bufsize); - int (*f_more)(COMSTACK handle); - int (*f_connect)(COMSTACK handle, void *address); - int (*f_rcvconnect)(COMSTACK handle); - int (*f_bind)(COMSTACK handle, void *address, int mode); -#define CS_CLIENT 0 -#define CS_SERVER 1 - int (*f_listen)(COMSTACK h, char *raddr, int *addrlen, - int (*check_ip)(void *cd, const char *a, int len, int type), - void *cd); - COMSTACK (*f_accept)(COMSTACK handle); - int (*f_close)(COMSTACK handle); - char *(*f_addrstr)(COMSTACK handle); - void *(*f_straddr)(COMSTACK handle, const char *str); - int (*f_set_blocking)(COMSTACK handle, int blocking); - void *user; /* user defined data associated with COMSTACK */ -}; - -#define cs_put(handle, buf, size) ((*(handle)->f_put)(handle, buf, size)) -#define cs_get(handle, buf, size) ((*(handle)->f_get)(handle, buf, size)) -#define cs_more(handle) ((*(handle)->f_more)(handle)) -#define cs_connect(handle, address) ((*(handle)->f_connect)(handle, address)) -#define cs_rcvconnect(handle) ((*(handle)->f_rcvconnect)(handle)) -#define cs_bind(handle, ad, mo) ((*(handle)->f_bind)(handle, ad, mo)) -#define cs_listen(handle, ap, al) ((*(handle)->f_listen)(handle, ap, al, 0, 0)) -#define cs_listen_check(handle, ap, al, cf, cd) ((*(handle)->f_listen)(handle, ap, al, cf, cd)) -#define cs_accept(handle) ((*(handle)->f_accept)(handle)) -#define cs_close(handle) ((*(handle)->f_close)(handle)) -#define cs_create(type, blocking, proto) ((*type)(-1, blocking, proto, 0)) -#define cs_createbysocket(sock, type, blocking, proto) \ - ((*type)(sock, blocking, proto, 0)) -#define cs_type(handle) ((handle)->type) -#define cs_fileno(handle) ((handle)->iofile) -#define cs_stackerr(handle) ((handle)->stackerr) -#define cs_getstate(handle) ((handle)->getstate) -#define cs_errno(handle) ((handle)->cerrno) -#define cs_getproto(handle) ((handle)->protocol) -#define cs_addrstr(handle) ((*(handle)->f_addrstr)(handle)) -#define cs_straddr(handle, str) ((*(handle)->f_straddr)(handle, str)) -#define cs_want_read(handle) ((handle)->io_pending & CS_WANT_READ) -#define cs_want_write(handle) ((handle)->io_pending & CS_WANT_WRITE) -#define cs_set_blocking(handle,blocking) ((handle)->f_set_blocking(handle, blocking)) - -#define CS_WANT_READ 1 -#define CS_WANT_WRITE 2 - -YAZ_EXPORT int cs_look (COMSTACK); -YAZ_EXPORT const char *cs_strerror(COMSTACK h); -YAZ_EXPORT const char *cs_errmsg(int n); -YAZ_EXPORT COMSTACK cs_create_host(const char *type_and_host, - int blocking, void **vp); -YAZ_EXPORT void cs_get_host_args(const char *type_and_host, const char **args); -YAZ_EXPORT int cs_complete_auto(const unsigned char *buf, int len); -YAZ_EXPORT void *cs_get_ssl(COMSTACK cs); -YAZ_EXPORT int cs_set_ssl_ctx(COMSTACK cs, void *ctx); -YAZ_EXPORT int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname); -YAZ_EXPORT int cs_get_peer_certificate_x509(COMSTACK cs, char **buf, int *len); -YAZ_EXPORT void cs_set_max_recv_bytes(COMSTACK cs, int max_recv_bytes); -YAZ_EXPORT int cs_complete_http(const char *buf, int len); - -/* - * error management. - */ - -#define CSNONE 0 -#define CSYSERR 1 -#define CSOUTSTATE 2 -#define CSNODATA 3 -#define CSWRONGBUF 4 -#define CSDENY 5 -#define CSERRORSSL 6 -#define CSBUFSIZE 7 -#define CSLASTERROR CSBUFSIZE /* must be the value of last CS error */ - -/* backwards compatibility */ -#define CS_SR PROTO_SR -#define CS_Z3950 PROTO_Z3950 - -#define CS_FLAGS_BLOCKING 1 -#define CS_FLAGS_NUMERICHOST 2 - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/copy_types.h b/dependencies/yaz_3.0.14/include/yaz/copy_types.h deleted file mode 100644 index ef45670..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/copy_types.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: copy_types.h,v 1.1 2007/04/30 08:29:07 adam Exp $ */ -/** - * \file copy_types.h - * \brief Copies various Z39.50 types - */ - -#ifndef YAZ_COPY_TYPES_H -#define YAZ_COPY_TYPES_H - -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT -Z_RPNQuery *yaz_copy_z_RPNQuery(Z_RPNQuery *q, ODR out); - -YAZ_EXPORT -Z_Query *yaz_copy_Z_Query(Z_Query *q, ODR out); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/cql.h b/dependencies/yaz_3.0.14/include/yaz/cql.h deleted file mode 100644 index d920d0e..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/cql.h +++ /dev/null @@ -1,328 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: cql.h,v 1.18 2007/03/21 10:12:09 adam Exp $ */ - -/** \file cql.h - \brief Header with public definitions about CQL. -*/ - -#ifndef CQL_H_INCLUDED -#define CQL_H_INCLUDED -#include -#include - -YAZ_BEGIN_CDECL - -/** CQL parser handle */ -typedef struct cql_parser *CQL_parser; - -/** - * Creates a CQL parser. - * Returns CQL parser handle or NULL if parser could not be created. - */ -YAZ_EXPORT -CQL_parser cql_parser_create(void); - -/** - * Destroys a CQL parser. - * - * This function does nothing if NULL if received. - */ -YAZ_EXPORT -void cql_parser_destroy(CQL_parser cp); - -/** - * Parses a CQL string query. - * - * Returns 0 if on success; non-zero (error code) on failure. - */ -YAZ_EXPORT -int cql_parser_string(CQL_parser cp, const char *str); - -/** - * Parses a CQL query - streamed query. - * - * This function is similar to cql_parser_string but takes a - * functions to read each query character from a stream. - * - * The functions pointers getbytes, ungetbyte are similar to - * that known from stdios getc, ungetc. - * - * Returns 0 if on success; non-zero (error code) on failure. - */ -YAZ_EXPORT -int cql_parser_stream(CQL_parser cp, - int (*getbyte)(void *client_data), - void (*ungetbyte)(int b, void *client_data), - void *client_data); - -/** - * Parses a CQL query from a FILE handle. - * - * This function is similar to cql_parser_string but reads from - * stdio FILE handle instead. - * - * Returns 0 if on success; non-zero (error code) on failure. - */ -YAZ_EXPORT -int cql_parser_stdio(CQL_parser cp, FILE *f); - -/** - * The node in a CQL parse tree. - */ -#define CQL_NODE_ST 1 -#define CQL_NODE_BOOL 2 -struct cql_node { - /** node type */ - int which; - union { - /** which == CQL_NODE_ST */ - struct { - /** CQL index */ - char *index; - /** CQL index URI or NULL if no URI */ - char *index_uri; - /** Search term */ - char *term; - /** relation */ - char *relation; - /** relation URL or NULL if no relation URI) */ - char *relation_uri; - /** relation modifiers */ - struct cql_node *modifiers; - } st; - /** which == CQL_NODE_BOOL */ - struct { - /** operator name "and", "or", ... */ - char *value; - /** left operand */ - struct cql_node *left; - /** right operand */ - struct cql_node *right; - /** modifiers (NULL for no list) */ - struct cql_node *modifiers; - } boolean; - } u; -}; - -/** - * Private structure that describes the CQL properties (profile) - */ -struct cql_properties; - -/** - * Structure used by cql_buf_write_handlre - */ -struct cql_buf_write_info { - int max; - int off; - char *buf; -}; - -/** - * Handler for cql_buf_write_info * - */ -YAZ_EXPORT -void cql_buf_write_handler (const char *b, void *client_data); - -/** - * Prints a CQL node and all sub nodes. Hence this function - * prints the parse tree which is as returned by cql_parser_result. - */ -YAZ_EXPORT -void cql_node_print(struct cql_node *cn); - -/** - * This function creates a search clause node (st). - */ -YAZ_EXPORT -struct cql_node *cql_node_mk_sc(NMEM nmem, const char *index, - const char *relation, const char *term); - -/** - * This function applies a prefix+uri to "unresolved" index and relation - * URIs. - * - * "unresolved" URIs are those nodes where member index_uri / relation_uri - * is NULL. - */ -YAZ_EXPORT -struct cql_node *cql_apply_prefix(NMEM nmem, struct cql_node *cn, - const char *prefix, const char *uri); - -/** - * This function creates a boolean node. - */ -YAZ_EXPORT -struct cql_node *cql_node_mk_boolean(NMEM nmem, const char *op); - -/** - * Destroys a node and its children. - */ -YAZ_EXPORT -void cql_node_destroy(struct cql_node *cn); - -/** - * Duplicate a node (returns a copy of supplied node) . - */ -YAZ_EXPORT -struct cql_node *cql_node_dup (NMEM nmem, struct cql_node *cp); - -/** - * This function returns the parse tree of the most recently parsed - * CQL query. - * - * The function returns NULL if most recently parse failed. - */ -YAZ_EXPORT -struct cql_node *cql_parser_result(CQL_parser cp); - -/** - * This function converts a CQL node tree to XCQL and writes the - * resulting XCQL to a user-defined output stream. - */ -YAZ_EXPORT -void cql_to_xml(struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data); -/** - * This function converts a CQL node tree to XCQL and writes the - * resulting XCQL to a FILE handle (stdio) - */ -YAZ_EXPORT -void cql_to_xml_stdio(struct cql_node *cn, FILE *f); - -/** - * This function converts a CQL node tree to XCQL and writes - * the resulting XCQL to a buffer - */ -YAZ_EXPORT -int cql_to_xml_buf(struct cql_node *cn, char *out, int max); - -/** - * Utility function that prints to a FILE. - */ -YAZ_EXPORT -void cql_fputs(const char *buf, void *client_data); - -/** - * The CQL transform handle. The transform describes how to - * convert from CQL to PQF (Type-1 AKA RPN). - */ -typedef struct cql_transform_t_ *cql_transform_t; - -/** - * Creates a CQL transform handle. The transformation spec is read from - * a FILE handle (which is assumed opened in read mode). - */ -YAZ_EXPORT -cql_transform_t cql_transform_open_FILE (FILE *f); - -/** - * Creates a CQL transform handle. The transformation spec is read from - * a file with the filename given. - */ -YAZ_EXPORT -cql_transform_t cql_transform_open_fname(const char *fname); - -/** - * Destroys a CQL transform handle. - */ -YAZ_EXPORT -void cql_transform_close(cql_transform_t ct); - -/** - * Performs a CQL transform to PQF given a CQL node tree and a CQL - * transformation handle. The result is written to a user-defined stream. - */ -YAZ_EXPORT -int cql_transform(cql_transform_t ct, - struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data); - -/** - * Performs a CQL transform to PQF given a CQL node tree and a CQL - * transformation handle. The result is written to a file specified by - * FILE handle (which must be opened for writing). - */ -YAZ_EXPORT -int cql_transform_FILE(cql_transform_t ct, - struct cql_node *cn, FILE *f); - -/** - * Performs a CQL transform to PQF given a CQL node tree and a CQL - * transformation handle. The result is written to a buffer. - */ -YAZ_EXPORT -int cql_transform_buf(cql_transform_t ct, - struct cql_node *cn, char *out, int max); -/** - * Returns error code and additional information from last transformation. - * Performs a CQL transform given a CQL node tree and a CQL transformation. - */ -YAZ_EXPORT -int cql_transform_error(cql_transform_t ct, const char **addinfo); - -/** - * Returns the CQL message corresponding to a given error code. - */ -YAZ_EXPORT -const char *cql_strerror(int code); - -/** - * Returns the standard CQL context set URI. - */ -YAZ_EXPORT -const char *cql_uri(void); - -/** - * Compares two CQL strings (for relations, operators, etc) - * (unfortunately defined as case-insensitive unlike XML etc) - */ -YAZ_EXPORT -int cql_strcmp(const char *s1, const char *s2); - -/** - * Compares two CQL strings at most n bytes - * (unfortunately defined as case-insensitive unlike XML etc) - */ -YAZ_EXPORT -int cql_strncmp(const char *s1, const char *s2, size_t n); - -YAZ_END_CDECL - -#endif -/* CQL_H_INCLUDED */ -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/diagbib1.h b/dependencies/yaz_3.0.14/include/yaz/diagbib1.h deleted file mode 100644 index 9fe27fa..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/diagbib1.h +++ /dev/null @@ -1,188 +0,0 @@ -/** \file ./../include/yaz/diagbib1.h - \brief Diagnostics: Generated by csvtodiag.tcl from ./bib1.csv */ - -#include - -#ifndef YAZ_DIAG_bib1_H -#define YAZ_DIAG_bib1_H -YAZ_BEGIN_CDECL -YAZ_EXPORT const char *yaz_diag_bib1_str(int code); -YAZ_EXPORT const char *diagbib1_str(int code); -#define YAZ_BIB1_PERMANENT_SYSTEM_ERROR 1 -#define YAZ_BIB1_TEMPORARY_SYSTEM_ERROR 2 -#define YAZ_BIB1_UNSUPP_SEARCH 3 -#define YAZ_BIB1_TERMS_ONLY_EXCLUSION_STOP_WORDS 4 -#define YAZ_BIB1_TOO_MANY_ARGUMENT_WORDS 5 -#define YAZ_BIB1_TOO_MANY_BOOLEAN_OPERATORS 6 -#define YAZ_BIB1_TOO_MANY_TRUNCATED_WORDS 7 -#define YAZ_BIB1_TOO_MANY_INCOMPLETE_SUBFIELDS 8 -#define YAZ_BIB1_TRUNCATED_WORDS_TOO_SHORT 9 -#define YAZ_BIB1_INVALID_FORMAT_FOR_RECORD_NUMBER_SEARCH_TERM_ 10 -#define YAZ_BIB1_TOO_MANY_CHARS_IN_SEARCH_STATEMENT 11 -#define YAZ_BIB1_TOO_MANY_RECORDS_RETRIEVED 12 -#define YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE 13 -#define YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS 14 -#define YAZ_BIB1_RECORD_NO_AUTHORIZED_TO_BE_SENT_INTERSYSTEM 15 -#define YAZ_BIB1_RECORD_EXCEEDS_PREFERRED_MESSAGE_SIZE 16 -#define YAZ_BIB1_RECORD_EXCEEDS_MAXIMUM_RECORD_SIZE 17 -#define YAZ_BIB1_RESULT_SET_UNSUPP_AS_A_SEARCH_TERM 18 -#define YAZ_BIB1_ONLY_SINGLE_RESULT_SET_AS_SEARCH_TERM_SUPPORTED 19 -#define YAZ_BIB1_ONLY_ANDING_OF_A_SINGLE_RESULT_SET_AS_SEARCH_TERM_ 20 -#define YAZ_BIB1_RESULT_SET_EXISTS_AND_REPLACE_INDICATOR_OFF 21 -#define YAZ_BIB1_RESULT_SET_NAMING_UNSUPP 22 -#define YAZ_BIB1_COMBI_OF_SPECIFIED_DATABASES_UNSUPP 23 -#define YAZ_BIB1_ELEMENT_SET_NAMES_UNSUPP 24 -#define YAZ_BIB1_SPECIFIED_ELEMENT_SET_NAME_NOT_VALID_FOR_SPECIFIED_ 25 -#define YAZ_BIB1_ONLY_A_SINGLE_ELEMENT_SET_NAME_SUPPORTED 26 -#define YAZ_BIB1_RESULT_SET_NO_LONGER_EXISTS_UNILATERALLY_DELETED_BY_ 27 -#define YAZ_BIB1_RESULT_SET_IS_IN_USE 28 -#define YAZ_BIB1_ONE_OF_THE_SPECIFIED_DATABASES_IS_LOCKED 29 -#define YAZ_BIB1_SPECIFIED_RESULT_SET_DOES_NOT_EXIST 30 -#define YAZ_BIB1_RESOURCES_EXHAUSTED_NO_RESULTS_AVAILABLE 31 -#define YAZ_BIB1_RESOURCES_EXHAUSTED_UNPREDICTABLE_PARTIAL_RESULTS_ 32 -#define YAZ_BIB1_RESOURCES_EXHAUSTED_VALID_SUBSET_OF_RESULTS_AVAILABLE 33 -#define YAZ_BIB1_UNSPECIFIED_ERROR 100 -#define YAZ_BIB1_ACCESS_CONTROL_FAILURE 101 -#define YAZ_BIB1_SEC_CHAL_REQUIRED_BUT_COULDNT_BE_ISSUED_REQUEST_ 102 -#define YAZ_BIB1_SEC_CHAL_REQUIRED_BUT_COULDNT_BE_ISSUED_RECORD_NOT_ 103 -#define YAZ_BIB1_SEC_CHAL_FAILED_RECORD_NOT_INCLUDED 104 -#define YAZ_BIB1_TERMINATED_BY_NEGATIVE_CONTINUE_RESPONSE 105 -#define YAZ_BIB1_NO_ABSTRACT_SYNTAXES_AGREED_TO_FOR_THIS_RECORD 106 -#define YAZ_BIB1_QUERY_TYPE_UNSUPP 107 -#define YAZ_BIB1_MALFORMED_QUERY 108 -#define YAZ_BIB1_DATABASE_UNAVAILABLE 109 -#define YAZ_BIB1_OPERATOR_UNSUPP 110 -#define YAZ_BIB1_TOO_MANY_DATABASES_SPECIFIED 111 -#define YAZ_BIB1_TOO_MANY_RESULT_SETS_CREATED 112 -#define YAZ_BIB1_UNSUPP_ATTRIBUTE_TYPE 113 -#define YAZ_BIB1_UNSUPP_USE_ATTRIBUTE 114 -#define YAZ_BIB1_UNSUPP_VALUE_FOR_USE_ATTRIBUTE 115 -#define YAZ_BIB1_USE_ATTRIBUTE_REQUIRED_BUT_NOT_SUPPLIED 116 -#define YAZ_BIB1_UNSUPP_RELATION_ATTRIBUTE 117 -#define YAZ_BIB1_UNSUPP_STRUCTURE_ATTRIBUTE 118 -#define YAZ_BIB1_UNSUPP_POSITION_ATTRIBUTE 119 -#define YAZ_BIB1_UNSUPP_TRUNCATION_ATTRIBUTE 120 -#define YAZ_BIB1_UNSUPP_ATTRIBUTE_SET 121 -#define YAZ_BIB1_UNSUPP_COMPLETENESS_ATTRIBUTE 122 -#define YAZ_BIB1_UNSUPP_ATTRIBUTE_COMBI 123 -#define YAZ_BIB1_UNSUPP_CODED_VALUE_FOR_TERM 124 -#define YAZ_BIB1_MALFORMED_SEARCH_TERM 125 -#define YAZ_BIB1_ILLEGAL_TERM_VALUE_FOR_ATTRIBUTE 126 -#define YAZ_BIB1_UNPARSABLE_FORMAT_FOR_UN_NORMALIZED_VALUE 127 -#define YAZ_BIB1_ILLEGAL_RESULT_SET_NAME 128 -#define YAZ_BIB1_PROX_SEARCH_OF_SETS_UNSUPP 129 -#define YAZ_BIB1_ILLEGAL_RESULT_SET_IN_PROX_SEARCH 130 -#define YAZ_BIB1_UNSUPP_PROX_RELATION 131 -#define YAZ_BIB1_UNSUPP_PROX_UNIT_CODE 132 -#define YAZ_BIB1_PROX_UNSUPP_WITH_THIS_ATTRIBUTE_COMBI 201 -#define YAZ_BIB1_UNSUPP_DISTANCE_FOR_PROX 202 -#define YAZ_BIB1_ORDERED_FLAG_UNSUPP_FOR_PROX 203 -#define YAZ_BIB1_ONLY_ZERO_STEP_SIZE_SUPPORTED_FOR_SCAN 205 -#define YAZ_BIB1_SPECIFIED_STEP_SIZE_UNSUPP_FOR_SCAN 206 -#define YAZ_BIB1_CANNOT_SORT_ACCORDING_TO_SEQUENCE 207 -#define YAZ_BIB1_NO_RESULT_SET_NAME_SUPPLIED_ON_SORT 208 -#define YAZ_BIB1_GENERIC_SORT_UNSUPP_DATABASE_SPECIFIC_SORT_ONLY_ 209 -#define YAZ_BIB1_DATABASE_SPECIFIC_SORT_UNSUPP 210 -#define YAZ_BIB1_TOO_MANY_SORT_KEYS 211 -#define YAZ_BIB1_DUP_SORT_KEYS 212 -#define YAZ_BIB1_UNSUPP_MISSING_DATA_ACTION 213 -#define YAZ_BIB1_ILLEGAL_SORT_RELATION 214 -#define YAZ_BIB1_ILLEGAL_CASE_VALUE 215 -#define YAZ_BIB1_ILLEGAL_MISSING_DATA_ACTION 216 -#define YAZ_BIB1_SEGMENTATION_CANNOT_GUARANTEE_RECORDS_WILL_FIT_IN_ 217 -#define YAZ_BIB1_ES_PACKAGE_NAME_ALREADY_IN_USE 218 -#define YAZ_BIB1_ES_NO_SUCH_PACKAGE_ON_MODIFY_DELETE 219 -#define YAZ_BIB1_ES_QUOTA_EXCEEDED 220 -#define YAZ_BIB1_ES_EXTENDED_SERVICE_TYPE_UNSUPP 221 -#define YAZ_BIB1_ES_PERMISSION_DENIED_ON_ES_ID_NOT_AUTHORIZED 222 -#define YAZ_BIB1_ES_PERMISSION_DENIED_ON_ES_CANNOT_MODIFY_OR_DELETE 223 -#define YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED 224 -#define YAZ_BIB1_ES_IMMEDIATE_EXECUTION_UNSUPP_FOR_THIS_SERVICE 225 -#define YAZ_BIB1_ES_IMMEDIATE_EXECUTION_UNSUPP_FOR_THESE_PARAMETERS 226 -#define YAZ_BIB1_NO_DATA_AVAILABLE_IN_REQUESTED_RECORD_SYNTAX 227 -#define YAZ_BIB1_SCAN_MALFORMED_SCAN 228 -#define YAZ_BIB1_TERM_TYPE_UNSUPP 229 -#define YAZ_BIB1_SORT_TOO_MANY_INPUT_RESULTS 230 -#define YAZ_BIB1_SORT_INCOMPATIBLE_RECORD_FORMATS 231 -#define YAZ_BIB1_SCAN_TERM_LIST_UNSUPP 232 -#define YAZ_BIB1_SCAN_UNSUPP_VALUE_OF_POSITION_IN_RESPONSE 233 -#define YAZ_BIB1_TOO_MANY_INDEX_TERMS_PROCESSED 234 -#define YAZ_BIB1_DATABASE_DOES_NOT_EXIST 235 -#define YAZ_BIB1_ACCESS_TO_SPECIFIED_DATABASE_DENIED 236 -#define YAZ_BIB1_SORT_ILLEGAL_SORT 237 -#define YAZ_BIB1_RECORD_NOT_AVAILABLE_IN_REQUESTED_SYNTAX 238 -#define YAZ_BIB1_RECORD_SYNTAX_UNSUPP 239 -#define YAZ_BIB1_SCAN_RESOURCES_EXHAUSTED_LOOKING_FOR_SATISFYING_TERMS 240 -#define YAZ_BIB1_SCAN_BEGINNING_OR_END_OF_TERM_LIST 241 -#define YAZ_BIB1_SEGMENTATION_MAX_SEGMENT_SIZE_TOO_SMALL_TO_SEGMENT_ 242 -#define YAZ_BIB1_PRESENT_ADDITIONAL_RANGES_PARAMETER_UNSUPP 243 -#define YAZ_BIB1_PRESENT_COMP_SPEC_PARAMETER_UNSUPP 244 -#define YAZ_BIB1_TYPE_1_QUERY_RESTRICTION_RESULTATTR_OPERAND_UNSUPP 245 -#define YAZ_BIB1_TYPE_1_QUERY_COMPLEX_ATTRIBUTEVALUE_UNSUPP 246 -#define YAZ_BIB1_TYPE_1_QUERY_ATTRIBUTESET_AS_PART_OF_ATTRIBUTEELEMENT_ 247 -#define YAZ_BIB1_MALFORMED_APDU 1001 -#define YAZ_BIB1_ES_EXTERNAL_FORM_OF_ITEM_ORDER_REQUEST_UNSUPP 1002 -#define YAZ_BIB1_ES_RESULT_SET_ITEM_FORM_OF_ITEM_ORDER_REQUEST_UNSUPP 1003 -#define YAZ_BIB1_ES_EXTENDED_SERVICES_UNSUPP_UNLESS_ACCESS_CONTROL_IS_IN_ 1004 -#define YAZ_BIB1_RESPONSE_RECORDS_IN_SEARCH_RESPONSE_UNSUPP 1005 -#define YAZ_BIB1_RESPONSE_RECORDS_IN_SEARCH_RESPONSE_NOT_POSSIBLE_FOR_ 1006 -#define YAZ_BIB1_NO_EXPLAIN_SERVER_ADDINFO_POINTERS_TO_SERVERS_THAT_HAVE_ 1007 -#define YAZ_BIB1_ES_MISSING_MANDATORY_PARAMETER_FOR_SPECIFIED_FUNCTION_ 1008 -#define YAZ_BIB1_ES_ITEM_ORDER_UNSUPP_OID_IN_ITEMREQUEST_ADDINFO_OID 1009 -#define YAZ_BIB1_INIT_AC_BAD_USERID 1010 -#define YAZ_BIB1_INIT_AC_BAD_USERID_AND_OR_PASSWORD 1011 -#define YAZ_BIB1_INIT_AC_NO_SEARCHES_REMAINING_PRE_PURCHASED_SEARCHES_ 1012 -#define YAZ_BIB1_INIT_AC_INCORRECT_INTERFACE_TYPE_SPECIFIED_ID_VALID_ 1013 -#define YAZ_BIB1_INIT_AC_AUTHENTICATION_SYSTEM_ERROR 1014 -#define YAZ_BIB1_INIT_AC_MAXIMUM_NUMBER_OF_SIMULTANEOUS_SESSIONS_FOR_ 1015 -#define YAZ_BIB1_INIT_AC_BLOCKED_NETWORK_ADDRESS 1016 -#define YAZ_BIB1_INIT_AC_NO_DATABASES_AVAILABLE_FOR_SPECIFIED_USERID 1017 -#define YAZ_BIB1_INIT_AC_SYSTEM_TEMPORARILY_OUT_OF_RESOURCES 1018 -#define YAZ_BIB1_INIT_AC_SYSTEM_NOT_AVAILABLE_DUE_TO_MAINTENANCE 1019 -#define YAZ_BIB1_INIT_AC_SYSTEM_TEMPORARILY_UNAVAILABLE_ADDINFO_WHEN_IT_ 1020 -#define YAZ_BIB1_INIT_AC_ACCOUNT_HAS_EXPIRED 1021 -#define YAZ_BIB1_INIT_AC_PASSWORD_HAS_EXPIRED_SO_A_NEW_ONE_MUST_BE_ 1022 -#define YAZ_BIB1_INIT_AC_PASSWORD_HAS_BEEN_CHANGED_BY_AN_ADMINISTRATOR_ 1023 -#define YAZ_BIB1_UNSUPP_ATTRIBUTE 1024 -#define YAZ_BIB1_SERVICE_UNSUPP_FOR_THIS_DATABASE 1025 -#define YAZ_BIB1_RECORD_CANNOT_BE_OPENED_BECAUSE_IT_IS_LOCKED 1026 -#define YAZ_BIB1_SQL_ERROR 1027 -#define YAZ_BIB1_RECORD_DELETED 1028 -#define YAZ_BIB1_SCAN_TOO_MANY_TERMS_REQUESTED_ADDINFO_MAX_TERMS_ 1029 -#define YAZ_BIB1_ES_INVALID_FUNCTION 1040 -#define YAZ_BIB1_ES_ERROR_IN_RETENTION_TIME 1041 -#define YAZ_BIB1_ES_PERMISSIONS_DATA_NOT_UNDERSTOOD 1042 -#define YAZ_BIB1_ES_INVALID_OID_FOR_TASK_SPECIFIC_PARAMETERS 1043 -#define YAZ_BIB1_ES_INVALID_ACTION 1044 -#define YAZ_BIB1_ES_UNKNOWN_SCHEMA 1045 -#define YAZ_BIB1_ES_TOO_MANY_RECORDS_IN_PACKAGE 1046 -#define YAZ_BIB1_ES_INVALID_WAIT_ACTION 1047 -#define YAZ_BIB1_ES_CANNOT_CREATE_TASK_PACKAGE__EXCEEDS_MAXIMUM_ 1048 -#define YAZ_BIB1_ES_CANNOT_RETURN_TASK_PACKAGE__EXCEEDS_MAXIMUM_ 1049 -#define YAZ_BIB1_ES_EXTENDED_SERVICES_REQUEST_TOO_LARGE 1050 -#define YAZ_BIB1_SCAN_ATTRIBUTE_SET_ID_REQUIRED__NOT_SUPPLIED 1051 -#define YAZ_BIB1_ES_CANNOT_PROCESS_TASK_PACKAGE_RECORD__EXCEEDS_MAXIMUM_ 1052 -#define YAZ_BIB1_ES_CANNOT_RETURN_TASK_PACKAGE_RECORD__EXCEEDS_MAXIMUM_ 1053 -#define YAZ_BIB1_INIT_REQUIRED_NEGOTIATION_RECORD_NOT_INCLUDED 1054 -#define YAZ_BIB1_INIT_NEGOTIATION_OPTION_REQUIRED 1055 -#define YAZ_BIB1_ATTRIBUTE_UNSUPP_FOR_DATABASE 1056 -#define YAZ_BIB1_ES_UNSUPP_VALUE_OF_TASK_PACKAGE_PARAMETER 1057 -#define YAZ_BIB1_DUP_DETECTION_CANNOT_DEDUP_ON_REQUESTED_RECORD_PORTION 1058 -#define YAZ_BIB1_DUP_DETECTION_REQUESTED_DETECTION_CRITERION_UNSUPP 1059 -#define YAZ_BIB1_DUP_DETECTION_REQUESTED_LEVEL_OF_MATCH_UNSUPP 1060 -#define YAZ_BIB1_DUP_DETECTION_REQUESTED_REGULAR_EXPRESSION_UNSUPP 1061 -#define YAZ_BIB1_DUP_DETECTION_CANNOT_DO_CLUSTERING 1062 -#define YAZ_BIB1_DUP_DETECTION_RETENTION_CRITERION_UNSUPP 1063 -#define YAZ_BIB1_DUP_DETECTION_REQUESTED_NUMBER_OR_PERCENTAGE_OF_ENTRIES_ 1064 -#define YAZ_BIB1_DUP_DETECTION_REQUESTED_SORT_CRITERION_UNSUPP 1065 -#define YAZ_BIB1_COMPSPEC_UNKNOWN_SCHEMA_OR_SCHEMA_UNSUPP_ 1066 -#define YAZ_BIB1_ENCAPSULATION_ENCAPSULATED_SEQUENCE_OF_PDUS_UNSUPP 1067 -#define YAZ_BIB1_ENCAPSULATION_BASE_OPERATION_AND_ENCAPSULATED_PDUS_NOT_ 1068 -#define YAZ_BIB1_NO_SYNTAXES_AVAILABLE_FOR_THIS_REQUEST 1069 -#define YAZ_BIB1_USER_NOT_AUTHORIZED_TO_RECEIVE_RECORD_S_IN_REQUESTED_ 1070 -#define YAZ_BIB1_PREFERREDRECORDSYNTAX_NOT_SUPPLIED 1071 -#define YAZ_BIB1_QUERY_TERM_INCLUDES_CHARS_THAT_DO_NOT_TRANSLATE_INTO_ 1072 - -YAZ_END_CDECL -#endif - diff --git a/dependencies/yaz_3.0.14/include/yaz/diagsru_update.h b/dependencies/yaz_3.0.14/include/yaz/diagsru_update.h deleted file mode 100644 index 79082d5..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/diagsru_update.h +++ /dev/null @@ -1,63 +0,0 @@ -/** \file ./../include/yaz/diagsru_update.h - \brief Diagnostics: Generated by csvtodiag.tcl from ./sru_update.csv */ - -#include - -#ifndef YAZ_DIAG_sru_update_H -#define YAZ_DIAG_sru_update_H -YAZ_BEGIN_CDECL -YAZ_EXPORT const char *yaz_diag_sru_update_str(int code); -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_RECORD_REJECTED 1 -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_COMPONENT_REJECTED 2 -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_WARNING_ONLY 3 -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_DEFAULT_VALUE_APPLIED 4 -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_DATA_CORRECTED_BY_SERVER 5 -#define YAZ_SRU_UPDATE_INVALID_REPETITION_OF_COMPONENT_RECORD_REJECTED 6 -#define YAZ_SRU_UPDATE_INVALID_REPETITION_OF_COMPONENT_COMPONENT_REJECTED 7 -#define YAZ_SRU_UPDATE_INVALID_REPETITION_OF_COMPONENT_WARNING_ONLY 8 -#define YAZ_SRU_UPDATE_MISSING_MANDATORY_ELEMENT_RECORD_REJECTED 9 -#define YAZ_SRU_UPDATE_MISSING_MANDATORY_ELEMENT_WARNING_ONLY 10 -#define YAZ_SRU_UPDATE_MISSING_MANDATORY_ELEMENT_DEFAULT_VALUE_APPLIED 11 -#define YAZ_SRU_UPDATE_INVALID_DATA_STRUCTURE_RECORD_REJECTED 12 -#define YAZ_SRU_UPDATE_INVALID_DATA_STRUCTURE_COMPONENT_REJECTED 13 -#define YAZ_SRU_UPDATE_INVALID_DATA_STRUCTURE_WARNING_ONLY 14 -#define YAZ_SRU_UPDATE_INVALID_DATA_STRUCTURE_DEFAULT_VALUE_APPLIED 15 -#define YAZ_SRU_UPDATE_INVALID_DATA_STRUCTURE_DATA_CORRECTED_BY_SERVER 16 -#define YAZ_SRU_UPDATE_INCORRECT_ELEMENT_LENGTH_RECORD_REJECTED 17 -#define YAZ_SRU_UPDATE_INCORRECT_ELEMENT_LENGTH_COMPONENT_REJECTED 18 -#define YAZ_SRU_UPDATE_INCORRECT_ELEMENT_LENGTH_WARNING_ONLY 19 -#define YAZ_SRU_UPDATE_INCORRECT_ELEMENT_LENGTH_DEFAULT_VALUE_APPLIED 20 -#define YAZ_SRU_UPDATE_INCORRECT_ELEMENT_LENGTH_DATA_CORRECTED_BY_SERVER 21 -#define YAZ_SRU_UPDATE_INVALID_RECORD_IDENTIFIER_RECORD_REJECTED 22 -#define YAZ_SRU_UPDATE_INVALID_RECORD_IDENTIFIER_WARNING_ONLY 23 -#define YAZ_SRU_UPDATE_INVALID_RECORD_IDENTIFIER_DEFAULT_APPLIED 24 -#define YAZ_SRU_UPDATE_INVALID_RECORD_IDENTIFIER_DATA_CORRECTED_BY_SERVER 25 -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_IDENTIFIER_RECORD_REJECTED 26 -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_IDENTIFIER_COMPONENT_REJECTED 27 -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_IDENTIFIER_WARNING_ONLY 28 -#define YAZ_SRU_UPDATE_INVALID_COMPONENT_IDENTIFIER_DATA_CORRECTED_BY_SERVER 29 -#define YAZ_SRU_UPDATE_RECORD_SCHEMA_UNACCEPTABLE_RECORD_REJECTED 30 -#define YAZ_SRU_UPDATE_RECORD_SCHEMA_UNACCEPTABLE_COMPONENT_REJECTED 31 -#define YAZ_SRU_UPDATE_RECORD_SCHEMA_UNRECOGNISED_WARNING_ONLY 32 -#define YAZ_SRU_UPDATE_RECORD_SCHEMA_UNACCEPTABLE_RECORD_CONVERTED 33 -#define YAZ_SRU_UPDATE_RECORD_NOT_FOUND_REPLACEMENT_OR_DELETE_ 50 -#define YAZ_SRU_UPDATE_COMPONENT_NOT_FOUND_REPLACEMENT_OR_DELETE_ 51 -#define YAZ_SRU_UPDATE_RECORD_PROTECTED_OR_LOCKED_BY_ANOTHER_USER 52 -#define YAZ_SRU_UPDATE_CANNOT_DELETE_OR_REPLACE_RECORD_OR_COMPONENT_ 53 -#define YAZ_SRU_UPDATE_CANNOT_DELETE_OR_REPLACE_RECORD_OR_COMPONENT_WITHOUT_ 54 -#define YAZ_SRU_UPDATE_CANNOT_PROCESS_UPDATE_INCORRECT_OR_INVALID_VERSION 55 -#define YAZ_SRU_UPDATE_LINKED_RECORDS_EXIST_CANNOT_DELETE_RECORD 56 -#define YAZ_SRU_UPDATE_RECORD_OR_COMPONENT_NOT_FOUND_REPLACEMENT_REQUEST_ 57 -#define YAZ_SRU_UPDATE_SUSPECT_DUP_RECORD_OR_COMPONENT_INSERT_REJECTED 58 -#define YAZ_SRU_UPDATE_SUSPECT_DUP_WARNING_ONLY 59 -#define YAZ_SRU_UPDATE_INCOMING_RECORD_MATCHES_WITH_DATABASE_RECORD_RECORDS_ 60 -#define YAZ_SRU_UPDATE_UNSPECIFIED_DATABASE_ERROR 61 -#define YAZ_SRU_UPDATE_CANNOT_PROCESS_OR_STORE_RECORD_INSUFFICENT_SPACE 62 -#define YAZ_SRU_UPDATE__RECORD_IS_IGNORED_WHILE_BOTH_RECORDIDENTIFIER_AND_ 63 -#define YAZ_SRU_UPDATE__RECORDIDENTIFIER_IS_IGNORED_WHILE_BOTH_ 64 -#define YAZ_SRU_UPDATE_NOT_PROCESSED_REPLACE_OR_DELETE_RECORD_IDENTIFIER_ 65 -#define YAZ_SRU_UPDATE_INVALID_ACTION 100 - -YAZ_END_CDECL -#endif - diff --git a/dependencies/yaz_3.0.14/include/yaz/diagsrw.h b/dependencies/yaz_3.0.14/include/yaz/diagsrw.h deleted file mode 100644 index 5839794..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/diagsrw.h +++ /dev/null @@ -1,107 +0,0 @@ -/** \file ./../include/yaz/diagsrw.h - \brief Diagnostics: Generated by csvtodiag.tcl from ./srw.csv */ - -#include - -#ifndef YAZ_DIAG_srw_H -#define YAZ_DIAG_srw_H -YAZ_BEGIN_CDECL -YAZ_EXPORT const char *yaz_diag_srw_str(int code); -#define YAZ_SRW_PERMANENT_SYSTEM_ERROR 1 -#define YAZ_SRW_SYSTEM_TEMPORARILY_UNAVAILABLE 2 -#define YAZ_SRW_AUTHENTICATION_ERROR 3 -#define YAZ_SRW_UNSUPP_OPERATION 4 -#define YAZ_SRW_UNSUPP_VERSION 5 -#define YAZ_SRW_UNSUPP_PARAMETER_VALUE 6 -#define YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED 7 -#define YAZ_SRW_UNSUPP_PARAMETER 8 -#define YAZ_SRW_QUERY_SYNTAX_ERROR 10 -#define YAZ_SRW_UNSUPP_QUERY_TYPE 11 -#define YAZ_SRW_TOO_MANY_CHARS_IN_QUERY 12 -#define YAZ_SRW_INVALID_OR_UNSUPP_USE_OF_PARENTHESES 13 -#define YAZ_SRW_INVALID_OR_UNSUPP_USE_OF_QUOTES 14 -#define YAZ_SRW_UNSUPP_CONTEXT_SET 15 -#define YAZ_SRW_UNSUPP_INDEX 16 -#define YAZ_SRW_UNSUPP_COMBI_OF_INDEX_AND_CONTEXT_SET 17 -#define YAZ_SRW_UNSUPP_COMBI_OF_INDEXES 18 -#define YAZ_SRW_UNSUPP_RELATION 19 -#define YAZ_SRW_UNSUPP_RELATION_MODIFIER 20 -#define YAZ_SRW_UNSUPP_COMBI_OF_RELATION_MODIFERS 21 -#define YAZ_SRW_UNSUPP_COMBI_OF_RELATION_AND_INDEX 22 -#define YAZ_SRW_TOO_MANY_CHARS_IN_TERM 23 -#define YAZ_SRW_UNSUPP_COMBI_OF_RELATION_AND_TERM 24 -#define YAZ_SRW_SPECIAL_CHARS_NOT_QUOTED_IN_TERM 25 -#define YAZ_SRW_NON_SPECIAL_CHAR_ESCAPED_IN_TERM 26 -#define YAZ_SRW_EMPTY_TERM_UNSUPP 27 -#define YAZ_SRW_MASKING_CHAR_UNSUPP 28 -#define YAZ_SRW_MASKED_WORDS_TOO_SHORT 29 -#define YAZ_SRW_TOO_MANY_MASKING_CHARS_IN_TERM 30 -#define YAZ_SRW_ANCHORING_CHAR_UNSUPP 31 -#define YAZ_SRW_ANCHORING_CHAR_IN_UNSUPP_POSITION 32 -#define YAZ_SRW_COMBI_OF_PROX_ADJACENCY_AND_MASKING_CHARS_UNSUPP 33 -#define YAZ_SRW_COMBI_OF_PROX_ADJACENCY_AND_ANCHORING_CHARS_UNSUPP 34 -#define YAZ_SRW_TERM_CONTAINS_ONLY_STOPWORDS 35 -#define YAZ_SRW_TERM_IN_INVALID_FORMAT_FOR_INDEX_OR_RELATION 36 -#define YAZ_SRW_UNSUPP_BOOLEAN_OPERATOR 37 -#define YAZ_SRW_TOO_MANY_BOOLEAN_OPERATORS_IN_QUERY 38 -#define YAZ_SRW_PROX_UNSUPP 39 -#define YAZ_SRW_UNSUPP_PROX_RELATION 40 -#define YAZ_SRW_UNSUPP_PROX_DISTANCE 41 -#define YAZ_SRW_UNSUPP_PROX_UNIT 42 -#define YAZ_SRW_UNSUPP_PROX_ORDERING 43 -#define YAZ_SRW_UNSUPP_COMBI_OF_PROX_MODIFIERS 44 -#define YAZ_SRW_PREFIX_ASSIGNED_TO_MULTIPLE_IDENTIFIERS 45 -#define YAZ_SRW_UNSUPP_BOOLEAN_MODIFIER 46 -#define YAZ_SRW_CANNOT_PROCESS_QUERY_REASON_UNKNOWN 47 -#define YAZ_SRW_QUERY_FEATURE_UNSUPP 48 -#define YAZ_SRW_MASKING_CHAR_IN_UNSUPP_POSITION 49 -#define YAZ_SRW_RESULT_SETS_UNSUPP 50 -#define YAZ_SRW_RESULT_SET_DOES_NOT_EXIST 51 -#define YAZ_SRW_RESULT_SET_TEMPORARILY_UNAVAILABLE 52 -#define YAZ_SRW_RESULT_SETS_ONLY_SUPPORTED_FOR_RETRIEVAL 53 -#define YAZ_SRW_RETRIEVAL_MAY_ONLY_OCCUR_FROM_AN_EXISTING_RESULT_SET 54 -#define YAZ_SRW_COMBI_OF_RESULT_SETS_WITH_SEARCH_TERMS_UNSUPP 55 -#define YAZ_SRW_ONLY_COMBI_OF_SINGLE_RESULT_SET_WITH_SEARCH_TERMS_ 56 -#define YAZ_SRW_RESULT_SET_CREATED_BUT_NO_RECORDS_AVAILABLE 57 -#define YAZ_SRW_RESULT_SET_CREATED_WITH_UNPREDICTABLE_PARTIAL_RESULTS_ 58 -#define YAZ_SRW_RESULT_SET_CREATED_WITH_VALID_PARTIAL_RESULTS_AVAILABLE 59 -#define YAZ_SRW_RESULT_SET_NOT_CREATED_TOO_MANY_MATCHING_RECORDS 60 -#define YAZ_SRW_FIRST_RECORD_POSITION_OUT_OF_RANGE 61 -#define YAZ_SRW_NEGATIVE_NUMBER_OF_RECORDS_REQUESTED 62 -#define YAZ_SRW_SYSTEM_ERROR_IN_RETRIEVING_RECORDS 63 -#define YAZ_SRW_RECORD_TEMPORARILY_UNAVAILABLE 64 -#define YAZ_SRW_RECORD_DOES_NOT_EXIST 65 -#define YAZ_SRW_UNKNOWN_SCHEMA_FOR_RETRIEVAL 66 -#define YAZ_SRW_RECORD_NOT_AVAILABLE_IN_THIS_SCHEMA 67 -#define YAZ_SRW_NOT_AUTHORISED_TO_SEND_RECORD 68 -#define YAZ_SRW_NOT_AUTHORISED_TO_SEND_RECORD_IN_THIS_SCHEMA 69 -#define YAZ_SRW_RECORD_TOO_LARGE_TO_SEND 70 -#define YAZ_SRW_UNSUPP_RECORD_PACKING 71 -#define YAZ_SRW_XPATH_RETRIEVAL_UNSUPP 72 -#define YAZ_SRW_XPATH_EXPRESSION_CONTAINS_UNSUPP_FEATURE 73 -#define YAZ_SRW_UNABLE_TO_EVALUATE_XPATH_EXPRESSION 74 -#define YAZ_SRW_SORT_UNSUPP 80 -#define YAZ_SRW_UNSUPP_SORT_TYPE 81 -#define YAZ_SRW_UNSUPP_SORT_SEQUENCE 82 -#define YAZ_SRW_TOO_MANY_RECORDS_TO_SORT 83 -#define YAZ_SRW_TOO_MANY_SORT_KEYS_TO_SORT 84 -#define YAZ_SRW_DUP_SORT_KEYS 85 -#define YAZ_SRW_CANNOT_SORT_INCOMPATIBLE_RECORD_FORMATS 86 -#define YAZ_SRW_UNSUPP_SCHEMA_FOR_SORT 87 -#define YAZ_SRW_UNSUPP_PATH_FOR_SORT 88 -#define YAZ_SRW_PATH_UNSUPP_FOR_SCHEMA 89 -#define YAZ_SRW_UNSUPP_DIRECTION_VALUE 90 -#define YAZ_SRW_UNSUPP_CASE_VALUE 91 -#define YAZ_SRW_UNSUPP_MISSING_VALUE_ACTION 92 -#define YAZ_SRW_SORT_ENDED_DUE_TO_MISSING_VALUE 93 -#define YAZ_SRW_EXPLAIN_UNSUPP 100 -#define YAZ_SRW_EXPLAIN_REQUEST_TYPE_UNSUPP_SOAP_VS_GET_ 101 -#define YAZ_SRW_EXPLAIN_RECORD_TEMPORARILY_UNAVAILABLE 102 -#define YAZ_SRW_STYLESHEETS_UNSUPP 110 -#define YAZ_SRW_UNSUPP_STYLESHEET 111 -#define YAZ_SRW_RESPONSE_POSITION_OUT_OF_RANGE 120 -#define YAZ_SRW_TOO_MANY_TERMS_REQUESTED 121 - -YAZ_END_CDECL -#endif - diff --git a/dependencies/yaz_3.0.14/include/yaz/ill-core.h b/dependencies/yaz_3.0.14/include/yaz/ill-core.h deleted file mode 100644 index 43b48e6..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/ill-core.h +++ /dev/null @@ -1,1332 +0,0 @@ -/** \file ill-core.h - \brief ASN.1 Module ISO-10161-ILL-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef ill_core_H -#define ill_core_H - -#include -#ifdef __cplusplus -extern "C" { -#endif - - - -typedef struct ILL_APDU ILL_APDU; -YAZ_EXPORT int ill_APDU (ODR o, ILL_APDU **p, int opt, const char *name); - -typedef struct ILL_Request ILL_Request; -YAZ_EXPORT int ill_Request (ODR o, ILL_Request **p, int opt, const char *name); - -typedef struct ILL_Forward_Notification ILL_Forward_Notification; -YAZ_EXPORT int ill_Forward_Notification (ODR o, ILL_Forward_Notification **p, int opt, const char *name); - -typedef struct ILL_Shipped ILL_Shipped; -YAZ_EXPORT int ill_Shipped (ODR o, ILL_Shipped **p, int opt, const char *name); - -typedef struct ILL_Answer ILL_Answer; -YAZ_EXPORT int ill_Answer (ODR o, ILL_Answer **p, int opt, const char *name); - -typedef struct ILL_Conditional_Reply ILL_Conditional_Reply; -YAZ_EXPORT int ill_Conditional_Reply (ODR o, ILL_Conditional_Reply **p, int opt, const char *name); - -typedef struct ILL_Cancel ILL_Cancel; -YAZ_EXPORT int ill_Cancel (ODR o, ILL_Cancel **p, int opt, const char *name); - -typedef struct ILL_Cancel_Reply ILL_Cancel_Reply; -YAZ_EXPORT int ill_Cancel_Reply (ODR o, ILL_Cancel_Reply **p, int opt, const char *name); - -typedef struct ILL_Received ILL_Received; -YAZ_EXPORT int ill_Received (ODR o, ILL_Received **p, int opt, const char *name); - -typedef struct ILL_Recall ILL_Recall; -YAZ_EXPORT int ill_Recall (ODR o, ILL_Recall **p, int opt, const char *name); - -typedef struct ILL_Returned ILL_Returned; -YAZ_EXPORT int ill_Returned (ODR o, ILL_Returned **p, int opt, const char *name); - -typedef struct ILL_Checked_In ILL_Checked_In; -YAZ_EXPORT int ill_Checked_In (ODR o, ILL_Checked_In **p, int opt, const char *name); - -typedef struct ILL_Overdue_ExtensionS ILL_Overdue_ExtensionS; -YAZ_EXPORT int ill_Overdue_ExtensionS (ODR o, ILL_Overdue_ExtensionS **p, int opt, const char *name); - -typedef struct ILL_Overdue ILL_Overdue; -YAZ_EXPORT int ill_Overdue (ODR o, ILL_Overdue **p, int opt, const char *name); - -typedef struct ILL_Renew ILL_Renew; -YAZ_EXPORT int ill_Renew (ODR o, ILL_Renew **p, int opt, const char *name); - -typedef struct ILL_Renew_Answer ILL_Renew_Answer; -YAZ_EXPORT int ill_Renew_Answer (ODR o, ILL_Renew_Answer **p, int opt, const char *name); - -typedef struct ILL_Lost ILL_Lost; -YAZ_EXPORT int ill_Lost (ODR o, ILL_Lost **p, int opt, const char *name); - -typedef struct ILL_Damaged ILL_Damaged; -YAZ_EXPORT int ill_Damaged (ODR o, ILL_Damaged **p, int opt, const char *name); - -typedef struct ILL_Message ILL_Message; -YAZ_EXPORT int ill_Message (ODR o, ILL_Message **p, int opt, const char *name); - -typedef struct ILL_Status_Query ILL_Status_Query; -YAZ_EXPORT int ill_Status_Query (ODR o, ILL_Status_Query **p, int opt, const char *name); - -typedef struct ILL_Status_Or_Error_Report ILL_Status_Or_Error_Report; -YAZ_EXPORT int ill_Status_Or_Error_Report (ODR o, ILL_Status_Or_Error_Report **p, int opt, const char *name); - -typedef struct ILL_Expired ILL_Expired; -YAZ_EXPORT int ill_Expired (ODR o, ILL_Expired **p, int opt, const char *name); - -typedef struct ILL_Already_Forwarded ILL_Already_Forwarded; -YAZ_EXPORT int ill_Already_Forwarded (ODR o, ILL_Already_Forwarded **p, int opt, const char *name); - -typedef struct ILL_Already_Tried_List_Type ILL_Already_Tried_List_Type; -YAZ_EXPORT int ill_Already_Tried_List_Type (ODR o, ILL_Already_Tried_List_Type **p, int opt, const char *name); - -typedef struct ILL_Amount ILL_Amount; -YAZ_EXPORT int ill_Amount (ODR o, ILL_Amount **p, int opt, const char *name); - -typedef char ILL_AmountString; -YAZ_EXPORT int ill_AmountString (ODR o, ILL_AmountString **p, int opt, const char *name); - -typedef struct ILL_Client_Id ILL_Client_Id; -YAZ_EXPORT int ill_Client_Id (ODR o, ILL_Client_Id **p, int opt, const char *name); - -typedef struct ILL_Conditional_Results ILL_Conditional_Results; -YAZ_EXPORT int ill_Conditional_Results (ODR o, ILL_Conditional_Results **p, int opt, const char *name); - -typedef struct ILL_Cost_Info_Type ILL_Cost_Info_Type; -YAZ_EXPORT int ill_Cost_Info_Type (ODR o, ILL_Cost_Info_Type **p, int opt, const char *name); - -typedef int ILL_Current_State; -YAZ_EXPORT int ill_Current_State (ODR o, ILL_Current_State **p, int opt, const char *name); - -typedef struct ILL_Damaged_DetailsSpecific_units ILL_Damaged_DetailsSpecific_units; -YAZ_EXPORT int ill_Damaged_DetailsSpecific_units (ODR o, ILL_Damaged_DetailsSpecific_units **p, int opt, const char *name); - -typedef struct ILL_Damaged_Details ILL_Damaged_Details; -YAZ_EXPORT int ill_Damaged_Details (ODR o, ILL_Damaged_Details **p, int opt, const char *name); - -typedef struct ILL_Date_Due ILL_Date_Due; -YAZ_EXPORT int ill_Date_Due (ODR o, ILL_Date_Due **p, int opt, const char *name); - -typedef struct ILL_Delivery_Address ILL_Delivery_Address; -YAZ_EXPORT int ill_Delivery_Address (ODR o, ILL_Delivery_Address **p, int opt, const char *name); - -typedef struct ILL_Delivery_ServiceElectronic_delivery ILL_Delivery_ServiceElectronic_delivery; -YAZ_EXPORT int ill_Delivery_ServiceElectronic_delivery (ODR o, ILL_Delivery_ServiceElectronic_delivery **p, int opt, const char *name); - -typedef struct ILL_Delivery_Service ILL_Delivery_Service; -YAZ_EXPORT int ill_Delivery_Service (ODR o, ILL_Delivery_Service **p, int opt, const char *name); - -typedef struct ILL_Electronic_Delivery_Service_0 ILL_Electronic_Delivery_Service_0; -YAZ_EXPORT int ill_Electronic_Delivery_Service_0 (ODR o, ILL_Electronic_Delivery_Service_0 **p, int opt, const char *name); - -typedef struct ILL_Electronic_Delivery_Service_1 ILL_Electronic_Delivery_Service_1; -YAZ_EXPORT int ill_Electronic_Delivery_Service_1 (ODR o, ILL_Electronic_Delivery_Service_1 **p, int opt, const char *name); - -typedef struct ILL_Electronic_Delivery_Service ILL_Electronic_Delivery_Service; -YAZ_EXPORT int ill_Electronic_Delivery_Service (ODR o, ILL_Electronic_Delivery_Service **p, int opt, const char *name); - -typedef struct ILL_Error_Report ILL_Error_Report; -YAZ_EXPORT int ill_Error_Report (ODR o, ILL_Error_Report **p, int opt, const char *name); - -typedef struct ILL_Estimate_Results ILL_Estimate_Results; -YAZ_EXPORT int ill_Estimate_Results (ODR o, ILL_Estimate_Results **p, int opt, const char *name); - -typedef struct ILL_Extension ILL_Extension; -YAZ_EXPORT int ill_Extension (ODR o, ILL_Extension **p, int opt, const char *name); - -typedef int ILL_General_Problem; -YAZ_EXPORT int ill_General_Problem (ODR o, ILL_General_Problem **p, int opt, const char *name); - -typedef struct ILL_History_Report ILL_History_Report; -YAZ_EXPORT int ill_History_Report (ODR o, ILL_History_Report **p, int opt, const char *name); - -typedef struct ILL_Hold_Placed_Results ILL_Hold_Placed_Results; -YAZ_EXPORT int ill_Hold_Placed_Results (ODR o, ILL_Hold_Placed_Results **p, int opt, const char *name); - -typedef int ILL_APDU_Type; -YAZ_EXPORT int ill_APDU_Type (ODR o, ILL_APDU_Type **p, int opt, const char *name); - -typedef int ILL_Service_Type; -YAZ_EXPORT int ill_Service_Type (ODR o, ILL_Service_Type **p, int opt, const char *name); - -typedef struct ILL_String ILL_String; -YAZ_EXPORT int ill_String (ODR o, ILL_String **p, int opt, const char *name); - -typedef ILL_String ILL_Account_Number; -YAZ_EXPORT int ill_Account_Number (ODR o, ILL_Account_Number **p, int opt, const char *name); - -typedef int ILL_Intermediary_Problem; -YAZ_EXPORT int ill_Intermediary_Problem (ODR o, ILL_Intermediary_Problem **p, int opt, const char *name); - -typedef char ILL_ISO_Date; -YAZ_EXPORT int ill_ISO_Date (ODR o, ILL_ISO_Date **p, int opt, const char *name); - -typedef char ILL_ISO_Time; -YAZ_EXPORT int ill_ISO_Time (ODR o, ILL_ISO_Time **p, int opt, const char *name); - -typedef struct ILL_Item_Id ILL_Item_Id; -YAZ_EXPORT int ill_Item_Id (ODR o, ILL_Item_Id **p, int opt, const char *name); - -typedef struct ILL_Location_Info ILL_Location_Info; -YAZ_EXPORT int ill_Location_Info (ODR o, ILL_Location_Info **p, int opt, const char *name); - -typedef struct ILL_Locations_Results ILL_Locations_Results; -YAZ_EXPORT int ill_Locations_Results (ODR o, ILL_Locations_Results **p, int opt, const char *name); - -typedef int ILL_Medium_Type; -YAZ_EXPORT int ill_Medium_Type (ODR o, ILL_Medium_Type **p, int opt, const char *name); - -typedef struct ILL_Name_Of_Person_Or_Institution ILL_Name_Of_Person_Or_Institution; -YAZ_EXPORT int ill_Name_Of_Person_Or_Institution (ODR o, ILL_Name_Of_Person_Or_Institution **p, int opt, const char *name); - -typedef struct ILL_Person_Or_Institution_Symbol ILL_Person_Or_Institution_Symbol; -YAZ_EXPORT int ill_Person_Or_Institution_Symbol (ODR o, ILL_Person_Or_Institution_Symbol **p, int opt, const char *name); - -typedef int ILL_Place_On_Hold_Type; -YAZ_EXPORT int ill_Place_On_Hold_Type (ODR o, ILL_Place_On_Hold_Type **p, int opt, const char *name); - -typedef struct ILL_Postal_Address ILL_Postal_Address; -YAZ_EXPORT int ill_Postal_Address (ODR o, ILL_Postal_Address **p, int opt, const char *name); - -typedef struct ILL_Provider_Error_Report ILL_Provider_Error_Report; -YAZ_EXPORT int ill_Provider_Error_Report (ODR o, ILL_Provider_Error_Report **p, int opt, const char *name); - -typedef int ILL_Reason_Locs_Provided; -YAZ_EXPORT int ill_Reason_Locs_Provided (ODR o, ILL_Reason_Locs_Provided **p, int opt, const char *name); - -typedef int ILL_Reason_No_Report; -YAZ_EXPORT int ill_Reason_No_Report (ODR o, ILL_Reason_No_Report **p, int opt, const char *name); - -typedef int ILL_Reason_Unfilled; -YAZ_EXPORT int ill_Reason_Unfilled (ODR o, ILL_Reason_Unfilled **p, int opt, const char *name); - -typedef int ILL_Report_Source; -YAZ_EXPORT int ill_Report_Source (ODR o, ILL_Report_Source **p, int opt, const char *name); - -typedef struct ILL_Requester_Optional_Messages_Type ILL_Requester_Optional_Messages_Type; -YAZ_EXPORT int ill_Requester_Optional_Messages_Type (ODR o, ILL_Requester_Optional_Messages_Type **p, int opt, const char *name); - -typedef struct ILL_Responder_Optional_Messages_Type ILL_Responder_Optional_Messages_Type; -YAZ_EXPORT int ill_Responder_Optional_Messages_Type (ODR o, ILL_Responder_Optional_Messages_Type **p, int opt, const char *name); - -typedef struct ILL_Retry_Results ILL_Retry_Results; -YAZ_EXPORT int ill_Retry_Results (ODR o, ILL_Retry_Results **p, int opt, const char *name); - -typedef struct ILL_Search_Type ILL_Search_Type; -YAZ_EXPORT int ill_Search_Type (ODR o, ILL_Search_Type **p, int opt, const char *name); - -typedef ILL_String ILL_Security_Problem; -YAZ_EXPORT int ill_Security_Problem (ODR o, ILL_Security_Problem **p, int opt, const char *name); - -typedef struct ILL_Send_To_List_Type_s ILL_Send_To_List_Type_s; -YAZ_EXPORT int ill_Send_To_List_Type_s (ODR o, ILL_Send_To_List_Type_s **p, int opt, const char *name); - -typedef struct ILL_Send_To_List_Type ILL_Send_To_List_Type; -YAZ_EXPORT int ill_Send_To_List_Type (ODR o, ILL_Send_To_List_Type **p, int opt, const char *name); - -typedef struct ILL_Service_Date_this ILL_Service_Date_this; -YAZ_EXPORT int ill_Service_Date_this (ODR o, ILL_Service_Date_this **p, int opt, const char *name); - -typedef struct ILL_Service_Date_original ILL_Service_Date_original; -YAZ_EXPORT int ill_Service_Date_original (ODR o, ILL_Service_Date_original **p, int opt, const char *name); - -typedef struct ILL_Service_Date_Time ILL_Service_Date_Time; -YAZ_EXPORT int ill_Service_Date_Time (ODR o, ILL_Service_Date_Time **p, int opt, const char *name); - -typedef ILL_Service_Type ILL_Shipped_Service_Type; -YAZ_EXPORT int ill_Shipped_Service_Type (ODR o, ILL_Shipped_Service_Type **p, int opt, const char *name); - -typedef struct ILL_State_Transition_Prohibited ILL_State_Transition_Prohibited; -YAZ_EXPORT int ill_State_Transition_Prohibited (ODR o, ILL_State_Transition_Prohibited **p, int opt, const char *name); - -typedef struct ILL_Status_Report ILL_Status_Report; -YAZ_EXPORT int ill_Status_Report (ODR o, ILL_Status_Report **p, int opt, const char *name); - -typedef struct ILL_Supplemental_Item_Description ILL_Supplemental_Item_Description; -YAZ_EXPORT int ill_Supplemental_Item_Description (ODR o, ILL_Supplemental_Item_Description **p, int opt, const char *name); - -typedef struct ILL_Supply_Details ILL_Supply_Details; -YAZ_EXPORT int ill_Supply_Details (ODR o, ILL_Supply_Details **p, int opt, const char *name); - -typedef struct ILL_Supply_Medium_Info_Type ILL_Supply_Medium_Info_Type; -YAZ_EXPORT int ill_Supply_Medium_Info_Type (ODR o, ILL_Supply_Medium_Info_Type **p, int opt, const char *name); - -typedef int ILL_Supply_Medium_Type; -YAZ_EXPORT int ill_Supply_Medium_Type (ODR o, ILL_Supply_Medium_Type **p, int opt, const char *name); - -typedef struct ILL_System_Address ILL_System_Address; -YAZ_EXPORT int ill_System_Address (ODR o, ILL_System_Address **p, int opt, const char *name); - -typedef struct ILL_System_Id ILL_System_Id; -YAZ_EXPORT int ill_System_Id (ODR o, ILL_System_Id **p, int opt, const char *name); - -typedef struct ILL_Third_Party_Info_Type ILL_Third_Party_Info_Type; -YAZ_EXPORT int ill_Third_Party_Info_Type (ODR o, ILL_Third_Party_Info_Type **p, int opt, const char *name); - -typedef struct ILL_Transaction_Id ILL_Transaction_Id; -YAZ_EXPORT int ill_Transaction_Id (ODR o, ILL_Transaction_Id **p, int opt, const char *name); - -typedef int ILL_Transaction_Id_Problem; -YAZ_EXPORT int ill_Transaction_Id_Problem (ODR o, ILL_Transaction_Id_Problem **p, int opt, const char *name); - -typedef int ILL_Transaction_Results; -YAZ_EXPORT int ill_Transaction_Results (ODR o, ILL_Transaction_Results **p, int opt, const char *name); - -typedef int ILL_Transaction_Type; -YAZ_EXPORT int ill_Transaction_Type (ODR o, ILL_Transaction_Type **p, int opt, const char *name); - -typedef ILL_String ILL_Transportation_Mode; -YAZ_EXPORT int ill_Transportation_Mode (ODR o, ILL_Transportation_Mode **p, int opt, const char *name); - -typedef int ILL_Unable_To_Perform; -YAZ_EXPORT int ill_Unable_To_Perform (ODR o, ILL_Unable_To_Perform **p, int opt, const char *name); - -typedef struct ILL_Unfilled_Results ILL_Unfilled_Results; -YAZ_EXPORT int ill_Unfilled_Results (ODR o, ILL_Unfilled_Results **p, int opt, const char *name); - -typedef struct ILL_Units_Per_Medium_Type ILL_Units_Per_Medium_Type; -YAZ_EXPORT int ill_Units_Per_Medium_Type (ODR o, ILL_Units_Per_Medium_Type **p, int opt, const char *name); - -typedef struct ILL_User_Error_Report ILL_User_Error_Report; -YAZ_EXPORT int ill_User_Error_Report (ODR o, ILL_User_Error_Report **p, int opt, const char *name); - -typedef struct ILL_Will_Supply_Results ILL_Will_Supply_Results; -YAZ_EXPORT int ill_Will_Supply_Results (ODR o, ILL_Will_Supply_Results **p, int opt, const char *name); - -typedef char ILL_EDIFACTString; -YAZ_EXPORT int ill_EDIFACTString (ODR o, ILL_EDIFACTString **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct ILL_APDU { - int which; - union { - ILL_Request *illRequest; - ILL_Forward_Notification *Forward_Notification; - ILL_Shipped *Shipped; - ILL_Answer *illAnswer; - ILL_Conditional_Reply *Conditional_Reply; - ILL_Cancel *Cancel; - ILL_Cancel_Reply *Cancel_Reply; - ILL_Received *Received; - ILL_Recall *Recall; - ILL_Returned *Returned; - ILL_Checked_In *Checked_In; - ILL_Overdue *Overdue; - ILL_Renew *Renew; - ILL_Renew_Answer *Renew_Answer; - ILL_Lost *Lost; - ILL_Damaged *Damaged; - ILL_Message *Message; - ILL_Status_Query *Status_Query; - ILL_Status_Or_Error_Report *Status_Or_Error_Report; - ILL_Expired *Expired; -#define ILL_APDU_ILL_Request 1 -#define ILL_APDU_Forward_Notification 2 -#define ILL_APDU_Shipped 3 -#define ILL_APDU_ILL_Answer 4 -#define ILL_APDU_Conditional_Reply 5 -#define ILL_APDU_Cancel 6 -#define ILL_APDU_Cancel_Reply 7 -#define ILL_APDU_Received 8 -#define ILL_APDU_Recall 9 -#define ILL_APDU_Returned 10 -#define ILL_APDU_Checked_In 11 -#define ILL_APDU_Overdue 12 -#define ILL_APDU_Renew 13 -#define ILL_APDU_Renew_Answer 14 -#define ILL_APDU_Lost 15 -#define ILL_APDU_Damaged 16 -#define ILL_APDU_Message 17 -#define ILL_APDU_Status_Query 18 -#define ILL_APDU_Status_Or_Error_Report 19 -#define ILL_APDU_Expired 20 - } u; -}; - -struct ILL_Request { -#define ILL_Request_version_1 1 -#define ILL_Request_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_Transaction_Type *transaction_type; - ILL_Delivery_Address *delivery_address; /* OPT */ - ILL_Delivery_Service *delivery_service; /* OPT */ - ILL_Delivery_Address *billing_address; /* OPT */ - int num_iLL_service_type; - ILL_Service_Type **iLL_service_type; - Odr_external *responder_specific_service; /* OPT */ - ILL_Requester_Optional_Messages_Type *requester_optional_messages; - ILL_Search_Type *search_type; /* OPT */ - int num_supply_medium_info_type; - ILL_Supply_Medium_Info_Type **supply_medium_info_type; /* OPT */ - ILL_Place_On_Hold_Type *place_on_hold; - ILL_Client_Id *client_id; /* OPT */ - ILL_Item_Id *item_id; - ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ - ILL_Cost_Info_Type *cost_info_type; /* OPT */ - ILL_String *copyright_compliance; /* OPT */ - ILL_Third_Party_Info_Type *third_party_info_type; /* OPT */ - bool_t *retry_flag; - bool_t *forward_flag; - ILL_String *requester_note; /* OPT */ - ILL_String *forward_note; /* OPT */ - int num_iLL_request_extensions; - ILL_Extension **iLL_request_extensions; /* OPT */ -}; - -struct ILL_Forward_Notification { -#define ILL_Forward_Notification_version_1 1 -#define ILL_Forward_Notification_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; - ILL_System_Address *responder_address; /* OPT */ - ILL_System_Id *intermediary_id; - ILL_String *notification_note; /* OPT */ - int num_forward_notification_extensions; - ILL_Extension **forward_notification_extensions; /* OPT */ -}; - -struct ILL_Shipped { -#define ILL_Shipped_version_1 1 -#define ILL_Shipped_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_System_Address *responder_address; /* OPT */ - ILL_System_Id *intermediary_id; /* OPT */ - ILL_System_Id *supplier_id; /* OPT */ - ILL_Client_Id *client_id; /* OPT */ - ILL_Transaction_Type *transaction_type; - ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ - ILL_Shipped_Service_Type *shipped_service_type; - ILL_Responder_Optional_Messages_Type *responder_optional_messages; /* OPT */ - ILL_Supply_Details *supply_details; - ILL_Postal_Address *return_to_address; /* OPT */ - ILL_String *responder_note; /* OPT */ - int num_shipped_extensions; - ILL_Extension **shipped_extensions; /* OPT */ -}; - -struct ILL_Answer { -#define ILL_Answer_version_1 1 -#define ILL_Answer_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_Transaction_Results *transaction_results; - int which; - union { - ILL_Conditional_Results *conditional_results; - ILL_Retry_Results *retry_results; - ILL_Unfilled_Results *unfilled_results; - ILL_Locations_Results *locations_results; - ILL_Will_Supply_Results *will_supply_results; - ILL_Hold_Placed_Results *hold_placed_results; - ILL_Estimate_Results *estimate_results; -#define ILL_Answer_conditional_results 1 -#define ILL_Answer_retry_results 2 -#define ILL_Answer_unfilled_results 3 -#define ILL_Answer_locations_results 4 -#define ILL_Answer_will_supply_results 5 -#define ILL_Answer_hold_placed_results 6 -#define ILL_Answer_estimate_results 7 - } u; /* OPT */ - Odr_external *responder_specific_results; /* OPT */ - ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ - ILL_Send_To_List_Type *send_to_list; /* OPT */ - ILL_Already_Tried_List_Type *already_tried_list; /* OPT */ - ILL_Responder_Optional_Messages_Type *responder_optional_messages; /* OPT */ - ILL_String *responder_note; /* OPT */ - int num_ill_answer_extensions; - ILL_Extension **ill_answer_extensions; /* OPT */ -}; - -struct ILL_Conditional_Reply { -#define ILL_Conditional_Reply_version_1 1 -#define ILL_Conditional_Reply_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - bool_t *answer; - ILL_String *requester_note; /* OPT */ - int num_conditional_reply_extensions; - ILL_Extension **conditional_reply_extensions; /* OPT */ -}; - -struct ILL_Cancel { -#define ILL_Cancel_version_1 1 -#define ILL_Cancel_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_String *requester_note; /* OPT */ - int num_cancel_extensions; - ILL_Extension **cancel_extensions; /* OPT */ -}; - -struct ILL_Cancel_Reply { -#define ILL_Cancel_Reply_version_1 1 -#define ILL_Cancel_Reply_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - bool_t *answer; - ILL_String *responder_note; /* OPT */ - int num_cancel_reply_extensions; - ILL_Extension **cancel_reply_extensions; /* OPT */ -}; - -struct ILL_Received { -#define ILL_Received_version_1 1 -#define ILL_Received_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_System_Id *supplier_id; /* OPT */ - ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ - ILL_ISO_Date *date_received; - ILL_Shipped_Service_Type *shipped_service_type; - ILL_String *requester_note; /* OPT */ - int num_received_extensions; - ILL_Extension **received_extensions; /* OPT */ -}; - -struct ILL_Recall { -#define ILL_Recall_version_1 1 -#define ILL_Recall_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_String *responder_note; /* OPT */ - int num_recall_extensions; - ILL_Extension **recall_extensions; /* OPT */ -}; - -struct ILL_Returned { -#define ILL_Returned_version_1 1 -#define ILL_Returned_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ - ILL_ISO_Date *date_returned; - ILL_Transportation_Mode *returned_via; /* OPT */ - ILL_Amount *insured_for; /* OPT */ - ILL_String *requester_note; /* OPT */ - int num_returned_extensions; - ILL_Extension **returned_extensions; /* OPT */ -}; - -struct ILL_Checked_In { -#define ILL_Checked_In_version_1 1 -#define ILL_Checked_In_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_ISO_Date *date_checked_in; - ILL_String *responder_note; /* OPT */ - int num_checked_in_extensions; - ILL_Extension **checked_in_extensions; /* OPT */ -}; - -struct ILL_Overdue_ExtensionS { - int num; - ILL_Extension **elements; -}; - -struct ILL_Overdue { -#define ILL_Overdue_version_1 1 -#define ILL_Overdue_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_Date_Due *date_due; - ILL_String *responder_note; /* OPT */ - ILL_Overdue_ExtensionS *overdue_extensions; /* OPT */ -}; - -struct ILL_Renew { -#define ILL_Renew_version_1 1 -#define ILL_Renew_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_ISO_Date *desired_due_date; /* OPT */ - ILL_String *requester_note; /* OPT */ - int num_renew_extensions; - ILL_Extension **renew_extensions; /* OPT */ -}; - -struct ILL_Renew_Answer { -#define ILL_Renew_Answer_version_1 1 -#define ILL_Renew_Answer_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - bool_t *answer; - ILL_Date_Due *date_due; /* OPT */ - ILL_String *responder_note; /* OPT */ - int num_renew_answer_extensions; - ILL_Extension **renew_answer_extensions; /* OPT */ -}; - -struct ILL_Lost { -#define ILL_Lost_version_1 1 -#define ILL_Lost_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_String *note; /* OPT */ - int num_lost_extensions; - ILL_Extension **lost_extensions; /* OPT */ -}; - -struct ILL_Damaged { -#define ILL_Damaged_version_1 1 -#define ILL_Damaged_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_Damaged_Details *damaged_details; /* OPT */ - ILL_String *note; /* OPT */ - int num_damaged_extensions; - ILL_Extension **damaged_extensions; /* OPT */ -}; - -struct ILL_Message { -#define ILL_Message_version_1 1 -#define ILL_Message_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_String *note; - int num_message_extensions; - ILL_Extension **message_extensions; /* OPT */ -}; - -struct ILL_Status_Query { -#define ILL_Status_Query_version_1 1 -#define ILL_Status_Query_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_String *note; /* OPT */ - int num_status_query_extensions; - ILL_Extension **status_query_extensions; /* OPT */ -}; - -struct ILL_Status_Or_Error_Report { -#define ILL_Status_Or_Error_Report_version_1 1 -#define ILL_Status_Or_Error_Report_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_Reason_No_Report *reason_no_report; /* OPT */ - ILL_Status_Report *status_report; /* OPT */ - ILL_Error_Report *error_report; /* OPT */ - ILL_String *note; /* OPT */ - int num_status_or_error_report_extensions; - ILL_Extension **status_or_error_report_extensions; /* OPT */ -}; - -struct ILL_Expired { -#define ILL_Expired_version_1 1 -#define ILL_Expired_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; - ILL_Service_Date_Time *service_date_time; - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - int num_expired_extensions; - ILL_Extension **expired_extensions; /* OPT */ -}; - - - -struct ILL_Already_Forwarded { - ILL_System_Id *responder_id; - ILL_System_Address *responder_address; /* OPT */ -}; - -struct ILL_Already_Tried_List_Type { - int num; - ILL_System_Id **elements; -}; - -struct ILL_Amount { - char *currency_code; /* OPT */ - ILL_AmountString *monetary_value; -}; - - - -struct ILL_Client_Id { - ILL_String *client_name; /* OPT */ - ILL_String *client_status; /* OPT */ - ILL_String *client_identifier; /* OPT */ -}; - -struct ILL_Conditional_Results { -#define ILL_Conditional_Results_cost_exceeds_limit 13 -#define ILL_Conditional_Results_charges 14 -#define ILL_Conditional_Results_prepayment_required 15 -#define ILL_Conditional_Results_lacks_copyright_compliance 16 -#define ILL_Conditional_Results_library_use_only 22 -#define ILL_Conditional_Results_no_reproduction 23 -#define ILL_Conditional_Results_client_signature_required 24 -#define ILL_Conditional_Results_special_collections_supervision_required 25 -#define ILL_Conditional_Results_other 27 -#define ILL_Conditional_Results_responder_specific 28 -#define ILL_Conditional_Results_proposed_delivery_service 30 - int *conditions; - ILL_ISO_Date *date_for_reply; /* OPT */ - int num_locations; - ILL_Location_Info **locations; /* OPT */ - ILL_Delivery_Service *proposed_delivery_service; /* OPT */ -}; - -struct ILL_Cost_Info_Type { - ILL_Account_Number *account_number; /* OPT */ - ILL_Amount *maximum_cost; /* OPT */ - bool_t *reciprocal_agreement; - bool_t *will_pay_fee; - bool_t *payment_provided; -}; - -#define ILL_Current_State_nOT_SUPPLIED 1 -#define ILL_Current_State_pENDING 2 -#define ILL_Current_State_iN_PROCESS 3 -#define ILL_Current_State_fORWARD 4 -#define ILL_Current_State_cONDITIONAL 5 -#define ILL_Current_State_cANCEL_PENDING 6 -#define ILL_Current_State_cANCELLED 7 -#define ILL_Current_State_sHIPPED 8 -#define ILL_Current_State_rECEIVED 9 -#define ILL_Current_State_rENEW_PENDING 10 -#define ILL_Current_State_nOT_RECEIVED_OVERDUE 11 -#define ILL_Current_State_rENEW_OVERDUE 12 -#define ILL_Current_State_oVERDUE 13 -#define ILL_Current_State_rETURNED 14 -#define ILL_Current_State_cHECKED_IN 15 -#define ILL_Current_State_rECALL 16 -#define ILL_Current_State_lOST 17 -#define ILL_Current_State_uNKNOWN 18 - -struct ILL_Damaged_DetailsSpecific_units { - int num; - int **elements; -}; - -struct ILL_Damaged_Details { - Odr_oid *document_type_id; /* OPT */ - int which; - union { - Odr_null *complete_document; - ILL_Damaged_DetailsSpecific_units *specific_units; -#define ILL_Damaged_Details_complete_document 1 -#define ILL_Damaged_Details_specific_units 2 - } u; -}; - -struct ILL_Date_Due { - ILL_ISO_Date *date_due_field; - bool_t *renewable; -}; - -struct ILL_Delivery_Address { - ILL_Postal_Address *postal_address; /* OPT */ - ILL_System_Address *electronic_address; /* OPT */ -}; - -struct ILL_Delivery_ServiceElectronic_delivery { - int num; - ILL_Electronic_Delivery_Service **elements; -}; - -struct ILL_Delivery_Service { - int which; - union { - ILL_Transportation_Mode *physical_delivery; - ILL_Delivery_ServiceElectronic_delivery *electronic_delivery; -#define ILL_Delivery_Service_physical_delivery 1 -#define ILL_Delivery_Service_electronic_delivery 2 - } u; -}; - -struct ILL_Electronic_Delivery_Service_0 { - Odr_oid *e_delivery_mode; - Odr_any *e_delivery_parameters; -}; - -struct ILL_Electronic_Delivery_Service_1 { - Odr_oid *document_type_id; - Odr_any *document_type_parameters; -}; - -struct ILL_Electronic_Delivery_Service { - ILL_Electronic_Delivery_Service_0 *e_delivery_service; /* OPT */ - ILL_Electronic_Delivery_Service_1 *document_type; /* OPT */ - ILL_String *e_delivery_description; /* OPT */ - int which; - union { - ILL_System_Address *e_delivery_address; - ILL_System_Id *e_delivery_id; -#define ILL_Electronic_Delivery_Service_e_delivery_address 1 -#define ILL_Electronic_Delivery_Service_e_delivery_id 2 - } u; - ILL_String *name_or_code; /* OPT */ - ILL_ISO_Time *delivery_time; /* OPT */ -}; - -struct ILL_Error_Report { - ILL_String *correlation_information; - ILL_Report_Source *report_source; - ILL_User_Error_Report *user_error_report; /* OPT */ - ILL_Provider_Error_Report *provider_error_report; /* OPT */ -}; - -struct ILL_Estimate_Results { - ILL_String *cost_estimate; - int num_locations; - ILL_Location_Info **locations; /* OPT */ -}; - -struct ILL_Extension { - int *identifier; - bool_t *critical; - Odr_any *item; -}; - -#define ILL_General_Problem_unrecognized_APDU 1 -#define ILL_General_Problem_mistyped_APDU 2 -#define ILL_General_Problem_badly_structured_APDU 3 -#define ILL_General_Problem_protocol_version_not_supported 4 -#define ILL_General_Problem_other 5 - -struct ILL_History_Report { - ILL_ISO_Date *date_requested; /* OPT */ - ILL_String *author; /* OPT */ - ILL_String *title; /* OPT */ - ILL_String *author_of_article; /* OPT */ - ILL_String *title_of_article; /* OPT */ - ILL_ISO_Date *date_of_last_transition; -#define ILL_History_Report_iLL_REQUEST 1 -#define ILL_History_Report_fORWARD 21 -#define ILL_History_Report_fORWARD_NOTIFICATION 2 -#define ILL_History_Report_sHIPPED 3 -#define ILL_History_Report_iLL_ANSWER 4 -#define ILL_History_Report_cONDITIONAL_REPLY 5 -#define ILL_History_Report_cANCEL 6 -#define ILL_History_Report_cANCEL_REPLY 7 -#define ILL_History_Report_rECEIVED 8 -#define ILL_History_Report_rECALL 9 -#define ILL_History_Report_rETURNED 10 -#define ILL_History_Report_cHECKED_IN 11 -#define ILL_History_Report_rENEW_ANSWER 14 -#define ILL_History_Report_lOST 15 -#define ILL_History_Report_dAMAGED 16 -#define ILL_History_Report_mESSAGE 17 -#define ILL_History_Report_sTATUS_QUERY 18 -#define ILL_History_Report_sTATUS_OR_ERROR_REPORT 19 -#define ILL_History_Report_eXPIRED 20 - int *most_recent_service; - ILL_ISO_Date *date_of_most_recent_service; - ILL_System_Id *initiator_of_most_recent_service; - ILL_Shipped_Service_Type *shipped_service_type; /* OPT */ - ILL_Transaction_Results *transaction_results; /* OPT */ - ILL_String *most_recent_service_note; /* OPT */ -}; - -struct ILL_Hold_Placed_Results { - ILL_ISO_Date *estimated_date_available; - ILL_Medium_Type *hold_placed_medium_type; /* OPT */ - int num_locations; - ILL_Location_Info **locations; /* OPT */ -}; - -#define ILL_APDU_Type_iLL_REQUEST 1 -#define ILL_APDU_Type_fORWARD_NOTIFICATION 2 -#define ILL_APDU_Type_sHIPPED 3 -#define ILL_APDU_Type_iLL_ANSWER 4 -#define ILL_APDU_Type_cONDITIONAL_REPLY 5 -#define ILL_APDU_Type_cANCEL 6 -#define ILL_APDU_Type_cANCEL_REPLY 7 -#define ILL_APDU_Type_rECEIVED 8 -#define ILL_APDU_Type_rECALL 9 -#define ILL_APDU_Type_rETURNED 10 -#define ILL_APDU_Type_cHECKED_IN 11 -#define ILL_APDU_Type_oVERDUE 12 -#define ILL_APDU_Type_rENEW 13 -#define ILL_APDU_Type_rENEW_ANSWER 14 -#define ILL_APDU_Type_lOST 15 -#define ILL_APDU_Type_dAMAGED 16 -#define ILL_APDU_Type_mESSAGE 17 -#define ILL_APDU_Type_sTATUS_QUERY 18 -#define ILL_APDU_Type_sTATUS_OR_ERROR_REPORT 19 -#define ILL_APDU_Type_eXPIRED 20 - -#define ILL_Service_Type_loan 1 -#define ILL_Service_Type_copy_non_returnable 2 -#define ILL_Service_Type_locations 3 -#define ILL_Service_Type_estimate 4 -#define ILL_Service_Type_responder_specific 5 - -struct ILL_String { - int which; - union { - char *GeneralString; - ILL_EDIFACTString *EDIFACTString; -#define ILL_String_GeneralString 1 -#define ILL_String_EDIFACTString 2 - } u; -}; - -#define ILL_Intermediary_Problem_cannot_send_onward 1 - - - - - -struct ILL_Item_Id { -#define ILL_Item_Id_monograph 1 -#define ILL_Item_Id_serial 2 -#define ILL_Item_Id_other 3 - int *item_type; /* OPT */ - ILL_Medium_Type *held_medium_type; /* OPT */ - ILL_String *call_number; /* OPT */ - ILL_String *author; /* OPT */ - ILL_String *title; /* OPT */ - ILL_String *sub_title; /* OPT */ - ILL_String *sponsoring_body; /* OPT */ - ILL_String *place_of_publication; /* OPT */ - ILL_String *publisher; /* OPT */ - ILL_String *series_title_number; /* OPT */ - ILL_String *volume_issue; /* OPT */ - ILL_String *edition; /* OPT */ - ILL_String *publication_date; /* OPT */ - ILL_String *publication_date_of_component; /* OPT */ - ILL_String *author_of_article; /* OPT */ - ILL_String *title_of_article; /* OPT */ - ILL_String *pagination; /* OPT */ - Odr_external *national_bibliography_no; /* OPT */ - ILL_String *iSBN; /* OPT */ - ILL_String *iSSN; /* OPT */ - Odr_external *system_no; /* OPT */ - ILL_String *additional_no_letters; /* OPT */ - ILL_String *verification_reference_source; /* OPT */ -}; - -struct ILL_Location_Info { - ILL_System_Id *location_id; - ILL_System_Address *location_address; /* OPT */ - ILL_String *location_note; /* OPT */ -}; - -struct ILL_Locations_Results { - ILL_Reason_Locs_Provided *reason_locs_provided; /* OPT */ - int num_locations; - ILL_Location_Info **locations; -}; - -#define ILL_Medium_Type_printed 1 -#define ILL_Medium_Type_microform 3 -#define ILL_Medium_Type_film_or_video_recording 4 -#define ILL_Medium_Type_audio_recording 5 -#define ILL_Medium_Type_machine_readable 6 -#define ILL_Medium_Type_other 7 - -struct ILL_Name_Of_Person_Or_Institution { - int which; - union { - ILL_String *name_of_person; - ILL_String *name_of_institution; -#define ILL_Name_Of_Person_Or_Institution_name_of_person 1 -#define ILL_Name_Of_Person_Or_Institution_name_of_institution 2 - } u; -}; - -struct ILL_Person_Or_Institution_Symbol { - int which; - union { - ILL_String *person_symbol; - ILL_String *institution_symbol; -#define ILL_Person_Or_Institution_Symbol_person_symbol 1 -#define ILL_Person_Or_Institution_Symbol_institution_symbol 2 - } u; -}; - -#define ILL_Place_On_Hold_Type_yes 1 -#define ILL_Place_On_Hold_Type_no 2 -#define ILL_Place_On_Hold_Type_according_to_responder_policy 3 - -struct ILL_Postal_Address { - ILL_Name_Of_Person_Or_Institution *name_of_person_or_institution; /* OPT */ - ILL_String *extended_postal_delivery_address; /* OPT */ - ILL_String *street_and_number; /* OPT */ - ILL_String *post_office_box; /* OPT */ - ILL_String *city; /* OPT */ - ILL_String *region; /* OPT */ - ILL_String *country; /* OPT */ - ILL_String *postal_code; /* OPT */ -}; - -struct ILL_Provider_Error_Report { - int which; - union { - ILL_General_Problem *general_problem; - ILL_Transaction_Id_Problem *transaction_id_problem; - ILL_State_Transition_Prohibited *state_transition_prohibited; -#define ILL_Provider_Error_Report_general_problem 1 -#define ILL_Provider_Error_Report_transaction_id_problem 2 -#define ILL_Provider_Error_Report_state_transition_prohibited 3 - } u; -}; - -#define ILL_Reason_Locs_Provided_in_use_on_loan 1 -#define ILL_Reason_Locs_Provided_in_process 2 -#define ILL_Reason_Locs_Provided_lost 3 -#define ILL_Reason_Locs_Provided_non_circulating 4 -#define ILL_Reason_Locs_Provided_not_owned 5 -#define ILL_Reason_Locs_Provided_on_order 6 -#define ILL_Reason_Locs_Provided_volume_issue_not_yet_available 7 -#define ILL_Reason_Locs_Provided_at_bindery 8 -#define ILL_Reason_Locs_Provided_lacking 9 -#define ILL_Reason_Locs_Provided_not_on_shelf 10 -#define ILL_Reason_Locs_Provided_on_reserve 11 -#define ILL_Reason_Locs_Provided_poor_condition 12 -#define ILL_Reason_Locs_Provided_cost_exceeds_limit 13 -#define ILL_Reason_Locs_Provided_on_hold 19 -#define ILL_Reason_Locs_Provided_other 27 -#define ILL_Reason_Locs_Provided_responder_specific 28 - -#define ILL_Reason_No_Report_temporary 1 -#define ILL_Reason_No_Report_permanent 2 - -#define ILL_Reason_Unfilled_in_use_on_loan 1 -#define ILL_Reason_Unfilled_in_process 2 -#define ILL_Reason_Unfilled_lost 3 -#define ILL_Reason_Unfilled_non_circulating 4 -#define ILL_Reason_Unfilled_not_owned 5 -#define ILL_Reason_Unfilled_on_order 6 -#define ILL_Reason_Unfilled_volume_issue_not_yet_available 7 -#define ILL_Reason_Unfilled_at_bindery 8 -#define ILL_Reason_Unfilled_lacking 9 -#define ILL_Reason_Unfilled_not_on_shelf 10 -#define ILL_Reason_Unfilled_on_reserve 11 -#define ILL_Reason_Unfilled_poor_condition 12 -#define ILL_Reason_Unfilled_cost_exceeds_limit 13 -#define ILL_Reason_Unfilled_charges 14 -#define ILL_Reason_Unfilled_prepayment_required 15 -#define ILL_Reason_Unfilled_lacks_copyright_compliance 16 -#define ILL_Reason_Unfilled_not_found_as_cited 17 -#define ILL_Reason_Unfilled_locations_not_found 18 -#define ILL_Reason_Unfilled_on_hold 19 -#define ILL_Reason_Unfilled_policy_problem 20 -#define ILL_Reason_Unfilled_mandatory_messaging_not_supported 21 -#define ILL_Reason_Unfilled_expiry_not_supported 22 -#define ILL_Reason_Unfilled_requested_delivery_services_not_supported 23 -#define ILL_Reason_Unfilled_preferred_delivery_time_not_possible 24 -#define ILL_Reason_Unfilled_other 27 -#define ILL_Reason_Unfilled_responder_specific 28 - -#define ILL_Report_Source_user 1 -#define ILL_Report_Source_provider 2 - -struct ILL_Requester_Optional_Messages_Type { - bool_t *can_send_RECEIVED; - bool_t *can_send_RETURNED; -#define ILL_Requester_Optional_Messages_Type_requires 1 -#define ILL_Requester_Optional_Messages_Type_desires 2 -#define ILL_Requester_Optional_Messages_Type_neither 3 - int *requester_SHIPPED; -#define ILL_Requester_Optional_Messages_Type_requires 1 -#define ILL_Requester_Optional_Messages_Type_desires 2 -#define ILL_Requester_Optional_Messages_Type_neither 3 - int *requester_CHECKED_IN; -}; - -struct ILL_Responder_Optional_Messages_Type { - bool_t *can_send_SHIPPED; - bool_t *can_send_CHECKED_IN; -#define ILL_Responder_Optional_Messages_Type_requires 1 -#define ILL_Responder_Optional_Messages_Type_desires 2 -#define ILL_Responder_Optional_Messages_Type_neither 3 - int *responder_RECEIVED; -#define ILL_Responder_Optional_Messages_Type_requires 1 -#define ILL_Responder_Optional_Messages_Type_desires 2 -#define ILL_Responder_Optional_Messages_Type_neither 3 - int *responder_RETURNED; -}; - -struct ILL_Retry_Results { -#define ILL_Retry_Results_in_use_on_loan 1 -#define ILL_Retry_Results_in_process 2 -#define ILL_Retry_Results_on_order 6 -#define ILL_Retry_Results_volume_issue_not_yet_available 7 -#define ILL_Retry_Results_at_bindery 8 -#define ILL_Retry_Results_cost_exceeds_limit 13 -#define ILL_Retry_Results_charges 14 -#define ILL_Retry_Results_prepayment_required 15 -#define ILL_Retry_Results_lacks_copyright_compliance 16 -#define ILL_Retry_Results_not_found_as_cited 17 -#define ILL_Retry_Results_on_hold 19 -#define ILL_Retry_Results_other 27 -#define ILL_Retry_Results_responder_specific 28 - int *reason_not_available; /* OPT */ - ILL_ISO_Date *retry_date; /* OPT */ - int num_locations; - ILL_Location_Info **locations; /* OPT */ -}; - -struct ILL_Search_Type { - ILL_String *level_of_service; /* OPT */ - ILL_ISO_Date *need_before_date; /* OPT */ -#define ILL_Search_Type_need_Before_Date 1 -#define ILL_Search_Type_other_Date 2 -#define ILL_Search_Type_no_Expiry 3 - int *expiry_flag; - ILL_ISO_Date *expiry_date; /* OPT */ -}; - - - -struct ILL_Send_To_List_Type_s { - ILL_System_Id *system_id; - ILL_Account_Number *account_number; /* OPT */ - ILL_System_Address *system_address; /* OPT */ -}; - -struct ILL_Send_To_List_Type { - int num; - ILL_Send_To_List_Type_s **elements; -}; - -struct ILL_Service_Date_this { - ILL_ISO_Date *date; - ILL_ISO_Time *time; /* OPT */ -}; - -struct ILL_Service_Date_original { - ILL_ISO_Date *date; - ILL_ISO_Time *time; /* OPT */ -}; - -struct ILL_Service_Date_Time { - ILL_Service_Date_this *date_time_of_this_service; - ILL_Service_Date_original *date_time_of_original_service; /* OPT */ -}; - - - -struct ILL_State_Transition_Prohibited { - ILL_APDU_Type *aPDU_type; - ILL_Current_State *current_state; -}; - -struct ILL_Status_Report { - ILL_History_Report *user_status_report; - ILL_Current_State *provider_status_report; -}; - -struct ILL_Supplemental_Item_Description { - int num; - Odr_external **elements; -}; - -struct ILL_Supply_Details { - ILL_ISO_Date *date_shipped; /* OPT */ - ILL_Date_Due *date_due; /* OPT */ - int *chargeable_units; /* OPT */ - ILL_Amount *cost; /* OPT */ -#define ILL_Supply_Details_library_use_only 22 -#define ILL_Supply_Details_no_reproduction 23 -#define ILL_Supply_Details_client_signature_required 24 -#define ILL_Supply_Details_special_collections_supervision_required 25 -#define ILL_Supply_Details_other 27 - int *shipped_conditions; /* OPT */ - int which; - union { - ILL_Transportation_Mode *physical_delivery; - ILL_Electronic_Delivery_Service *electronic_delivery; -#define ILL_Supply_Details_physical_delivery 1 -#define ILL_Supply_Details_electronic_delivery 2 - } u; /* OPT */ - ILL_Amount *insured_for; /* OPT */ - ILL_Amount *return_insurance_require; /* OPT */ - int num_no_of_units_per_medium; - ILL_Units_Per_Medium_Type **no_of_units_per_medium; /* OPT */ -}; - -struct ILL_Supply_Medium_Info_Type { - ILL_Supply_Medium_Type *supply_medium_type; - ILL_String *medium_characteristics; /* OPT */ -}; - -#define ILL_Supply_Medium_Type_printed 1 -#define ILL_Supply_Medium_Type_photocopy 2 -#define ILL_Supply_Medium_Type_microform 3 -#define ILL_Supply_Medium_Type_film_or_video_recording 4 -#define ILL_Supply_Medium_Type_audio_recording 5 -#define ILL_Supply_Medium_Type_machine_readable 6 -#define ILL_Supply_Medium_Type_other 7 - -struct ILL_System_Address { - ILL_String *telecom_service_identifier; /* OPT */ - ILL_String *telecom_service_address; /* OPT */ -}; - -struct ILL_System_Id { - ILL_Person_Or_Institution_Symbol *person_or_institution_symbol; /* OPT */ - ILL_Name_Of_Person_Or_Institution *name_of_person_or_institution; /* OPT */ -}; - -struct ILL_Third_Party_Info_Type { - bool_t *permission_to_forward; - bool_t *permission_to_chain; - bool_t *permission_to_partition; - bool_t *permission_to_change_send_to_list; - ILL_System_Address *initial_requester_address; /* OPT */ -#define ILL_Third_Party_Info_Type_ordered 1 -#define ILL_Third_Party_Info_Type_unordered 2 - int *preference; - ILL_Send_To_List_Type *send_to_list; /* OPT */ - ILL_Already_Tried_List_Type *already_tried_list; /* OPT */ -}; - -struct ILL_Transaction_Id { - ILL_System_Id *initial_requester_id; /* OPT */ - ILL_String *transaction_group_qualifier; - ILL_String *transaction_qualifier; - ILL_String *sub_transaction_qualifier; /* OPT */ -}; - -#define ILL_Transaction_Id_Problem_duplicate_transaction_id 1 -#define ILL_Transaction_Id_Problem_invalid_transaction_id 2 -#define ILL_Transaction_Id_Problem_unknown_transaction_id 3 - -#define ILL_Transaction_Results_conditional 1 -#define ILL_Transaction_Results_retry 2 -#define ILL_Transaction_Results_unfilled 3 -#define ILL_Transaction_Results_locations_provided 4 -#define ILL_Transaction_Results_will_supply 5 -#define ILL_Transaction_Results_hold_placed 6 -#define ILL_Transaction_Results_estimate 7 - -#define ILL_Transaction_Type_simple 1 -#define ILL_Transaction_Type_chained 2 -#define ILL_Transaction_Type_partitioned 3 - - - -#define ILL_Unable_To_Perform_not_available 1 -#define ILL_Unable_To_Perform_resource_limitation 2 -#define ILL_Unable_To_Perform_other 3 - -struct ILL_Unfilled_Results { - ILL_Reason_Unfilled *reason_unfilled; - int num_locations; - ILL_Location_Info **locations; /* OPT */ -}; - -struct ILL_Units_Per_Medium_Type { - ILL_Supply_Medium_Type *medium; - int *no_of_units; -}; - -struct ILL_User_Error_Report { - int which; - union { - ILL_Already_Forwarded *already_forwarded; - ILL_Intermediary_Problem *intermediary_problem; - ILL_Security_Problem *security_problem; - ILL_Unable_To_Perform *unable_to_perform; -#define ILL_User_Error_Report_already_forwarded 1 -#define ILL_User_Error_Report_intermediary_problem 2 -#define ILL_User_Error_Report_security_problem 3 -#define ILL_User_Error_Report_unable_to_perform 4 - } u; -}; - -struct ILL_Will_Supply_Results { -#define ILL_Will_Supply_Results_in_use_on_loan 1 -#define ILL_Will_Supply_Results_in_process 2 -#define ILL_Will_Supply_Results_on_order 6 -#define ILL_Will_Supply_Results_at_bindery 8 -#define ILL_Will_Supply_Results_on_hold 19 -#define ILL_Will_Supply_Results_being_processed_for_supply 26 -#define ILL_Will_Supply_Results_other 27 -#define ILL_Will_Supply_Results_responder_specific 28 -#define ILL_Will_Supply_Results_electronic_delivery 30 - int *reason_will_supply; - ILL_ISO_Date *supply_date; /* OPT */ - ILL_Postal_Address *return_to_address; /* OPT */ - int num_locations; - ILL_Location_Info **locations; /* OPT */ - ILL_Electronic_Delivery_Service *electronic_delivery_service; /* OPT */ -}; - - - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/ill.h b/dependencies/yaz_3.0.14/include/yaz/ill.h deleted file mode 100644 index ce2acce..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/ill.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: ill.h,v 1.12 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file ill.h - * \brief ILL Package utilities - */ - -#ifndef ILL_H -#define ILL_H - -#include -#include - -YAZ_BEGIN_CDECL - -struct ill_get_ctl { - ODR odr; - void *clientData; - const char *(*f)(void *clientData, const char *element); -}; - -YAZ_EXPORT ILL_ItemRequest *ill_get_ItemRequest ( - struct ill_get_ctl *gs, const char *name, const char *sub); - -YAZ_EXPORT ILL_Request *ill_get_ILLRequest ( - struct ill_get_ctl *gs, const char *name, const char *sub); - -YAZ_EXPORT ILL_Cancel *ill_get_Cancel ( - struct ill_get_ctl *gc, const char *name, const char *sub); - -YAZ_EXPORT ILL_APDU *ill_get_APDU ( - struct ill_get_ctl *gc, const char *name, const char *sub); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/item-req.h b/dependencies/yaz_3.0.14/include/yaz/item-req.h deleted file mode 100644 index 5e0352e..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/item-req.h +++ /dev/null @@ -1,61 +0,0 @@ -/** \file item-req.h - \brief ASN.1 Module Z39.50-extendedService-ItemOrder-ItemRequest-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef item_req_H -#define item_req_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ILL_ItemRequest ILL_ItemRequest; -YAZ_EXPORT int ill_ItemRequest (ODR o, ILL_ItemRequest **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct ILL_ItemRequest { -#define ILL_ItemRequest_version_1 1 -#define ILL_ItemRequest_version_2 2 - int *protocol_version_num; - ILL_Transaction_Id *transaction_id; /* OPT */ - ILL_Service_Date_Time *service_date_time; /* OPT */ - ILL_System_Id *requester_id; /* OPT */ - ILL_System_Id *responder_id; /* OPT */ - ILL_Transaction_Type *transaction_type; - ILL_Delivery_Address *delivery_address; /* OPT */ - ILL_Delivery_Service *delivery_service; /* OPT */ - ILL_Delivery_Address *billing_address; /* OPT */ - int num_iLL_service_type; - ILL_Service_Type **iLL_service_type; /* OPT */ - Odr_external *responder_specific_service; /* OPT */ - ILL_Requester_Optional_Messages_Type *requester_optional_messages; /* OPT */ - ILL_Search_Type *search_type; /* OPT */ - int num_supply_medium_info_type; - ILL_Supply_Medium_Info_Type **supply_medium_info_type; /* OPT */ - ILL_Place_On_Hold_Type *place_on_hold; - ILL_Client_Id *client_id; /* OPT */ - ILL_Item_Id *item_id; /* OPT */ - ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */ - ILL_Cost_Info_Type *cost_info_type; /* OPT */ - ILL_String *copyright_compliance; /* OPT */ - ILL_Third_Party_Info_Type *third_party_info_type; /* OPT */ - bool_t *retry_flag; - bool_t *forward_flag; - ILL_String *requester_note; /* OPT */ - ILL_String *forward_note; /* OPT */ - int num_iLL_request_extensions; - ILL_Extension **iLL_request_extensions; /* OPT */ -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/libxml2_error.h b/dependencies/yaz_3.0.14/include/yaz/libxml2_error.h deleted file mode 100644 index 0be57ec..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/libxml2_error.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: libxml2_error.h,v 1.3 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file libxml2_error.h - * \brief Libxml2 error handler - */ - -#ifndef YAZ_LIBXML2_ERROR_H -#define YAZ_LIBXML2_ERROR_H - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief direct Libxml2/Libxslt errors to yaz_log - \param level yaz_log level to use - \param lead_msg leading message (or NULL if none) - \retval 0 successful; libxml2 is present - \retval -1 failure; libxml2 is not present -*/ -YAZ_EXPORT -int libxml2_error_to_yazlog(int level, const char *lead_msg); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/log.h b/dependencies/yaz_3.0.14/include/yaz/log.h deleted file mode 100644 index c0e9b19..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/log.h +++ /dev/null @@ -1,259 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: log.h,v 1.43 2007/03/19 12:54:58 adam Exp $ */ - -/** - * \file log.h - * \brief Logging utility - */ - -#ifndef YAZ_LOG_H -#define YAZ_LOG_H - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief log level: fatal */ -#define YLOG_FATAL 0x00000001 -/** \brief log level: debugging */ -#define YLOG_DEBUG 0x00000002 -/** \brief log level: warning */ -#define YLOG_WARN 0x00000004 -/** \brief log level: log (regular) */ -#define YLOG_LOG 0x00000008 -/** \brief log level: append system error message */ -#define YLOG_ERRNO 0x00000010 -/** \brief log level: application */ -#define YLOG_APP 0x00000040 -/** \brief log level: malloc debug */ -#define YLOG_MALLOC 0x00000080 -/** \brief log level: do not output date and time */ -#define YLOG_NOTIME 0x00000100 -/** \brief log level: application 2 */ -#define YLOG_APP2 0x00000200 -/** \brief log level: application 3 */ -#define YLOG_APP3 0x00000400 -/** \brief log level: flush */ -#define YLOG_FLUSH 0x00000800 -/** \brief dynamic log level start */ -#define YLOG_LOGLVL 0x00001000 /* log when modules query log levels */ - /* this has to be a hard-coded bit, not to loop*/ - -#define YLOG_ALL (0xffff&~YLOG_MALLOC&~YLOG_NOTIME) - -/** \brief default log level */ -#define YLOG_DEFAULT_LEVEL \ - (YLOG_FATAL | YLOG_ERRNO | YLOG_LOG | YLOG_WARN | YLOG_FLUSH) -/* not having flush here confuses Solaris users, who won't see any logs until - * (and if) the program exits normally */ - -/** \brief last bit for regular log bits . Rest are dynamic */ -#define YLOG_LAST_BIT YLOG_LOGLVL - -/** \brief sets level, prefix and filename for logging - \param level log level - \param prefix log message prefix - \param fname filename -*/ -YAZ_EXPORT void yaz_log_init(int level, const char *prefix, const char *fname); - -/** \brief sets log to a file - \param fname filename -*/ -YAZ_EXPORT void yaz_log_init_file(const char *fname); - -/** \brief sets log level - \param level (combination of YLOG_..) -*/ -YAZ_EXPORT void yaz_log_init_level(int level); - -/** \brief sets log message prefix - \param prefix log message prefix -*/ -YAZ_EXPORT void yaz_log_init_prefix(const char *prefix); - -/** \brief sets second log message prefix - \param prefix log message prefix -*/ -YAZ_EXPORT void yaz_log_init_prefix2(const char *prefix); - -/** \brief sets time format for log mesages - \param fmt format (strftime) - - Sets the format of the timestamp. See man 3 strftime. - Calling with "old" sets to the old format "11:55:06-02/11" - Calling with NULL or "" sets to the new format "20041102-115719" - If not called at all, the old format is used, for backward compatibility -*/ -YAZ_EXPORT void yaz_log_time_format(const char *fmt); - -/** \brief sets limit in bytes for size for log file - \param mx size in bytes - - Sets the max size for a log file. Zero means no limit. - Negative means built-in limit (1GB) -*/ -YAZ_EXPORT void yaz_log_init_max_size(int mx); - -/** \brief Writes log message - \param level log level mask - \param fmt format string ala printf - - Writes an entry in the log. Defaults to stderr if not initialized or - to a file with yaz_log_init_file(). The level must match the level set - via yaz_log_init_level(), optionally defined via yaz_log_mask_str(). -*/ -YAZ_EXPORT void yaz_log(int level, const char *fmt, ...) -#ifdef __GNUC__ - __attribute__ ((format (printf, 2, 3))) -#endif - ; - -/** \brief converts log level string to log level (integer) - \param str log level string - \return log level mask - - yaz_log_mask_str() converts a comma-separated list of log levels to a - bit mask. Starts from default level, and adds bits as specified, - unless 'none' is specified, which clears the list. If a name matches - the name of a YLOG_BIT above, that one is set. Otherwise a new value is - picked, and given to that name, to be found with yaz_log_module_level() -*/ -YAZ_EXPORT int yaz_log_mask_str(const char *str); - -/** \brief converts log level string to log level with "start" level - \param str log level string - \param level initialing log level - \return log level mask - - yaz_log_mask_str_x() is like yaz_log_mask_str(), but with a given start - value -*/ -YAZ_EXPORT int yaz_log_mask_str_x(const char *str, int level); - - -/** \brief returns level for module - \param name module name - - yaz_log_module_level() returns a log level mask corresponding to the - module name. If that had been specified on the -v arguments (that is - passed to yaz_log_mask_str()), then a non-zero mask is returned. If - not, we get a zero. This can later be used in yaz_log for the level - argument - */ -YAZ_EXPORT int yaz_log_module_level(const char *name); - -/** \brief returns FILE handle for log or NULL if no file is in use - \retval FILE FILE handle in use - \retval NULL log is currently not written to a file -*/ -YAZ_EXPORT FILE *yaz_log_file(void); - -/** \brief sets custom log handler - \param func custom log handler - \param info custom pointer to be passed to func handler - - Allows log output to be captured to something else.. The - func parameter takes a log level, a message + custom pointer -*/ -YAZ_EXPORT void yaz_log_set_handler(void (*func)(int, const char *, - void *), void *info); - -YAZ_EXPORT void yaz_log_reopen(void); - -/** \brief Truncate the log file */ -YAZ_EXPORT void yaz_log_trunc(void); - -YAZ_EXPORT void log_event_start(void (*func)(int level, const char *msg, - void *info), void *info); - -YAZ_EXPORT void log_event_end(void (*func)(int level, const char *msg, - void *info), void *info); - -/* by default, do not enable the old LOG_-defines */ -#ifndef YAZ_USE_NEW_LOG -#define YAZ_USE_NEW_LOG 1 -#endif - -#if YAZ_USE_NEW_LOG - -#else - -#include - -/** The old LOG_ bit names are here for compatibility only. They may - conflict with bits defined in syslog.h, or other places. 'LOG' - really is not such a good name. YLOG must be more unique -*/ - -/** \brief old log level */ -#define LOG_FATAL YLOG_FATAL -/** \brief old log level */ -#define LOG_DEBUG YLOG_DEBUG -/** \brief old log level */ -#define LOG_WARN YLOG_WARN -/** \brief old log level */ -#define LOG_LOG YLOG_LOG -/** \brief old log level */ -#define LOG_ERRNO YLOG_ERRNO -/** \brief old log level */ -#define LOG_FILE 0x00000020 -/** \brief old log level */ -#define LOG_APP YLOG_APP -/** \brief old log level */ -#define LOG_MALLOC YLOG_MALLOC -/** \brief old log level */ -#define LOG_NOTIME YLOG_NOTIME -/** \brief old log level */ -#define LOG_APP2 YLOG_APP2 -/** \brief old log level */ -#define LOG_APP3 YLOG_APP3 -/** \brief old log level */ -#define LOG_FLUSH YLOG_FLUSH -/** \brief old log level */ -#define LOG_ALL YLOG_ALL -/** \brief old log level */ -#define LOG_DEFAULT_LEVEL YLOG_DEFAULT_LEVEL - -/** \brief logf is deprecated, as it conflicts with a math function */ -#define logf yaz_log - -#endif /* if !YAZ_USE_NEW_LOG */ - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/logrpn.h b/dependencies/yaz_3.0.14/include/yaz/logrpn.h deleted file mode 100644 index 8eb260d..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/logrpn.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: logrpn.h,v 1.16 2007/05/08 08:22:35 adam Exp $ */ - -/** - * \file logrpn.h - * \brief Header for Z39.50 Query Printing - */ - -#ifndef YAZ_LOGRPN_H -#define YAZ_LOGRPN_H - -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT void log_rpn_query(Z_RPNQuery *rpn); -YAZ_EXPORT void log_rpn_query_level(int loglevel, Z_RPNQuery *rpn); - -YAZ_EXPORT void log_scan_term(Z_AttributesPlusTerm *zapt, const Odr_oid *ast); -YAZ_EXPORT void log_scan_term_level(int loglevel, - Z_AttributesPlusTerm *zapt, - const Odr_oid *ast); -YAZ_EXPORT void yaz_log_zquery(Z_Query *q); -YAZ_EXPORT void yaz_log_zquery_level(int loglevel, Z_Query *q); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/marcdisp.h b/dependencies/yaz_3.0.14/include/yaz/marcdisp.h deleted file mode 100644 index 1de0011..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/marcdisp.h +++ /dev/null @@ -1,372 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: marcdisp.h,v 1.28 2007/03/19 14:40:06 adam Exp $ */ - -/** - * \file marcdisp.h - * \brief MARC conversion - */ - -#ifndef MARCDISP_H -#define MARCDISP_H - -#include -#include -#include - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief a yaz_marc_t handle (private content) */ -typedef struct yaz_marc_t_ *yaz_marc_t; - -/** \brief construct yaz_marc_t handle */ -YAZ_EXPORT yaz_marc_t yaz_marc_create(void); - -/** \brief destroy yaz_marc_t handle */ -YAZ_EXPORT void yaz_marc_destroy(yaz_marc_t mt); - -/** \brief set XML mode YAZ_MARC_LINE, YAZ_MARC_SIMPLEXML, ... */ -YAZ_EXPORT void yaz_marc_xml(yaz_marc_t mt, int xmlmode); - -/** \brief Output format: Line-format */ -#define YAZ_MARC_LINE 0 -/** \brief Output format: simplexml (no longer supported) */ -#define YAZ_MARC_SIMPLEXML 1 -/** \brief Output format: OAI-MARC (no longer supported) */ -#define YAZ_MARC_OAIMARC 2 -/** \brief Output format: MARCXML */ -#define YAZ_MARC_MARCXML 3 -/** \brief Output format: ISO2709 */ -#define YAZ_MARC_ISO2709 4 -/** \brief Output format: MarcXchange */ -#define YAZ_MARC_XCHANGE 5 -/** \brief Output format: check only (no marc output) */ -#define YAZ_MARC_CHECK 6 - -/** \brief supply iconv handle for character set conversion .. */ -YAZ_EXPORT void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd); - -/** \brief set debug level - \param mt handle - \param level level, where 0=lowest, 1 more debug, 2 even more -*/ -YAZ_EXPORT void yaz_marc_debug(yaz_marc_t mt, int level); - -/** \brief decodes ISO2709 buffer using straight buffers - \param mt marc handle - \param buf input buffer - \param bsize size of buffer or (-1 if "any size") - \param result result to be stored here - \param rsize size of result (memory "owned" by yaz_marc_mt handle) - - Decodes MARC in buf of size bsize. - On success, result in *result with size *rsize. - Returns -1 on error, or size of input record (>0) if OK -*/ -YAZ_EXPORT int yaz_marc_decode_buf(yaz_marc_t mt, const char *buf, int bsize, - const char **result, size_t *rsize); - -/** \brief decodes ISO2709/MARC buffer and stores result in WRBUF - \param mt handle - \param buf input buffer - \param bsize size of buffer (-1 if "any size") - \param wrbuf WRBUF for output - - Decodes MARC in buf of size bsize. - On success, result in wrbuf - Returns -1 on error, or size of input record (>0) if OK -*/ -YAZ_EXPORT int yaz_marc_decode_wrbuf(yaz_marc_t mt, const char *buf, - int bsize, WRBUF wrbuf); - -YAZ_EXPORT void yaz_marc_subfield_str(yaz_marc_t mt, const char *s); -YAZ_EXPORT void yaz_marc_endline_str(yaz_marc_t mt, const char *s); - -/** \brief modifies part of the MARC leader */ -YAZ_EXPORT void yaz_marc_modify_leader(yaz_marc_t mt, size_t off, - const char *str); - -/** \brief like atoi(3) except that it reads exactly len characters */ -YAZ_EXPORT int atoi_n(const char *buf, int len); - -/** \brief like atoi_n but checks for proper formatting - \param buf buffer to read values from - \param size size of buffer - \param val value of decimal number (if successful) - \retval 0 no value found (non-digits found) - \retval 1 value found and *val holds value -*/ -YAZ_EXPORT -int atoi_n_check(const char *buf, int size, int *val); - -/** \brief MARC control char: record separator (29 Dec, 1D Hex) */ -#define ISO2709_RS 035 -/** \brief MARC control char: field separator (30 Dec, 1E Hex) */ -#define ISO2709_FS 036 -/** \brief MARC control char: identifier-field separator (31 Dec, 1F Hex) */ -#define ISO2709_IDFS 037 - -/** \brief read ISO2709/MARC record from buffer - \param mt handle - \param buf ISO2709 buffer of size bsize - \param bsize size of buffer (-1 for unlimited size) - - Parses ISO2709 record from supplied buffer - Returns > 0 for OK (same as length), -1=ERROR -*/ -YAZ_EXPORT int yaz_marc_read_iso2709(yaz_marc_t mt, - const char *buf, int bsize); - -/** \brief read MARC lineformat from stream - \param mt handle - \param getbyte get one byte handler - \param ungetbyte unget one byte handler - \param client_data opaque data for handers - - Parses MARC line record from stream - Returns > 0 for OK (same as length), -1=ERROR -*/ -YAZ_EXPORT -int yaz_marc_read_line(yaz_marc_t mt, - int (*getbyte)(void *client_data), - void (*ungetbyte)(int b, void *client_data), - void *client_data); - -/** \brief parses MARCXML/MarcXchange record from xmlNode pointer - \param mt handle - \param ptr is a pointer to root xml node - - Returns 0=OK, -1=ERROR -*/ -YAZ_EXPORT int yaz_marc_read_xml(yaz_marc_t mt, const xmlNode *ptr); - -/** \brief writes record in line format - \param mt handle - \param wrbuf WRBUF for output - - Returns 0=OK, -1=ERROR -*/ -YAZ_EXPORT int yaz_marc_write_line(yaz_marc_t mt, WRBUF wrbuf); - -/** \brief writes record in MARCXML format - \param mt handle - \param wrbuf WRBUF for output - - Sets leader[9]='a' . Returns 0=OK, -1=ERROR . -*/ -YAZ_EXPORT int yaz_marc_write_marcxml(yaz_marc_t mt, WRBUF wrbuf); - -/** \brief writes record in MarcXchange XML - \param mt handle - \param wrbuf WRBUF for output - \param format record format (e.g. "MARC21") - \param type record type (e.g. Bibliographic) - - Returns 0=OK, -1=ERROR -*/ -YAZ_EXPORT int yaz_marc_write_marcxchange(yaz_marc_t mt, WRBUF wrbuf, - const char *format, - const char *type); - -/** \brief writes record in ISO2709 format - \param mt handle - \param wrbuf WRBUF for output - Returns 0=OK, -1=ERROR -*/ -YAZ_EXPORT int yaz_marc_write_iso2709(yaz_marc_t mt, WRBUF wrbuf); - -/** \brief writes record in mode - given by yaz_marc_xml mode - \param mt handle - \param wrbuf WRBUF for output - This function calls yaz_marc_write_iso2709, yaz_marc_write_marcxml, - etc.. depending on mode given by yaz_marc_xml. - Returns 0=OK, -1=ERROR -*/ -YAZ_EXPORT int yaz_marc_write_mode(yaz_marc_t mt, WRBUF wrbuf); - -/** \brief writes MARC record as libxml2 tree - \param mt handle - \param root_ptr pointer to record node - \param ns namespace of record (such as "http://www.loc.gov/MARC21/slim") - \param format MarcXchange format (NULL for none) - \param type MarcXchange format (NULL for none) - \retval 0 Creation successful and *root_ptr is "record" node - \retval -1 ERROR -*/ -YAZ_EXPORT -int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr, - const char *ns, - const char *format, - const char *type); - -/** \brief sets leader spec (for modifying bytes in 24 byte leader) - \param mt handle - \param leader_spec - \retval 0 OK - \retval -1 ERROR - - Spec takes form pos=val,pos=val,... - where value is either a number (decimal char value) or a - string in 'a', e.g. 9='a' - -*/ -YAZ_EXPORT int yaz_marc_leader_spec(yaz_marc_t mt, const char *leader_spec); - - -/** \brief sets leader, validates it, and returns important values - \param mt handle - \param leader of the 24 byte leader to be set - \param indicator_length indicator length (returned value) - \param identifier_length identifier length (returned value) - \param base_address base address (returned value) - \param length_data_entry length of data entry (returned value) - \param length_starting length of starting - \param length_implementation length of implementation defined data -*/ -YAZ_EXPORT -void yaz_marc_set_leader(yaz_marc_t mt, const char *leader, - int *indicator_length, - int *identifier_length, - int *base_address, - int *length_data_entry, - int *length_starting, - int *length_implementation); - - -/** \brief adds MARC comment string - \param mt handle - \param comment comment to be added) -*/ -YAZ_EXPORT -void yaz_marc_add_comment(yaz_marc_t mt, char *comment); - -/** \brief adds MARC annotation - printf interface - \param mt handle - \param fmt printf format string -*/ -YAZ_EXPORT -void yaz_marc_cprintf(yaz_marc_t mt, const char *fmt, ...); - -/** \brief adds subfield to MARC structure - \param mt handle - \param code_data code data buffer - \param code_data_len length of code data -*/ -YAZ_EXPORT -void yaz_marc_add_subfield(yaz_marc_t mt, - const char *code_data, size_t code_data_len); - - -/** \brief adds controlfield to MARC structure - \param mt handle - \param tag (e.g. "001" - \param data value for this tag - \param data_len length of data -*/ -YAZ_EXPORT -void yaz_marc_add_controlfield(yaz_marc_t mt, const char *tag, - const char *data, size_t data_len); - - -/** \brief adds controlfield to MARC structure using xml Nodes - \param mt handle - \param ptr_tag value of tag (TEXT xmlNode) - \param ptr_data value of data (TEXT xmlNode) -*/ -YAZ_EXPORT -void yaz_marc_add_controlfield_xml(yaz_marc_t mt, const xmlNode *ptr_tag, - const xmlNode *ptr_data); - - -/** \brief adds datafield to MARC structure using strings - \param mt handle - \param tag value of tag as string - \param indicator indicator string - \param indicator_len length of indicator string -*/ -YAZ_EXPORT -void yaz_marc_add_datafield(yaz_marc_t mt, const char *tag, - const char *indicator, size_t indicator_len); - -/** \brief adds datafield to MARC structure using xml Nodes - \param mt handle - \param ptr_tag value of tag (TEXT xmlNode) - \param indicator indicator string - \param indicator_len length of indicator string -*/ -YAZ_EXPORT -void yaz_marc_add_datafield_xml(yaz_marc_t mt, const xmlNode *ptr_tag, - const char *indicator, size_t indicator_len); - - -/** \brief returns memory for MARC handle - \param mt handle - \retval NMEM handle for MARC system -*/ -YAZ_EXPORT -NMEM yaz_marc_get_nmem(yaz_marc_t mt); - -/** \brief clears memory and MARC record - \param mt handle -*/ -YAZ_EXPORT -void yaz_marc_reset(yaz_marc_t mt); - -/** \brief gets debug level for MARC system - \param mt handle -*/ -YAZ_EXPORT -int yaz_marc_get_debug(yaz_marc_t mt); - -/** \brief convert MARC format type to format type(YAZ_MARC_..) - \param arg string - \returns -1 if arg is not a known format; YAZ_MARC_.. otherwise (OK) -*/ -YAZ_EXPORT -int yaz_marc_decode_formatstr(const char *arg); - -/** \brief enable writing of MARC XML records using Libxml2 - \param mt handle - \param enable 0=disable, 1=enable -*/ -YAZ_EXPORT -void yaz_marc_write_using_libxml2(yaz_marc_t mt, int enable); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/mutex.h b/dependencies/yaz_3.0.14/include/yaz/mutex.h deleted file mode 100644 index b9c42e1..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/mutex.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: mutex.h,v 1.1 2007/04/17 20:26:18 adam Exp $ */ - -/** - * \file mutex.h - * \brief Header for Mutex functions - */ -#ifndef YAZ_MUTEX_H -#define YAZ_MUTEX_H - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief NMEM/YAZ MUTEX opaque pointer */ -typedef struct yaz_mutex *YAZ_MUTEX; -/** \brief create Mutex */ -YAZ_EXPORT void yaz_mutex_create(YAZ_MUTEX *); -/** \brief enter critical section / AKA lock */ -YAZ_EXPORT void yaz_mutex_enter(YAZ_MUTEX); -/** \brief leave critical section / AKA unlock */ -YAZ_EXPORT void yaz_mutex_leave(YAZ_MUTEX); -/** \brief destroy MUTEX */ -YAZ_EXPORT void yaz_mutex_destroy(YAZ_MUTEX *); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/nmem.h b/dependencies/yaz_3.0.14/include/yaz/nmem.h deleted file mode 100644 index f2d97c8..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/nmem.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: nmem.h,v 1.25 2007/04/17 20:26:18 adam Exp $ */ - -/** - * \file nmem.h - * \brief Header for Nibble Memory functions - * - * This is a simple and fairly wasteful little module for nibble memory - * allocation. Evemtually we'll put in something better. - */ -#ifndef NMEM_H -#define NMEM_H - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief NMEM handle (an opaque pointer to memory) */ -typedef struct nmem_control *NMEM; - -/** \brief release all memory associaged with an NMEM handle */ -YAZ_EXPORT void nmem_reset(NMEM n); -/** \brief returns size in bytes of memory for NMEM handle */ -YAZ_EXPORT int nmem_total(NMEM n); - -/** \brief allocates string on NMEM handle (similar strdup) */ -YAZ_EXPORT char *nmem_strdup (NMEM mem, const char *src); -/** \brief allocates string on NMEM handle - allows NULL ptr buffer */ -YAZ_EXPORT char *nmem_strdup_null (NMEM mem, const char *src); -/** \brief allocates string of certain size on NMEM handle */ -YAZ_EXPORT char *nmem_strdupn (NMEM mem, const char *src, size_t n); - -/** \brief allocates sub strings out of string using certain delimitors - \param nmem NMEM handle - \param delim delimitor chars (splits on each char in there) - \param dstr string to be split - \param darray result string array for each sub string - \param num number of result strings -*/ -YAZ_EXPORT void nmem_strsplit(NMEM nmem, const char *delim, - const char *dstr, - char ***darray, int *num); - -/** \brief splits string into sub strings delimited by blanks - \param nmem NMEM handle - \param dstr string to be split - \param darray result string array for each sub string - \param num number of result strings -*/ -YAZ_EXPORT void nmem_strsplit_blank(NMEM nmem, const char *dstr, - char ***darray, int *num); - -/** \brief creates and allocates integer for NMEM */ -YAZ_EXPORT int *nmem_intdup (NMEM mem, int v); - -/** \brief transfers memory from one NMEM handle to another */ -YAZ_EXPORT void nmem_transfer (NMEM dst, NMEM src); - -/** \brief returns new NMEM handle */ -YAZ_EXPORT NMEM nmem_create(void); - -/** \brief destroys NMEM handle and memory associated with it */ -YAZ_EXPORT void nmem_destroy(NMEM n); - -/** \brief allocate memory block on NMEM handle */ -YAZ_EXPORT void *nmem_malloc(NMEM n, int size); - -YAZ_EXPORT int yaz_errno (void); -YAZ_EXPORT void yaz_set_errno (int v); -YAZ_EXPORT void yaz_strerror(char *buf, int max); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/nmem_xml.h b/dependencies/yaz_3.0.14/include/yaz/nmem_xml.h deleted file mode 100644 index 71387d9..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/nmem_xml.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: nmem_xml.h,v 1.3 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file nmem_xml.h - * \brief Header for Nibble Memory functions + Libxml2 specific stuff - */ -#ifndef NMEM_XML_H -#define NMEM_XML_H - -#include - -#include - -YAZ_BEGIN_CDECL - -/** \brief copies TEXT Libxml2 node data to NMEM */ -YAZ_EXPORT char *nmem_text_node_cdata(const xmlNode *ptr, NMEM nmem); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/oclc-ill-req-ext.h b/dependencies/yaz_3.0.14/include/yaz/oclc-ill-req-ext.h deleted file mode 100644 index 37489d7..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/oclc-ill-req-ext.h +++ /dev/null @@ -1,69 +0,0 @@ -/** \file oclc-ill-req-ext.h - \brief ASN.1 Module OCLCILLRequestExtension - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef oclc_ill_req_ext_H -#define oclc_ill_req_ext_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ILL_OCLCILLRequestExtension ILL_OCLCILLRequestExtension; -YAZ_EXPORT int ill_OCLCILLRequestExtension (ODR o, ILL_OCLCILLRequestExtension **p, int opt, const char *name); - -typedef struct ILL_SystemNo_s ILL_SystemNo_s; -YAZ_EXPORT int ill_SystemNo_s (ODR o, ILL_SystemNo_s **p, int opt, const char *name); - -typedef struct ILL_SystemNo ILL_SystemNo; -YAZ_EXPORT int ill_SystemNo (ODR o, ILL_SystemNo **p, int opt, const char *name); - -typedef int ILL_System; -YAZ_EXPORT int ill_System (ODR o, ILL_System **p, int opt, const char *name); - -typedef ILL_String ILL_RecordNo; -YAZ_EXPORT int ill_RecordNo (ODR o, ILL_RecordNo **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct ILL_OCLCILLRequestExtension { - ILL_String *clientDepartment; /* OPT */ - ILL_String *paymentMethod; /* OPT */ - ILL_String *uniformTitle; /* OPT */ - ILL_String *dissertation; /* OPT */ - ILL_String *issueNumber; /* OPT */ - ILL_String *volume; /* OPT */ - ILL_String *affiliations; /* OPT */ - ILL_String *source; /* OPT */ -}; - -struct ILL_SystemNo_s { - ILL_System *System; - ILL_RecordNo *recordNo; -}; - -struct ILL_SystemNo { - int num; - ILL_SystemNo_s **elements; -}; - -#define ILL_System_dobis 1 -#define ILL_System_candoc 2 -#define ILL_System_oclc 3 -#define ILL_System_rlin 4 -#define ILL_System_utlas 5 -#define ILL_System_other 6 - - - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/odr.h b/dependencies/yaz_3.0.14/include/yaz/odr.h deleted file mode 100644 index 38bd7ae..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/odr.h +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: odr.h,v 1.29 2007/09/11 08:35:42 adam Exp $ */ - -/** - * \file odr.h - * \brief Header for ODR (Open Data Representation) - */ - -#ifndef ODR_H -#define ODR_H - -#include -#include - -#include -#include - -/* for definition of Odr_oid */ -#include - -YAZ_BEGIN_CDECL - -#ifndef bool_t -#define bool_t int -#endif - -/* - * Tag modes - */ -#define ODR_NONE -1 -#define ODR_IMPLICIT 0 -#define ODR_EXPLICIT 1 - -/* - * Classes - */ -#define ODR_UNIVERSAL 0 -#define ODR_APPLICATION 1 -#define ODR_CONTEXT 2 -#define ODR_PRIVATE 3 - -/* - * UNIVERSAL tags - */ -#define ODR_BOOLEAN 1 -#define ODR_INTEGER 2 -#define ODR_BITSTRING 3 -#define ODR_OCTETSTRING 4 -#define ODR_NULL 5 -#define ODR_OID 6 -#define ODR_ODESC 7 -#define ODR_EXTERNAL 8 -#define ODR_REAL 9 -#define ODR_ENUM 10 -#define ODR_SEQUENCE 16 -#define ODR_SET 17 -#define ODR_NUMERICSTRING 18 -#define ODR_PRINTABLESTRING 19 -#define ODR_GENERALIZEDTIME 24 -#define ODR_GRAPHICSTRING 25 -#define ODR_VISIBLESTRING 26 -#define ODR_GENERALSTRING 27 - -/* - * odr stream directions - */ -#define ODR_DECODE 0 -#define ODR_ENCODE 1 -#define ODR_PRINT 2 - -typedef struct odr_oct -{ - unsigned char *buf; - int len; - int size; -} Odr_oct; - -typedef void Odr_null; -extern Odr_null *ODR_NULLVAL; - -typedef Odr_oct Odr_any; - -typedef struct odr_bitmask -{ -#define ODR_BITMASK_SIZE 256 - unsigned char bits[ODR_BITMASK_SIZE]; - int top; -} Odr_bitmask; - -#define ODR_S_SET 0 -#define ODR_S_CUR 1 -#define ODR_S_END 2 - -typedef struct odr *ODR; - -/** ODR handle and the public structs */ -struct odr -{ - int direction; /* the direction of this stream */ - - int error; /* current error state (0==OK) */ - - unsigned char *buf; /* memory handle */ - int top; /* top of buffer (max pos when encoding) */ - int size; /* current buffer size (encoding+decoding) */ - - int pos; /* current position (encoding) */ - - const unsigned char *bp; /* position in buffer (decoding) */ - - NMEM mem; /* memory handle for decoding (primarily) */ - - struct Odr_private *op; -}; - -typedef int (*Odr_fun)(ODR, char **, int, const char *); - -typedef struct odr_arm -{ - int tagmode; - int zclass; - int tag; - int which; - Odr_fun fun; - char *name; -} Odr_arm; - -/* - * Error control. - */ -#define ONONE 0 -#define OMEMORY 1 -#define OSYSERR 2 -#define OSPACE 3 -#define OREQUIRED 4 -#define OUNEXPECTED 5 -#define OOTHER 6 -#define OPROTO 7 -#define ODATA 8 -#define OSTACK 9 -#define OCONLEN 10 -#define OLENOV 11 -#define OHTTP 12 - -extern char *odr_errlist[]; - -YAZ_EXPORT int odr_geterror(ODR o); -YAZ_EXPORT int odr_geterrorx(ODR o, int *x); -YAZ_EXPORT void odr_seterror(ODR o, int errorno, int errorid); -YAZ_EXPORT void odr_setelement(ODR o, const char *addinfo); -YAZ_EXPORT const char *odr_getelement(ODR o); -YAZ_EXPORT void odr_perror(ODR o, const char *message); -YAZ_EXPORT void odr_setprint(ODR o, FILE *file); -YAZ_EXPORT ODR odr_createmem(int direction); -YAZ_EXPORT void odr_reset(ODR o); -YAZ_EXPORT void odr_destroy(ODR o); -YAZ_EXPORT void odr_setbuf(ODR o, char *buf, int len, int can_grow); -YAZ_EXPORT char *odr_getbuf(ODR o, int *len, int *size); -YAZ_EXPORT void *odr_malloc(ODR o, int size); -YAZ_EXPORT char *odr_strdup(ODR o, const char *str); -YAZ_EXPORT char *odr_strdupn(ODR o, const char *str, size_t n); -YAZ_EXPORT char *odr_strdup_null(ODR o, const char *str); -YAZ_EXPORT int *odr_intdup(ODR o, int v); -YAZ_EXPORT Odr_oct *odr_create_Odr_oct(ODR o, const unsigned char *buf, - int sz); -YAZ_EXPORT NMEM odr_extract_mem(ODR o); -YAZ_EXPORT Odr_null *odr_nullval(void); -#define odr_release_mem(m) nmem_destroy(m) -#define ODR_MEM NMEM - -#define odr_implicit_tag(o, t, p, cl, tg, opt, name)\ - (odr_implicit_settag((o), cl, tg), t ((o), (p), (opt), name) ) - -#define odr_explicit_tag(o, t, p, cl, tg, opt, name)\ - ((int) (odr_constructed_begin((o), (p), (cl), (tg), 0) ? \ - t ((o), (p), (opt), name) &&\ - odr_constructed_end(o) : odr_missing((o), opt, name))) - -#define ODR_MASK_ZERO(mask)\ - ((void) (memset((mask)->bits, 0, ODR_BITMASK_SIZE),\ - (mask)->top = -1)) - -#define ODR_MASK_SET(mask, num)\ - (((mask)->bits[(num) >> 3] |= 0X80 >> ((num) & 0X07)),\ - (mask)->top < (num) >> 3 ? ((mask)->top = (num) >> 3) : 0) - -#define ODR_MASK_CLEAR(mask, num)\ - ((mask)->bits[(num) >> 3] &= ~(0X80 >> ((num) & 0X07))) - -#define ODR_MASK_GET(mask, num) ( ((num) >> 3 <= (mask)->top) ? \ - ((mask)->bits[(num) >> 3] & (0X80 >> ((num) & 0X07)) ? 1 : 0) : 0) - - -#define odr_tell(o) ((o)->pos) -#define odr_offset(o) ((o)->bp - (o)->buf) -#define odr_ok(o) (!(o)->error) -#define odr_getmem(o) ((o)->mem) - -#define ODR_MAXNAME 256 - -YAZ_EXPORT int ber_boolean(ODR o, int *val); -YAZ_EXPORT int ber_tag(ODR o, void *p, int zclass, int tag, - int *constructed, int opt, const char *name); -YAZ_EXPORT int ber_enctag(ODR o, int zclass, int tag, int constructed); -YAZ_EXPORT int ber_dectag(const unsigned char *buf, int *zclass, - int *tag, int *constructed, int max); -YAZ_EXPORT int odr_bool(ODR o, int **p, int opt, const char *name); -YAZ_EXPORT int odr_integer(ODR o, int **p, int opt, const char *name); -YAZ_EXPORT int odr_enum(ODR o, int **p, int opt, const char *name); -YAZ_EXPORT int odr_implicit_settag(ODR o, int zclass, int tag); -YAZ_EXPORT int ber_enclen(ODR o, int len, int lenlen, int exact); -YAZ_EXPORT int ber_declen(const unsigned char *buf, int *len, int max); -YAZ_EXPORT void odr_prname(ODR o, const char *name); -YAZ_EXPORT int ber_null(ODR o); -YAZ_EXPORT int odr_null(ODR o, Odr_null **p, int opt, const char *name); -YAZ_EXPORT int ber_integer(ODR o, int *val); -YAZ_EXPORT int odr_constructed_begin(ODR o, void *p, int zclass, int tag, - const char *name); -YAZ_EXPORT int odr_constructed_end(ODR o); -YAZ_EXPORT int odr_sequence_begin(ODR o, void *p, int size, const char *name); -YAZ_EXPORT int odr_set_begin(ODR o, void *p, int size, const char *name); -YAZ_EXPORT int odr_sequence_end(ODR o); -YAZ_EXPORT int odr_set_end(ODR o); -YAZ_EXPORT int ber_octetstring(ODR o, Odr_oct *p, int cons); -YAZ_EXPORT int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name); -YAZ_EXPORT int odp_more_chunks(ODR o, const unsigned char *base, int len); -YAZ_EXPORT int odr_constructed_more(ODR o); -YAZ_EXPORT int odr_bitstring(ODR o, Odr_bitmask **p, int opt, - const char *name); -YAZ_EXPORT int ber_bitstring(ODR o, Odr_bitmask *p, int cons); -YAZ_EXPORT int odr_generalstring(ODR o, char **p, int opt, const char *name); -YAZ_EXPORT int ber_oidc(ODR o, Odr_oid *p, int max_oid_size); -YAZ_EXPORT int odr_oid(ODR o, Odr_oid **p, int opt, const char *name); -YAZ_EXPORT int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp, - const char *name); -YAZ_EXPORT int odr_cstring(ODR o, char **p, int opt, const char *name); -YAZ_EXPORT int odr_iconv_string(ODR o, char **p, int opt, const char *name); -YAZ_EXPORT int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num, - const char *name); -YAZ_EXPORT int odr_set_of(ODR o, Odr_fun type, void *p, int *num, - const char *name); -YAZ_EXPORT int odr_any(ODR o, Odr_any **p, int opt, const char *name); - -YAZ_EXPORT int ber_any(ODR o, Odr_any **p); -/** \brief determine whether a buffer is a complete BER buffer - \param buf BER buffer - \param len length of buffer - \retval 0 package is incomplete - \retval >0 package is complete and length is return value -*/ -YAZ_EXPORT int completeBER(const unsigned char *buf, int len); - -YAZ_EXPORT void odr_begin(ODR o); -YAZ_EXPORT void odr_end(ODR o); -YAZ_EXPORT Odr_oid *odr_oiddup(ODR odr, const Odr_oid *o); -YAZ_EXPORT Odr_oid *odr_oiddup_nmem(NMEM nmem, const Odr_oid *o); -YAZ_EXPORT int odr_grow_block(ODR b, int min_bytes); -YAZ_EXPORT int odr_write(ODR o, unsigned char *buf, int bytes); -YAZ_EXPORT int odr_seek(ODR o, int whence, int offset); -YAZ_EXPORT int odr_dumpBER(FILE *f, const char *buf, int len); -YAZ_EXPORT void odr_choice_bias(ODR o, int what); -YAZ_EXPORT void odr_choice_enable_bias(ODR o, int mode); -YAZ_EXPORT int odr_total(ODR o); -YAZ_EXPORT char *odr_errmsg(int n); -YAZ_EXPORT Odr_oid *odr_getoidbystr(ODR o, const char *str); -YAZ_EXPORT Odr_oid *odr_getoidbystr_nmem(NMEM o, const char *str); - -YAZ_EXPORT int odr_initmember(ODR o, void *p, int size); -YAZ_EXPORT int odr_peektag(ODR o, int *zclass, int *tag, int *cons); -YAZ_EXPORT void odr_setlenlen(ODR o, int len); -YAZ_EXPORT int odr_missing(ODR o, int opt, const char *name); -YAZ_EXPORT char *odr_prepend(ODR o, const char *prefix, const char *old); - -typedef struct Odr_external -{ - Odr_oid *direct_reference; /* OPTIONAL */ - int *indirect_reference; /* OPTIONAL */ - char *descriptor; /* OPTIONAL */ - int which; -#define ODR_EXTERNAL_single 0 -#define ODR_EXTERNAL_octet 1 -#define ODR_EXTERNAL_arbitrary 2 - union - { - Odr_any *single_ASN1_type; - Odr_oct *octet_aligned; - Odr_bitmask *arbitrary; /* we aren't really equipped for this*/ - } u; -} Odr_external; - -YAZ_EXPORT int odr_external(ODR o, Odr_external **p, int opt, - const char *name); -YAZ_EXPORT int odr_visiblestring(ODR o, char **p, int opt, - const char *name); -YAZ_EXPORT int odr_graphicstring(ODR o, char **p, int opt, - const char *name); -YAZ_EXPORT int odr_generalizedtime(ODR o, char **p, int opt, - const char *name); - -YAZ_EXPORT int odr_set_charset(ODR o, const char *to, const char *from); - -YAZ_EXPORT void odr_set_stream(ODR o, void *handle, - void (*stream_write)(ODR o, - void *handle, - int type, - const char *buf, - int len), - void (*stream_close)(void *handle)); - -YAZ_EXPORT void odr_printf(ODR o, const char *fmt, ...); - -YAZ_EXPORT const char **odr_get_element_path(ODR o); - -YAZ_END_CDECL - -#include - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/oid_db.h b/dependencies/yaz_3.0.14/include/yaz/oid_db.h deleted file mode 100644 index 79c9ad7..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/oid_db.h +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: oid_db.h,v 1.9 2007/06/24 19:27:11 adam Exp $ */ - -/** - * \file oid_db.h - * \brief Header for OID database - */ -#ifndef OID_DB_H -#define OID_DB_H - -#include -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief OID database */ -typedef struct yaz_oid_db *yaz_oid_db_t; - - -typedef enum oid_class -{ - CLASS_NOP=0, - CLASS_APPCTX, - CLASS_ABSYN, - CLASS_ATTSET, - CLASS_TRANSYN, - CLASS_DIAGSET, - CLASS_RECSYN, - CLASS_RESFORM, - CLASS_ACCFORM, - CLASS_EXTSERV, - CLASS_USERINFO, - CLASS_ELEMSPEC, - CLASS_VARSET, - CLASS_SCHEMA, - CLASS_TAGSET, - CLASS_GENERAL, - CLASS_NEGOT -} oid_class; - - -/** \brief returns standard OID database - \retval OID database handle -*/ -YAZ_EXPORT -yaz_oid_db_t yaz_oid_std(void); - -/** \brief maps named OID string to raw OID by database lookup - \param oid_db OID database - \param oclass class of string (enum oid_class) - \param name OID name - \returns raw OID or NULL if name is unknown (bad) - - This function only maps known names in the database provided. - Use yaz_string_to_oid_nmem or yaz_string_to_oid_odr to map - any named OID in dot-notation (1.2.8). -*/ -YAZ_EXPORT -const Odr_oid *yaz_string_to_oid(yaz_oid_db_t oid_db, - oid_class oclass, const char *name); - - -/** \brief creates NMEM malloc'ed OID from string - \param oid_db OID database - \param oclass class of string (enum oid_class) - \param name OID name - \param nmem memory for returned OID - \returns raw OID or NULL if name is unknown (bad) -*/ -YAZ_EXPORT -Odr_oid *yaz_string_to_oid_nmem(yaz_oid_db_t oid_db, - oid_class oclass, const char *name, NMEM nmem); - -/** \brief creates ODR malloc'ed OID from string - \param oid_db OID database - \param oclass class of string (enum oid_class) - \param name OID name - \param odr memory for returned OID - \returns raw OID or NULL if name is unknown (bad) -*/ -YAZ_EXPORT -Odr_oid *yaz_string_to_oid_odr(yaz_oid_db_t oid_db, - oid_class oclass, const char *name, ODR odr); - -/** \brief maps raw OID to string - \param oid_db OID database - \param oid raw OID - \param oclass holds OID class if found (output parameter) - \returns OID name or NULL if not found in database -*/ -YAZ_EXPORT -const char *yaz_oid_to_string(yaz_oid_db_t oid_db, - const Odr_oid *oid, oid_class *oclass); - - -/** \brief maps any OID to string (named or dot-notation) - \param oid raw OID - \param oclass holds OID class if found (output parameter) - \param buf string buffer for result (must be of size OID_STR_MAX) - \returns OID string (named or dot notatition) -*/ -YAZ_EXPORT -const char *yaz_oid_to_string_buf(const Odr_oid *oid, - oid_class *oclass, char *buf); - - -/** \brief maps named from standard database to dot notation - \param oclass class of string (enum oid_class) - \param name named OID - \param oid_buf buffer for result (must be of size OID_STR_MAX) - \returns OID string or NULL if name is not registered in database -*/ -YAZ_EXPORT -char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oid_buf); - - -/** \brief traverses OIDs in a database - \param oid_db OID database - \param func function to be called for each OID - \param client_data data to be passed to func (custom defined) -*/ -YAZ_EXPORT void yaz_oid_trav(yaz_oid_db_t oid_db, - void (*func)(const Odr_oid *oid, - oid_class oclass, const char *name, - void *client_data), - void *client_data); - -/** \brief checks if OID refers to MARC transfer syntax - \param oid raw OID - \retval 1 OID is a MARC type - \retval 0 OID is not a MARC type -*/ -YAZ_EXPORT -int yaz_oid_is_iso2709(const Odr_oid *oid); - -/** \brief adds new OID entry to database - \param oid_db database - \param oclass OID class - \param name name of OID - \param new_oid OID value (raw OID) - \retval 0 OID added - \retval -1 OID name+oclass already exists -*/ -YAZ_EXPORT -int yaz_oid_add(yaz_oid_db_t oid_db, int oclass, const char *name, - const Odr_oid *new_oid); - - -/** \brief creates empty OID database - \returns database -*/ -YAZ_EXPORT -yaz_oid_db_t yaz_oid_db_new(void); - -/** \brief destroys OID database - \param oid_db database -*/ -YAZ_EXPORT -void yaz_oid_db_destroy(yaz_oid_db_t oid_db); - -struct yaz_oid_entry { - int oclass; - const Odr_oid *oid; - char *name; -}; - -YAZ_END_CDECL - -#define Z3950_PREFIX 1, 2, 840, 10003 - -#include - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/oid_std.h b/dependencies/yaz_3.0.14/include/yaz/oid_std.h deleted file mode 100644 index a19aaf3..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/oid_std.h +++ /dev/null @@ -1,153 +0,0 @@ -/** \file oid_std.h - \brief Standard Object Identifiers: Generated from ./oid.csv */ -#ifndef OID_STD_H -#define OID_STD_H -#ifdef YAZ_DLL -#define OID_EXPORT YAZ_EXPORT -#else -#define OID_EXPORT YAZ_IMPORT -#endif -YAZ_BEGIN_CDECL -OID_EXPORT extern const Odr_oid yaz_oid_transyn_ber[]; -OID_EXPORT extern const Odr_oid yaz_oid_transyn_iso2709[]; -OID_EXPORT extern const Odr_oid yaz_oid_general_isoill_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_absyn_z_apdu[]; -OID_EXPORT extern const Odr_oid yaz_oid_appctx_z_basic[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_bib_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_exp_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_ext_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_ccl_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_gils[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_gils_attset[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_stas_attset[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_collections_attset[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_cimi_attset[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_geo_attset[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_zbig[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_util[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_xd_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_zthes[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_fin_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_dan_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_holdings[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_marc[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_bib_2[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_zeerex[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_thesaurus_attset[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_idxpath[]; -OID_EXPORT extern const Odr_oid yaz_oid_attset_extlite[]; -OID_EXPORT extern const Odr_oid yaz_oid_diagset_bib_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_diagset_diag_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_diagset_diag_es[]; -OID_EXPORT extern const Odr_oid yaz_oid_diagset_diag_general[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_unimarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_intermarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_ccf[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_usmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_marc21[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_ukmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_normarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_librismarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_danmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_finmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_mab[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_canmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_sbn[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_picamarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_ausmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_ibermarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_carmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_malmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_jpmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_swemarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_siglemarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_isdsmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_rusmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_hunmarc[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_nacsis_catp[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_finmarc2000[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_marc21_fin[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_explain[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_sutrs[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_opac[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_summary[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_grs_0[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_grs_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_extended[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_fragment[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_pdf[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_postscript[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_html[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_tiff[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_gif[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_jpeg[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_png[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_mpeg[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_sgml[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_tiff_b[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_wav[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_sql_rs[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_soif[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_xml[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_text_xml[]; -OID_EXPORT extern const Odr_oid yaz_oid_recsyn_application_xml[]; -OID_EXPORT extern const Odr_oid yaz_oid_resform_resource_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_resform_resource_2[]; -OID_EXPORT extern const Odr_oid yaz_oid_resform_universe_resource_report[]; -OID_EXPORT extern const Odr_oid yaz_oid_accform_prompt_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_accform_des_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_accform_krb_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_persistent_set[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_persistent_query[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_periodic_query[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_item_order[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_database_update_first_version[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_database_update_second_version[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_database_update[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_exp__spec_[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_exp__inv_[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_admin[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_searchresult_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_charsetandlanguagenegotiation[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_userinfo_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_multiplesearchterms_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_multiplesearchterms_2[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_datetime[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_proxy[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_cookie[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_client_ip[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_scan_set[]; -OID_EXPORT extern const Odr_oid yaz_oid_elemspec_espec_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_varset_variant_1[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_wais_schema[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_gils_schema[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_collections_schema[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_geo_schema[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_cimi_schema[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_update_es[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_holdings[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_zthes[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_thesaurus_schema[]; -OID_EXPORT extern const Odr_oid yaz_oid_schema_explain_schema[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_tagsetm[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_tagsetg[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_stas_tagset[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_gils_tagset[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_collections_tagset[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_cimi_tagset[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_thesaurus_tagset[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_explain_tagset[]; -OID_EXPORT extern const Odr_oid yaz_oid_tagset_zthes_tagset[]; -OID_EXPORT extern const Odr_oid yaz_oid_negot_charset_3[]; -OID_EXPORT extern const Odr_oid yaz_oid_negot_charset_4[]; -OID_EXPORT extern const Odr_oid yaz_oid_negot_charset_id[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_cql[]; -OID_EXPORT extern const Odr_oid yaz_oid_general_ucs_2[]; -OID_EXPORT extern const Odr_oid yaz_oid_general_ucs_4[]; -OID_EXPORT extern const Odr_oid yaz_oid_general_utf_16[]; -OID_EXPORT extern const Odr_oid yaz_oid_general_utf_8[]; -OID_EXPORT extern const Odr_oid yaz_oid_userinfo_oclc_userinfo[]; -OID_EXPORT extern const Odr_oid yaz_oid_extserv_xml_es[]; -OID_EXPORT extern struct yaz_oid_entry yaz_oid_standard_entries[]; -YAZ_END_CDECL -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/oid_util.h b/dependencies/yaz_3.0.14/include/yaz/oid_util.h deleted file mode 100644 index d3cded2..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/oid_util.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: oid_util.h,v 1.4 2007/05/08 08:22:35 adam Exp $ */ - -/** - * \file oid_util.h - * \brief Header for OID basic functions - */ -#ifndef OID_UTIL_H -#define OID_UTIL_H - -#include - -YAZ_BEGIN_CDECL - -#define OID_SIZE 20 -#define OID_STR_MAX 256 - -typedef short Odr_oid; /* terminate by -1 */ - -typedef enum oid_proto -{ - PROTO_NOP=0, - PROTO_Z3950, - PROTO_SR, - PROTO_GENERAL, - PROTO_WAIS, - PROTO_HTTP -} oid_proto; - -YAZ_EXPORT void oid_oidcpy(Odr_oid *t, const Odr_oid *s); -YAZ_EXPORT void oid_oidcat(Odr_oid *t, const Odr_oid *s); -YAZ_EXPORT int oid_oidcmp(const Odr_oid *o1, const Odr_oid *o2); -YAZ_EXPORT int oid_oidlen(const Odr_oid *o); -YAZ_EXPORT char *oid_oid_to_dotstring(const Odr_oid *oid, char *oidbuf); -YAZ_EXPORT int oid_dotstring_to_oid(const char *name, Odr_oid *oid); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/options.h b/dependencies/yaz_3.0.14/include/yaz/options.h deleted file mode 100644 index ae3f3d6..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/options.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: options.h,v 1.8 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file options.h - * \brief Header for command line options parsing utilities - */ - -#ifndef OPTIONS_H -#define OPTIONS_H -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT int options (const char *desc, char **argv, int argc, char **arg); - -YAZ_END_CDECL - -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/otherinfo.h b/dependencies/yaz_3.0.14/include/yaz/otherinfo.h deleted file mode 100644 index 2ea68cb..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/otherinfo.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: otherinfo.h,v 1.11 2007/05/08 08:22:35 adam Exp $ */ - -/** - * \file otherinfo.h - * \brief Header for Z39.50 OtherInfo utilities - */ -#ifndef OTHERINFO_H -#define OTHERINFO_H - -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT -void yaz_oi_APDU(Z_APDU *apdu, Z_OtherInformation ***oip); - -YAZ_EXPORT -Z_OtherInformationUnit *yaz_oi_update ( - Z_OtherInformation **otherInformationP, ODR odr, - const Odr_oid *oid, int categoryValue, int delete_flag); - -YAZ_EXPORT -void yaz_oi_set_string_oid ( - Z_OtherInformation **otherInformation, ODR odr, - const Odr_oid *oid, int categoryValue, - const char *str); - -YAZ_EXPORT -char *yaz_oi_get_string_oid ( - Z_OtherInformation **otherInformation, - const Odr_oid *oid, int categoryValue, int delete_flag); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/pquery.h b/dependencies/yaz_3.0.14/include/yaz/pquery.h deleted file mode 100644 index e26e3e8..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/pquery.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: pquery.h,v 1.11 2007/04/12 13:52:57 adam Exp $ */ - -/** - * \file pquery.h - * \brief Header for PQF parsing - */ - -#ifndef PQUERY_H -#define PQUERY_H - -#include -#include - -YAZ_BEGIN_CDECL - -typedef struct yaz_pqf_parser *YAZ_PQF_Parser; - -YAZ_EXPORT Z_RPNQuery *p_query_rpn(ODR o, const char *qbuf); - -YAZ_EXPORT Z_AttributesPlusTerm *p_query_scan(ODR o, oid_proto proto, - Odr_oid **attributeSetP, const char *qbuf); -YAZ_EXPORT YAZ_PQF_Parser yaz_pqf_create(void); -YAZ_EXPORT Z_RPNQuery *yaz_pqf_parse(YAZ_PQF_Parser p, ODR o, - const char *qbuf); -YAZ_EXPORT Z_AttributesPlusTerm *yaz_pqf_scan(YAZ_PQF_Parser p, ODR o, - Odr_oid **attributeSetId, - const char *qbuf); -YAZ_EXPORT void yaz_pqf_destroy(YAZ_PQF_Parser p); - -YAZ_EXPORT int yaz_pqf_error(YAZ_PQF_Parser p, const char **msg, size_t *off); - - -/* no error */ -#define YAZ_PQF_ERROR_NONE 0 - -/* extra token (end of query expected) */ -#define YAZ_PQF_ERROR_EXTRA 1 - -/* missing token (at least one token expected) */ -#define YAZ_PQF_ERROR_MISSING 2 - -/* bad attribute set (for @attr and @attrset) */ -#define YAZ_PQF_ERROR_ATTSET 3 - -/* too many items (limit reached - too many attributes, etc) */ -#define YAZ_PQF_ERROR_TOOMANY 4 - -/* bad format of attribute (missing =) */ -#define YAZ_PQF_ERROR_BADATTR 5 - -/* internal failure */ -#define YAZ_PQF_ERROR_INTERNAL 6 - -/* bad proximity args */ -#define YAZ_PQF_ERROR_PROXIMITY 7 - -/* bad unsigned integer */ -#define YAZ_PQF_ERROR_BAD_INTEGER 8 - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/proto.h b/dependencies/yaz_3.0.14/include/yaz/proto.h deleted file mode 100644 index 1d91fb7..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/proto.h +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: proto.h,v 1.27 2007/04/12 13:52:57 adam Exp $ */ - -/** - * \file proto.h - * \brief Header for Z39.50 Protocol - */ -#ifndef Z_PROTO_H -#define Z_PROTO_H - -#define Z_95 1 -#define ASN_COMPILED 1 - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -YAZ_BEGIN_CDECL - -#if 1 -#define Z_PRES_SUCCESS Z_PresentStatus_success -#define Z_PRES_PARTIAL_1 Z_PresentStatus_partial_1 -#define Z_PRES_PARTIAL_2 Z_PresentStatus_partial_2 -#define Z_PRES_PARTIAL_3 Z_PresentStatus_partial_3 -#define Z_PRES_PARTIAL_4 Z_PresentStatus_partial_4 -#define Z_PRES_FAILURE Z_PresentStatus_failure - -#define Z_RES_SUBSET Z_SearchResponse_subset -#define Z_RES_INTERIM Z_SearchResponse_interim -#define Z_RES_NONE Z_SearchResponse_none - -#define Z_SortStatus_success Z_SortResponse_success -#define Z_SortStatus_partial_1 Z_SortResponse_partial_1 -#define Z_SortStatus_failure Z_SortResponse_failure - -#define Z_SortRelation_ascending Z_SortKeySpec_ascending -#define Z_SortRelation_descending Z_SortKeySpec_descending -#define Z_SortRelation_ascendingByFreq Z_SortKeySpec_ascendingByFrequency -#define Z_SortRelation_descendingByFreq Z_SortKeySpec_descendingByfrequency - -#define Z_SortCase_caseSensitive Z_SortKeySpec_caseSensitive -#define Z_SortCase_caseInsensitive Z_SortKeySpec_caseInsensitive - -#define Z_TriggerResourceCtrl_resourceReport Z_TriggerResourceControlRequest_resourceReport -#define Z_TriggerResourceCtrl_resourceControl Z_TriggerResourceControlRequest_resourceControl -#define Z_TriggerResourceCtrl_cancel Z_TriggerResourceControlRequest_cancel - -#define Z_DeleteRequest_list Z_DeleteResultSetRequest_list -#define Z_DeleteRequest_all Z_DeleteResultSetRequest_all - -#define Z_AccessRequest_simpleForm Z_AccessControlRequest_simpleForm -#define Z_AccessRequest_externallyDefined Z_AccessControlRequest_externallyDefined - -#define Z_AccessResponse_simpleForm Z_AccessControlResponse_simpleForm -#define Z_AccessResponse_externallyDefined Z_AccessControlResponse_externallyDefined - -#define Z_ResourceReportStatus_success Z_ResourceReportResponse_success -#define Z_ResourceReportStatus_partial Z_ResourceReportResponse_partial -#define Z_ResourceReportStatus_failure_1 Z_ResourceReportResponse_failure_1 -#define Z_ResourceReportStatus_failure_2 Z_ResourceReportResponse_failure_2 -#define Z_ResourceReportStatus_failure_3 Z_ResourceReportResponse_failure_3 -#define Z_ResourceReportStatus_failure_4 Z_ResourceReportResponse_failure_4 -#define Z_ResourceReportStatus_failure_5 Z_ResourceReportResponse_failure_5 -#define Z_ResourceReportStatus_failure_6 Z_ResourceReportResponse_failure_6 - -#define Z_SortResultSetStatus_empty Z_SortResponse_empty -#define Z_SortResultSetStatus_interim Z_SortResponse_interim -#define Z_SortResultSetStatus_unchanged Z_SortResponse_unchanged -#define Z_SortResultSetStatus_none Z_SortResponse_none -#endif - -typedef Z_External Z_DatabaseRecord; -typedef struct Z_IOItemOrder Z_ItemOrder; - -YAZ_EXPORT Z_APDU *zget_APDU(ODR o, int which); -YAZ_EXPORT Z_Close *zget_Close (ODR o); - -/** \brief Performs "pretty" display of GRS-1 record to WRBUF */ -YAZ_EXPORT void yaz_display_grs1(WRBUF wrbuf, Z_GenericRecord *r, int flags); - -/** \brief Performs "pretty" display of OPAC record to WRBUF */ -YAZ_EXPORT void yaz_display_OPAC(WRBUF wrbuf, Z_OPACRecord *r, int flags); - -/** \brief Performs "pretty" display of OPAC record to WRBUF using marc_t */ -YAZ_EXPORT void yaz_opac_decode_wrbuf(yaz_marc_t mt, Z_OPACRecord *r, WRBUF wrbuf); - -/** \brief Encodes Z39.50 Init OPtions based on string mnemonics */ -YAZ_EXPORT int yaz_init_opt_encode(Z_Options *opt, const char *opt_str, - int *error_pos); - -/** \brief Decodes Z39.50 Init Options - for printing */ -YAZ_EXPORT void yaz_init_opt_decode(Z_Options *opt, - void (*pr)(const char *name, - void *clientData), - void *clientData); -/** \brief Creates Default Diag Format Diagnostic */ -YAZ_EXPORT -Z_DefaultDiagFormat *zget_DefaultDiagFormat(ODR o, int error, - const char *addinfo); - -/** \brief Creates Surrogate Diagnostic Records */ -YAZ_EXPORT -Z_NamePlusRecord *zget_surrogateDiagRec(ODR o, const char *dbname, - int error, const char *addinfo); - -/** \brief Creates Initialize Response diagnostics */ -YAZ_EXPORT -Z_External *zget_init_diagnostics(ODR odr, int error, const char *addinfo); - -/** \brief Creates Initialize Response diagnostics (Octet-aligned EXTERNAL) */ -YAZ_EXPORT -Z_External *zget_init_diagnostics_octet(ODR odr, int error, const char *addinfo); - -/** \brief Creates Diagnostic record - Z_DiagRecs type */ -YAZ_EXPORT -Z_DiagRecs *zget_DiagRecs(ODR o, int error, const char *addinfo); - -/** \brief Creates Diagnostic record - Z_DiagRecs type */ -YAZ_EXPORT -Z_DiagRec *zget_DiagRec(ODR o, int error, const char *addinfo); - -/** \brief get element set name from RecordComposition - \param comp record composition - \returns element set name or NULL if no element set name was given -*/ -YAZ_EXPORT -const char *yaz_get_esn(Z_RecordComposition *comp); - -/** \brief set element set name in RecordComposition struct - \param comp_p record composition ptr - \param esn element set name string - \param nmem memory for result composition -*/ -YAZ_EXPORT -void yaz_set_esn(Z_RecordComposition **comp_p, const char *esn, NMEM nmem); - - -YAZ_END_CDECL - -#include - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/prt-ext.h b/dependencies/yaz_3.0.14/include/yaz/prt-ext.h deleted file mode 100644 index 0c9e831..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/prt-ext.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: prt-ext.h,v 1.20 2007/05/08 08:22:35 adam Exp $ */ - -/** - * \file prt-ext.h - * \brief Header for utilities that handles Z39.50 EXTERNALs - */ - -/* - * Biased-choice External for Z39.50. - */ - -#ifndef PRT_EXT_H -#define PRT_EXT_H - -#include -#include - - -YAZ_BEGIN_CDECL - -/** - * Used to keep track of known External definitions (a loose approach - * to DEFINED_BY). - */ -typedef struct Z_ext_typeent -{ - Odr_oid oid[OID_SIZE]; /* the direct-reference OID */ - int what; /* discriminator value for the external CHOICE */ - Odr_fun fun; /* decoder function */ -} Z_ext_typeent; - -/** \brief structure for all known EXTERNALs */ -struct Z_External -{ - Odr_oid *direct_reference; - int *indirect_reference; - char *descriptor; - int which; -/* Generic types */ -#define Z_External_single 0 -#define Z_External_octet 1 -#define Z_External_arbitrary 2 -/* Specific types */ -#define Z_External_sutrs 3 -#define Z_External_explainRecord 4 -#define Z_External_resourceReport1 5 -#define Z_External_resourceReport2 6 -#define Z_External_promptObject1 7 -#define Z_External_grs1 8 -#define Z_External_extendedService 9 -#define Z_External_itemOrder 10 -#define Z_External_diag1 11 -#define Z_External_espec1 12 -#define Z_External_summary 13 -#define Z_External_OPAC 14 -#define Z_External_searchResult1 15 -#define Z_External_update 16 -#define Z_External_dateTime 17 -#define Z_External_universeReport 18 -#define Z_External_ESAdmin 19 -#define Z_External_update0 20 -#define Z_External_userInfo1 21 -#define Z_External_charSetandLanguageNegotiation 22 -#define Z_External_acfPrompt1 23 -#define Z_External_acfDes1 24 -#define Z_External_acfKrb1 25 -#define Z_External_multisrch2 26 -#define Z_External_CQL 27 -#define Z_External_OCLCUserInfo 28 - union - { - /* Generic types */ - Odr_any *single_ASN1_type; - Odr_oct *octet_aligned; - Odr_bitmask *arbitrary; - - /* Specific types */ - Z_SUTRS *sutrs; - Z_ExplainRecord *explainRecord; - - Z_ResourceReport1 *resourceReport1; - Z_ResourceReport2 *resourceReport2; - Z_PromptObject1 *promptObject1; - Z_GenericRecord *grs1; - Z_TaskPackage *extendedService; - - Z_ItemOrder *itemOrder; - Z_DiagnosticFormat *diag1; - Z_Espec1 *espec1; - Z_BriefBib *summary; - Z_OPACRecord *opac; - - Z_SearchInfoReport *searchResult1; - Z_IUUpdate *update; - Z_DateTime *dateTime; - Z_UniverseReport *universeReport; - Z_Admin *adminService; - - Z_IU0Update *update0; - Z_OtherInformation *userInfo1; - Z_CharSetandLanguageNegotiation *charNeg3; - Z_PromptObject1 *acfPrompt1; - Z_DES_RN_Object *acfDes1; - - Z_KRBObject *acfKrb1; - Z_MultipleSearchTerms_2 *multipleSearchTerms_2; - Z_InternationalString *cql; - Z_OCLC_UserInformation *oclc; - } u; -}; - - -/** \brief codec for BER EXTERNAL */ -YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name); -/** \brief returns type information for OID (NULL if not known) */ -YAZ_EXPORT Z_ext_typeent *z_ext_getentbyref(const Odr_oid *oid); -/** \brief encodes EXTERNAL record based on OID (NULL if not known) */ -YAZ_EXPORT Z_External *z_ext_record_oid(ODR o, const Odr_oid *oid, - const char *buf, int len); -/** \brief encodes EXTERNAL XML record */ -YAZ_EXPORT Z_External *z_ext_record_xml(ODR o, const char *buf, int len); - -/** \brief encodes EXTERNAL SUTRS record */ -YAZ_EXPORT Z_External *z_ext_record_sutrs(ODR o, const char *buf, int len); - -/** \brief encodes EXTERNAL USMARC/MARC21 record */ -YAZ_EXPORT Z_External *z_ext_record_usmarc(ODR o, const char *buf, int len); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/query-charset.h b/dependencies/yaz_3.0.14/include/yaz/query-charset.h deleted file mode 100644 index 0f9e2f0..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/query-charset.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: query-charset.h,v 1.2 2007/04/12 13:52:57 adam Exp $ */ -/** - * \file query-charset.h - * \brief Query to WRBUF (to strings) - */ - -#ifndef YAZ_QUERY_CHARSET_H -#define YAZ_QUERY_CHARSET_H - -#include -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT void yaz_query_charset_convert_apt(Z_AttributesPlusTerm *apt, - ODR o, yaz_iconv_t cd); - -YAZ_EXPORT void yaz_query_charset_convert_rpnquery(Z_RPNQuery *q, - ODR o, yaz_iconv_t cd); -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/querytowrbuf.h b/dependencies/yaz_3.0.14/include/yaz/querytowrbuf.h deleted file mode 100644 index a07459a..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/querytowrbuf.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: querytowrbuf.h,v 1.7 2007/05/08 08:22:35 adam Exp $ */ -/** - * \file querytowrbuf.h - * \brief Query to WRBUF (to strings) - */ - -#ifndef YAZ_QUERYTOWRBUF_H -#define YAZ_QUERYTOWRBUF_H - -#include -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT void yaz_query_to_wrbuf(WRBUF b, const Z_Query *q); -YAZ_EXPORT void yaz_scan_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt, - const Odr_oid *attribute_set); -YAZ_EXPORT void yaz_rpnquery_to_wrbuf(WRBUF b, const Z_RPNQuery *rpn); -YAZ_EXPORT void wrbuf_diags(WRBUF b, int num_diagnostics,Z_DiagRec **diags); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/readconf.h b/dependencies/yaz_3.0.14/include/yaz/readconf.h deleted file mode 100644 index 98d1862..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/readconf.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: readconf.h,v 1.7 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file readconf.h - * \brief Header for config file reading utilities - */ - -#ifndef READCONF_H -#define READCONF_H - -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT int readconf(char *name, void *rprivate, - int (*fun)(char *name, void *rprivate, - int argc, char *argv[])); - -YAZ_EXPORT int readconf_line(FILE *f, int *lineno, - char *line, int len, char *argv[], int num); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/record_conv.h b/dependencies/yaz_3.0.14/include/yaz/record_conv.h deleted file mode 100644 index 731c7eb..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/record_conv.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: record_conv.h,v 1.8 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file record_conv.h - * \brief Record Conversions Utility - */ - -#ifndef YAZ_RECORD_CONV_H -#define YAZ_RECORD_CONV_H - -#include -#include -#include -#include - -YAZ_BEGIN_CDECL - -/** record conversion handle */ -typedef struct yaz_record_conv_struct *yaz_record_conv_t; - -/** creates record handle - \return record handle -*/ -YAZ_EXPORT yaz_record_conv_t yaz_record_conv_create(void); - -/** destroys record handle - \param p record conversion handle -*/ -YAZ_EXPORT void yaz_record_conv_destroy(yaz_record_conv_t p); - -/** configures record conversion - \param p record conversion handle - \param node xmlNode pointer (root element of XML config) - \retval 0 success - \retval -1 failure - - On failure, use yaz_record_conv_get_error to get error string. - - \verbatim - - - - - \endverbatim - - \verbatim - - - - - - \endverbatim -*/ -YAZ_EXPORT -int yaz_record_conv_configure(yaz_record_conv_t p, const xmlNode *node); - -/** performs record conversion - \param p record conversion handle - \param input_record_buf input record buffer - \param input_record_len length of input record buffer - \param output_record resultint record (WRBUF string) - \retval 0 success - \retval -1 failure - - On failure, use yaz_record_conv_get_error to get error string. -*/ -YAZ_EXPORT -int yaz_record_conv_record(yaz_record_conv_t p, const char *input_record_buf, - size_t input_record_len, - WRBUF output_record); - -/** returns error string (for last error) - \param p record conversion handle - \return error string -*/ -YAZ_EXPORT -const char *yaz_record_conv_get_error(yaz_record_conv_t p); - - -/** set path for opening stylesheets etc. - \param p record conversion handle - \param path file path (UNIX style with : / Windows with ;) -*/ -YAZ_EXPORT -void yaz_record_conv_set_path(yaz_record_conv_t p, const char *path); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/retrieval.h b/dependencies/yaz_3.0.14/include/yaz/retrieval.h deleted file mode 100644 index ac8d651..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/retrieval.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: retrieval.h,v 1.10 2007/05/08 08:22:35 adam Exp $ */ - -/** - * \file retrieval.h - * \brief Retrieval Utility - */ - -#ifndef YAZ_RETRIEVAL_H -#define YAZ_RETRIEVAL_H - -#include -#include -#include -#include -#include - -YAZ_BEGIN_CDECL - -/** retrieval handle */ -typedef struct yaz_retrieval_struct *yaz_retrieval_t; - -/** creates retrieval handle - \return retrieval handle -*/ -YAZ_EXPORT yaz_retrieval_t yaz_retrieval_create(void); - -/** destroys retrieval handle - \param p retrieval handle -*/ -YAZ_EXPORT void yaz_retrieval_destroy(yaz_retrieval_t p); - -/** configures retrieval - \param p retrieval handle - \param node xmlNode pointer (root element of XML config) - \retval 0 success - \retval -1 failure - - On failure, use yaz_retrieval_get_error to get error string. - - For retrieval: - \verbatim - - - - - - - - - - - - - - - - \endverbatim -*/ -YAZ_EXPORT -int yaz_retrieval_configure(yaz_retrieval_t p, const xmlNode *node); - - -/** performs retrieval request based on schema and format - \param p retrieval handle - \param schema record schema (SRU) / element set name (Z39.50) - \param syntax record syntax (format) - \param match_schema matched schema (if conversion was successful) - \param match_syntax matced syntax OID if conversion was successful) - \param rc record conversion reference (if conversion was successful) - \param backend_schema backend scchema (if conversion was successful) - \param backend_syntax backend syntax (if conversion was successful) - \retval 0 success, schema and syntax matches - \retval -1 failure, use yaz_retrieval_get_error() for reason - \retval 1 schema does not match - \retval 2 syntax does not match - \retval 3 both match but not together -*/ -YAZ_EXPORT -int yaz_retrieval_request(yaz_retrieval_t p, - const char *schema, Odr_oid *syntax, - const char **match_schema, Odr_oid **match_syntax, - yaz_record_conv_t *rc, - const char **backend_schema, - Odr_oid **backend_syntax); - -/** returns error string (for last error) - \param p record conversion handle - \return error string -*/ -YAZ_EXPORT -const char *yaz_retrieval_get_error(yaz_retrieval_t p); - - -/** set path for opening stylesheets etc. - \param p record conversion handle - \param path file path (UNIX style with : / Windows with ;) -*/ -YAZ_EXPORT -void yaz_retrieval_set_path(yaz_retrieval_t p, const char *path); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/snprintf.h b/dependencies/yaz_3.0.14/include/yaz/snprintf.h deleted file mode 100644 index e9dbbed..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/snprintf.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: snprintf.h,v 1.1 2007/02/23 10:15:01 adam Exp $ */ - -/** - * \file snprintf.h - * \brief Header for config file reading utilities - */ - -#ifndef YAZ_SNPRINTF_H -#define YAZ_SNPRINTF_H - -#include -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT void yaz_snprintf(char *buf, size_t size, const char *fmt, ...); -YAZ_EXPORT void yaz_vsnprintf(char *buf, size_t size, const char *fmt, - va_list ap); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/soap.h b/dependencies/yaz_3.0.14/include/yaz/soap.h deleted file mode 100644 index 727a465..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/soap.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: soap.h,v 1.13 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file soap.h - * \brief Header for SOAP - */ - -#ifndef YAZ_SOAP_H -#define YAZ_SOAP_H - -#include - -YAZ_BEGIN_CDECL - -typedef struct { - char *fault_code; - char *fault_string; - char *details; -} Z_SOAP_Fault; - -typedef struct { - int no; - char *ns; - void *p; -} Z_SOAP_Generic; - -#define Z_SOAP_fault 1 -#define Z_SOAP_generic 2 -#define Z_SOAP_error 3 -typedef struct { - int which; - union { - Z_SOAP_Fault *fault; - Z_SOAP_Generic *generic; - Z_SOAP_Fault *soap_error; - } u; - const char *ns; -} Z_SOAP; - -typedef int (*Z_SOAP_fun)(ODR o, void * ptr, void **handler_data, - void *client_data, const char *ns); -typedef struct { - char *ns; - void *client_data; - Z_SOAP_fun f; -} Z_SOAP_Handler; - -YAZ_EXPORT int z_soap_codec(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers); -YAZ_EXPORT int z_soap_codec_enc(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers, - const char *encoding); -YAZ_EXPORT int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers, - const char *encoding, - const char *stylesheet); - -YAZ_EXPORT int z_soap_error(ODR o, Z_SOAP *p, - const char *fault_code, const char *fault_string, - const char *details); - -YAZ_END_CDECL -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/sortspec.h b/dependencies/yaz_3.0.14/include/yaz/sortspec.h deleted file mode 100644 index a8a5f8d..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/sortspec.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: sortspec.h,v 1.6 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file sortspec.h - * \brief Header for SortSpec parsing. - */ -#ifndef SORTSPEC_H -#define SORTSPEC_H - -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT Z_SortKeySpecList *yaz_sort_spec (ODR out, const char *arg); - -YAZ_END_CDECL - -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/srw.h b/dependencies/yaz_3.0.14/include/yaz/srw.h deleted file mode 100644 index efed46e..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/srw.h +++ /dev/null @@ -1,297 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: srw.h,v 1.36 2007/09/09 05:54:45 adam Exp $ */ - -/** - * \file srw.h - * \brief Header for SRW/SRU - */ - -#ifndef YAZ_SRW_H -#define YAZ_SRW_H - -#include -#include -#include -#include - -YAZ_BEGIN_CDECL - -typedef struct { - char *extraRecordData_buf; - int extraRecordData_len; - char *recordIdentifier; -} Z_SRW_extra_record; - -typedef struct { - char *recordSchema; - int recordPacking; -#define Z_SRW_recordPacking_string 0 -#define Z_SRW_recordPacking_XML 1 -#define Z_SRW_recordPacking_URL 2 - char *recordData_buf; - int recordData_len; - int *recordPosition; -} Z_SRW_record; - -typedef struct { - char *uri; - char *details; - char *message; -} Z_SRW_diagnostic; - -typedef struct { - -#define Z_SRW_query_type_cql 1 -#define Z_SRW_query_type_xcql 2 -#define Z_SRW_query_type_pqf 3 - int query_type; - union { - char *cql; - char *xcql; - char *pqf; - } query; - -#define Z_SRW_sort_type_none 1 -#define Z_SRW_sort_type_sort 2 -#define Z_SRW_sort_type_xSort 3 - int sort_type; - union { - char *none; - char *sortKeys; - char *xSortKeys; - } sort; - int *startRecord; - int *maximumRecords; - char *recordSchema; - char *recordPacking; - char *recordXPath; - char *database; - char *stylesheet; - int *resultSetTTL; -} Z_SRW_searchRetrieveRequest; - -typedef struct { - int * numberOfRecords; - char * resultSetId; - int * resultSetIdleTime; - - Z_SRW_record *records; - int num_records; - - Z_SRW_diagnostic *diagnostics; - int num_diagnostics; - int *nextRecordPosition; - - Z_SRW_extra_record **extra_records; /* of size num_records */ -} Z_SRW_searchRetrieveResponse; - -typedef struct { - char *recordPacking; - char *database; - char *stylesheet; -} Z_SRW_explainRequest; - -typedef struct { - Z_SRW_record record; - Z_SRW_diagnostic *diagnostics; - int num_diagnostics; - Z_SRW_extra_record *extra_record; -} Z_SRW_explainResponse; - -typedef struct { - int query_type; - union { - char *cql; - char *xcql; - char *pqf; - } scanClause; - int *responsePosition; - int *maximumTerms; - char *stylesheet; - char *database; -} Z_SRW_scanRequest; - -typedef struct { - char *value; - int *numberOfRecords; - char *displayTerm; - char *whereInList; -} Z_SRW_scanTerm; - -typedef struct { - Z_SRW_scanTerm *terms; - int num_terms; - Z_SRW_diagnostic *diagnostics; - int num_diagnostics; -} Z_SRW_scanResponse; - - -typedef struct { - char *versionType; - char *versionValue; -} Z_SRW_recordVersion; - -typedef struct { - char *database; - char *operation; - char *recordId; - Z_SRW_recordVersion *recordVersions; - int num_recordVersions; - Z_SRW_record *record; - Z_SRW_extra_record *extra_record; - char *extraRequestData_buf; - int extraRequestData_len; - char *stylesheet; -} Z_SRW_updateRequest; - -typedef struct { - char *operationStatus; - char *recordId; - Z_SRW_recordVersion *recordVersions; - int num_recordVersions; - Z_SRW_record *record; - Z_SRW_extra_record *extra_record; - char *extraResponseData_buf; - int extraResponseData_len; - Z_SRW_diagnostic *diagnostics; - int num_diagnostics; -} Z_SRW_updateResponse; - -#define Z_SRW_searchRetrieve_request 1 -#define Z_SRW_searchRetrieve_response 2 -#define Z_SRW_explain_request 3 -#define Z_SRW_explain_response 4 -#define Z_SRW_scan_request 5 -#define Z_SRW_scan_response 6 -#define Z_SRW_update_request 7 -#define Z_SRW_update_response 8 - -typedef struct { - int which; - union { - Z_SRW_searchRetrieveRequest *request; - Z_SRW_searchRetrieveResponse *response; - Z_SRW_explainRequest *explain_request; - Z_SRW_explainResponse *explain_response; - Z_SRW_scanRequest *scan_request; - Z_SRW_scanResponse *scan_response; - Z_SRW_updateRequest *update_request; - Z_SRW_updateResponse *update_response; - } u; - char *srw_version; - char *username; /* From HTTP header or request */ - char *password; /* From HTTP header or request */ - char *extra_args; /* For SRU GET/POST only */ -} Z_SRW_PDU; - -YAZ_EXPORT int yaz_srw_codec(ODR o, void * pptr, - Z_SRW_PDU **handler_data, - void *client_data, const char *ns); -YAZ_EXPORT int yaz_ucp_codec(ODR o, void * pptr, - Z_SRW_PDU **handler_data, - void *client_data, const char *ns); -YAZ_EXPORT Z_SRW_PDU *yaz_srw_get_core_v_1_1(ODR o); -YAZ_EXPORT Z_SRW_PDU *yaz_srw_get_pdu(ODR o, int which, const char *version); -YAZ_EXPORT Z_SRW_PDU *yaz_srw_get(ODR o, int which); -YAZ_EXPORT Z_SRW_recordVersion *yaz_srw_get_record_versions(ODR o, int num); -YAZ_EXPORT Z_SRW_extra_record *yaz_srw_get_extra_record(ODR o); -YAZ_EXPORT Z_SRW_record *yaz_srw_get_record(ODR o); -YAZ_EXPORT Z_SRW_record *yaz_srw_get_records(ODR o, int num); - -YAZ_EXPORT int yaz_diag_bib1_to_srw (int bib1_code); - -YAZ_EXPORT int yaz_diag_srw_to_bib1(int srw_code); - -YAZ_EXPORT const char *yaz_srw_pack_to_str(int pack); -YAZ_EXPORT int yaz_srw_str_to_pack(const char *str); - -YAZ_EXPORT char *yaz_uri_val(const char *path, const char *name, ODR o); -YAZ_EXPORT void yaz_uri_val_int(const char *path, const char *name, - ODR o, int **intp); -YAZ_EXPORT int yaz_srw_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu, - Z_SOAP **soap_package, ODR decode, char **charset); -YAZ_EXPORT int yaz_sru_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu, - Z_SOAP **soap_package, ODR decode, - char **charset, - Z_SRW_diagnostic **, int *num_diagnostic); - -YAZ_EXPORT void yaz_add_srw_diagnostic(ODR o, Z_SRW_diagnostic **d, - int *num, int code, - const char *addinfo); - -YAZ_EXPORT void yaz_add_sru_update_diagnostic(ODR o, Z_SRW_diagnostic **d, - int *num, int code, - const char *addinfo); - -YAZ_EXPORT void yaz_mk_std_diagnostic(ODR o, Z_SRW_diagnostic *d, - int code, const char *details); - -YAZ_EXPORT void yaz_add_srw_diagnostic_uri(ODR o, Z_SRW_diagnostic **d, - int *num, const char *uri, - const char *message, - const char *details); - -YAZ_EXPORT void yaz_mk_srw_diagnostic(ODR o, Z_SRW_diagnostic *d, - const char *uri, const char *message, - const char *details); - -YAZ_EXPORT int yaz_sru_get_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, - ODR encode, const char *charset); -YAZ_EXPORT int yaz_sru_post_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, - ODR encode, const char *charset); -YAZ_EXPORT int yaz_sru_soap_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, - ODR odr, const char *charset); - -YAZ_EXPORT char *yaz_negotiate_sru_version(char *input_ver); - -#define YAZ_XMLNS_SRU_v1_0 "http://www.loc.gov/zing/srw/v1.0/" -#define YAZ_XMLNS_SRU_v1_1 "http://www.loc.gov/zing/srw/" -#define YAZ_XMLNS_DIAG_v1_1 "http://www.loc.gov/zing/srw/diagnostic/" -#define YAZ_XMLNS_UPDATE_v0_9 "http://www.loc.gov/zing/srw/update/" - -YAZ_EXPORT -int yaz_srw_check_content_type(Z_HTTP_Response *hres); - -YAZ_EXPORT -int sru_decode_surrogate_diagnostics(const char *buf, size_t len, - Z_SRW_diagnostic **diag, - int *num, ODR odr); - - - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/statserv.h b/dependencies/yaz_3.0.14/include/yaz/statserv.h deleted file mode 100644 index c763463..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/statserv.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: statserv.h,v 1.11 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file statserv.h - * \brief Header for GFS (Obsolete. Use yaz/backend.h) - */ - -#ifndef STATSERVER_H -#define STATSERVER_H - -#include -#include - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/tcpip.h b/dependencies/yaz_3.0.14/include/yaz/tcpip.h deleted file mode 100644 index b5f639d..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/tcpip.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: tcpip.h,v 1.12 2007/04/12 13:52:57 adam Exp $ */ - -/** - * \file tcpip.h - * \brief Header for TCP/IP + SSL COMSTACK. - */ - -#ifndef TCPIP_H -#define TCPIP_H - -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT int completeWAIS(const unsigned char *buf, int len); -YAZ_EXPORT COMSTACK tcpip_type(int s, int flags, int protocol, void *vp); -YAZ_EXPORT COMSTACK ssl_type(int s, int flags, int protocol, void *vp); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/test.h b/dependencies/yaz_3.0.14/include/yaz/test.h deleted file mode 100644 index 8cfe640..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/test.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: test.h,v 1.13 2007/01/03 08:42:14 adam Exp $ */ - -/** \file test.h - \brief Unit Test for YAZ -*/ - -#ifndef YAZ_TEST_H -#define YAZ_TEST_H - -#include -#include - -/** \brief Get the verbosity level */ -int yaz_test_get_verbosity(void); - -/** \brief Test OK */ -#define YAZ_TEST_TYPE_OK 1 -/** \brief Test failed */ -#define YAZ_TEST_TYPE_FAIL 2 - -/** \brief boolean test. as only evaluated once */ -#define YAZ_CHECK(as) { \ - if (as) { \ - yaz_check_print1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, #as); \ - } else { \ - yaz_check_print1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, #as); \ - } \ -} - -/** \brief a test we know will fail at this time. - * - * Later, when the bug is fixed, this test will suddenly pass, - * which will be reported as an error, to remind you to go and fix - * your tests. - */ - -#define YAZ_CHECK_TODO(as) { \ - yaz_check_inc_todo(); \ - if (!as) { \ - yaz_check_print1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, "TODO: " #as); \ - } else { \ - yaz_check_print1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, "TODO: "#as); \ - } \ -} - -/** \brief equality test. left, right only evaluated once */ -#define YAZ_CHECK_EQ(left, right) { \ - int lval = left; \ - int rval = right; \ - if (lval == rval) { \ - yaz_check_eq1(YAZ_TEST_TYPE_OK, __FILE__, __LINE__, \ - #left, #right, lval, rval); \ - } else { \ - yaz_check_eq1(YAZ_TEST_TYPE_FAIL, __FILE__, __LINE__, \ - #left, #right, lval, rval); \ - } \ -} - -/** \brief Macro to initialize the system (in start of main typically) */ -#define YAZ_CHECK_INIT(argc, argv) yaz_check_init1(&argc, &argv) -/** \brief Macro to terminate the system (end of main, normally) */ -#define YAZ_CHECK_TERM yaz_check_term1(); return 0 - -/** \brief Macro to enable and initialize the yaz_log(start of main) */ -#define YAZ_CHECK_LOG() yaz_check_init_log(argv[0]) - -YAZ_BEGIN_CDECL - -/** \brief used by macro. Should not be called directly */ -YAZ_EXPORT void yaz_check_init1(int *argc, char ***argv); - -/** \brief used by macro. Should not be called directly */ -YAZ_EXPORT void yaz_check_term1(void); - -/** \brief used by macro. Should not be called directly */ -YAZ_EXPORT void yaz_check_init_log(const char *argv0); - -/** \brief used by macro. Should not be called directly */ -YAZ_EXPORT void yaz_check_print1(int type, const char *file, int line, - const char *expr); -/** \brief used by macro. Should not be called directly */ -YAZ_EXPORT void yaz_check_eq1(int type, const char *file, int line, - const char *left, const char *right, - int lval, int rval); -/** \brief used by macro. Should not be called directly */ -YAZ_EXPORT void yaz_check_inc_todo(void); -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/timing.h b/dependencies/yaz_3.0.14/include/yaz/timing.h deleted file mode 100644 index 204d7a0..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/timing.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: timing.h,v 1.1 2007/01/03 13:46:17 adam Exp $ */ - -/** - * \file timing.h - * \brief Timing Utilities - */ - -#ifndef YAZ_TIMING_H -#define YAZ_TIMING_H - -#include - -YAZ_BEGIN_CDECL - -typedef struct yaz_timing *yaz_timing_t; - -YAZ_EXPORT -yaz_timing_t yaz_timing_create(void); -YAZ_EXPORT -void yaz_timing_start(yaz_timing_t t); -YAZ_EXPORT -void yaz_timing_stop(yaz_timing_t t); -YAZ_EXPORT -double yaz_timing_get_real(yaz_timing_t t); -YAZ_EXPORT -double yaz_timing_get_user(yaz_timing_t t); -YAZ_EXPORT -double yaz_timing_get_sys(yaz_timing_t t); -YAZ_EXPORT -void yaz_timing_destroy(yaz_timing_t *tp); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/tokenizer.h b/dependencies/yaz_3.0.14/include/yaz/tokenizer.h deleted file mode 100644 index ba062a6..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/tokenizer.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: tokenizer.h,v 1.2 2007/04/27 10:09:44 adam Exp $ */ - -/** \file tokenizer.h - \brief Header with public definitions about YAZ' tokenizer -*/ - -#ifndef YAZ_TOKENIZER -#define YAZ_TOKENIZER -#include - -YAZ_BEGIN_CDECL - -#define YAZ_TOK_EOF 0 -#define YAZ_TOK_ERROR (-1) -#define YAZ_TOK_STRING (-2) -#define YAZ_TOK_QSTRING (-3) - -typedef struct yaz_tok_cfg *yaz_tok_cfg_t; -typedef struct yaz_tok_parse *yaz_tok_parse_t; - -typedef int (*yaz_tok_get_byte_t)(void **vp); - -YAZ_EXPORT -yaz_tok_cfg_t yaz_tok_cfg_create(void); - -YAZ_EXPORT -void yaz_tok_cfg_destroy(yaz_tok_cfg_t t); - -YAZ_EXPORT -void yaz_tok_cfg_single_tokens(yaz_tok_cfg_t t, const char *simple); - -YAZ_EXPORT -yaz_tok_parse_t yaz_tok_parse_buf(yaz_tok_cfg_t t, const char *buf); - -YAZ_EXPORT -yaz_tok_parse_t yaz_tok_parse_create(yaz_tok_cfg_t t, yaz_tok_get_byte_t h, - void *vp); - -YAZ_EXPORT -void yaz_tok_parse_destroy(yaz_tok_parse_t tp); - -YAZ_EXPORT -int yaz_tok_move(yaz_tok_parse_t tp); - -YAZ_EXPORT -const char *yaz_tok_parse_string(yaz_tok_parse_t tp); - -YAZ_END_CDECL - -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/tpath.h b/dependencies/yaz_3.0.14/include/yaz/tpath.h deleted file mode 100644 index 95443cb..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/tpath.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: tpath.h,v 1.14 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file tpath.h - * \brief File Path utilities - */ - -#ifndef TPATH_H -#define TPATH_H - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief checks whether path is absolute - \param path path to checked - \retval 1 path is absolute - \retval 0 path is relative -*/ -YAZ_EXPORT int yaz_is_abspath (const char *path); - -/** \brief get next path component in filepath - \param path_p pointer to path (updated to "next" entry if any) - \param comp upon pointer to component (if component is found) - \retval 0 no component found (and no more componennts) - \retval >0 length of component (length of *comp) - - A filepath has components separted by colon. For example - /usr/lib/modules:c:/my:/:lib - which has these components - "/usr/lib/modules", "c:/my", "/", "lib" -*/ -YAZ_EXPORT size_t yaz_filepath_comp(const char **path_p, const char **comp); - - -/** \brief resolve file on path - \param fname "short" filename (without path) - \param path the path (dir1:dir2,..) - ala Unix - \param base can be added to relative paths (NULL for no append) - \param fullpath the full path to filename (if succesful) - - Returns 0/NULL if no fname could be found in path; - pointer to fullpath if fname could be found. - We assume fullpath is 1024 bytes in length! -*/ -YAZ_EXPORT char *yaz_filepath_resolve(const char *fname, const char *path, - const char *base, char *fullpath); - - -/** \brief opens first file in path in path - \param fname "short" filename (without path) - \param mode mode as in fopen(3) - \param path the path (dir1:dir2,..) - ala Unix - \param base can be added to relative paths (NULL for no append) - - Returns 0/NULL if no fname could be found in path; - FILE pointer if fname could be found. -*/ -YAZ_EXPORT FILE *yaz_fopen(const char *path, const char *fname, - const char *mode, const char *base); - -/** \brief opens first file in path in path - \param fname "short" filename (without path) - \param mode mode as in fopen(3) - \param path the path (dir1:dir2,..) - ala Unix - - Returns 0/NULL if no fname could be found in path; - FILE pointer if fname could be found. -*/ -YAZ_EXPORT FILE *yaz_path_fopen(const char *path, const char *fname, - const char *mode); - -/** \brief closes file - \param f FILE handle - - \retval -1 on failure - \retval 0 on success -*/ -YAZ_EXPORT int yaz_fclose(FILE *f); - - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/unix.h b/dependencies/yaz_3.0.14/include/yaz/unix.h deleted file mode 100644 index 18abae7..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/unix.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: unix.h,v 1.9 2007/04/12 13:52:57 adam Exp $ */ - -/** - * \file unix.h - * \brief Header for UNIX domain socket COMSTACK - */ - -#ifndef UNIX_H -#define UNIX_H - -#ifndef WIN32 - -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT int completeWAIS(const unsigned char *buf, int len); -YAZ_EXPORT struct sockaddr_un *unix_strtoaddr(const char *str); -YAZ_EXPORT COMSTACK unix_type(int s, int flags, int protocol, void *vp); - -YAZ_END_CDECL - -#endif - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/wrbuf.h b/dependencies/yaz_3.0.14/include/yaz/wrbuf.h deleted file mode 100644 index 421b0d5..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/wrbuf.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: wrbuf.h,v 1.27 2007/09/17 19:14:26 adam Exp $ */ - -/** - * \file wrbuf.h - * \brief Header for WRBUF (growing buffer) - */ - -#ifndef WRBUF_H -#define WRBUF_H - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief string buffer */ -typedef struct wrbuf -{ - char *buf; - size_t pos; - size_t size; -} wrbuf, *WRBUF; - -/** \brief allocate / construct WRBUF */ -YAZ_EXPORT WRBUF wrbuf_alloc(void); - -/** \brief destroy WRBUF and its buffer */ -YAZ_EXPORT void wrbuf_destroy(WRBUF b); - -/** \brief empty WRBUF content */ -YAZ_EXPORT void wrbuf_rewind(WRBUF b); - -/** \brief grow WRBUF larger */ -YAZ_EXPORT int wrbuf_grow(WRBUF b, int minsize); -YAZ_EXPORT int wrbuf_write(WRBUF b, const char *buf, int size); -YAZ_EXPORT int wrbuf_xmlputs_n(WRBUF b, const char *cp, int size); -YAZ_EXPORT int wrbuf_puts(WRBUF b, const char *buf); -YAZ_EXPORT int wrbuf_puts_replace_char(WRBUF b, const char *buf, - const char from, const char to); -YAZ_EXPORT int wrbuf_xmlputs(WRBUF b, const char *cp); -YAZ_EXPORT void wrbuf_printf(WRBUF b, const char *fmt, ...) -#ifdef __GNUC__ - __attribute__ ((format (printf, 2, 3))) -#endif - ; - -YAZ_EXPORT int wrbuf_iconv_write(WRBUF b, yaz_iconv_t cd, const char *buf, - int size); -YAZ_EXPORT int wrbuf_iconv_write_cdata(WRBUF b, yaz_iconv_t cd, - const char *buf, int size); -YAZ_EXPORT int wrbuf_iconv_puts(WRBUF b, yaz_iconv_t cd, const char *strz); - -YAZ_EXPORT int wrbuf_iconv_putchar(WRBUF b, yaz_iconv_t cd, int ch); - -YAZ_EXPORT void wrbuf_iconv_reset(WRBUF b, yaz_iconv_t cd); - -YAZ_EXPORT void wrbuf_chop_right(WRBUF b); - -/** \brief cut size of WRBUF */ -YAZ_EXPORT void wrbuf_cut_right(WRBUF b, size_t no_to_remove); - -#define wrbuf_len(b) ((b)->pos) -#define wrbuf_buf(b) ((b)->buf) - -YAZ_EXPORT const char *wrbuf_cstr(WRBUF b); - -#define wrbuf_putc(b, c) \ - (((b)->pos >= (b)->size ? wrbuf_grow(b, 1) : 0), \ - (b)->buf[(b)->pos++] = (c), 0) - -/** \brief put readable string in WRBUF from raw input */ -YAZ_EXPORT void wrbuf_verbose_str(WRBUF b, const char *str, size_t len); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/xmalloc.h b/dependencies/yaz_3.0.14/include/yaz/xmalloc.h deleted file mode 100644 index 455405c..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/xmalloc.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: xmalloc.h,v 1.9 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file xmalloc.h - * \brief Header for malloc interface. - */ - -#ifndef XMALLOC_H -#define XMALLOC_H - -#include - -#include - -YAZ_BEGIN_CDECL - -#define xrealloc(o, x) xrealloc_f(o, x, __FILE__, __LINE__) -#define xmalloc(x) xmalloc_f(x, __FILE__, __LINE__) -#define xcalloc(x,y) xcalloc_f(x,y, __FILE__, __LINE__) -#define xfree(x) xfree_f(x, __FILE__, __LINE__) -#define xstrdup(s) xstrdup_f(s, __FILE__, __LINE__) -#define xmalloc_trav(s) xmalloc_trav_f(s, __FILE__, __LINE__) - -YAZ_EXPORT void *xrealloc_f (void *o, size_t size, const char *file, int line); -YAZ_EXPORT void *xmalloc_f (size_t size, const char *file, int line); -YAZ_EXPORT void *xcalloc_f (size_t nmemb, size_t size, - const char *file, int line); -YAZ_EXPORT char *xstrdup_f (const char *p, const char *file, int line); -YAZ_EXPORT void xfree_f (void *p, const char *file, int line); -YAZ_EXPORT void xmalloc_trav_f(const char *s, const char *file, int line); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/xmlquery.h b/dependencies/yaz_3.0.14/include/yaz/xmlquery.h deleted file mode 100644 index 34e95a3..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/xmlquery.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: xmlquery.h,v 1.10 2007/05/06 20:12:20 adam Exp $ */ - -/** \file xmlquery.h - \brief Query / XML conversions -*/ - -#ifndef YAZ_XMLQUERY_H -#define YAZ_XMLQUERY_H - -#include -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT void yaz_query2xml(const Z_Query *q, xmlDocPtr *docp); -YAZ_EXPORT void yaz_rpnquery2xml(const Z_RPNQuery *rpn, xmlDocPtr *docp); - -YAZ_EXPORT void yaz_xml2query(const xmlNode *xmlnodep, Z_Query **query, - ODR odr, int *error_code, const char **addinfo); - -YAZ_END_CDECL - -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/xmltypes.h b/dependencies/yaz_3.0.14/include/yaz/xmltypes.h deleted file mode 100644 index 545574a..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/xmltypes.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: xmltypes.h,v 1.2 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file xmltypes.h - * \brief Define fundamental Libxml2 types for functions YAZ provide. - * \details If Libxml2 is not installed, we define dummy types instead. - */ -#ifndef YAZ_XMLTYPES_H -#define YAZ_XMLTYPES_H - -#if YAZ_HAVE_XML2 -#include -#endif - -YAZ_BEGIN_CDECL - -#if YAZ_HAVE_XML2 -#else -typedef void xmlNode; -typedef void *xmlDocPtr; -#endif - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/yaz-ccl.h b/dependencies/yaz_3.0.14/include/yaz/yaz-ccl.h deleted file mode 100644 index 3894b57..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/yaz-ccl.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: yaz-ccl.h,v 1.11 2007/01/03 08:42:14 adam Exp $ */ - -/** - * \file yaz-ccl.h - * \brief Header for CCL node tree to RPN converson utilities. - */ - -#ifndef YAZ_CCL_H -#define YAZ_CCL_H - -#include -#include -#include -#include - -YAZ_BEGIN_CDECL - -YAZ_EXPORT Z_RPNQuery *ccl_rpn_query (ODR o, struct ccl_rpn_node *p); -YAZ_EXPORT Z_AttributesPlusTerm *ccl_scan_query (ODR o, struct ccl_rpn_node *p); -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/yaz-iconv.h b/dependencies/yaz_3.0.14/include/yaz/yaz-iconv.h deleted file mode 100644 index 1996094..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/yaz-iconv.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: yaz-iconv.h,v 1.15 2007/05/23 12:58:59 adam Exp $ */ - -/** - * \file yaz-iconv.h - * \brief Header for YAZ iconv interface - */ - -#ifndef YAZ_ICONV_H -#define YAZ_ICONV_H - -#include -#include - -YAZ_BEGIN_CDECL - -/** \brief yaz_iconv handle (similar to iconv_t) */ -typedef struct yaz_iconv_struct *yaz_iconv_t; - -/** \brief error code: unknown */ -#define YAZ_ICONV_UNKNOWN 1 -/** \brief error code: Not sufficient room for output buffer */ -#define YAZ_ICONV_E2BIG 2 -/** \brief error code: Invalid sequence */ -#define YAZ_ICONV_EILSEQ 3 -/** \brief error code: An incomplete multibyte sequence is in input buffer */ -#define YAZ_ICONV_EINVAL 4 - -/** \brief just like iconv_open(3) */ -YAZ_EXPORT yaz_iconv_t yaz_iconv_open (const char *tocode, - const char *fromcode); -/** \brief just like iconv(3) */ -YAZ_EXPORT size_t yaz_iconv (yaz_iconv_t cd, char **inbuf, size_t *inbytesleft, - char **outbuf, size_t *outbytesleft); -/** \brief returns last error - like errno for iconv(3) */ -YAZ_EXPORT int yaz_iconv_error (yaz_iconv_t cd); - -/** \brief just like iconv_close(3) */ -YAZ_EXPORT int yaz_iconv_close (yaz_iconv_t cd); - -/** \brief tests whether conversion is handled by YAZ' iconv or system iconv */ -YAZ_EXPORT int yaz_iconv_isbuiltin(yaz_iconv_t cd); - -/** \brief match strings - independent of case and '-' - \param s1 first string - \param s2 second string (May include wildcard ? and .) - \retval 0 strings are similar - \retval !=0 strings are different -*/ -YAZ_EXPORT int yaz_matchstr(const char *s1, const char *s2); - -YAZ_EXPORT int yaz_strcmp_del(const char *a, const char *b, const char *b_del); - -/** \brief decodes UTF-8 sequence - \param inp input buffer with UTF-8 bytes - \param inbytesleft length of input buffer - \param no_read holds number of bytes read if conversion is successful - \param error pointer to error code if error occurs - \retval 0 if error - \retval >0 if conversion is successful -*/ -YAZ_EXPORT unsigned long yaz_read_UTF8_char(unsigned char *inp, - size_t inbytesleft, - size_t *no_read, - int *error); - -/** \brief encodes UTF-8 sequence - \param x the UNICODE value - \param outbuf output buffer pointer, updated if conversion is successful - \param outbytesleft length of buffer, updated if conversino is successful - \param error pointer to error code if error occurs - \retval 0 if successful - \retval -1 for error -*/ -YAZ_EXPORT size_t yaz_write_UTF8_char(unsigned long x, - char **outbuf, size_t *outbytesleft, - int *error); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/yaz-util.h b/dependencies/yaz_3.0.14/include/yaz/yaz-util.h deleted file mode 100644 index 37ffb9e..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/yaz-util.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: yaz-util.h,v 1.19 2007/01/12 21:41:53 adam Exp $ */ - -/** - * \file yaz-util.h - * \brief Header for common YAZ utilities - */ - -#ifndef YAZ_UTIL_H -#define YAZ_UTIL_H - -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include - -/** \mainpage YAZ - \section intro_sec Introduction - - For a general introduction to YAZ, read the - YAZ User's Guide and Reference at - http://www.indexdata.com/yaz/doc/ - This is also located in the doc directory of the YAZ distribution. - - The following sections is just a summary of the most important - header files and where they belong. - - \section utilities Utilies - Logging (syslog-like) utility \ref log.h . - - Memory management for small blocks \ref nmem.h . - - Write string buffer \ref wrbuf.h . - - Options handling \ref options.h . - - Character conversion \ref yaz-iconv.h . - - MARC / MARCXML \ref marcdisp.h . - - Testing framework: \ref test.h . - - Record conversion: \ref record_conv.h . - - Record retrieval: \ref retrieval.h . - - \section queryparsers Query parsers - - PQF parsing: \ref pquery.h . - - CCL parsing: \ref ccl.h . - - CQL parsing and conversion: \ref cql.h . - - Z39.50 sort: \ref sortspec.h . - - \section ber BER handling - - BER utilities (ODR): \ref odr.h . - - \section z3950 Z39.50 - - Z39.50 common header: \ref proto.h . - - Z39.50 core codecs: \ref z-core.h. - - Z39.50 related formats: - \ref z-accdes1.h , \ref z-core.h , - \ref z-estask.h , \ref z-oclcui.h , \ref z-sum.h - \ref z-accform1.h , \ref z-date.h , - \ref z-exp.h , \ref z-opac.h , \ref z-sutrs.h - \ref z-acckrb1.h , \ref z-diag1.h , - \ref z-grs.h , \ref z-rrf1.h , \ref z-uifr1.h - \ref z-charneg.h , \ref z-espec1.h - \ref z-mterm2.h , \ref z-rrf2.h , \ref z-univ.h . - - Z39.50 extended services: - \ref zes-admin.h , \ref zes-exps.h , \ref zes-pquery.h , - \ref zes-pset.h , \ref zes-update.h , - \ref zes-expi.h , \ref zes-order.h , \ref zes-psched.h , - \ref zes-update0.h . - - Z39.50 diagnostics: \ref diagbib1.h . - - Z39.50 externals: \ref prt-ext.h . - - \section GDU Generic Data Unit (HTTP and BER) - - Definitions for GDU and HTTP: \ref zgdu.h . - - \section SRU SRU - - SRU/SRW definitions: \ref srw.h . - - SRW diagnostics: \ref diagsrw.h . - - \section ILL ILL - - Common header: \ref ill.h . - - Codecs: \ref ill-core.h - - \section ZOOM ZOOM - - Common header: \ref zoom.h . - - \section GFS Generic Frontend Server (GFS) - - Header: \ref backend.h . - -*/ -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/yaz-version.h b/dependencies/yaz_3.0.14/include/yaz/yaz-version.h deleted file mode 100644 index 723180b..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/yaz-version.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: yaz-version.h,v 1.134 2007/09/21 09:24:18 adam Exp $ */ -/** - * \file yaz-version.h - * \brief Defines YAZ version. - */ -#ifndef YAZ_VERSION - -#include - -#define YAZ_VERSION "3.0.14" -#define YAZ_VERSIONL 0x03000E - -#define YAZ_DATE 1 - -#ifdef WIN32 -#ifdef NDEBUG -#define YAZ_OS "WIN32 Release" -#else -#define YAZ_OS "WIN32 Debug" -#endif -#endif - -YAZ_BEGIN_CDECL - -YAZ_EXPORT unsigned long yaz_version(char *version_str, char *sys_str); - -YAZ_END_CDECL - -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/yconfig.h b/dependencies/yaz_3.0.14/include/yaz/yconfig.h deleted file mode 100644 index 5faf57a..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/yconfig.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: yconfig.h,v 1.12 2007/04/24 12:54:42 adam Exp $ */ - -/** - * \file yconfig.h - * \brief Header with fundamental macros - */ - -#ifndef YCONFIG_H -#define YCONFIG_H - -#ifndef YAZ_EXPORT -# ifdef WIN32 -# define YAZ_EXPORT __declspec(dllexport) -# define YAZ_IMPORT __declspec(dllimport) -# else -# define YAZ_EXPORT -# define YAZ_IMPORT -# endif -#endif - -#ifndef WIN32 -# ifndef O_BINARY -# define O_BINARY 0 -# endif -#endif - -#ifdef __cplusplus -#define YAZ_BEGIN_CDECL extern "C" { -#define YAZ_END_CDECL } -#else -#define YAZ_BEGIN_CDECL -#define YAZ_END_CDECL -#endif - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/z-accdes1.h b/dependencies/yaz_3.0.14/include/yaz/z-accdes1.h deleted file mode 100644 index 8e0bf0d..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-accdes1.h +++ /dev/null @@ -1,45 +0,0 @@ -/** \file z-accdes1.h - \brief ASN.1 Module AccessControlFormat-des-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_accdes1_H -#define z_accdes1_H - -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_DES_RN_Object Z_DES_RN_Object; -YAZ_EXPORT int z_DES_RN_Object (ODR o, Z_DES_RN_Object **p, int opt, const char *name); - -typedef struct Z_DRNType Z_DRNType; -YAZ_EXPORT int z_DRNType (ODR o, Z_DRNType **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_DES_RN_Object { - int which; - union { - Z_DRNType *challenge; - Z_DRNType *response; -#define Z_DES_RN_Object_challenge 1 -#define Z_DES_RN_Object_response 2 - } u; -}; - -struct Z_DRNType { - Odr_oct *userId; /* OPT */ - Odr_oct *salt; /* OPT */ - Odr_oct *randomNumber; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-accform1.h b/dependencies/yaz_3.0.14/include/yaz/z-accform1.h deleted file mode 100644 index 25eca98..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-accform1.h +++ /dev/null @@ -1,137 +0,0 @@ -/** \file z-accform1.h - \brief ASN.1 Module AccessControlFormat-prompt-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_accform1_H -#define z_accform1_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_PromptObject1 Z_PromptObject1; -YAZ_EXPORT int z_PromptObject1 (ODR o, Z_PromptObject1 **p, int opt, const char *name); - -typedef struct Z_ChallengeUnit1 Z_ChallengeUnit1; -YAZ_EXPORT int z_ChallengeUnit1 (ODR o, Z_ChallengeUnit1 **p, int opt, const char *name); - -typedef struct Z_Challenge1 Z_Challenge1; -YAZ_EXPORT int z_Challenge1 (ODR o, Z_Challenge1 **p, int opt, const char *name); - -typedef struct Z_ResponseUnit1 Z_ResponseUnit1; -YAZ_EXPORT int z_ResponseUnit1 (ODR o, Z_ResponseUnit1 **p, int opt, const char *name); - -typedef struct Z_Response1 Z_Response1; -YAZ_EXPORT int z_Response1 (ODR o, Z_Response1 **p, int opt, const char *name); - -typedef struct Z_PromptIdEnumeratedPrompt Z_PromptIdEnumeratedPrompt; -YAZ_EXPORT int z_PromptIdEnumeratedPrompt (ODR o, Z_PromptIdEnumeratedPrompt **p, int opt, const char *name); - -typedef struct Z_PromptId Z_PromptId; -YAZ_EXPORT int z_PromptId (ODR o, Z_PromptId **p, int opt, const char *name); - -typedef struct Z_Encryption Z_Encryption; -YAZ_EXPORT int z_Encryption (ODR o, Z_Encryption **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_PromptObject1 { - int which; - union { - Z_Challenge1 *challenge; - Z_Response1 *response; -#define Z_PromptObject1_challenge 1 -#define Z_PromptObject1_response 2 - } u; -}; - -struct Z_ChallengeUnit1 { - Z_PromptId *promptId; - Z_InternationalString *defaultResponse; /* OPT */ - int which; - union { - Z_InternationalString *character; - Z_Encryption *encrypted; -#define Z_ChallengeUnit1_character 1 -#define Z_ChallengeUnit1_encrypted 2 - } u; /* OPT */ - Z_InternationalString *regExpr; /* OPT */ - Odr_null *responseRequired; /* OPT */ - int num_allowedValues; - Z_InternationalString **allowedValues; /* OPT */ - Odr_null *shouldSave; /* OPT */ -#define Z_ChallengeUnit1_integer 1 -#define Z_ChallengeUnit1_date 2 -#define Z_ChallengeUnit1_float 3 -#define Z_ChallengeUnit1_alphaNumeric 4 -#define Z_ChallengeUnit1_url_urn 5 -#define Z_ChallengeUnit1_boolean 6 - int *dataType; /* OPT */ - Z_External *diagnostic; /* OPT */ -}; - -struct Z_Challenge1 { - int num; - Z_ChallengeUnit1 **elements; -}; - -struct Z_ResponseUnit1 { - Z_PromptId *promptId; - int which; - union { - Z_InternationalString *string; - bool_t *accept; - Odr_null *acknowledge; - Z_DiagRec *diagnostic; - Z_Encryption *encrypted; -#define Z_ResponseUnit1_string 1 -#define Z_ResponseUnit1_accept 2 -#define Z_ResponseUnit1_acknowledge 3 -#define Z_ResponseUnit1_diagnostic 4 -#define Z_ResponseUnit1_encrypted 5 - } u; -}; - -struct Z_Response1 { - int num; - Z_ResponseUnit1 **elements; -}; - -struct Z_PromptIdEnumeratedPrompt { -#define Z_PromptIdEnumeratedPrompt_groupId 0 -#define Z_PromptIdEnumeratedPrompt_userId 1 -#define Z_PromptIdEnumeratedPrompt_password 2 -#define Z_PromptIdEnumeratedPrompt_newPassword 3 -#define Z_PromptIdEnumeratedPrompt_copyright 4 -#define Z_PromptIdEnumeratedPrompt_sessionId 5 - int *type; - Z_InternationalString *suggestedString; /* OPT */ -}; - -struct Z_PromptId { - int which; - union { - Z_PromptIdEnumeratedPrompt *enumeratedPrompt; - Z_InternationalString *nonEnumeratedPrompt; -#define Z_PromptId_enumeratedPrompt 1 -#define Z_PromptId_nonEnumeratedPrompt 2 - } u; -}; - -struct Z_Encryption { - Odr_oct *cryptType; /* OPT */ - Odr_oct *credential; /* OPT */ - Odr_oct *data; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-acckrb1.h b/dependencies/yaz_3.0.14/include/yaz/z-acckrb1.h deleted file mode 100644 index ef9f351..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-acckrb1.h +++ /dev/null @@ -1,54 +0,0 @@ -/** \file z-acckrb1.h - \brief ASN.1 Module AccessControlFormat-krb-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_acckrb1_H -#define z_acckrb1_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_KRBObject Z_KRBObject; -YAZ_EXPORT int z_KRBObject (ODR o, Z_KRBObject **p, int opt, const char *name); - -typedef struct Z_KRBRequest Z_KRBRequest; -YAZ_EXPORT int z_KRBRequest (ODR o, Z_KRBRequest **p, int opt, const char *name); - -typedef struct Z_KRBResponse Z_KRBResponse; -YAZ_EXPORT int z_KRBResponse (ODR o, Z_KRBResponse **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_KRBObject { - int which; - union { - Z_KRBRequest *challenge; - Z_KRBResponse *response; -#define Z_KRBObject_challenge 1 -#define Z_KRBObject_response 2 - } u; -}; - -struct Z_KRBRequest { - Z_InternationalString *service; - Z_InternationalString *instance; /* OPT */ - Z_InternationalString *realm; /* OPT */ -}; - -struct Z_KRBResponse { - Z_InternationalString *userid; /* OPT */ - Odr_oct *ticket; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-charneg.h b/dependencies/yaz_3.0.14/include/yaz/z-charneg.h deleted file mode 100644 index fd66380..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-charneg.h +++ /dev/null @@ -1,189 +0,0 @@ -/** \file z-charneg.h - \brief ASN.1 Module NegotiationRecordDefinition-charSetandLanguageNegotiation-3 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_charneg_H -#define z_charneg_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_CharSetandLanguageNegotiation Z_CharSetandLanguageNegotiation; -YAZ_EXPORT int z_CharSetandLanguageNegotiation (ODR o, Z_CharSetandLanguageNegotiation **p, int opt, const char *name); - -typedef struct Z_OriginProposal_0 Z_OriginProposal_0; -YAZ_EXPORT int z_OriginProposal_0 (ODR o, Z_OriginProposal_0 **p, int opt, const char *name); - -typedef struct Z_OriginProposal Z_OriginProposal; -YAZ_EXPORT int z_OriginProposal (ODR o, Z_OriginProposal **p, int opt, const char *name); - -typedef struct Z_TargetResponse Z_TargetResponse; -YAZ_EXPORT int z_TargetResponse (ODR o, Z_TargetResponse **p, int opt, const char *name); - -typedef struct Z_PrivateCharacterSetViaOid Z_PrivateCharacterSetViaOid; -YAZ_EXPORT int z_PrivateCharacterSetViaOid (ODR o, Z_PrivateCharacterSetViaOid **p, int opt, const char *name); - -typedef struct Z_PrivateCharacterSet Z_PrivateCharacterSet; -YAZ_EXPORT int z_PrivateCharacterSet (ODR o, Z_PrivateCharacterSet **p, int opt, const char *name); - -typedef struct Z_Iso2022OriginProposal Z_Iso2022OriginProposal; -YAZ_EXPORT int z_Iso2022OriginProposal (ODR o, Z_Iso2022OriginProposal **p, int opt, const char *name); - -typedef struct Z_Iso2022TargetResponse Z_Iso2022TargetResponse; -YAZ_EXPORT int z_Iso2022TargetResponse (ODR o, Z_Iso2022TargetResponse **p, int opt, const char *name); - -typedef struct Z_Iso2022 Z_Iso2022; -YAZ_EXPORT int z_Iso2022 (ODR o, Z_Iso2022 **p, int opt, const char *name); - -typedef struct Z_Environment Z_Environment; -YAZ_EXPORT int z_Environment (ODR o, Z_Environment **p, int opt, const char *name); - -typedef struct Z_InitialSet Z_InitialSet; -YAZ_EXPORT int z_InitialSet (ODR o, Z_InitialSet **p, int opt, const char *name); - -typedef struct Z_LeftAndRight Z_LeftAndRight; -YAZ_EXPORT int z_LeftAndRight (ODR o, Z_LeftAndRight **p, int opt, const char *name); - -typedef struct Z_Iso10646 Z_Iso10646; -YAZ_EXPORT int z_Iso10646 (ODR o, Z_Iso10646 **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_CharSetandLanguageNegotiation { - int which; - union { - Z_OriginProposal *proposal; - Z_TargetResponse *response; -#define Z_CharSetandLanguageNegotiation_proposal 1 -#define Z_CharSetandLanguageNegotiation_response 2 - } u; -}; - -struct Z_OriginProposal_0 { - int which; - union { - Z_Iso2022 *iso2022; - Z_Iso10646 *iso10646; - Z_PrivateCharacterSet *zprivate; -#define Z_OriginProposal_0_iso2022 1 -#define Z_OriginProposal_0_iso10646 2 -#define Z_OriginProposal_0_private 3 - } u; -}; - -struct Z_OriginProposal { - int num_proposedCharSets; - Z_OriginProposal_0 **proposedCharSets; /* OPT */ - int num_proposedlanguages; - Z_LanguageCode **proposedlanguages; /* OPT */ - bool_t *recordsInSelectedCharSets; /* OPT */ -}; - -struct Z_TargetResponse { - int which; - union { - Z_Iso2022 *iso2022; - Z_Iso10646 *iso10646; - Z_PrivateCharacterSet *zprivate; - Odr_null *none; -#define Z_TargetResponse_iso2022 1 -#define Z_TargetResponse_iso10646 2 -#define Z_TargetResponse_private 3 -#define Z_TargetResponse_none 4 - } u; /* OPT */ - Z_LanguageCode *selectedLanguage; /* OPT */ - bool_t *recordsInSelectedCharSets; /* OPT */ -}; - -struct Z_PrivateCharacterSetViaOid { - int num; - Odr_oid **elements; -}; - -struct Z_PrivateCharacterSet { - int which; - union { - Z_PrivateCharacterSetViaOid *viaOid; - Z_External *externallySpecified; - Odr_null *previouslyAgreedUpon; -#define Z_PrivateCharacterSet_viaOid 1 -#define Z_PrivateCharacterSet_externallySpecified 2 -#define Z_PrivateCharacterSet_previouslyAgreedUpon 3 - } u; -}; - -struct Z_Iso2022OriginProposal { - Z_Environment *proposedEnvironment; /* OPT */ - int num_proposedSets; - int **proposedSets; - int num_proposedInitialSets; - Z_InitialSet **proposedInitialSets; - Z_LeftAndRight *proposedLeftAndRight; -}; - -struct Z_Iso2022TargetResponse { - Z_Environment *selectedEnvironment; - int num_selectedSets; - int **selectedSets; - Z_InitialSet *selectedinitialSet; - Z_LeftAndRight *selectedLeftAndRight; -}; - -struct Z_Iso2022 { - int which; - union { - Z_Iso2022OriginProposal *originProposal; - Z_Iso2022TargetResponse *targetResponse; -#define Z_Iso2022_originProposal 1 -#define Z_Iso2022_targetResponse 2 - } u; -}; - -struct Z_Environment { - int which; - union { - Odr_null *sevenBit; - Odr_null *eightBit; -#define Z_Environment_sevenBit 1 -#define Z_Environment_eightBit 2 - } u; -}; - -struct Z_InitialSet { - int *g0; /* OPT */ - int *g1; /* OPT */ - int *g2; /* OPT */ - int *g3; /* OPT */ - int *c0; - int *c1; /* OPT */ -}; - -struct Z_LeftAndRight { -#define Z_LeftAndRight_g0 0 -#define Z_LeftAndRight_g1 1 -#define Z_LeftAndRight_g2 2 -#define Z_LeftAndRight_g3 3 - int *gLeft; -#define Z_LeftAndRight_g1 1 -#define Z_LeftAndRight_g2 2 -#define Z_LeftAndRight_g3 3 - int *gRight; /* OPT */ -}; - -struct Z_Iso10646 { - Odr_oid *collections; /* OPT */ - Odr_oid *encodingLevel; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-core.h b/dependencies/yaz_3.0.14/include/yaz/z-core.h deleted file mode 100644 index 6c2963a..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-core.h +++ /dev/null @@ -1,1342 +0,0 @@ -/** \file z-core.h - \brief ASN.1 Module Z39-50-APDU-1995 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_core_H -#define z_core_H - -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_External Z_External; -YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name); - - -typedef struct Z_APDU Z_APDU; -YAZ_EXPORT int z_APDU (ODR o, Z_APDU **p, int opt, const char *name); - -typedef struct Z_InitRequest Z_InitRequest; -YAZ_EXPORT int z_InitRequest (ODR o, Z_InitRequest **p, int opt, const char *name); - -typedef struct Z_IdPass Z_IdPass; -YAZ_EXPORT int z_IdPass (ODR o, Z_IdPass **p, int opt, const char *name); - -typedef struct Z_IdAuthentication Z_IdAuthentication; -YAZ_EXPORT int z_IdAuthentication (ODR o, Z_IdAuthentication **p, int opt, const char *name); - -typedef struct Z_InitResponse Z_InitResponse; -YAZ_EXPORT int z_InitResponse (ODR o, Z_InitResponse **p, int opt, const char *name); - -typedef Odr_bitmask Z_ProtocolVersion; -YAZ_EXPORT int z_ProtocolVersion (ODR o, Z_ProtocolVersion **p, int opt, const char *name); - -typedef Odr_bitmask Z_Options; -YAZ_EXPORT int z_Options (ODR o, Z_Options **p, int opt, const char *name); - -typedef struct Z_SearchRequest Z_SearchRequest; -YAZ_EXPORT int z_SearchRequest (ODR o, Z_SearchRequest **p, int opt, const char *name); - -typedef struct Z_Query Z_Query; -YAZ_EXPORT int z_Query (ODR o, Z_Query **p, int opt, const char *name); - -typedef struct Z_RPNQuery Z_RPNQuery; -YAZ_EXPORT int z_RPNQuery (ODR o, Z_RPNQuery **p, int opt, const char *name); - -typedef struct Z_Complex Z_Complex; -YAZ_EXPORT int z_Complex (ODR o, Z_Complex **p, int opt, const char *name); - -typedef struct Z_RPNStructure Z_RPNStructure; -YAZ_EXPORT int z_RPNStructure (ODR o, Z_RPNStructure **p, int opt, const char *name); - -typedef struct Z_Operand Z_Operand; -YAZ_EXPORT int z_Operand (ODR o, Z_Operand **p, int opt, const char *name); - -typedef struct Z_AttributesPlusTerm Z_AttributesPlusTerm; -YAZ_EXPORT int z_AttributesPlusTerm (ODR o, Z_AttributesPlusTerm **p, int opt, const char *name); - -typedef struct Z_ResultSetPlusAttributes Z_ResultSetPlusAttributes; -YAZ_EXPORT int z_ResultSetPlusAttributes (ODR o, Z_ResultSetPlusAttributes **p, int opt, const char *name); - -typedef struct Z_AttributeList Z_AttributeList; -YAZ_EXPORT int z_AttributeList (ODR o, Z_AttributeList **p, int opt, const char *name); - -typedef struct Z_Term Z_Term; -YAZ_EXPORT int z_Term (ODR o, Z_Term **p, int opt, const char *name); - -typedef struct Z_Operator Z_Operator; -YAZ_EXPORT int z_Operator (ODR o, Z_Operator **p, int opt, const char *name); - -typedef struct Z_ComplexAttribute Z_ComplexAttribute; -YAZ_EXPORT int z_ComplexAttribute (ODR o, Z_ComplexAttribute **p, int opt, const char *name); - -typedef struct Z_AttributeElement Z_AttributeElement; -YAZ_EXPORT int z_AttributeElement (ODR o, Z_AttributeElement **p, int opt, const char *name); - -typedef struct Z_ProximityOperator Z_ProximityOperator; -YAZ_EXPORT int z_ProximityOperator (ODR o, Z_ProximityOperator **p, int opt, const char *name); - -typedef int Z_ProxUnit; -YAZ_EXPORT int z_ProxUnit (ODR o, Z_ProxUnit **p, int opt, const char *name); - -typedef struct Z_SearchResponse Z_SearchResponse; -YAZ_EXPORT int z_SearchResponse (ODR o, Z_SearchResponse **p, int opt, const char *name); - -typedef struct Z_RecordComposition Z_RecordComposition; -YAZ_EXPORT int z_RecordComposition (ODR o, Z_RecordComposition **p, int opt, const char *name); - -typedef struct Z_PresentRequest Z_PresentRequest; -YAZ_EXPORT int z_PresentRequest (ODR o, Z_PresentRequest **p, int opt, const char *name); - -typedef struct Z_Segment Z_Segment; -YAZ_EXPORT int z_Segment (ODR o, Z_Segment **p, int opt, const char *name); - -typedef struct Z_PresentResponse Z_PresentResponse; -YAZ_EXPORT int z_PresentResponse (ODR o, Z_PresentResponse **p, int opt, const char *name); - -typedef struct Z_NamePlusRecordList Z_NamePlusRecordList; -YAZ_EXPORT int z_NamePlusRecordList (ODR o, Z_NamePlusRecordList **p, int opt, const char *name); - -typedef struct Z_DiagRecs Z_DiagRecs; -YAZ_EXPORT int z_DiagRecs (ODR o, Z_DiagRecs **p, int opt, const char *name); - -typedef struct Z_Records Z_Records; -YAZ_EXPORT int z_Records (ODR o, Z_Records **p, int opt, const char *name); - -typedef struct Z_NamePlusRecord Z_NamePlusRecord; -YAZ_EXPORT int z_NamePlusRecord (ODR o, Z_NamePlusRecord **p, int opt, const char *name); - -typedef struct Z_FragmentSyntax Z_FragmentSyntax; -YAZ_EXPORT int z_FragmentSyntax (ODR o, Z_FragmentSyntax **p, int opt, const char *name); - -typedef struct Z_DiagRec Z_DiagRec; -YAZ_EXPORT int z_DiagRec (ODR o, Z_DiagRec **p, int opt, const char *name); - -typedef struct Z_DefaultDiagFormat Z_DefaultDiagFormat; -YAZ_EXPORT int z_DefaultDiagFormat (ODR o, Z_DefaultDiagFormat **p, int opt, const char *name); - -typedef struct Z_Range Z_Range; -YAZ_EXPORT int z_Range (ODR o, Z_Range **p, int opt, const char *name); - -typedef struct Z_DatabaseSpecificUnit Z_DatabaseSpecificUnit; -YAZ_EXPORT int z_DatabaseSpecificUnit (ODR o, Z_DatabaseSpecificUnit **p, int opt, const char *name); - -typedef struct Z_DatabaseSpecific Z_DatabaseSpecific; -YAZ_EXPORT int z_DatabaseSpecific (ODR o, Z_DatabaseSpecific **p, int opt, const char *name); - -typedef struct Z_ElementSetNames Z_ElementSetNames; -YAZ_EXPORT int z_ElementSetNames (ODR o, Z_ElementSetNames **p, int opt, const char *name); - -typedef int Z_PresentStatus; -YAZ_EXPORT int z_PresentStatus (ODR o, Z_PresentStatus **p, int opt, const char *name); - -typedef struct Z_DbSpecific Z_DbSpecific; -YAZ_EXPORT int z_DbSpecific (ODR o, Z_DbSpecific **p, int opt, const char *name); - -typedef struct Z_CompSpec Z_CompSpec; -YAZ_EXPORT int z_CompSpec (ODR o, Z_CompSpec **p, int opt, const char *name); - -typedef struct Z_ElementSpec Z_ElementSpec; -YAZ_EXPORT int z_ElementSpec (ODR o, Z_ElementSpec **p, int opt, const char *name); - -typedef struct Z_Specification Z_Specification; -YAZ_EXPORT int z_Specification (ODR o, Z_Specification **p, int opt, const char *name); - -typedef struct Z_DeleteResultSetRequest Z_DeleteResultSetRequest; -YAZ_EXPORT int z_DeleteResultSetRequest (ODR o, Z_DeleteResultSetRequest **p, int opt, const char *name); - -typedef struct Z_DeleteResultSetResponse Z_DeleteResultSetResponse; -YAZ_EXPORT int z_DeleteResultSetResponse (ODR o, Z_DeleteResultSetResponse **p, int opt, const char *name); - -typedef struct Z_ListStatus Z_ListStatus; -YAZ_EXPORT int z_ListStatus (ODR o, Z_ListStatus **p, int opt, const char *name); - -typedef struct Z_ListStatuses Z_ListStatuses; -YAZ_EXPORT int z_ListStatuses (ODR o, Z_ListStatuses **p, int opt, const char *name); - -typedef int Z_DeleteStatus; -YAZ_EXPORT int z_DeleteStatus (ODR o, Z_DeleteStatus **p, int opt, const char *name); - -typedef struct Z_AccessControlRequest Z_AccessControlRequest; -YAZ_EXPORT int z_AccessControlRequest (ODR o, Z_AccessControlRequest **p, int opt, const char *name); - -typedef struct Z_AccessControlResponse Z_AccessControlResponse; -YAZ_EXPORT int z_AccessControlResponse (ODR o, Z_AccessControlResponse **p, int opt, const char *name); - -typedef struct Z_ResourceControlRequest Z_ResourceControlRequest; -YAZ_EXPORT int z_ResourceControlRequest (ODR o, Z_ResourceControlRequest **p, int opt, const char *name); - -typedef struct Z_ResourceControlResponse Z_ResourceControlResponse; -YAZ_EXPORT int z_ResourceControlResponse (ODR o, Z_ResourceControlResponse **p, int opt, const char *name); - -typedef struct Z_TriggerResourceControlRequest Z_TriggerResourceControlRequest; -YAZ_EXPORT int z_TriggerResourceControlRequest (ODR o, Z_TriggerResourceControlRequest **p, int opt, const char *name); - -typedef struct Z_ResourceReportRequest Z_ResourceReportRequest; -YAZ_EXPORT int z_ResourceReportRequest (ODR o, Z_ResourceReportRequest **p, int opt, const char *name); - -typedef struct Z_ResourceReportResponse Z_ResourceReportResponse; -YAZ_EXPORT int z_ResourceReportResponse (ODR o, Z_ResourceReportResponse **p, int opt, const char *name); - -typedef Z_External Z_ResourceReport; -YAZ_EXPORT int z_ResourceReport (ODR o, Z_ResourceReport **p, int opt, const char *name); - -typedef Odr_oid Z_ResourceReportId; -YAZ_EXPORT int z_ResourceReportId (ODR o, Z_ResourceReportId **p, int opt, const char *name); - -typedef struct Z_ScanRequest Z_ScanRequest; -YAZ_EXPORT int z_ScanRequest (ODR o, Z_ScanRequest **p, int opt, const char *name); - -typedef struct Z_ScanResponse Z_ScanResponse; -YAZ_EXPORT int z_ScanResponse (ODR o, Z_ScanResponse **p, int opt, const char *name); - -typedef struct Z_ListEntries Z_ListEntries; -YAZ_EXPORT int z_ListEntries (ODR o, Z_ListEntries **p, int opt, const char *name); - -typedef struct Z_Entry Z_Entry; -YAZ_EXPORT int z_Entry (ODR o, Z_Entry **p, int opt, const char *name); - -typedef struct Z_TermInfo Z_TermInfo; -YAZ_EXPORT int z_TermInfo (ODR o, Z_TermInfo **p, int opt, const char *name); - -typedef struct Z_byDatabaseList_s Z_byDatabaseList_s; -YAZ_EXPORT int z_byDatabaseList_s (ODR o, Z_byDatabaseList_s **p, int opt, const char *name); - -typedef struct Z_byDatabaseList Z_byDatabaseList; -YAZ_EXPORT int z_byDatabaseList (ODR o, Z_byDatabaseList **p, int opt, const char *name); - -typedef struct Z_OccurrenceByAttributesElem Z_OccurrenceByAttributesElem; -YAZ_EXPORT int z_OccurrenceByAttributesElem (ODR o, Z_OccurrenceByAttributesElem **p, int opt, const char *name); - -typedef struct Z_OccurrenceByAttributes Z_OccurrenceByAttributes; -YAZ_EXPORT int z_OccurrenceByAttributes (ODR o, Z_OccurrenceByAttributes **p, int opt, const char *name); - -typedef struct Z_SortKeySpecList Z_SortKeySpecList; -YAZ_EXPORT int z_SortKeySpecList (ODR o, Z_SortKeySpecList **p, int opt, const char *name); - -typedef struct Z_SortRequest Z_SortRequest; -YAZ_EXPORT int z_SortRequest (ODR o, Z_SortRequest **p, int opt, const char *name); - -typedef struct Z_SortResponse Z_SortResponse; -YAZ_EXPORT int z_SortResponse (ODR o, Z_SortResponse **p, int opt, const char *name); - -typedef struct Z_SortKeySpec Z_SortKeySpec; -YAZ_EXPORT int z_SortKeySpec (ODR o, Z_SortKeySpec **p, int opt, const char *name); - -typedef struct Z_SortDbSpecificList_s Z_SortDbSpecificList_s; -YAZ_EXPORT int z_SortDbSpecificList_s (ODR o, Z_SortDbSpecificList_s **p, int opt, const char *name); - -typedef struct Z_SortDbSpecificList Z_SortDbSpecificList; -YAZ_EXPORT int z_SortDbSpecificList (ODR o, Z_SortDbSpecificList **p, int opt, const char *name); - -typedef struct Z_SortElement Z_SortElement; -YAZ_EXPORT int z_SortElement (ODR o, Z_SortElement **p, int opt, const char *name); - -typedef struct Z_SortAttributes Z_SortAttributes; -YAZ_EXPORT int z_SortAttributes (ODR o, Z_SortAttributes **p, int opt, const char *name); - -typedef struct Z_SortKey Z_SortKey; -YAZ_EXPORT int z_SortKey (ODR o, Z_SortKey **p, int opt, const char *name); - -typedef struct Z_ExtendedServicesRequest Z_ExtendedServicesRequest; -YAZ_EXPORT int z_ExtendedServicesRequest (ODR o, Z_ExtendedServicesRequest **p, int opt, const char *name); - -typedef struct Z_ExtendedServicesResponse Z_ExtendedServicesResponse; -YAZ_EXPORT int z_ExtendedServicesResponse (ODR o, Z_ExtendedServicesResponse **p, int opt, const char *name); - -typedef struct Z_Permissions_s Z_Permissions_s; -YAZ_EXPORT int z_Permissions_s (ODR o, Z_Permissions_s **p, int opt, const char *name); - -typedef struct Z_Permissions Z_Permissions; -YAZ_EXPORT int z_Permissions (ODR o, Z_Permissions **p, int opt, const char *name); - -typedef struct Z_Close Z_Close; -YAZ_EXPORT int z_Close (ODR o, Z_Close **p, int opt, const char *name); - -typedef int Z_CloseReason; -YAZ_EXPORT int z_CloseReason (ODR o, Z_CloseReason **p, int opt, const char *name); - -typedef struct Z_DuplicateDetectionRequest Z_DuplicateDetectionRequest; -YAZ_EXPORT int z_DuplicateDetectionRequest (ODR o, Z_DuplicateDetectionRequest **p, int opt, const char *name); - -typedef struct Z_DuplicateDetectionCriterion Z_DuplicateDetectionCriterion; -YAZ_EXPORT int z_DuplicateDetectionCriterion (ODR o, Z_DuplicateDetectionCriterion **p, int opt, const char *name); - -typedef struct Z_RetentionCriterion Z_RetentionCriterion; -YAZ_EXPORT int z_RetentionCriterion (ODR o, Z_RetentionCriterion **p, int opt, const char *name); - -typedef struct Z_SortCriterionPreferredDatabases Z_SortCriterionPreferredDatabases; -YAZ_EXPORT int z_SortCriterionPreferredDatabases (ODR o, Z_SortCriterionPreferredDatabases **p, int opt, const char *name); - -typedef struct Z_SortCriterion Z_SortCriterion; -YAZ_EXPORT int z_SortCriterion (ODR o, Z_SortCriterion **p, int opt, const char *name); - -typedef struct Z_DuplicateDetectionResponse Z_DuplicateDetectionResponse; -YAZ_EXPORT int z_DuplicateDetectionResponse (ODR o, Z_DuplicateDetectionResponse **p, int opt, const char *name); - -typedef Odr_oct Z_ReferenceId; -YAZ_EXPORT int z_ReferenceId (ODR o, Z_ReferenceId **p, int opt, const char *name); - -typedef Odr_oid Z_AttributeSetId; -YAZ_EXPORT int z_AttributeSetId (ODR o, Z_AttributeSetId **p, int opt, const char *name); - -typedef struct Z_OtherInformationUnit Z_OtherInformationUnit; -YAZ_EXPORT int z_OtherInformationUnit (ODR o, Z_OtherInformationUnit **p, int opt, const char *name); - -typedef struct Z_OtherInformation Z_OtherInformation; -YAZ_EXPORT int z_OtherInformation (ODR o, Z_OtherInformation **p, int opt, const char *name); - -typedef struct Z_InfoCategory Z_InfoCategory; -YAZ_EXPORT int z_InfoCategory (ODR o, Z_InfoCategory **p, int opt, const char *name); - -typedef struct Z_IntUnit Z_IntUnit; -YAZ_EXPORT int z_IntUnit (ODR o, Z_IntUnit **p, int opt, const char *name); - -typedef struct Z_Unit Z_Unit; -YAZ_EXPORT int z_Unit (ODR o, Z_Unit **p, int opt, const char *name); - -typedef char Z_InternationalString; -YAZ_EXPORT int z_InternationalString (ODR o, Z_InternationalString **p, int opt, const char *name); - -typedef Z_InternationalString Z_ResultSetId; -YAZ_EXPORT int z_ResultSetId (ODR o, Z_ResultSetId **p, int opt, const char *name); - -typedef Z_InternationalString Z_ElementSetName; -YAZ_EXPORT int z_ElementSetName (ODR o, Z_ElementSetName **p, int opt, const char *name); - -typedef Z_InternationalString Z_DatabaseName; -YAZ_EXPORT int z_DatabaseName (ODR o, Z_DatabaseName **p, int opt, const char *name); - -typedef struct Z_StringOrNumeric Z_StringOrNumeric; -YAZ_EXPORT int z_StringOrNumeric (ODR o, Z_StringOrNumeric **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_APDU { - int which; - union { - Z_InitRequest *initRequest; - Z_InitResponse *initResponse; - Z_SearchRequest *searchRequest; - Z_SearchResponse *searchResponse; - Z_PresentRequest *presentRequest; - Z_PresentResponse *presentResponse; - Z_DeleteResultSetRequest *deleteResultSetRequest; - Z_DeleteResultSetResponse *deleteResultSetResponse; - Z_AccessControlRequest *accessControlRequest; - Z_AccessControlResponse *accessControlResponse; - Z_ResourceControlRequest *resourceControlRequest; - Z_ResourceControlResponse *resourceControlResponse; - Z_TriggerResourceControlRequest *triggerResourceControlRequest; - Z_ResourceReportRequest *resourceReportRequest; - Z_ResourceReportResponse *resourceReportResponse; - Z_ScanRequest *scanRequest; - Z_ScanResponse *scanResponse; - Z_SortRequest *sortRequest; - Z_SortResponse *sortResponse; - Z_Segment *segmentRequest; - Z_ExtendedServicesRequest *extendedServicesRequest; - Z_ExtendedServicesResponse *extendedServicesResponse; - Z_Close *close; - Z_DuplicateDetectionRequest *duplicateDetectionRequest; - Z_DuplicateDetectionResponse *duplicateDetectionResponse; -#define Z_APDU_initRequest 1 -#define Z_APDU_initResponse 2 -#define Z_APDU_searchRequest 3 -#define Z_APDU_searchResponse 4 -#define Z_APDU_presentRequest 5 -#define Z_APDU_presentResponse 6 -#define Z_APDU_deleteResultSetRequest 7 -#define Z_APDU_deleteResultSetResponse 8 -#define Z_APDU_accessControlRequest 9 -#define Z_APDU_accessControlResponse 10 -#define Z_APDU_resourceControlRequest 11 -#define Z_APDU_resourceControlResponse 12 -#define Z_APDU_triggerResourceControlRequest 13 -#define Z_APDU_resourceReportRequest 14 -#define Z_APDU_resourceReportResponse 15 -#define Z_APDU_scanRequest 16 -#define Z_APDU_scanResponse 17 -#define Z_APDU_sortRequest 18 -#define Z_APDU_sortResponse 19 -#define Z_APDU_segmentRequest 20 -#define Z_APDU_extendedServicesRequest 21 -#define Z_APDU_extendedServicesResponse 22 -#define Z_APDU_close 23 -#define Z_APDU_duplicateDetectionRequest 24 -#define Z_APDU_duplicateDetectionResponse 25 - } u; -}; - -struct Z_InitRequest { - Z_ReferenceId *referenceId; /* OPT */ - Z_ProtocolVersion *protocolVersion; - Z_Options *options; - int *preferredMessageSize; - int *maximumRecordSize; - Z_IdAuthentication *idAuthentication; /* OPT */ - Z_InternationalString *implementationId; /* OPT */ - Z_InternationalString *implementationName; /* OPT */ - Z_InternationalString *implementationVersion; /* OPT */ - Z_External *userInformationField; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_IdPass { - Z_InternationalString *groupId; /* OPT */ - Z_InternationalString *userId; /* OPT */ - Z_InternationalString *password; /* OPT */ -}; - -struct Z_IdAuthentication { - int which; - union { - char *open; - Z_IdPass *idPass; - Odr_null *anonymous; - Z_External *other; -#define Z_IdAuthentication_open 1 -#define Z_IdAuthentication_idPass 2 -#define Z_IdAuthentication_anonymous 3 -#define Z_IdAuthentication_other 4 - } u; -}; - -struct Z_InitResponse { - Z_ReferenceId *referenceId; /* OPT */ - Z_ProtocolVersion *protocolVersion; - Z_Options *options; - int *preferredMessageSize; - int *maximumRecordSize; - bool_t *result; - Z_InternationalString *implementationId; /* OPT */ - Z_InternationalString *implementationName; /* OPT */ - Z_InternationalString *implementationVersion; /* OPT */ - Z_External *userInformationField; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -#define Z_ProtocolVersion_1 0 -#define Z_ProtocolVersion_2 1 -#define Z_ProtocolVersion_3 2 - -#define Z_Options_search 0 -#define Z_Options_present 1 -#define Z_Options_delSet 2 -#define Z_Options_resourceReport 3 -#define Z_Options_triggerResourceCtrl 4 -#define Z_Options_resourceCtrl 5 -#define Z_Options_accessCtrl 6 -#define Z_Options_scan 7 -#define Z_Options_sort 8 -#define Z_Options_extendedServices 10 -#define Z_Options_level_1Segmentation 11 -#define Z_Options_level_2Segmentation 12 -#define Z_Options_concurrentOperations 13 -#define Z_Options_namedResultSets 14 -#define Z_Options_encapsulation 15 -#define Z_Options_resultCount 16 -#define Z_Options_negotiationModel 17 -#define Z_Options_duplicateDetection 18 -#define Z_Options_queryType104 19 -#define Z_Options_pQESCorrection 20 -#define Z_Options_stringSchema 21 - -struct Z_SearchRequest { - Z_ReferenceId *referenceId; /* OPT */ - int *smallSetUpperBound; - int *largeSetLowerBound; - int *mediumSetPresentNumber; - bool_t *replaceIndicator; - Z_InternationalString *resultSetName; - int num_databaseNames; - Z_DatabaseName **databaseNames; - Z_ElementSetNames *smallSetElementSetNames; /* OPT */ - Z_ElementSetNames *mediumSetElementSetNames; /* OPT */ - Odr_oid *preferredRecordSyntax; /* OPT */ - Z_Query *query; - Z_OtherInformation *additionalSearchInfo; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_Query { - int which; - union { - void *type_0; - Z_RPNQuery *type_1; - Odr_oct *type_2; - Odr_oct *type_100; - Z_RPNQuery *type_101; - Odr_oct *type_102; - Z_External *type_104; -#define Z_Query_type_0 1 -#define Z_Query_type_1 2 -#define Z_Query_type_2 3 -#define Z_Query_type_100 4 -#define Z_Query_type_101 5 -#define Z_Query_type_102 6 -#define Z_Query_type_104 7 - } u; -}; - -struct Z_RPNQuery { - Z_AttributeSetId *attributeSetId; - Z_RPNStructure *RPNStructure; -}; - -struct Z_Complex { - Z_RPNStructure *s1; - Z_RPNStructure *s2; - Z_Operator *roperator; -}; - -struct Z_RPNStructure { - int which; - union { - Z_Operand *simple; - Z_Complex *complex; -#define Z_RPNStructure_simple 1 -#define Z_RPNStructure_complex 2 - } u; -}; - -struct Z_Operand { - int which; - union { - Z_AttributesPlusTerm *attributesPlusTerm; - Z_ResultSetId *resultSetId; - Z_ResultSetPlusAttributes *resultAttr; -#define Z_Operand_APT 1 -#define Z_Operand_resultSetId 2 -#define Z_Operand_resultAttr 3 - } u; -}; - -struct Z_AttributesPlusTerm { - Z_AttributeList *attributes; - Z_Term *term; -}; - -struct Z_ResultSetPlusAttributes { - Z_ResultSetId *resultSet; - Z_AttributeList *attributes; -}; - -struct Z_AttributeList { - int num_attributes; - Z_AttributeElement **attributes; -}; - -struct Z_Term { - int which; - union { - Odr_oct *general; - int *numeric; - Z_InternationalString *characterString; - Odr_oid *oid; - char *dateTime; - Z_External *external; - Z_IntUnit *integerAndUnit; - Odr_null *null; -#define Z_Term_general 1 -#define Z_Term_numeric 2 -#define Z_Term_characterString 3 -#define Z_Term_oid 4 -#define Z_Term_dateTime 5 -#define Z_Term_external 6 -#define Z_Term_integerAndUnit 7 -#define Z_Term_null 8 - } u; -}; - -struct Z_Operator { - int which; - union { - Odr_null *op_and; - Odr_null *op_or; - Odr_null *and_not; - Z_ProximityOperator *prox; -#define Z_Operator_and 1 -#define Z_Operator_or 2 -#define Z_Operator_and_not 3 -#define Z_Operator_prox 4 - } u; -}; - -struct Z_ComplexAttribute { - int num_list; - Z_StringOrNumeric **list; - int num_semanticAction; - int **semanticAction; /* OPT */ -}; - -struct Z_AttributeElement { - Z_AttributeSetId *attributeSet; /* OPT */ - int *attributeType; - int which; - union { - int *numeric; - Z_ComplexAttribute *complex; -#define Z_AttributeValue_numeric 1 -#define Z_AttributeValue_complex 2 - } value; -}; - -struct Z_ProximityOperator { - bool_t *exclusion; /* OPT */ - int *distance; - bool_t *ordered; -#define Z_ProximityOperator_Prox_lessThan 1 -#define Z_ProximityOperator_Prox_lessThanOrEqual 2 -#define Z_ProximityOperator_Prox_equal 3 -#define Z_ProximityOperator_Prox_greaterThanOrEqual 4 -#define Z_ProximityOperator_Prox_greaterThan 5 -#define Z_ProximityOperator_Prox_notEqual 6 - int *relationType; - int which; - union { - Z_ProxUnit *known; - int *zprivate; -#define Z_ProximityOperator_known 1 -#define Z_ProximityOperator_private 2 - } u; -}; - -#define Z_ProxUnit_character 1 -#define Z_ProxUnit_word 2 -#define Z_ProxUnit_sentence 3 -#define Z_ProxUnit_paragraph 4 -#define Z_ProxUnit_section 5 -#define Z_ProxUnit_chapter 6 -#define Z_ProxUnit_document 7 -#define Z_ProxUnit_element 8 -#define Z_ProxUnit_subelement 9 -#define Z_ProxUnit_elementType 10 -#define Z_ProxUnit_byte 11 - -struct Z_SearchResponse { - Z_ReferenceId *referenceId; /* OPT */ - int *resultCount; - int *numberOfRecordsReturned; - int *nextResultSetPosition; - bool_t *searchStatus; -#define Z_SearchResponse_subset 1 -#define Z_SearchResponse_interim 2 -#define Z_SearchResponse_none 3 -#define Z_SearchResponse_estimate 4 - int *resultSetStatus; /* OPT */ - Z_PresentStatus *presentStatus; /* OPT */ - Z_Records *records; /* OPT */ - Z_OtherInformation *additionalSearchInfo; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_RecordComposition { - int which; - union { - Z_ElementSetNames *simple; - Z_CompSpec *complex; -#define Z_RecordComp_simple 1 -#define Z_RecordComp_complex 2 - } u; -}; - -struct Z_PresentRequest { - Z_ReferenceId *referenceId; /* OPT */ - Z_ResultSetId *resultSetId; - int *resultSetStartPoint; - int *numberOfRecordsRequested; - int num_ranges; - Z_Range **additionalRanges; /* OPT */ - Z_RecordComposition *recordComposition; /* OPT */ - Odr_oid *preferredRecordSyntax; /* OPT */ - int *maxSegmentCount; /* OPT */ - int *maxRecordSize; /* OPT */ - int *maxSegmentSize; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_Segment { - Z_ReferenceId *referenceId; /* OPT */ - int *numberOfRecordsReturned; - int num_segmentRecords; - Z_NamePlusRecord **segmentRecords; - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_PresentResponse { - Z_ReferenceId *referenceId; /* OPT */ - int *numberOfRecordsReturned; - int *nextResultSetPosition; - Z_PresentStatus *presentStatus; - Z_Records *records; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_NamePlusRecordList { - int num_records; - Z_NamePlusRecord **records; -}; - -struct Z_DiagRecs { - int num_diagRecs; - Z_DiagRec **diagRecs; -}; - -struct Z_Records { - int which; - union { - Z_NamePlusRecordList *databaseOrSurDiagnostics; - Z_DefaultDiagFormat *nonSurrogateDiagnostic; - Z_DiagRecs *multipleNonSurDiagnostics; -#define Z_Records_DBOSD 1 -#define Z_Records_NSD 2 -#define Z_Records_multipleNSD 3 - } u; -}; - -struct Z_NamePlusRecord { - Z_DatabaseName *databaseName; /* OPT */ - int which; - union { - Z_External *databaseRecord; - Z_DiagRec *surrogateDiagnostic; - Z_FragmentSyntax *startingFragment; - Z_FragmentSyntax *intermediateFragment; - Z_FragmentSyntax *finalFragment; -#define Z_NamePlusRecord_databaseRecord 1 -#define Z_NamePlusRecord_surrogateDiagnostic 2 -#define Z_NamePlusRecord_startingFragment 3 -#define Z_NamePlusRecord_intermediateFragment 4 -#define Z_NamePlusRecord_finalFragment 5 - } u; -}; - -struct Z_FragmentSyntax { - int which; - union { - Z_External *externallyTagged; - Odr_oct *notExternallyTagged; -#define Z_FragmentSyntax_externallyTagged 1 -#define Z_FragmentSyntax_notExternallyTagged 2 - } u; -}; - -struct Z_DiagRec { - int which; - union { - Z_DefaultDiagFormat *defaultFormat; - Z_External *externallyDefined; -#define Z_DiagRec_defaultFormat 1 -#define Z_DiagRec_externallyDefined 2 - } u; -}; - -struct Z_DefaultDiagFormat { - Odr_oid *diagnosticSetId; - int *condition; - int which; - union { - char *v2Addinfo; - Z_InternationalString *v3Addinfo; -#define Z_DefaultDiagFormat_v2Addinfo 1 -#define Z_DefaultDiagFormat_v3Addinfo 2 - } u; -}; - -struct Z_Range { - int *startingPosition; - int *numberOfRecords; -}; - -struct Z_DatabaseSpecificUnit { - Z_DatabaseName *dbName; - Z_ElementSetName *esn; -}; - -struct Z_DatabaseSpecific { - int num; - Z_DatabaseSpecificUnit **elements; -}; - -struct Z_ElementSetNames { - int which; - union { - Z_InternationalString *generic; - Z_DatabaseSpecific *databaseSpecific; -#define Z_ElementSetNames_generic 1 -#define Z_ElementSetNames_databaseSpecific 2 - } u; -}; - -#define Z_PresentStatus_success 0 -#define Z_PresentStatus_partial_1 1 -#define Z_PresentStatus_partial_2 2 -#define Z_PresentStatus_partial_3 3 -#define Z_PresentStatus_partial_4 4 -#define Z_PresentStatus_failure 5 - -struct Z_DbSpecific { - Z_DatabaseName *db; - Z_Specification *spec; -}; - -struct Z_CompSpec { - bool_t *selectAlternativeSyntax; - Z_Specification *generic; /* OPT */ - int num_dbSpecific; - Z_DbSpecific **dbSpecific; /* OPT */ - int num_recordSyntax; - Odr_oid **recordSyntax; /* OPT */ -}; - -struct Z_ElementSpec { - int which; - union { - Z_InternationalString *elementSetName; - Z_External *externalSpec; -#define Z_ElementSpec_elementSetName 1 -#define Z_ElementSpec_externalSpec 2 - } u; -}; - -struct Z_Specification { - int which; - union { - Odr_oid *oid; - Z_InternationalString *uri; -#define Z_Schema_oid 1 -#define Z_Schema_uri 2 - } schema; /* OPT */ - Z_ElementSpec *elementSpec; /* OPT */ -}; - -struct Z_DeleteResultSetRequest { - Z_ReferenceId *referenceId; /* OPT */ -#define Z_DeleteResultSetRequest_list 0 -#define Z_DeleteResultSetRequest_all 1 - int *deleteFunction; - int num_resultSetList; - Z_ResultSetId **resultSetList; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_DeleteResultSetResponse { - Z_ReferenceId *referenceId; /* OPT */ - Z_DeleteStatus *deleteOperationStatus; - Z_ListStatuses *deleteListStatuses; /* OPT */ - int *numberNotDeleted; /* OPT */ - Z_ListStatuses *bulkStatuses; /* OPT */ - Z_InternationalString *deleteMessage; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_ListStatus { - Z_ResultSetId *id; - Z_DeleteStatus *status; -}; - -struct Z_ListStatuses { - int num; - Z_ListStatus **elements; -}; - -#define Z_DeleteStatus_success 0 -#define Z_DeleteStatus_resultSetDidNotExist 1 -#define Z_DeleteStatus_previouslyDeletedByTarget 2 -#define Z_DeleteStatus_systemProblemAtTarget 3 -#define Z_DeleteStatus_accessNotAllowed 4 -#define Z_DeleteStatus_resourceControlAtOrigin 5 -#define Z_DeleteStatus_resourceControlAtTarget 6 -#define Z_DeleteStatus_bulkDeleteNotSupported 7 -#define Z_DeleteStatus_notAllRsltSetsDeletedOnBulkDlte 8 -#define Z_DeleteStatus_notAllRequestedResultSetsDeleted 9 -#define Z_DeleteStatus_resultSetInUse 10 - -struct Z_AccessControlRequest { - Z_ReferenceId *referenceId; /* OPT */ - int which; - union { - Odr_oct *simpleForm; - Z_External *externallyDefined; -#define Z_AccessControlRequest_simpleForm 1 -#define Z_AccessControlRequest_externallyDefined 2 - } u; - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_AccessControlResponse { - Z_ReferenceId *referenceId; /* OPT */ - int which; - union { - Odr_oct *simpleForm; - Z_External *externallyDefined; -#define Z_AccessControlResponse_simpleForm 1 -#define Z_AccessControlResponse_externallyDefined 2 - } u; /* OPT */ - Z_DiagRec *diagnostic; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_ResourceControlRequest { - Z_ReferenceId *referenceId; /* OPT */ - bool_t *suspendedFlag; /* OPT */ - Z_ResourceReport *resourceReport; /* OPT */ -#define Z_ResourceControlRequest_subset 1 -#define Z_ResourceControlRequest_interim 2 -#define Z_ResourceControlRequest_none 3 - int *partialResultsAvailable; /* OPT */ - bool_t *responseRequired; - bool_t *triggeredRequestFlag; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_ResourceControlResponse { - Z_ReferenceId *referenceId; /* OPT */ - bool_t *continueFlag; - bool_t *resultSetWanted; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_TriggerResourceControlRequest { - Z_ReferenceId *referenceId; /* OPT */ -#define Z_TriggerResourceControlRequest_resourceReport 1 -#define Z_TriggerResourceControlRequest_resourceControl 2 -#define Z_TriggerResourceControlRequest_cancel 3 - int *requestedAction; - Z_ResourceReportId *prefResourceReportFormat; /* OPT */ - bool_t *resultSetWanted; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_ResourceReportRequest { - Z_ReferenceId *referenceId; /* OPT */ - Z_ReferenceId *opId; /* OPT */ - Z_ResourceReportId *prefResourceReportFormat; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_ResourceReportResponse { - Z_ReferenceId *referenceId; /* OPT */ -#define Z_ResourceReportResponse_success 0 -#define Z_ResourceReportResponse_partial 1 -#define Z_ResourceReportResponse_failure_1 2 -#define Z_ResourceReportResponse_failure_2 3 -#define Z_ResourceReportResponse_failure_3 4 -#define Z_ResourceReportResponse_failure_4 5 -#define Z_ResourceReportResponse_failure_5 6 -#define Z_ResourceReportResponse_failure_6 7 - int *resourceReportStatus; - Z_ResourceReport *resourceReport; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - - - - - -struct Z_ScanRequest { - Z_ReferenceId *referenceId; /* OPT */ - int num_databaseNames; - Z_DatabaseName **databaseNames; - Z_AttributeSetId *attributeSet; /* OPT */ - Z_AttributesPlusTerm *termListAndStartPoint; - int *stepSize; /* OPT */ - int *numberOfTermsRequested; - int *preferredPositionInResponse; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_ScanResponse { - Z_ReferenceId *referenceId; /* OPT */ - int *stepSize; /* OPT */ -#define Z_Scan_success 0 -#define Z_Scan_partial_1 1 -#define Z_Scan_partial_2 2 -#define Z_Scan_partial_3 3 -#define Z_Scan_partial_4 4 -#define Z_Scan_partial_5 5 -#define Z_Scan_failure 6 - int *scanStatus; - int *numberOfEntriesReturned; - int *positionOfTerm; /* OPT */ - Z_ListEntries *entries; /* OPT */ - Z_AttributeSetId *attributeSet; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_ListEntries { - int num_entries; - Z_Entry **entries; /* OPT */ - int num_nonsurrogateDiagnostics; - Z_DiagRec **nonsurrogateDiagnostics; /* OPT */ -}; - -struct Z_Entry { - int which; - union { - Z_TermInfo *termInfo; - Z_DiagRec *surrogateDiagnostic; -#define Z_Entry_termInfo 1 -#define Z_Entry_surrogateDiagnostic 2 - } u; -}; - -struct Z_TermInfo { - Z_Term *term; - Z_InternationalString *displayTerm; /* OPT */ - Z_AttributeList *suggestedAttributes; /* OPT */ - int num_alternativeTerm; - Z_AttributesPlusTerm **alternativeTerm; /* OPT */ - int *globalOccurrences; /* OPT */ - Z_OccurrenceByAttributes *byAttributes; /* OPT */ - Z_OtherInformation *otherTermInfo; /* OPT */ -}; - -struct Z_byDatabaseList_s { - Z_DatabaseName *db; - int *num; /* OPT */ - Z_OtherInformation *otherDbInfo; /* OPT */ -}; - -struct Z_byDatabaseList { - int num; - Z_byDatabaseList_s **elements; -}; - -struct Z_OccurrenceByAttributesElem { - Z_AttributeList *attributes; - int which; - union { - int *global; - Z_byDatabaseList *byDatabase; -#define Z_OccurrenceByAttributesElem_global 1 -#define Z_OccurrenceByAttributesElem_byDatabase 2 - } u; /* OPT */ - Z_OtherInformation *otherOccurInfo; /* OPT */ -}; - -struct Z_OccurrenceByAttributes { - int num; - Z_OccurrenceByAttributesElem **elements; -}; - -struct Z_SortKeySpecList { - int num_specs; - Z_SortKeySpec **specs; -}; - -struct Z_SortRequest { - Z_ReferenceId *referenceId; /* OPT */ - int num_inputResultSetNames; - Z_InternationalString **inputResultSetNames; - Z_InternationalString *sortedResultSetName; - Z_SortKeySpecList *sortSequence; - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_SortResponse { - Z_ReferenceId *referenceId; /* OPT */ -#define Z_SortResponse_success 0 -#define Z_SortResponse_partial_1 1 -#define Z_SortResponse_failure 2 - int *sortStatus; -#define Z_SortResponse_empty 1 -#define Z_SortResponse_interim 2 -#define Z_SortResponse_unchanged 3 -#define Z_SortResponse_none 4 - int *resultSetStatus; /* OPT */ - int num_diagnostics; - Z_DiagRec **diagnostics; /* OPT */ - int *resultCount; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_SortKeySpec { - Z_SortElement *sortElement; -#define Z_SortKeySpec_ascending 0 -#define Z_SortKeySpec_descending 1 -#define Z_SortKeySpec_ascendingByFrequency 3 -#define Z_SortKeySpec_descendingByfrequency 4 - int *sortRelation; -#define Z_SortKeySpec_caseSensitive 0 -#define Z_SortKeySpec_caseInsensitive 1 - int *caseSensitivity; - int which; - union { - Odr_null *abort; - Odr_null *null; - Odr_oct *missingValueData; -#define Z_SortKeySpec_abort 1 -#define Z_SortKeySpec_null 2 -#define Z_SortKeySpec_missingValueData 3 - } u; /* OPT */ -}; - -struct Z_SortDbSpecificList_s { - Z_DatabaseName *databaseName; - Z_SortKey *dbSort; -}; - -struct Z_SortDbSpecificList { - int num; - Z_SortDbSpecificList_s **elements; -}; - -struct Z_SortElement { - int which; - union { - Z_SortKey *generic; - Z_SortDbSpecificList *databaseSpecific; -#define Z_SortElement_generic 1 -#define Z_SortElement_databaseSpecific 2 - } u; -}; - -struct Z_SortAttributes { - Z_AttributeSetId *id; - Z_AttributeList *list; -}; - -struct Z_SortKey { - int which; - union { - Z_InternationalString *sortField; - Z_Specification *elementSpec; - Z_SortAttributes *sortAttributes; -#define Z_SortKey_sortField 1 -#define Z_SortKey_elementSpec 2 -#define Z_SortKey_sortAttributes 3 - } u; -}; - -struct Z_ExtendedServicesRequest { - Z_ReferenceId *referenceId; /* OPT */ -#define Z_ExtendedServicesRequest_create 1 -#define Z_ExtendedServicesRequest_delete 2 -#define Z_ExtendedServicesRequest_modify 3 - int *function; - Odr_oid *packageType; - Z_InternationalString *packageName; /* OPT */ - Z_InternationalString *userId; /* OPT */ - Z_IntUnit *retentionTime; /* OPT */ - Z_Permissions *permissions; /* OPT */ - Z_InternationalString *description; /* OPT */ - Z_External *taskSpecificParameters; /* OPT */ -#define Z_ExtendedServicesRequest_wait 1 -#define Z_ExtendedServicesRequest_waitIfPossible 2 -#define Z_ExtendedServicesRequest_dontWait 3 -#define Z_ExtendedServicesRequest_dontReturnPackage 4 - int *waitAction; - Z_ElementSetName *elements; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_ExtendedServicesResponse { - Z_ReferenceId *referenceId; /* OPT */ -#define Z_ExtendedServicesResponse_done 1 -#define Z_ExtendedServicesResponse_accepted 2 -#define Z_ExtendedServicesResponse_failure 3 - int *operationStatus; - int num_diagnostics; - Z_DiagRec **diagnostics; /* OPT */ - Z_External *taskPackage; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_Permissions_s { - Z_InternationalString *userId; /* OPT */ -#define Z_Permissions_s_delete 1 -#define Z_Permissions_s_modifyContents 2 -#define Z_Permissions_s_modifyPermissions 3 -#define Z_Permissions_s_present 4 -#define Z_Permissions_s_invoke 5 - int num_allowableFunctions; - int **allowableFunctions; -}; - -struct Z_Permissions { - int num; - Z_Permissions_s **elements; -}; - -struct Z_Close { - Z_ReferenceId *referenceId; /* OPT */ - Z_CloseReason *closeReason; - Z_InternationalString *diagnosticInformation; /* OPT */ - Z_ResourceReportId *resourceReportFormat; /* OPT */ - Z_ResourceReport *resourceReport; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -#define Z_Close_finished 0 -#define Z_Close_shutdown 1 -#define Z_Close_systemProblem 2 -#define Z_Close_costLimit 3 -#define Z_Close_resources 4 -#define Z_Close_securityViolation 5 -#define Z_Close_protocolError 6 -#define Z_Close_lackOfActivity 7 -#define Z_Close_peerAbort 8 -#define Z_Close_unspecified 9 - -struct Z_DuplicateDetectionRequest { - Z_ReferenceId *referenceId; /* OPT */ - int num_inputResultSetIds; - Z_InternationalString **inputResultSetIds; - Z_InternationalString *outputResultSetName; - Z_External *applicablePortionOfRecord; /* OPT */ - int num_duplicateDetectionCriteria; - Z_DuplicateDetectionCriterion **duplicateDetectionCriteria; /* OPT */ - bool_t *clustering; /* OPT */ - int num_retentionCriteria; - Z_RetentionCriterion **retentionCriteria; - int num_sortCriteria; - Z_SortCriterion **sortCriteria; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_DuplicateDetectionCriterion { - int which; - union { - int *levelOfMatch; - Odr_null *caseSensitive; - Odr_null *punctuationSensitive; - Z_External *regularExpression; - Odr_null *rsDuplicates; -#define Z_DuplicateDetectionCriterion_levelOfMatch 1 -#define Z_DuplicateDetectionCriterion_caseSensitive 2 -#define Z_DuplicateDetectionCriterion_punctuationSensitive 3 -#define Z_DuplicateDetectionCriterion_regularExpression 4 -#define Z_DuplicateDetectionCriterion_rsDuplicates 5 - } u; -}; - -struct Z_RetentionCriterion { - int which; - union { - int *numberOfEntries; - int *percentOfEntries; - Odr_null *duplicatesOnly; - Odr_null *discardRsDuplicates; -#define Z_RetentionCriterion_numberOfEntries 1 -#define Z_RetentionCriterion_percentOfEntries 2 -#define Z_RetentionCriterion_duplicatesOnly 3 -#define Z_RetentionCriterion_discardRsDuplicates 4 - } u; -}; - -struct Z_SortCriterionPreferredDatabases { - int num; - Z_InternationalString **elements; -}; - -struct Z_SortCriterion { - int which; - union { - Odr_null *mostComprehensive; - Odr_null *leastConmprehensive; - Odr_null *mostRecent; - Odr_null *oldest; - Odr_null *leastCost; - Z_SortCriterionPreferredDatabases *preferredDatabases; -#define Z_SortCriterion_mostComprehensive 1 -#define Z_SortCriterion_leastConmprehensive 2 -#define Z_SortCriterion_mostRecent 3 -#define Z_SortCriterion_oldest 4 -#define Z_SortCriterion_leastCost 5 -#define Z_SortCriterion_preferredDatabases 6 - } u; -}; - -struct Z_DuplicateDetectionResponse { - Z_ReferenceId *referenceId; /* OPT */ -#define Z_DuplicateDetectionResponse_success 0 -#define Z_DuplicateDetectionResponse_failure 1 - int *status; - int *resultSetCount; /* OPT */ - int num_diagnostics; - Z_DiagRec **diagnostics; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - - - - - - - - - - - -struct Z_OtherInformationUnit { - Z_InfoCategory *category; /* OPT */ - int which; - union { - Z_InternationalString *characterInfo; - Odr_oct *binaryInfo; - Z_External *externallyDefinedInfo; - Odr_oid *oid; -#define Z_OtherInfo_characterInfo 1 -#define Z_OtherInfo_binaryInfo 2 -#define Z_OtherInfo_externallyDefinedInfo 3 -#define Z_OtherInfo_oid 4 - } information; -}; - -struct Z_OtherInformation { - int num_elements; - Z_OtherInformationUnit **list; -}; - -struct Z_InfoCategory { - Odr_oid *categoryTypeId; /* OPT */ - int *categoryValue; -}; - -struct Z_IntUnit { - int *value; - Z_Unit *unitUsed; -}; - -struct Z_Unit { - Z_InternationalString *unitSystem; /* OPT */ - Z_StringOrNumeric *unitType; /* OPT */ - Z_StringOrNumeric *unit; /* OPT */ - int *scaleFactor; /* OPT */ -}; - - - -struct Z_StringOrNumeric { - int which; - union { - Z_InternationalString *string; - int *numeric; -#define Z_StringOrNumeric_string 1 -#define Z_StringOrNumeric_numeric 2 - } u; -}; - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -int z_ANY_type_0 (ODR o, void **p, int opt); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-date.h b/dependencies/yaz_3.0.14/include/yaz/z-date.h deleted file mode 100644 index 424bd55..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-date.h +++ /dev/null @@ -1,137 +0,0 @@ -/** \file z-date.h - \brief ASN.1 Module UserInfoFormat-dateTime - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_date_H -#define z_date_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_DateTime Z_DateTime; -YAZ_EXPORT int z_DateTime (ODR o, Z_DateTime **p, int opt, const char *name); - -typedef struct Z_DateMonthAndDay Z_DateMonthAndDay; -YAZ_EXPORT int z_DateMonthAndDay (ODR o, Z_DateMonthAndDay **p, int opt, const char *name); - -typedef struct Z_DateQuarter Z_DateQuarter; -YAZ_EXPORT int z_DateQuarter (ODR o, Z_DateQuarter **p, int opt, const char *name); - -typedef struct Z_DateSeason Z_DateSeason; -YAZ_EXPORT int z_DateSeason (ODR o, Z_DateSeason **p, int opt, const char *name); - -typedef struct Z_Era Z_Era; -YAZ_EXPORT int z_Era (ODR o, Z_Era **p, int opt, const char *name); - -typedef struct Z_DateFlags Z_DateFlags; -YAZ_EXPORT int z_DateFlags (ODR o, Z_DateFlags **p, int opt, const char *name); - -typedef struct Z_Date Z_Date; -YAZ_EXPORT int z_Date (ODR o, Z_Date **p, int opt, const char *name); - -typedef struct Z_Time Z_Time; -YAZ_EXPORT int z_Time (ODR o, Z_Time **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_DateTime { - Z_Date *date; /* OPT */ - Z_Time *time; /* OPT */ -}; - -struct Z_DateMonthAndDay { - int *month; - int *day; /* OPT */ -}; - -struct Z_DateQuarter { - int which; - union { - Odr_null *first; - Odr_null *second; - Odr_null *third; - Odr_null *fourth; -#define Z_DateQuarter_first 1 -#define Z_DateQuarter_second 2 -#define Z_DateQuarter_third 3 -#define Z_DateQuarter_fourth 4 - } u; -}; - -struct Z_DateSeason { - int which; - union { - Odr_null *winter; - Odr_null *spring; - Odr_null *summer; - Odr_null *autumn; -#define Z_DateSeason_winter 1 -#define Z_DateSeason_spring 2 -#define Z_DateSeason_summer 3 -#define Z_DateSeason_autumn 4 - } u; -}; - -struct Z_Era { - int which; - union { - Odr_null *decade; - Odr_null *century; - Odr_null *millennium; -#define Z_Era_decade 1 -#define Z_Era_century 2 -#define Z_Era_millennium 3 - } u; -}; - -struct Z_DateFlags { - Odr_null *circa; /* OPT */ - Z_Era *era; /* OPT */ -}; - -struct Z_Date { - int *year; - int which; - union { - Z_DateMonthAndDay *monthAndDay; - int *julianDay; - int *weekNumber; - Z_DateQuarter *quarter; - Z_DateSeason *season; -#define Z_Date_monthAndDay 1 -#define Z_Date_julianDay 2 -#define Z_Date_weekNumber 3 -#define Z_Date_quarter 4 -#define Z_Date_season 5 - } u; /* OPT */ - Z_DateFlags *flags; /* OPT */ -}; - -struct Z_Time { - int *hour; - int *minute; /* OPT */ - int *second; /* OPT */ - Z_IntUnit *partOfSecond; /* OPT */ - int which; - union { - Odr_null *local; - Odr_null *utc; - int *utcOffset; -#define Z_Time_local 1 -#define Z_Time_utc 2 -#define Z_Time_utcOffset 3 - } u; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-diag1.h b/dependencies/yaz_3.0.14/include/yaz/z-diag1.h deleted file mode 100644 index 0b1c154..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-diag1.h +++ /dev/null @@ -1,357 +0,0 @@ -/** \file z-diag1.h - \brief ASN.1 Module DiagnosticFormatDiag1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_diag1_H -#define z_diag1_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_DiagnosticFormat_s Z_DiagnosticFormat_s; -YAZ_EXPORT int z_DiagnosticFormat_s (ODR o, Z_DiagnosticFormat_s **p, int opt, const char *name); - -typedef struct Z_DiagnosticFormat Z_DiagnosticFormat; -YAZ_EXPORT int z_DiagnosticFormat (ODR o, Z_DiagnosticFormat **p, int opt, const char *name); - -typedef struct Z_TooMany Z_TooMany; -YAZ_EXPORT int z_TooMany (ODR o, Z_TooMany **p, int opt, const char *name); - -typedef struct Z_BadSpec Z_BadSpec; -YAZ_EXPORT int z_BadSpec (ODR o, Z_BadSpec **p, int opt, const char *name); - -typedef struct Z_DbUnavail_0 Z_DbUnavail_0; -YAZ_EXPORT int z_DbUnavail_0 (ODR o, Z_DbUnavail_0 **p, int opt, const char *name); - -typedef struct Z_DbUnavail Z_DbUnavail; -YAZ_EXPORT int z_DbUnavail (ODR o, Z_DbUnavail **p, int opt, const char *name); - -typedef struct Z_Attribute Z_Attribute; -YAZ_EXPORT int z_Attribute (ODR o, Z_Attribute **p, int opt, const char *name); - -typedef struct Z_AttCombo Z_AttCombo; -YAZ_EXPORT int z_AttCombo (ODR o, Z_AttCombo **p, int opt, const char *name); - -typedef struct Z_DiagTerm Z_DiagTerm; -YAZ_EXPORT int z_DiagTerm (ODR o, Z_DiagTerm **p, int opt, const char *name); - -typedef struct Z_Proximity Z_Proximity; -YAZ_EXPORT int z_Proximity (ODR o, Z_Proximity **p, int opt, const char *name); - -typedef struct Z_AttrListList Z_AttrListList; -YAZ_EXPORT int z_AttrListList (ODR o, Z_AttrListList **p, int opt, const char *name); - -typedef struct Z_Scan Z_Scan; -YAZ_EXPORT int z_Scan (ODR o, Z_Scan **p, int opt, const char *name); - -typedef struct Z_StringList Z_StringList; -YAZ_EXPORT int z_StringList (ODR o, Z_StringList **p, int opt, const char *name); - -typedef struct Z_Sort Z_Sort; -YAZ_EXPORT int z_Sort (ODR o, Z_Sort **p, int opt, const char *name); - -typedef struct Z_Segmentation Z_Segmentation; -YAZ_EXPORT int z_Segmentation (ODR o, Z_Segmentation **p, int opt, const char *name); - -typedef struct Z_ExtServices Z_ExtServices; -YAZ_EXPORT int z_ExtServices (ODR o, Z_ExtServices **p, int opt, const char *name); - -typedef struct Z_OidList Z_OidList; -YAZ_EXPORT int z_OidList (ODR o, Z_OidList **p, int opt, const char *name); - -typedef struct Z_AltOidList Z_AltOidList; -YAZ_EXPORT int z_AltOidList (ODR o, Z_AltOidList **p, int opt, const char *name); - -typedef struct Z_AccessCtrl Z_AccessCtrl; -YAZ_EXPORT int z_AccessCtrl (ODR o, Z_AccessCtrl **p, int opt, const char *name); - -typedef struct Z_RecordSyntax Z_RecordSyntax; -YAZ_EXPORT int z_RecordSyntax (ODR o, Z_RecordSyntax **p, int opt, const char *name); - -typedef struct Z_DiagFormat Z_DiagFormat; -YAZ_EXPORT int z_DiagFormat (ODR o, Z_DiagFormat **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_DiagnosticFormat_s { - int which; - union { - Z_DefaultDiagFormat *defaultDiagRec; - Z_DiagFormat *explicitDiagnostic; -#define Z_DiagnosticFormat_s_defaultDiagRec 1 -#define Z_DiagnosticFormat_s_explicitDiagnostic 2 - } u; /* OPT */ - Z_InternationalString *message; /* OPT */ -}; - -struct Z_DiagnosticFormat { - int num; - Z_DiagnosticFormat_s **elements; -}; - -struct Z_TooMany { -#define Z_TooMany_argumentWords 1 -#define Z_TooMany_truncatedWords 2 -#define Z_TooMany_booleanOperators 3 -#define Z_TooMany_incompleteSubfields 4 -#define Z_TooMany_characters 5 -#define Z_TooMany_recordsRetrieved 6 -#define Z_TooMany_dataBasesSpecified 7 -#define Z_TooMany_resultSetsCreated 8 -#define Z_TooMany_indexTermsProcessed 9 - int *tooManyWhat; - int *max; /* OPT */ -}; - -struct Z_BadSpec { - Z_Specification *spec; - Z_DatabaseName *db; /* OPT */ - int num_goodOnes; - Z_Specification **goodOnes; /* OPT */ -}; - -struct Z_DbUnavail_0 { -#define Z_DbUnavail_0_doesNotExist 0 -#define Z_DbUnavail_0_existsButUnavail 1 -#define Z_DbUnavail_0_locked 2 -#define Z_DbUnavail_0_accessDenied 3 - int *reasonCode; /* OPT */ - Z_InternationalString *message; /* OPT */ -}; - -struct Z_DbUnavail { - Z_DatabaseName *db; - Z_DbUnavail_0 *why; -}; - -struct Z_Attribute { - Odr_oid *id; - int *type; /* OPT */ - int *value; /* OPT */ - Z_Term *term; /* OPT */ -}; - -struct Z_AttCombo { - Z_AttributeList *unsupportedCombination; - int num_recommendedAlternatives; - Z_AttributeList **recommendedAlternatives; /* OPT */ -}; - -struct Z_DiagTerm { -#define Z_DiagTerm_codedValue 1 -#define Z_DiagTerm_unparsable 2 -#define Z_DiagTerm_tooShort 3 -#define Z_DiagTerm_type 4 - int *problem; /* OPT */ - Z_Term *term; -}; - -struct Z_Proximity { - int which; - union { - Odr_null *resultSets; - Z_InternationalString *badSet; - int *relation; - int *unit; - int *distance; - Z_AttributeList *attributes; - Odr_null *ordered; - Odr_null *exclusion; -#define Z_Proximity_resultSets 1 -#define Z_Proximity_badSet 2 -#define Z_Proximity_relation 3 -#define Z_Proximity_unit 4 -#define Z_Proximity_distance 5 -#define Z_Proximity_attributes 6 -#define Z_Proximity_ordered 7 -#define Z_Proximity_exclusion 8 - } u; -}; - -struct Z_AttrListList { - int num; - Z_AttributeList **elements; -}; - -struct Z_Scan { - int which; - union { - Odr_null *nonZeroStepSize; - Odr_null *specifiedStepSize; - Odr_null *termList1; - Z_AttrListList *termList2; -#define Z_Scan_mustBeOne 1 -#define Z_Scan_mustBePositive 2 -#define Z_Scan_mustBeNonNegative 3 -#define Z_Scan_other 4 - int *posInResponse; - Odr_null *resources; - Odr_null *endOfList; -#define Z_Scan_nonZeroStepSize 1 -#define Z_Scan_specifiedStepSize 2 -#define Z_Scan_termList1 3 -#define Z_Scan_termList2 4 -#define Z_Scan_posInResponse 5 -#define Z_Scan_resources 6 -#define Z_Scan_endOfList 7 - } u; -}; - -struct Z_StringList { - int num; - Z_InternationalString **elements; -}; - -struct Z_Sort { - int which; - union { - Odr_null *sequence; - Odr_null *noRsName; - int *tooMany; - Odr_null *incompatible; - Odr_null *generic; - Odr_null *dbSpecific; - Z_SortElement *sortElement; -#define Z_Sort_tooMany 1 -#define Z_Sort_duplicate 2 - int *key; - Odr_null *action; -#define Z_Sort_relation 1 -#define Z_Sort_case 2 -#define Z_Sort_action 3 -#define Z_Sort_sort 4 - int *illegal; - Z_StringList *inputTooLarge; - Odr_null *aggregateTooLarge; -#define Z_SortD_sequence 1 -#define Z_SortD_noRsName 2 -#define Z_SortD_tooMany 3 -#define Z_SortD_incompatible 4 -#define Z_SortD_generic 5 -#define Z_SortD_dbSpecific 6 -#define Z_SortD_sortElement 7 -#define Z_SortD_key 8 -#define Z_SortD_action 9 -#define Z_SortD_illegal 10 -#define Z_SortD_inputTooLarge 11 -#define Z_SortD_aggregateTooLarge 12 - } u; -}; - -struct Z_Segmentation { - int which; - union { - Odr_null *segmentCount; - int *segmentSize; -#define Z_Segmentation_segmentCount 1 -#define Z_Segmentation_segmentSize 2 - } u; -}; - -struct Z_ExtServices { - int which; - union { -#define Z_ExtServices_nameInUse 1 -#define Z_ExtServices_noSuchName 2 -#define Z_ExtServices_quota 3 -#define Z_ExtServices_type 4 - int *req; -#define Z_ExtServices_id 1 -#define Z_ExtServices_modifyDelete 2 - int *permission; -#define Z_ExtServices_failed 1 -#define Z_ExtServices_service 2 -#define Z_ExtServices_parameters 3 - int *immediate; -#define Z_ExtServices_req 1 -#define Z_ExtServices_permission 2 -#define Z_ExtServices_immediate 3 - } u; -}; - -struct Z_OidList { - int num; - Odr_oid **elements; -}; - -struct Z_AltOidList { - int num; - Odr_oid **elements; -}; - -struct Z_AccessCtrl { - int which; - union { - Odr_null *noUser; - Odr_null *refused; - Odr_null *simple; - Z_OidList *oid; - Z_AltOidList *alternative; - Odr_null *pwdInv; - Odr_null *pwdExp; -#define Z_AccessCtrl_noUser 1 -#define Z_AccessCtrl_refused 2 -#define Z_AccessCtrl_simple 3 -#define Z_AccessCtrl_oid 4 -#define Z_AccessCtrl_alternative 5 -#define Z_AccessCtrl_pwdInv 6 -#define Z_AccessCtrl_pwdExp 7 - } u; -}; - -struct Z_RecordSyntax { - Odr_oid *unsupportedSyntax; - int num_suggestedAlternatives; - Odr_oid **suggestedAlternatives; /* OPT */ -}; - -struct Z_DiagFormat { - int which; - union { - Z_TooMany *tooMany; - Z_BadSpec *badSpec; - Z_DbUnavail *dbUnavail; -#define Z_DiagFormat_and 0 -#define Z_DiagFormat_or 1 -#define Z_DiagFormat_and_not 2 -#define Z_DiagFormat_prox 3 - int *unSupOp; - Z_Attribute *attribute; - Z_AttCombo *attCombo; - Z_DiagTerm *term; - Z_Proximity *proximity; - Z_Scan *scan; - Z_Sort *sort; - Z_Segmentation *segmentation; - Z_ExtServices *extServices; - Z_AccessCtrl *accessCtrl; - Z_RecordSyntax *recordSyntax; -#define Z_DiagFormat_tooMany 1 -#define Z_DiagFormat_badSpec 2 -#define Z_DiagFormat_dbUnavail 3 -#define Z_DiagFormat_unSupOp 4 -#define Z_DiagFormat_attribute 5 -#define Z_DiagFormat_attCombo 6 -#define Z_DiagFormat_term 7 -#define Z_DiagFormat_proximity 8 -#define Z_DiagFormat_scan 9 -#define Z_DiagFormat_sort 10 -#define Z_DiagFormat_segmentation 11 -#define Z_DiagFormat_extServices 12 -#define Z_DiagFormat_accessCtrl 13 -#define Z_DiagFormat_recordSyntax 14 - } u; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-espec1.h b/dependencies/yaz_3.0.14/include/yaz/z-espec1.h deleted file mode 100644 index 182cab8..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-espec1.h +++ /dev/null @@ -1,145 +0,0 @@ -/** \file z-espec1.h - \brief ASN.1 Module ElementSpecificationFormat-eSpec-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_espec1_H -#define z_espec1_H - -#include -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_Espec1 Z_Espec1; -YAZ_EXPORT int z_Espec1 (ODR o, Z_Espec1 **p, int opt, const char *name); - -typedef struct Z_ElementRequestCompositeElementPrimitives Z_ElementRequestCompositeElementPrimitives; -YAZ_EXPORT int z_ElementRequestCompositeElementPrimitives (ODR o, Z_ElementRequestCompositeElementPrimitives **p, int opt, const char *name); - -typedef struct Z_ElementRequestCompositeElementSpecs Z_ElementRequestCompositeElementSpecs; -YAZ_EXPORT int z_ElementRequestCompositeElementSpecs (ODR o, Z_ElementRequestCompositeElementSpecs **p, int opt, const char *name); - -typedef struct Z_ElementRequestCompositeElement Z_ElementRequestCompositeElement; -YAZ_EXPORT int z_ElementRequestCompositeElement (ODR o, Z_ElementRequestCompositeElement **p, int opt, const char *name); - -typedef struct Z_ElementRequest Z_ElementRequest; -YAZ_EXPORT int z_ElementRequest (ODR o, Z_ElementRequest **p, int opt, const char *name); - -typedef struct Z_SimpleElement Z_SimpleElement; -YAZ_EXPORT int z_SimpleElement (ODR o, Z_SimpleElement **p, int opt, const char *name); - -typedef struct Z_SpecificTag Z_SpecificTag; -YAZ_EXPORT int z_SpecificTag (ODR o, Z_SpecificTag **p, int opt, const char *name); - -typedef struct Z_ETagUnit Z_ETagUnit; -YAZ_EXPORT int z_ETagUnit (ODR o, Z_ETagUnit **p, int opt, const char *name); - -typedef struct Z_ETagPath Z_ETagPath; -YAZ_EXPORT int z_ETagPath (ODR o, Z_ETagPath **p, int opt, const char *name); - -typedef struct Z_OccurValues Z_OccurValues; -YAZ_EXPORT int z_OccurValues (ODR o, Z_OccurValues **p, int opt, const char *name); - -typedef struct Z_Occurrences Z_Occurrences; -YAZ_EXPORT int z_Occurrences (ODR o, Z_Occurrences **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_Espec1 { - int num_elementSetNames; - Z_InternationalString **elementSetNames; /* OPT */ - Odr_oid *defaultVariantSetId; /* OPT */ - Z_Variant *defaultVariantRequest; /* OPT */ - int *defaultTagType; /* OPT */ - int num_elements; - Z_ElementRequest **elements; /* OPT */ -}; - -struct Z_ElementRequestCompositeElementPrimitives { - int num; - Z_InternationalString **elements; -}; - -struct Z_ElementRequestCompositeElementSpecs { - int num; - Z_SimpleElement **elements; -}; - -struct Z_ElementRequestCompositeElement { - int which; - union { - Z_ElementRequestCompositeElementPrimitives *primitives; - Z_ElementRequestCompositeElementSpecs *specs; -#define Z_ElementRequestCompositeElement_primitives 1 -#define Z_ElementRequestCompositeElement_specs 2 - } u; - Z_ETagPath *deliveryTag; - Z_Variant *variantRequest; /* OPT */ -}; - -struct Z_ElementRequest { - int which; - union { - Z_SimpleElement *simpleElement; - Z_ElementRequestCompositeElement *compositeElement; -#define Z_ERequest_simpleElement 1 -#define Z_ERequest_compositeElement 2 - } u; -}; - -struct Z_SimpleElement { - Z_ETagPath *path; - Z_Variant *variantRequest; /* OPT */ -}; - -struct Z_SpecificTag { - int *tagType; /* OPT */ - Z_StringOrNumeric *tagValue; - Z_Occurrences *occurrences; /* OPT */ -}; - -struct Z_ETagUnit { - int which; - union { - Z_SpecificTag *specificTag; - Z_Occurrences *wildThing; - Odr_null *wildPath; -#define Z_ETagUnit_specificTag 1 -#define Z_ETagUnit_wildThing 2 -#define Z_ETagUnit_wildPath 3 - } u; -}; - -struct Z_ETagPath { - int num_tags; - Z_ETagUnit **tags; -}; - -struct Z_OccurValues { - int *start; - int *howMany; /* OPT */ -}; - -struct Z_Occurrences { - int which; - union { - Odr_null *all; - Odr_null *last; - Z_OccurValues *values; -#define Z_Occurrences_all 1 -#define Z_Occurrences_last 2 -#define Z_Occurrences_values 3 - } u; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-estask.h b/dependencies/yaz_3.0.14/include/yaz/z-estask.h deleted file mode 100644 index 1723364..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-estask.h +++ /dev/null @@ -1,46 +0,0 @@ -/** \file z-estask.h - \brief ASN.1 Module RecordSyntax-ESTaskPackage - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_estask_H -#define z_estask_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_TaskPackage Z_TaskPackage; -YAZ_EXPORT int z_TaskPackage (ODR o, Z_TaskPackage **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_TaskPackage { - Odr_oid *packageType; - Z_InternationalString *packageName; /* OPT */ - Z_InternationalString *userId; /* OPT */ - Z_IntUnit *retentionTime; /* OPT */ - Z_Permissions *permissions; /* OPT */ - Z_InternationalString *description; /* OPT */ - Odr_oct *targetReference; /* OPT */ - char *creationDateTime; /* OPT */ -#define Z_TaskPackage_pending 0 -#define Z_TaskPackage_active 1 -#define Z_TaskPackage_complete 2 -#define Z_TaskPackage_aborted 3 - int *taskStatus; - int num_packageDiagnostics; - Z_DiagRec **packageDiagnostics; /* OPT */ - Z_External *taskSpecificParameters; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-exp.h b/dependencies/yaz_3.0.14/include/yaz/z-exp.h deleted file mode 100644 index 8d7bb74..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-exp.h +++ /dev/null @@ -1,1015 +0,0 @@ -/** \file z-exp.h - \brief ASN.1 Module RecordSyntax-explain - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_exp_H -#define z_exp_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_ExplainRecord Z_ExplainRecord; -YAZ_EXPORT int z_ExplainRecord (ODR o, Z_ExplainRecord **p, int opt, const char *name); - -typedef struct Z_TargetInfo Z_TargetInfo; -YAZ_EXPORT int z_TargetInfo (ODR o, Z_TargetInfo **p, int opt, const char *name); - -typedef struct Z_DatabaseInfo Z_DatabaseInfo; -YAZ_EXPORT int z_DatabaseInfo (ODR o, Z_DatabaseInfo **p, int opt, const char *name); - -typedef struct Z_TagTypeMapping Z_TagTypeMapping; -YAZ_EXPORT int z_TagTypeMapping (ODR o, Z_TagTypeMapping **p, int opt, const char *name); - -typedef struct Z_SchemaInfo Z_SchemaInfo; -YAZ_EXPORT int z_SchemaInfo (ODR o, Z_SchemaInfo **p, int opt, const char *name); - -typedef struct Z_ElementInfo Z_ElementInfo; -YAZ_EXPORT int z_ElementInfo (ODR o, Z_ElementInfo **p, int opt, const char *name); - -typedef struct Z_PathUnit Z_PathUnit; -YAZ_EXPORT int z_PathUnit (ODR o, Z_PathUnit **p, int opt, const char *name); - -typedef struct Z_Path Z_Path; -YAZ_EXPORT int z_Path (ODR o, Z_Path **p, int opt, const char *name); - -typedef struct Z_ElementInfoList Z_ElementInfoList; -YAZ_EXPORT int z_ElementInfoList (ODR o, Z_ElementInfoList **p, int opt, const char *name); - -typedef struct Z_ElementDataType Z_ElementDataType; -YAZ_EXPORT int z_ElementDataType (ODR o, Z_ElementDataType **p, int opt, const char *name); - -typedef int Z_PrimitiveDataType; -YAZ_EXPORT int z_PrimitiveDataType (ODR o, Z_PrimitiveDataType **p, int opt, const char *name); - -typedef struct Z_TagSetElements Z_TagSetElements; -YAZ_EXPORT int z_TagSetElements (ODR o, Z_TagSetElements **p, int opt, const char *name); - -typedef struct Z_TagSetInfo Z_TagSetInfo; -YAZ_EXPORT int z_TagSetInfo (ODR o, Z_TagSetInfo **p, int opt, const char *name); - -typedef struct Z_RecordSyntaxInfo Z_RecordSyntaxInfo; -YAZ_EXPORT int z_RecordSyntaxInfo (ODR o, Z_RecordSyntaxInfo **p, int opt, const char *name); - -typedef struct Z_AttributeSetInfo Z_AttributeSetInfo; -YAZ_EXPORT int z_AttributeSetInfo (ODR o, Z_AttributeSetInfo **p, int opt, const char *name); - -typedef struct Z_AttributeType Z_AttributeType; -YAZ_EXPORT int z_AttributeType (ODR o, Z_AttributeType **p, int opt, const char *name); - -typedef struct Z_AttributeDescription Z_AttributeDescription; -YAZ_EXPORT int z_AttributeDescription (ODR o, Z_AttributeDescription **p, int opt, const char *name); - -typedef struct Z_TermListElement Z_TermListElement; -YAZ_EXPORT int z_TermListElement (ODR o, Z_TermListElement **p, int opt, const char *name); - -typedef struct Z_TermListInfo Z_TermListInfo; -YAZ_EXPORT int z_TermListInfo (ODR o, Z_TermListInfo **p, int opt, const char *name); - -typedef struct Z_ExtendedServicesInfo Z_ExtendedServicesInfo; -YAZ_EXPORT int z_ExtendedServicesInfo (ODR o, Z_ExtendedServicesInfo **p, int opt, const char *name); - -typedef struct Z_AttributeDetails Z_AttributeDetails; -YAZ_EXPORT int z_AttributeDetails (ODR o, Z_AttributeDetails **p, int opt, const char *name); - -typedef struct Z_AttributeSetDetails Z_AttributeSetDetails; -YAZ_EXPORT int z_AttributeSetDetails (ODR o, Z_AttributeSetDetails **p, int opt, const char *name); - -typedef struct Z_AttributeTypeDetails Z_AttributeTypeDetails; -YAZ_EXPORT int z_AttributeTypeDetails (ODR o, Z_AttributeTypeDetails **p, int opt, const char *name); - -typedef struct Z_OmittedAttributeInterpretation Z_OmittedAttributeInterpretation; -YAZ_EXPORT int z_OmittedAttributeInterpretation (ODR o, Z_OmittedAttributeInterpretation **p, int opt, const char *name); - -typedef struct Z_AttributeValue Z_AttributeValue; -YAZ_EXPORT int z_AttributeValue (ODR o, Z_AttributeValue **p, int opt, const char *name); - -typedef struct Z_EScanInfo Z_EScanInfo; -YAZ_EXPORT int z_EScanInfo (ODR o, Z_EScanInfo **p, int opt, const char *name); - -typedef struct Z_TermListDetails Z_TermListDetails; -YAZ_EXPORT int z_TermListDetails (ODR o, Z_TermListDetails **p, int opt, const char *name); - -typedef struct Z_ElementSetDetails Z_ElementSetDetails; -YAZ_EXPORT int z_ElementSetDetails (ODR o, Z_ElementSetDetails **p, int opt, const char *name); - -typedef struct Z_RetrievalRecordDetails Z_RetrievalRecordDetails; -YAZ_EXPORT int z_RetrievalRecordDetails (ODR o, Z_RetrievalRecordDetails **p, int opt, const char *name); - -typedef struct Z_PerElementDetails Z_PerElementDetails; -YAZ_EXPORT int z_PerElementDetails (ODR o, Z_PerElementDetails **p, int opt, const char *name); - -typedef struct Z_RecordTag Z_RecordTag; -YAZ_EXPORT int z_RecordTag (ODR o, Z_RecordTag **p, int opt, const char *name); - -typedef struct Z_SortDetails Z_SortDetails; -YAZ_EXPORT int z_SortDetails (ODR o, Z_SortDetails **p, int opt, const char *name); - -typedef struct Z_SortKeyDetails Z_SortKeyDetails; -YAZ_EXPORT int z_SortKeyDetails (ODR o, Z_SortKeyDetails **p, int opt, const char *name); - -typedef struct Z_ProcessingInformation Z_ProcessingInformation; -YAZ_EXPORT int z_ProcessingInformation (ODR o, Z_ProcessingInformation **p, int opt, const char *name); - -typedef struct Z_VariantSetInfo Z_VariantSetInfo; -YAZ_EXPORT int z_VariantSetInfo (ODR o, Z_VariantSetInfo **p, int opt, const char *name); - -typedef struct Z_VariantClass Z_VariantClass; -YAZ_EXPORT int z_VariantClass (ODR o, Z_VariantClass **p, int opt, const char *name); - -typedef struct Z_VariantType Z_VariantType; -YAZ_EXPORT int z_VariantType (ODR o, Z_VariantType **p, int opt, const char *name); - -typedef struct Z_VariantValue Z_VariantValue; -YAZ_EXPORT int z_VariantValue (ODR o, Z_VariantValue **p, int opt, const char *name); - -typedef struct Z_ValueSetEnumerated Z_ValueSetEnumerated; -YAZ_EXPORT int z_ValueSetEnumerated (ODR o, Z_ValueSetEnumerated **p, int opt, const char *name); - -typedef struct Z_ValueSet Z_ValueSet; -YAZ_EXPORT int z_ValueSet (ODR o, Z_ValueSet **p, int opt, const char *name); - -typedef struct Z_ValueRange Z_ValueRange; -YAZ_EXPORT int z_ValueRange (ODR o, Z_ValueRange **p, int opt, const char *name); - -typedef struct Z_ValueDescription Z_ValueDescription; -YAZ_EXPORT int z_ValueDescription (ODR o, Z_ValueDescription **p, int opt, const char *name); - -typedef struct Z_UnitInfo Z_UnitInfo; -YAZ_EXPORT int z_UnitInfo (ODR o, Z_UnitInfo **p, int opt, const char *name); - -typedef struct Z_UnitType Z_UnitType; -YAZ_EXPORT int z_UnitType (ODR o, Z_UnitType **p, int opt, const char *name); - -typedef struct Z_Units Z_Units; -YAZ_EXPORT int z_Units (ODR o, Z_Units **p, int opt, const char *name); - -typedef struct Z_CategoryList Z_CategoryList; -YAZ_EXPORT int z_CategoryList (ODR o, Z_CategoryList **p, int opt, const char *name); - -typedef struct Z_CategoryInfo Z_CategoryInfo; -YAZ_EXPORT int z_CategoryInfo (ODR o, Z_CategoryInfo **p, int opt, const char *name); - -typedef struct Z_CommonInfo Z_CommonInfo; -YAZ_EXPORT int z_CommonInfo (ODR o, Z_CommonInfo **p, int opt, const char *name); - -typedef struct Z_HumanStringUnit Z_HumanStringUnit; -YAZ_EXPORT int z_HumanStringUnit (ODR o, Z_HumanStringUnit **p, int opt, const char *name); - -typedef struct Z_HumanString Z_HumanString; -YAZ_EXPORT int z_HumanString (ODR o, Z_HumanString **p, int opt, const char *name); - -typedef struct Z_IconObjectUnit Z_IconObjectUnit; -YAZ_EXPORT int z_IconObjectUnit (ODR o, Z_IconObjectUnit **p, int opt, const char *name); - -typedef struct Z_IconObject Z_IconObject; -YAZ_EXPORT int z_IconObject (ODR o, Z_IconObject **p, int opt, const char *name); - -typedef Z_InternationalString Z_LanguageCode; -YAZ_EXPORT int z_LanguageCode (ODR o, Z_LanguageCode **p, int opt, const char *name); - -typedef struct Z_ContactInfo Z_ContactInfo; -YAZ_EXPORT int z_ContactInfo (ODR o, Z_ContactInfo **p, int opt, const char *name); - -typedef struct Z_NetworkAddressIA Z_NetworkAddressIA; -YAZ_EXPORT int z_NetworkAddressIA (ODR o, Z_NetworkAddressIA **p, int opt, const char *name); - -typedef struct Z_NetworkAddressOPA Z_NetworkAddressOPA; -YAZ_EXPORT int z_NetworkAddressOPA (ODR o, Z_NetworkAddressOPA **p, int opt, const char *name); - -typedef struct Z_NetworkAddressOther Z_NetworkAddressOther; -YAZ_EXPORT int z_NetworkAddressOther (ODR o, Z_NetworkAddressOther **p, int opt, const char *name); - -typedef struct Z_NetworkAddress Z_NetworkAddress; -YAZ_EXPORT int z_NetworkAddress (ODR o, Z_NetworkAddress **p, int opt, const char *name); - -typedef struct Z_AccessInfo Z_AccessInfo; -YAZ_EXPORT int z_AccessInfo (ODR o, Z_AccessInfo **p, int opt, const char *name); - -typedef struct Z_QueryTypeDetails Z_QueryTypeDetails; -YAZ_EXPORT int z_QueryTypeDetails (ODR o, Z_QueryTypeDetails **p, int opt, const char *name); - -typedef struct Z_PrivateCapOperator Z_PrivateCapOperator; -YAZ_EXPORT int z_PrivateCapOperator (ODR o, Z_PrivateCapOperator **p, int opt, const char *name); - -typedef struct Z_PrivateCapabilities Z_PrivateCapabilities; -YAZ_EXPORT int z_PrivateCapabilities (ODR o, Z_PrivateCapabilities **p, int opt, const char *name); - -typedef struct Z_RpnCapabilities Z_RpnCapabilities; -YAZ_EXPORT int z_RpnCapabilities (ODR o, Z_RpnCapabilities **p, int opt, const char *name); - -typedef struct Z_Iso8777Capabilities Z_Iso8777Capabilities; -YAZ_EXPORT int z_Iso8777Capabilities (ODR o, Z_Iso8777Capabilities **p, int opt, const char *name); - -typedef struct Z_ProxSupportPrivate Z_ProxSupportPrivate; -YAZ_EXPORT int z_ProxSupportPrivate (ODR o, Z_ProxSupportPrivate **p, int opt, const char *name); - -typedef struct Z_ProxSupportUnit Z_ProxSupportUnit; -YAZ_EXPORT int z_ProxSupportUnit (ODR o, Z_ProxSupportUnit **p, int opt, const char *name); - -typedef struct Z_ProximitySupport Z_ProximitySupport; -YAZ_EXPORT int z_ProximitySupport (ODR o, Z_ProximitySupport **p, int opt, const char *name); - -typedef struct Z_SearchKey Z_SearchKey; -YAZ_EXPORT int z_SearchKey (ODR o, Z_SearchKey **p, int opt, const char *name); - -typedef struct Z_AccessRestrictionsUnit Z_AccessRestrictionsUnit; -YAZ_EXPORT int z_AccessRestrictionsUnit (ODR o, Z_AccessRestrictionsUnit **p, int opt, const char *name); - -typedef struct Z_AccessRestrictions Z_AccessRestrictions; -YAZ_EXPORT int z_AccessRestrictions (ODR o, Z_AccessRestrictions **p, int opt, const char *name); - -typedef struct Z_CostsOtherCharge Z_CostsOtherCharge; -YAZ_EXPORT int z_CostsOtherCharge (ODR o, Z_CostsOtherCharge **p, int opt, const char *name); - -typedef struct Z_Costs Z_Costs; -YAZ_EXPORT int z_Costs (ODR o, Z_Costs **p, int opt, const char *name); - -typedef struct Z_Charge Z_Charge; -YAZ_EXPORT int z_Charge (ODR o, Z_Charge **p, int opt, const char *name); - -typedef struct Z_DatabaseList Z_DatabaseList; -YAZ_EXPORT int z_DatabaseList (ODR o, Z_DatabaseList **p, int opt, const char *name); - -typedef struct Z_AttributeCombinations Z_AttributeCombinations; -YAZ_EXPORT int z_AttributeCombinations (ODR o, Z_AttributeCombinations **p, int opt, const char *name); - -typedef struct Z_AttributeCombination Z_AttributeCombination; -YAZ_EXPORT int z_AttributeCombination (ODR o, Z_AttributeCombination **p, int opt, const char *name); - -typedef struct Z_AttributeValueList Z_AttributeValueList; -YAZ_EXPORT int z_AttributeValueList (ODR o, Z_AttributeValueList **p, int opt, const char *name); - -typedef struct Z_AttributeOccurrence Z_AttributeOccurrence; -YAZ_EXPORT int z_AttributeOccurrence (ODR o, Z_AttributeOccurrence **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_ExplainRecord { - int which; - union { - Z_TargetInfo *targetInfo; - Z_DatabaseInfo *databaseInfo; - Z_SchemaInfo *schemaInfo; - Z_TagSetInfo *tagSetInfo; - Z_RecordSyntaxInfo *recordSyntaxInfo; - Z_AttributeSetInfo *attributeSetInfo; - Z_TermListInfo *termListInfo; - Z_ExtendedServicesInfo *extendedServicesInfo; - Z_AttributeDetails *attributeDetails; - Z_TermListDetails *termListDetails; - Z_ElementSetDetails *elementSetDetails; - Z_RetrievalRecordDetails *retrievalRecordDetails; - Z_SortDetails *sortDetails; - Z_ProcessingInformation *processing; - Z_VariantSetInfo *variants; - Z_UnitInfo *units; - Z_CategoryList *categoryList; -#define Z_Explain_targetInfo 1 -#define Z_Explain_databaseInfo 2 -#define Z_Explain_schemaInfo 3 -#define Z_Explain_tagSetInfo 4 -#define Z_Explain_recordSyntaxInfo 5 -#define Z_Explain_attributeSetInfo 6 -#define Z_Explain_termListInfo 7 -#define Z_Explain_extendedServicesInfo 8 -#define Z_Explain_attributeDetails 9 -#define Z_Explain_termListDetails 10 -#define Z_Explain_elementSetDetails 11 -#define Z_Explain_retrievalRecordDetails 12 -#define Z_Explain_sortDetails 13 -#define Z_Explain_processing 14 -#define Z_Explain_variants 15 -#define Z_Explain_units 16 -#define Z_Explain_categoryList 17 - } u; -}; - -struct Z_TargetInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Z_InternationalString *name; - Z_HumanString *recentNews; /* OPT */ - Z_IconObject *icon; /* OPT */ - bool_t *namedResultSets; - bool_t *multipleDBsearch; - int *maxResultSets; /* OPT */ - int *maxResultSize; /* OPT */ - int *maxTerms; /* OPT */ - Z_IntUnit *timeoutInterval; /* OPT */ - Z_HumanString *welcomeMessage; /* OPT */ - Z_ContactInfo *contactInfo; /* OPT */ - Z_HumanString *description; /* OPT */ - int num_nicknames; - Z_InternationalString **nicknames; /* OPT */ - Z_HumanString *usageRest; /* OPT */ - Z_HumanString *paymentAddr; /* OPT */ - Z_HumanString *hours; /* OPT */ - int num_dbCombinations; - Z_DatabaseList **dbCombinations; /* OPT */ - int num_addresses; - Z_NetworkAddress **addresses; /* OPT */ - int num_languages; - Z_InternationalString **languages; /* OPT */ - Z_AccessInfo *commonAccessInfo; /* OPT */ -}; - -struct Z_DatabaseInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Z_DatabaseName *name; - Odr_null *explainDatabase; /* OPT */ - int num_nicknames; - Z_DatabaseName **nicknames; /* OPT */ - Z_IconObject *icon; /* OPT */ - bool_t *userFee; - bool_t *available; - Z_HumanString *titleString; /* OPT */ - int num_keywords; - Z_HumanString **keywords; /* OPT */ - Z_HumanString *description; /* OPT */ - Z_DatabaseList *associatedDbs; /* OPT */ - Z_DatabaseList *subDbs; /* OPT */ - Z_HumanString *disclaimers; /* OPT */ - Z_HumanString *news; /* OPT */ - int which; - union { - int *actualNumber; - int *approxNumber; -#define Z_DatabaseInfo_actualNumber 1 -#define Z_DatabaseInfo_approxNumber 2 - } u; /* OPT */ - Z_HumanString *defaultOrder; /* OPT */ - int *avRecordSize; /* OPT */ - int *maxRecordSize; /* OPT */ - Z_HumanString *hours; /* OPT */ - Z_HumanString *bestTime; /* OPT */ - char *lastUpdate; /* OPT */ - Z_IntUnit *updateInterval; /* OPT */ - Z_HumanString *coverage; /* OPT */ - bool_t *proprietary; /* OPT */ - Z_HumanString *copyrightText; /* OPT */ - Z_HumanString *copyrightNotice; /* OPT */ - Z_ContactInfo *producerContactInfo; /* OPT */ - Z_ContactInfo *supplierContactInfo; /* OPT */ - Z_ContactInfo *submissionContactInfo; /* OPT */ - Z_AccessInfo *accessInfo; /* OPT */ -}; - -struct Z_TagTypeMapping { - int *tagType; - Odr_oid *tagSet; /* OPT */ - Odr_null *defaultTagType; /* OPT */ -}; - -struct Z_SchemaInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Odr_oid *schema; - Z_InternationalString *name; - Z_HumanString *description; /* OPT */ - int num_tagTypeMapping; - Z_TagTypeMapping **tagTypeMapping; /* OPT */ - int num_recordStructure; - Z_ElementInfo **recordStructure; /* OPT */ -}; - -struct Z_ElementInfo { - Z_InternationalString *elementName; - Z_Path *elementTagPath; - Z_ElementDataType *dataType; /* OPT */ - bool_t *required; - bool_t *repeatable; - Z_HumanString *description; /* OPT */ -}; - -struct Z_PathUnit { - int *tagType; - Z_StringOrNumeric *tagValue; -}; - -struct Z_Path { - int num; - Z_PathUnit **elements; -}; - -struct Z_ElementInfoList { - int num; - Z_ElementInfo **elements; -}; - -struct Z_ElementDataType { - int which; - union { - Z_PrimitiveDataType *primitive; - Z_ElementInfoList *structured; -#define Z_ElementDataType_primitive 1 -#define Z_ElementDataType_structured 2 - } u; -}; - -#define Z_PrimitiveDataType_octetString 0 -#define Z_PrimitiveDataType_numeric 1 -#define Z_PrimitiveDataType_date 2 -#define Z_PrimitiveDataType_external 3 -#define Z_PrimitiveDataType_string 4 -#define Z_PrimitiveDataType_trueOrFalse 5 -#define Z_PrimitiveDataType_oid 6 -#define Z_PrimitiveDataType_intUnit 7 -#define Z_PrimitiveDataType_empty 8 -#define Z_PrimitiveDataType_noneOfTheAbove 100 - -struct Z_TagSetElements { - Z_InternationalString *elementname; - int num_nicknames; - Z_InternationalString **nicknames; /* OPT */ - Z_StringOrNumeric *elementTag; - Z_HumanString *description; /* OPT */ - Z_PrimitiveDataType *dataType; /* OPT */ - Z_OtherInformation *otherTagInfo; /* OPT */ -}; - -struct Z_TagSetInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Odr_oid *tagSet; - Z_InternationalString *name; - Z_HumanString *description; /* OPT */ - int num_elements; - Z_TagSetElements **elements; /* OPT */ -}; - -struct Z_RecordSyntaxInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Odr_oid *recordSyntax; - Z_InternationalString *name; - int num_transferSyntaxes; - Odr_oid **transferSyntaxes; /* OPT */ - Z_HumanString *description; /* OPT */ - Z_InternationalString *asn1Module; /* OPT */ - int num_abstractStructure; - Z_ElementInfo **abstractStructure; /* OPT */ -}; - -struct Z_AttributeSetInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Z_AttributeSetId *attributeSet; - Z_InternationalString *name; - int num_attributes; - Z_AttributeType **attributes; /* OPT */ - Z_HumanString *description; /* OPT */ -}; - -struct Z_AttributeType { - Z_InternationalString *name; /* OPT */ - Z_HumanString *description; /* OPT */ - int *attributeType; - int num_attributeValues; - Z_AttributeDescription **attributeValues; -}; - -struct Z_AttributeDescription { - Z_InternationalString *name; /* OPT */ - Z_HumanString *description; /* OPT */ - Z_StringOrNumeric *attributeValue; - int num_equivalentAttributes; - Z_StringOrNumeric **equivalentAttributes; /* OPT */ -}; - -struct Z_TermListElement { - Z_InternationalString *name; - Z_HumanString *title; /* OPT */ -#define Z_TermListElement_optimized 0 -#define Z_TermListElement_normal 1 -#define Z_TermListElement_expensive 2 -#define Z_TermListElement_filter 3 - int *searchCost; /* OPT */ - bool_t *scanable; - int num_broader; - Z_InternationalString **broader; /* OPT */ - int num_narrower; - Z_InternationalString **narrower; /* OPT */ -}; - -struct Z_TermListInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Z_DatabaseName *databaseName; - int num_termLists; - Z_TermListElement **termLists; -}; - -struct Z_ExtendedServicesInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Odr_oid *type; - Z_InternationalString *name; /* OPT */ - bool_t *privateType; - bool_t *restrictionsApply; - bool_t *feeApply; - bool_t *available; - bool_t *retentionSupported; -#define Z_ExtendedServicesInfo_waitSupported 1 -#define Z_ExtendedServicesInfo_waitAlways 2 -#define Z_ExtendedServicesInfo_waitNotSupported 3 -#define Z_ExtendedServicesInfo_depends 4 -#define Z_ExtendedServicesInfo_notSaying 5 - int *waitAction; - Z_HumanString *description; /* OPT */ - Z_External *specificExplain; /* OPT */ - Z_InternationalString *esASN; /* OPT */ -}; - -struct Z_AttributeDetails { - Z_CommonInfo *commonInfo; /* OPT */ - Z_DatabaseName *databaseName; - int num_attributesBySet; - Z_AttributeSetDetails **attributesBySet; /* OPT */ - Z_AttributeCombinations *attributeCombinations; /* OPT */ -}; - -struct Z_AttributeSetDetails { - Z_AttributeSetId *attributeSet; - int num_attributesByType; - Z_AttributeTypeDetails **attributesByType; -}; - -struct Z_AttributeTypeDetails { - int *attributeType; - Z_OmittedAttributeInterpretation *defaultIfOmitted; /* OPT */ - int num_attributeValues; - Z_AttributeValue **attributeValues; /* OPT */ -}; - -struct Z_OmittedAttributeInterpretation { - Z_StringOrNumeric *defaultValue; /* OPT */ - Z_HumanString *defaultDescription; /* OPT */ -}; - -struct Z_AttributeValue { - Z_StringOrNumeric *value; - Z_HumanString *description; /* OPT */ - int num_subAttributes; - Z_StringOrNumeric **subAttributes; /* OPT */ - int num_superAttributes; - Z_StringOrNumeric **superAttributes; /* OPT */ - Odr_null *partialSupport; /* OPT */ -}; - -struct Z_EScanInfo { - int *maxStepSize; /* OPT */ - Z_HumanString *collatingSequence; /* OPT */ - bool_t *increasing; /* OPT */ -}; - -struct Z_TermListDetails { - Z_CommonInfo *commonInfo; /* OPT */ - Z_InternationalString *termListName; - Z_HumanString *description; /* OPT */ - Z_AttributeCombinations *attributes; /* OPT */ - Z_EScanInfo *scanInfo; /* OPT */ - int *estNumberTerms; /* OPT */ - int num_sampleTerms; - Z_Term **sampleTerms; /* OPT */ -}; - -struct Z_ElementSetDetails { - Z_CommonInfo *commonInfo; /* OPT */ - Z_DatabaseName *databaseName; - Z_ElementSetName *elementSetName; - Odr_oid *recordSyntax; - Odr_oid *schema; - Z_HumanString *description; /* OPT */ - int num_detailsPerElement; - Z_PerElementDetails **detailsPerElement; /* OPT */ -}; - -struct Z_RetrievalRecordDetails { - Z_CommonInfo *commonInfo; /* OPT */ - Z_DatabaseName *databaseName; - Odr_oid *schema; - Odr_oid *recordSyntax; - Z_HumanString *description; /* OPT */ - int num_detailsPerElement; - Z_PerElementDetails **detailsPerElement; /* OPT */ -}; - -struct Z_PerElementDetails { - Z_InternationalString *name; /* OPT */ - Z_RecordTag *recordTag; /* OPT */ - int num_schemaTags; - Z_Path **schemaTags; /* OPT */ - int *maxSize; /* OPT */ - int *minSize; /* OPT */ - int *avgSize; /* OPT */ - int *fixedSize; /* OPT */ - bool_t *repeatable; - bool_t *required; - Z_HumanString *description; /* OPT */ - Z_HumanString *contents; /* OPT */ - Z_HumanString *billingInfo; /* OPT */ - Z_HumanString *restrictions; /* OPT */ - int num_alternateNames; - Z_InternationalString **alternateNames; /* OPT */ - int num_genericNames; - Z_InternationalString **genericNames; /* OPT */ - Z_AttributeCombinations *searchAccess; /* OPT */ -}; - -struct Z_RecordTag { - Z_StringOrNumeric *qualifier; /* OPT */ - Z_StringOrNumeric *tagValue; -}; - -struct Z_SortDetails { - Z_CommonInfo *commonInfo; /* OPT */ - Z_DatabaseName *databaseName; - int num_sortKeys; - Z_SortKeyDetails **sortKeys; /* OPT */ -}; - -struct Z_SortKeyDetails { - Z_HumanString *description; /* OPT */ - int num_elementSpecifications; - Z_Specification **elementSpecifications; /* OPT */ - Z_AttributeCombinations *attributeSpecifications; /* OPT */ - int which; - union { - Odr_null *character; - Odr_null *numeric; - Z_HumanString *structured; -#define Z_SortKeyDetails_character 1 -#define Z_SortKeyDetails_numeric 2 -#define Z_SortKeyDetails_structured 3 - } u; /* OPT */ -#define Z_SortKeyDetails_always 0 -#define Z_SortKeyDetails_never 1 -#define Z_SortKeyDetails_default_yes 2 -#define Z_SortKeyDetails_default_no 3 - int *caseSensitivity; /* OPT */ -}; - -struct Z_ProcessingInformation { - Z_CommonInfo *commonInfo; /* OPT */ - Z_DatabaseName *databaseName; -#define Z_ProcessingInformation_access 0 -#define Z_ProcessingInformation_search 1 -#define Z_ProcessingInformation_retrieval 2 -#define Z_ProcessingInformation_record_presentation 3 -#define Z_ProcessingInformation_record_handling 4 - int *processingContext; - Z_InternationalString *name; - Odr_oid *oid; - Z_HumanString *description; /* OPT */ - Z_External *instructions; /* OPT */ -}; - -struct Z_VariantSetInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Odr_oid *variantSet; - Z_InternationalString *name; - int num_variants; - Z_VariantClass **variants; /* OPT */ -}; - -struct Z_VariantClass { - Z_InternationalString *name; /* OPT */ - Z_HumanString *description; /* OPT */ - int *variantClass; - int num_variantTypes; - Z_VariantType **variantTypes; -}; - -struct Z_VariantType { - Z_InternationalString *name; /* OPT */ - Z_HumanString *description; /* OPT */ - int *variantType; - Z_VariantValue *variantValue; /* OPT */ -}; - -struct Z_VariantValue { - Z_PrimitiveDataType *dataType; - Z_ValueSet *values; /* OPT */ -}; - -struct Z_ValueSetEnumerated { - int num; - Z_ValueDescription **elements; -}; - -struct Z_ValueSet { - int which; - union { - Z_ValueRange *range; - Z_ValueSetEnumerated *enumerated; -#define Z_ValueSet_range 1 -#define Z_ValueSet_enumerated 2 - } u; -}; - -struct Z_ValueRange { - Z_ValueDescription *lower; /* OPT */ - Z_ValueDescription *upper; /* OPT */ -}; - -struct Z_ValueDescription { - int which; - union { - int *integer; - Z_InternationalString *string; - Odr_oct *octets; - Odr_oid *oid; - Z_Unit *unit; - Z_IntUnit *valueAndUnit; -#define Z_ValueDescription_integer 1 -#define Z_ValueDescription_string 2 -#define Z_ValueDescription_octets 3 -#define Z_ValueDescription_oid 4 -#define Z_ValueDescription_unit 5 -#define Z_ValueDescription_valueAndUnit 6 - } u; -}; - -struct Z_UnitInfo { - Z_CommonInfo *commonInfo; /* OPT */ - Z_InternationalString *unitSystem; - Z_HumanString *description; /* OPT */ - int num_units; - Z_UnitType **units; /* OPT */ -}; - -struct Z_UnitType { - Z_InternationalString *name; /* OPT */ - Z_HumanString *description; /* OPT */ - Z_StringOrNumeric *unitType; - int num_units; - Z_Units **units; -}; - -struct Z_Units { - Z_InternationalString *name; /* OPT */ - Z_HumanString *description; /* OPT */ - Z_StringOrNumeric *unit; -}; - -struct Z_CategoryList { - Z_CommonInfo *commonInfo; /* OPT */ - int num_categories; - Z_CategoryInfo **categories; -}; - -struct Z_CategoryInfo { - Z_InternationalString *category; - Z_InternationalString *originalCategory; /* OPT */ - Z_HumanString *description; /* OPT */ - Z_InternationalString *asn1Module; /* OPT */ -}; - -struct Z_CommonInfo { - char *dateAdded; /* OPT */ - char *dateChanged; /* OPT */ - char *expiry; /* OPT */ - Z_LanguageCode *humanStringLanguage; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_HumanStringUnit { - Z_LanguageCode *language; /* OPT */ - Z_InternationalString *text; -}; - -struct Z_HumanString { - int num_strings; - Z_HumanStringUnit **strings; -}; - -struct Z_IconObjectUnit { - int which; - union { - Z_InternationalString *ianaType; - Z_InternationalString *z3950type; - Z_InternationalString *otherType; -#define Z_IconObjectUnit_ianaType 1 -#define Z_IconObjectUnit_z3950type 2 -#define Z_IconObjectUnit_otherType 3 - } u; - Odr_oct *content; -}; - -struct Z_IconObject { - int num; - Z_IconObjectUnit **elements; -}; - - - -struct Z_ContactInfo { - Z_InternationalString *name; /* OPT */ - Z_HumanString *description; /* OPT */ - Z_HumanString *address; /* OPT */ - Z_InternationalString *email; /* OPT */ - Z_InternationalString *phone; /* OPT */ -}; - -struct Z_NetworkAddressIA { - Z_InternationalString *hostAddress; - int *port; -}; - -struct Z_NetworkAddressOPA { - Z_InternationalString *pSel; - Z_InternationalString *sSel; /* OPT */ - Z_InternationalString *tSel; /* OPT */ - Z_InternationalString *nSap; -}; - -struct Z_NetworkAddressOther { - Z_InternationalString *type; - Z_InternationalString *address; -}; - -struct Z_NetworkAddress { - int which; - union { - Z_NetworkAddressIA *internetAddress; - Z_NetworkAddressOPA *osiPresentationAddress; - Z_NetworkAddressOther *other; -#define Z_NetworkAddress_iA 1 -#define Z_NetworkAddress_oPA 2 -#define Z_NetworkAddress_other 3 - } u; -}; - -struct Z_AccessInfo { - int num_queryTypesSupported; - Z_QueryTypeDetails **queryTypesSupported; /* OPT */ - int num_diagnosticsSets; - Odr_oid **diagnosticsSets; /* OPT */ - int num_attributeSetIds; - Z_AttributeSetId **attributeSetIds; /* OPT */ - int num_schemas; - Odr_oid **schemas; /* OPT */ - int num_recordSyntaxes; - Odr_oid **recordSyntaxes; /* OPT */ - int num_resourceChallenges; - Odr_oid **resourceChallenges; /* OPT */ - Z_AccessRestrictions *restrictedAccess; /* OPT */ - Z_Costs *costInfo; /* OPT */ - int num_variantSets; - Odr_oid **variantSets; /* OPT */ - int num_elementSetNames; - Z_ElementSetName **elementSetNames; /* OPT */ - int num_unitSystems; - Z_InternationalString **unitSystems; -}; - -struct Z_QueryTypeDetails { - int which; - union { - Z_PrivateCapabilities *zprivate; - Z_RpnCapabilities *rpn; - Z_Iso8777Capabilities *iso8777; - Z_HumanString *z39_58; - Z_RpnCapabilities *erpn; - Z_HumanString *rankedList; -#define Z_QueryTypeDetails_private 1 -#define Z_QueryTypeDetails_rpn 2 -#define Z_QueryTypeDetails_iso8777 3 -#define Z_QueryTypeDetails_z39_58 4 -#define Z_QueryTypeDetails_erpn 5 -#define Z_QueryTypeDetails_rankedList 6 - } u; -}; - -struct Z_PrivateCapOperator { - Z_InternationalString *roperator; - Z_HumanString *description; /* OPT */ -}; - -struct Z_PrivateCapabilities { - int num_operators; - Z_PrivateCapOperator **operators; /* OPT */ - int num_searchKeys; - Z_SearchKey **searchKeys; /* OPT */ - int num_description; - Z_HumanString **description; /* OPT */ -}; - -struct Z_RpnCapabilities { - int num_operators; - int **operators; /* OPT */ - bool_t *resultSetAsOperandSupported; - bool_t *restrictionOperandSupported; - Z_ProximitySupport *proximity; /* OPT */ -}; - -struct Z_Iso8777Capabilities { - int num_searchKeys; - Z_SearchKey **searchKeys; - Z_HumanString *restrictions; /* OPT */ -}; - -struct Z_ProxSupportPrivate { - int *unit; - Z_HumanString *description; /* OPT */ -}; - -struct Z_ProxSupportUnit { - int which; - union { - int *known; - Z_ProxSupportPrivate *zprivate; -#define Z_ProxSupportUnit_known 1 -#define Z_ProxSupportUnit_private 2 - } u; -}; - -struct Z_ProximitySupport { - bool_t *anySupport; - int num_unitsSupported; - Z_ProxSupportUnit **unitsSupported; /* OPT */ -}; - -struct Z_SearchKey { - Z_InternationalString *searchKey; - Z_HumanString *description; /* OPT */ -}; - -struct Z_AccessRestrictionsUnit { -#define Z_AccessRestrictionsUnit_any 0 -#define Z_AccessRestrictionsUnit_search 1 -#define Z_AccessRestrictionsUnit_present 2 -#define Z_AccessRestrictionsUnit_specific_elements 3 -#define Z_AccessRestrictionsUnit_extended_services 4 -#define Z_AccessRestrictionsUnit_by_database 5 - int *accessType; - Z_HumanString *accessText; /* OPT */ - int num_accessChallenges; - Odr_oid **accessChallenges; /* OPT */ -}; - -struct Z_AccessRestrictions { - int num; - Z_AccessRestrictionsUnit **elements; -}; - -struct Z_CostsOtherCharge { - Z_HumanString *forWhat; - Z_Charge *charge; -}; - -struct Z_Costs { - Z_Charge *connectCharge; /* OPT */ - Z_Charge *connectTime; /* OPT */ - Z_Charge *displayCharge; /* OPT */ - Z_Charge *searchCharge; /* OPT */ - Z_Charge *subscriptCharge; /* OPT */ - int num_otherCharges; - Z_CostsOtherCharge **otherCharges; /* OPT */ -}; - -struct Z_Charge { - Z_IntUnit *cost; - Z_Unit *perWhat; /* OPT */ - Z_HumanString *text; /* OPT */ -}; - -struct Z_DatabaseList { - int num_databases; - Z_DatabaseName **databases; -}; - -struct Z_AttributeCombinations { - Z_AttributeSetId *defaultAttributeSet; - int num_legalCombinations; - Z_AttributeCombination **legalCombinations; -}; - -struct Z_AttributeCombination { - int num_occurrences; - Z_AttributeOccurrence **occurrences; -}; - -struct Z_AttributeValueList { - int num_attributes; - Z_StringOrNumeric **attributes; -}; - -struct Z_AttributeOccurrence { - Z_AttributeSetId *attributeSet; /* OPT */ - int *attributeType; - Odr_null *mustBeSupplied; /* OPT */ - int which; - union { - Odr_null *any_or_none; - Z_AttributeValueList *specific; -#define Z_AttributeOcc_any_or_none 1 -#define Z_AttributeOcc_specific 2 - } attributeValues; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-grs.h b/dependencies/yaz_3.0.14/include/yaz/z-grs.h deleted file mode 100644 index d092bf0..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-grs.h +++ /dev/null @@ -1,181 +0,0 @@ -/** \file z-grs.h - \brief ASN.1 Module RecordSyntax-generic - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_grs_H -#define z_grs_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_GenericRecord Z_GenericRecord; -YAZ_EXPORT int z_GenericRecord (ODR o, Z_GenericRecord **p, int opt, const char *name); - -typedef struct Z_TaggedElement Z_TaggedElement; -YAZ_EXPORT int z_TaggedElement (ODR o, Z_TaggedElement **p, int opt, const char *name); - -typedef struct Z_ElementData Z_ElementData; -YAZ_EXPORT int z_ElementData (ODR o, Z_ElementData **p, int opt, const char *name); - -typedef struct Z_ElementMetaData Z_ElementMetaData; -YAZ_EXPORT int z_ElementMetaData (ODR o, Z_ElementMetaData **p, int opt, const char *name); - -typedef struct Z_TagPath_s Z_TagPath_s; -YAZ_EXPORT int z_TagPath_s (ODR o, Z_TagPath_s **p, int opt, const char *name); - -typedef struct Z_TagPath Z_TagPath; -YAZ_EXPORT int z_TagPath (ODR o, Z_TagPath **p, int opt, const char *name); - -typedef struct Z_Order Z_Order; -YAZ_EXPORT int z_Order (ODR o, Z_Order **p, int opt, const char *name); - -typedef struct Z_Usage Z_Usage; -YAZ_EXPORT int z_Usage (ODR o, Z_Usage **p, int opt, const char *name); - -typedef struct Z_HitVector Z_HitVector; -YAZ_EXPORT int z_HitVector (ODR o, Z_HitVector **p, int opt, const char *name); - -typedef struct Z_Triple Z_Triple; -YAZ_EXPORT int z_Triple (ODR o, Z_Triple **p, int opt, const char *name); - -typedef struct Z_Variant Z_Variant; -YAZ_EXPORT int z_Variant (ODR o, Z_Variant **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_GenericRecord { - int num_elements; - Z_TaggedElement **elements; -}; - -struct Z_TaggedElement { - int *tagType; /* OPT */ - Z_StringOrNumeric *tagValue; - int *tagOccurrence; /* OPT */ - Z_ElementData *content; - Z_ElementMetaData *metaData; /* OPT */ - Z_Variant *appliedVariant; /* OPT */ -}; - -struct Z_ElementData { - int which; - union { - Odr_oct *octets; - int *numeric; - char *date; - Z_External *ext; - Z_InternationalString *string; - bool_t *trueOrFalse; - Odr_oid *oid; - Z_IntUnit *intUnit; - Odr_null *elementNotThere; - Odr_null *elementEmpty; - Odr_null *noDataRequested; - Z_External *diagnostic; - Z_GenericRecord *subtree; -#define Z_ElementData_octets 1 -#define Z_ElementData_numeric 2 -#define Z_ElementData_date 3 -#define Z_ElementData_ext 4 -#define Z_ElementData_string 5 -#define Z_ElementData_trueOrFalse 6 -#define Z_ElementData_oid 7 -#define Z_ElementData_intUnit 8 -#define Z_ElementData_elementNotThere 9 -#define Z_ElementData_elementEmpty 10 -#define Z_ElementData_noDataRequested 11 -#define Z_ElementData_diagnostic 12 -#define Z_ElementData_subtree 13 - } u; -}; - -struct Z_ElementMetaData { - Z_Order *seriesOrder; /* OPT */ - Z_Usage *usageRight; /* OPT */ - int num_hits; - Z_HitVector **hits; /* OPT */ - Z_InternationalString *displayName; /* OPT */ - int num_supportedVariants; - Z_Variant **supportedVariants; /* OPT */ - Z_InternationalString *message; /* OPT */ - Odr_oct *elementDescriptor; /* OPT */ - Z_TagPath *surrogateFor; /* OPT */ - Z_TagPath *surrogateElement; /* OPT */ - Z_External *other; /* OPT */ -}; - -struct Z_TagPath_s { - int *tagType; /* OPT */ - Z_StringOrNumeric *tagValue; - int *tagOccurrence; /* OPT */ -}; - -struct Z_TagPath { - int num; - Z_TagPath_s **elements; -}; - -struct Z_Order { - bool_t *ascending; - int *order; -}; - -struct Z_Usage { -#define Z_Usage_redistributable 1 -#define Z_Usage_restricted 2 -#define Z_Usage_licensePointer 3 - int *type; - Z_InternationalString *restriction; /* OPT */ -}; - -struct Z_HitVector { - Z_Term *satisfier; /* OPT */ - Z_IntUnit *offsetIntoElement; /* OPT */ - Z_IntUnit *length; /* OPT */ - int *hitRank; /* OPT */ - Odr_oct *targetToken; /* OPT */ -}; - -struct Z_Triple { - Odr_oid *variantSetId; /* OPT */ - int *zclass; - int *type; - int which; - union { - int *integer; - Z_InternationalString *internationalString; - Odr_oct *octetString; - Odr_oid *objectIdentifier; - bool_t *boolean; - Odr_null *null; - Z_Unit *unit; - Z_IntUnit *valueAndUnit; -#define Z_Triple_integer 1 -#define Z_Triple_internationalString 2 -#define Z_Triple_octetString 3 -#define Z_Triple_objectIdentifier 4 -#define Z_Triple_boolean 5 -#define Z_Triple_null 6 -#define Z_Triple_unit 7 -#define Z_Triple_valueAndUnit 8 - } value; -}; - -struct Z_Variant { - Odr_oid *globalVariantSetId; /* OPT */ - int num_triples; - Z_Triple **triples; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-mterm2.h b/dependencies/yaz_3.0.14/include/yaz/z-mterm2.h deleted file mode 100644 index 40edd39..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-mterm2.h +++ /dev/null @@ -1,40 +0,0 @@ -/** \file z-mterm2.h - \brief ASN.1 Module UserInfoFormat-multipleSearchTerms-2 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_mterm2_H -#define z_mterm2_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_MultipleSearchTerms_2_s Z_MultipleSearchTerms_2_s; -YAZ_EXPORT int z_MultipleSearchTerms_2_s (ODR o, Z_MultipleSearchTerms_2_s **p, int opt, const char *name); - -typedef struct Z_MultipleSearchTerms_2 Z_MultipleSearchTerms_2; -YAZ_EXPORT int z_MultipleSearchTerms_2 (ODR o, Z_MultipleSearchTerms_2 **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_MultipleSearchTerms_2_s { - Z_Term *term; - bool_t *flag; /* OPT */ -}; - -struct Z_MultipleSearchTerms_2 { - int num; - Z_MultipleSearchTerms_2_s **elements; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-oclcui.h b/dependencies/yaz_3.0.14/include/yaz/z-oclcui.h deleted file mode 100644 index 98ee5c9..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-oclcui.h +++ /dev/null @@ -1,40 +0,0 @@ -/** \file z-oclcui.h - \brief ASN.1 Module UserInfoFormat-oclcUserInformation - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_oclcui_H -#define z_oclcui_H - -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_OCLC_UserInformation Z_OCLC_UserInformation; -YAZ_EXPORT int z_OCLC_UserInformation (ODR o, Z_OCLC_UserInformation **p, int opt, const char *name); - -typedef char Z_DBName; -YAZ_EXPORT int z_DBName (ODR o, Z_DBName **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_OCLC_UserInformation { - char *motd; /* OPT */ - int num_dblist; - Z_DBName **dblist; /* OPT */ - bool_t *failReason; /* OPT */ - int *code; /* OPT */ - char *text; /* OPT */ -}; - - - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-opac.h b/dependencies/yaz_3.0.14/include/yaz/z-opac.h deleted file mode 100644 index 34fac31..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-opac.h +++ /dev/null @@ -1,98 +0,0 @@ -/** \file z-opac.h - \brief ASN.1 Module RecordSyntax-opac - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_opac_H -#define z_opac_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_OPACRecord Z_OPACRecord; -YAZ_EXPORT int z_OPACRecord (ODR o, Z_OPACRecord **p, int opt, const char *name); - -typedef struct Z_HoldingsRecord Z_HoldingsRecord; -YAZ_EXPORT int z_HoldingsRecord (ODR o, Z_HoldingsRecord **p, int opt, const char *name); - -typedef struct Z_HoldingsAndCircData Z_HoldingsAndCircData; -YAZ_EXPORT int z_HoldingsAndCircData (ODR o, Z_HoldingsAndCircData **p, int opt, const char *name); - -typedef struct Z_Volume Z_Volume; -YAZ_EXPORT int z_Volume (ODR o, Z_Volume **p, int opt, const char *name); - -typedef struct Z_CircRecord Z_CircRecord; -YAZ_EXPORT int z_CircRecord (ODR o, Z_CircRecord **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_OPACRecord { - Z_External *bibliographicRecord; /* OPT */ - int num_holdingsData; - Z_HoldingsRecord **holdingsData; /* OPT */ -}; - -struct Z_HoldingsRecord { - int which; - union { - Z_External *marcHoldingsRecord; - Z_HoldingsAndCircData *holdingsAndCirc; -#define Z_HoldingsRecord_marcHoldingsRecord 1 -#define Z_HoldingsRecord_holdingsAndCirc 2 - } u; -}; - -struct Z_HoldingsAndCircData { - Z_InternationalString *typeOfRecord; /* OPT */ - Z_InternationalString *encodingLevel; /* OPT */ - Z_InternationalString *format; /* OPT */ - Z_InternationalString *receiptAcqStatus; /* OPT */ - Z_InternationalString *generalRetention; /* OPT */ - Z_InternationalString *completeness; /* OPT */ - Z_InternationalString *dateOfReport; /* OPT */ - Z_InternationalString *nucCode; /* OPT */ - Z_InternationalString *localLocation; /* OPT */ - Z_InternationalString *shelvingLocation; /* OPT */ - Z_InternationalString *callNumber; /* OPT */ - Z_InternationalString *shelvingData; /* OPT */ - Z_InternationalString *copyNumber; /* OPT */ - Z_InternationalString *publicNote; /* OPT */ - Z_InternationalString *reproductionNote; /* OPT */ - Z_InternationalString *termsUseRepro; /* OPT */ - Z_InternationalString *enumAndChron; /* OPT */ - int num_volumes; - Z_Volume **volumes; /* OPT */ - int num_circulationData; - Z_CircRecord **circulationData; /* OPT */ -}; - -struct Z_Volume { - Z_InternationalString *enumeration; /* OPT */ - Z_InternationalString *chronology; /* OPT */ - Z_InternationalString *enumAndChron; /* OPT */ -}; - -struct Z_CircRecord { - bool_t *availableNow; - Z_InternationalString *availablityDate; /* OPT */ - Z_InternationalString *availableThru; /* OPT */ - Z_InternationalString *restrictions; /* OPT */ - Z_InternationalString *itemId; /* OPT */ - bool_t *renewable; - bool_t *onHold; - Z_InternationalString *enumAndChron; /* OPT */ - Z_InternationalString *midspine; /* OPT */ - Z_InternationalString *temporaryLocation; /* OPT */ -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-rrf1.h b/dependencies/yaz_3.0.14/include/yaz/z-rrf1.h deleted file mode 100644 index b787cf5..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-rrf1.h +++ /dev/null @@ -1,62 +0,0 @@ -/** \file z-rrf1.h - \brief ASN.1 Module ResourceReport-Format-Resource-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_rrf1_H -#define z_rrf1_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_ResourceReport1 Z_ResourceReport1; -YAZ_EXPORT int z_ResourceReport1 (ODR o, Z_ResourceReport1 **p, int opt, const char *name); - -typedef struct Z_Estimate1 Z_Estimate1; -YAZ_EXPORT int z_Estimate1 (ODR o, Z_Estimate1 **p, int opt, const char *name); - -typedef int Z_EstimateType; -YAZ_EXPORT int z_EstimateType (ODR o, Z_EstimateType **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_ResourceReport1 { - int num_estimates; - Z_Estimate1 **estimates; - Z_InternationalString *message; -}; - -struct Z_Estimate1 { - Z_EstimateType *type; - int *value; - int *currency_code; /* OPT */ -}; - -#define Z_EstimateType_currentSearchRecords 1 -#define Z_EstimateType_finalSearchRecords 2 -#define Z_EstimateType_currentPresentRecords 3 -#define Z_EstimateType_finalPresentRecords 4 -#define Z_EstimateType_currentOpTimeProcessing 5 -#define Z_EstimateType_finalOpTimeProcessing 6 -#define Z_EstimateType_currentAssocTime 7 -#define Z_EstimateType_currentOperationCost 8 -#define Z_EstimateType_finalOperationCost 9 -#define Z_EstimateType_currentAssocCost 10 -#define Z_EstimateType_finalOpTimeElapsed 11 -#define Z_EstimateType_percentComplete 12 -#define Z_EstimateType_currentSearchAssocCost 13 -#define Z_EstimateType_currentPresentAssocCost 14 -#define Z_EstimateType_currentConnectAssocCost 15 -#define Z_EstimateType_currentOtherAssocCost 16 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-rrf2.h b/dependencies/yaz_3.0.14/include/yaz/z-rrf2.h deleted file mode 100644 index d9f98d1..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-rrf2.h +++ /dev/null @@ -1,41 +0,0 @@ -/** \file z-rrf2.h - \brief ASN.1 Module ResourceReport-Format-Resource-2 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_rrf2_H -#define z_rrf2_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_ResourceReport2 Z_ResourceReport2; -YAZ_EXPORT int z_ResourceReport2 (ODR o, Z_ResourceReport2 **p, int opt, const char *name); - -typedef struct Z_Estimate2 Z_Estimate2; -YAZ_EXPORT int z_Estimate2 (ODR o, Z_Estimate2 **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_ResourceReport2 { - int num_estimates; - Z_Estimate2 **estimates; /* OPT */ - Z_InternationalString *message; /* OPT */ -}; - -struct Z_Estimate2 { - Z_StringOrNumeric *type; - Z_IntUnit *value; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-sum.h b/dependencies/yaz_3.0.14/include/yaz/z-sum.h deleted file mode 100644 index 0f8d57d..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-sum.h +++ /dev/null @@ -1,54 +0,0 @@ -/** \file z-sum.h - \brief ASN.1 Module RecordSyntax-summary - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_sum_H -#define z_sum_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_BriefBib Z_BriefBib; -YAZ_EXPORT int z_BriefBib (ODR o, Z_BriefBib **p, int opt, const char *name); - -typedef struct Z_FormatSpec Z_FormatSpec; -YAZ_EXPORT int z_FormatSpec (ODR o, Z_FormatSpec **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_BriefBib { - Z_InternationalString *title; - Z_InternationalString *author; /* OPT */ - Z_InternationalString *callNumber; /* OPT */ - Z_InternationalString *recordType; /* OPT */ - Z_InternationalString *bibliographicLevel; /* OPT */ - int num_format; - Z_FormatSpec **format; /* OPT */ - Z_InternationalString *publicationPlace; /* OPT */ - Z_InternationalString *publicationDate; /* OPT */ - Z_InternationalString *targetSystemKey; /* OPT */ - Z_InternationalString *satisfyingElement; /* OPT */ - int *rank; /* OPT */ - Z_InternationalString *documentId; /* OPT */ - Z_InternationalString *abstract; /* OPT */ - Z_OtherInformation *otherInfo; /* OPT */ -}; - -struct Z_FormatSpec { - Z_InternationalString *type; - int *size; /* OPT */ - int *bestPosn; /* OPT */ -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-sutrs.h b/dependencies/yaz_3.0.14/include/yaz/z-sutrs.h deleted file mode 100644 index cd1b6bf..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-sutrs.h +++ /dev/null @@ -1,39 +0,0 @@ -/** \file z-sutrs.h - \brief ASN.1 Module RecordSyntax-SUTRS - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_sutrs_H -#define z_sutrs_H - -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef Odr_oct Z_SUTRS; -YAZ_EXPORT int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name); - -#ifdef __cplusplus -} -#endif -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef Z_InternationalString Z_SutrsRecord; -YAZ_EXPORT int z_SutrsRecord (ODR o, Z_SutrsRecord **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif - - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-uifr1.h b/dependencies/yaz_3.0.14/include/yaz/z-uifr1.h deleted file mode 100644 index d7e8b1f..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-uifr1.h +++ /dev/null @@ -1,98 +0,0 @@ -/** \file z-uifr1.h - \brief ASN.1 Module UserInfoFormat-searchResult-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_uifr1_H -#define z_uifr1_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_SearchInfoReport_s Z_SearchInfoReport_s; -YAZ_EXPORT int z_SearchInfoReport_s (ODR o, Z_SearchInfoReport_s **p, int opt, const char *name); - -typedef struct Z_SearchInfoReport Z_SearchInfoReport; -YAZ_EXPORT int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt, const char *name); - -typedef struct Z_ResultsByDB_sList Z_ResultsByDB_sList; -YAZ_EXPORT int z_ResultsByDB_sList (ODR o, Z_ResultsByDB_sList **p, int opt, const char *name); - -typedef struct Z_ResultsByDB_s Z_ResultsByDB_s; -YAZ_EXPORT int z_ResultsByDB_s (ODR o, Z_ResultsByDB_s **p, int opt, const char *name); - -typedef struct Z_ResultsByDB Z_ResultsByDB; -YAZ_EXPORT int z_ResultsByDB (ODR o, Z_ResultsByDB **p, int opt, const char *name); - -typedef struct Z_QueryExpressionTerm Z_QueryExpressionTerm; -YAZ_EXPORT int z_QueryExpressionTerm (ODR o, Z_QueryExpressionTerm **p, int opt, const char *name); - -typedef struct Z_QueryExpression Z_QueryExpression; -YAZ_EXPORT int z_QueryExpression (ODR o, Z_QueryExpression **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_SearchInfoReport_s { - Z_InternationalString *subqueryId; /* OPT */ - bool_t *fullQuery; - Z_QueryExpression *subqueryExpression; /* OPT */ - Z_QueryExpression *subqueryInterpretation; /* OPT */ - Z_QueryExpression *subqueryRecommendation; /* OPT */ - int *subqueryCount; /* OPT */ - Z_IntUnit *subqueryWeight; /* OPT */ - Z_ResultsByDB *resultsByDB; /* OPT */ -}; - -struct Z_SearchInfoReport { - int num; - Z_SearchInfoReport_s **elements; -}; - -struct Z_ResultsByDB_sList { - int num; - Z_DatabaseName **elements; -}; - -struct Z_ResultsByDB_s { - int which; - union { - Odr_null *all; - Z_ResultsByDB_sList *list; -#define Z_ResultsByDB_s_all 1 -#define Z_ResultsByDB_s_list 2 - } u; - int *count; /* OPT */ - Z_InternationalString *resultSetName; /* OPT */ -}; - -struct Z_ResultsByDB { - int num; - Z_ResultsByDB_s **elements; -}; - -struct Z_QueryExpressionTerm { - Z_Term *queryTerm; - Z_InternationalString *termComment; /* OPT */ -}; - -struct Z_QueryExpression { - int which; - union { - Z_QueryExpressionTerm *term; - Z_Query *query; -#define Z_QueryExpression_term 1 -#define Z_QueryExpression_query 2 - } u; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/z-univ.h b/dependencies/yaz_3.0.14/include/yaz/z-univ.h deleted file mode 100644 index 1b67b6a..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/z-univ.h +++ /dev/null @@ -1,53 +0,0 @@ -/** \file z-univ.h - \brief ASN.1 Module ResourceReport-Format-Universe-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef z_univ_H -#define z_univ_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_UniverseReportHits Z_UniverseReportHits; -YAZ_EXPORT int z_UniverseReportHits (ODR o, Z_UniverseReportHits **p, int opt, const char *name); - -typedef struct Z_UniverseReportDuplicate Z_UniverseReportDuplicate; -YAZ_EXPORT int z_UniverseReportDuplicate (ODR o, Z_UniverseReportDuplicate **p, int opt, const char *name); - -typedef struct Z_UniverseReport Z_UniverseReport; -YAZ_EXPORT int z_UniverseReport (ODR o, Z_UniverseReport **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_UniverseReportHits { - Z_StringOrNumeric *database; - Z_StringOrNumeric *hits; -}; - -struct Z_UniverseReportDuplicate { - Z_StringOrNumeric *hitno; -}; - -struct Z_UniverseReport { - int *totalHits; - int which; - union { - Z_UniverseReportHits *databaseHits; - Z_UniverseReportDuplicate *duplicate; -#define Z_UniverseReport_databaseHits 1 -#define Z_UniverseReport_duplicate 2 - } u; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-admin.h b/dependencies/yaz_3.0.14/include/yaz/zes-admin.h deleted file mode 100644 index 2be03ef..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-admin.h +++ /dev/null @@ -1,113 +0,0 @@ -/** \file zes-admin.h - \brief ASN.1 Module ESFormat-Admin - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_admin_H -#define zes_admin_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_AdminEsRequest Z_AdminEsRequest; -YAZ_EXPORT int z_AdminEsRequest (ODR o, Z_AdminEsRequest **p, int opt, const char *name); - -typedef struct Z_AdminTaskPackage Z_AdminTaskPackage; -YAZ_EXPORT int z_AdminTaskPackage (ODR o, Z_AdminTaskPackage **p, int opt, const char *name); - -typedef struct Z_Admin Z_Admin; -YAZ_EXPORT int z_Admin (ODR o, Z_Admin **p, int opt, const char *name); - -typedef struct Z_ESAdminOriginPartToKeep Z_ESAdminOriginPartToKeep; -YAZ_EXPORT int z_ESAdminOriginPartToKeep (ODR o, Z_ESAdminOriginPartToKeep **p, int opt, const char *name); - -typedef struct Z_ESAdminOriginPartNotToKeep Z_ESAdminOriginPartNotToKeep; -YAZ_EXPORT int z_ESAdminOriginPartNotToKeep (ODR o, Z_ESAdminOriginPartNotToKeep **p, int opt, const char *name); - -typedef struct Z_ESAdminTargetPart Z_ESAdminTargetPart; -YAZ_EXPORT int z_ESAdminTargetPart (ODR o, Z_ESAdminTargetPart **p, int opt, const char *name); - -typedef struct Z_ImportParameters Z_ImportParameters; -YAZ_EXPORT int z_ImportParameters (ODR o, Z_ImportParameters **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_AdminEsRequest { - Z_ESAdminOriginPartToKeep *toKeep; - Z_ESAdminOriginPartNotToKeep *notToKeep; -}; - -struct Z_AdminTaskPackage { - Z_ESAdminOriginPartToKeep *originPart; - Z_ESAdminTargetPart *targetPart; -}; - -struct Z_Admin { - int which; - union { - Z_AdminEsRequest *esRequest; - Z_AdminTaskPackage *taskPackage; -#define Z_Admin_esRequest 1 -#define Z_Admin_taskPackage 2 - } u; -}; - -struct Z_ESAdminOriginPartToKeep { - int which; - union { - Odr_null *reIndex; - Odr_null *truncate; - Odr_null *drop; - Odr_null *create; - Z_ImportParameters *import; - Odr_null *refresh; - Odr_null *commit; - Odr_null *shutdown; - Odr_null *start; -#define Z_ESAdminOriginPartToKeep_reIndex 1 -#define Z_ESAdminOriginPartToKeep_truncate 2 -#define Z_ESAdminOriginPartToKeep_drop 3 -#define Z_ESAdminOriginPartToKeep_create 4 -#define Z_ESAdminOriginPartToKeep_import 5 -#define Z_ESAdminOriginPartToKeep_refresh 6 -#define Z_ESAdminOriginPartToKeep_commit 7 -#define Z_ESAdminOriginPartToKeep_shutdown 8 -#define Z_ESAdminOriginPartToKeep_start 9 - } u; - Z_InternationalString *databaseName; /* OPT */ -}; - -struct Z_ESAdminOriginPartNotToKeep { - int which; - union { - Z_Segment *records; - Odr_null *recordsWillFollow; -#define Z_ESAdminOriginPartNotToKeep_records 1 -#define Z_ESAdminOriginPartNotToKeep_recordsWillFollow 2 - } u; -}; - -struct Z_ESAdminTargetPart { -#define Z_ESAdminTargetPart_success 1 -#define Z_ESAdminTargetPart_partial 2 -#define Z_ESAdminTargetPart_failure 3 - int *updateStatus; - int num_globalDiagnostics; - Z_DiagRec **globalDiagnostics; /* OPT */ -}; - -struct Z_ImportParameters { - Z_InternationalString *recordType; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-expi.h b/dependencies/yaz_3.0.14/include/yaz/zes-expi.h deleted file mode 100644 index 87b9e41..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-expi.h +++ /dev/null @@ -1,108 +0,0 @@ -/** \file zes-expi.h - \brief ASN.1 Module ESFormat-ExportInvocation - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_expi_H -#define zes_expi_H - -#include -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_EIExportInvocationEsRequest Z_EIExportInvocationEsRequest; -YAZ_EXPORT int z_EIExportInvocationEsRequest (ODR o, Z_EIExportInvocationEsRequest **p, int opt, const char *name); - -typedef struct Z_EIExportInvocationTaskPackage Z_EIExportInvocationTaskPackage; -YAZ_EXPORT int z_EIExportInvocationTaskPackage (ODR o, Z_EIExportInvocationTaskPackage **p, int opt, const char *name); - -typedef struct Z_EIExportInvocation Z_EIExportInvocation; -YAZ_EXPORT int z_EIExportInvocation (ODR o, Z_EIExportInvocation **p, int opt, const char *name); - -typedef struct Z_EIOriginPartToKeep Z_EIOriginPartToKeep; -YAZ_EXPORT int z_EIOriginPartToKeep (ODR o, Z_EIOriginPartToKeep **p, int opt, const char *name); - -typedef struct Z_EIOriginPartNotToKeepRanges_s Z_EIOriginPartNotToKeepRanges_s; -YAZ_EXPORT int z_EIOriginPartNotToKeepRanges_s (ODR o, Z_EIOriginPartNotToKeepRanges_s **p, int opt, const char *name); - -typedef struct Z_EIOriginPartNotToKeepRanges Z_EIOriginPartNotToKeepRanges; -YAZ_EXPORT int z_EIOriginPartNotToKeepRanges (ODR o, Z_EIOriginPartNotToKeepRanges **p, int opt, const char *name); - -typedef struct Z_EIOriginPartNotToKeep Z_EIOriginPartNotToKeep; -YAZ_EXPORT int z_EIOriginPartNotToKeep (ODR o, Z_EIOriginPartNotToKeep **p, int opt, const char *name); - -typedef struct Z_EITargetPart Z_EITargetPart; -YAZ_EXPORT int z_EITargetPart (ODR o, Z_EITargetPart **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_EIExportInvocationEsRequest { - Z_EIOriginPartToKeep *toKeep; - Z_EIOriginPartNotToKeep *notToKeep; -}; - -struct Z_EIExportInvocationTaskPackage { - Z_EIOriginPartToKeep *originPart; - Z_EITargetPart *targetPart; /* OPT */ -}; - -struct Z_EIExportInvocation { - int which; - union { - Z_EIExportInvocationEsRequest *esRequest; - Z_EIExportInvocationTaskPackage *taskPackage; -#define Z_EIExportInvocation_esRequest 1 -#define Z_EIExportInvocation_taskPackage 2 - } u; -}; - -struct Z_EIOriginPartToKeep { - int which; - union { - Z_InternationalString *packageName; - Z_ESExportSpecification *packageSpec; -#define Z_EIOriginPartToKeep_packageName 1 -#define Z_EIOriginPartToKeep_packageSpec 2 - } u; - int *numberOfCopies; -}; - -struct Z_EIOriginPartNotToKeepRanges_s { - int *start; - int *count; /* OPT */ -}; - -struct Z_EIOriginPartNotToKeepRanges { - int num; - Z_EIOriginPartNotToKeepRanges_s **elements; -}; - -struct Z_EIOriginPartNotToKeep { - Z_InternationalString *resultSetId; - int which; - union { - Odr_null *all; - Z_EIOriginPartNotToKeepRanges *ranges; -#define Z_EIOriginPartNotToKeep_all 1 -#define Z_EIOriginPartNotToKeep_ranges 2 - } u; -}; - -struct Z_EITargetPart { - Z_IntUnit *estimatedQuantity; /* OPT */ - Z_IntUnit *quantitySoFar; /* OPT */ - Z_IntUnit *estimatedCost; /* OPT */ - Z_IntUnit *costSoFar; /* OPT */ -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-exps.h b/dependencies/yaz_3.0.14/include/yaz/zes-exps.h deleted file mode 100644 index 04fe0ef..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-exps.h +++ /dev/null @@ -1,96 +0,0 @@ -/** \file zes-exps.h - \brief ASN.1 Module ESFormat-ExportSpecification - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_exps_H -#define zes_exps_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_ESExportSpecificationEsRequest Z_ESExportSpecificationEsRequest; -YAZ_EXPORT int z_ESExportSpecificationEsRequest (ODR o, Z_ESExportSpecificationEsRequest **p, int opt, const char *name); - -typedef struct Z_ESExportSpecificationTaskPackage Z_ESExportSpecificationTaskPackage; -YAZ_EXPORT int z_ESExportSpecificationTaskPackage (ODR o, Z_ESExportSpecificationTaskPackage **p, int opt, const char *name); - -typedef struct Z_ESExportSpecification Z_ESExportSpecification; -YAZ_EXPORT int z_ESExportSpecification (ODR o, Z_ESExportSpecification **p, int opt, const char *name); - -typedef struct Z_ESOriginPartToKeep Z_ESOriginPartToKeep; -YAZ_EXPORT int z_ESOriginPartToKeep (ODR o, Z_ESOriginPartToKeep **p, int opt, const char *name); - -typedef struct Z_ESDestinationOther Z_ESDestinationOther; -YAZ_EXPORT int z_ESDestinationOther (ODR o, Z_ESDestinationOther **p, int opt, const char *name); - -typedef struct Z_ESDestination Z_ESDestination; -YAZ_EXPORT int z_ESDestination (ODR o, Z_ESDestination **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_ESExportSpecificationEsRequest { - Z_ESOriginPartToKeep *toKeep; - Odr_null *notToKeep; -}; - -struct Z_ESExportSpecificationTaskPackage { - Z_ESOriginPartToKeep *originPart; - Odr_null *targetPart; -}; - -struct Z_ESExportSpecification { - int which; - union { - Z_ESExportSpecificationEsRequest *esRequest; - Z_ESExportSpecificationTaskPackage *taskPackage; -#define Z_ESExportSpecification_esRequest 1 -#define Z_ESExportSpecification_taskPackage 2 - } u; -}; - -struct Z_ESOriginPartToKeep { - Z_CompSpec *composition; - Z_ESDestination *exportDestination; -}; - -struct Z_ESDestinationOther { - Z_InternationalString *vehicle; /* OPT */ - Z_InternationalString *destination; -}; - -struct Z_ESDestination { - int which; - union { - Z_InternationalString *phoneNumber; - Z_InternationalString *faxNumber; - Z_InternationalString *x400address; - Z_InternationalString *emailAddress; - Z_InternationalString *pagerNumber; - Z_InternationalString *ftpAddress; - Z_InternationalString *ftamAddress; - Z_InternationalString *printerAddress; - Z_ESDestinationOther *other; -#define Z_ESDestination_phoneNumber 1 -#define Z_ESDestination_faxNumber 2 -#define Z_ESDestination_x400address 3 -#define Z_ESDestination_emailAddress 4 -#define Z_ESDestination_pagerNumber 5 -#define Z_ESDestination_ftpAddress 6 -#define Z_ESDestination_ftamAddress 7 -#define Z_ESDestination_printerAddress 8 -#define Z_ESDestination_other 9 - } u; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-order.h b/dependencies/yaz_3.0.14/include/yaz/zes-order.h deleted file mode 100644 index 3de2359..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-order.h +++ /dev/null @@ -1,135 +0,0 @@ -/** \file zes-order.h - \brief ASN.1 Module ESFormat-ItemOrder - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_order_H -#define zes_order_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_IORequest Z_IORequest; -YAZ_EXPORT int z_IORequest (ODR o, Z_IORequest **p, int opt, const char *name); - -typedef struct Z_IOTaskPackage Z_IOTaskPackage; -YAZ_EXPORT int z_IOTaskPackage (ODR o, Z_IOTaskPackage **p, int opt, const char *name); - -typedef struct Z_IOItemOrder Z_IOItemOrder; -YAZ_EXPORT int z_IOItemOrder (ODR o, Z_IOItemOrder **p, int opt, const char *name); - -typedef struct Z_IOContact Z_IOContact; -YAZ_EXPORT int z_IOContact (ODR o, Z_IOContact **p, int opt, const char *name); - -typedef struct Z_IOBilling Z_IOBilling; -YAZ_EXPORT int z_IOBilling (ODR o, Z_IOBilling **p, int opt, const char *name); - -typedef struct Z_IOOriginPartToKeep Z_IOOriginPartToKeep; -YAZ_EXPORT int z_IOOriginPartToKeep (ODR o, Z_IOOriginPartToKeep **p, int opt, const char *name); - -typedef struct Z_IOCreditCardInfo Z_IOCreditCardInfo; -YAZ_EXPORT int z_IOCreditCardInfo (ODR o, Z_IOCreditCardInfo **p, int opt, const char *name); - -typedef struct Z_IOResultSetItem Z_IOResultSetItem; -YAZ_EXPORT int z_IOResultSetItem (ODR o, Z_IOResultSetItem **p, int opt, const char *name); - -typedef struct Z_IOOriginPartNotToKeep Z_IOOriginPartNotToKeep; -YAZ_EXPORT int z_IOOriginPartNotToKeep (ODR o, Z_IOOriginPartNotToKeep **p, int opt, const char *name); - -typedef struct Z_IOTargetPart Z_IOTargetPart; -YAZ_EXPORT int z_IOTargetPart (ODR o, Z_IOTargetPart **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_IORequest { - Z_IOOriginPartToKeep *toKeep; /* OPT */ - Z_IOOriginPartNotToKeep *notToKeep; -}; - -struct Z_IOTaskPackage { - Z_IOOriginPartToKeep *originPart; /* OPT */ - Z_IOTargetPart *targetPart; -}; - -struct Z_IOItemOrder { - int which; - union { - Z_IORequest *esRequest; - Z_IOTaskPackage *taskPackage; -#define Z_IOItemOrder_esRequest 1 -#define Z_IOItemOrder_taskPackage 2 - } u; -}; - -struct Z_IOContact { - Z_InternationalString *name; /* OPT */ - Z_InternationalString *phone; /* OPT */ - Z_InternationalString *email; /* OPT */ -}; - -struct Z_IOBilling { - int which; - union { - Odr_null *billInvoice; - Odr_null *prepay; - Odr_null *depositAccount; - Z_IOCreditCardInfo *creditCard; - Odr_null *cardInfoPreviouslySupplied; - Odr_null *privateKnown; - Z_External *privateNotKnown; -#define Z_IOBilling_billInvoice 1 -#define Z_IOBilling_prepay 2 -#define Z_IOBilling_depositAccount 3 -#define Z_IOBilling_creditCard 4 -#define Z_IOBilling_cardInfoPreviouslySupplied 5 -#define Z_IOBilling_privateKnown 6 -#define Z_IOBilling_privateNotKnown 7 - } u; - Z_InternationalString *customerReference; /* OPT */ - Z_InternationalString *customerPONumber; /* OPT */ -}; - -struct Z_IOOriginPartToKeep { - Z_External *supplDescription; /* OPT */ - Z_IOContact *contact; /* OPT */ - Z_IOBilling *addlBilling; /* OPT */ -}; - -struct Z_IOCreditCardInfo { - Z_InternationalString *nameOnCard; - Z_InternationalString *expirationDate; - Z_InternationalString *cardNumber; -}; - -struct Z_IOResultSetItem { - Z_InternationalString *resultSetId; - int *item; -}; - -struct Z_IOOriginPartNotToKeep { - Z_IOResultSetItem *resultSetItem; /* OPT */ - Z_External *itemRequest; /* OPT */ -}; - -struct Z_IOTargetPart { - Z_External *itemRequest; /* OPT */ - Z_External *statusOrErrorReport; /* OPT */ -#define Z_IOTargetPart_notReceived 1 -#define Z_IOTargetPart_loanQueue 2 -#define Z_IOTargetPart_forwarded 3 -#define Z_IOTargetPart_unfilledCopyright 4 -#define Z_IOTargetPart_filledCopyright 5 - int *auxiliaryStatus; /* OPT */ -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-pquery.h b/dependencies/yaz_3.0.14/include/yaz/zes-pquery.h deleted file mode 100644 index ff0c6d5..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-pquery.h +++ /dev/null @@ -1,80 +0,0 @@ -/** \file zes-pquery.h - \brief ASN.1 Module ESFormat-PersistentQuery - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_pquery_H -#define zes_pquery_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_PQueryPersistentQueryEsRequest Z_PQueryPersistentQueryEsRequest; -YAZ_EXPORT int z_PQueryPersistentQueryEsRequest (ODR o, Z_PQueryPersistentQueryEsRequest **p, int opt, const char *name); - -typedef struct Z_PQueryPersistentQueryTaskPackage Z_PQueryPersistentQueryTaskPackage; -YAZ_EXPORT int z_PQueryPersistentQueryTaskPackage (ODR o, Z_PQueryPersistentQueryTaskPackage **p, int opt, const char *name); - -typedef struct Z_PQueryPersistentQuery Z_PQueryPersistentQuery; -YAZ_EXPORT int z_PQueryPersistentQuery (ODR o, Z_PQueryPersistentQuery **p, int opt, const char *name); - -typedef struct Z_PQueryOriginPartToKeep Z_PQueryOriginPartToKeep; -YAZ_EXPORT int z_PQueryOriginPartToKeep (ODR o, Z_PQueryOriginPartToKeep **p, int opt, const char *name); - -typedef struct Z_PQueryOriginPartNotToKeep Z_PQueryOriginPartNotToKeep; -YAZ_EXPORT int z_PQueryOriginPartNotToKeep (ODR o, Z_PQueryOriginPartNotToKeep **p, int opt, const char *name); - -typedef Z_Query Z_PQueryTargetPart; -YAZ_EXPORT int z_PQueryTargetPart (ODR o, Z_PQueryTargetPart **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_PQueryPersistentQueryEsRequest { - Z_PQueryOriginPartToKeep *toKeep; /* OPT */ - Z_PQueryOriginPartNotToKeep *notToKeep; -}; - -struct Z_PQueryPersistentQueryTaskPackage { - Z_PQueryOriginPartToKeep *originPart; /* OPT */ - Z_PQueryTargetPart *targetPart; -}; - -struct Z_PQueryPersistentQuery { - int which; - union { - Z_PQueryPersistentQueryEsRequest *esRequest; - Z_PQueryPersistentQueryTaskPackage *taskPackage; -#define Z_PQueryPersistentQuery_esRequest 1 -#define Z_PQueryPersistentQuery_taskPackage 2 - } u; -}; - -struct Z_PQueryOriginPartToKeep { - int num_dbNames; - Z_InternationalString **dbNames; /* OPT */ - Z_OtherInformation *additionalSearchInfo; /* OPT */ -}; - -struct Z_PQueryOriginPartNotToKeep { - int which; - union { - Z_InternationalString *package; - Z_Query *query; -#define Z_PQueryOriginPartNotToKeep_package 1 -#define Z_PQueryOriginPartNotToKeep_query 2 - } u; -}; - - - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-psched.h b/dependencies/yaz_3.0.14/include/yaz/zes-psched.h deleted file mode 100644 index 46243a7..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-psched.h +++ /dev/null @@ -1,121 +0,0 @@ -/** \file zes-psched.h - \brief ASN.1 Module ESFormat-PeriodicQuerySchedule - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_psched_H -#define zes_psched_H - -#include -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_PQSPeriodicQueryScheduleEsRequest Z_PQSPeriodicQueryScheduleEsRequest; -YAZ_EXPORT int z_PQSPeriodicQueryScheduleEsRequest (ODR o, Z_PQSPeriodicQueryScheduleEsRequest **p, int opt, const char *name); - -typedef struct Z_PQSPeriodicQueryScheduleTaskPackage Z_PQSPeriodicQueryScheduleTaskPackage; -YAZ_EXPORT int z_PQSPeriodicQueryScheduleTaskPackage (ODR o, Z_PQSPeriodicQueryScheduleTaskPackage **p, int opt, const char *name); - -typedef struct Z_PQSPeriodicQuerySchedule Z_PQSPeriodicQuerySchedule; -YAZ_EXPORT int z_PQSPeriodicQuerySchedule (ODR o, Z_PQSPeriodicQuerySchedule **p, int opt, const char *name); - -typedef struct Z_PQSOriginPartToKeep Z_PQSOriginPartToKeep; -YAZ_EXPORT int z_PQSOriginPartToKeep (ODR o, Z_PQSOriginPartToKeep **p, int opt, const char *name); - -typedef struct Z_PQSOriginPartNotToKeep Z_PQSOriginPartNotToKeep; -YAZ_EXPORT int z_PQSOriginPartNotToKeep (ODR o, Z_PQSOriginPartNotToKeep **p, int opt, const char *name); - -typedef struct Z_PQSTargetPart Z_PQSTargetPart; -YAZ_EXPORT int z_PQSTargetPart (ODR o, Z_PQSTargetPart **p, int opt, const char *name); - -typedef struct Z_PQSPeriod Z_PQSPeriod; -YAZ_EXPORT int z_PQSPeriod (ODR o, Z_PQSPeriod **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_PQSPeriodicQueryScheduleEsRequest { - Z_PQSOriginPartToKeep *toKeep; - Z_PQSOriginPartNotToKeep *notToKeep; -}; - -struct Z_PQSPeriodicQueryScheduleTaskPackage { - Z_PQSOriginPartToKeep *originPart; - Z_PQSTargetPart *targetPart; -}; - -struct Z_PQSPeriodicQuerySchedule { - int which; - union { - Z_PQSPeriodicQueryScheduleEsRequest *esRequest; - Z_PQSPeriodicQueryScheduleTaskPackage *taskPackage; -#define Z_PQSPeriodicQuerySchedule_esRequest 1 -#define Z_PQSPeriodicQuerySchedule_taskPackage 2 - } u; -}; - -struct Z_PQSOriginPartToKeep { - bool_t *activeFlag; - int num_databaseNames; - Z_InternationalString **databaseNames; /* OPT */ -#define Z_PQSOriginPartToKeep_replace 1 -#define Z_PQSOriginPartToKeep_append 2 -#define Z_PQSOriginPartToKeep_createNew 3 - int *resultSetDisposition; /* OPT */ - Z_ESDestination *alertDestination; /* OPT */ - int which; - union { - Z_InternationalString *packageName; - Z_ESExportSpecification *exportPackage; -#define Z_PQSOriginPartToKeep_packageName 1 -#define Z_PQSOriginPartToKeep_exportPackage 2 - } u; /* OPT */ -}; - -struct Z_PQSOriginPartNotToKeep { - int which; - union { - Z_Query *actualQuery; - Z_InternationalString *packageName; -#define Z_PQSOriginPartNotToKeep_actualQuery 1 -#define Z_PQSOriginPartNotToKeep_packageName 2 - } u; /* OPT */ - Z_PQSPeriod *originSuggestedPeriod; /* OPT */ - char *expiration; /* OPT */ - Z_InternationalString *resultSetPackage; /* OPT */ -}; - -struct Z_PQSTargetPart { - Z_Query *actualQuery; - Z_PQSPeriod *targetStatedPeriod; - char *expiration; /* OPT */ - Z_InternationalString *resultSetPackage; /* OPT */ - char *lastQueryTime; - int *lastResultNumber; - int *numberSinceModify; /* OPT */ -}; - -struct Z_PQSPeriod { - int which; - union { - Z_IntUnit *unit; - Odr_null *businessDaily; - Odr_null *continuous; - Z_InternationalString *other; -#define Z_PQSPeriod_unit 1 -#define Z_PQSPeriod_businessDaily 2 -#define Z_PQSPeriod_continuous 3 -#define Z_PQSPeriod_other 4 - } u; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-pset.h b/dependencies/yaz_3.0.14/include/yaz/zes-pset.h deleted file mode 100644 index 497b49a..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-pset.h +++ /dev/null @@ -1,71 +0,0 @@ -/** \file zes-pset.h - \brief ASN.1 Module ESFormat-PersistentResultSet - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_pset_H -#define zes_pset_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_PRPersistentResultSetEsRequest Z_PRPersistentResultSetEsRequest; -YAZ_EXPORT int z_PRPersistentResultSetEsRequest (ODR o, Z_PRPersistentResultSetEsRequest **p, int opt, const char *name); - -typedef struct Z_PRPersistentResultSetTaskPackage Z_PRPersistentResultSetTaskPackage; -YAZ_EXPORT int z_PRPersistentResultSetTaskPackage (ODR o, Z_PRPersistentResultSetTaskPackage **p, int opt, const char *name); - -typedef struct Z_PRPersistentResultSet Z_PRPersistentResultSet; -YAZ_EXPORT int z_PRPersistentResultSet (ODR o, Z_PRPersistentResultSet **p, int opt, const char *name); - -typedef struct Z_PROriginPartNotToKeep Z_PROriginPartNotToKeep; -YAZ_EXPORT int z_PROriginPartNotToKeep (ODR o, Z_PROriginPartNotToKeep **p, int opt, const char *name); - -typedef struct Z_PRTargetPart Z_PRTargetPart; -YAZ_EXPORT int z_PRTargetPart (ODR o, Z_PRTargetPart **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_PRPersistentResultSetEsRequest { - Odr_null *toKeep; - Z_PROriginPartNotToKeep *notToKeep; /* OPT */ -}; - -struct Z_PRPersistentResultSetTaskPackage { - Odr_null *originPart; - Z_PRTargetPart *targetPart; /* OPT */ -}; - -struct Z_PRPersistentResultSet { - int which; - union { - Z_PRPersistentResultSetEsRequest *esRequest; - Z_PRPersistentResultSetTaskPackage *taskPackage; -#define Z_PRPersistentResultSet_esRequest 1 -#define Z_PRPersistentResultSet_taskPackage 2 - } u; -}; - -struct Z_PROriginPartNotToKeep { - Z_InternationalString *originSuppliedResultSet; /* OPT */ -#define Z_PROriginPartNotToKeep_replace 1 -#define Z_PROriginPartNotToKeep_append 2 - int *replaceOrAppend; /* OPT */ -}; - -struct Z_PRTargetPart { - Z_InternationalString *targetSuppliedResultSet; /* OPT */ - int *numberOfRecords; /* OPT */ -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-update.h b/dependencies/yaz_3.0.14/include/yaz/zes-update.h deleted file mode 100644 index 9916a5c..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-update.h +++ /dev/null @@ -1,166 +0,0 @@ -/** \file zes-update.h - \brief ASN.1 Module ESFormat-Update - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_update_H -#define zes_update_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_IUUpdateEsRequest Z_IUUpdateEsRequest; -YAZ_EXPORT int z_IUUpdateEsRequest (ODR o, Z_IUUpdateEsRequest **p, int opt, const char *name); - -typedef struct Z_IUUpdateTaskPackage Z_IUUpdateTaskPackage; -YAZ_EXPORT int z_IUUpdateTaskPackage (ODR o, Z_IUUpdateTaskPackage **p, int opt, const char *name); - -typedef struct Z_IUUpdate Z_IUUpdate; -YAZ_EXPORT int z_IUUpdate (ODR o, Z_IUUpdate **p, int opt, const char *name); - -typedef struct Z_IUOriginPartToKeep Z_IUOriginPartToKeep; -YAZ_EXPORT int z_IUOriginPartToKeep (ODR o, Z_IUOriginPartToKeep **p, int opt, const char *name); - -typedef struct Z_IUTargetPart Z_IUTargetPart; -YAZ_EXPORT int z_IUTargetPart (ODR o, Z_IUTargetPart **p, int opt, const char *name); - -typedef struct Z_IUSuppliedRecordsId Z_IUSuppliedRecordsId; -YAZ_EXPORT int z_IUSuppliedRecordsId (ODR o, Z_IUSuppliedRecordsId **p, int opt, const char *name); - -typedef struct Z_IUSuppliedRecords_elem Z_IUSuppliedRecords_elem; -YAZ_EXPORT int z_IUSuppliedRecords_elem (ODR o, Z_IUSuppliedRecords_elem **p, int opt, const char *name); - -typedef struct Z_IUSuppliedRecords Z_IUSuppliedRecords; -YAZ_EXPORT int z_IUSuppliedRecords (ODR o, Z_IUSuppliedRecords **p, int opt, const char *name); - -typedef Z_IUSuppliedRecords Z_IUOriginPartNotToKeep; -YAZ_EXPORT int z_IUOriginPartNotToKeep (ODR o, Z_IUOriginPartNotToKeep **p, int opt, const char *name); - -typedef struct Z_IUCorrelationInfo Z_IUCorrelationInfo; -YAZ_EXPORT int z_IUCorrelationInfo (ODR o, Z_IUCorrelationInfo **p, int opt, const char *name); - -typedef struct Z_IUTaskPackageRecordStructureSurrogateDiagnostics Z_IUTaskPackageRecordStructureSurrogateDiagnostics; -YAZ_EXPORT int z_IUTaskPackageRecordStructureSurrogateDiagnostics (ODR o, Z_IUTaskPackageRecordStructureSurrogateDiagnostics **p, int opt, const char *name); - -typedef struct Z_IUTaskPackageRecordStructure Z_IUTaskPackageRecordStructure; -YAZ_EXPORT int z_IUTaskPackageRecordStructure (ODR o, Z_IUTaskPackageRecordStructure **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_IUUpdateEsRequest { - Z_IUOriginPartToKeep *toKeep; - Z_IUOriginPartNotToKeep *notToKeep; -}; - -struct Z_IUUpdateTaskPackage { - Z_IUOriginPartToKeep *originPart; - Z_IUTargetPart *targetPart; -}; - -struct Z_IUUpdate { - int which; - union { - Z_IUUpdateEsRequest *esRequest; - Z_IUUpdateTaskPackage *taskPackage; -#define Z_IUUpdate_esRequest 1 -#define Z_IUUpdate_taskPackage 2 - } u; -}; - -struct Z_IUOriginPartToKeep { -#define Z_IUOriginPartToKeep_recordInsert 1 -#define Z_IUOriginPartToKeep_recordReplace 2 -#define Z_IUOriginPartToKeep_recordDelete 3 -#define Z_IUOriginPartToKeep_elementUpdate 4 -#define Z_IUOriginPartToKeep_specialUpdate 5 - int *action; - Z_InternationalString *databaseName; - Odr_oid *schema; /* OPT */ - Z_InternationalString *elementSetName; /* OPT */ - Z_External *actionQualifier; /* OPT */ -}; - - - -struct Z_IUTargetPart { -#define Z_IUTargetPart_success 1 -#define Z_IUTargetPart_partial 2 -#define Z_IUTargetPart_failure 3 - int *updateStatus; - int num_globalDiagnostics; - Z_DiagRec **globalDiagnostics; /* OPT */ - int num_taskPackageRecords; - Z_IUTaskPackageRecordStructure **taskPackageRecords; -}; - -struct Z_IUSuppliedRecordsId { - int which; - union { - char *timeStamp; - Z_InternationalString *versionNumber; - Z_External *previousVersion; -#define Z_IUSuppliedRecordsId_timeStamp 1 -#define Z_IUSuppliedRecordsId_versionNumber 2 -#define Z_IUSuppliedRecordsId_previousVersion 3 - } u; -}; - -struct Z_IUSuppliedRecords_elem { - int which; - union { - int *number; - Z_InternationalString *string; - Odr_oct *opaque; -#define Z_IUSuppliedRecords_elem_number 1 -#define Z_IUSuppliedRecords_elem_string 2 -#define Z_IUSuppliedRecords_elem_opaque 3 - } u; /* OPT */ - Z_IUSuppliedRecordsId *supplementalId; /* OPT */ - Z_IUCorrelationInfo *correlationInfo; /* OPT */ - Z_External *record; -}; - -struct Z_IUSuppliedRecords { - int num; - Z_IUSuppliedRecords_elem **elements; -}; - -struct Z_IUCorrelationInfo { - Z_InternationalString *note; /* OPT */ - int *id; /* OPT */ -}; - -struct Z_IUTaskPackageRecordStructureSurrogateDiagnostics { - int num; - Z_DiagRec **elements; -}; - -struct Z_IUTaskPackageRecordStructure { - int which; - union { - Z_External *record; - Z_IUTaskPackageRecordStructureSurrogateDiagnostics *surrogateDiagnostics; -#define Z_IUTaskPackageRecordStructure_record 1 -#define Z_IUTaskPackageRecordStructure_surrogateDiagnostics 2 - } u; /* OPT */ - Z_IUCorrelationInfo *correlationInfo; /* OPT */ -#define Z_IUTaskPackageRecordStructure_success 1 -#define Z_IUTaskPackageRecordStructure_queued 2 -#define Z_IUTaskPackageRecordStructure_inProcess 3 -#define Z_IUTaskPackageRecordStructure_failure 4 - int *recordStatus; - int num_supplementalDiagnostics; - Z_DiagRec **supplementalDiagnostics; /* OPT */ -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zes-update0.h b/dependencies/yaz_3.0.14/include/yaz/zes-update0.h deleted file mode 100644 index dcca30a..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zes-update0.h +++ /dev/null @@ -1,154 +0,0 @@ -/** \file zes-update0.h - \brief ASN.1 Module ESFormat-Update0 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef zes_update0_H -#define zes_update0_H - -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Z_IU0UpdateEsRequest Z_IU0UpdateEsRequest; -YAZ_EXPORT int z_IU0UpdateEsRequest (ODR o, Z_IU0UpdateEsRequest **p, int opt, const char *name); - -typedef struct Z_IU0UpdateTaskPackage Z_IU0UpdateTaskPackage; -YAZ_EXPORT int z_IU0UpdateTaskPackage (ODR o, Z_IU0UpdateTaskPackage **p, int opt, const char *name); - -typedef struct Z_IU0Update Z_IU0Update; -YAZ_EXPORT int z_IU0Update (ODR o, Z_IU0Update **p, int opt, const char *name); - -typedef struct Z_IU0OriginPartToKeep Z_IU0OriginPartToKeep; -YAZ_EXPORT int z_IU0OriginPartToKeep (ODR o, Z_IU0OriginPartToKeep **p, int opt, const char *name); - -typedef struct Z_IU0TargetPart Z_IU0TargetPart; -YAZ_EXPORT int z_IU0TargetPart (ODR o, Z_IU0TargetPart **p, int opt, const char *name); - -typedef struct Z_IU0SuppliedRecordsId Z_IU0SuppliedRecordsId; -YAZ_EXPORT int z_IU0SuppliedRecordsId (ODR o, Z_IU0SuppliedRecordsId **p, int opt, const char *name); - -typedef struct Z_IU0SuppliedRecords_elem Z_IU0SuppliedRecords_elem; -YAZ_EXPORT int z_IU0SuppliedRecords_elem (ODR o, Z_IU0SuppliedRecords_elem **p, int opt, const char *name); - -typedef struct Z_IU0SuppliedRecords Z_IU0SuppliedRecords; -YAZ_EXPORT int z_IU0SuppliedRecords (ODR o, Z_IU0SuppliedRecords **p, int opt, const char *name); - -typedef Z_IU0SuppliedRecords Z_IU0OriginPartNotToKeep; -YAZ_EXPORT int z_IU0OriginPartNotToKeep (ODR o, Z_IU0OriginPartNotToKeep **p, int opt, const char *name); - -typedef struct Z_IU0CorrelationInfo Z_IU0CorrelationInfo; -YAZ_EXPORT int z_IU0CorrelationInfo (ODR o, Z_IU0CorrelationInfo **p, int opt, const char *name); - -typedef struct Z_IU0TaskPackageRecordStructure Z_IU0TaskPackageRecordStructure; -YAZ_EXPORT int z_IU0TaskPackageRecordStructure (ODR o, Z_IU0TaskPackageRecordStructure **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Z_IU0UpdateEsRequest { - Z_IU0OriginPartToKeep *toKeep; - Z_IU0OriginPartNotToKeep *notToKeep; -}; - -struct Z_IU0UpdateTaskPackage { - Z_IU0OriginPartToKeep *originPart; - Z_IU0TargetPart *targetPart; -}; - -struct Z_IU0Update { - int which; - union { - Z_IU0UpdateEsRequest *esRequest; - Z_IU0UpdateTaskPackage *taskPackage; -#define Z_IU0Update_esRequest 1 -#define Z_IU0Update_taskPackage 2 - } u; -}; - -struct Z_IU0OriginPartToKeep { -#define Z_IU0OriginPartToKeep_recordInsert 1 -#define Z_IU0OriginPartToKeep_recordReplace 2 -#define Z_IU0OriginPartToKeep_recordDelete 3 -#define Z_IU0OriginPartToKeep_elementUpdate 4 - int *action; - Z_InternationalString *databaseName; - Odr_oid *schema; /* OPT */ - Z_InternationalString *elementSetName; /* OPT */ -}; - - - -struct Z_IU0TargetPart { -#define Z_IU0TargetPart_success 1 -#define Z_IU0TargetPart_partial 2 -#define Z_IU0TargetPart_failure 3 - int *updateStatus; - int num_globalDiagnostics; - Z_DiagRec **globalDiagnostics; /* OPT */ - int num_taskPackageRecords; - Z_IU0TaskPackageRecordStructure **taskPackageRecords; /* OPT */ -}; - -struct Z_IU0SuppliedRecordsId { - int which; - union { - char *timeStamp; - Z_InternationalString *versionNumber; - Z_External *previousVersion; -#define Z_IU0SuppliedRecordsId_timeStamp 1 -#define Z_IU0SuppliedRecordsId_versionNumber 2 -#define Z_IU0SuppliedRecordsId_previousVersion 3 - } u; -}; - -struct Z_IU0SuppliedRecords_elem { - int which; - union { - int *number; - Z_InternationalString *string; - Odr_oct *opaque; -#define Z_IU0SuppliedRecords_elem_number 1 -#define Z_IU0SuppliedRecords_elem_string 2 -#define Z_IU0SuppliedRecords_elem_opaque 3 - } u; /* OPT */ - Z_IU0SuppliedRecordsId *supplementalId; /* OPT */ - Z_IU0CorrelationInfo *correlationInfo; /* OPT */ - Z_External *record; -}; - -struct Z_IU0SuppliedRecords { - int num; - Z_IU0SuppliedRecords_elem **elements; -}; - -struct Z_IU0CorrelationInfo { - Z_InternationalString *note; /* OPT */ - int *id; /* OPT */ -}; - -struct Z_IU0TaskPackageRecordStructure { - int which; - union { - Z_External *record; - Z_DiagRec *diagnostic; -#define Z_IU0TaskPackageRecordStructure_record 1 -#define Z_IU0TaskPackageRecordStructure_diagnostic 2 - } u; /* OPT */ - Z_IU0CorrelationInfo *correlationInfo; /* OPT */ -#define Z_IU0TaskPackageRecordStructure_success 1 -#define Z_IU0TaskPackageRecordStructure_queued 2 -#define Z_IU0TaskPackageRecordStructure_inProcess 3 -#define Z_IU0TaskPackageRecordStructure_failure 4 - int *recordStatus; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/include/yaz/zgdu.h b/dependencies/yaz_3.0.14/include/yaz/zgdu.h deleted file mode 100644 index d4454a6..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zgdu.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: zgdu.h,v 1.13 2007/09/06 17:09:56 mike Exp $ */ - -/** - * \file zgdu.h - * \brief Header for the Z_GDU (HTTP or Z39.50 package) - */ - -#ifndef Z_GDU_H -#define Z_GDU_H - -#include - -YAZ_BEGIN_CDECL - -typedef struct Z_HTTP_Header Z_HTTP_Header; - -struct Z_HTTP_Header { - char *name; - char *value; - Z_HTTP_Header *next; -}; - -typedef struct { - char *method; - char *version; - char *path; - Z_HTTP_Header *headers; - char *content_buf; - int content_len; -} Z_HTTP_Request; - -typedef struct { - int code; - char *version; - Z_HTTP_Header *headers; - char *content_buf; - int content_len; -} Z_HTTP_Response; - -#define Z_GDU_Z3950 1 -#define Z_GDU_HTTP_Request 2 -#define Z_GDU_HTTP_Response 3 -typedef struct { - int which; - union { - Z_APDU *z3950; - Z_HTTP_Request *HTTP_Request; - Z_HTTP_Response *HTTP_Response; - } u; -} Z_GDU ; -YAZ_EXPORT int z_GDU (ODR o, Z_GDU **p, int opt, const char *name); -YAZ_EXPORT void z_HTTP_header_add(ODR o, Z_HTTP_Header **hp, const char *n, - const char *v); -YAZ_EXPORT void z_HTTP_header_add_content_type(ODR o, Z_HTTP_Header **hp, - const char *content_type, - const char *charset); -YAZ_EXPORT void z_HTTP_header_add_basic_auth(ODR o, Z_HTTP_Header **hp, - const char *username, - const char *password); - -YAZ_EXPORT const char *z_HTTP_header_lookup(const Z_HTTP_Header *hp, const char *n); - -YAZ_EXPORT const char *z_HTTP_errmsg(int code); - -YAZ_EXPORT Z_GDU *z_get_HTTP_Response(ODR o, int code); -YAZ_EXPORT Z_GDU *z_get_HTTP_Request(ODR o); -YAZ_EXPORT Z_GDU *z_get_HTTP_Request_host_path(ODR odr, - const char *host, - const char *path); - -YAZ_EXPORT int yaz_decode_http_request(ODR o, Z_HTTP_Request **hr_p); -YAZ_EXPORT int yaz_decode_http_response(ODR o, Z_HTTP_Response **hr_p); -YAZ_EXPORT int yaz_encode_http_response(ODR o, Z_HTTP_Response *hr); -YAZ_EXPORT int yaz_encode_http_request(ODR o, Z_HTTP_Request *hr); - -YAZ_END_CDECL - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/include/yaz/zoom.h b/dependencies/yaz_3.0.14/include/yaz/zoom.h deleted file mode 100644 index a6fe858..0000000 --- a/dependencies/yaz_3.0.14/include/yaz/zoom.h +++ /dev/null @@ -1,491 +0,0 @@ -/* - * Copyright (c) 1995-2007, Index Data - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Index Data nor the names of its contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -/* $Id: zoom.h,v 1.47 2007/05/05 11:53:27 adam Exp $ */ - -/** - * \file zoom.h - * \brief Header for ZOOM - */ - -#include -#include - -#define ZOOM_BEGIN_CDECL YAZ_BEGIN_CDECL -#define ZOOM_END_CDECL YAZ_END_CDECL - -#ifdef WIN32 -# define ZOOM_API(x) __declspec(dllexport) x __stdcall -#else -# define ZOOM_API(x) x -# endif - -ZOOM_BEGIN_CDECL - -/* ----------------------------------------------------------- */ -/* the types we use */ - -typedef struct ZOOM_options_p *ZOOM_options; -typedef struct ZOOM_query_p *ZOOM_query; -typedef struct ZOOM_connection_p *ZOOM_connection; -typedef struct ZOOM_resultset_p *ZOOM_resultset; -typedef struct ZOOM_record_p *ZOOM_record; -typedef struct ZOOM_scanset_p *ZOOM_scanset; -typedef struct ZOOM_package_p *ZOOM_package; - -typedef const char *(*ZOOM_options_callback)(void *handle, const char *name); - -/* ----------------------------------------------------------- */ -/* connections */ - -/* create connection, connect to host, if portnum is 0, then port is -read from host string (e.g. myhost:9821) */ -ZOOM_API(ZOOM_connection) -ZOOM_connection_new (const char *host, int portnum); - -/* create connection, don't connect, apply options */ -ZOOM_API(ZOOM_connection) -ZOOM_connection_create (ZOOM_options options); - -/* connect given existing connection */ -ZOOM_API(void) -ZOOM_connection_connect(ZOOM_connection c, const char *host, - int portnum); - -/* destroy connection (close connection also) */ -ZOOM_API(void) -ZOOM_connection_destroy (ZOOM_connection c); - -/* get/set option for connection */ -ZOOM_API(const char *) -ZOOM_connection_option_get (ZOOM_connection c, const char *key); - -ZOOM_API(const char *) -ZOOM_connection_option_getl (ZOOM_connection c, const char *key, int *lenp); - -ZOOM_API(void) -ZOOM_connection_option_set (ZOOM_connection c, const char *key, - const char *val); - -ZOOM_API(void) -ZOOM_connection_option_setl (ZOOM_connection c, const char *key, - const char *val, int len); - -/* return error code (0 == success, failure otherwise). cp - holds error string on failure, addinfo holds addititional info (if any) -*/ -ZOOM_API(int) -ZOOM_connection_error (ZOOM_connection c, const char **cp, - const char **addinfo); - -ZOOM_API(int) -ZOOM_connection_error_x (ZOOM_connection c, const char **cp, - const char **addinfo, const char **diagset); - -/* returns error code */ -ZOOM_API(int) -ZOOM_connection_errcode (ZOOM_connection c); -/* returns error message */ -ZOOM_API(const char *) -ZOOM_connection_errmsg (ZOOM_connection c); -/* returns additional info */ -ZOOM_API(const char *) -ZOOM_connection_addinfo (ZOOM_connection c); -/* returns diagnostic set */ -ZOOM_API(const char *) -ZOOM_connection_diagset (ZOOM_connection c); -/* translates error code into human-readable string */ -ZOOM_API(const char *) -ZOOM_diag_str (int error); - -#define ZOOM_ERROR_NONE 0 -#define ZOOM_ERROR_CONNECT 10000 -#define ZOOM_ERROR_MEMORY 10001 -#define ZOOM_ERROR_ENCODE 10002 -#define ZOOM_ERROR_DECODE 10003 -#define ZOOM_ERROR_CONNECTION_LOST 10004 -#define ZOOM_ERROR_INIT 10005 -#define ZOOM_ERROR_INTERNAL 10006 -#define ZOOM_ERROR_TIMEOUT 10007 -#define ZOOM_ERROR_UNSUPPORTED_PROTOCOL 10008 -#define ZOOM_ERROR_UNSUPPORTED_QUERY 10009 -#define ZOOM_ERROR_INVALID_QUERY 10010 -#define ZOOM_ERROR_CQL_PARSE 10011 -#define ZOOM_ERROR_CQL_TRANSFORM 10012 -#define ZOOM_ERROR_CCL_CONFIG 10013 -#define ZOOM_ERROR_CCL_PARSE 10014 - -ZOOM_API(int) -ZOOM_connection_last_event(ZOOM_connection cs); - -#define ZOOM_EVENT_NONE 0 -#define ZOOM_EVENT_CONNECT 1 -#define ZOOM_EVENT_SEND_DATA 2 -#define ZOOM_EVENT_RECV_DATA 3 -#define ZOOM_EVENT_TIMEOUT 4 -#define ZOOM_EVENT_UNKNOWN 5 -#define ZOOM_EVENT_SEND_APDU 6 -#define ZOOM_EVENT_RECV_APDU 7 -#define ZOOM_EVENT_RECV_RECORD 8 -#define ZOOM_EVENT_RECV_SEARCH 9 -#define ZOOM_EVENT_END 10 - -/* ----------------------------------------------------------- */ -/* result sets */ - -/* create result set given a search */ -ZOOM_API(ZOOM_resultset) -ZOOM_connection_search(ZOOM_connection, ZOOM_query q); -/* create result set given PQF query */ -ZOOM_API(ZOOM_resultset) -ZOOM_connection_search_pqf(ZOOM_connection c, const char *q); - -/* destroy result set */ -ZOOM_API(void) -ZOOM_resultset_destroy(ZOOM_resultset r); - -/* result set option */ -ZOOM_API(const char *) -ZOOM_resultset_option_get (ZOOM_resultset r, const char *key); -ZOOM_API(void) -ZOOM_resultset_option_set (ZOOM_resultset r, const char *key, const char *val); - -/* return size of result set (alias hit count AKA result count) */ -ZOOM_API(size_t) -ZOOM_resultset_size (ZOOM_resultset r); - -/* retrieve records */ -ZOOM_API(void) -ZOOM_resultset_records (ZOOM_resultset r, ZOOM_record *recs, - size_t start, size_t count); - -/* return record object at pos. Returns 0 if unavailable */ -ZOOM_API(ZOOM_record) -ZOOM_resultset_record (ZOOM_resultset s, size_t pos); - -/* like ZOOM_resultset_record - but never blocks .. */ -ZOOM_API(ZOOM_record) -ZOOM_resultset_record_immediate (ZOOM_resultset s, size_t pos); - -/* reset record cache for result set */ -ZOOM_API(void) -ZOOM_resultset_cache_reset(ZOOM_resultset r); - -/* ----------------------------------------------------------- */ -/* records */ - -/* get record information, in a form given by type */ -ZOOM_API(const char *) -ZOOM_record_get (ZOOM_record rec, const char *type, int *len); - -/* destroy record */ -ZOOM_API(void) -ZOOM_record_destroy (ZOOM_record rec); - -/* return copy of record */ -ZOOM_API(ZOOM_record) -ZOOM_record_clone (ZOOM_record srec); - -/* return error info (surrogate diagnostic) for record */ -ZOOM_API(int) - ZOOM_record_error(ZOOM_record rec, const char **msg, - const char **addinfo, const char **diagset); - -/* ----------------------------------------------------------- */ -/* queries */ - -/* create search object */ -ZOOM_API(ZOOM_query) -ZOOM_query_create(void); -/* destroy it */ -ZOOM_API(void) -ZOOM_query_destroy(ZOOM_query s); -/* CQL */ -ZOOM_API(int) -ZOOM_query_cql(ZOOM_query s, const char *str); -/* CQL translated client-side into RPN: `conn' is optional for diagnostics */ -ZOOM_API(int) -ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn); -/* CCL translated client-side into RPN: `conn' is optional for diagnostics */ -ZOOM_API(int) -ZOOM_query_ccl2rpn(ZOOM_query s, const char *query_str, - const char *config, - int *ccl_error, const char **error_string, int *error_pos); -/* PQF */ -ZOOM_API(int) -ZOOM_query_prefix(ZOOM_query s, const char *str); -/* specify sort criteria for search */ -ZOOM_API(int) -ZOOM_query_sortby(ZOOM_query s, const char *criteria); - -/* ----------------------------------------------------------- */ -/* scan */ -ZOOM_API(ZOOM_scanset) -ZOOM_connection_scan (ZOOM_connection c, const char *startterm); - -ZOOM_API(ZOOM_scanset) -ZOOM_connection_scan1 (ZOOM_connection c, ZOOM_query startterm); - -ZOOM_API(const char *) -ZOOM_scanset_term(ZOOM_scanset scan, size_t pos, - int *occ, int *len); - -ZOOM_API(const char *) -ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos, - int *occ, int *len); - -ZOOM_API(size_t) -ZOOM_scanset_size(ZOOM_scanset scan); - -ZOOM_API(void) -ZOOM_scanset_destroy (ZOOM_scanset scan); - -ZOOM_API(const char *) - ZOOM_scanset_option_get (ZOOM_scanset scan, const char *key); - -ZOOM_API(void) - ZOOM_scanset_option_set (ZOOM_scanset scan, const char *key, - const char *val); -/* ----------------------------------------------------------- */ -/* Extended Services Packages */ - -ZOOM_API(ZOOM_package) - ZOOM_connection_package (ZOOM_connection c, ZOOM_options options); - -ZOOM_API(void) - ZOOM_package_destroy(ZOOM_package p); - -ZOOM_API(void) - ZOOM_package_send (ZOOM_package p, const char *type); - -ZOOM_API(const char *) - ZOOM_package_option_get (ZOOM_package p, const char *key); - -ZOOM_API(void) - ZOOM_package_option_set (ZOOM_package p, const char *key, - const char *val); - -/* ----------------------------------------------------------- */ -/* Sort. First function is deprecated, use second instead */ -ZOOM_API(void) - ZOOM_resultset_sort(ZOOM_resultset r, - const char *sort_type, const char *sort_spec); -ZOOM_API(int) - ZOOM_resultset_sort1(ZOOM_resultset r, - const char *sort_type, const char *sort_spec); - -/* ----------------------------------------------------------- */ -/* options */ - -ZOOM_API(ZOOM_options_callback) - ZOOM_options_set_callback (ZOOM_options opt, - ZOOM_options_callback c, - void *handle); -ZOOM_API(ZOOM_options) -ZOOM_options_create (void); - -ZOOM_API(ZOOM_options) -ZOOM_options_create_with_parent (ZOOM_options parent); - -ZOOM_API(ZOOM_options) - ZOOM_options_create_with_parent2 (ZOOM_options parent1, - ZOOM_options parent2); - -ZOOM_API(ZOOM_options) - ZOOM_options_dup(ZOOM_options src); - -ZOOM_API(const char *) -ZOOM_options_get (ZOOM_options opt, const char *name); - -ZOOM_API(const char *) -ZOOM_options_getl (ZOOM_options opt, const char *name, int *lenp); - -ZOOM_API(void) -ZOOM_options_set (ZOOM_options opt, const char *name, const char *v); - -ZOOM_API(void) -ZOOM_options_setl (ZOOM_options opt, const char *name, const char *value, - int len); - -ZOOM_API(void) -ZOOM_options_destroy (ZOOM_options opt); - -ZOOM_API(int) -ZOOM_options_get_bool (ZOOM_options opt, const char *name, int defa); - -ZOOM_API(int) -ZOOM_options_get_int (ZOOM_options opt, const char *name, int defa); - -ZOOM_API(void) -ZOOM_options_set_int(ZOOM_options opt, const char *name, int value); - -/** \brief select/poll socket mask: read */ -#define ZOOM_SELECT_READ 1 -/** \brief select/poll socket mask: write */ -#define ZOOM_SELECT_WRITE 2 -/** \brief select/poll socket mask: except */ -#define ZOOM_SELECT_EXCEPT 4 - -/** \brief wait for events on connection(s) (BLOCKING) - \param no number of connections (size of cs) - \param cs connection array - \retval 0 no event was fired - \retval >0 event was fired for connection at (retval-1) - - blocking poll for events on a number of connections. Returns positive - integer if event occurred ; zero if none occurred and no more - events are pending. The positive integer specifies the - connection for which the event occurred. -*/ -ZOOM_API(int) -ZOOM_event (int no, ZOOM_connection *cs); - - -/** \brief determines if connection is idle (no active or pending work) - \param c connection - \retval 1 is idle - \retval 0 is non-idle (active) -*/ -ZOOM_API(int) -ZOOM_connection_is_idle(ZOOM_connection c); - - -/** \brief process one event for one of connections given - \param no number of connections (size of cs) - \param cs connection array - \retval 0 no event was processed - \retval >0 event was processed for connection at (retval-1) - - This function attemps to deal with outstandings events in a non-blocking - mode. If no events was processed (return value of 0), then the system - should attempt to deal with sockets in blocking mode using socket - select/poll which means calling the following functions: - ZOOM_connection_get_socket, ZOOM_connection_get_mask, - ZOOM_connection_get_timeout. -*/ -ZOOM_API(int) - ZOOM_event_nonblock(int no, ZOOM_connection *cs); - - -/** \brief process one event for connection - \param c connection - \retval 0 no event was processed - \retval 1 event was processed for connection - - This function attemps to deal with outstandings events in - a non-blocking fashion. If no event was processed (return value of 0), - then the system should attempt to deal with sockets in blocking mode - using socket select/poll which means calling the following functions: - ZOOM_connection_get_socket, ZOOM_connection_get_mask, - ZOOM_connection_get_timeout. If an event was processed call this - function again. -*/ -ZOOM_API(int) - ZOOM_connection_process(ZOOM_connection c); - - -/** \brief get socket fd for ZOOM connection - \param c connection - \retval -1 no socket assigned for connection - \retval >=0 socket for connection - - Use this function when preparing for socket/poll and - in conjunction with ZOOM_connection_get_mask. -*/ -ZOOM_API(int) - ZOOM_connection_get_socket(ZOOM_connection c); - - -/** \brief get socket mask for connection - \param c connection - \returns mask for connection (possibly 0) - - Use this function when preparing for socket select/poll and - in conjunction with ZOOM_connection_get_socket. -*/ -ZOOM_API(int) - ZOOM_connection_get_mask(ZOOM_connection c); - - -/** \brief set socket mask for connection (DO NOT call outside zoom) */ -ZOOM_API(int) - ZOOM_connection_set_mask(ZOOM_connection c, int mask); - - -/** \brief get timeout in seconds for ZOOM connection - \param c connection - \returns timeout value in seconds - - Use this function when preparing for socket/poll and - in conjunction with ZOOM_connection_get_socket. -*/ -ZOOM_API(int) - ZOOM_connection_get_timeout(ZOOM_connection c); - - -/** \brief fire socket event timeout - \param c connection - \retval 0 event was fired OK - \retval -1 event was not fired - - Call this function when a timeout occurs - for example in the - case of select(2) returning 0. -*/ -ZOOM_API(int) - ZOOM_connection_fire_event_timeout(ZOOM_connection c); - - -/** \brief fire socket event activity (read,write,except) - \param c connection - \param mask or'ed mask of ZOOM_SELECT_.. values - \retval 0 event was fired OK - \retval -1 event was not fired -*/ -ZOOM_API(int) - ZOOM_connection_fire_event_socket(ZOOM_connection c, int mask); - - - -/** \brief peek at next event - \param c connection - \returns ZOOM_EVENT_NONE (for no events in queue), ZOOM_EVENT_CONNECT, .. - - Does not actually remove the event from the event queue. ZOOM_event and - ZOOM_process_event removes one event. -*/ - -ZOOM_API(int) - ZOOM_connection_peek_event(ZOOM_connection c); - -ZOOM_END_CDECL -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/lib/yaz3.lib b/dependencies/yaz_3.0.14/lib/yaz3.lib deleted file mode 100644 index daa8f897f00e83d735b800a3d060ce1dcb2b7016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238422 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 RLq7=A4Tn18?xKU?`+uZD{?Gsb diff --git a/dependencies/yaz_3.0.14/src/atoin.c b/dependencies/yaz_3.0.14/src/atoin.c deleted file mode 100644 index d241ca4..0000000 --- a/dependencies/yaz_3.0.14/src/atoin.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: atoin.c,v 1.8 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file atoin.c - * \brief Implements atoi_n function. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -/** - * atoi_n: like atoi but reads at most len characters. - */ -int atoi_n (const char *buf, int len) -{ - int val = 0; - - while (--len >= 0) - { - if (isdigit (*(const unsigned char *) buf)) - val = val*10 + (*buf - '0'); - buf++; - } - return val; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_any.c b/dependencies/yaz_3.0.14/src/ber_any.c deleted file mode 100644 index 4629447..0000000 --- a/dependencies/yaz_3.0.14/src/ber_any.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_any.c,v 1.6 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ber_any.c - * \brief Implements BER ANY encoding and decoding. - * - * This source file implements BER encoding and decoding of - * the ANY type. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" - -int ber_any(ODR o, Odr_any **p) -{ - int res; - - switch (o->direction) - { - case ODR_DECODE: - if ((res = completeBER(o->bp, odr_max(o))) <= 0) /* FIX THIS */ - { - odr_seterror(o, OPROTO, 2); - return 0; - } - (*p)->buf = (unsigned char *)odr_malloc(o, res); - memcpy((*p)->buf, o->bp, res); - (*p)->len = (*p)->size = res; - o->bp += res; - return 1; - case ODR_ENCODE: - if (odr_write(o, (*p)->buf, (*p)->len) < 0) - return 0; - return 1; - default: odr_seterror(o, OOTHER, 3); return 0; - } -} - -#define BER_ANY_DEBUG 0 - -int completeBER_n(const unsigned char *buf, int len, int level) -{ - int res, ll, zclass, tag, cons; - const unsigned char *b = buf; - - if (level > 1000) - { -#if BER_ANY_DEBUG - yaz_log(YLOG_LOG, "completeBER lev=%d len=%d", level, len); -#endif - return -2; - } - if (len < 2) - return 0; - if (!buf[0] && !buf[1]) - return -2; - if ((res = ber_dectag(b, &zclass, &tag, &cons, len)) <= 0) - return 0; - b += res; - len -= res; - assert (len >= 0); - res = ber_declen(b, &ll, len); - if (res == -2) - { -#if BER_ANY_DEBUG - yaz_log(YLOG_LOG, "<<<<<<<<< return1 lev=%d res=%d", level, res); -#endif - return -1; /* error */ - } - if (res == -1) - { -#if BER_ANY_DEBUG - yaz_log(YLOG_LOG, "<<<<<<<<< return2 lev=%d res=%d", level, res); -#endif - return 0; /* incomplete length */ - } - b += res; - len -= res; - if (ll >= 0) - { /* definite length */ - if (len < ll) - { -#if BER_ANY_DEBUG - yaz_log(YLOG_LOG, "<<<<<<<<< return5 lev=%d len=%d ll=%d", - level, len, ll); -#endif - return 0; - } - return ll + (b-buf); - } - /* indefinite length */ - if (!cons) - { /* if primitive, it's an error */ -#if BER_ANY_DEBUG - yaz_log(YLOG_LOG, "<<<<<<<<< return6 lev=%d ll=%d len=%d res=%d", - level, ll, len, res); -#endif - return -1; /* error */ - } - /* constructed - cycle through children */ - while (len >= 2) - { - if (b[0] == 0 && b[1] == 0) - break; - if (!(res = completeBER_n(b, len, level+1))) - return 0; - if (res == -1) - return -1; - b += res; - len -= res; - } - if (len < 2) - return 0; - return (b - buf) + 2; -} - -int completeBER(const unsigned char *buf, int len) -{ - int res = completeBER_n(buf, len, 0); -#if BER_ANY_DEBUG - yaz_log(YLOG_LOG, "completeBER len=%d res=%d", len, res); -#endif - if (res < 0) - return len; - return res; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_bit.c b/dependencies/yaz_3.0.14/src/ber_bit.c deleted file mode 100644 index 5a24194..0000000 --- a/dependencies/yaz_3.0.14/src/ber_bit.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_bit.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ber_bit.c - * \brief Implements BER BITSTRING encoding and decoding. - * - * This source file implements BER encoding and decoding of - * the BITSTRING type. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -int ber_bitstring(ODR o, Odr_bitmask *p, int cons) -{ - int res, len; - const unsigned char *base; - - switch (o->direction) - { - case ODR_DECODE: - if ((res = ber_declen(o->bp, &len, odr_max(o))) < 0) - { - odr_seterror(o, OPROTO, 4); - return 0; - } - o->bp += res; - if (cons) /* fetch component strings */ - { - base = o->bp; - while (odp_more_chunks(o, base, len)) - if (!odr_bitstring(o, &p, 0, 0)) - return 0; - return 1; - } - /* primitive bitstring */ - if (len < 0) - { - odr_seterror(o, OOTHER, 5); - return 0; - } - if (len == 0) - return 1; - if (len - 1 > ODR_BITMASK_SIZE) - { - odr_seterror(o, OOTHER, 6); - return 0; - } - if (len > odr_max(o)) - { - odr_seterror(o, OOTHER, 7); - return 0; - } - o->bp++; /* silently ignore the unused-bits field */ - len--; - memcpy(p->bits + p->top + 1, o->bp, len); - p->top += len; - o->bp += len; - return 1; - case ODR_ENCODE: - if ((res = ber_enclen(o, p->top + 2, 5, 0)) < 0) - return 0; - if (odr_putc(o, 0) < 0) /* no unused bits here */ - return 0; - if (p->top < 0) - return 1; - if (odr_write(o, p->bits, p->top + 1) < 0) - return 0; - return 1; - case ODR_PRINT: - return 1; - default: - odr_seterror(o, OOTHER, 8); - return 0; - } -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_bool.c b/dependencies/yaz_3.0.14/src/ber_bool.c deleted file mode 100644 index eafde98..0000000 --- a/dependencies/yaz_3.0.14/src/ber_bool.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_bool.c,v 1.6 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ber_bool.c - * \brief Implements BER BOOLEAN encoding and decoding - * - * This source file implements BER encoding and decoding of - * the BOOLEAN type. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" - -int ber_boolean(ODR o, int *val) -{ - int res, len; - - switch (o->direction) - { - case ODR_ENCODE: - if (ber_enclen(o, 1, 1, 1) != 1) - return 0; - if (odr_putc(o, *val) < 0) - return 0; - return 1; - case ODR_DECODE: - if ((res = ber_declen(o->bp, &len, odr_max(o))) < 0) - { - odr_seterror(o, OPROTO, 9); - return 0; - } - o->bp+= res; - if (len != 1 || odr_max(o) < len) - { - odr_seterror(o, OPROTO, 10); - return 0; - } - *val = *o->bp; - o->bp++; - return 1; - case ODR_PRINT: - return 1; - default: odr_seterror(o, OOTHER, 11); return 0; - } -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_int.c b/dependencies/yaz_3.0.14/src/ber_int.c deleted file mode 100644 index 06e4b06..0000000 --- a/dependencies/yaz_3.0.14/src/ber_int.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_int.c,v 1.7 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ber_int.c - * \brief Implements BER INTEGER encoding and decoding. - * - * This source file implements BER encoding and decoding of - * the INTEGER type. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include - -#if HAVE_SYS_TYPES_H -#include -#endif - -#ifdef WIN32 -#include -#else -#include -#endif - -#include "odr-priv.h" - -static int ber_encinteger(ODR o, int val); -static int ber_decinteger(const unsigned char *buf, int *val, int max); - -int ber_integer(ODR o, int *val) -{ - int res; - - switch (o->direction) - { - case ODR_DECODE: - if ((res = ber_decinteger(o->bp, val, odr_max(o))) <= 0) - { - odr_seterror(o, OPROTO, 50); - return 0; - } - o->bp += res; - return 1; - case ODR_ENCODE: - if ((res = ber_encinteger(o, *val)) < 0) - return 0; - return 1; - case ODR_PRINT: - return 1; - default: - odr_seterror(o, OOTHER, 51); return 0; - } -} - -/* - * Returns: number of bytes written or -1 for error (out of bounds). - */ -int ber_encinteger(ODR o, int val) -{ - int a, len; - union { int i; unsigned char c[sizeof(int)]; } tmp; - - tmp.i = htonl(val); /* ensure that that we're big-endian */ - for (a = 0; a < (int) sizeof(int) - 1; a++) /* skip superfluous octets */ - if (!((tmp.c[a] == 0 && !(tmp.c[a+1] & 0X80)) || - (tmp.c[a] == 0XFF && (tmp.c[a+1] & 0X80)))) - break; - len = sizeof(int) - a; - if (ber_enclen(o, len, 1, 1) != 1) - return -1; - if (odr_write(o, (unsigned char*) tmp.c + a, len) < 0) - return -1; - return 0; -} - -/* - * Returns: Number of bytes read or 0 if no match, -1 if error. - */ -int ber_decinteger(const unsigned char *buf, int *val, int max) -{ - const unsigned char *b = buf; - unsigned char fill; - int res, len, remains; - union { int i; unsigned char c[sizeof(int)]; } tmp; - - if ((res = ber_declen(b, &len, max)) < 0) - return -1; - if (len+res > max || len < 0) /* out of bounds or indefinite encoding */ - return -1; - if (len > (int) sizeof(int)) /* let's be reasonable, here */ - return -1; - b+= res; - - remains = sizeof(int) - len; - memcpy(tmp.c + remains, b, len); - if (*b & 0X80) - fill = 0XFF; - else - fill = 0X00; - memset(tmp.c, fill, remains); - *val = ntohl(tmp.i); - - b += len; - return b - buf; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_len.c b/dependencies/yaz_3.0.14/src/ber_len.c deleted file mode 100644 index 6ef5981..0000000 --- a/dependencies/yaz_3.0.14/src/ber_len.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_len.c,v 1.6 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ber_len.c - * \brief Implements BER length octet encoding and decoding - * - * This source file implements BER encoding and decoding of - * the length octets. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" - -/** - * ber_enclen: - * Encode BER length octets. If exact, lenlen is the exact desired - * encoding size, else, lenlen is the max available space. Len < 0 = - * Indefinite encoding. - * Returns: >0 success, number of bytes encoded. - * Returns: =0 success, indefinite start-marker set. 1 byte encoded. - * Returns: -1 failure, out of bounds. - */ -int ber_enclen(ODR o, int len, int lenlen, int exact) -{ - unsigned char octs[sizeof(int)]; - int n = 0; - int lenpos, end; - - if (len < 0) /* Indefinite */ - { - if (odr_putc(o, 0x80) < 0) - return 0; - return 0; - } - if (len <= 127 && (lenlen == 1 || !exact)) /* definite short form */ - { - if (odr_putc(o, (unsigned char) len) < 0) - return 0; - return 1; - } - if (lenlen == 1) - { - if (odr_putc(o, 0x80) < 0) - return 0; - return 0; - } - /* definite long form */ - do - { - octs[n++] = len; - len >>= 8; - } - while (len); - if (n >= lenlen) - return -1; - lenpos = odr_tell(o); /* remember length-of-length position */ - if (odr_putc(o, 0) < 0) /* dummy */ - return 0; - if (exact) - while (n < --lenlen) /* pad length octets */ - if (odr_putc(o, 0) < 0) - return 0; - while (n--) - if (odr_putc(o, octs[n]) < 0) - return 0; - /* set length of length */ - end = odr_tell(o); - odr_seek(o, ODR_S_SET, lenpos); - if (odr_putc(o, (end - lenpos - 1) | 0X80) < 0) - return 0; - odr_seek(o, ODR_S_END, 0); - return odr_tell(o) - lenpos; -} - -/** - * ber_declen: - * Decode BER length octets. Returns - * > 0 : number of bytes read - * -1 : not enough room to read bytes within max bytes - * -2 : other error - * - * After return: - * len = -1 indefinite length. - * len >= 0 definite length - */ -int ber_declen(const unsigned char *buf, int *len, int max) -{ - const unsigned char *b = buf; - int n; - - if (max < 1) - return -1; - if (*b == 0X80) /* Indefinite */ - { - *len = -1; - return 1; - } - if (!(*b & 0X80)) /* Definite short form */ - { - *len = (int) *b; - return 1; - } - if (*b == 0XFF) /* reserved value */ - return -2; - /* indefinite long form */ - n = *b & 0X7F; - if (n >= max) - return -1; - *len = 0; - b++; - while (--n >= 0) - { - *len <<= 8; - *len |= *(b++); - } - if (*len < 0) - return -2; - return (b - buf); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_null.c b/dependencies/yaz_3.0.14/src/ber_null.c deleted file mode 100644 index 408f48f..0000000 --- a/dependencies/yaz_3.0.14/src/ber_null.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_null.c,v 1.6 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ber_null.c - * \brief Implements ber_null - * - * This source file implements BER encoding and decoding of - * the NULL type. - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -/** - * ber_null: BER-en/decoder for NULL type. - */ -int ber_null(ODR o) -{ - switch (o->direction) - { - case ODR_ENCODE: - if (odr_putc(o, 0X00) < 0) - return 0; - return 1; - case ODR_DECODE: - if (odr_max(o) < 1) - { - odr_seterror(o, OPROTO, 39); - return 0; - } - if (*(o->bp++) != 0X00) - { - odr_seterror(o, OPROTO, 12); - return 0; - } - return 1; - case ODR_PRINT: - return 1; - default: - odr_seterror(o, OOTHER, 13); - return 0; - } -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_oct.c b/dependencies/yaz_3.0.14/src/ber_oct.c deleted file mode 100644 index e88bc39..0000000 --- a/dependencies/yaz_3.0.14/src/ber_oct.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_oct.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ber_oct.c - * \brief Implements ber_octetstring - * - * This source file implements BER encoding and decoding of - * the OCTETSTRING type. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -int ber_octetstring(ODR o, Odr_oct *p, int cons) -{ - int res, len; - const unsigned char *base; - unsigned char *c; - - switch (o->direction) - { - case ODR_DECODE: - if ((res = ber_declen(o->bp, &len, odr_max(o))) < 0) - { - odr_seterror(o, OPROTO, 14); - return 0; - } - o->bp += res; - if (cons) /* fetch component strings */ - { - base = o->bp; - while (odp_more_chunks(o, base, len)) - if (!odr_octetstring(o, &p, 0, 0)) - return 0; - return 1; - } - /* primitive octetstring */ - if (len < 0) - { - odr_seterror(o, OOTHER, 15); - return 0; - } - if (len > odr_max(o)) - { - odr_seterror(o, OOTHER, 16); - return 0; - } - if (len + 1 > p->size - p->len) - { - c = (unsigned char *)odr_malloc(o, p->size += len + 1); - if (p->len) - memcpy(c, p->buf, p->len); - p->buf = c; - } - if (len) - memcpy(p->buf + p->len, o->bp, len); - p->len += len; - o->bp += len; - /* the final null is really not part of the buffer, but */ - /* it helps somes applications that assumes C strings */ - if (len) - p->buf[p->len] = '\0'; - return 1; - case ODR_ENCODE: - if ((res = ber_enclen(o, p->len, 5, 0)) < 0) - return 0; - if (p->len == 0) - return 1; - if (odr_write(o, p->buf, p->len) < 0) - return 0; - return 1; - case ODR_PRINT: - return 1; - default: - odr_seterror(o, OOTHER, 17); - return 0; - } -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_oid.c b/dependencies/yaz_3.0.14/src/ber_oid.c deleted file mode 100644 index 11dbad5..0000000 --- a/dependencies/yaz_3.0.14/src/ber_oid.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_oid.c,v 1.9 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ber_oid.c - * \brief Implements BER OID encoding and decoding - * - * This source file implements BER encoding and decoding of - * the OID type. - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -int ber_oidc(ODR o, Odr_oid *p, int max_oid_size) -{ - int len, lenp, end; - int pos, n, res, id; - unsigned char octs[8]; - - switch (o->direction) - { - case ODR_DECODE: - if ((res = ber_declen(o->bp, &len, odr_max(o))) < 1) - { - odr_seterror(o, OPROTO, 18); - return 0; - } - if (len < 0) - { - odr_seterror(o, OPROTO, 19); - return 0; - } - o->bp += res; - if (len > odr_max(o)) - { - odr_seterror(o, OPROTO, 20); - return 0; - } - pos = 0; - while (len) - { - int id = 0; - do - { - if (!len) - { - odr_seterror(o, OPROTO, 21); - return 0; - } - id <<= 7; - id |= *o->bp & 0X7F; - len--; - } - while (*(o->bp++) & 0X80); - - if (id < 0) - { - odr_seterror(o, ODATA, 23); - return 0; - } - if (pos > 0) - p[pos++] = id; - else - { - p[0] = id / 40; - if (p[0] > 2) - p[0] = 2; - p[1] = id - p[0] * 40; - pos = 2; - } - if (pos >= max_oid_size) - { - odr_seterror(o, OPROTO, 55); - return 0; - } - } - if (pos < 2 || p[0] < 0 || p[1] < 0) - { - odr_seterror(o, ODATA, 23); - return 0; - } - p[pos] = -1; - return 1; - case ODR_ENCODE: - /* we'll allow ourselves the quiet luxury of only doing encodings - shorter than 127 */ - lenp = odr_tell(o); - if (odr_putc(o, 0) < 0) /* dummy */ - return 0; - if (p[0] < 0 || p[1] < 0) - { - odr_seterror(o, ODATA, 23); - return 0; - } - for (pos = 1; p[pos] != -1; pos++) - { - n = 0; - if (pos == 1) - id = p[0]*40 + p[1]; - else - id = p[pos]; - do - { - octs[n++] = id & 0X7F; - id >>= 7; - } - while (id); - while (n--) - { - unsigned char p; - - p = octs[n] | ((n > 0) << 7); - if (odr_putc(o, p) < 0) - return 0; - } - } - end = odr_tell(o); - odr_seek(o, ODR_S_SET, lenp); - if (ber_enclen(o, (end - lenp) - 1, 1, 1) != 1) - { - odr_seterror(o, OOTHER, 52); - return 0; - } - odr_seek(o, ODR_S_END, 0); - return 1; - default: - odr_seterror(o, OOTHER, 22); - return 0; - } -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ber_tag.c b/dependencies/yaz_3.0.14/src/ber_tag.c deleted file mode 100644 index 2644839..0000000 --- a/dependencies/yaz_3.0.14/src/ber_tag.c +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ber_tag.c,v 1.8 2007/03/19 21:08:13 adam Exp $ - */ - -/** - * \file ber_tag.c - * \brief Implements BER tags encoding and decoding - * - * This source file implements BER encoding and decoding of - * the tags. - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" - -/** - * \brief Encode/decode BER tags - * - * On encoding: - * \verbatim - * if p: write tag. return 1 (success) or -1 (error). - * if !p: return 0. - * \endverbatim - * On decoding: - * \verbatim - * if tag && zclass match up, advance pointer and return 1. set cons. - * else leave pointer unchanged. Return 0. - * \endverbatim - */ -int ber_tag(ODR o, void *p, int zclass, int tag, int *constructed, int opt, - const char *name) -{ - struct Odr_ber_tag *odr_ber_tag = &o->op->odr_ber_tag; - int rd; - char **pp = (char **)p; - - if (o->direction == ODR_DECODE) - *pp = 0; - o->op->t_class = -1; - if (ODR_STACK_EMPTY(o)) - { - odr_seek(o, ODR_S_SET, 0); - o->top = 0; - o->bp = o->buf; - odr_ber_tag->lclass = -1; - } - switch (o->direction) - { - case ODR_ENCODE: - if (!*pp) - { - if (!opt) - { - odr_seterror(o, OREQUIRED, 24); - odr_setelement (o, name); - } - return 0; - } - if ((rd = ber_enctag(o, zclass, tag, *constructed)) < 0) - return -1; - return 1; - case ODR_DECODE: - if (ODR_STACK_NOT_EMPTY(o) && !odr_constructed_more(o)) - { - if (!opt) - { - odr_seterror(o, OREQUIRED, 25); - odr_setelement(o, name); - } - return 0; - } - if (odr_ber_tag->lclass < 0) - { - if ((odr_ber_tag->br = - ber_dectag(o->bp, &odr_ber_tag->lclass, - &odr_ber_tag->ltag, &odr_ber_tag->lcons, - odr_max(o))) <= 0) - { - odr_seterror(o, OPROTO, 26); - odr_setelement(o, name); - return 0; - } - } - if (zclass == odr_ber_tag->lclass && tag == odr_ber_tag->ltag) - { - o->bp += odr_ber_tag->br; - *constructed = odr_ber_tag->lcons; - odr_ber_tag->lclass = -1; - return 1; - } - else - { - if (!opt) - { - odr_seterror(o, OREQUIRED, 27); - odr_setelement(o, name); - } - return 0; - } - case ODR_PRINT: - if (!*pp && !opt) - { - odr_seterror(o,OREQUIRED, 28); - odr_setelement(o, name); - } - return *pp != 0; - default: - odr_seterror(o, OOTHER, 29); - odr_setelement(o, name); - return 0; - } -} - -/** - * \brief BER-encode a zclass/tag/constructed package (identifier octets). - * - * Return number of bytes encoded, or -1 if out of bounds. - */ -int ber_enctag(ODR o, int zclass, int tag, int constructed) -{ - int cons = (constructed ? 1 : 0), n = 0; - unsigned char octs[sizeof(int)], b; - - b = (zclass << 6) & 0XC0; - b |= (cons << 5) & 0X20; - if (tag <= 30) - { - b |= tag & 0X1F; - if (odr_putc(o, b) < 0) - return -1; - return 1; - } - else - { - b |= 0X1F; - if (odr_putc(o, b) < 0) - return -1; - do - { - octs[n++] = tag & 0X7F; - tag >>= 7; - } - while (tag); - while (n--) - { - unsigned char oo; - - oo = octs[n] | ((n > 0) << 7); - if (odr_putc(o, oo) < 0) - return -1; - } - return 0; - } -} - -/** - * \brief Decodes BER identifier octets. - * - * Returns number of bytes read or -1 for error. - */ -int ber_dectag(const unsigned char *b, int *zclass, int *tag, - int *constructed, int max) -{ - int l = 1; - - if (l > max) - return -1; - - *zclass = *b >> 6; - *constructed = (*b >> 5) & 0X01; - if ((*tag = *b & 0x1F) <= 30) - return 1; - *tag = 0; - do - { - if (l >= max) - return -1; - *tag <<= 7; - *tag |= b[l] & 0X7F; - } - while (b[l++] & 0X80); - return l; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/bib1.csv b/dependencies/yaz_3.0.14/src/bib1.csv deleted file mode 100644 index ba0345f..0000000 --- a/dependencies/yaz_3.0.14/src/bib1.csv +++ /dev/null @@ -1,176 +0,0 @@ -"$Id: bib1.csv,v 1.1 2005/04/22 08:27:58 adam Exp $" -1, "Permanent system error" -2, "Temporary system error" -3, "Unsupported search" -4, "Terms only exclusion (stop) words" -5, "Too many argument words" -6, "Too many boolean operators" -7, "Too many truncated words" -8, "Too many incomplete subfields" -9, "Truncated words too short" -10, "Invalid format for record number (search term)" -11, "Too many characters in search statement" -12, "Too many records retrieved" -13, "Present request out of range" -14, "System error in presenting records" -15, "Record no authorized to be sent intersystem" -16, "Record exceeds Preferred-message-size" -17, "Record exceeds Maximum-record-size" -18, "Result set not supported as a search term" -19, "Only single result set as search term supported" -20, "Only ANDing of a single result set as search term supported" -21, "Result set exists and replace indicator off" -22, "Result set naming not supported" -23, "Combination of specified databases not supported" -24, "Element set names not supported" -25, "Specified element set name not valid for specified database" -26, "Only a single element set name supported" -27, "Result set no longer exists - unilaterally deleted by target" -28, "Result set is in use" -29, "One of the specified databases is locked" -30, "Specified result set does not exist" -31, "Resources exhausted - no results available" -32, "Resources exhausted - unpredictable partial results available" -33, "Resources exhausted - valid subset of results available" -100, "Unspecified error" -101, "Access-control failure" -102, "Security challenge required but could not be issued - request terminated" -103, "Security challenge required but could not be issued - record not included" -104, "Security challenge failed - record not included" -105, "Terminated by negative continue response" -106, "No abstract syntaxes agreed to for this record" -107, "Query type not supported" -108, "Malformed query" -109, "Database unavailable" -110, "Operator unsupported" -111, "Too many databases specified" -112, "Too many result sets created" -113, "Unsupported attribute type" -114, "Unsupported Use attribute" -115, "Unsupported value for Use attribute" -116, "Use attribute required but not supplied" -117, "Unsupported Relation attribute" -118, "Unsupported Structure attribute" -119, "Unsupported Position attribute" -120, "Unsupported Truncation attribute" -121, "Unsupported Attribute Set" -122, "Unsupported Completeness attribute" -123, "Unsupported attribute combination" -124, "Unsupported coded value for term" -125, "Malformed search term" -126, "Illegal term value for attribute" -127, "Unparsable format for un-normalized value" -128, "Illegal result set name" -129, "Proximity search of sets not supported" -130, "Illegal result set in proximity search" -131, "Unsupported proximity relation" -132, "Unsupported proximity unit code" -201, "Proximity not supported with this attribute combination" -202, "Unsupported distance for proximity" -203, "Ordered flag not supported for proximity" -205, "Only zero step size supported for Scan" -206, "Specified step size not supported for Scan" -207, "Cannot sort according to sequence" -208, "No result set name supplied on Sort" -209, "Generic sort not supported (database-specific sort only supported)" -210, "Database specific sort not supported" -211, "Too many sort keys" -212, "Duplicate sort keys" -213, "Unsupported missing data action" -214, "Illegal sort relation" -215, "Illegal case value" -216, "Illegal missing data action" -217, "Segmentation: Cannot guarantee records will fit in specified segments" -218, "ES: Package name already in use" -219, "ES: no such package, on modify/delete" -220, "ES: quota exceeded" -221, "ES: extended service type not supported" -222, "ES: permission denied on ES - id not authorized" -223, "ES: permission denied on ES - cannot modify or delete" -224, "ES: immediate execution failed" -225, "ES: immediate execution not supported for this service" -226, "ES: immediate execution not supported for these parameters" -227, "No data available in requested record syntax" -228, "Scan: malformed scan" -229, "Term type not supported" -230, "Sort: too many input results" -231, "Sort: incompatible record formats" -232, "Scan: term list not supported" -233, "Scan: unsupported value of position-in-response" -234, "Too many index terms processed" -235, "Database does not exist" -236, "Access to specified database denied" -237, "Sort: illegal sort" -238, "Record not available in requested syntax" -239, "Record syntax not supported" -240, "Scan: Resources exhausted looking for satisfying terms" -241, "Scan: Beginning or end of term list" -242, "Segmentation: max-segment-size too small to segment record" -243, "Present: additional-ranges parameter not supported" -244, "Present: comp-spec parameter not supported" -245, "Type-1 query: restriction ('resultAttr') operand not supported" -246, "Type-1 query: 'complex' attributeValue not supported" -247, "Type-1 query: 'attributeSet' as part of AttributeElement not supported" -1001, "Malformed APDU" -1002, "ES: EXTERNAL form of Item Order request not supported" -1003, "ES: Result set item form of Item Order request not supported" -1004, "ES: Extended services not supported unless access control is in effect" -1005, "Response records in Search response not supported" -1006, "Response records in Search response not possible for specified database (or database combination)" -1007, "No Explain server. Addinfo: pointers to servers that have a surrogate Explain database for this server" -1008, "ES: missing mandatory parameter for specified function. Addinfo: parameter" -1009, "ES: Item Order, unsupported OID in itemRequest. Addinfo: OID" -1010, "Init/AC: Bad Userid" -1011, "Init/AC: Bad Userid and/or Password" -1012, "Init/AC: No searches remaining (pre-purchased searches exhausted)" -1013, "Init/AC: Incorrect interface type (specified id valid only when used with a particular access method or client)" -1014, "Init/AC: Authentication System error" -1015, "Init/AC: Maximum number of simultaneous sessions for Userid" -1016, "Init/AC: Blocked network address" -1017, "Init/AC: No databases available for specified userId" -1018, "Init/AC: System temporarily out of resources" -1019, "Init/AC: System not available due to maintenance" -1020, "Init/AC: System temporarily unavailable (Addinfo: when it's expected back up)" -1021, "Init/AC: Account has expired" -1022, "Init/AC: Password has expired so a new one must be supplied" -1023, "Init/AC: Password has been changed by an administrator so a new one must be supplied" -1024, "Unsupported Attribute" -1025, "Service not supported for this database" -1026, "Record cannot be opened because it is locked" -1027, "SQL error" -1028, "Record deleted" -1029, "Scan: too many terms requested. Addinfo: max terms supported" -1040, "ES: Invalid function" -1041, "ES: Error in retention time" -1042, "ES: Permissions data not understood" -1043, "ES: Invalid OID for task specific parameters" -1044, "ES: Invalid action" -1045, "ES: Unknown schema" -1046, "ES: Too many records in package" -1047, "ES: Invalid wait action" -1048, "ES: Cannot create task package -- exceeds maximum permissable size" -1049, "ES: Cannot return task package -- exceeds maximum permissable size" -1050, "ES: Extended services request too large" -1051, "Scan: Attribute set id required -- not supplied" -1052, "ES: Cannot process task package record -- exceeds maximum permissible record size for ES" -1053, "ES: Cannot return task package record -- exceeds maximum permissible record size for ES response" -1054, "Init: Required negotiation record not included" -1055, "Init: negotiation option required" -1056, "Attribute not supported for database" -1057, "ES: Unsupported value of task package parameter" -1058, "Duplicate Detection: Cannot dedup on requested record portion" -1059, "Duplicate Detection: Requested detection criterion not supported" -1060, "Duplicate Detection: Requested level of match not supported" -1061, "Duplicate Detection: Requested regular expression not supported" -1062, "Duplicate Detection: Cannot do clustering" -1063, "Duplicate Detection: Retention criterion not supported" -1064, "Duplicate Detection: Requested number (or percentage) of entries " - "for retention too large" -1065, "Duplicate Detection: Requested sort criterion not supported" -1066, "CompSpec: Unknown schema, or schema not supported." -1067, "Encapsulation: Encapsulated sequence of PDUs not supported" -1068, "Encapsulation: Base operation (and encapsulated PDUs) not executed based on pre-screening analysis" -1069, "No syntaxes available for this request" -1070, "user not authorized to receive record(s) in requested syntax" -1071, "preferredRecordSyntax not supplied" -1072, "Query term includes characters that do not translate into the target character set" diff --git a/dependencies/yaz_3.0.14/src/ccl_stop_words.c b/dependencies/yaz_3.0.14/src/ccl_stop_words.c deleted file mode 100644 index 1a67411..0000000 --- a/dependencies/yaz_3.0.14/src/ccl_stop_words.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -/** - * \file ccl_stop_words.c - * \brief Removes stop words from terms in RPN tree - */ - -#include -#include -#include -#include -#include - -struct ccl_stop_info { - char *qualname; - char *term; - struct ccl_stop_info *next; -}; - -struct ccl_stop_words { - char *blank_chars; - NMEM nmem; /* memory for removed items */ - struct ccl_stop_info *removed_items; -}; - -static void append_removed_item(ccl_stop_words_t csw, - const char *qname, - const char *t, size_t len) -{ - struct ccl_stop_info *csi = (struct ccl_stop_info *) - nmem_malloc(csw->nmem, sizeof(*csi)); - struct ccl_stop_info **csip = &csw->removed_items; - if (qname) - csi->qualname = nmem_strdup(csw->nmem, qname); - else - csi->qualname = 0; - - csi->term = (char *) nmem_malloc(csw->nmem, len+1); - memcpy(csi->term, t, len); - csi->term[len] = '\0'; - csi->next = 0; - - while (*csip) - csip = &(*csip)->next; - - *csip = csi; -} - -ccl_stop_words_t ccl_stop_words_create(void) -{ - NMEM nmem = nmem_create(); - ccl_stop_words_t csw = (ccl_stop_words_t) xmalloc(sizeof(*csw)); - csw->nmem = nmem; - csw->removed_items = 0; - csw->blank_chars = xstrdup(" \r\n\t"); - return csw; -} - -void ccl_stop_words_destroy(ccl_stop_words_t csw) -{ - if (csw) - { - nmem_destroy(csw->nmem); - xfree(csw->blank_chars); - xfree(csw); - } -} - -struct ccl_rpn_node *ccl_remove_stop_r(ccl_stop_words_t csw, - CCL_bibset bibset, - struct ccl_rpn_node *p) -{ - struct ccl_rpn_node *left, *right; - switch (p->kind) - { - case CCL_RPN_AND: - case CCL_RPN_OR: - case CCL_RPN_NOT: - case CCL_RPN_PROX: - left = ccl_remove_stop_r(csw, bibset, p->u.p[0]); - right = ccl_remove_stop_r(csw, bibset, p->u.p[1]); - if (!left || !right) - { - /* we must delete our binary node and return child (if any) */ - p->u.p[0] = 0; - p->u.p[1] = 0; - ccl_rpn_delete(p); - if (left) - return left; - else - return right; - } - break; - case CCL_RPN_SET: - break; - case CCL_RPN_TERM: - if (p->u.t.term) - { - int found = 1; - while (found) - { - char *cp = p->u.t.term; - found = 0; - while (1) - { - while (*cp && strchr(csw->blank_chars, *cp)) - cp++; - if (!*cp) - break; - else - { - char *cp0 = cp; - while (*cp && !strchr(csw->blank_chars, *cp)) - cp++; - if (cp != cp0) - { - size_t len = cp - cp0; - if (ccl_search_stop(bibset, p->u.t.qual, - cp0, len)) - { - append_removed_item(csw, p->u.t.qual, - cp0, len); - while (*cp && strchr(csw->blank_chars, *cp)) - cp++; - memmove(cp0, cp, strlen(cp)+1); - found = 1; - break; - } - } - } - } - } - } - /* chop right blanks .. and see if term it gets empty */ - if (p->u.t.term && csw->removed_items) - { - char *cp = p->u.t.term + strlen(p->u.t.term); - while (1) - { - if (cp == p->u.t.term) - { - /* term is empty / blank */ - ccl_rpn_delete(p); - return 0; - } - if (!strchr(csw->blank_chars, cp[-1])) - break; - /* chop right */ - cp[-1] = 0; - --cp; - } - } - break; - } - return p; -} - -int ccl_stop_words_tree(ccl_stop_words_t csw, - CCL_bibset bibset, struct ccl_rpn_node **t) -{ - struct ccl_rpn_node *r; - - /* remove list items */ - nmem_reset(csw->nmem); - csw->removed_items = 0; - - r = ccl_remove_stop_r(csw, bibset, *t); - *t = r; - if (csw->removed_items) - return 1; - return 0; -} - -int ccl_stop_words_info(ccl_stop_words_t csw, int idx, - const char **qualname, const char **term) -{ - struct ccl_stop_info *csi = csw->removed_items; - int i = 0; - while (csi && i < idx) - { - csi = csi->next; - i++; - } - if (csi) - { - *qualname = csi->qualname; - *term = csi->term; - return 1; - } - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cclerrms.c b/dependencies/yaz_3.0.14/src/cclerrms.c deleted file mode 100644 index 7c54085..0000000 --- a/dependencies/yaz_3.0.14/src/cclerrms.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -/** - * \file cclerrms.c - * \brief Implements CCL error code to error string map. - * - * This source file implements mapping between CCL error code and - * their string equivalents. - */ - - -/* - * Europagate, 1995 - * - * $Id: cclerrms.c,v 1.3 2005/06/25 15:46:03 adam Exp $ - * - * Old Europagate Log: - * - * Revision 1.8 1995/05/16 09:39:25 adam - * LICENSE. - * - * Revision 1.7 1995/04/17 09:31:40 adam - * Improved handling of qualifiers. Aliases or reserved words. - * - * Revision 1.6 1995/02/23 08:31:59 adam - * Changed header. - * - * Revision 1.4 1995/02/14 16:20:54 adam - * Qualifiers are read from a file now. - * - * Revision 1.3 1995/02/14 10:25:56 adam - * The constructions 'qualifier rel term ...' implemented. - * - * Revision 1.2 1995/02/13 15:15:06 adam - * Added handling of qualifiers. Not finished yet. - * - * Revision 1.1 1995/02/13 12:35:20 adam - * First version of CCL. Qualifiers aren't handled yet. - * - */ - -#include - -static char *err_msg_array[] = { - "Ok", - "Search word expected", - "')' expected", - "Set name expected", - "Operator expected", - "Unbalanced ')'", - "Unknown qualifier", - "Qualifiers applied twice", - "'=' expected", - "Bad relation", - "Left truncation not supported", - "Both left - and right truncation not supported", - "Right truncation not supported" -}; - -/* - * ccl_err_msg: return name of CCL error - * ccl_errno: Error no. - * return: Name of error. - */ -const char *ccl_err_msg (int ccl_errno) -{ - return err_msg_array[ccl_errno]; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cclfind.c b/dependencies/yaz_3.0.14/src/cclfind.c deleted file mode 100644 index 6fb0c0b..0000000 --- a/dependencies/yaz_3.0.14/src/cclfind.c +++ /dev/null @@ -1,1210 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -/** - * \file cclfind.c - * \brief Implements parsing of a CCL FIND query. - * - * This source file implements parsing of a CCL Query (ISO8777). - * The parser uses predictive parsing, but it does several tokens - * of lookahead in the handling of relational operations.. So - * it's not really pure. - */ - - -/* CCL find (to rpn conversion) - * Europagate, 1995 - * - * $Id: cclfind.c,v 1.14 2007/05/01 12:22:11 adam Exp $ - * - * Old Europagate log: - * - * Revision 1.16 1996/01/08 08:41:13 adam - * Removed unused function. - * - * Revision 1.15 1995/07/20 08:14:34 adam - * Qualifiers were observed too often. Instead tokens are treated as - * qualifiers only when separated by comma. - * - * Revision 1.14 1995/05/16 09:39:26 adam - * LICENSE. - * - * Revision 1.13 1995/04/17 09:31:42 adam - * Improved handling of qualifiers. Aliases or reserved words. - * - * Revision 1.12 1995/03/20 15:27:43 adam - * Minor changes. - * - * Revision 1.11 1995/02/23 08:31:59 adam - * Changed header. - * - * Revision 1.9 1995/02/16 13:20:06 adam - * Spell fix. - * - * Revision 1.8 1995/02/14 19:59:42 adam - * Removed a syntax error. - * - * Revision 1.7 1995/02/14 19:55:10 adam - * Header files ccl.h/cclp.h are gone! They have been merged an - * moved to ../include/ccl.h. - * Node kind(s) in ccl_rpn_node have changed names. - * - * Revision 1.6 1995/02/14 16:20:55 adam - * Qualifiers are read from a file now. - * - * Revision 1.5 1995/02/14 14:12:41 adam - * Ranges for ordered qualfiers implemented (e.g. pd=1980-1990). - * - * Revision 1.4 1995/02/14 13:16:29 adam - * Left and/or right truncation implemented. - * - * Revision 1.3 1995/02/14 10:25:56 adam - * The constructions 'qualifier rel term ...' implemented. - * - * Revision 1.2 1995/02/13 15:15:07 adam - * Added handling of qualifiers. Not finished yet. - * - * Revision 1.1 1995/02/13 12:35:20 adam - * First version of CCL. Qualifiers aren't handled yet. - * - */ - -#include -#include - -#include "cclp.h" - -/* returns type of current lookahead */ -#define KIND (cclp->look_token->kind) - -/* move one token forward */ -#define ADVANCE cclp->look_token = cclp->look_token->next - -/** - * qual_val_type: test for existance of attribute type/value pair. - * qa: Attribute array - * type: Type of attribute to search for - * value: Value of attribute to seach for - * return: 1 if found; 0 otherwise. - */ -static int qual_val_type(ccl_qualifier_t *qa, int type, int value, - char **attset) -{ - int i; - - if (!qa) - return 0; - for (i = 0; qa[i]; i++) - { - struct ccl_rpn_attr *q = ccl_qual_get_attr(qa[i]); - while (q) - { - if (q->type == type && q->kind == CCL_RPN_ATTR_NUMERIC && - q->value.numeric == value) - { - if (attset) - *attset = q->set; - return 1; - } - q = q->next; - } - } - return 0; -} - -/** - * strxcat: concatenate strings. - * n: Null-terminated Destination string - * src: Source string to be appended (not null-terminated) - * len: Length of source string. - */ -static void strxcat(char *n, const char *src, int len) -{ - while (*n) - n++; - while (--len >= 0) - *n++ = *src++; - *n = '\0'; -} - -/** - * copy_token_name: Return copy of CCL token name - * tp: Pointer to token info. - * return: malloc(3) allocated copy of token name. - */ -static char *copy_token_name(struct ccl_token *tp) -{ - char *str = (char *)xmalloc(tp->len + 1); - ccl_assert(str); - memcpy(str, tp->name, tp->len); - str[tp->len] = '\0'; - return str; -} - -/** - * mk_node: Create RPN node. - * kind: Type of node. - * return: pointer to allocated node. - */ -struct ccl_rpn_node *ccl_rpn_node_create(enum ccl_rpn_kind kind) -{ - struct ccl_rpn_node *p; - p = (struct ccl_rpn_node *)xmalloc(sizeof(*p)); - ccl_assert(p); - p->kind = kind; - - switch(kind) - { - case CCL_RPN_TERM: - p->u.t.attr_list = 0; - p->u.t.term = 0; - p->u.t.qual = 0; - break; - default: - break; - } - return p; -} - -/** - * ccl_rpn_delete: Delete RPN tree. - * rpn: Pointer to tree. - */ -void ccl_rpn_delete(struct ccl_rpn_node *rpn) -{ - struct ccl_rpn_attr *attr, *attr1; - if (!rpn) - return; - switch (rpn->kind) - { - case CCL_RPN_AND: - case CCL_RPN_OR: - case CCL_RPN_NOT: - ccl_rpn_delete(rpn->u.p[0]); - ccl_rpn_delete(rpn->u.p[1]); - break; - case CCL_RPN_TERM: - xfree(rpn->u.t.term); - xfree(rpn->u.t.qual); - for (attr = rpn->u.t.attr_list; attr; attr = attr1) - { - attr1 = attr->next; - if (attr->kind == CCL_RPN_ATTR_STRING) - xfree(attr->value.str); - if (attr->set) - xfree(attr->set); - xfree(attr); - } - break; - case CCL_RPN_SET: - xfree(rpn->u.setname); - break; - case CCL_RPN_PROX: - ccl_rpn_delete(rpn->u.p[0]); - ccl_rpn_delete(rpn->u.p[1]); - ccl_rpn_delete(rpn->u.p[2]); - break; - } - xfree(rpn); -} - -static struct ccl_rpn_node *find_spec(CCL_parser cclp, ccl_qualifier_t *qa); - -static int is_term_ok(int look, int *list) -{ - for (;*list >= 0; list++) - if (look == *list) - return 1; - return 0; -} - -static struct ccl_rpn_node *search_terms(CCL_parser cclp, ccl_qualifier_t *qa); - -static struct ccl_rpn_attr *add_attr_node(struct ccl_rpn_node *p, - const char *set, int type) -{ - struct ccl_rpn_attr *n; - - n = (struct ccl_rpn_attr *)xmalloc(sizeof(*n)); - ccl_assert(n); - if (set) - n->set = xstrdup(set); - else - n->set = 0; - n->type = type; - n->next = p->u.t.attr_list; - p->u.t.attr_list = n; - - return n; -} - -/** - * add_attr_numeric: Add attribute (type/value) to RPN term node. - * p: RPN node of type term. - * type: Type of attribute - * value: Value of attribute - * set: Attribute set name - */ -void ccl_add_attr_numeric(struct ccl_rpn_node *p, const char *set, - int type, int value) -{ - struct ccl_rpn_attr *n; - - n = add_attr_node(p, set, type); - n->kind = CCL_RPN_ATTR_NUMERIC; - n->value.numeric = value; -} - -void ccl_add_attr_string(struct ccl_rpn_node *p, const char *set, - int type, char *value) -{ - struct ccl_rpn_attr *n; - - n = add_attr_node(p, set, type); - n->kind = CCL_RPN_ATTR_STRING; - n->value.str = xstrdup(value); -} - - -/** - * search_term: Parse CCL search term. - * cclp: CCL Parser - * qa: Qualifier attributes already applied. - * term_list: tokens we accept as terms in context - * multi: whether we accept "multiple" tokens - * return: pointer to node(s); NULL on error. - */ -static struct ccl_rpn_node *search_term_x(CCL_parser cclp, - ccl_qualifier_t *qa, - int *term_list, int multi) -{ - struct ccl_rpn_node *p_top = 0; - struct ccl_token *lookahead = cclp->look_token; - int and_list = 0; - int or_list = 0; - char *attset; - const char **truncation_aliases; - const char *t_default[2]; - - truncation_aliases = - ccl_qual_search_special(cclp->bibset, "truncation"); - if (!truncation_aliases) - { - truncation_aliases = t_default; - t_default[0] = "?"; - t_default[1] = 0; - } - - if (qual_val_type(qa, CCL_BIB1_STR, CCL_BIB1_STR_AND_LIST, 0)) - and_list = 1; - if (qual_val_type(qa, CCL_BIB1_STR, CCL_BIB1_STR_OR_LIST, 0)) - or_list = 1; - while (1) - { - struct ccl_rpn_node *p; - size_t no, i; - int no_spaces = 0; - int left_trunc = 0; - int right_trunc = 0; - int mid_trunc = 0; - int relation_value = -1; - int position_value = -1; - int structure_value = -1; - int truncation_value = -1; - int completeness_value = -1; - int len = 0; - size_t max = 200; - if (and_list || or_list || !multi) - max = 1; - - /* ignore commas when dealing with and-lists .. */ - if (and_list && lookahead && lookahead->kind == CCL_TOK_COMMA) - { - lookahead = lookahead->next; - ADVANCE; - continue; - } - /* go through each TERM token. If no truncation attribute is yet - met, then look for left/right truncation markers (?) and - set left_trunc/right_trunc/mid_trunc accordingly */ - for (no = 0; no < max && is_term_ok(lookahead->kind, term_list); no++) - { - for (i = 0; ilen; i++) - if (lookahead->name[i] == ' ') - no_spaces++; - else if (strchr(truncation_aliases[0], lookahead->name[i])) - { - if (no == 0 && i == 0 && lookahead->len >= 1) - left_trunc = 1; - else if (!is_term_ok(lookahead->next->kind, term_list) && - i == lookahead->len-1 && i >= 1) - right_trunc = 1; - else - mid_trunc = 1; - } - len += 1+lookahead->len+lookahead->ws_prefix_len; - lookahead = lookahead->next; - } - - if (len == 0) - break; /* no more terms . stop . */ - - /* create the term node, but wait a moment before adding the term */ - p = ccl_rpn_node_create(CCL_RPN_TERM); - p->u.t.attr_list = NULL; - p->u.t.term = NULL; - if (qa && qa[0]) - { - const char *n = ccl_qual_get_name(qa[0]); - if (n) - p->u.t.qual = xstrdup(n); - } - - /* go through all attributes and add them to the attribute list */ - for (i=0; qa && qa[i]; i++) - { - struct ccl_rpn_attr *attr; - - for (attr = ccl_qual_get_attr(qa[i]); attr; attr = attr->next) - switch(attr->kind) - { - case CCL_RPN_ATTR_STRING: - ccl_add_attr_string(p, attr->set, attr->type, - attr->value.str); - break; - case CCL_RPN_ATTR_NUMERIC: - if (attr->value.numeric > 0) - { /* deal only with REAL attributes (positive) */ - switch (attr->type) - { - case CCL_BIB1_REL: - if (relation_value != -1) - continue; - relation_value = attr->value.numeric; - break; - case CCL_BIB1_POS: - if (position_value != -1) - continue; - position_value = attr->value.numeric; - break; - case CCL_BIB1_STR: - if (structure_value != -1) - continue; - structure_value = attr->value.numeric; - break; - case CCL_BIB1_TRU: - if (truncation_value != -1) - continue; - truncation_value = attr->value.numeric; - left_trunc = right_trunc = mid_trunc = 0; - break; - case CCL_BIB1_COM: - if (completeness_value != -1) - continue; - completeness_value = attr->value.numeric; - break; - } - ccl_add_attr_numeric(p, attr->set, attr->type, - attr->value.numeric); - } - } - } - /* len now holds the number of characters in the RPN term */ - /* no holds the number of CCL tokens (1 or more) */ - - if (structure_value == -1 && - qual_val_type(qa, CCL_BIB1_STR, CCL_BIB1_STR_WP, &attset)) - { /* no structure attribute met. Apply either structure attribute - WORD or PHRASE depending on number of CCL tokens */ - if (no == 1 && no_spaces == 0) - ccl_add_attr_numeric(p, attset, CCL_BIB1_STR, 2); - else - ccl_add_attr_numeric(p, attset, CCL_BIB1_STR, 1); - } - - /* make the RPN token */ - p->u.t.term = (char *)xmalloc(len); - ccl_assert(p->u.t.term); - p->u.t.term[0] = '\0'; - for (i = 0; ilook_token->name; - size_t src_len = cclp->look_token->len; - - if (i == 0 && left_trunc) - { - src_len--; - src_str++; - } - if (i == no-1 && right_trunc) - src_len--; - if (p->u.t.term[0] && cclp->look_token->ws_prefix_len) - { - size_t len = strlen(p->u.t.term); - memcpy(p->u.t.term + len, cclp->look_token->ws_prefix_buf, - cclp->look_token->ws_prefix_len); - p->u.t.term[len + cclp->look_token->ws_prefix_len] = '\0'; - } - strxcat(p->u.t.term, src_str, src_len); - ADVANCE; - } - - /* make the top node point to us.. */ - if (p_top) - { - struct ccl_rpn_node *tmp; - - if (or_list) - tmp = ccl_rpn_node_create(CCL_RPN_OR); - else if (and_list) - tmp = ccl_rpn_node_create(CCL_RPN_AND); - else - tmp = ccl_rpn_node_create(CCL_RPN_AND); - tmp->u.p[0] = p_top; - tmp->u.p[1] = p; - - p_top = tmp; - } - else - p_top = p; - - - if (left_trunc && right_trunc) - { - if (!qual_val_type(qa, CCL_BIB1_TRU, CCL_BIB1_TRU_CAN_BOTH, - &attset)) - { - cclp->error_code = CCL_ERR_TRUNC_NOT_BOTH; - ccl_rpn_delete(p); - return NULL; - } - ccl_add_attr_numeric(p, attset, CCL_BIB1_TRU, 3); - } - else if (right_trunc) - { - if (!qual_val_type(qa, CCL_BIB1_TRU, CCL_BIB1_TRU_CAN_RIGHT, - &attset)) - { - cclp->error_code = CCL_ERR_TRUNC_NOT_RIGHT; - ccl_rpn_delete(p); - return NULL; - } - ccl_add_attr_numeric(p, attset, CCL_BIB1_TRU, 1); - } - else if (left_trunc) - { - if (!qual_val_type(qa, CCL_BIB1_TRU, CCL_BIB1_TRU_CAN_LEFT, - &attset)) - { - cclp->error_code = CCL_ERR_TRUNC_NOT_LEFT; - ccl_rpn_delete(p); - return NULL; - } - ccl_add_attr_numeric(p, attset, CCL_BIB1_TRU, 2); - } - else - { - if (qual_val_type(qa, CCL_BIB1_TRU, CCL_BIB1_TRU_CAN_NONE, - &attset)) - ccl_add_attr_numeric(p, attset, CCL_BIB1_TRU, 100); - } - if (!multi) - break; - } - if (!p_top) - cclp->error_code = CCL_ERR_TERM_EXPECTED; - return p_top; -} - -static struct ccl_rpn_node *search_term(CCL_parser cclp, ccl_qualifier_t *qa) -{ - static int list[] = {CCL_TOK_TERM, CCL_TOK_COMMA, -1}; - return search_term_x(cclp, qa, list, 0); -} - -static -struct ccl_rpn_node *qualifiers_order(CCL_parser cclp, - ccl_qualifier_t *ap, char *attset) -{ - int rel = 0; - struct ccl_rpn_node *p; - - if (cclp->look_token->len == 1) - { - if (cclp->look_token->name[0] == '<') - rel = 1; - else if (cclp->look_token->name[0] == '=') - rel = 3; - else if (cclp->look_token->name[0] == '>') - rel = 5; - } - else if (cclp->look_token->len == 2) - { - if (!memcmp(cclp->look_token->name, "<=", 2)) - rel = 2; - else if (!memcmp(cclp->look_token->name, ">=", 2)) - rel = 4; - else if (!memcmp(cclp->look_token->name, "<>", 2)) - rel = 6; - } - if (!rel) - { - cclp->error_code = CCL_ERR_BAD_RELATION; - return NULL; - } - ADVANCE; /* skip relation */ - if (rel == 3 && - qual_val_type(ap, CCL_BIB1_REL, CCL_BIB1_REL_PORDER, 0)) - { - /* allow - inside term and treat it as range _always_ */ - /* relation is =. Extract "embedded" - to separate terms */ - if (KIND == CCL_TOK_TERM) - { - size_t i; - for (i = 0; ilook_token->len; i++) - { - if (cclp->look_token->name[i] == '-') - break; - } - - if (cclp->look_token->len > 1 && i == 0) - { /* -xx*/ - struct ccl_token *ntoken = ccl_token_add(cclp->look_token); - - ntoken->kind = CCL_TOK_TERM; - ntoken->name = cclp->look_token->name + 1; - ntoken->len = cclp->look_token->len - 1; - - cclp->look_token->len = 1; - cclp->look_token->name = "-"; - } - else if (cclp->look_token->len > 1 && i == cclp->look_token->len-1) - { /* xx- */ - struct ccl_token *ntoken = ccl_token_add(cclp->look_token); - - ntoken->kind = CCL_TOK_TERM; - ntoken->name = "-"; - ntoken->len = 1; - - (cclp->look_token->len)--; - } - else if (cclp->look_token->len > 2 && i < cclp->look_token->len) - { /* xx-yy */ - struct ccl_token *ntoken1 = ccl_token_add(cclp->look_token); - struct ccl_token *ntoken2 = ccl_token_add(ntoken1); - - ntoken1->kind = CCL_TOK_TERM; /* generate - */ - ntoken1->name = "-"; - ntoken1->len = 1; - - ntoken2->kind = CCL_TOK_TERM; /* generate yy */ - ntoken2->name = cclp->look_token->name + (i+1); - ntoken2->len = cclp->look_token->len - (i+1); - - cclp->look_token->len = i; /* adjust xx */ - } - else if (i == cclp->look_token->len && - cclp->look_token->next && - cclp->look_token->next->kind == CCL_TOK_TERM && - cclp->look_token->next->len > 1 && - cclp->look_token->next->name[0] == '-') - - { /* xx -yy */ - /* we _know_ that xx does not have - in it */ - struct ccl_token *ntoken = ccl_token_add(cclp->look_token); - - ntoken->kind = CCL_TOK_TERM; /* generate - */ - ntoken->name = "-"; - ntoken->len = 1; - - (ntoken->next->name)++; /* adjust yy */ - (ntoken->next->len)--; - } - } - } - - if (rel == 3 && - KIND == CCL_TOK_TERM && - cclp->look_token->next && cclp->look_token->next->len == 1 && - cclp->look_token->next->name[0] == '-') - { - struct ccl_rpn_node *p1; - if (!(p1 = search_term(cclp, ap))) - return NULL; - ADVANCE; /* skip '-' */ - if (KIND == CCL_TOK_TERM) /* = term - term ? */ - { - struct ccl_rpn_node *p2; - - if (!(p2 = search_term(cclp, ap))) - { - ccl_rpn_delete(p1); - return NULL; - } - p = ccl_rpn_node_create(CCL_RPN_AND); - p->u.p[0] = p1; - ccl_add_attr_numeric(p1, attset, CCL_BIB1_REL, 4); - p->u.p[1] = p2; - ccl_add_attr_numeric(p2, attset, CCL_BIB1_REL, 2); - return p; - } - else /* = term - */ - { - ccl_add_attr_numeric(p1, attset, CCL_BIB1_REL, 4); - return p1; - } - } - else if (rel == 3 && - cclp->look_token->len == 1 && - cclp->look_token->name[0] == '-') /* = - term ? */ - { - ADVANCE; - if (!(p = search_term(cclp, ap))) - return NULL; - ccl_add_attr_numeric(p, attset, CCL_BIB1_REL, 2); - return p; - } - else if (KIND == CCL_TOK_LP) - { - ADVANCE; - if (!(p = find_spec(cclp, ap))) - return NULL; - if (KIND != CCL_TOK_RP) - { - cclp->error_code = CCL_ERR_RP_EXPECTED; - ccl_rpn_delete(p); - return NULL; - } - ADVANCE; - return p; - } - else - { - if (!(p = search_terms(cclp, ap))) - return NULL; - ccl_add_attr_numeric(p, attset, CCL_BIB1_REL, rel); - return p; - } - cclp->error_code = CCL_ERR_TERM_EXPECTED; - return NULL; -} - -static -struct ccl_rpn_node *qualifier_relation(CCL_parser cclp, ccl_qualifier_t *ap) -{ - char *attset; - struct ccl_rpn_node *p; - - if (qual_val_type(ap, CCL_BIB1_REL, CCL_BIB1_REL_ORDER, &attset) - || qual_val_type(ap, CCL_BIB1_REL, CCL_BIB1_REL_PORDER, &attset)) - return qualifiers_order(cclp, ap, attset); - - /* unordered relation */ - if (KIND != CCL_TOK_EQ) - { - cclp->error_code = CCL_ERR_EQ_EXPECTED; - return NULL; - } - ADVANCE; - if (KIND == CCL_TOK_LP) - { - ADVANCE; - if (!(p = find_spec(cclp, ap))) - { - return NULL; - } - if (KIND != CCL_TOK_RP) - { - cclp->error_code = CCL_ERR_RP_EXPECTED; - ccl_rpn_delete(p); - return NULL; - } - ADVANCE; - } - else - p = search_terms(cclp, ap); - return p; -} - -/** - * qualifier_list: Parse CCL qualifiers and search terms. - * cclp: CCL Parser - * la: Token pointer to RELATION token. - * qa: Qualifier attributes already applied. - * return: pointer to node(s); NULL on error. - */ -static struct ccl_rpn_node *qualifier_list(CCL_parser cclp, - struct ccl_token *la, - ccl_qualifier_t *qa) -{ - struct ccl_token *lookahead = cclp->look_token; - struct ccl_token *look_start = cclp->look_token; - ccl_qualifier_t *ap; - struct ccl_rpn_node *node = 0; - const char **field_str; - int no = 0; - int seq = 0; - int i; - int mode_merge = 1; -#if 0 - if (qa) - { - cclp->error_code = CCL_ERR_DOUBLE_QUAL; - return NULL; - } -#endif - for (lookahead = cclp->look_token; lookahead != la; - lookahead=lookahead->next) - no++; - if (qa) - for (i=0; qa[i]; i++) - no++; - ap = (ccl_qualifier_t *)xmalloc((no ? (no+1) : 2) * sizeof(*ap)); - ccl_assert(ap); - - field_str = ccl_qual_search_special(cclp->bibset, "field"); - if (field_str) - { - if (!strcmp(field_str[0], "or")) - mode_merge = 0; - else if (!strcmp(field_str[0], "merge")) - mode_merge = 1; - } - if (!mode_merge) - { - /* consider each field separately and OR */ - lookahead = look_start; - while (lookahead != la) - { - ap[1] = 0; - seq = 0; - while ((ap[0] = ccl_qual_search(cclp, lookahead->name, - lookahead->len, seq)) != 0) - { - struct ccl_rpn_node *node_sub; - cclp->look_token = la; - - node_sub = qualifier_relation(cclp, ap); - if (!node_sub) - { - ccl_rpn_delete(node); - xfree(ap); - return 0; - } - if (node) - { - struct ccl_rpn_node *node_this = - ccl_rpn_node_create(CCL_RPN_OR); - node_this->u.p[0] = node; - node_this->u.p[1] = node_sub; - node = node_this; - } - else - node = node_sub; - seq++; - } - if (seq == 0) - { - cclp->look_token = lookahead; - cclp->error_code = CCL_ERR_UNKNOWN_QUAL; - xfree(ap); - return NULL; - } - lookahead = lookahead->next; - if (lookahead->kind == CCL_TOK_COMMA) - lookahead = lookahead->next; - } - } - else - { - /* merge attributes from ALL fields - including inherited ones */ - while (1) - { - struct ccl_rpn_node *node_sub; - int found = 0; - lookahead = look_start; - for (i = 0; lookahead != la; i++) - { - ap[i] = ccl_qual_search(cclp, lookahead->name, - lookahead->len, seq); - if (ap[i]) - found++; - if (!ap[i] && seq > 0) - ap[i] = ccl_qual_search(cclp, lookahead->name, - lookahead->len, 0); - if (!ap[i]) - { - cclp->look_token = lookahead; - cclp->error_code = CCL_ERR_UNKNOWN_QUAL; - xfree(ap); - return NULL; - } - lookahead = lookahead->next; - if (lookahead->kind == CCL_TOK_COMMA) - lookahead = lookahead->next; - } - if (qa) - { - ccl_qualifier_t *qa0 = qa; - - while (*qa0) - ap[i++] = *qa0++; - } - ap[i] = NULL; - - if (!found) - break; - - cclp->look_token = lookahead; - - node_sub = qualifier_relation(cclp, ap); - if (!node_sub) - { - ccl_rpn_delete(node); - break; - } - if (node) - { - struct ccl_rpn_node *node_this = - ccl_rpn_node_create(CCL_RPN_OR); - node_this->u.p[0] = node; - node_this->u.p[1] = node_sub; - node = node_this; - } - else - node = node_sub; - seq++; - } - } - xfree(ap); - return node; -} - - -/** - * search_terms: Parse CCL search terms - including proximity. - * cclp: CCL Parser - * qa: Qualifier attributes already applied. - * return: pointer to node(s); NULL on error. - */ -static struct ccl_rpn_node *search_terms(CCL_parser cclp, ccl_qualifier_t *qa) -{ - static int list[] = { - CCL_TOK_TERM, CCL_TOK_COMMA,CCL_TOK_EQ, CCL_TOK_REL, CCL_TOK_SET, -1}; - struct ccl_rpn_node *p1, *p2, *pn; - p1 = search_term_x(cclp, qa, list, 1); - if (!p1) - return NULL; - while (1) - { - if (KIND == CCL_TOK_PROX) - { - struct ccl_rpn_node *p_prox = 0; - /* ! word order specified */ - /* % word order not specified */ - p_prox = ccl_rpn_node_create(CCL_RPN_TERM); - p_prox->u.t.term = (char *) xmalloc(1 + cclp->look_token->len); - memcpy(p_prox->u.t.term, cclp->look_token->name, - cclp->look_token->len); - p_prox->u.t.term[cclp->look_token->len] = 0; - p_prox->u.t.attr_list = 0; - - ADVANCE; - p2 = search_term_x(cclp, qa, list, 1); - if (!p2) - { - ccl_rpn_delete(p1); - return NULL; - } - pn = ccl_rpn_node_create(CCL_RPN_PROX); - pn->u.p[0] = p1; - pn->u.p[1] = p2; - pn->u.p[2] = p_prox; - p1 = pn; - } - else if (is_term_ok(KIND, list)) - { - p2 = search_term_x(cclp, qa, list, 1); - if (!p2) - { - ccl_rpn_delete(p1); - return NULL; - } - pn = ccl_rpn_node_create(CCL_RPN_PROX); - pn->u.p[0] = p1; - pn->u.p[1] = p2; - pn->u.p[2] = 0; - p1 = pn; - } - else - break; - } - return p1; -} - -/** - * search_elements: Parse CCL search elements - * cclp: CCL Parser - * qa: Qualifier attributes already applied. - * return: pointer to node(s); NULL on error. - */ -static struct ccl_rpn_node *search_elements(CCL_parser cclp, - ccl_qualifier_t *qa) -{ - struct ccl_rpn_node *p1; - struct ccl_token *lookahead; - if (KIND == CCL_TOK_LP) - { - ADVANCE; - p1 = find_spec(cclp, qa); - if (!p1) - return NULL; - if (KIND != CCL_TOK_RP) - { - cclp->error_code = CCL_ERR_RP_EXPECTED; - ccl_rpn_delete(p1); - return NULL; - } - ADVANCE; - return p1; - } - else if (KIND == CCL_TOK_SET) - { - ADVANCE; - if (KIND == CCL_TOK_EQ) - ADVANCE; - if (KIND != CCL_TOK_TERM) - { - cclp->error_code = CCL_ERR_SETNAME_EXPECTED; - return NULL; - } - p1 = ccl_rpn_node_create(CCL_RPN_SET); - p1->u.setname = copy_token_name(cclp->look_token); - ADVANCE; - return p1; - } - lookahead = cclp->look_token; - - while (lookahead->kind==CCL_TOK_TERM) - { - lookahead = lookahead->next; - if (lookahead->kind == CCL_TOK_REL || lookahead->kind == CCL_TOK_EQ) - return qualifier_list(cclp, lookahead, qa); - if (lookahead->kind != CCL_TOK_COMMA) - break; - lookahead = lookahead->next; - } - if (qa) - return search_terms(cclp, qa); - else - { - ccl_qualifier_t qa[2]; - struct ccl_rpn_node *node = 0; - int seq; - lookahead = cclp->look_token; - - qa[1] = 0; - for(seq = 0; ;seq++) - { - struct ccl_rpn_node *node_sub; - qa[0] = ccl_qual_search(cclp, "term", 4, seq); - if (!qa[0]) - break; - - cclp->look_token = lookahead; - - node_sub = search_terms(cclp, qa); - if (!node_sub) - { - ccl_rpn_delete(node); - return 0; - } - if (node) - { - struct ccl_rpn_node *node_this = - ccl_rpn_node_create(CCL_RPN_OR); - node_this->u.p[0] = node; - node_this->u.p[1] = node_sub; - node_this->u.p[2] = 0; - node = node_this; - } - else - node = node_sub; - } - if (!node) - node = search_terms(cclp, 0); - return node; - } -} - -/** - * find_spec: Parse CCL find specification - * cclp: CCL Parser - * qa: Qualifier attributes already applied. - * return: pointer to node(s); NULL on error. - */ -static struct ccl_rpn_node *find_spec(CCL_parser cclp, ccl_qualifier_t *qa) -{ - struct ccl_rpn_node *p1, *p2, *pn; - if (!(p1 = search_elements(cclp, qa))) - return NULL; - while (1) - { - switch (KIND) - { - case CCL_TOK_AND: - ADVANCE; - p2 = search_elements(cclp, qa); - if (!p2) - { - ccl_rpn_delete(p1); - return NULL; - } - pn = ccl_rpn_node_create(CCL_RPN_AND); - pn->u.p[0] = p1; - pn->u.p[1] = p2; - pn->u.p[2] = 0; - p1 = pn; - continue; - case CCL_TOK_OR: - ADVANCE; - p2 = search_elements(cclp, qa); - if (!p2) - { - ccl_rpn_delete(p1); - return NULL; - } - pn = ccl_rpn_node_create(CCL_RPN_OR); - pn->u.p[0] = p1; - pn->u.p[1] = p2; - pn->u.p[2] = 0; - p1 = pn; - continue; - case CCL_TOK_NOT: - ADVANCE; - p2 = search_elements(cclp, qa); - if (!p2) - { - ccl_rpn_delete(p1); - return NULL; - } - pn = ccl_rpn_node_create(CCL_RPN_NOT); - pn->u.p[0] = p1; - pn->u.p[1] = p2; - pn->u.p[2] = 0; - p1 = pn; - continue; - } - break; - } - return p1; -} - -struct ccl_rpn_node *ccl_parser_find_str(CCL_parser cclp, const char *str) -{ - struct ccl_rpn_node *p; - struct ccl_token *list = ccl_parser_tokenize(cclp, str); - p = ccl_parser_find_token(cclp, list); - ccl_token_del(list); - return p; -} - -struct ccl_rpn_node *ccl_parser_find_token(CCL_parser cclp, - struct ccl_token *list) -{ - struct ccl_rpn_node *p; - - cclp->look_token = list; - p = find_spec(cclp, NULL); - if (p && KIND != CCL_TOK_EOL) - { - if (KIND == CCL_TOK_RP) - cclp->error_code = CCL_ERR_BAD_RP; - else - cclp->error_code = CCL_ERR_OP_EXPECTED; - ccl_rpn_delete(p); - p = NULL; - } - cclp->error_pos = cclp->look_token->name; - if (p) - cclp->error_code = CCL_ERR_OK; - else - cclp->error_code = cclp->error_code; - return p; -} - -/** - * ccl_find_str: Parse CCL find - string representation - * bibset: Bibset to be used for the parsing - * str: String to be parsed - * error: Pointer to integer. Holds error no. on completion. - * pos: Pointer to char position. Holds approximate error position. - * return: RPN tree on successful completion; NULL otherwise. - */ -struct ccl_rpn_node *ccl_find_str(CCL_bibset bibset, const char *str, - int *error, int *pos) -{ - CCL_parser cclp = ccl_parser_create(bibset); - struct ccl_token *list; - struct ccl_rpn_node *p; - - list = ccl_parser_tokenize(cclp, str); - p = ccl_parser_find_token(cclp, list); - - *error = cclp->error_code; - if (*error) - *pos = cclp->error_pos - str; - ccl_parser_destroy(cclp); - ccl_token_del(list); - return p; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cclp.h b/dependencies/yaz_3.0.14/src/cclp.h deleted file mode 100644 index cde2812..0000000 --- a/dependencies/yaz_3.0.14/src/cclp.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 1995-2005, Index Data ApS - * See the file LICENSE for details. - * - * $Id: cclp.h,v 1.5 2007/05/01 12:22:11 adam Exp $ - */ - -/** - * \file cclp.h - * \brief CCL header with private definitions - */ -#include - -#define CCL_TOK_EOL 0 -#define CCL_TOK_TERM 1 -#define CCL_TOK_REL 2 -#define CCL_TOK_EQ 3 -#define CCL_TOK_PROX 4 -#define CCL_TOK_LP 5 -#define CCL_TOK_RP 6 -#define CCL_TOK_COMMA 7 -#define CCL_TOK_AND 8 -#define CCL_TOK_OR 9 -#define CCL_TOK_NOT 10 -#define CCL_TOK_SET 11 - -typedef struct ccl_qualifier *ccl_qualifier_t; - -/** CCL token */ -struct ccl_token { - char kind; - size_t len; /* length of name below */ - const char *name; /* string / name of token */ - struct ccl_token *next; - struct ccl_token *prev; - const char *ws_prefix_buf; /* leading white space buf */ - size_t ws_prefix_len; /* leading white space len */ -}; - -/** CCL parser structure */ -struct ccl_parser { - /** current lookahead token */ - struct ccl_token *look_token; - - /** holds error code if error occur */ - int error_code; - /** start of CCL string buffer */ - const char *start_pos; - /** if error occurs, this holds position (starting from 0). */ - const char *error_pos; - - /** current bibset */ - CCL_bibset bibset; - - /** names of and operator */ - const char **ccl_token_and; - /** names of or operator */ - const char **ccl_token_or; - /** names of not operator */ - const char **ccl_token_not; - /** names of set operator */ - const char **ccl_token_set; - /** 1=CCL parser is case sensitive, 0=case insensitive */ - int ccl_case_sensitive; -}; - -/** - * Splits CCL command string into individual tokens using - * a CCL parser. - */ -YAZ_EXPORT -struct ccl_token *ccl_parser_tokenize (CCL_parser cclp, const char *command); - -/** - * Deletes token list - */ -YAZ_EXPORT -void ccl_token_del (struct ccl_token *list); - -/** - * Add single token after a given onde. - */ -YAZ_EXPORT -struct ccl_token *ccl_token_add (struct ccl_token *at); - - -YAZ_EXPORT -struct ccl_rpn_node *ccl_parser_find_token(CCL_parser cclp, - struct ccl_token *list); - - -YAZ_EXPORT -ccl_qualifier_t ccl_qual_search(CCL_parser cclp, const char *name, - size_t name_len, int seq); - -YAZ_EXPORT -struct ccl_rpn_attr *ccl_qual_get_attr(ccl_qualifier_t q); - -YAZ_EXPORT -const char *ccl_qual_get_name(ccl_qualifier_t q); - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cclptree.c b/dependencies/yaz_3.0.14/src/cclptree.c deleted file mode 100644 index 33549d7..0000000 --- a/dependencies/yaz_3.0.14/src/cclptree.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -/** - * \file cclptree.c - * \brief Implements CCL parse tree printing - * - * This source file implements functions to parse and print - * a CCL node tree (as a result of parsing). - */ - -/* CCL print rpn tree - infix notation - * Europagate, 1995 - * - * $Id: cclptree.c,v 1.10 2007/05/01 12:12:34 adam Exp $ - * - * Old Europagate Log: - * - * Revision 1.6 1995/05/16 09:39:26 adam - * LICENSE. - * - * Revision 1.5 1995/02/23 08:31:59 adam - * Changed header. - * - * Revision 1.3 1995/02/15 17:42:16 adam - * Minor changes of the api of this module. FILE* argument added - * to ccl_pr_tree. - * - * Revision 1.2 1995/02/14 19:55:11 adam - * Header files ccl.h/cclp.h are gone! They have been merged an - * moved to ../include/ccl.h. - * Node kind(s) in ccl_rpn_node have changed names. - * - * Revision 1.1 1995/02/14 10:25:56 adam - * The constructions 'qualifier rel term ...' implemented. - * - */ - -#include -#include -#include - -#include - -static void ccl_pquery_indent(WRBUF w, struct ccl_rpn_node *p, int indent); - -static void ccl_pquery_complex(WRBUF w, struct ccl_rpn_node *p, int indent) -{ - int sep_char = indent == -1 ? ' ' : '\n'; - int next_indent = indent == -1 ? indent : indent+1; - switch (p->kind) - { - case CCL_RPN_AND: - wrbuf_puts(w, "@and"); - break; - case CCL_RPN_OR: - wrbuf_puts(w, "@or"); - break; - case CCL_RPN_NOT: - wrbuf_puts(w, "@not"); - break; - case CCL_RPN_PROX: - if (p->u.p[2] && p->u.p[2]->kind == CCL_RPN_TERM) - { - const char *cp = p->u.p[2]->u.t.term; - /* exlusion distance ordered relation which-code unit-code */ - if (*cp == '!') - { - /* word order specified */ - if (isdigit(((const unsigned char *) cp)[1])) - wrbuf_printf(w, "@prox 0 %s 1 2 k 2", cp+1); - else - wrbuf_printf(w, "@prox 0 1 1 2 k 2"); - } - else if (*cp == '%') - { - /* word order not specified */ - if (isdigit(((const unsigned char *) cp)[1])) - wrbuf_printf(w, "@prox 0 %s 0 2 k 2", cp+1); - else - wrbuf_printf(w, "@prox 0 1 0 2 k 2"); - } - } - else - wrbuf_puts(w, "@prox 0 2 0 1 k 2"); - break; - default: - wrbuf_puts(w, "@ bad op (unknown)"); - } - wrbuf_putc(w, sep_char); - ccl_pquery_indent(w, p->u.p[0], next_indent); - ccl_pquery_indent(w, p->u.p[1], next_indent); -} - -static void ccl_prterm(WRBUF w, const char *term) -{ - if (!*term) - wrbuf_puts(w, "\"\""); - else - { - const char *cp = term; - for (; *cp; cp++) - { - if (*cp == ' ' || *cp == '\\') - wrbuf_putc(w, '\\'); - wrbuf_putc(w, *cp); - } - } - wrbuf_puts(w, " "); -} - -static void ccl_pquery_indent(WRBUF w, struct ccl_rpn_node *p, int indent) -{ - struct ccl_rpn_attr *att; - - if (!p) - return; - if (indent != -1) - { - int i; - for (i = 0; i < indent; i++) - wrbuf_putc(w, ' '); - } - switch (p->kind) - { - case CCL_RPN_AND: - case CCL_RPN_OR: - case CCL_RPN_NOT: - case CCL_RPN_PROX: - ccl_pquery_complex(w, p, indent); - break; - case CCL_RPN_SET: - wrbuf_puts(w, "@set "); - ccl_prterm(w, p->u.setname); - if (indent != -1) - wrbuf_putc(w, '\n'); - break; - case CCL_RPN_TERM: - for (att = p->u.t.attr_list; att; att = att->next) - { - char tmpattr[128]; - wrbuf_puts(w, "@attr "); - if (att->set) - { - wrbuf_puts(w, att->set); - wrbuf_puts(w, " "); - } - switch(att->kind) - { - case CCL_RPN_ATTR_NUMERIC: - sprintf(tmpattr, "%d=%d ", att->type, att->value.numeric); - wrbuf_puts(w, tmpattr); - break; - case CCL_RPN_ATTR_STRING: - sprintf(tmpattr, "%d=", att->type); - wrbuf_puts(w, tmpattr); - wrbuf_puts(w, att->value.str); - wrbuf_puts(w, " "); - break; - } - } - ccl_prterm(w, p->u.t.term); - if (indent != -1) - wrbuf_putc(w, '\n'); - break; - } -} - -void ccl_pquery(WRBUF w, struct ccl_rpn_node *p) -{ - ccl_pquery_indent(w, p, -1); -} - -void ccl_pr_tree(struct ccl_rpn_node *rpn, FILE *fd_out) -{ - WRBUF w = wrbuf_alloc(); - - ccl_pquery_indent(w, rpn, 0); - - fputs(wrbuf_cstr(w), fd_out); - wrbuf_destroy(w); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cclqfile.c b/dependencies/yaz_3.0.14/src/cclqfile.c deleted file mode 100644 index c9fece2..0000000 --- a/dependencies/yaz_3.0.14/src/cclqfile.c +++ /dev/null @@ -1,373 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ -/** - * \file cclqfile.c - * \brief Implements parsing of CCL qualifier specs in files - */ -/* CCL qualifiers - * Europagate, 1995 - * - * $Id: cclqfile.c,v 1.11 2007/04/30 19:55:40 adam Exp $ - * - * Old Europagate Log: - * - * Revision 1.3 1995/05/16 09:39:26 adam - * LICENSE. - * - * Revision 1.2 1995/05/11 14:03:56 adam - * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. - * New variable ccl_case_sensitive, which controls whether reserved - * words and field names are case sensitive or not. - * - * Revision 1.1 1995/04/17 09:31:45 adam - * Improved handling of qualifiers. Aliases or reserved words. - * - */ - -#include -#include -#include - -#include -#include -#include - -#define MAX_QUAL 128 - -int ccl_qual_field2(CCL_bibset bibset, const char *cp, const char *qual_name, - const char **addinfo) -{ - yaz_tok_cfg_t yt = yaz_tok_cfg_create(); - - int type_ar[MAX_QUAL]; - int value_ar[MAX_QUAL]; - char *svalue_ar[MAX_QUAL]; - char *attsets[MAX_QUAL]; - int pair_no = 0; - char *type_str = 0; - int t; - yaz_tok_parse_t tp; - - yaz_tok_cfg_single_tokens(yt, ",="); - - tp = yaz_tok_parse_buf(yt, cp); - - yaz_tok_cfg_destroy(yt); - *addinfo = 0; - - t = yaz_tok_move(tp); - while (t == YAZ_TOK_STRING) - { - /* we don't know what lead is yet */ - char *lead_str = xstrdup(yaz_tok_parse_string(tp)); - const char *value_str = 0; - int type = 0, value = 0; /* indicates attribute value UNSET */ - - t = yaz_tok_move(tp); - if (t == ',') - { - /* full attribute spec: set, type = value */ - /* lead is attribute set */ - attsets[pair_no] = lead_str; - t = yaz_tok_move(tp); - if (t != YAZ_TOK_STRING) - { - *addinfo = "token expected"; - goto out; - } - xfree(type_str); - type_str = xstrdup(yaz_tok_parse_string(tp)); - if (yaz_tok_move(tp) != '=') - { - *addinfo = "= expected"; - goto out; - } - } - else if (t == '=') - { - /* lead is attribute type */ - /* attribute set omitted: type = value */ - attsets[pair_no] = 0; - xfree(type_str); - type_str = lead_str; - } - else - { - /* lead is first of a list of qualifier aliaeses */ - /* qualifier alias: q1 q2 ... */ - char *qlist[10]; - int i = 0; - - qlist[i++] = lead_str; - - while ((t=yaz_tok_move(tp)) == YAZ_TOK_STRING) - { - if (i < sizeof(qlist)/sizeof(*qlist)-1) - qlist[i++] = xstrdup(yaz_tok_parse_string(tp)); - } - qlist[i] = 0; - yaz_tok_parse_destroy(tp); - ccl_qual_add_combi (bibset, qual_name, (const char **) qlist); - for (i = 0; qlist[i]; i++) - xfree(qlist[i]); - return 0; - } - while (1) /* comma separated attribute value list */ - { - t = yaz_tok_move(tp); - /* must have a value now */ - if (t != YAZ_TOK_STRING) - { - *addinfo = "value token expected"; - goto out; - } - value_str = yaz_tok_parse_string(tp); - - if (sscanf(type_str, "%d", &type) == 1) - ; - else if (strlen(type_str) != 1) - { - *addinfo = "bad attribute type"; - goto out; - } - else - { - switch (*type_str) - { - case 'u': - case 'U': - type = CCL_BIB1_USE; - break; - case 'r': - case 'R': - type = CCL_BIB1_REL; - if (!ccl_stricmp (value_str, "o")) - value = CCL_BIB1_REL_ORDER; - else if (!ccl_stricmp (value_str, "r")) - value = CCL_BIB1_REL_PORDER; - break; - case 'p': - case 'P': - type = CCL_BIB1_POS; - break; - case 's': - case 'S': - type = CCL_BIB1_STR; - if (!ccl_stricmp (value_str, "pw")) - value = CCL_BIB1_STR_WP; - if (!ccl_stricmp (value_str, "al")) - value = CCL_BIB1_STR_AND_LIST; - if (!ccl_stricmp (value_str, "ol")) - value = CCL_BIB1_STR_OR_LIST; - break; - case 't': - case 'T': - type = CCL_BIB1_TRU; - if (!ccl_stricmp (value_str, "l")) - value = CCL_BIB1_TRU_CAN_LEFT; - else if (!ccl_stricmp (value_str, "r")) - value = CCL_BIB1_TRU_CAN_RIGHT; - else if (!ccl_stricmp (value_str, "b")) - value = CCL_BIB1_TRU_CAN_BOTH; - else if (!ccl_stricmp (value_str, "n")) - value = CCL_BIB1_TRU_CAN_NONE; - break; - case 'c': - case 'C': - type = CCL_BIB1_COM; - break; - } - } - if (type == 0) - { - /* type was not set in switch above */ - *addinfo = "bad attribute type"; - goto out; - } - type_ar[pair_no] = type; - if (value) - { - value_ar[pair_no] = value; - svalue_ar[pair_no] = 0; - } - else if (*value_str >= '0' && *value_str <= '9') - { - value_ar[pair_no] = atoi (value_str); - svalue_ar[pair_no] = 0; - } - else - { - value_ar[pair_no] = 0; - svalue_ar[pair_no] = xstrdup(value_str); - } - pair_no++; - if (pair_no == MAX_QUAL) - { - *addinfo = "too many attribute values"; - goto out; - } - t = yaz_tok_move(tp); - if (t != ',') - break; - attsets[pair_no] = attsets[pair_no-1]; - } - } - out: - xfree(type_str); - type_str = 0; - - yaz_tok_parse_destroy(tp); - - if (*addinfo) - { - int i; - for (i = 0; i 0) - { - if (len >= (sizeof(line)-1)) - len = sizeof(line)-1; - memcpy(line, cp1, len); - line[len] = '\0'; - ccl_qual_line(bibset, line); - } - if (!*cp2) - break; - cp1 = cp2+1; - } -} - -void ccl_qual_line(CCL_bibset bibset, char *line) -{ - int no_scan = 0; - char qual_name[128]; - char *cp1, *cp = line; - - if (*cp == '#') - return; /* ignore lines starting with # */ - if (sscanf (cp, "%100s%n", qual_name, &no_scan) < 1) - return; /* also ignore empty lines */ - cp += no_scan; - cp1 = strchr(cp, '#'); - if (cp1) - *cp1 = '\0'; - ccl_qual_fitem (bibset, cp, qual_name); -} - -/* - * ccl_qual_file: Read bibset definition from file. - * bibset: Bibset - * inf: FILE pointer. - * - * Each line format is: - * = = .... - * Where is name of qualifier; - * = is a attribute definition pair where is one of: - * u(use), r(relation), p(position), t(truncation), c(completeness) - * or plain integer. - * is an integer or special pseudo-value. - */ -void ccl_qual_file (CCL_bibset bibset, FILE *inf) -{ - char line[256]; - - while (fgets (line, 255, inf)) - ccl_qual_line(bibset, line); -} - -int ccl_qual_fname (CCL_bibset bibset, const char *fname) -{ - FILE *inf; - inf = fopen (fname, "r"); - if (!inf) - return -1; - ccl_qual_file (bibset, inf); - fclose (inf); - return 0; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cclqual.c b/dependencies/yaz_3.0.14/src/cclqual.c deleted file mode 100644 index ad6b7c0..0000000 --- a/dependencies/yaz_3.0.14/src/cclqual.c +++ /dev/null @@ -1,431 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ -/** - * \file cclqual.c - * \brief Implements CCL qualifier utilities - */ -/* CCL qualifiers - * Europagate, 1995 - * - * $Id: cclqual.c,v 1.12 2007/05/06 20:12:20 adam Exp $ - * - * Old Europagate Log: - * - * Revision 1.9 1995/05/16 09:39:27 adam - * LICENSE. - * - * Revision 1.8 1995/05/11 14:03:57 adam - * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. - * New variable ccl_case_sensitive, which controls whether reserved - * words and field names are case sensitive or not. - * - * Revision 1.7 1995/04/17 09:31:46 adam - * Improved handling of qualifiers. Aliases or reserved words. - * - * Revision 1.6 1995/02/23 08:32:00 adam - * Changed header. - * - * Revision 1.4 1995/02/14 19:55:12 adam - * Header files ccl.h/cclp.h are gone! They have been merged an - * moved to ../include/ccl.h. - * Node kind(s) in ccl_rpn_node have changed names. - * - * Revision 1.3 1995/02/14 16:20:56 adam - * Qualifiers are read from a file now. - * - * Revision 1.2 1995/02/14 10:25:56 adam - * The constructions 'qualifier rel term ...' implemented. - * - * Revision 1.1 1995/02/13 15:15:07 adam - * Added handling of qualifiers. Not finished yet. - * - */ - -#include -#include -#include -#include -#include -#include "cclp.h" - -/** CCL Qualifier */ -struct ccl_qualifier { - char *name; - int no_sub; - struct ccl_qualifier **sub; - struct ccl_rpn_attr *attr_list; - struct ccl_qualifier *next; -}; - - -/** Definition of CCL_bibset pointer */ -struct ccl_qualifiers { - struct ccl_qualifier *list; - struct ccl_qualifier_special *special; -}; - - -/** CCL Qualifier special */ -struct ccl_qualifier_special { - char *name; - const char **values; - struct ccl_qualifier_special *next; -}; - - -static struct ccl_qualifier *ccl_qual_lookup(CCL_bibset b, - const char *n, size_t len) -{ - struct ccl_qualifier *q; - for (q = b->list; q; q = q->next) - if (len == strlen(q->name) && !memcmp(q->name, n, len)) - break; - return q; -} - -void ccl_qual_add_special_ar(CCL_bibset bibset, const char *n, - const char **values) -{ - struct ccl_qualifier_special *p; - for (p = bibset->special; p && strcmp(p->name, n); p = p->next) - ; - if (p) - { - if (p->values) - { - int i; - for (i = 0; p->values[i]; i++) - xfree((char *) p->values[i]); - xfree((char **)p->values); - } - } - else - { - p = (struct ccl_qualifier_special *) xmalloc(sizeof(*p)); - p->name = xstrdup(n); - p->next = bibset->special; - bibset->special = p; - } - p->values = values; -} - -void ccl_qual_add_special(CCL_bibset bibset, const char *n, const char *cp) -{ - size_t no = 2; - char **vlist = (char **) xmalloc(no * sizeof(*vlist)); - yaz_tok_cfg_t yt = yaz_tok_cfg_create(); - int t; - size_t i = 0; - - yaz_tok_parse_t tp = yaz_tok_parse_buf(yt, cp); - - yaz_tok_cfg_destroy(yt); - - t = yaz_tok_move(tp); - while (t == YAZ_TOK_STRING) - { - if (i >= no-1) - vlist = (char **) xrealloc(vlist, (no = no * 2) * sizeof(*vlist)); - vlist[i++] = xstrdup(yaz_tok_parse_string(tp)); - t = yaz_tok_move(tp); - } - vlist[i] = 0; - ccl_qual_add_special_ar(bibset, n, (const char **) vlist); - - yaz_tok_parse_destroy(tp); -} - - -/** \brief adds specifies qualifier aliases - - \param b bibset - \param n qualifier name - \param names list of qualifier aliases -*/ -void ccl_qual_add_combi(CCL_bibset b, const char *n, const char **names) -{ - int i; - struct ccl_qualifier *q; - for (q = b->list; q && strcmp(q->name, n); q = q->next) - ; - if (q) - return ; - q = (struct ccl_qualifier *) xmalloc(sizeof(*q)); - q->name = xstrdup(n); - q->attr_list = 0; - q->next = b->list; - b->list = q; - - for (i = 0; names[i]; i++) - ; - q->no_sub = i; - q->sub = (struct ccl_qualifier **) - xmalloc(sizeof(*q->sub) * (1+q->no_sub)); - for (i = 0; names[i]; i++) - q->sub[i] = ccl_qual_lookup(b, names[i], strlen(names[i])); -} - -/** \brief adds specifies attributes for qualifier - - \param b bibset - \param name qualifier name - \param no number of attribute type+value pairs - \param type_ar attributes type of size no - \param value_ar attribute value of size no - \param svalue_ar attribute string values ([i] only used if != NULL) - \param attsets attribute sets of size no -*/ - -void ccl_qual_add_set(CCL_bibset b, const char *name, int no, - int *type_ar, int *value_ar, char **svalue_ar, - char **attsets) -{ - struct ccl_qualifier *q; - struct ccl_rpn_attr **attrp; - - ccl_assert(b); - for (q = b->list; q; q = q->next) - if (!strcmp(name, q->name)) - break; - if (!q) - { - q = (struct ccl_qualifier *)xmalloc(sizeof(*q)); - ccl_assert(q); - - q->next = b->list; - b->list = q; - - q->name = xstrdup(name); - q->attr_list = 0; - - q->no_sub = 0; - q->sub = 0; - } - attrp = &q->attr_list; - while (*attrp) - attrp = &(*attrp)->next; - while (--no >= 0) - { - struct ccl_rpn_attr *attr; - - attr = (struct ccl_rpn_attr *)xmalloc(sizeof(*attr)); - ccl_assert(attr); - attr->set = *attsets++; - attr->type = *type_ar++; - if (*svalue_ar) - { - attr->kind = CCL_RPN_ATTR_STRING; - attr->value.str = *svalue_ar; - } - else - { - attr->kind = CCL_RPN_ATTR_NUMERIC; - attr->value.numeric = *value_ar; - } - svalue_ar++; - value_ar++; - *attrp = attr; - attrp = &attr->next; - } - *attrp = NULL; -} - -/** \brief creates Bibset - \returns bibset - */ -CCL_bibset ccl_qual_mk(void) -{ - CCL_bibset b = (CCL_bibset)xmalloc(sizeof(*b)); - ccl_assert(b); - b->list = NULL; - b->special = NULL; - return b; -} - -/** \brief destroys Bibset - \param b pointer to Bibset - - *b will be set to NULL. - */ -void ccl_qual_rm(CCL_bibset *b) -{ - struct ccl_qualifier *q, *q1; - struct ccl_qualifier_special *sp, *sp1; - - if (!*b) - return; - for (q = (*b)->list; q; q = q1) - { - struct ccl_rpn_attr *attr, *attr1; - - for (attr = q->attr_list; attr; attr = attr1) - { - attr1 = attr->next; - if (attr->set) - xfree(attr->set); - if (attr->kind == CCL_RPN_ATTR_STRING) - xfree(attr->value.str); - xfree(attr); - } - q1 = q->next; - xfree(q->name); - if (q->sub) - xfree(q->sub); - xfree(q); - } - for (sp = (*b)->special; sp; sp = sp1) - { - sp1 = sp->next; - xfree(sp->name); - if (sp->values) - { - int i; - for (i = 0; sp->values[i]; i++) - xfree((char*) sp->values[i]); - xfree((char **)sp->values); - } - xfree(sp); - } - xfree(*b); - *b = NULL; -} - -ccl_qualifier_t ccl_qual_search(CCL_parser cclp, const char *name, - size_t name_len, int seq) -{ - struct ccl_qualifier *q = 0; - const char **aliases; - int case_sensitive = cclp->ccl_case_sensitive; - - ccl_assert(cclp); - if (!cclp->bibset) - return 0; - - aliases = ccl_qual_search_special(cclp->bibset, "case"); - if (aliases) - case_sensitive = atoi(aliases[0]); - - for (q = cclp->bibset->list; q; q = q->next) - if (strlen(q->name) == name_len) - { - if (case_sensitive) - { - if (!memcmp(name, q->name, name_len)) - break; - } - else - { - if (!ccl_memicmp(name, q->name, name_len)) - break; - } - } - if (q) - { - if (q->no_sub) - { - if (seq < q->no_sub) - q = q->sub[seq]; - else - q = 0; - } - else if (seq) - q = 0; - } - return q; -} - -struct ccl_rpn_attr *ccl_qual_get_attr(ccl_qualifier_t q) -{ - return q->attr_list; -} - -const char *ccl_qual_get_name(ccl_qualifier_t q) -{ - return q->name; -} - -const char **ccl_qual_search_special(CCL_bibset b, const char *name) -{ - struct ccl_qualifier_special *q; - if (!b) - return 0; - for (q = b->special; q && strcmp(q->name, name); q = q->next) - ; - if (q) - return q->values; - return 0; -} - -int ccl_search_stop(CCL_bibset bibset, const char *qname, - const char *src_str, size_t src_len) -{ - const char **slist = 0; - if (qname) - { - char qname_buf[80]; - yaz_snprintf(qname_buf, sizeof(qname_buf)-1, "stop.%s", - qname); - slist = ccl_qual_search_special(bibset, qname_buf); - } - if (!slist) - slist = ccl_qual_search_special(bibset, "stop.*"); - if (slist) - { - int i; - for (i = 0; slist[i]; i++) - if (src_len == strlen(slist[i]) - && ccl_memicmp(slist[i], src_str, src_len) == 0) - return 1; - } - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cclstr.c b/dependencies/yaz_3.0.14/src/cclstr.c deleted file mode 100644 index 9865651..0000000 --- a/dependencies/yaz_3.0.14/src/cclstr.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ -/** - * \file cclstr.c - * \brief Implements CCL string compare utilities - */ -/* CCL string compare utilities - * Europagate, 1995 - * - * $Id: cclstr.c,v 1.3 2005/06/25 15:46:03 adam Exp $ - * - * Old Europagate Log: - * - * Revision 1.3 1996/01/24 10:11:19 adam - * Added include of stdlib.h. - * - * Revision 1.2 1995/05/16 09:39:27 adam - * LICENSE. - * - * Revision 1.1 1995/05/11 14:03:57 adam - * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. - * New variable ccl_case_sensitive, which controls whether reserved - * words and field names are case sensitive or not. - * - */ -#include -#include -#include - -#include - -static int ccli_toupper (int c) -{ - return toupper (c); -} - -int (*ccl_toupper)(int c) = NULL; - -int ccl_stricmp (const char *s1, const char *s2) -{ - if (!ccl_toupper) - ccl_toupper = ccli_toupper; - while (*s1 && *s2) - { - int c1, c2; - c1 = (*ccl_toupper)(*s1); - c2 = (*ccl_toupper)(*s2); - if (c1 != c2) - return c1 - c2; - s1++; - s2++; - } - return (*ccl_toupper)(*s1) - (*ccl_toupper)(*s2); -} - -int ccl_memicmp (const char *s1, const char *s2, size_t n) -{ - if (!ccl_toupper) - ccl_toupper = ccli_toupper; - while (1) - { - int c1, c2; - - c1 = (*ccl_toupper)(*s1); - c2 = (*ccl_toupper)(*s2); - if (n <= 1 || c1 != c2) - return c1 - c2; - s1++; - s2++; - --n; - } -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ccltoken.c b/dependencies/yaz_3.0.14/src/ccltoken.c deleted file mode 100644 index 2a530c0..0000000 --- a/dependencies/yaz_3.0.14/src/ccltoken.c +++ /dev/null @@ -1,364 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ -/** - * \file ccltoken.c - * \brief Implements CCL lexical analyzer (scanner) - */ -/* CCL - lexical analysis - * Europagate, 1995 - * - * $Id: ccltoken.c,v 1.14 2007/05/06 20:12:20 adam Exp $ - * - * Old Europagate Log: - * - * Revision 1.10 1995/07/11 12:28:31 adam - * New function: ccl_token_simple (split into simple tokens) and - * ccl_token_del (delete tokens). - * - * Revision 1.9 1995/05/16 09:39:28 adam - * LICENSE. - * - * Revision 1.8 1995/05/11 14:03:57 adam - * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. - * New variable ccl_case_sensitive, which controls whether reserved - * words and field names are case sensitive or not. - * - * Revision 1.7 1995/04/19 12:11:24 adam - * Minor change. - * - * Revision 1.6 1995/04/17 09:31:48 adam - * Improved handling of qualifiers. Aliases or reserved words. - * - * Revision 1.5 1995/02/23 08:32:00 adam - * Changed header. - * - * Revision 1.3 1995/02/15 17:42:16 adam - * Minor changes of the api of this module. FILE* argument added - * to ccl_pr_tree. - * - * Revision 1.2 1995/02/14 19:55:13 adam - * Header files ccl.h/cclp.h are gone! They have been merged an - * moved to ../include/ccl.h. - * Node kind(s) in ccl_rpn_node have changed names. - * - * Revision 1.1 1995/02/13 12:35:21 adam - * First version of CCL. Qualifiers aren't handled yet. - * - */ - -#include -#include -#include - -#include "cclp.h" - -/* - * token_cmp: Compare token with keyword(s) - * kw: Keyword list. Each keyword is separated by space. - * token: CCL token. - * return: 1 if token string matches one of the keywords in list; - * 0 otherwise. - */ -static int token_cmp(CCL_parser cclp, const char **kw, struct ccl_token *token) -{ - const char **aliases; - int case_sensitive = cclp->ccl_case_sensitive; - int i; - - aliases = ccl_qual_search_special(cclp->bibset, "case"); - if (aliases) - case_sensitive = atoi(aliases[0]); - - for (i = 0; kw[i]; i++) - { - if (token->len == strlen(kw[i])) - { - if (case_sensitive) - { - if (!memcmp(kw[i], token->name, token->len)) - return 1; - } - else - { - if (!ccl_memicmp(kw[i], token->name, token->len)) - return 1; - } - } - } - return 0; -} - -/* - * ccl_tokenize: tokenize CCL command string. - * return: CCL token list. - */ -struct ccl_token *ccl_parser_tokenize(CCL_parser cclp, const char *command) -{ - const char **aliases; - const unsigned char *cp = (const unsigned char *) command; - struct ccl_token *first = NULL; - struct ccl_token *last = NULL; - cclp->start_pos = command; - - while (1) - { - const unsigned char *cp0 = cp; - while (*cp && strchr(" \t\r\n", *cp)) - cp++; - if (!first) - { - first = last = (struct ccl_token *)xmalloc(sizeof(*first)); - ccl_assert(first); - last->prev = NULL; - } - else - { - last->next = (struct ccl_token *)xmalloc(sizeof(*first)); - ccl_assert(last->next); - last->next->prev = last; - last = last->next; - } - last->ws_prefix_buf = (const char *) cp0; - last->ws_prefix_len = cp - cp0; - last->next = NULL; - last->name = (const char *) cp; - last->len = 1; - switch (*cp++) - { - case '\0': - last->kind = CCL_TOK_EOL; - return first; - case '(': - last->kind = CCL_TOK_LP; - break; - case ')': - last->kind = CCL_TOK_RP; - break; - case ',': - last->kind = CCL_TOK_COMMA; - break; - case '%': - case '!': - last->kind = CCL_TOK_PROX; - while (isdigit(*cp)) - { - ++ last->len; - cp++; - } - break; - case '>': - case '<': - case '=': - if (*cp == '=' || *cp == '<' || *cp == '>') - { - cp++; - last->kind = CCL_TOK_REL; - ++ last->len; - } - else if (cp[-1] == '=') - last->kind = CCL_TOK_EQ; - else - last->kind = CCL_TOK_REL; - break; - case '\"': - last->kind = CCL_TOK_TERM; - last->name = (const char *) cp; - last->len = 0; - while (*cp && *cp != '\"') - { - cp++; - ++ last->len; - } - if (*cp == '\"') - cp++; - break; - default: - if (!strchr("(),%!><= \t\n\r", cp[-1])) - { - while (*cp && !strchr("(),%!><= \t\n\r", *cp)) - { - cp++; - ++ last->len; - } - } - last->kind = CCL_TOK_TERM; - - aliases = ccl_qual_search_special(cclp->bibset, "and"); - if (!aliases) - aliases = cclp->ccl_token_and; - if (token_cmp(cclp, aliases, last)) - last->kind = CCL_TOK_AND; - - aliases = ccl_qual_search_special(cclp->bibset, "or"); - if (!aliases) - aliases = cclp->ccl_token_or; - if (token_cmp(cclp, aliases, last)) - last->kind = CCL_TOK_OR; - - aliases = ccl_qual_search_special(cclp->bibset, "not"); - if (!aliases) - aliases = cclp->ccl_token_not; - if (token_cmp(cclp, aliases, last)) - last->kind = CCL_TOK_NOT; - - aliases = ccl_qual_search_special(cclp->bibset, "set"); - if (!aliases) - aliases = cclp->ccl_token_set; - - if (token_cmp(cclp, aliases, last)) - last->kind = CCL_TOK_SET; - } - } - return first; -} - -struct ccl_token *ccl_token_add(struct ccl_token *at) -{ - struct ccl_token *n = (struct ccl_token *)xmalloc(sizeof(*n)); - ccl_assert(n); - n->next = at->next; - n->prev = at; - at->next = n; - if (n->next) - n->next->prev = n; - - n->kind = CCL_TOK_TERM; - n->name = 0; - n->len = 0; - n->ws_prefix_buf = 0; - n->ws_prefix_len = 0; - return n; -} - -/* - * ccl_token_del: delete CCL tokens - */ -void ccl_token_del(struct ccl_token *list) -{ - struct ccl_token *list1; - - while (list) - { - list1 = list->next; - xfree(list); - list = list1; - } -} - -static const char **create_ar(const char *v1, const char *v2) -{ - const char **a = (const char **) xmalloc(3 * sizeof(*a)); - a[0] = xstrdup(v1); - if (v2) - { - a[1] = xstrdup(v2); - a[2] = 0; - } - else - a[1] = 0; - return a; -} - -static void destroy_ar(const char **a) -{ - if (a) - { - int i; - for (i = 0; a[i]; i++) - xfree((char *) a[i]); - xfree((char **)a); - } -} - -CCL_parser ccl_parser_create(CCL_bibset bibset) -{ - CCL_parser p = (CCL_parser)xmalloc(sizeof(*p)); - if (!p) - return p; - p->look_token = NULL; - p->error_code = 0; - p->error_pos = NULL; - p->bibset = bibset; - - p->ccl_token_and = create_ar("and", 0); - p->ccl_token_or = create_ar("or", 0); - p->ccl_token_not = create_ar("not", "andnot"); - p->ccl_token_set = create_ar("set", 0); - p->ccl_case_sensitive = 1; - - return p; -} - -void ccl_parser_destroy(CCL_parser p) -{ - if (!p) - return; - destroy_ar(p->ccl_token_and); - destroy_ar(p->ccl_token_or); - destroy_ar(p->ccl_token_not); - destroy_ar(p->ccl_token_set); - xfree(p); -} - -void ccl_parser_set_case(CCL_parser p, int case_sensitivity_flag) -{ - if (p) - p->ccl_case_sensitive = case_sensitivity_flag; -} - -int ccl_parser_get_error(CCL_parser cclp, int *pos) -{ - if (pos && cclp->error_code) - *pos = cclp->error_pos - cclp->start_pos; - return cclp->error_code; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cclxmlconfig.c b/dependencies/yaz_3.0.14/src/cclxmlconfig.c deleted file mode 100644 index ccc2e0e..0000000 --- a/dependencies/yaz_3.0.14/src/cclxmlconfig.c +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * All rights reserved. - * - * $Id: cclxmlconfig.c,v 1.1 2007/01/08 13:20:58 adam Exp $ - */ - -/** \file cclxmlconfig.c - \brief XML configuration for CCL -*/ - -#include -#include -#include - -#include - -#if YAZ_HAVE_XML2 - -static int ccl_xml_config_attr(CCL_bibset bibset, const char *default_set, - WRBUF wrbuf, - const xmlNode *ptr, - const char **addinfo) -{ - struct _xmlAttr *attr; - const char *type = 0; - const char *value = 0; - const char *attrset = default_set; - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "type") && - attr->children && attr->children->type == XML_TEXT_NODE) - type = (const char *) attr->children->content; - else if (!xmlStrcmp(attr->name, BAD_CAST "value") && - attr->children && attr->children->type == XML_TEXT_NODE) - value = (const char *) attr->children->content; - else if (!xmlStrcmp(attr->name, BAD_CAST "attrset") && - attr->children && attr->children->type == XML_TEXT_NODE) - attrset = (const char *) attr->children->content; - else - { - *addinfo = "bad attribute for 'attr'. " - "Expecting 'type', 'value', or 'attrset'"; - return 1; - } - } - if (!type) - { - *addinfo = "missing attribute for 'type' for element 'attr'"; - return 1; - } - if (!value) - { - *addinfo = "missing attribute for 'value' for element 'attr'"; - return 1; - } - if (attrset) - wrbuf_printf(wrbuf, "%s,%s=%s", attrset, type, value); - else - wrbuf_printf(wrbuf, "%s=%s", type, value); - return 0; -} - -static int ccl_xml_config_qual(CCL_bibset bibset, const char *default_set, - WRBUF wrbuf, - const xmlNode *ptr, - const char **addinfo) -{ - struct _xmlAttr *attr; - const char *name = 0; - const xmlNode *a_ptr = ptr->children; - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "name") && - attr->children && attr->children->type == XML_TEXT_NODE) - name = (const char *) attr->children->content; - else - { - *addinfo = "bad attribute for 'qual'. Expecting 'name' only"; - return 1; - } - } - if (!name) - { - *addinfo = "missing attribute 'name' for 'qual' element"; - return 1; - } - for (; a_ptr; a_ptr = a_ptr->next) - { - if (a_ptr->type == XML_ELEMENT_NODE) - { - if (!xmlStrcmp(a_ptr->name, BAD_CAST "attr")) - { - int r = ccl_xml_config_attr(bibset, default_set, wrbuf, - a_ptr, addinfo); - if (r) - return r; - wrbuf_printf(wrbuf, " "); - } - else - { - *addinfo = "bad element: expecting 'attr'"; - return 1; - } - } - } - ccl_qual_fitem(bibset, wrbuf_cstr(wrbuf), name); - return 0; -} - -int ccl_xml_config_directive(CCL_bibset bibset, const xmlNode *ptr, - const char **addinfo) -{ - struct _xmlAttr *attr; - const char *name = 0; - const char *value = 0; - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "name") && - attr->children && attr->children->type == XML_TEXT_NODE) - name = (const char *) attr->children->content; - else if (!xmlStrcmp(attr->name, BAD_CAST "value") && - attr->children && attr->children->type == XML_TEXT_NODE) - value = (const char *) attr->children->content; - else - { - *addinfo = "bad attribute for 'diretive'. " - "Expecting 'name' or 'value'"; - return 1; - } - } - if (!name) - { - *addinfo = "missing attribute 'name' for 'directive' element"; - return 1; - } - if (!value) - { - *addinfo = "missing attribute 'name' for 'value' element"; - return 1; - } - ccl_qual_add_special(bibset, name, value); - return 0; -} - -int ccl_xml_config(CCL_bibset bibset, const xmlNode *ptr, const char **addinfo) -{ - if (ptr && ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "cclmap")) - { - const xmlNode *c_ptr; - const char *set = 0; - struct _xmlAttr *attr; - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "defaultattrset") && - attr->children && attr->children->type == XML_TEXT_NODE) - set = (const char *) attr->children->content; - else - { - *addinfo = "bad attribute for 'cclmap'. " - "expecting 'defaultattrset'"; - return 1; - } - } - for (c_ptr = ptr->children; c_ptr; c_ptr = c_ptr->next) - { - if (c_ptr->type == XML_ELEMENT_NODE) - { - if (!xmlStrcmp(c_ptr->name, BAD_CAST "qual")) - { - WRBUF wrbuf = wrbuf_alloc(); - int r = ccl_xml_config_qual(bibset, set, - wrbuf, c_ptr, addinfo); - wrbuf_destroy(wrbuf); - if (r) - return r; - } - else if (!xmlStrcmp(c_ptr->name, BAD_CAST "directive")) - { - int r = ccl_xml_config_directive(bibset, c_ptr, addinfo); - if (r) - return r; - } - else - { - *addinfo = "bad element for 'cclmap'. " - "expecting 'directive' or 'qual'"; - return 1; - } - } - } - } - return 0; -} -#else -int ccl_xml_config(CCL_bibset bibset, const xmlNode *ptr, const char **addinfo) -{ - *addinfo = "CCL XML configuration not supported. Libxml2 is disabled"; - return -1; -} -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ diff --git a/dependencies/yaz_3.0.14/src/charconv.tcl b/dependencies/yaz_3.0.14/src/charconv.tcl deleted file mode 100644 index c10751f..0000000 --- a/dependencies/yaz_3.0.14/src/charconv.tcl +++ /dev/null @@ -1,412 +0,0 @@ -#!/bin/sh -# the next line restarts using tclsh \ -if [ -f /usr/local/bin/tclsh8.4 ]; then exec tclsh8.4 "$0" "$@"; else exec tclsh "$0" "$@"; fi -# -# $Id: charconv.tcl,v 1.19 2007/09/17 19:18:27 adam Exp $ - -proc usage {} { - puts {charconv.tcl: [-p prefix] [-s split] [-o ofile] file ... } - exit 1 -} - -proc preamble_trie {ofilehandle ifiles ofile} { - set f $ofilehandle - - set totype {unsigned } - - puts $f "/** \\file $ofile" - puts $f " \\brief Character conversion, generated from [lindex $ifiles 0]" - puts $f "" - puts $f " Generated automatically by charconv.tcl" - puts $f "*/" - puts $f "\#include " - puts $f " - struct yaz_iconv_trie_flat { - char from\[6\]; - unsigned combining : 1; - $totype to : 24; - }; - struct yaz_iconv_trie_dir { - int ptr : 15; - unsigned combining : 1; - $totype to : 24; - }; - - struct yaz_iconv_trie { - struct yaz_iconv_trie_flat *flat; - struct yaz_iconv_trie_dir *dir; - }; - " - puts $f { - static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp, - size_t inbytesleft, size_t *no_read, int *combining) - { - struct yaz_iconv_trie *t = (ptr > 0) ? ptrs[ptr-1] : 0; - if (!t || inbytesleft < 1) - return 0; - if (t->dir) - { - size_t ch = inp[0] & 0xff; - unsigned long code = - lookup(ptrs, t->dir[ch].ptr, inp+1, inbytesleft-1, no_read, combining); - if (code) - { - (*no_read)++; - return code; - } - if (t->dir[ch].to) - { - code = t->dir[ch].to; - *combining = t->dir[ch].combining; - *no_read = 1; - return code; - } - } - else - { - struct yaz_iconv_trie_flat *flat = t->flat; - while (flat->to) - { - size_t len = strlen(flat->from); - if (len <= inbytesleft) - { - if (memcmp(flat->from, inp, len) == 0) - { - *no_read = len; - *combining = flat->combining; - return flat->to; - } - } - flat++; - } - } - return 0; - } - } -} - -proc reset_trie {} { - global trie - - foreach x [array names trie] { - unset trie($x) - } - - set trie(no) 1 - set trie(size) 0 - set trie(max) 0 - set trie(split) 50 - set trie(prefix) {} -} - -proc ins_trie {from to combining codename} { - global trie - if {![info exists trie(no)]} { - set trie(no) 1 - set trie(size) 0 - set trie(max) 0 - } - if {$trie(max) < $to} { - set trie(max) $to - } - incr trie(size) - ins_trie_r [split $from] $to $combining $codename 0 -} - -proc split_trie {this} { - global trie - set trie($this,type) d - foreach e $trie($this,content) { - set from [lindex $e 0] - set to [lindex $e 1] - set combining [lindex $e 2] - set codename [lindex $e 3] - - set ch [lindex $from 0] - set rest [lrange $from 1 end] - - if {[llength $rest]} { - if {![info exist trie($this,ptr,$ch)]} { - set trie($this,ptr,$ch) $trie(no) - incr trie(no) - } - ins_trie_r $rest $to $combining $codename $trie($this,ptr,$ch) - } else { - set trie($this,to,$ch) $to - set trie($this,combining,$ch) $combining - set trie($this,codename,$ch) $codename - } - } - set trie($this,content) missing -} - -proc ins_trie_r {from to combining codename this} { - global trie - - if {![info exist trie($this,type)]} { - set trie($this,type) f - } - if {$trie($this,type) == "f"} { - lappend trie($this,content) [list $from $to $combining $codename] - - # split ? - if {[llength $trie($this,content)] > $trie(split)} { - split_trie $this - return [ins_trie_r $from $to $combining $codename $this] - } - } else { - set ch [lindex $from 0] - set rest [lrange $from 1 end] - - if {[llength $rest]} { - if {![info exist trie($this,ptr,$ch)]} { - set trie($this,ptr,$ch) $trie(no) - incr trie(no) - } - ins_trie_r $rest $to $combining $codename $trie($this,ptr,$ch) - } else { - if {![info exist trie($this,to,$ch)]} { - set trie($this,to,$ch) $to - set trie($this,combining,$ch) $combining - set trie($this,codename,$ch) $codename - } - } - } -} - -proc dump_trie {ofilehandle} { - global trie - - set f $ofilehandle - - puts $f "/* TRIE: size $trie(size) */" - - set this $trie(no) - while { [incr this -1] >= 0 } { - puts $f "/* PAGE $this */" - if {$trie($this,type) == "f"} { - puts $f "struct yaz_iconv_trie_flat $trie(prefix)page${this}_flat\[\] = \{" - foreach m $trie($this,content) { - puts -nonewline $f " \{\"" - foreach d [lindex $m 0] { - puts -nonewline $f "\\x$d" - } - puts -nonewline $f "\", [lindex $m 2], 0x[lindex $m 1]" - set v [lindex $m 3] - puts $f "\}, /* $v */" - } - puts $f " \{\"\", 0\}" - puts $f "\};" - puts $f "struct yaz_iconv_trie $trie(prefix)page${this} = \{" - puts $f " $trie(prefix)page${this}_flat, 0" - puts $f "\};" - } else { - puts $f "struct yaz_iconv_trie_dir $trie(prefix)page${this}_dir\[256\] = \{" - for {set i 0} {$i < 256} {incr i} { - puts -nonewline $f " \{" - set ch [format %02X $i] - set null 1 - if {[info exist trie($this,ptr,$ch)]} { - puts -nonewline $f "[expr $trie($this,ptr,$ch)+1], " - set null 0 - } else { - puts -nonewline $f "0, " - } - if {[info exist trie($this,combining,$ch)]} { - puts -nonewline $f "$trie($this,combining,$ch), " - } else { - puts -nonewline $f "0, " - } - if {[info exist trie($this,to,$ch)]} { - puts -nonewline $f "0x$trie($this,to,$ch)\}" - set null 0 - } else { - puts -nonewline $f "0\}" - } - if {[info exist trie($this,codename,$ch)]} { - set v $trie($this,codename,$ch) - puts -nonewline $f " /* $v */" - } - if {$i < 255} { - puts $f "," - } else { - puts $f "" - } - } - puts $f "\};" - puts $f "struct yaz_iconv_trie $trie(prefix)page${this} = \{" - puts $f " 0, $trie(prefix)page${this}_dir" - puts $f "\};" - } - } - - puts $f "struct yaz_iconv_trie *$trie(prefix)ptrs \[\] = {" - for {set this 0} {$this < $trie(no)} {incr this} { - puts $f " &$trie(prefix)page$this," - } - puts $f "0, };" - puts $f "" - - puts $f "unsigned long yaz_$trie(prefix)_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup($trie(prefix)ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - " -} - -proc readfile {fname ofilehandle prefix omits reverse} { - global trie - - set marc_lines 0 - set ucs_lines 0 - set utf_lines 0 - set altutf_lines 0 - set codename_lines 0 - set lineno 0 - set f [open $fname r] - set tablenumber x - set combining 0 - set codename {} - set altutf {} - while {1} { - incr lineno - set cnt [gets $f line] - if {$cnt < 0} { - break - } - if {[regexp {} $line s]} { - dump_trie $ofilehandle - } elseif {[regexp {} $line s]} { - if {[string length $ucs]} { - if {$reverse} { - for {set i 0} {$i < [string length $utf]} {incr i 2} { - lappend hex [string range $utf $i [expr $i+1]] - } - # puts "ins_trie $hex $marc - ins_trie $hex $marc $combining $codename - unset hex - - } else { - for {set i 0} {$i < [string length $marc]} {incr i 2} { - lappend hex [string range $marc $i [expr $i+1]] - } - # puts "ins_trie $hex $ucs" - ins_trie $hex $ucs $combining $codename - unset hex - } - } - if {$reverse && [string length $marc]} { - for {set i 0} {$i < [string length $altutf]} {incr i 2} { - lappend hex [string range $altutf $i [expr $i+1]] - } - if {[info exists hex]} { - ins_trie $hex $marc $combining $codename - unset hex - } - } - set marc {} - set uni {} - set codename {} - set combining 0 - set altutf {} - } elseif {[regexp {([0-9A-Fa-f]*)} $line s marc]} { - incr marc_lines - } elseif {[regexp {(.*)} $line s codename]} { - incr codename_lines - } elseif {[regexp {(.*)} $line s codename]} { - incr codename_lines - incr lineno - set cnt [gets $f line] - if {$cnt < 0} { - break - } - if {[regexp {(.*)} $line s codename_ex]} { - set codename "${codename} ${codename_ex}" - } - } elseif {[regexp {true} $line s]} { - set combining 1 - } elseif {[regexp {([0-9A-Fa-f]*)} $line s ucs]} { - incr ucs_lines - } elseif {[regexp {([0-9A-Fa-f]*)} $line s utf]} { - incr utf_lines - } elseif {[regexp {([0-9A-Fa-f]*)} $line s altutf]} { - incr altutf_lines - } - } - close $f -} - -set verbose 0 -set ifile {} -set ofile out.c -set prefix {c} -set reverse_map 0 -# Parse command line -set l [llength $argv] -set i 0 -set omits {} -while {$i < $l} { - set arg [lindex $argv $i] - switch -glob -- $arg { - -v { - incr verbose - } - -s { - if {[string length $arg]} { - set arg [lindex $argv [incr i]] - } - set trie(split) $arg - } - -p { - if {[string length $arg]} { - set arg [lindex $argv [incr i]] - } - set prefix $arg - } - -o { - if {[string length $arg]} { - set arg [lindex $argv [incr i]] - } - set ofile $arg - } - -O { - if {[string length $arg]} { - set arg [lindex $argv [incr i]] - } - lappend omits $arg - } - -r { - set reverse_map 1 - } - default { - lappend ifiles $arg - } - } - incr i -} -if {![info exists ifiles]} { - puts "charconv.tcl: missing input file(s)" - usage -} - -set ofilehandle [open $ofile w] -preamble_trie $ofilehandle $ifiles $ofile - -foreach ifile $ifiles { - readfile $ifile $ofilehandle $prefix $omits $reverse_map -} -close $ofilehandle - - diff --git a/dependencies/yaz_3.0.14/src/charneg-3.asn b/dependencies/yaz_3.0.14/src/charneg-3.asn deleted file mode 100644 index d178e3a..0000000 --- a/dependencies/yaz_3.0.14/src/charneg-3.asn +++ /dev/null @@ -1,212 +0,0 @@ -NegotiationRecordDefinition-charSetandLanguageNegotiation-3 -{Z39-50-negotiationRecordDefinition CharSetandLanguageNegotiation-3 (3)} -DEFINITIONS ::= BEGIN -IMPORTS LanguageCode FROM RecordSyntax-explain; - -CharSetandLanguageNegotiation ::= CHOICE{ - proposal [1] IMPLICIT OriginProposal, - response [2] IMPLICIT TargetResponse} --- --- For character sets: --- Origin proposes one, two, or all three of the following, in order of --- preference: --- (a) 2022 character sets. --- (b) 10646 character set. --- (c) Private character set. --- --- The target responds with one of (a), (b), or (c), indicating the --- character set(s) to be supported for all name and message strings. --- --- If the origin includes (a), --- the origin proposes: --- (1) A proposed environment: 7-bit, 8-bit, or no-preference. --- (2) A set of iso 2022 registration numbers. --- (3) One or more proposed initial sets of registration numbers, --- for c0, c1, g0, g1, g2 and g3. These must come from (2). --- (4) The proposed encoding level. --- And if the target selects (a), it responds with: --- (1) A selected environment: 7-bit or 8-bit. --- (2) A subset of the set of iso 2022 registration numbers proposed --- by the origin. --- (3) The initial set of registrations, which must come from (2) --- but need not be from the set of initial registrations proposed --- by the origin. --- (4) The encoding level; less than or equal to that proposed. --- --- If the origin includes (b), --- The origin proposes: --- (1) (optionally) A list of collections (i.e. subsets of characters from the --- complete 10646 definition). --- (2) An implementation level. --- (3) Syntax/form: e.g. ucs-2, ucs-4, utf-8, utf-16. --- And if the target selects (b), it responds by choosing a subset of the --- collections proposed by the origin in (1) and an implementation level less --- than or equal to that proposed by the origin in (2). --- --- If the origin includes (c), the origin proposes one of the following: --- (1) A list of private character sets, by one or more object --- identifiers. --- (2) A list of private character sets, by an EXTERNAL. --- (3) An indication to use a private, previously agreed upon --- character set. --- And if the target selects (c): --- - If the origin proposed (1), the target should respond with (1), and --- the list of object identifiers should be a subset of the list that --- the origin included. --- - If the origin proposed (2), the target should respond with (2), using --- the same EXTERNAL definition (but not necessarily the same content) --- used by the origin. --- - If the origin proposed (3), the target should respond with (3). --- --- For Languages: --- The origin optionally proposes one or more language codes. The target --- response may include a single language code, which indicates the --- language to be used for all message strings. The target may include or --- omit this, whether or not the origin included a proposed set, and the --- language code indicated need not be from among those proposed. --- --- - -OriginProposal ::= SEQUENCE { - proposedCharSets [1] IMPLICIT SEQUENCE OF CHOICE{ - -- Each should occur at most once, and in order of preference - -- (the "order of preference" is the reason why this is - -- "SEQUENCE OF CHOICE" rather than just "SEQUENCE") - iso2022 [1] Iso2022, - iso10646 [2] IMPLICIT Iso10646, - private [3] PrivateCharacterSet} OPTIONAL, - -- proposedCharSets must be omitted - -- if origin proposes version 2 - proposedlanguages [2] IMPLICIT SEQUENCE OF LanguageCode OPTIONAL, - recordsInSelectedCharSets [3] IMPLICIT BOOLEAN OPTIONAL - -- default 'false'. See rule 6 above. - } - -TargetResponse ::= SEQUENCE{ - selectedCharSets [1] CHOICE{ - iso2022 [1] Iso2022, - iso10646 [2] IMPLICIT Iso10646, - private [3] PrivateCharacterSet, - none [4] IMPLICIT NULL - -- If selected, no negotiation - -- is assumed to be in force - -- for character sets. - } OPTIONAL, - -- Omitted if and only if proposedCharSets - -- was Omitted in the request. - selectedLanguage [2] IMPLICIT LanguageCode OPTIONAL, - recordsInSelectedCharSets [3] IMPLICIT BOOLEAN OPTIONAL - -- Omitted if and only if 'recordsInSelectedCharSets' was omitted - -- in the request. See rule 6 above. - } - - -PrivateCharacterSet ::= CHOICE{ - viaOid [1] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, - externallySpecified [2] IMPLICIT EXTERNAL, - previouslyAgreedUpon [3] IMPLICIT NULL} - --- IMPORTED --- LanguageCode ::= GeneralString -- from ANSI Z39.53-1994 - --- Definition of ISO2022 --- For ISO 2022, the following is negotiated: --- 1) The environment: 7-bit or 8-bit; --- 2) a set of registration numbers (from the ISO Register of coded --- character sets) for graphical and control character sets; --- 3) g0, g1, g2, g3, c0, c1, the registration numbers of the graphical and --- control character sets that are initially designated to g0, g1, etc. --- The origin submits one or more sequences of values for --- g0, g1, g2, g3, c0, c1 (for each sequence: at least one of --- g0 and g1 must be included; g2 and g3 are optional and --- may be included only if g1 is included; --- c0 should be included; and c1 is optional); the target --- selects one of the proposed sequences. --- 4) gleft: which of g0, g1, g2 or g3, initially has GL shift status in --- an 8-bit environment or has shift status in a 7-bit environment; and --- 5) gright: which of g1, g2 or g3 initially has GR shift status in an --- 8-bit environment. - -Iso2022 ::= CHOICE{ - originProposal [1] IMPLICIT SEQUENCE{ - proposedEnvironment [0] Environment OPTIONAL, - -- omitted means no preference - proposedSets [1] IMPLICIT SEQUENCE OF INTEGER, - proposedInitialSets [2] IMPLICIT SEQUENCE OF - InitialSet, - proposedLeftAndRight [3] IMPLICIT LeftAndRight}, - targetResponse [2] IMPLICIT SEQUENCE{ - selectedEnvironment [0] Environment, - selectedSets [1] IMPLICIT SEQUENCE OF INTEGER, - selectedinitialSet [2] IMPLICIT InitialSet, - selectedLeftAndRight [3] IMPLICIT LeftAndRight}} - -Environment ::= CHOICE{ - sevenBit [1] IMPLICIT NULL, - eightBit [2] IMPLICIT NULL} - -InitialSet::= SEQUENCE{ - g0 [0] IMPLICIT INTEGER OPTIONAL, - g1 [1] IMPLICIT INTEGER OPTIONAL, - -- one of g0 and g1 must be included - g2 [2] IMPLICIT INTEGER OPTIONAL, - g3 [3] IMPLICIT INTEGER OPTIONAL, - --g2 and/or g3 may be included - -- only if g1 was included - c0 [4] IMPLICIT INTEGER, - c1 [5] IMPLICIT INTEGER OPTIONAL} - -LeftAndRight ::= SEQUENCE{ - gLeft [3] IMPLICIT INTEGER{ - g0 (0), - g1 (1), - g2 (2), - g3 (3)}, - gRight [4] IMPLICIT INTEGER{ - g1 (1), - g2 (2), - g3 (3)} OPTIONAL} - --- Definition of Iso10646 --- --- The 10646 object identifier looks like: --- 1.0.10646.1.implementationLevel.repertoireSubset.arc1.arc2. .... --- --- (The second '1' is for "part 1" of 10646.) --- --- ImplementationLevel is 1-3 --- --- repertoireSubset is 0 or 1, for 'all' or 'collections'. --- The arcs are present only if repertoireSubset is 'collections', --- in which case arc1, arc2, etc., are the --- identifiers of collections of character repertoires. --- --- There is a second 10646 oid, for specifying syntax/form: --- 1.0.10646.1.0.form --- --- (The second '0' represents "transfer syntax".) --- --- where values of form include: --- 2: ucs-2 --- 4: ucs-4 --- 5: utf-16 --- 8: utf-8 - -Iso10646 ::= SEQUENCE{ - collections [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - --oid of form 1.0.10646.1.implementationLevel - -- .repertoireSubset.arc1.arc2. .... - -- Target to choose a subset of the collections - -- proposed by the origin, and an implementation level - -- less than or equal to that proposed. - -- - -- when 'collections' is omitted, - -- 'implementationLevel' defaults to 3. - -- - encodingLevel [2] IMPLICIT OBJECT IDENTIFIER - -- oid of form 1.0.10646.1.0.form - -- where value of 'form' is 2, 4, 5, or 8 - -- for ucs-2, ucs-4, utf-16, utf-8 - } -END - diff --git a/dependencies/yaz_3.0.14/src/charneg.c b/dependencies/yaz_3.0.14/src/charneg.c deleted file mode 100644 index e8c96c3..0000000 --- a/dependencies/yaz_3.0.14/src/charneg.c +++ /dev/null @@ -1,434 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: charneg.c,v 1.9 2007/04/16 21:53:09 adam Exp $ - */ - -/** - * \file charneg.c - * \brief Implements Z39.50 Charset negotiation utilities - * - * Helper functions for Character Set and Language Negotiation - 3 - */ -#include -#include -#include -#include -#include -#include - -static Z_External* z_ext_record2(ODR o, const char *buf) -{ - Z_External *p; - int len = strlen(buf); - - if (!(p = (Z_External *)odr_malloc(o, sizeof(*p)))) return 0; - - p->descriptor = 0; - p->indirect_reference = 0; - - p->direct_reference = odr_oiddup(o, yaz_oid_negot_charset_id); - - p->which = Z_External_octet; - if (!(p->u.octet_aligned = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)))) { - return 0; - } - if (!(p->u.octet_aligned->buf = (unsigned char *)odr_malloc(o, len))) { - return 0; - } - p->u.octet_aligned->len = p->u.octet_aligned->size = len; - memcpy(p->u.octet_aligned->buf, buf, len); - - return p; -} - -static int get_form(const char *charset) -{ - int form = -1; - - - if (!yaz_matchstr(charset, "UCS-2")) - form = 2; - if (!yaz_matchstr(charset, "UCS-4")) - form = 4; - if (!yaz_matchstr(charset, "UTF-16")) - form = 5; - if (!yaz_matchstr(charset, "UTF-8")) - form = 8; - - return form; -} - -static char *set_form (Odr_oid *encoding) -{ - static char *charset = 0; - if ( oid_oidlen(encoding) != 6) - return 0; - if (encoding[5] == 2) - charset = "UCS-2"; - if (encoding[5] == 4) - charset = "UCS-4"; - if (encoding[5] == 5) - charset = "UTF-16"; - if (encoding[5] == 8) - charset = "UTF-8"; - return charset; -} - -static Z_OriginProposal_0 *z_get_OriginProposal_0(ODR o, const char *charset) -{ - int form = get_form (charset); - Z_OriginProposal_0 *p0 = - (Z_OriginProposal_0*)odr_malloc(o, sizeof(*p0)); - - memset(p0, 0, sizeof(*p0)); - - if (form > 0) - { /* ISO 10646 (UNICODE) */ - char oidname[20]; - - Z_Iso10646 *is = (Z_Iso10646 *) odr_malloc (o, sizeof(*is)); - p0->which = Z_OriginProposal_0_iso10646; - p0->u.iso10646 = is; - is->collections = 0; - sprintf (oidname, "1.0.10646.1.0.%d", form); - is->encodingLevel = odr_getoidbystr (o, oidname); - } - else - { /* private ones */ - Z_PrivateCharacterSet *pc = - (Z_PrivateCharacterSet *)odr_malloc(o, sizeof(*pc)); - - memset(pc, 0, sizeof(*pc)); - - p0->which = Z_OriginProposal_0_private; - p0->u.zprivate = pc; - - pc->which = Z_PrivateCharacterSet_externallySpecified; - pc->u.externallySpecified = z_ext_record2(o, charset); - } - return p0; -} - -static Z_OriginProposal *z_get_OriginProposal( - ODR o, const char **charsets, int num_charsets, - const char **langs, int num_langs, int selected) -{ - int i; - Z_OriginProposal *p = (Z_OriginProposal *) odr_malloc(o, sizeof(*p)); - - memset(p, 0, sizeof(*p)); - - p->recordsInSelectedCharSets = (bool_t *)odr_malloc(o, sizeof(bool_t)); - *p->recordsInSelectedCharSets = (selected) ? 1:0; - - if (charsets && num_charsets) { - - p->num_proposedCharSets = num_charsets; - p->proposedCharSets = - (Z_OriginProposal_0**) - odr_malloc(o, num_charsets*sizeof(Z_OriginProposal_0*)); - - for (i = 0; iproposedCharSets[i] = - z_get_OriginProposal_0(o, charsets[i]); - } - if (langs && num_langs) { - - p->num_proposedlanguages = num_langs; - - p->proposedlanguages = - (char **) odr_malloc(o, num_langs*sizeof(char *)); - - for (i = 0; iproposedlanguages[i] = (char *)langs[i]; - - } - } - return p; -} - -static Z_CharSetandLanguageNegotiation *z_get_CharSetandLanguageNegotiation( - ODR o) -{ - Z_CharSetandLanguageNegotiation *p = - (Z_CharSetandLanguageNegotiation *) odr_malloc(o, sizeof(*p)); - - memset(p, 0, sizeof(*p)); - - return p; -} - -/* Create EXTERNAL for negotation proposal. Client side */ -Z_External *yaz_set_proposal_charneg(ODR o, - const char **charsets, int num_charsets, - const char **langs, int num_langs, - int selected) -{ - Z_External *p = (Z_External *)odr_malloc(o, sizeof(*p)); - - p->descriptor = 0; - p->indirect_reference = 0; - - p->direct_reference = odr_oiddup(o, yaz_oid_negot_charset_3); - - p->which = Z_External_charSetandLanguageNegotiation; - p->u.charNeg3 = z_get_CharSetandLanguageNegotiation(o); - p->u.charNeg3->which = Z_CharSetandLanguageNegotiation_proposal; - p->u.charNeg3->u.proposal = - z_get_OriginProposal(o, charsets, num_charsets, - langs, num_langs, selected); - - return p; -} - -Z_External *yaz_set_proposal_charneg_list(ODR o, - const char *delim, - const char *charset_list, - const char *lang_list, - int selected) -{ - char **charsets_addresses = 0; - char **langs_addresses = 0; - int charsets_count = 0; - int langs_count = 0; - - if (charset_list) - nmem_strsplit(odr_getmem(o), delim, charset_list, - &charsets_addresses, &charsets_count); - if (lang_list) - nmem_strsplit(odr_getmem(o), delim, lang_list, - &langs_addresses, &langs_count); - return yaz_set_proposal_charneg(o, - (const char **) charsets_addresses, - charsets_count, - (const char **) langs_addresses, - langs_count, - selected); -} - - -/* used by yaz_set_response_charneg */ -static Z_TargetResponse *z_get_TargetResponse(ODR o, const char *charset, - const char *lang, int selected) -{ - Z_TargetResponse *p = (Z_TargetResponse *) odr_malloc(o, sizeof(*p)); - int form = get_form(charset); - - memset(p, 0, sizeof(*p)); - - if (form > 0) - { - char oidname[20]; - - Z_Iso10646 *is = (Z_Iso10646 *) odr_malloc (o, sizeof(*is)); - p->which = Z_TargetResponse_iso10646; - p->u.iso10646 = is; - is->collections = 0; - sprintf (oidname, "1.0.10646.1.0.%d", form); - is->encodingLevel = odr_getoidbystr (o, oidname); - } - else - { - Z_PrivateCharacterSet *pc = - (Z_PrivateCharacterSet *)odr_malloc(o, sizeof(*pc)); - - memset(pc, 0, sizeof(*pc)); - - p->which = Z_TargetResponse_private; - p->u.zprivate = pc; - - pc->which = Z_PrivateCharacterSet_externallySpecified; - pc->u.externallySpecified = - z_ext_record2(o, charset); - } - p->recordsInSelectedCharSets = (bool_t *)odr_malloc(o, sizeof(bool_t)); - *p->recordsInSelectedCharSets = (selected) ? 1:0; - - p->selectedLanguage = lang ? (char *)odr_strdup(o, lang) : 0; - return p; -} - -/* Create charset response. Server side */ -Z_External *yaz_set_response_charneg(ODR o, const char *charset, - const char *lang, int selected) -{ - Z_External *p = (Z_External *)odr_malloc(o, sizeof(*p)); - - p->descriptor = 0; - p->indirect_reference = 0; - - p->direct_reference = odr_oiddup(o, yaz_oid_negot_charset_3); - - p->which = Z_External_charSetandLanguageNegotiation; - p->u.charNeg3 = z_get_CharSetandLanguageNegotiation(o); - p->u.charNeg3->which = Z_CharSetandLanguageNegotiation_response; - p->u.charNeg3->u.response = z_get_TargetResponse(o, charset, lang, selected); - - return p; -} - -/* Get negotiation from OtherInformation. Client&Server side */ -Z_CharSetandLanguageNegotiation *yaz_get_charneg_record(Z_OtherInformation *p) -{ - int i; - - if (!p) - return 0; - - for (i = 0; i < p->num_elements; i++) { - Z_External *pext; - if ((p->list[i]->which == Z_OtherInfo_externallyDefinedInfo) && - (pext = p->list[i]->information.externallyDefinedInfo)) { - - if (!oid_oidcmp(pext->direct_reference, yaz_oid_negot_charset_3) - && pext->which == Z_External_charSetandLanguageNegotiation) - { - return pext->u.charNeg3; - } - } - } - return 0; -} - -/* Delete negotiation from OtherInformation. Client&Server side */ -int yaz_del_charneg_record(Z_OtherInformation **p) -{ - int i; - - if (!*p) - return 0; - - for (i = 0; i < (*p)->num_elements; i++) { - Z_External *pext; - if (((*p)->list[i]->which == Z_OtherInfo_externallyDefinedInfo) && - (pext = (*p)->list[i]->information.externallyDefinedInfo)) - { - if (!oid_oidcmp(pext->direct_reference, yaz_oid_negot_charset_3) - && pext->which == Z_External_charSetandLanguageNegotiation) - { - if ((*p)->num_elements <= 1) - *p = 0; - else - { - --((*p)->num_elements); - for(; i < (*p)->num_elements; i++) - (*p)->list[i] = (*p)->list[i+1]; - } - return 1; - } - } - } - return 0; -} - - -/* Get charsets, langs, selected from negotiation.. Server side */ -void yaz_get_proposal_charneg(NMEM mem, Z_CharSetandLanguageNegotiation *p, - char ***charsets, int *num_charsets, - char ***langs, int *num_langs, int *selected) -{ - int i; - Z_OriginProposal *pro = p->u.proposal; - - if (num_charsets && charsets) - { - if (pro->num_proposedCharSets) - { - *num_charsets = pro->num_proposedCharSets; - - (*charsets) = (char **) - nmem_malloc(mem, pro->num_proposedCharSets * sizeof(char *)); - - for (i=0; inum_proposedCharSets; i++) - { - (*charsets)[i] = 0; - - if (pro->proposedCharSets[i]->which == - Z_OriginProposal_0_private && - pro->proposedCharSets[i]->u.zprivate->which == - Z_PrivateCharacterSet_externallySpecified) { - - Z_External *pext = - pro->proposedCharSets[i]->u.zprivate->u.externallySpecified; - - if (pext->which == Z_External_octet) { - - (*charsets)[i] = (char *) - nmem_malloc(mem, (1+pext->u.octet_aligned->len) * - sizeof(char)); - - memcpy ((*charsets)[i], pext->u.octet_aligned->buf, - pext->u.octet_aligned->len); - (*charsets)[i][pext->u.octet_aligned->len] = 0; - - } - } - else if (pro->proposedCharSets[i]->which == - Z_OriginProposal_0_iso10646) - (*charsets)[i] = set_form ( - pro->proposedCharSets[i]->u.iso10646->encodingLevel); - } - } - else - *num_charsets = 0; - } - - if (langs && num_langs) - { - if (pro->num_proposedlanguages) - { - *num_langs = pro->num_proposedlanguages; - - (*langs) = (char **) - nmem_malloc(mem, pro->num_proposedlanguages * sizeof(char *)); - - for (i=0; inum_proposedlanguages; i++) - (*langs)[i] = nmem_strdup(mem, pro->proposedlanguages[i]); - } - else - *num_langs = 0; - } - - if(pro->recordsInSelectedCharSets && selected) - *selected = *pro->recordsInSelectedCharSets; -} - -/* Return charset, lang, selected from negotiation.. Client side */ -void yaz_get_response_charneg(NMEM mem, Z_CharSetandLanguageNegotiation *p, - char **charset, char **lang, int *selected) -{ - Z_TargetResponse *res = p->u.response; - - if (charset && res->which == Z_TargetResponse_private && - res->u.zprivate->which == Z_PrivateCharacterSet_externallySpecified) { - - Z_External *pext = res->u.zprivate->u.externallySpecified; - - if (pext->which == Z_External_octet) { - - *charset = (char *) - nmem_malloc(mem, (1+pext->u.octet_aligned->len)*sizeof(char)); - memcpy (*charset, pext->u.octet_aligned->buf, - pext->u.octet_aligned->len); - (*charset)[pext->u.octet_aligned->len] = 0; - } - } - if (charset && res->which == Z_TargetResponse_iso10646) - *charset = set_form (res->u.iso10646->encodingLevel); - if (lang && res->selectedLanguage) - *lang = nmem_strdup (mem, res->selectedLanguage); - - if(selected && res->recordsInSelectedCharSets) - *selected = *res->recordsInSelectedCharSets; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/codetables.xml b/dependencies/yaz_3.0.14/src/codetables.xml deleted file mode 100644 index 7a74f97..0000000 --- a/dependencies/yaz_3.0.14/src/codetables.xml +++ /dev/null @@ -1,98947 +0,0 @@ - - - - - - The first column in this table contains the MARC-8 code (in hex) for - the character as coming from the G0 graphic set, the second column - contains the MARC-8 code (in hex) for the character as coming from the G1 - graphic set, the third column contains the UCS/Unicode 16-bit code (in - hex), the fourth column contains the UTF-8 code (in hex) for the UCS - characters, the fifth column contains a representation of the character (where possible), - the sixth column contains the MARC character name, followed - by the UCS name. If the MARC name is the same as or very similar to the - UCS name, only the UCS name is given. For some tables alternate encodings - in Unicode and UTF-8 are given. When that occurs the alternate Unicode and - alternate UTF-8 columns follow the character name. - - - 1B - 001B - 1B - ESCAPE (Unlikely to occur in UCS/Unicode) - - - 1D - 001D - 1D - RECORD TERMINATOR / GROUP SEPARATOR - - - 1E - 001E - 1E - FIELD TERMINATOR / RECORD SEPARATOR - - - 1F - 001F - 1F - SUBFIELD DELIMITER / UNIT SEPARATOR - - - 20 - 0020 - 20 - SPACE, BLANK / SPACE - - - 21 - 0021 - 21 - EXCLAMATION MARK - - - 22 - 0022 - 22 - QUOTATION MARK - - - 23 - 0023 - 23 - NUMBER SIGN - - - 24 - 0024 - 24 - DOLLAR SIGN - - - 25 - 0025 - 25 - PERCENT SIGN - - - 26 - 0026 - 26 - AMPERSAND - - - 27 - 0027 - 27 - APOSTROPHE - - - 28 - 0028 - 28 - OPENING PARENTHESIS / LEFT PARENTHESIS - - - 29 - 0029 - 29 - CLOSING PARENTHESIS / CLOSING PARENTHESIS - - - 2A - 002A - 2A - ASTERISK - - - 2B - 002B - 2B - PLUS SIGN - - - 2C - 002C - 2C - COMMA - - - 2D - 002D - 2D - HYPHEN-MINUS - - - 2E - 002E - 2E - PERIOD, DECIMAL POINT / FULL STOP - - - 2F - 002F - 2F - SLASH / SOLIDUS - - - 30 - 0030 - 30 - DIGIT ZERO - - - 31 - 0031 - 31 - DIGIT ONE - - - 32 - 0032 - 32 - DIGIT TWO - - - 33 - 0033 - 33 - DIGIT THREE - - - 34 - 0034 - 34 - DIGIT FOUR - - - 35 - 0035 - 35 - DIGIT FIVE - - - 36 - 0036 - 36 - DIGIT SIX - - - 37 - 0037 - 37 - DIGIT SEVEN - - - 38 - 0038 - 38 - DIGIT EIGHT - - - 39 - 0039 - 39 - DIGIT NINE - - - 3A - 003A - 3A - COLON - - - 3B - 003B - 3B - SEMICOLON - - - 3C - 003C - 3C - LESS-THAN SIGN - - - 3D - 003D - 3D - EQUALS SIGN - - - 3E - 003E - 3E - GREATER-THAN SIGN - - - 3F - 003F - 3F - QUESTION MARK - - - 40 - 0040 - 40 - COMMERCIAL AT - - - 41 - 0041 - 41 - LATIN CAPITAL LETTER A - - - 42 - 0042 - 42 - LATIN CAPITAL LETTER B - - - 43 - 0043 - 43 - LATIN CAPITAL LETTER C - - - 44 - 0044 - 44 - LATIN CAPITAL LETTER D - - - 45 - 0045 - 45 - LATIN CAPITAL LETTER E - - - 46 - 0046 - 46 - LATIN CAPITAL LETTER F - - - 47 - 0047 - 47 - LATIN CAPITAL LETTER G - - - 48 - 0048 - 48 - LATIN CAPITAL LETTER H - - - 49 - 0049 - 49 - LATIN CAPITAL LETTER I - - - 4A - 004A - 4A - LATIN CAPITAL LETTER J - - - 4B - 004B - 4B - LATIN CAPITAL LETTER K - - - 4C - 004C - 4C - LATIN CAPITAL LETTER L - - - 4D - 004D - 4D - LATIN CAPITAL LETTER M - - - 4E - 004E - 4E - LATIN CAPITAL LETTER N - - - 4F - 004F - 4F - LATIN CAPITAL LETTER O - - - 50 - 0050 - 50 - LATIN CAPITAL LETTER P - - - 51 - 0051 - 51 - LATIN CAPITAL LETTER Q - - - 52 - 0052 - 52 - LATIN CAPITAL LETTER R - - - 53 - 0053 - 53 - LATIN CAPITAL LETTER S - - - 54 - 0054 - 54 - LATIN CAPITAL LETTER T - - - 55 - 0055 - 55 - LATIN CAPITAL LETTER U - - - 56 - 0056 - 56 - LATIN CAPITAL LETTER V - - - 57 - 0057 - 57 - LATIN CAPITAL LETTER W - - - 58 - 0058 - 58 - LATIN CAPITAL LETTER X - - - 59 - 0059 - 59 - LATIN CAPITAL LETTER Y - - - 5A - 005A - 5A - LATIN CAPITAL LETTER Z - - - 5B - 005B - 5B - OPENING SQUARE BRACKET / LEFT SQUARE -BRACKET - - - 5C - 005C - 5C - REVERSE SLASH / REVERSE SOLIDUS - - - 5D - 005D - 5D - CLOSING SQUARE BRACKET / RIGHT SQUARE -BRACKET - - - 5E - 005E - 5E - SPACING CIRCUMFLEX / CIRCUMFLEX ACCENT - - - 5F - 005F - 5F - SPACING UNDERSCORE / LOW LINE - - - 60 - 0060 - 60 - SPACING GRAVE / GRAVE ACCENT - - - 61 - 0061 - 61 - LATIN SMALL LETTER A - - - 62 - 0062 - 62 - LATIN SMALL LETTER B - - - 63 - 0063 - 63 - LATIN SMALL LETTER C - - - 64 - 0064 - 64 - LATIN SMALL LETTER D - - - 65 - 0065 - 65 - LATIN SMALL LETTER E - - - 66 - 0066 - 66 - LATIN SMALL LETTER F - - - 67 - 0067 - 67 - LATIN SMALL LETTER G - - - 68 - 0068 - 68 - LATIN SMALL LETTER H - - - 69 - 0069 - 69 - LATIN SMALL LETTER I - - - 6A - 006A - 6A - LATIN SMALL LETTER J - - - 6B - 006B - 6B - LATIN SMALL LETTER K - - - 6C - 006C - 6C - LATIN SMALL LETTER L - - - 6D - 006D - 6D - LATIN SMALL LETTER M - - - 6E - 006E - 6E - LATIN SMALL LETTER N - - - 6F - 006F - 6F - LATIN SMALL LETTER O - - - 70 - 0070 - 70 - LATIN SMALL LETTER P - - - 71 - 0071 - 71 - LATIN SMALL LETTER Q - - - 72 - 0072 - 72 - LATIN SMALL LETTER R - - - 73 - 0073 - 73 - LATIN SMALL LETTER S - - - 74 - 0074 - 74 - LATIN SMALL LETTER T - - - 75 - 0075 - 75 - LATIN SMALL LETTER U - - - 76 - 0076 - 76 - LATIN SMALL LETTER V - - - 77 - 0077 - 77 - LATIN SMALL LETTER W - - - 78 - 0078 - 78 - LATIN SMALL LETTER X - - - 79 - 0079 - 79 - LATIN SMALL LETTER Y - - - 7A - 007A - 7A - LATIN SMALL LETTER Z - - - 7B - 007B - 7B - OPENING CURLY BRACKET / LEFT CURLY -BRACKET - - - 7C - 007C - 7C - VERTICAL BAR (FILL) / VERTICAL LINE - - - 7D - 007D - 7D - CLOSING CURLY BRACKET / RIGHT CURLY -BRACKET - - - 7E - 007E - 7E - SPACING TILDE / TILDE - - - - Revised June 2004 to add the Eszett (M+C7) and the - Euro Sign (M+C8) to the MARC-8 set. - - Revised September 2004 to change the mapping from - MARC-8 to Unicode for the Ligature (M+EB and M+EC) from U+FE20 and U+FE21 - to U+0361. - Revised September 2004 to change the mapping from - MARC-8 to Unicode for the Double Tilde (M+FA and M+FB) from U+FE22 and U+FE23 - to U+0360. - Revised March 2005 to change the mapping from MARC-8 to Unicode - for the Alif (M+2E) from U+02BE to U+02BC. - - 88 - 0098 - C298 - NON-SORT BEGIN / START OF STRING - - - 89 - 009C - C29C - NON-SORT END / STRING TERMINATOR - - - 8D - 200D - E2808D - JOINER / ZERO WIDTH JOINER - - - 8E - 200C - E2808C - NON-JOINER / ZERO WIDTH NON-JOINER - - - A1 - 0141 - C581 - UPPERCASE POLISH L / LATIN CAPITAL LETTER L WITH -STROKE - - - A2 - 00D8 - C398 - UPPERCASE SCANDINAVIAN O / LATIN CAPITAL LETTER -O WITH STROKE - - - A3 - 0110 - C490 - UPPERCASE D WITH CROSSBAR / LATIN CAPITAL LETTER -D WITH STROKE - - - A4 - 00DE - C39E - UPPERCASE ICELANDIC THORN / LATIN CAPITAL LETTER -THORN (Icelandic) - - - A5 - 00C6 - C386 - UPPERCASE DIGRAPH AE / LATIN CAPITAL LIGATURE -AE - - - A6 - 0152 - C592 - UPPERCASE DIGRAPH OE / LATIN CAPITAL LIGATURE -OE - - - A7 - 02B9 - CAB9 - SOFT SIGN, PRIME / MODIFIER LETTER PRIME - - - A8 - 00B7 - C2B7 - MIDDLE DOT - - - A9 - 266D - E299AD - MUSIC FLAT SIGN - - - AA - 00AE - C2AE - PATENT MARK / REGISTERED SIGN - - - AB - 00B1 - C2B1 - PLUS OR MINUS / PLUS-MINUS SIGN - - - AC - 01A0 - C6A0 - UPPERCASE O-HOOK / LATIN CAPITAL LETTER O WITH -HORN - - - AD - 01AF - C6AF - UPPERCASE U-HOOK / LATIN CAPITAL LETTER U WITH -HORN - - - AE - 02BC - CABC - CABE - ALIF / MODIFIER LETTER APOSTROPHE - - - B0 - 02BB - CABB - AYN / MODIFIER LETTER TURNED COMMA - - - B1 - 0142 - C582 - LOWERCASE POLISH L / LATIN SMALL LETTER L WITH -STROKE - - - B2 - 00F8 - C3B8 - LOWERCASE SCANDINAVIAN O / LATIN SMALL LETTER O -WITH STROKE - - - B3 - 0111 - C491 - LOWERCASE D WITH CROSSBAR / LATIN SMALL LETTER -D WITH STROKE - - - B4 - 00FE - C3BE - LOWERCASE ICELANDIC THORN / LATIN SMALL LETTER -THORN (Icelandic) - - - B5 - 00E6 - C3A6 - LOWERCASE DIGRAPH AE / LATIN SMALL LIGATURE -AE - - - B6 - 0153 - C593 - LOWERCASE DIGRAPH OE / LATIN SMALL LIGATURE -OE - - - B7 - 02BA - CABA - HARD SIGN, DOUBLE PRIME / MODIFIER LETTER DOUBLE -PRIME - - - B8 - 0131 - C4B1 - LOWERCASE TURKISH I / LATIN SMALL LETTER DOTLESS -I - - - B9 - 00A3 - C2A3 - BRITISH POUND / POUND SIGN - - - BA - 00F0 - C3B0 - LOWERCASE ETH / LATIN SMALL LETTER ETH -(Icelandic) - - - BC - 01A1 - C6A1 - LOWERCASE O-HOOK / LATIN SMALL LETTER O WITH -HORN - - - BD - 01B0 - C6B0 - LOWERCASE U-HOOK / LATIN SMALL LETTER U WITH -HORN - - - C0 - 00B0 - C2B0 - DEGREE SIGN - - - C1 - 2113 - E28493 - SCRIPT SMALL L - - - C2 - 2117 - E28497 - SOUND RECORDING COPYRIGHT - - - C3 - 00A9 - C2A9 - COPYRIGHT SIGN - - - C4 - 266F - E299AF - MUSIC SHARP SIGN - - - C5 - 00BF - C2BF - INVERTED QUESTION MARK - - - C6 - 00A1 - C2A1 - INVERTED EXCLAMATION MARK - - - C7 - 00DF - C39F - ESZETT SYMBOL - - - C8 - 20AC - E282AC - EURO SIGN - - - true - E0 - 0309 - CC89 - PSEUDO QUESTION MARK / COMBINING HOOK -ABOVE - - - true - E1 - 0300 - CC80 - GRAVE / COMBINING GRAVE ACCENT (Varia) - - - true - E2 - 0301 - CC81 - ACUTE / COMBINING ACUTE ACCENT (Oxia) - - - true - E3 - 0302 - CC82 - CIRCUMFLEX / COMBINING CIRCUMFLEX -ACCENT - - - true - E4 - 0303 - CC83 - TILDE / COMBINING TILDE - - - true - E5 - 0304 - CC84 - MACRON / COMBINING MACRON - - - true - E6 - 0306 - CC86 - BREVE / COMBINING BREVE (Vrachy) - - - true - E7 - 0307 - CC87 - SUPERIOR DOT / COMBINING DOT ABOVE - - - true - E8 - 0308 - CC88 - UMLAUT, DIAERESIS / COMBINING DIAERESIS -(Dialytika) - - - true - E9 - 030C - CC8C - HACEK / COMBINING CARON - - - true - EA - 030A - CC8A - CIRCLE ABOVE, ANGSTROM / COMBINING RING -ABOVE - - - true - EB - 0361 - CDA1 - FE20 - EFB8A0 - LIGATURE, FIRST HALF / COMBINING DOUBLE - INVERTED BREVE - - - true - EC - - - FE21 - EFB8A1 - LIGATURE, SECOND HALF / COMBINING LIGATURE RIGHT HALF - The Ligature that spans two characters - is constructed of two halves in MARC-8: EB - (Ligature, first half) and EC (Ligature, second - half). The preferred Unicode/UTF-8 mapping is to - the single character Ligature that spans two characters, - U+0361. The single character Ligature is encoded - following the second of the two characters to be spanned. - The two half Ligatures in Unicode, to which the - Ligature has been mapped since 1996, are indicted - in the mapping as alternatives, but their use is not - recommended. It is expected that font support for - the single character Ligature mark will be more - easily obtained than for the two halves. - - - true - ED - 0315 - CC95 - HIGH COMMA, OFF CENTER / COMBINING COMMA ABOVE -RIGHT - - - true - EE - 030B - CC8B - DOUBLE ACUTE / COMBINING DOUBLE ACUTE -ACCENT - - - true - EF - 0310 - CC90 - CANDRABINDU / COMBINING CANDRABINDU - - - true - F0 - 0327 - CCA7 - CEDILLA / COMBINING CEDILLA - - - true - F1 - 0328 - CCA8 - RIGHT HOOK, OGONEK / COMBINING OGONEK - - - true - F2 - 0323 - CCA3 - DOT BELOW / COMBINING DOT BELOW - - - true - F3 - 0324 - CCA4 - DOUBLE DOT BELOW / COMBINING DIAERESIS -BELOW - - - true - F4 - 0325 - CCA5 - CIRCLE BELOW / COMBINING RING BELOW - - - true - F5 - 0333 - CCB3 - DOUBLE UNDERSCORE / COMBINING DOUBLE LOW -LINE - - - true - F6 - 0332 - CCB2 - UNDERSCORE / COMBINING LOW LINE - - - true - F7 - 0326 - CCA6 - LEFT HOOK (COMMA BELOW) / COMBINING COMMA -BELOW - - - true - F8 - 031C - CC9C - RIGHT CEDILLA / COMBINING LEFT HALF RING -BELOW - - - true - F9 - 032E - CCAE - UPADHMANIYA / COMBINING BREVE BELOW - - - true - FA - 0360 - CDA0 - FE22 - EFB8A2 - DOUBLE TILDE, FIRST HALF / COMBINING DOUBLE TILDE - - - true - FB - - - FE23 - EFB8A3 - DOUBLE TILDE, SECOND HALF / COMBINING DOUBLE TILDE RIGHT HALF - The Double Tilde that spans two characters is - constructed of two halves in MARC-8: FA (Double - Tilde, first half) and FB (Double Tilde, second - half). The preferred Unicode/UTF-8 mapping - is to the single character Double Tilde that - spans two characters, U+0360. The single - character Double Tilde is encoded following - the second of the two characters to be spanned. - The two half Double Tildes in Unicode, to - which the MARC8 Double Tilde has been - mapped since 1996, are indicted in the - mapping as alternatives, but their use is not - recommended. It is expected that font support - for the single character Double Tilde mark will - be more easily obtained than for the two halves. - - - true - FE - 0313 - CC93 - HIGH COMMA, CENTERED / COMBINING COMMA ABOVE -(Psili) - - - - - The first column in this table contains the MARC-8 code (in hex) for - the character, the second column contains the UCS/Unicode 16-bit code (in - hex), the third column contains the UTF-8 code (in hex) for the UCS - character, the fourth column contains a representation of the character (where possible), - the fifth column contains the MARC character name, followed by - the UCS name. If the MARC name is the same as or very similar to the UCS - name, only the UCS name is given. - Note added September 2004: The alpha, beta and gamma symbols that have been part of a - special extension of the MARC8 character set since 1970 do not - have reversible mappings to Unicode since they duplicate - characters in the Greek script set. These special characters - map to the Greek set in Unicode, thus when being remapped to - MARC-8 they go to the MARC-8 Greek set, not the special - extension to the Latin set. It is recommended that the - spelling out of the characters be used when the Latin - extension Greek characters would formerly have been used, - i.e., when they occur in Latin text. The following - substitutions would be made: [alpha], [beta], and [gamma]. - - - 61 - 03B1 - CEB1 - GREEK SMALL LETTER ALPHA - - - 62 - 03B2 - CEB2 - GREEK SMALL LETTER BETA - - - 63 - 03B3 - CEB3 - GREEK SMALL LETTER GAMMA - - - - - The first column in this table contains the MARC-8 code (in hex) for - the character, the second column contains the UCS/Unicode 16-bit code (in - hex), the third column contains the UTF-8 code (in hex) for the UCS - character, the fourth column contains a representation of the character (where possible), - the fifth column contains the MARC character name, followed by - the UCS name. If the MARC name is the same as or very similar to the UCS - name, only the UCS name is given. - - - 28 - 208D - E2828D - SUBSCRIPT OPENING PARENTHESIS / SUBSCRIPT LEFT -PARENTHESIS - - - 29 - 208E - E2828E - SUBSCRIPT CLOSING PARENTHESIS / SUBSCRIPT RIGHT -PARENTHESIS - - - 2B - 208A - E2828A - SUBSCRIPT PLUS SIGN - - - 2D - 208B - E2828B - SUBSCRIPT HYPHEN-MINUS / SUBSCRIPT MINUS - - - 30 - 2080 - E28280 - SUBSCRIPT DIGIT ZERO - - - 31 - 2081 - E28281 - SUBSCRIPT DIGIT ONE - - - 32 - 2082 - E28282 - SUBSCRIPT DIGIT TWO - - - 33 - 2083 - E28283 - SUBSCRIPT DIGIT THREE - - - 34 - 2084 - E28284 - SUBSCRIPT DIGIT FOUR - - - 35 - 2085 - E28285 - SUBSCRIPT DIGIT FIVE - - - 36 - 2086 - E28286 - SUBSCRIPT DIGIT SIX - - - 37 - 2087 - E28287 - SUBSCRIPT DIGIT SEVEN - - - 38 - 2088 - E28288 - SUBSCRIPT DIGIT EIGHT - - - 39 - 2089 - E28289 - SUBSCRIPT DIGIT NINE - - - - - The first column in this table contains the MARC-8 code (in hex) for - the character, the second column contains the UCS/Unicode 16-bit code (in - hex), the third column contains the UTF-8 code (in hex) for the UCS - character, the fourth column contains a representation of the character (where possible), - the fifth column conatins the MARC character name, followed by - the UCS name. If the MARC name is the same as or very similar to the UCS - name, only the UCS name is given. - - - 28 - 207D - E281BD - SUPERSCRIPT OPENING PARENTHESIS / SUPERSCRIPT LEFT -PARENTHESIS - - - 29 - 207E - E281BE - SUPERSCRIPT CLOSING PARENTHESIS / SUPERSCRIPT -RIGHT PARENTHESIS - - - 2B - 207A - E281BA - SUPERSCRIPT PLUS SIGN - - - 2D - 207B - E281BB - SUPERSCRIPT HYPHEN-MINUS / SUPERSCRIPT -MINUS - - - 30 - 2070 - E281B0 - SUPERSCRIPT DIGIT ZERO - - - 31 - 00B9 - C2B9 - SUPERSCRIPT DIGIT ONE - - - 32 - 00B2 - C2B2 - SUPERSCRIPT DIGIT TWO - - - 33 - 00B3 - C2B3 - SUPERSCRIPT DIGIT THREE - - - 34 - 2074 - E281B4 - SUPERSCRIPT DIGIT FOUR - - - 35 - 2075 - E281B5 - SUPERSCRIPT DIGIT FIVE - - - 36 - 2076 - E281B6 - SUPERSCRIPT DIGIT SIX - - - 37 - 2077 - E281B7 - SUPERSCRIPT DIGIT SEVEN - - - 38 - 2078 - E281B8 - SUPERSCRIPT DIGIT EIGHT - - - 39 - 2079 - E281B9 - SUPERSCRIPT DIGIT NINE - - - - - The first column in this table contains the MARC-8 code (in hex) for - the character as coming from the G0 graphic set, the second column - contains the MARC-8 code (in hex) for the character as coming from the G1 - graphic set, the third column contains the UCS/Unicode 16-bit code (in - hex), the fourth column contains the UTF-8 code (in hex) for the UCS - characters, the fifth column contains a representation of the character (where possible), - the sixth column contains the MARC character name, followed - by the UCS name. If the MARC name is the same as or very similar to the - UCS name, only the UCS name is given. - - - 21 - 0021 - 21 - EXCLAMATION MARK - - - 22 - 05F4 - D7B4 - QUOTATION MARK, GERSHAYIM / HEBREW PUNCTUATION -GERSHAYIM - - - 23 - 0023 - 23 - NUMBER SIGN - - - 24 - 0024 - 24 - DOLLAR SIGN - - - 25 - 0025 - 25 - PERCENT SIGN - - - 26 - 0026 - 26 - AMPERSAND - - - 27 - 05F3 - D7B3 - APOSTROPHE, GERESH / HEBREW PUNCTUATION -GERESH - - - 28 - 0028 - 28 - OPENING PARENTHESIS / LEFT PARENTHESIS - - - 29 - 0029 - 29 - CLOSING PARENTHESIS / RIGHT PARENTHESIS - - - 2A - 002A - 2A - ASTERISK - - - 2B - 002B - 2B - PLUS SIGN - - - 2C - 002C - 2C - COMMA - - - 2D - 05BE - D6BE - HYPHEN-MINUS, MAKEF / HEBREW PUNCTUATION -MAQAF - - - 2E - 002E - 2E - PERIOD, DECIMAL POINT / FULL STOP - - - 2F - 002F - 2F - SLASH / SOLIDUS - - - 30 - 0030 - 30 - DIGIT ZERO - - - 31 - 0031 - 31 - DIGIT ONE - - - 32 - 0032 - 32 - DIGIT TWO - - - 33 - 0033 - 33 - DIGIT THREE - - - 34 - 0034 - 34 - DIGIT FOUR - - - 35 - 0035 - 35 - DIGIT FIVE - - - 36 - 0036 - 36 - DIGIT SIX - - - 37 - 0037 - 37 - DIGIT SEVEN - - - 38 - 0038 - 38 - DIGIT EIGHT - - - 39 - 0039 - 39 - DIGIT NINE - - - 3A - 003A - 3A - COLON - - - 3B - 003B - 3B - SEMICOLON - - - 3C - 003C - 3C - LESS-THAN SIGN - - - 3D - 003D - 3D - EQUALS SIGN - - - 3E - 003E - 3E - GREATER-THAN SIGN - - - 3F - 003F - 3F - QUESTION MARK - - - true - 40 - 05B7 - D6B7 - HEBREW POINT PATAH - - - true - 41 - 05B8 - D6B8 - KAMATS / HEBREW POINT QAMATS - - - true - 42 - 05B6 - D6B6 - HEBREW POINT SEGOL - - - true - 43 - 05B5 - D6B5 - TSEREH / HEBREW POINT TSERE - - - true - 44 - 05B4 - D6B4 - HIRIK / HEBREW POINT HIRIQ - - - true - 45 - 05B9 - D6B9 - HOLAM, LEFT SIN DOT / HEBREW POINT HOLAM - - - true - 46 - 05BB - D6BB - KUBUTS / HEBREW POINT QUBUTS - - - true - 47 - 05B0 - D6B0 - HEBREW POINT SHEVA - - - true - 48 - 05B2 - D6B2 - HEBREW POINT HATAF PATAH - - - true - 49 - 05B3 - D6B3 - HATAF KAMATS / HEBREW POINT HATAF QAMATS - - - true - 4A - 05B1 - D6B1 - HEBREW POINT HATAF SEGOL - - - true - 4B - 05BC - D6BC - HEBREW POINT DAGESH OR MAPIQ - - - true - 4C - 05BF - D6BF - RAFEH / HEBREW POINT RAFE - - - true - 4D - 05C1 - D781 - RIGHT SHIN DOT / HEBREW POINT SHIN DOT - - - true - 4E - FB1E - EFAC9E - VARIKA / HEBREW POINT JUDEO-SPANISH -VARIKA - - - 5B - 005B - 5B - OPENING SQUARE BRACKET / LEFT SQUARE -BRACKET - - - 5D - 005D - 5D - CLOSING SQUARE BRACKET / RIGHT SQUARE -BRACKET - - - 60 - 05D0 - D790 - HEBREW LETTER ALEF - - - 61 - 05D1 - D791 - HEBREW LETTER BET - - - 62 - 05D2 - D792 - HEBREW LETTER GIMEL - - - 63 - 05D3 - D793 - HEBREW LETTER DALET - - - 64 - 05D4 - D794 - HEBREW LETTER HE - - - 65 - 05D5 - D795 - HEBREW LETTER VAV - - - 66 - 05D6 - D796 - HEBREW LETTER ZAYIN - - - 67 - 05D7 - D797 - HEBREW LETTER HET - - - 68 - 05D8 - D798 - HEBREW LETTER TET - - - 69 - 05D9 - D799 - HEBREW LETTER YOD - - - 6A - 05DA - D79A - HEBREW LETTER FINAL KAF - - - 6B - 05DB - D79B - HEBREW LETTER KAF - - - 6C - 05DC - D79C - HEBREW LETTER LAMED - - - 6D - 05DD - D79D - HEBREW LETTER FINAL MEM - - - 6E - 05DE - D79E - HEBREW LETTER MEM - - - 6F - 05DF - D79F - HEBREW LETTER FINAL NUN - - - 70 - 05E0 - D7A0 - HEBREW LETTER NUN - - - 71 - 05E1 - D7A1 - HEBREW LETTER SAMEKH - - - 72 - 05E2 - D7A2 - HEBREW LETTER AYIN - - - 73 - 05E3 - D7A3 - HEBREW LETTER FINAL PE - - - 74 - 05E4 - D7A4 - HEBREW LETTER PE - - - 75 - 05E5 - D7A5 - HEBREW LETTER FINAL TSADI - - - 76 - 05E6 - D7A6 - HEBREW LETTER TSADI - - - 77 - 05E7 - D7A7 - HEBREW LETTER QOF / KOF - - - 78 - 05E8 - D7A8 - HEBREW LETTER RESH - - - 79 - 05E9 - D7A9 - HEBREW LETTER SHIN - - - 7A - 05EA - D7AA - HEBREW LETTER TAV - - - 7B - 05F0 - D7B0 - HEBREW LIGATURE YIDDISH DOUBLE VAV / TSVEY -VOVN - - - 7C - 05F1 - D7B1 - HEBREW LIGATURE YIDDISH VAV YOD / VOV -YUD - - - 7D - 05F2 - D7B2 - HEBREW LIGATURE YIDDISH DOUBLE YOD / TSVEY -YUDN - - - - - The first column in this table contains the MARC-8 code (in hex) for - the character as coming from the G0 graphic set, the second column - contains the MARC-8 code (in hex) for the character as coming from the G1 - graphic set, the third column contains the UCS/Unicode 16-bit code (in - hex), the fourth column contains the UTF-8 code (in hex) for the UCS - characters, the fifth column contains a representation of the character (where possible), - the sixth column contains the MARC character name, followed - by the UCS name. If the MARC name is the same as or very similar to the - UCS name, only the UCS name is given. - - - 21 - 0021 - 21 - EXCLAMATION MARK - - - 22 - 0022 - 22 - QUOTATION MARK - - - 23 - 0023 - 23 - NUMBER SIGN - - - 24 - 0024 - 24 - DOLLAR SIGN - - - 25 - 0025 - 25 - PERCENT SIGN - - - 26 - 0026 - 26 - AMPERSAND - - - 27 - 0027 - 27 - APOSTROPHE - - - 28 - 0028 - 28 - OPENING PARENTHESIS / LEFT PARENTHESIS - - - 29 - 0029 - 29 - CLOSING PARENTHESIS / RIGHT PARENTHESIS - - - 2A - 002A - 2A - ASTERISK - - - 2B - 002B - 2B - PLUS SIGN - - - 2C - 002C - 2C - COMMA - - - 2D - 002D - 2D - HYPHEN-MINUS - - - 2E - 002E - 2E - PERIOD, DECIMAL POINT / FULL STOP - - - 2F - 002F - 2F - SLASH / SOLIDUS - - - 30 - 0030 - 30 - DIGIT ZERO - - - 31 - 0031 - 31 - DIGIT ONE - - - 32 - 0032 - 32 - DIGIT TWO - - - 33 - 0033 - 33 - DIGIT THREE - - - 34 - 0034 - 34 - DIGIT FOUR - - - 35 - 0035 - 35 - DIGIT FIVE - - - 36 - 0036 - 36 - DIGIT SIX - - - 37 - 0037 - 37 - DIGIT SEVEN - - - 38 - 0038 - 38 - DIGIT EIGHT - - - 39 - 0039 - 39 - DIGIT NINE - - - 3A - 003A - 3A - COLON - - - 3B - 003B - 3B - SEMICOLON - - - 3C - 003C - 3C - LESS-THAN SIGN - - - 3D - 003D - 3D - EQUALS SIGN - - - 3E - 003E - 3E - GREATER-THAN SIGN - - - 3F - 003F - 3F - QUESTION MARK - - - 40 - 044E - D18E - LOWERCASE IU / CYRILLIC SMALL LETTER YU - - - 41 - 0430 - D0B0 - CYRILLIC SMALL LETTER A - - - 42 - 0431 - D0B1 - CYRILLIC SMALL LETTER BE - - - 43 - 0446 - D186 - CYRILLIC SMALL LETTER TSE - - - 44 - 0434 - D0B4 - CYRILLIC SMALL LETTER DE - - - 45 - 0435 - D0B5 - CYRILLIC SMALL LETTER IE - - - 46 - 0444 - D184 - CYRILLIC SMALL LETTER EF - - - 47 - 0433 - D0B3 - LOWERCASE GE / CYRILLIC SMALL LETTER GHE - - - 48 - 0445 - D185 - LOWERCASE KHA / CYRILLIC SMALL LETTER HA - - - 49 - 0438 - D0B8 - LOWERCASE II / CYRILLIC SMALL LETTER I - - - 4A - 0439 - D0B9 - LOWERCASE SHORT II / CYRILLIC SMALL LETTER SHORT -I - - - 4B - 043A - D0BA - CYRILLIC SMALL LETTER KA - - - 4C - 043B - D0BB - CYRILLIC SMALL LETTER EL - - - 4D - 043C - D0BC - CYRILLIC SMALL LETTER EM - - - 4E - 043D - D0BD - CYRILLIC SMALL LETTER EN - - - 4F - 043E - D0BE - CYRILLIC SMALL LETTER O - - - 50 - 043F - D0BF - CYRILLIC SMALL LETTER PE - - - 51 - 044F - D18F - LOWERCASE IA / CYRILLIC SMALL LETTER YA - - - 52 - 0440 - D180 - CYRILLIC SMALL LETTER ER - - - 53 - 0441 - D181 - CYRILLIC SMALL LETTER ES - - - 54 - 0442 - D182 - CYRILLIC SMALL LETTER TE - - - 55 - 0443 - D183 - CYRILLIC SMALL LETTER U - - - 56 - 0436 - D0B6 - CYRILLIC SMALL LETTER ZHE - - - 57 - 0432 - D0B2 - CYRILLIC SMALL LETTER VE - - - 58 - 044C - D18C - CYRILLIC SMALL LETTER SOFT SIGN - - - 59 - 044B - D18B - LOWERCASE YERI / CYRILLIC SMALL LETTER -YERI - - - 5A - 0437 - D0B7 - CYRILLIC SMALL LETTER ZE - - - 5B - 0448 - D188 - CYRILLIC SMALL LETTER SHA - - - 5C - 044D - D18D - LOWERCASE REVERSED E / CYRILLIC SMALL LETTER -E - - - 5D - 0449 - D189 - CYRILLIC SMALL LETTER SHCHA - - - 5E - 0447 - D187 - CYRILLIC SMALL LETTER CHE - - - 5F - 044A - D18A - CYRILLIC SMALL LETTER HARD SIGN - - - 60 - 042E - D0AE - UPPERCASE IU / CYRILLIC CAPITAL LETTER YU - - - 61 - 0410 - D090 - CYRILLIC CAPITAL LETTER A - - - 62 - 0411 - D091 - CYRILLIC CAPITAL LETTER BE - - - 63 - 0426 - D0A6 - CYRILLIC CAPITAL LETTER TSE - - - 64 - 0414 - D094 - CYRILLIC CAPITAL LETTER DE - - - 65 - 0415 - D095 - CYRILLIC CAPITAL LETTER IE - - - 66 - 0424 - D0A4 - CYRILLIC CAPITAL LETTER EF - - - 67 - 0413 - D093 - UPPERCASE GE / CYRILLIC CAPITAL LETTER GHE - - - 68 - 0425 - D0A5 - UPPERCASE KHA / CYRILLIC CAPITAL LETTER HA - - - 69 - 0418 - D098 - UPPERCASE II / CYRILLIC CAPITAL LETTER I - - - 6A - 0419 - D099 - UPPERCASE SHORT II / CYRILLIC CAPITAL LETTER SHORT -I - - - 6B - 041A - D09A - CYRILLIC CAPITAL LETTER KA - - - 6C - 041B - D09B - CYRILLIC CAPITAL LETTER EL - - - 6D - 041C - D09C - CYRILLIC CAPITAL LETTER EM - - - 6E - 041D - D09D - CYRILLIC CAPITAL LETTER EN - - - 6F - 041E - D09E - CYRILLIC CAPITAL LETTER O - - - 70 - 041F - D09F - CYRILLIC CAPITAL LETTER PE - - - 71 - 042F - D0AF - UPPERCASE IA / CYRILLIC CAPITAL LETTER YA - - - 72 - 0420 - D0A0 - CYRILLIC CAPITAL LETTER ER - - - 73 - 0421 - D0A1 - CYRILLIC CAPITAL LETTER ES - - - 74 - 0422 - D0A2 - CYRILLIC CAPITAL LETTER TE - - - 75 - 0423 - D0A3 - CYRILLIC CAPITAL LETTER U - - - 76 - 0416 - D096 - CYRILLIC CAPITAL LETTER ZHE - - - 77 - 0412 - D092 - CYRILLIC CAPITAL LETTER VE - - - 78 - 042C - D0AC - CYRILLIC CAPITAL LETTER SOFT SIGN - - - 79 - 042B - D0AB - UPPERCASE YERI / CYRILLIC CAPITAL LETTER -YERI - - - 7A - 0417 - D097 - CYRILLIC CAPITAL LETTER ZE - - - 7B - 0428 - D0A8 - CYRILLIC CAPITAL LETTER SHA - - - 7C - 042D - D0AD - CYRILLIC CAPITAL LETTER E - - - 7D - 0429 - D0A9 - CYRILLIC CAPITAL LETTER SHCHA - - - 7E - 0427 - D0A7 - CYRILLIC CAPITAL LETTER CHE - - - - - 40 - 0491 - D291 - LOWERCASE GE WITH UPTURN / CYRILLIC SMALL LETTER -GHE WITH UPTURN - - - 41 - 0452 - D192 - LOWERCASE DJE / CYRILLIC SMALL LETTER DJE -(Serbian) - - - 42 - 0453 - D193 - CYRILLIC SMALL LETTER GJE - - - 43 - 0454 - D194 - LOWERCASE E / CYRILLIC SMALL LETTER UKRAINIAN -IE - - - 44 - 0451 - D191 - CYRILLIC SMALL LETTER IO - - - 45 - 0455 - D195 - CYRILLIC SMALL LETTER DZE - - - 46 - 0456 - D196 - LOWERCASE I / CYRILLIC SMALL LETTER -BYELORUSSIAN-UKRANIAN I - - - 47 - 0457 - D197 - LOWERCASE YI / CYRILLIC SMALL LETTER YI -(Ukrainian) - - - 48 - 0458 - D198 - CYRILLIC SMALL LETTER JE - - - 49 - 0459 - D199 - CYRILLIC SMALL LETTER LJE - - - 4A - 045A - D19A - CYRILLIC SMALL LETTER NJE - - - 4B - 045B - D19B - LOWERCASE TSHE / CYRILLIC SMALL LETTER TSHE -(Serbian) - - - 4C - 045C - D19C - CYRILLIC SMALL LETTER KJE - - - 4D - 045E - D19E - LOWERCASE SHORT U / CYRILLIC SMALL LETTER SHORT -U (Byelorussian) - - - 4E - 045F - D19F - CYRILLIC SMALL LETTER DZHE - - - 50 - 0463 - D1A3 - CYRILLIC SMALL LETTER YAT - - - 51 - 0473 - D1B3 - CYRILLIC SMALL LETTER FITA - - - 52 - 0475 - D1B5 - CYRILLIC SMALL LETTER IZHITSA - - - 53 - 046B - D1AB - CYRILLIC SMALL LETTER BIG YUS - - - 5B - 005B - 5B - OPENING SQUARE BRACKET / LEFT SQUARE -BRACKET - - - 5D - 005D - 5D - CLOSING SQUARE BRACKET / RIGHT SQUARE -BRACKET - - - 5F - 005F - 5F - SPACING UNDERSCORE / LOW LINE - - - 60 - 0490 - D290 - UPPERCASE GE WITH UPTURN / CYRILLIC CAPITAL -LETTER GHE WITH UPTURN - - - 61 - 0402 - D082 - UPPERCASE DJE / CYRILLIC CAPITAL LETTER DJE -(Serbian) - - - 62 - 0403 - D083 - CYRILLIC CAPITAL LETTER GJE - - - 63 - 0404 - D084 - UPPERCASE E / CYRILLIC CAPITAL LETTER UKRAINIAN -IE - - - 64 - 0401 - D081 - CYRILLIC CAPITAL LETTER IO - - - 65 - 0405 - D085 - CYRILLIC CAPITAL LETTER DZE - - - 66 - 0406 - D086 - UPPERCASE I / CYRILLIC CAPITAL LETTER -BYELORUSSIAN-UKRANIAN I - - - 67 - 0407 - D087 - UPPERCASE YI / CYRILLIC CAPITAL LETTER YI -(Ukrainian) - - - 68 - 0408 - D088 - CYRILLIC CAPITAL LETTER JE - - - 69 - 0409 - D089 - CYRILLIC CAPITAL LETTER LJE - - - 6A - 040A - D08A - CYRILLIC CAPITAL LETTER NJE - - - 6B - 040B - D08B - UPPERCASE TSHE / CYRILLIC CAPITAL LETTER TSHE -(Serbian) - - - 6C - 040C - D08C - CYRILLIC CAPITAL LETTER KJE - - - 6D - 040E - D08E - UPPERCASE SHORT U / CYRILLIC CAPITAL LETTER SHORT -U (Byelorussian) - - - 6E - 040F - D08F - CYRILLIC CAPITAL LETTER DZHE - - - 6F - 042A - D0AA - CYRILLIC CAPITAL LETTER HARD SIGN - - - 70 - 0462 - D1A2 - CYRILLIC CAPITAL LETTER YAT - - - 71 - 0472 - D1B2 - CYRILLIC CAPITAL LETTER FITA - - - 72 - 0474 - D1B4 - CYRILLIC CAPITAL LETTER IZHITSA - - - 73 - 046A - D1AA - CYRILLIC CAPITAL LETTER BIG YUS - - - - - The first column in this table contains the MARC-8 code (in hex) for - the character as coming from the G0 graphic set, the second column - contains the MARC-8 code (in hex) for the character as coming from the G1 - graphic set, the third column contains the UCS/Unicode 16-bit code (in - hex), the fourth column contains the UTF-8 code (in hex) for the UCS - characters, the fifth column contains a representation of the character (where possible), - the sixth column contains the MARC character name, followed - by the UCS name. If the MARC name is the same as or very similar to the - UCS name, only the UCS name is given. - - - 21 - 0021 - 21 - EXCLAMATION MARK - - - 22 - 0022 - 22 - QUOTATION MARK - - - 23 - 0023 - 23 - NUMBER SIGN - - - 24 - 0024 - 24 - DOLLAR SIGN - - - 25 - 066A - D9AA - PERCENT SIGN / ARABIC PERCENT SIGN - - - 26 - 0026 - 26 - AMPERSAND - - - 27 - 0027 - 27 - APOSTROPHE - - - 28 - 0028 - 28 - OPENING PARENTHESIS / LEFT PARENTHESIS - - - 29 - 0029 - 29 - CLOSING PARENTHESIS / RIGHT PARENTHESIS - - - 2A - 066D - D9AD - ASTERISK / ARABIC FIVE POINTED STAR - - - 2B - 002B - 2B - PLUS SIGN - - - 2C - 060C - D88C - ARABIC COMMA - - - 2D - 002D - 2D - HYPHEN-MINUS - - - 2E - 002E - 2E - PERIOD, DECIMAL POINT / FULL STOP - - - 2F - 002F - 2F - SLASH / SOLIDUS - - - 30 - 0660 - D9A0 - ARABIC-INDIC DIGIT ZERO - - - 31 - 0661 - D9A1 - ARABIC-INDIC DIGIT ONE - - - 32 - 0662 - D9A2 - ARABIC-INDIC DIGIT TWO - - - 33 - 0663 - D9A3 - ARABIC-INDIC DIGIT THREE - - - 34 - 0664 - D9A4 - ARABIC-INDIC DIGIT FOUR - - - 35 - 0665 - D9A5 - ARABIC-INDIC DIGIT FIVE - - - 36 - 0666 - D9A6 - ARABIC-INDIC DIGIT SIX - - - 37 - 0667 - D9A7 - ARABIC-INDIC DIGIT SEVEN - - - 38 - 0668 - D9A8 - ARABIC-INDIC DIGIT EIGHT - - - 39 - 0669 - D9A9 - ARABIC-INDIC DIGIT NINE - - - 3A - 003A - 3A - COLON - - - 3B - 061B - D89B - ARABIC SEMICOLON - - - 3C - 003C - 3C - LESS-THAN SIGN - - - 3D - 003D - 3D - EQUALS SIGN - - - 3E - 003E - 3E - GREATER-THAN SIGN - - - 3F - 061F - D89F - ARABIC QUESTION MARK - - - 41 - 0621 - D8A1 - HAMZAH / ARABIC LETTER HAMZA - - - 42 - 0622 - D8A2 - ARABIC LETTER ALEF WITH MADDA ABOVE - - - 43 - 0623 - D8A3 - ARABIC LETTER ALEF WITH HAMZA ABOVE - - - 44 - 0624 - D8A4 - ARABIC LETTER WAW WITH HAMZA ABOVE - - - 45 - 0625 - D8A5 - ARABIC LETTER ALEF WITH HAMZA BELOW - - - 46 - 0626 - D8A6 - ARABIC LETTER YEH WITH HAMZA ABOVE - - - 47 - 0627 - D8A7 - ARABIC LETTER ALEF - - - 48 - 0628 - D8A8 - ARABIC LETTER BEH - - - 49 - 0629 - D8A9 - ARABIC LETTER TEH MARBUTA - - - 4A - 062A - D8AA - ARABIC LETTER TEH - - - 4B - 062B - D8AB - ARABIC LETTER THEH - - - 4C - 062C - D8AC - ARABIC LETTER JEEM - - - 4D - 062D - D8AD - ARABIC LETTER HAH - - - 4E - 062E - D8AE - ARABIC LETTER KHAH - - - 4F - 062F - D8AF - ARABIC LETTER DAL - - - 50 - 0630 - D8B0 - ARABIC LETTER THAL - - - 51 - 0631 - D8B1 - ARABIC LETTER REH - - - 52 - 0632 - D8B2 - ARABIC LETTER ZAIN - - - 53 - 0633 - D8B3 - ARABIC LETTER SEEN - - - 54 - 0634 - D8B4 - ARABIC LETTER SHEEN - - - 55 - 0635 - D8B5 - ARABIC LETTER SAD - - - 56 - 0636 - D8B6 - ARABIC LETTER DAD - - - 57 - 0637 - D8B7 - ARABIC LETTER TAH - - - 58 - 0638 - D8B8 - ARABIC LETTER ZAH - - - 59 - 0639 - D8B9 - ARABIC LETTER AIN - - - 5A - 063A - D8BA - ARABIC LETTER GHAIN - - - 5B - 005B - 5B - OPENING SQUARE BRACKET / LEFT SQUARE -BRACKET - - - 5D - 005D - 5D - CLOSING SQUARE BRACKET / RIGHT SQUARE -BRACKET - - - 60 - 0640 - D980 - ARABIC TATWEEL - - - 61 - 0641 - D981 - ARABIC LETTER FEH - - - 62 - 0642 - D982 - ARABIC LETTER QAF - - - 63 - 0643 - D983 - ARABIC LETTER KAF - - - 64 - 0644 - D984 - ARABIC LETTER LAM - - - 65 - 0645 - D985 - ARABIC LETTER MEEM - - - 66 - 0646 - D986 - ARABIC LETTER NOON - - - 67 - 0647 - D987 - ARABIC LETTER HEH - - - 68 - 0648 - D988 - ARABIC LETTER WAW - - - 69 - 0649 - D989 - ARABIC LETTER ALEF MAKSURA - - - 6A - 064A - D98A - ARABIC LETTER YEH - - - true - 6B - 064B - D98B - ARABIC FATHATAN - - - true - 6C - 064C - D98C - ARABIC DAMMATAN - - - true - 6D - 064D - D98D - ARABIC KASRATAN - - - true - 6E - 064E - D98E - ARABIC FATHA - - - true - 6F - 064F - D98F - ARABIC DAMMA - - - true - 70 - 0650 - D990 - ARABIC KASRA - - - true - 71 - 0651 - D991 - ARABIC SHADDA - - - true - 72 - 0652 - D992 - ARABIC SUKUN - - - 73 - 0671 - D9B1 - ARABIC LETTER ALEF WASLA - - - 74 - 0670 - D9B0 - ARABIC LETTER SUPERSCRIPT ALEF - - - 78 - 066C - D9AC - ARABIC THOUSANDS SEPARATOR - - - 79 - 201D - E2809D - RIGHT DOUBLE QUOTATION MARK - - - 7A - 201C - E2809C - LEFT DOUBLE QUOTATION MARK - - - - - 21 - 06FD - DBBD - DOUBLE ALEF WITH HAMZA ABOVE / ARABIC SIGN SINDHI -AMPERSAND - - - 22 - 0672 - D9B2 - ARABIC LETTER ALEF WITH WAVY HAMZA -ABOVE - - - 23 - 0673 - D9B3 - ARABIC LETTER ALEF WITH WAVY HAMZA -BELOW - - - 24 - 0679 - D9B9 - ARABIC LETTER TTEH - - - 25 - 067A - D9BA - ARABIC LETTER TTEHEH - - - 26 - 067B - D9BB - ARABIC LETTER BBEH - - - 27 - 067C - D9BC - ARABIC LETTER TEH WITH RING - - - 28 - 067D - D9BD - ARABIC LETTER TEH WITH THREE DOTS ABOVE -DOWNWARDS - - - 29 - 067E - D9BE - ARABIC LETTER PEH - - - 2A - 067F - D9BF - ARABIC LETTER TEHEH - - - 2B - 0680 - DA80 - ARABIC LETTER BEHEH - - - 2C - 0681 - DA81 - ARABIC LETTER HAH WITH HAMZA ABOVE - - - 2D - 0682 - DA82 - ARABIC LETTER HAH WITH TWO ABOVE DOTS VERTICAL -ABOVE - - - 2E - 0683 - DA83 - ARABIC LETTER NYEH - - - 2F - 0684 - DA84 - ARABIC LETTER DYEH - - - 30 - 0685 - DA85 - ARABIC LETTER HAH WITH THREE DOTS ABOVE - - - 31 - 0686 - DA86 - ARABIC LETTER TCHEH - - - 32 - 06BF - DABF - ARABIC LETTER TCHEH WITH DOT ABOVE - - - 33 - 0687 - DA87 - ARABIC LETTER TCHEHEH - - - 34 - 0688 - DA88 - ARABIC LETTER DDAL - - - 35 - 0689 - DA89 - ARABIC LETTER DAL WITH RING - - - 36 - 068A - DA8A - ARABIC LETTER DAL WITH DOT BELOW - - - 37 - 068B - DA8B - ARABIC LETTER DAL WITH DOT BELOW AND SMALL -TAH - - - 38 - 068C - DA8C - ARABIC LETTER DAHAL - - - 39 - 068D - DA8D - ARABIC LETTER DDAHAL - - - 3A - 068E - DA8E - ARABIC LETTER DUL - - - 3B - 068F - DA8F - ARABIC LETTER DAL WITH THREE DOTS ABOVE -DOWNWARDS - - - 3C - 0690 - DA90 - ARABIC LETTER DAL WITH FOUR DOTS ABOVE - - - 3D - 0691 - DA91 - ARABIC LETTER RREH - - - 3E - 0692 - DA92 - ARABIC LETTER REH WITH SMALL V - - - 3F - 0693 - DA93 - ARABIC LETTER REH WITH RING - - - 40 - 0694 - DA94 - ARABIC LETTER REH WITH DOT BELOW - - - 41 - 0695 - DA95 - ARABIC LETTER REH WITH SMALL V BELOW - - - 42 - 0696 - DA96 - ARABIC LETTER REH WITH DOT BELOW AND DOT -ABOVE - - - 43 - 0697 - DA97 - ARABIC LETTER REH WITH TWO DOTS ABOVE - - - 44 - 0698 - DA98 - ARABIC LETTER JEH - - - 45 - 0699 - DA99 - ARABIC LETTER REH WITH FOUR DOTS ABOVE - - - 46 - 069A - DA9A - ARABIC LETTER SEEN WITH DOT BELOW AND DOT -ABOVE - - - 47 - 069B - DA9B - ARABIC LETTER SEEN WITH THREE DOTS BELOW - - - 48 - 069C - DA9C - ARABIC LETTER SEEN WITH THREE DOTS BELOW AND -THREE DOTS ABOVE - - - 49 - 06FA - DBBA - ARABIC LETTER SHEEN WITH DOT BELOW - - - 4A - 069D - DA9D - ARABIC LETTER SAD WITH TWO DOTS BELOW - - - 4B - 069E - DA9E - ARABIC LETTER SAD WITH THREE DOTS ABOVE - - - 4C - 06FB - DBBB - ARABIC LETTER DAD WITH DOT BELOW - - - 4D - 069F - DA9F - ARABIC LETTER TAH WITH THREE DOTS ABOVE - - - 4E - 06A0 - DAA0 - ARABIC LETTER AIN WITH THREE DOTS ABOVE - - - 4F - 06FC - DBBC - ARABIC LETTER GHAIN WITH DOT BELOW - - - 50 - 06A1 - DAA1 - ARABIC LETTER DOTLESS FEH - - - 51 - 06A2 - DAA2 - ARABIC LETTER FEH WITH DOT MOVED BELOW - - - 52 - 06A3 - DAA3 - ARABIC LETTER FEH WITH DOT BELOW - - - 53 - 06A4 - DAA4 - ARABIC LETTER VEH - - - 54 - 06A5 - DAA5 - ARABIC LETTER FEH WITH THREE DOTS BELOW - - - 55 - 06A6 - DAA6 - ARABIC LETTER PEHEH - - - 56 - 06A7 - DAA7 - ARABIC LETTER QAF WITH DOT ABOVE - - - 57 - 06A8 - DAA8 - ARABIC LETTER QAF WITH THREE DOTS ABOVE - - - 58 - 06A9 - DAA9 - ARABIC LETTER KEHEH - - - 59 - 06AA - DAAA - ARABIC LETTER SWASH KAF - - - 5A - 06AB - DAAB - ARABIC LETTER KAF WITH RING - - - 5B - 06AC - DAAC - ARABIC LETTER KAF WITH DOT ABOVE - - - 5C - 06AD - DAAD - ARABIC LETTER NG - - - 5D - 06AE - DAAE - ARABIC LETTER KAF WITH THREE DOTS BELOW - - - 5E - 06AF - DAAF - ARABIC LETTER GAF - - - 5F - 06B0 - DAB0 - ARABIC LETTER GAF WITH RING - - - 60 - 06B1 - DAB1 - ARABIC LETTER NGOEH - - - 61 - 06B2 - DAB2 - ARABIC LETTER GAF WITH TWO DOTS BELOW - - - 62 - 06B3 - DAB3 - ARABIC LETTER GUEH - - - 63 - 06B4 - DAB4 - ARABIC LETTER GAF WITH THREE DOTS ABOVE - - - 64 - 06B5 - DAB5 - ARABIC LETTER LAM WITH SMALL V - - - 65 - 06B6 - DAB6 - ARABIC LETTER LAM WITH DOT ABOVE - - - 66 - 06B7 - DAB7 - ARABIC LETTER LAM WITH THREE DOTS ABOVE - - - 67 - 06B8 - DAB8 - ARABIC LETTER LAM WITH THREE DOTS BELOW - - - 68 - 06BA - DABA - ARABIC LETTER NOON GHUNNA - - - 69 - 06BB - DABB - ARABIC LETTER RNOON - - - 6A - 06BC - DABC - ARABIC LETTER NOON WITH RING - - - 6B - 06BD - DABD - ARABIC LETTER NOON WITH THREE DOTS ABOVE - - - 6C - 06B9 - DAB9 - ARABIC LETTER NOON WITH DOT BELOW - - - 6D - 06BE - DABE - ARABIC LETTER HEH DOACHASHMEE - - - 6E - 06C0 - DB80 - HEH WITH HAMZA ABOVE / ARABIC LETTER HEH WITH -YEH ABOVE - - - 6F - 06C4 - DB84 - ARABIC LETTER WAW WITH RING - - - 70 - 06C5 - DB85 - KYRGHYZ OE / ARABIC LETTER KIRGHIZ OE - - - 71 - 06C6 - DB86 - ARABIC LETTER OE - - - 72 - 06CA - DB8A - ARABIC LETTER WAW WITH TWO DOTS ABOVE - - - 73 - 06CB - DB8B - ARABIC LETTER VE - - - 74 - 06CD - DB8D - ARABIC LETTER YEH WITH TAIL - - - 75 - 06CE - DB8E - ARABIC LETTER YEH WITH SMALL V - - - 76 - 06D0 - DB90 - ARABIC LETTER E - - - 77 - 06D2 - DB92 - ARABIC LETTER YEH BARREE - - - 78 - 06D3 - DB93 - ARABIC LETTER YEH BARREE WITH HAMZA -ABOVE - - - true - 7D - 0306 - CC86 - SHORT E / COMBINING BREVE - - - true - 7E - 030C - CC8C - SHORT U / COMBINING CARON - - - - - The first column in this table contains the MARC-8 code (in hex) for - the character as coming from the G0 graphic set, the second column - contains the MARC-8 code (in hex) for the character as coming from the G1 - graphic set, the third column contains the UCS/Unicode 16-bit code (in - hex), the fourth column contains the UTF-8 code (in hex) for the UCS - characters, the fifth column contains a representation of the character (where possible), - the sixth column contains the MARC character name, followed - by the UCS name. If the MARC name is the same as or very similar to the - UCS name, only the UCS name is given. - - - true - 21 - 0300 - CC80 - COMBINING GRAVE ACCENT - - - true - 22 - 0301 - CC81 - COMBINING ACUTE ACCENT - - - true - 23 - 0308 - CC88 - COMBINING DIAERESIS - - - true - 24 - 0342 - CD82 - COMBINING GREEK PERISPOMENI / CIRCUMFLEX - - - true - 25 - 0313 - CC93 - COMBINING COMMA ABOVE / SMOOTH -BREATHING - - - true - 26 - 0314 - CC94 - COMBINING REVERSED COMMA ABOVE / ROUGH -BREATHING - - - true - 27 - 0345 - CD85 - COMBINING GREEK YPOGEGRAMMENI / IOTA -SUBSCRIPT - - - 30 - 00AB - C2AB - LEFT-POINTING DOUBLE ANGLE QUOTATION -MARK - - - 31 - 00BB - C2BB - RIGHT-POINTING DOUBLE ANGLE QUOTATION -MARK - - - 32 - 201C - E2809C - LEFT DOUBLE QUOTATION MARK - - - 33 - 201D - E2809D - RIGHT DOUBLE QUOTATION MARK - - - 34 - 0374 - CDB4 - GREEK NUMERAL SIGN / UPPER PRIME - - - 35 - 0375 - CDB5 - GREEK LOWER NUMERAL SIGN / LOWER PRIME - - - 3B - 0387 - CE87 - GREEK ANO TELEIA / RAISED DOT, GREEK -SEMICOLON - - - 3F - 037E - CDBE - GREEK QUESTION MARK - - - 41 - 0391 - CE91 - GREEK CAPITAL LETTER ALPHA - - - 42 - 0392 - CE92 - GREEK CAPITAL LETTER BETA - - - 44 - 0393 - CE93 - GREEK CAPITAL LETTER GAMMA - - - 45 - 0394 - CE94 - GREEK CAPITAL LETTER DELTA - - - 46 - 0395 - CE95 - GREEK CAPITAL LETTER EPSILON - - - 47 - 03DA - CF9A - GREEK LETTER STIGMA - - - 48 - 03DC - CF9C - GREEK LETTER DIGAMMA - - - 49 - 0396 - CE96 - GREEK CAPITAL LETTER ZETA - - - 4A - 0397 - CE97 - GREEK CAPITAL LETTER ETA - - - 4B - 0398 - CE98 - GREEK CAPITAL LETTER THETA - - - 4C - 0399 - CE99 - GREEK CAPITAL LETTER IOTA - - - 4D - 039A - CE9A - GREEK CAPITAL LETTER KAPPA - - - 4E - 039B - CE9B - GREEK CAPITAL LETTER LAMDA - - - 4F - 039C - CE9C - GREEK CAPITAL LETTER MU - - - 50 - 039D - CE9D - GREEK CAPITAL LETTER NU - - - 51 - 039E - CE9E - GREEK CAPITAL LETTER XI - - - 52 - 039F - CE9F - GREEK CAPITAL LETTER OMICRON - - - 53 - 03A0 - CEA0 - GREEK CAPITAL LETTER PI - - - 54 - 03DE - CF9E - GREEK LETTER KOPPA - - - 55 - 03A1 - CEA1 - GREEK CAPITAL LETTER RHO - - - 56 - 03A3 - CEA3 - GREEK CAPITAL LETTER SIGMA - - - 58 - 03A4 - CEA4 - GREEK CAPITAL LETTER TAU - - - 59 - 03A5 - CEA5 - GREEK CAPITAL LETTER UPSILON - - - 5A - 03A6 - CEA6 - GREEK CAPITAL LETTER PHI - - - 5B - 03A7 - CEA7 - GREEK CAPITAL LETTER CHI - - - 5C - 03A8 - CEA8 - GREEK CAPITAL LETTER PSI - - - 5D - 03A9 - CEA9 - GREEK CAPITAL LETTER OMEGA - - - 5E - 03E0 - CFA0 - GREEK LETTER SAMPI - - - 61 - 03B1 - CEB1 - GREEK SMALL LETTER ALPHA - - - 62 - 03B2 - CEB2 - GREEK SMALL LETTER BETA / SMALL LETTER BETA -BEGINNING OF WORD - - - 63 - 03D0 - CF90 - GREEK BETA SYMBOL / SMALL LETTER BETA MIDDLE OF -WORD - - - 64 - 03B3 - CEB3 - GREEK SMALL LETTER GAMMA - - - 65 - 03B4 - CEB4 - GREEK SMALL LETTER DELTA - - - 66 - 03B5 - CEB5 - GREEK SMALL LETTER EPSILON - - - 67 - 03DB - CF9B - GREEK SMALL LETTER STIGMA - - - 68 - 03DD - CF9D - GREEK SMALL LETTER DIGAMMA - - - 69 - 03B6 - CEB6 - GREEK SMALL LETTER ZETA - - - 6A - 03B7 - CEB7 - GREEK SMALL LETTER ETA - - - 6B - 03B8 - CEB8 - GREEK SMALL LETTER THETA - - - 6C - 03B9 - CEB9 - GREEK SMALL LETTER IOTA - - - 6D - 03BA - CEBA - GREEK SMALL LETTER KAPPA - - - 6E - 03BB - CEBB - GREEK SMALL LETTER LAMDA - - - 6F - 03BC - CEBC - GREEK SMALL LETTER MU - - - 70 - 03BD - CEBD - GREEK SMALL LETTER NU - - - 71 - 03BE - CEBE - GREEK SMALL LETTER XI - - - 72 - 03BF - CEBF - GREEK SMALL LETTER OMICRON - - - 73 - 03C0 - CF80 - GREEK SMALL LETTER PI - - - 74 - 03DF - CF9F - GREEK SMALL LETTER KOPPA - - - 75 - 03C1 - CF81 - GREEK SMALL LETTER RHO - - - 76 - 03C3 - CF83 - GREEK SMALL LETTER SIGMA - - - 77 - 03C2 - CF82 - GREEK SMALL LETTER FINAL SIGMA / SMALL LETTER -SIGMA END OF WORD - - - 78 - 03C4 - CF84 - GREEK SMALL LETTER TAU - - - 79 - 03C5 - CF85 - GREEK SMALL LETTER UPSILON - - - 7A - 03C6 - CF86 - GREEK SMALL LETTER PHI - - - 7B - 03C7 - CF87 - GREEK SMALL LETTER CHI - - - 7C - 03C8 - CF88 - GREEK SMALL LETTER PSI - - - 7D - 03C9 - CF89 - GREEK SMALL LETTER OMEGA - - - 7E - 03E1 - CFA1 - GREEK SMALL LETTER SAMPI - - - - - - - -

    This table contains 13,478 mappings of character encodings for - East Asian ideographs from the East Asian Coded Character set (ANSI/NISO - Z39.64, or "EACC", including 10 "Version J" additions that did not appear - in the published standard) to character encodings in the Universal - Character Set (UCS, ISO-IEC 10646)/Unicode. Character codes are given in - hexadecimal notation. Each character is presented on a separate row.

    -

    The first column contains the MARC-8 EACC 24-bit code (in hex), the - second column contains the corresponding UCS/Unicode 16-bit code (in hex), - the third column contains the UTF-8 code (in hex) for the UCS character, - the fourth column contains a representation of the character (where possible), - the fifth column - contains a character name or - description. Most East Asian ideographs are not given unique names in the - MARC-8 or UCS/Unicode.

    -

    The characters in this table are sorted in EACC character code - order.

    - - - 212F30 - 3007 - E38087 - East Asian ideograph (number zero) - - - 213021 - 4E00 - E4B880 - East Asian ideograph - - - 213022 - 4E01 - E4B881 - East Asian ideograph - - - 213023 - 4E03 - E4B883 - East Asian ideograph - - - 213024 - 4E09 - E4B889 - East Asian ideograph - - - 213025 - 4E0B - E4B88B - East Asian ideograph - - - 213026 - 4E0A - E4B88A - East Asian ideograph - - - 213027 - 4E08 - E4B888 - East Asian ideograph - - - 213029 - 4E10 - E4B890 - East Asian ideograph - - - 21302A - 4E0D - E4B88D - East Asian ideograph - - - 21302B - 4E14 - E4B894 - East Asian ideograph - - - 21302C - 4E19 - E4B899 - East Asian ideograph - - - 21302D - 4E16 - E4B896 - East Asian ideograph - - - 21302E - 4E15 - E4B895 - East Asian ideograph - - - 21302F - 4E18 - E4B898 - East Asian ideograph - - - 213030 - 4E22 - E4B8A2 - East Asian ideograph - - - 213031 - 4E1E - E4B89E - East Asian ideograph - - - 213032 - 4E26 - E4B8A6 - East Asian ideograph - - - 213034 - 4E2D - E4B8AD - East Asian ideograph - - - 213035 - 4E32 - E4B8B2 - East Asian ideograph - - - 213036 - 51E1 - E587A1 - East Asian ideograph - - - 213037 - 4E38 - E4B8B8 - East Asian ideograph - - - 213038 - 4E39 - E4B8B9 - East Asian ideograph - - - 213039 - 4E3B - E4B8BB - East Asian ideograph - - - 21303A - 4E43 - E4B983 - East Asian ideograph - - - 21303B - 4E45 - E4B985 - East Asian ideograph - - - 21303D - 4E4B - E4B98B - East Asian ideograph - - - 21303E - 5C39 - E5B0B9 - East Asian ideograph - - - 21303F - 4E4F - E4B98F - East Asian ideograph - - - 213040 - 4E4E - E4B98E - East Asian ideograph - - - 213041 - 4E4D - E4B98D - East Asian ideograph - - - 213042 - 4E52 - E4B992 - East Asian ideograph - - - 213043 - 4E53 - E4B993 - East Asian ideograph - - - 213044 - 4E56 - E4B996 - East Asian ideograph - - - 213045 - 4E58 - E4B998 - East Asian ideograph - - - 213046 - 4E59 - E4B999 - East Asian ideograph - - - 213047 - 4E5D - E4B99D - East Asian ideograph - - - 213048 - 4E5F - E4B99F - East Asian ideograph - - - 213049 - 4E5E - E4B99E - East Asian ideograph - - - 21304B - 4E73 - E4B9B3 - East Asian ideograph - - - 21304C - 4E7E - E4B9BE - East Asian ideograph - - - 21304D - 4E82 - E4BA82 - East Asian ideograph - - - 213050 - 4E8B - E4BA8B - East Asian ideograph - - - 213051 - 4E8C - E4BA8C - East Asian ideograph - - - 213052 - 4E8E - E4BA8E - East Asian ideograph - - - 213053 - 4E95 - E4BA95 - East Asian ideograph - - - 213054 - 4E94 - E4BA94 - East Asian ideograph - - - 213055 - 4E92 - E4BA92 - East Asian ideograph - - - 213057 - 4E99 - E4BA99 - East Asian ideograph (variant of EACC 4B3057) - - - 213058 - 4E9E - E4BA9E - East Asian ideograph - - - 213059 - 4E9B - E4BA9B - East Asian ideograph - - - 21305A - 4E9F - E4BA9F - East Asian ideograph - - - 21305B - 4EA1 - E4BAA1 - East Asian ideograph - - - 21305C - 4EA6 - E4BAA6 - East Asian ideograph - - - 21305D - 4EA5 - E4BAA5 - East Asian ideograph - - - 21305E - 4EA4 - E4BAA4 - East Asian ideograph - - - 21305F - 4EA8 - E4BAA8 - East Asian ideograph - - - 213060 - 4EAB - E4BAAB - East Asian ideograph - - - 213061 - 4EAC - E4BAAC - East Asian ideograph - - - 213062 - 4EAD - E4BAAD - East Asian ideograph - - - 213063 - 4EAE - E4BAAE - East Asian ideograph - - - 213064 - 4EBA - E4BABA - East Asian ideograph - - - 213065 - 4ECA - E4BB8A - East Asian ideograph - - - 213066 - 4EC1 - E4BB81 - East Asian ideograph - - - 213068 - 4EC3 - E4BB83 - East Asian ideograph - - - 213069 - 4EC4 - E4BB84 - East Asian ideograph - - - 21306B - 4ECD - E4BB8D - East Asian ideograph - - - 21306C - 4EC7 - E4BB87 - East Asian ideograph - - - 21306D - 4ECB - E4BB8B - East Asian ideograph - - - 21306E - 4EE4 - E4BBA4 - East Asian ideograph - - - 21306F - 4ED8 - E4BB98 - East Asian ideograph - - - 213070 - 4ED5 - E4BB95 - East Asian ideograph - - - 213071 - 4ED6 - E4BB96 - East Asian ideograph - - - 213072 - 4EDE - E4BB9E - East Asian ideograph - - - 213073 - 4EE3 - E4BBA3 - East Asian ideograph - - - 213074 - 4ED4 - E4BB94 - East Asian ideograph - - - 213075 - 4ED7 - E4BB97 - East Asian ideograph - - - 213076 - 4ED9 - E4BB99 - East Asian ideograph - - - 213077 - 4EE5 - E4BBA5 - East Asian ideograph - - - 213078 - 4EFF - E4BBBF - East Asian ideograph - - - 213079 - 4F09 - E4BC89 - East Asian ideograph - - - 21307C - 4EFB - E4BBBB - East Asian ideograph - - - 21307D - 4F0A - E4BC8A - East Asian ideograph - - - 21307E - 4F15 - E4BC95 - East Asian ideograph - - - 213121 - 4F11 - E4BC91 - East Asian ideograph - - - 213122 - 4F10 - E4BC90 - East Asian ideograph - - - 213123 - 4F0F - E4BC8F - East Asian ideograph - - - 213124 - 4EF2 - E4BBB2 - East Asian ideograph - - - 213125 - 4F01 - E4BC81 - East Asian ideograph - - - 213126 - 4EF3 - E4BBB3 - East Asian ideograph - - - 213127 - 4EF6 - E4BBB6 - East Asian ideograph - - - 213128 - 4EF0 - E4BBB0 - East Asian ideograph - - - 21312A - 4F4F - E4BD8F - East Asian ideograph - - - 21312B - 4F4D - E4BD8D - East Asian ideograph - - - 21312C - 4F34 - E4BCB4 - East Asian ideograph - - - 21312D - 4F47 - E4BD87 - East Asian ideograph - - - 21312E - 4F57 - E4BD97 - East Asian ideograph - - - 21312F - 4F3A - E4BCBA - East Asian ideograph - - - 213130 - 4F5E - E4BD9E - East Asian ideograph - - - 213132 - 4F5B - E4BD9B - East Asian ideograph - - - 213133 - 4F55 - E4BD95 - East Asian ideograph - - - 213134 - 4F30 - E4BCB0 - East Asian ideograph - - - 213135 - 4F50 - E4BD90 - East Asian ideograph - - - 213136 - 4F51 - E4BD91 - East Asian ideograph - - - 213137 - 4F3D - E4BCBD - East Asian ideograph - - - 213138 - 4F48 - E4BD88 - East Asian ideograph - - - 213139 - 4F46 - E4BD86 - East Asian ideograph - - - 21313A - 4F38 - E4BCB8 - East Asian ideograph - - - 21313B - 4F43 - E4BD83 - East Asian ideograph - - - 21313C - 4F54 - E4BD94 - East Asian ideograph - - - 21313D - 4F3C - E4BCBC - East Asian ideograph - - - 21313E - 4F63 - E4BDA3 - East Asian ideograph - - - 21313F - 4F5C - E4BD9C - East Asian ideograph - - - 213140 - 4F60 - E4BDA0 - East Asian ideograph - - - 213141 - 4F2F - E4BCAF - East Asian ideograph - - - 213142 - 4F4E - E4BD8E - East Asian ideograph - - - 213143 - 4F5D - E4BD9D - East Asian ideograph - - - 213144 - 4F36 - E4BCB6 - East Asian ideograph - - - 213145 - 4F9D - E4BE9D - East Asian ideograph - - - 213146 - 4F6F - E4BDAF - East Asian ideograph - - - 213147 - 4F75 - E4BDB5 - East Asian ideograph - - - 213148 - 4F8D - E4BE8D - East Asian ideograph - - - 213149 - 4F73 - E4BDB3 - East Asian ideograph - - - 21314A - 4F7F - E4BDBF - East Asian ideograph - - - 21314B - 4F9B - E4BE9B - East Asian ideograph - - - 21314C - 4F86 - E4BE86 - East Asian ideograph - - - 21314D - 4F6C - E4BDAC - East Asian ideograph - - - 21314E - 4F8B - E4BE8B - East Asian ideograph - - - 21314F - 4F96 - E4BE96 - East Asian ideograph - - - 213151 - 4F83 - E4BE83 - East Asian ideograph - - - 213152 - 4F7B - E4BDBB - East Asian ideograph - - - 213153 - 4F88 - E4BE88 - East Asian ideograph - - - 213154 - 4F69 - E4BDA9 - East Asian ideograph - - - 213155 - 4F8F - E4BE8F - East Asian ideograph - - - 213156 - 4F7E - E4BDBE - East Asian ideograph - - - 213157 - 4FE1 - E4BFA1 - East Asian ideograph - - - 213158 - 4FD1 - E4BF91 - East Asian ideograph - - - 213159 - 4FB5 - E4BEB5 - East Asian ideograph - - - 21315A - 4FAF - E4BEAF - East Asian ideograph - - - 21315B - 4FBF - E4BEBF - East Asian ideograph - - - 21315C - 4FDE - E4BF9E - East Asian ideograph - - - 21315D - 4FE0 - E4BFA0 - East Asian ideograph - - - 21315E - 4FCF - E4BF8F - East Asian ideograph - - - 21315F - 4FB6 - E4BEB6 - East Asian ideograph - - - 213160 - 4FDA - E4BF9A - East Asian ideograph - - - 213161 - 4FDD - E4BF9D - East Asian ideograph - - - 213162 - 4FC3 - E4BF83 - East Asian ideograph - - - 213163 - 4FD8 - E4BF98 - East Asian ideograph - - - 213164 - 4FDF - E4BF9F - East Asian ideograph - - - 213165 - 4FCA - E4BF8A - East Asian ideograph - - - 213166 - 4FAE - E4BEAE - East Asian ideograph - - - 213167 - 4FD0 - E4BF90 - East Asian ideograph - - - 213168 - 4FC4 - E4BF84 - East Asian ideograph - - - 213169 - 4FC2 - E4BF82 - East Asian ideograph - - - 21316A - 4FCE - E4BF8E - East Asian ideograph - - - 21316B - 4FD7 - E4BF97 - East Asian ideograph - - - 21316C - 5009 - E58089 - East Asian ideograph - - - 21316E - 500D - E5808D - East Asian ideograph - - - 21316F - 4FEF - E4BFAF - East Asian ideograph - - - 213170 - 5026 - E580A6 - East Asian ideograph - - - 213171 - 500C - E5808C - East Asian ideograph - - - 213172 - 5025 - E580A5 - East Asian ideograph - - - 213173 - 5011 - E58091 - East Asian ideograph - - - 213174 - 4FF8 - E4BFB8 - East Asian ideograph - - - 213175 - 5028 - E580A8 - East Asian ideograph - - - 213176 - 5014 - E58094 - East Asian ideograph - - - 213177 - 5016 - E58096 - East Asian ideograph - - - 213178 - 5029 - E580A9 - East Asian ideograph - - - 213179 - 5006 - E58086 - East Asian ideograph - - - 21317B - 5012 - E58092 - East Asian ideograph - - - 21317C - 503C - E580BC - East Asian ideograph - - - 21317D - 501A - E5809A - East Asian ideograph - - - 21317E - 4FFA - E4BFBA - East Asian ideograph - - - 213221 - 5018 - E58098 - East Asian ideograph - - - 213222 - 4FF1 - E4BFB1 - East Asian ideograph - - - 213223 - 5021 - E580A1 - East Asian ideograph - - - 213224 - 500B - E5808B - East Asian ideograph - - - 213225 - 5019 - E58099 - East Asian ideograph - - - 213226 - 5000 - E58080 - East Asian ideograph - - - 213227 - 4FEE - E4BFAE - East Asian ideograph - - - 213228 - 4FF3 - E4BFB3 - East Asian ideograph - - - 213229 - 502D - E580AD - East Asian ideograph - - - 21322A - 5003 - E58083 - East Asian ideograph - - - 21322B - 4FFE - E4BFBE - East Asian ideograph - - - 21322C - 502A - E580AA - East Asian ideograph - - - 21322D - 502B - E580AB - East Asian ideograph - - - 21322E - 505C - E5819C - East Asian ideograph - - - 21322F - 504F - E5818F - East Asian ideograph - - - 213230 - 5065 - E581A5 - East Asian ideograph - - - 213231 - 5047 - E58187 - East Asian ideograph - - - 213232 - 505A - E5819A - East Asian ideograph - - - 213233 - 5049 - E58189 - East Asian ideograph - - - 213234 - 5043 - E58183 - East Asian ideograph - - - 213235 - 5074 - E581B4 - East Asian ideograph - - - 213236 - 5076 - E581B6 - East Asian ideograph - - - 213237 - 504E - E5818E - East Asian ideograph - - - 213238 - 5075 - E581B5 - East Asian ideograph - - - 213239 - 504C - E5818C - East Asian ideograph - - - 21323A - 5055 - E58195 - East Asian ideograph - - - 21323B - 500F - E5808F - East Asian ideograph - - - 21323C - 5077 - E581B7 - East Asian ideograph - - - 21323D - 508D - E5828D - East Asian ideograph - - - 21323E - 50A2 - E582A2 - East Asian ideograph - - - 21323F - 5085 - E58285 - East Asian ideograph - - - 213240 - 5099 - E58299 - East Asian ideograph - - - 213241 - 5091 - E58291 - East Asian ideograph - - - 213242 - 5080 - E58280 - East Asian ideograph - - - 213243 - 5096 - E58296 - East Asian ideograph - - - 213244 - 5098 - E58298 - East Asian ideograph - - - 213245 - 50AD - E582AD - East Asian ideograph - - - 213246 - 50B3 - E582B3 - East Asian ideograph - - - 213247 - 50B5 - E582B5 - East Asian ideograph - - - 213248 - 50B2 - E582B2 - East Asian ideograph - - - 213249 - 50C5 - E58385 - East Asian ideograph - - - 21324A - 50BE - E582BE - East Asian ideograph - - - 21324B - 50AC - E582AC - East Asian ideograph - - - 21324C - 50B7 - E582B7 - East Asian ideograph - - - 21324D - 50AF - E582AF - East Asian ideograph - - - 21324E - 50E7 - E583A7 - East Asian ideograph - - - 21324F - 50EE - E583AE - East Asian ideograph - - - 213250 - 50F1 - E583B1 - East Asian ideograph - - - 213251 - 50E5 - E583A5 - East Asian ideograph - - - 213252 - 50D6 - E58396 - East Asian ideograph - - - 213253 - 50ED - E583AD - East Asian ideograph - - - 213254 - 50DA - E5839A - East Asian ideograph - - - 213255 - 50D5 - E58395 - East Asian ideograph - - - 213256 - 507D - E581BD - East Asian ideograph - - - 213257 - 50CF - E5838F - East Asian ideograph - - - 213258 - 50D1 - E58391 - East Asian ideograph - - - 213259 - 5100 - E58480 - East Asian ideograph - - - 21325A - 5104 - E58484 - East Asian ideograph - - - 21325B - 50FB - E583BB - East Asian ideograph - - - 21325C - 50F5 - E583B5 - East Asian ideograph - - - 21325D - 50F9 - E583B9 - East Asian ideograph - - - 21325E - 5102 - E58482 - East Asian ideograph - - - 21325F - 510D - E5848D - East Asian ideograph - - - 213260 - 5108 - E58488 - East Asian ideograph - - - 213261 - 5109 - E58489 - East Asian ideograph - - - 213262 - 5110 - E58490 - East Asian ideograph - - - 213263 - 5118 - E58498 - East Asian ideograph - - - 213264 - 5112 - E58492 - East Asian ideograph - - - 213265 - 5114 - E58494 - East Asian ideograph - - - 213266 - 512A - E584AA - East Asian ideograph - - - 213267 - 511F - E5849F - East Asian ideograph - - - 213268 - 5121 - E584A1 - East Asian ideograph - - - 213269 - 5132 - E584B2 - East Asian ideograph - - - 21326A - 5137 - E584B7 - East Asian ideograph - - - 21326B - 513C - E584BC - East Asian ideograph - - - 21326C - 5140 - E58580 - East Asian ideograph - - - 21326D - 5143 - E58583 - East Asian ideograph - - - 21326E - 5141 - E58581 - East Asian ideograph - - - 21326F - 5145 - E58585 - East Asian ideograph - - - 213270 - 5144 - E58584 - East Asian ideograph - - - 213271 - 5146 - E58586 - East Asian ideograph - - - 213272 - 5149 - E58589 - East Asian ideograph - - - 213273 - 5147 - E58587 - East Asian ideograph - - - 213274 - 5148 - E58588 - East Asian ideograph - - - 213275 - 514C - E5858C - East Asian ideograph - - - 213277 - 514D - E5858D - East Asian ideograph - - - 213278 - 5155 - E58595 - East Asian ideograph - - - 213279 - 5154 - E58594 - East Asian ideograph - - - 21327A - 5152 - E58592 - East Asian ideograph - - - 21327B - 5157 - E58597 - East Asian ideograph - - - 21327C - 515C - E5859C - East Asian ideograph - - - 21327D - 5162 - E585A2 - East Asian ideograph - - - 21327E - 5165 - E585A5 - East Asian ideograph - - - 213321 - 5167 - E585A7 - East Asian ideograph - - - 213322 - 5168 - E585A8 - East Asian ideograph - - - 213323 - 5169 - E585A9 - East Asian ideograph - - - 213324 - 516B - E585AB - East Asian ideograph - - - 213325 - 516D - E585AD - East Asian ideograph - - - 213326 - 516E - E585AE - East Asian ideograph - - - 213327 - 516C - E585AC - East Asian ideograph - - - 213328 - 5171 - E585B1 - East Asian ideograph - - - 213329 - 5175 - E585B5 - East Asian ideograph - - - 21332A - 5176 - E585B6 - East Asian ideograph - - - 21332B - 5177 - E585B7 - East Asian ideograph - - - 21332C - 5178 - E585B8 - East Asian ideograph - - - 21332D - 517C - E585BC - East Asian ideograph - - - 21332E - 5180 - E58680 - East Asian ideograph - - - 21332F - 5189 - E58689 - East Asian ideograph - - - 213330 - 518C - E5868C - East Asian ideograph - - - 213331 - 518D - E5868D - East Asian ideograph - - - 213332 - 5192 - E58692 - East Asian ideograph - - - 213333 - 5191 - E58691 - East Asian ideograph - - - 213334 - 5195 - E58695 - East Asian ideograph - - - 213335 - 6700 - E69C80 - East Asian ideograph - - - 213336 - 5197 - E58697 - East Asian ideograph - - - 213337 - 51A0 - E586A0 - East Asian ideograph - - - 213339 - 51A5 - E586A5 - East Asian ideograph - - - 21333C - 51B0 - E586B0 - East Asian ideograph - - - 21333D - 51B6 - E586B6 - East Asian ideograph - - - 21333E - 51B7 - E586B7 - East Asian ideograph - - - 213340 - 51CD - E5878D - East Asian ideograph - - - 213341 - 51CC - E5878C - East Asian ideograph - - - 213344 - 51DC - E5879C - East Asian ideograph - - - 213345 - 51DD - E5879D - East Asian ideograph - - - 213347 - 51F0 - E587B0 - East Asian ideograph - - - 213348 - 51F1 - E587B1 - East Asian ideograph - - - 213349 - 51F3 - E587B3 - East Asian ideograph - - - 21334B - 51FA - E587BA - East Asian ideograph - - - 21334C - 51F9 - E587B9 - East Asian ideograph - - - 21334D - 51F8 - E587B8 - East Asian ideograph - - - 21334E - 51FD - E587BD - East Asian ideograph - - - 21334F - 5200 - E58880 - East Asian ideograph - - - 213350 - 5201 - E58881 - East Asian ideograph - - - 213351 - 5203 - E58883 - East Asian ideograph - - - 213352 - 5207 - E58887 - East Asian ideograph - - - 213353 - 5206 - E58886 - East Asian ideograph - - - 213354 - 5208 - E58888 - East Asian ideograph - - - 213355 - 520A - E5888A - East Asian ideograph - - - 213356 - 5211 - E58891 - East Asian ideograph - - - 213357 - 5217 - E58897 - East Asian ideograph - - - 213359 - 520E - E5888E - East Asian ideograph - - - 21335A - 5224 - E588A4 - East Asian ideograph - - - 21335B - 5225 - E588A5 - East Asian ideograph - - - 21335C - 5220 - E588A0 - East Asian ideograph - - - 21335D - 5228 - E588A8 - East Asian ideograph - - - 21335E - 5229 - E588A9 - East Asian ideograph - - - 21335F - 5238 - E588B8 - East Asian ideograph - - - 213360 - 523B - E588BB - East Asian ideograph - - - 213361 - 5237 - E588B7 - East Asian ideograph - - - 213362 - 5230 - E588B0 - East Asian ideograph - - - 213363 - 523A - E588BA - East Asian ideograph - - - 213366 - 5241 - E58981 - East Asian ideograph - - - 213367 - 5239 - E588B9 - East Asian ideograph - - - 213368 - 5243 - E58983 - East Asian ideograph - - - 213369 - 524D - E5898D - East Asian ideograph - - - 21336A - 524C - E5898C - East Asian ideograph - - - 21336B - 524B - E5898B - East Asian ideograph - - - 21336C - 524A - E5898A - East Asian ideograph - - - 21336D - 5247 - E58987 - East Asian ideograph - - - 21336E - 525C - E5899C - East Asian ideograph - - - 21336F - 5256 - E58996 - East Asian ideograph - - - 213370 - 525B - E5899B - East Asian ideograph - - - 213371 - 5254 - E58994 - East Asian ideograph - - - 213372 - 525D - E5899D - East Asian ideograph - - - 213373 - 526A - E589AA - East Asian ideograph - - - 213374 - 526F - E589AF - East Asian ideograph - - - 213375 - 5272 - E589B2 - East Asian ideograph - - - 213376 - 5274 - E589B4 - East Asian ideograph - - - 213377 - 5269 - E589A9 - East Asian ideograph - - - 213378 - 5275 - E589B5 - East Asian ideograph - - - 21337A - 527D - E589BD - East Asian ideograph - - - 21337B - 527F - E589BF - East Asian ideograph - - - 21337C - 5283 - E58A83 - East Asian ideograph - - - 21337D - 5288 - E58A88 - East Asian ideograph - - - 21337E - 5287 - E58A87 - East Asian ideograph - - - 213421 - 528D - E58A8D - East Asian ideograph - - - 213422 - 5289 - E58A89 - East Asian ideograph - - - 213423 - 5291 - E58A91 - East Asian ideograph - - - 213424 - 529B - E58A9B - East Asian ideograph - - - 213425 - 529F - E58A9F - East Asian ideograph - - - 213426 - 52A0 - E58AA0 - East Asian ideograph - - - 213427 - 52A3 - E58AA3 - East Asian ideograph - - - 213428 - 52AB - E58AAB - East Asian ideograph - - - 213429 - 52A9 - E58AA9 - East Asian ideograph - - - 21342A - 52AC - E58AAC - East Asian ideograph - - - 21342B - 52AA - E58AAA - East Asian ideograph - - - 21342C - 52BE - E58ABE - East Asian ideograph - - - 21342D - 52C7 - E58B87 - East Asian ideograph - - - 21342E - 52C3 - E58B83 - East Asian ideograph - - - 21342F - 52C1 - E58B81 - East Asian ideograph - - - 213430 - 52C9 - E58B89 - East Asian ideograph - - - 213431 - 52D8 - E58B98 - East Asian ideograph - - - 213432 - 52D2 - E58B92 - East Asian ideograph - - - 213433 - 52D9 - E58B99 - East Asian ideograph - - - 213434 - 52D5 - E58B95 - East Asian ideograph - - - 213435 - 52DE - E58B9E - East Asian ideograph - - - 213436 - 52DB - E58B9B - East Asian ideograph - - - 213437 - 52DD - E58B9D - East Asian ideograph - - - 213438 - 52E2 - E58BA2 - East Asian ideograph - - - 213439 - 52E4 - E58BA4 - East Asian ideograph - - - 21343A - 52DF - E58B9F - East Asian ideograph - - - 21343C - 52F5 - E58BB5 - East Asian ideograph - - - 21343D - 52F8 - E58BB8 - East Asian ideograph - - - 21343E - 52FB - E58BBB - East Asian ideograph - - - 213440 - 52FF - E58BBF - East Asian ideograph - - - 213441 - 5305 - E58C85 - East Asian ideograph - - - 213442 - 5306 - E58C86 - East Asian ideograph - - - 213443 - 5308 - E58C88 - East Asian ideograph - - - 213444 - 530D - E58C8D - East Asian ideograph - - - 213445 - 5310 - E58C90 - East Asian ideograph - - - 213446 - 530F - E58C8F - East Asian ideograph - - - 213447 - 5315 - E58C95 - East Asian ideograph - - - 213448 - 5316 - E58C96 - East Asian ideograph - - - 213449 - 5317 - E58C97 - East Asian ideograph - - - 21344A - 5319 - E58C99 - East Asian ideograph - - - 21344B - 53F5 - E58FB5 - East Asian ideograph - - - 21344C - 531D - E58C9D - East Asian ideograph - - - 21344D - 5321 - E58CA1 - East Asian ideograph - - - 21344E - 5320 - E58CA0 - East Asian ideograph - - - 21344F - 5323 - E58CA3 - East Asian ideograph - - - 213450 - 532A - E58CAA - East Asian ideograph - - - 213451 - 532F - E58CAF - East Asian ideograph - - - 213452 - 5331 - E58CB1 - East Asian ideograph - - - 213453 - 5339 - E58CB9 - East Asian ideograph - - - 213454 - 533E - E58CBE - East Asian ideograph - - - 213455 - 5340 - E58D80 - East Asian ideograph - - - 213456 - 533F - E58CBF - East Asian ideograph - - - 213457 - 5341 - E58D81 - East Asian ideograph - - - 213458 - 5343 - E58D83 - East Asian ideograph - - - 213459 - 5345 - E58D85 - East Asian ideograph - - - 21345A - 5348 - E58D88 - East Asian ideograph - - - 21345B - 5347 - E58D87 - East Asian ideograph - - - 21345C - 534A - E58D8A - East Asian ideograph - - - 21345D - 5349 - E58D89 - East Asian ideograph (variant of EACC 2D345D) - - - 21345F - 5352 - E58D92 - East Asian ideograph - - - 213460 - 5354 - E58D94 - East Asian ideograph - - - 213461 - 5353 - E58D93 - East Asian ideograph - - - 213462 - 5351 - E58D91 - East Asian ideograph - - - 213463 - 5357 - E58D97 - East Asian ideograph - - - 213464 - 535A - E58D9A - East Asian ideograph - - - 213466 - 535E - E58D9E - East Asian ideograph - - - 213467 - 5361 - E58DA1 - East Asian ideograph - - - 213469 - 5366 - E58DA6 - East Asian ideograph - - - 21346A - 536F - E58DAF - East Asian ideograph - - - 21346B - 536E - E58DAE - East Asian ideograph - - - 21346C - 5370 - E58DB0 - East Asian ideograph - - - 21346D - 5371 - E58DB1 - East Asian ideograph - - - 21346E - 537D - E58DBD - East Asian ideograph - - - 21346F - 5375 - E58DB5 - East Asian ideograph - - - 213471 - 5378 - E58DB8 - East Asian ideograph - - - 213473 - 537B - E58DBB - East Asian ideograph - - - 213474 - 537F - E58DBF - East Asian ideograph - - - 213475 - 5384 - E58E84 - East Asian ideograph - - - 213476 - 539A - E58E9A - East Asian ideograph - - - 213477 - 539D - E58E9D - East Asian ideograph - - - 213478 - 539F - E58E9F - East Asian ideograph - - - 213479 - 53A5 - E58EA5 - East Asian ideograph - - - 21347A - 53AD - E58EAD - East Asian ideograph - - - 21347B - 53B2 - E58EB2 - East Asian ideograph - - - 21347C - 53BB - E58EBB - East Asian ideograph - - - 21347D - 53C3 - E58F83 - East Asian ideograph - - - 21347E - 53C8 - E58F88 - East Asian ideograph - - - 213521 - 53C9 - E58F89 - East Asian ideograph - - - 213522 - 53CB - E58F8B - East Asian ideograph - - - 213523 - 53CA - E58F8A - East Asian ideograph - - - 213524 - 53CD - E58F8D - East Asian ideograph - - - 213525 - 53D6 - E58F96 - East Asian ideograph - - - 213526 - 53D4 - E58F94 - East Asian ideograph - - - 213527 - 53D7 - E58F97 - East Asian ideograph - - - 213528 - 53DB - E58F9B - East Asian ideograph - - - 213529 - 53DF - E58F9F - East Asian ideograph - - - 21352A - 66FC - E69BBC - East Asian ideograph - - - 21352B - 53E2 - E58FA2 - East Asian ideograph - - - 21352C - 53E3 - E58FA3 - East Asian ideograph - - - 21352D - 53F8 - E58FB8 - East Asian ideograph - - - 21352E - 53E4 - E58FA4 - East Asian ideograph - - - 21352F - 53EE - E58FAE - East Asian ideograph - - - 213530 - 53EF - E58FAF - East Asian ideograph - - - 213531 - 53E9 - E58FA9 - East Asian ideograph - - - 213532 - 53F3 - E58FB3 - East Asian ideograph - - - 213533 - 53FC - E58FBC - East Asian ideograph - - - 213534 - 53E8 - E58FA8 - East Asian ideograph - - - 213535 - 53E6 - E58FA6 - East Asian ideograph - - - 213536 - 53EC - E58FAC - East Asian ideograph - - - 213537 - 53EB - E58FAB - East Asian ideograph - - - 213538 - 53F0 - E58FB0 - East Asian ideograph (duplicate simplified) - - - 213539 - 53E5 - E58FA5 - East Asian ideograph - - - 21353A - 53F1 - E58FB1 - East Asian ideograph - - - 21353B - 53ED - E58FAD - East Asian ideograph - - - 21353C - 53EA - E58FAA - East Asian ideograph - - - 21353D - 53F2 - E58FB2 - East Asian ideograph - - - 21353F - 540B - E5908B - East Asian ideograph - - - 213540 - 5409 - E59089 - East Asian ideograph - - - 213541 - 5410 - E59090 - East Asian ideograph - - - 213542 - 540F - E5908F - East Asian ideograph - - - 213543 - 540C - E5908C - East Asian ideograph - - - 213544 - 540A - E5908A - East Asian ideograph - - - 213545 - 540D - E5908D - East Asian ideograph - - - 213546 - 5404 - E59084 - East Asian ideograph - - - 213547 - 5403 - E59083 - East Asian ideograph - - - 213548 - 5412 - E59092 - East Asian ideograph - - - 21354A - 5406 - E59086 - East Asian ideograph - - - 21354D - 542D - E590AD - East Asian ideograph - - - 21354E - 541D - E5909D - East Asian ideograph - - - 21354F - 541E - E5909E - East Asian ideograph - - - 213550 - 541B - E5909B - East Asian ideograph - - - 213551 - 544E - E5918E - East Asian ideograph - - - 213552 - 543E - E590BE - East Asian ideograph - - - 213553 - 5427 - E590A7 - East Asian ideograph - - - 213554 - 5440 - E59180 - East Asian ideograph - - - 213555 - 5431 - E590B1 - East Asian ideograph - - - 213556 - 5446 - E59186 - East Asian ideograph - - - 213557 - 543C - E590BC - East Asian ideograph - - - 213558 - 5443 - E59183 - East Asian ideograph - - - 213559 - 5426 - E590A6 - East Asian ideograph - - - 21355A - 5420 - E590A0 - East Asian ideograph - - - 21355B - 5436 - E590B6 - East Asian ideograph - - - 21355C - 5433 - E590B3 - East Asian ideograph - - - 21355D - 5435 - E590B5 - East Asian ideograph - - - 21355E - 542E - E590AE - East Asian ideograph - - - 21355F - 544A - E5918A - East Asian ideograph - - - 213560 - 5448 - E59188 - East Asian ideograph - - - 213561 - 543B - E590BB - East Asian ideograph - - - 213562 - 5438 - E590B8 - East Asian ideograph - - - 213563 - 5439 - E590B9 - East Asian ideograph - - - 213564 - 5442 - E59182 - East Asian ideograph - - - 213565 - 542B - E590AB - East Asian ideograph - - - 213566 - 541F - E5909F - East Asian ideograph - - - 213567 - 5429 - E590A9 - East Asian ideograph - - - 213568 - 5473 - E591B3 - East Asian ideograph - - - 213569 - 5462 - E591A2 - East Asian ideograph - - - 21356A - 5475 - E591B5 - East Asian ideograph - - - 21356B - 5495 - E59295 - East Asian ideograph - - - 21356C - 5478 - E591B8 - East Asian ideograph - - - 21356D - 5496 - E59296 - East Asian ideograph - - - 21356E - 5477 - E591B7 - East Asian ideograph - - - 21356F - 547B - E591BB - East Asian ideograph - - - 213571 - 5492 - E59292 - East Asian ideograph - - - 213572 - 5484 - E59284 - East Asian ideograph - - - 213573 - 547C - E591BC - East Asian ideograph - - - 213574 - 5468 - E591A8 - East Asian ideograph - - - 213575 - 5486 - E59286 - East Asian ideograph - - - 213576 - 548B - E5928B - East Asian ideograph - - - 213577 - 548C - E5928C - East Asian ideograph - - - 213578 - 5490 - E59290 - East Asian ideograph - - - 213579 - 547D - E591BD - East Asian ideograph - - - 21357A - 5476 - E591B6 - East Asian ideograph - - - 21357B - 5471 - E591B1 - East Asian ideograph - - - 21357C - 549A - E5929A - East Asian ideograph - - - 21357D - 548E - E5928E - East Asian ideograph - - - 21357E - 54A9 - E592A9 - East Asian ideograph - - - 213621 - 54AA - E592AA - East Asian ideograph - - - 213622 - 54A8 - E592A8 - East Asian ideograph - - - 213623 - 54AC - E592AC - East Asian ideograph - - - 213624 - 54C0 - E59380 - East Asian ideograph - - - 213625 - 54B3 - E592B3 - East Asian ideograph - - - 213626 - 54A6 - E592A6 - East Asian ideograph - - - 213627 - 54AB - E592AB - East Asian ideograph - - - 213628 - 54C7 - E59387 - East Asian ideograph - - - 213629 - 54C9 - E59389 - East Asian ideograph - - - 21362A - 54C4 - E59384 - East Asian ideograph - - - 21362B - 54C2 - E59382 - East Asian ideograph - - - 21362D - 54C1 - E59381 - East Asian ideograph - - - 21362F - 54CE - E5938E - East Asian ideograph - - - 213630 - 54B1 - E592B1 - East Asian ideograph - - - 213631 - 54BB - E592BB - East Asian ideograph - - - 213632 - 54AF - E592AF - East Asian ideograph - - - 213633 - 54C8 - E59388 - East Asian ideograph - - - 213634 - 5501 - E59481 - East Asian ideograph - - - 213635 - 54FC - E593BC - East Asian ideograph - - - 213636 - 5510 - E59490 - East Asian ideograph - - - 213637 - 54EA - E593AA - East Asian ideograph - - - 213638 - 5514 - E59494 - East Asian ideograph - - - 213639 - 54FA - E593BA - East Asian ideograph - - - 21363A - 54E5 - E593A5 - East Asian ideograph - - - 21363B - 54EE - E593AE - East Asian ideograph - - - 21363C - 54F2 - E593B2 - East Asian ideograph - - - 21363D - 54E8 - E593A8 - East Asian ideograph - - - 21363E - 54E1 - E593A1 - East Asian ideograph - - - 21363F - 54E9 - E593A9 - East Asian ideograph - - - 213640 - 54ED - E593AD - East Asian ideograph - - - 213641 - 5506 - E59486 - East Asian ideograph - - - 213642 - 5509 - E59489 - East Asian ideograph - - - 213643 - 54E6 - E593A6 - East Asian ideograph - - - 213644 - 5556 - E59596 - East Asian ideograph - - - 213645 - 5533 - E594B3 - East Asian ideograph - - - 213646 - 5546 - E59586 - East Asian ideograph - - - 213647 - 5537 - E594B7 - East Asian ideograph (Version J extension) - - - 213648 - 554F - E5958F - East Asian ideograph - - - 213649 - 555E - E5959E - East Asian ideograph - - - 21364A - 5566 - E595A6 - East Asian ideograph - - - 21364B - 556A - E595AA - East Asian ideograph - - - 21364C - 554A - E5958A - East Asian ideograph - - - 21364D - 5544 - E59584 - East Asian ideograph - - - 21364E - 555C - E5959C - East Asian ideograph - - - 21364F - 5531 - E594B1 - East Asian ideograph - - - 213650 - 5543 - E59583 - East Asian ideograph - - - 213651 - 552C - E594AC - East Asian ideograph - - - 213652 - 5561 - E595A1 - East Asian ideograph - - - 213653 - 553E - E594BE - East Asian ideograph - - - 213654 - 5563 - E595A3 - East Asian ideograph - - - 213655 - 5555 - E59595 - East Asian ideograph - - - 213656 - 552F - E594AF - East Asian ideograph - - - 213657 - 552E - E594AE - East Asian ideograph - - - 213658 - 5564 - E595A4 - East Asian ideograph - - - 213659 - 5538 - E594B8 - East Asian ideograph - - - 21365A - 55A7 - E596A7 - East Asian ideograph - - - 21365B - 5580 - E59680 - East Asian ideograph - - - 21365C - 557B - E595BB - East Asian ideograph - - - 21365D - 557C - E595BC - East Asian ideograph - - - 21365E - 5527 - E594A7 - East Asian ideograph - - - 21365F - 5594 - E59694 - East Asian ideograph - - - 213660 - 5587 - E59687 - East Asian ideograph - - - 213661 - 559C - E5969C - East Asian ideograph - - - 213662 - 558B - E5968B - East Asian ideograph - - - 213663 - 55AA - E596AA - East Asian ideograph - - - 213664 - 55B3 - E596B3 - East Asian ideograph - - - 213665 - 558A - E5968A - East Asian ideograph - - - 213666 - 5583 - E59683 - East Asian ideograph - - - 213667 - 55B1 - E596B1 - East Asian ideograph - - - 213668 - 55AE - E596AE - East Asian ideograph - - - 213669 - 5582 - E59682 - East Asian ideograph - - - 21366A - 559F - E5969F - East Asian ideograph - - - 21366B - 559D - E5969D - East Asian ideograph - - - 21366C - 5598 - E59698 - East Asian ideograph - - - 21366D - 559A - E5969A - East Asian ideograph - - - 21366E - 557E - E595BE - East Asian ideograph - - - 21366F - 55AC - E596AC - East Asian ideograph - - - 213670 - 5589 - E59689 - East Asian ideograph - - - 213671 - 55B2 - E596B2 - East Asian ideograph - - - 213672 - 55BB - E596BB - East Asian ideograph - - - 213673 - 55E8 - E597A8 - East Asian ideograph - - - 213674 - 55DF - E5979F - East Asian ideograph - - - 213675 - 55D1 - E59791 - East Asian ideograph - - - 213676 - 55DC - E5979C - East Asian ideograph - - - 213677 - 55E6 - E597A6 - East Asian ideograph - - - 213678 - 55C7 - E59787 - East Asian ideograph - - - 213679 - 55D3 - E59793 - East Asian ideograph - - - 21367A - 55CE - E5978E - East Asian ideograph - - - 21367B - 55E3 - E597A3 - East Asian ideograph - - - 21367C - 55EF - E597AF - East Asian ideograph - - - 21367D - 55E4 - E597A4 - East Asian ideograph - - - 21367E - 55C5 - E59785 - East Asian ideograph - - - 213721 - 55DA - E5979A - East Asian ideograph - - - 213722 - 55C6 - E59786 - East Asian ideograph - - - 213723 - 55E1 - E597A1 - East Asian ideograph - - - 213724 - 5600 - E59880 - East Asian ideograph - - - 213725 - 561B - E5989B - East Asian ideograph - - - 213726 - 55FE - E597BE - East Asian ideograph - - - 213727 - 5616 - E59896 - East Asian ideograph - - - 213728 - 55F7 - E597B7 - East Asian ideograph - - - 213729 - 5608 - E59888 - East Asian ideograph - - - 21372A - 561F - E5989F - East Asian ideograph - - - 21372B - 55FD - E597BD - East Asian ideograph - - - 21372C - 5606 - E59886 - East Asian ideograph (variant of EACC 4B372C) - - - 21372D - 5609 - E59889 - East Asian ideograph - - - 21372E - 5614 - E59894 - East Asian ideograph - - - 21372F - 560E - E5988E - East Asian ideograph - - - 213730 - 5617 - E59897 - East Asian ideograph - - - 213731 - 560D - E5988D - East Asian ideograph - - - 213732 - 562E - E598AE - East Asian ideograph - - - 213733 - 562F - E598AF - East Asian ideograph - - - 213734 - 564E - E5998E - East Asian ideograph - - - 213735 - 5636 - E598B6 - East Asian ideograph - - - 213736 - 5632 - E598B2 - East Asian ideograph - - - 213737 - 563B - E598BB - East Asian ideograph - - - 213738 - 5639 - E598B9 - East Asian ideograph - - - 213739 - 5657 - E59997 - East Asian ideograph - - - 21373B - 5653 - E59993 - East Asian ideograph - - - 21373C - 563F - E598BF - East Asian ideograph - - - 21373D - 5634 - E598B4 - East Asian ideograph - - - 21373E - 5637 - E598B7 - East Asian ideograph - - - 21373F - 5659 - E59999 - East Asian ideograph - - - 213740 - 5630 - E598B0 - East Asian ideograph - - - 213741 - 566B - E599AB - East Asian ideograph - - - 213742 - 5664 - E599A4 - East Asian ideograph - - - 213743 - 5669 - E599A9 - East Asian ideograph - - - 213744 - 5678 - E599B8 - East Asian ideograph - - - 213745 - 5674 - E599B4 - East Asian ideograph - - - 213746 - 5679 - E599B9 - East Asian ideograph - - - 213747 - 5665 - E599A5 - East Asian ideograph - - - 213748 - 566A - E599AA - East Asian ideograph - - - 213749 - 5668 - E599A8 - East Asian ideograph - - - 21374A - 5671 - E599B1 - East Asian ideograph - - - 21374B - 566F - E599AF - East Asian ideograph - - - 21374C - 5662 - E599A2 - East Asian ideograph (variant of EACC 4B374C) - - - 21374D - 566C - E599AC - East Asian ideograph - - - 21374E - 5680 - E59A80 - East Asian ideograph - - - 21374F - 568E - E59A8E - East Asian ideograph - - - 213750 - 5685 - E59A85 - East Asian ideograph - - - 213751 - 5687 - E59A87 - East Asian ideograph - - - 213752 - 5690 - E59A90 - East Asian ideograph - - - 213753 - 568F - E59A8F - East Asian ideograph - - - 213754 - 5695 - E59A95 - East Asian ideograph - - - 213755 - 56AE - E59AAE - East Asian ideograph (variant of EACC 453755) - - - 213756 - 56A8 - E59AA8 - East Asian ideograph - - - 213757 - 56B0 - E59AB0 - East Asian ideograph - - - 213758 - 56A5 - E59AA5 - East Asian ideograph - - - 213759 - 56B7 - E59AB7 - East Asian ideograph - - - 21375A - 56B4 - E59AB4 - East Asian ideograph - - - 21375B - 56B6 - E59AB6 - East Asian ideograph - - - 21375C - 56C0 - E59B80 - East Asian ideograph - - - 21375D - 56C1 - E59B81 - East Asian ideograph - - - 21375E - 56C2 - E59B82 - East Asian ideograph - - - 21375F - 56BC - E59ABC - East Asian ideograph - - - 213760 - 56CA - E59B8A - East Asian ideograph - - - 213761 - 56C9 - E59B89 - East Asian ideograph - - - 213762 - 56C8 - E59B88 - East Asian ideograph - - - 213764 - 56D1 - E59B91 - East Asian ideograph - - - 213765 - 56DB - E59B9B - East Asian ideograph - - - 213766 - 56DA - E59B9A - East Asian ideograph - - - 213767 - 56E0 - E59BA0 - East Asian ideograph - - - 213768 - 56DE - E59B9E - East Asian ideograph - - - 213769 - 56E4 - E59BA4 - East Asian ideograph - - - 21376B - 56F1 - E59BB1 - East Asian ideograph - - - 21376C - 56FA - E59BBA - East Asian ideograph - - - 21376D - 5703 - E59C83 - East Asian ideograph - - - 21376E - 5708 - E59C88 - East Asian ideograph - - - 21376F - 570B - E59C8B - East Asian ideograph - - - 213770 - 570D - E59C8D - East Asian ideograph - - - 213771 - 5712 - E59C92 - East Asian ideograph - - - 213772 - 5713 - E59C93 - East Asian ideograph - - - 213773 - 5718 - E59C98 - East Asian ideograph - - - 213774 - 5716 - E59C96 - East Asian ideograph - - - 213775 - 571F - E59C9F - East Asian ideograph - - - 213777 - 572D - E59CAD - East Asian ideograph - - - 213778 - 572F - E59CAF - East Asian ideograph - - - 213779 - 5730 - E59CB0 - East Asian ideograph - - - 21377A - 5728 - E59CA8 - East Asian ideograph - - - 21377B - 5733 - E59CB3 - East Asian ideograph - - - 21377C - 5751 - E59D91 - East Asian ideograph - - - 21377D - 574A - E59D8A - East Asian ideograph - - - 213821 - 5740 - E59D80 - East Asian ideograph - - - 213822 - 5747 - E59D87 - East Asian ideograph - - - 213823 - 574D - E59D8D - East Asian ideograph - - - 213824 - 573E - E59CBE - East Asian ideograph - - - 213825 - 574E - E59D8E - East Asian ideograph - - - 213827 - 5783 - E59E83 - East Asian ideograph - - - 213828 - 576A - E59DAA - East Asian ideograph - - - 213829 - 5769 - E59DA9 - East Asian ideograph - - - 21382A - 5777 - E59DB7 - East Asian ideograph - - - 21382B - 5761 - E59DA1 - East Asian ideograph - - - 21382C - 5764 - E59DA4 - East Asian ideograph - - - 21382D - 5766 - E59DA6 - East Asian ideograph - - - 21382E - 5782 - E59E82 - East Asian ideograph - - - 21382F - 577C - E59DBC - East Asian ideograph - - - 213830 - 57A0 - E59EA0 - East Asian ideograph - - - 213831 - 578B - E59E8B - East Asian ideograph - - - 213832 - 57A3 - E59EA3 - East Asian ideograph - - - 213833 - 57AE - E59EAE - East Asian ideograph - - - 213834 - 57A2 - E59EA2 - East Asian ideograph - - - 213835 - 57D4 - E59F94 - East Asian ideograph - - - 213836 - 57C2 - E59F82 - East Asian ideograph - - - 213837 - 57CE - E59F8E - East Asian ideograph - - - 213838 - 57CB - E59F8B - East Asian ideograph - - - 213839 - 57C3 - E59F83 - East Asian ideograph - - - 21383A - 57F9 - E59FB9 - East Asian ideograph - - - 21383B - 57F7 - E59FB7 - East Asian ideograph - - - 21383C - 57FA - E59FBA - East Asian ideograph - - - 21383D - 57DF - E59F9F - East Asian ideograph - - - 21383E - 580A - E5A08A - East Asian ideograph - - - 21383F - 5805 - E5A085 - East Asian ideograph - - - 213840 - 5802 - E5A082 - East Asian ideograph - - - 213841 - 5806 - E5A086 - East Asian ideograph - - - 213842 - 57E4 - E59FA4 - East Asian ideograph - - - 213843 - 57E0 - E59FA0 - East Asian ideograph - - - 213844 - 5831 - E5A0B1 - East Asian ideograph - - - 213845 - 582F - E5A0AF - East Asian ideograph - - - 213846 - 5835 - E5A0B5 - East Asian ideograph - - - 213847 - 582A - E5A0AA - East Asian ideograph - - - 213848 - 5830 - E5A0B0 - East Asian ideograph - - - 213849 - 5824 - E5A0A4 - East Asian ideograph - - - 21384A - 5834 - E5A0B4 - East Asian ideograph - - - 21384B - 5821 - E5A0A1 - East Asian ideograph - - - 21384C - 585E - E5A19E - East Asian ideograph - - - 21384D - 5857 - E5A197 - East Asian ideograph - - - 21384E - 5858 - E5A198 - East Asian ideograph - - - 21384F - 5851 - E5A191 - East Asian ideograph - - - 213850 - 586B - E5A1AB - East Asian ideograph - - - 213851 - 584C - E5A18C - East Asian ideograph - - - 213852 - 585A - E5A19A - East Asian ideograph - - - 213853 - 586D - E5A1AD - East Asian ideograph - - - 213854 - 5854 - E5A194 - East Asian ideograph - - - 213855 - 5862 - E5A1A2 - East Asian ideograph - - - 213856 - 584A - E5A18A - East Asian ideograph - - - 213857 - 5883 - E5A283 - East Asian ideograph - - - 213858 - 587E - E5A1BE - East Asian ideograph - - - 213859 - 5875 - E5A1B5 - East Asian ideograph - - - 21385A - 588A - E5A28A - East Asian ideograph - - - 21385B - 5879 - E5A1B9 - East Asian ideograph - - - 21385C - 5885 - E5A285 - East Asian ideograph - - - 21385D - 5893 - E5A293 - East Asian ideograph - - - 21385E - 589E - E5A29E - East Asian ideograph - - - 21385F - 5880 - E5A280 - East Asian ideograph - - - 213860 - 58B3 - E5A2B3 - East Asian ideograph - - - 213861 - 589C - E5A29C - East Asian ideograph - - - 213862 - 58AE - E5A2AE - East Asian ideograph - - - 213863 - 589F - E5A29F - East Asian ideograph - - - 213864 - 58C7 - E5A387 - East Asian ideograph (variant of EACC 4B3864) - - - 213865 - 58C5 - E5A385 - East Asian ideograph - - - 213866 - 58C1 - E5A381 - East Asian ideograph - - - 213867 - 58BE - E5A2BE - East Asian ideograph - - - 213868 - 58D5 - E5A395 - East Asian ideograph - - - 213869 - 58D3 - E5A393 - East Asian ideograph - - - 21386A - 58D1 - E5A391 - East Asian ideograph - - - 21386B - 58D9 - E5A399 - East Asian ideograph - - - 21386C - 58D8 - E5A398 - East Asian ideograph - - - 21386D - 58DF - E5A39F - East Asian ideograph - - - 21386E - 58DE - E5A39E - East Asian ideograph - - - 21386F - 58E2 - E5A3A2 - East Asian ideograph - - - 213870 - 58E4 - E5A3A4 - East Asian ideograph - - - 213871 - 58E9 - E5A3A9 - East Asian ideograph - - - 213872 - 58EB - E5A3AB - East Asian ideograph - - - 213873 - 58EC - E5A3AC - East Asian ideograph - - - 213874 - 58EF - E5A3AF - East Asian ideograph - - - 213876 - 58FA - E5A3BA - East Asian ideograph - - - 213877 - 58FD - E5A3BD - East Asian ideograph - - - 213878 - 590F - E5A48F - East Asian ideograph - - - 213879 - 5914 - E5A494 - East Asian ideograph - - - 21387A - 5915 - E5A495 - East Asian ideograph - - - 21387B - 5916 - E5A496 - East Asian ideograph - - - 21387C - 5919 - E5A499 - East Asian ideograph - - - 21387D - 591A - E5A49A - East Asian ideograph - - - 21387E - 591C - E5A49C - East Asian ideograph - - - 213921 - 5920 - E5A4A0 - East Asian ideograph - - - 213922 - 5924 - E5A4A4 - East Asian ideograph - - - 213923 - 5925 - E5A4A5 - East Asian ideograph - - - 213924 - 5922 - E5A4A2 - East Asian ideograph - - - 213925 - 5927 - E5A4A7 - East Asian ideograph - - - 213926 - 592A - E5A4AA - East Asian ideograph - - - 213927 - 592B - E5A4AB - East Asian ideograph - - - 213928 - 5929 - E5A4A9 - East Asian ideograph - - - 213929 - 592D - E5A4AD - East Asian ideograph - - - 21392A - 592E - E5A4AE - East Asian ideograph - - - 21392B - 5931 - E5A4B1 - East Asian ideograph - - - 21392C - 5937 - E5A4B7 - East Asian ideograph - - - 21392E - 593E - E5A4BE - East Asian ideograph - - - 21392F - 5954 - E5A594 - East Asian ideograph - - - 213930 - 5949 - E5A589 - East Asian ideograph - - - 213931 - 5948 - E5A588 - East Asian ideograph - - - 213932 - 5947 - E5A587 - East Asian ideograph - - - 213933 - 5944 - E5A584 - East Asian ideograph - - - 213934 - 5955 - E5A595 - East Asian ideograph - - - 213935 - 5951 - E5A591 - East Asian ideograph - - - 213936 - 594E - E5A58E - East Asian ideograph - - - 213937 - 594F - E5A58F - East Asian ideograph - - - 213938 - 5950 - E5A590 - East Asian ideograph - - - 213939 - 5957 - E5A597 - East Asian ideograph - - - 21393A - 5958 - E5A598 - East Asian ideograph - - - 21393B - 595A - E5A59A - East Asian ideograph - - - 21393C - 5960 - E5A5A0 - East Asian ideograph - - - 21393D - 5962 - E5A5A2 - East Asian ideograph - - - 21393E - 5967 - E5A5A7 - East Asian ideograph - - - 21393F - 5969 - E5A5A9 - East Asian ideograph - - - 213940 - 596A - E5A5AA - East Asian ideograph - - - 213941 - 596E - E5A5AE - East Asian ideograph - - - 213942 - 5973 - E5A5B3 - East Asian ideograph - - - 213943 - 5974 - E5A5B4 - East Asian ideograph - - - 213944 - 5976 - E5A5B6 - East Asian ideograph - - - 213945 - 5984 - E5A684 - East Asian ideograph - - - 213946 - 5983 - E5A683 - East Asian ideograph - - - 213947 - 5978 - E5A5B8 - East Asian ideograph - - - 213948 - 597D - E5A5BD - East Asian ideograph - - - 213949 - 5979 - E5A5B9 - East Asian ideograph - - - 21394A - 5982 - E5A682 - East Asian ideograph - - - 21394B - 5981 - E5A681 - East Asian ideograph - - - 21394C - 59A8 - E5A6A8 - East Asian ideograph - - - 21394D - 5992 - E5A692 - East Asian ideograph - - - 21394F - 59A4 - E5A6A4 - East Asian ideograph - - - 213950 - 59A3 - E5A6A3 - East Asian ideograph - - - 213951 - 5993 - E5A693 - East Asian ideograph - - - 213952 - 599E - E5A69E - East Asian ideograph - - - 213953 - 599D - E5A69D - East Asian ideograph - - - 213954 - 5999 - E5A699 - East Asian ideograph - - - 213955 - 59A5 - E5A6A5 - East Asian ideograph - - - 213956 - 598A - E5A68A - East Asian ideograph - - - 213957 - 5996 - E5A696 - East Asian ideograph - - - 213958 - 59BE - E5A6BE - East Asian ideograph - - - 213959 - 59BB - E5A6BB - East Asian ideograph - - - 21395A - 59AE - E5A6AE - East Asian ideograph - - - 21395B - 59D1 - E5A791 - East Asian ideograph - - - 21395C - 59B9 - E5A6B9 - East Asian ideograph - - - 21395D - 59C6 - E5A786 - East Asian ideograph - - - 21395E - 59D0 - E5A790 - East Asian ideograph - - - 21395F - 59D7 - E5A797 - East Asian ideograph - - - 213960 - 59AF - E5A6AF - East Asian ideograph - - - 213961 - 59D2 - E5A792 - East Asian ideograph - - - 213962 - 59D3 - E5A793 - East Asian ideograph - - - 213963 - 59CA - E5A78A - East Asian ideograph - - - 213965 - 59CB - E5A78B - East Asian ideograph - - - 213966 - 59D4 - E5A794 - East Asian ideograph - - - 213967 - 59E3 - E5A7A3 - East Asian ideograph - - - 213969 - 59FF - E5A7BF - East Asian ideograph - - - 21396A - 59D8 - E5A798 - East Asian ideograph - - - 21396B - 5A03 - E5A883 - East Asian ideograph - - - 21396C - 59E8 - E5A7A8 - East Asian ideograph - - - 21396D - 59E5 - E5A7A5 - East Asian ideograph - - - 21396E - 59EA - E5A7AA - East Asian ideograph - - - 21396F - 5A01 - E5A881 - East Asian ideograph - - - 213970 - 59FB - E5A7BB - East Asian ideograph - - - 213971 - 59E6 - E5A7A6 - East Asian ideograph - - - 213972 - 59DA - E5A79A - East Asian ideograph - - - 213973 - 5A11 - E5A891 - East Asian ideograph - - - 213974 - 5A18 - E5A898 - East Asian ideograph - - - 213975 - 5A23 - E5A8A3 - East Asian ideograph - - - 213976 - 5A1C - E5A89C - East Asian ideograph - - - 213977 - 5A13 - E5A893 - East Asian ideograph - - - 213978 - 59EC - E5A7AC - East Asian ideograph - - - 213979 - 5A20 - E5A8A0 - East Asian ideograph - - - 21397A - 5A1F - E5A89F - East Asian ideograph - - - 21397B - 5A1B - E5A89B - East Asian ideograph - - - 21397C - 5A0C - E5A88C - East Asian ideograph - - - 21397D - 5A29 - E5A8A9 - East Asian ideograph - - - 21397E - 5A25 - E5A8A5 - East Asian ideograph - - - 213A21 - 5A46 - E5A986 - East Asian ideograph - - - 213A22 - 5A49 - E5A989 - East Asian ideograph - - - 213A23 - 5A6A - E5A9AA - East Asian ideograph - - - 213A24 - 5A36 - E5A8B6 - East Asian ideograph - - - 213A25 - 5A4A - E5A98A - East Asian ideograph - - - 213A26 - 5A40 - E5A980 - East Asian ideograph - - - 213A27 - 5A66 - E5A9A6 - East Asian ideograph - - - 213A28 - 5A41 - E5A981 - East Asian ideograph - - - 213A29 - 5A3C - E5A8BC - East Asian ideograph - - - 213A2A - 5A62 - E5A9A2 - East Asian ideograph - - - 213A2B - 5A5A - E5A99A - East Asian ideograph - - - 213A2C - 5A77 - E5A9B7 - East Asian ideograph - - - 213A2D - 5A9A - E5AA9A - East Asian ideograph - - - 213A2E - 5A92 - E5AA92 - East Asian ideograph - - - 213A2F - 5A7F - E5A9BF - East Asian ideograph - - - 213A30 - 5ABC - E5AABC - East Asian ideograph - - - 213A31 - 5A9B - E5AA9B - East Asian ideograph - - - 213A32 - 5ACC - E5AB8C - East Asian ideograph - - - 213A33 - 5AC1 - E5AB81 - East Asian ideograph - - - 213A34 - 5AC9 - E5AB89 - East Asian ideograph - - - 213A35 - 5ABE - E5AABE - East Asian ideograph - - - 213A36 - 5ABD - E5AABD - East Asian ideograph - - - 213A37 - 5AB2 - E5AAB2 - East Asian ideograph - - - 213A38 - 5AC2 - E5AB82 - East Asian ideograph - - - 213A39 - 5AB3 - E5AAB3 - East Asian ideograph - - - 213A3A - 5AE1 - E5ABA1 - East Asian ideograph - - - 213A3B - 5AD7 - E5AB97 - East Asian ideograph - - - 213A3C - 5AD6 - E5AB96 - East Asian ideograph - - - 213A3D - 5AE3 - E5ABA3 - East Asian ideograph - - - 213A3E - 5AE9 - E5ABA9 - East Asian ideograph - - - 213A3F - 5AD8 - E5AB98 - East Asian ideograph - - - 213A40 - 5AE6 - E5ABA6 - East Asian ideograph - - - 213A41 - 5AFB - E5ABBB - East Asian ideograph - - - 213A42 - 5B09 - E5AC89 - East Asian ideograph - - - 213A43 - 5B0B - E5AC8B - East Asian ideograph - - - 213A44 - 5B0C - E5AC8C - East Asian ideograph - - - 213A45 - 5AF5 - E5ABB5 - East Asian ideograph - - - 213A46 - 5B34 - E5ACB4 - East Asian ideograph - - - 213A47 - 5B1D - E5AC9D - East Asian ideograph - - - 213A48 - 5B2A - E5ACAA - East Asian ideograph - - - 213A49 - 5B24 - E5ACA4 - East Asian ideograph - - - 213A4A - 5B30 - E5ACB0 - East Asian ideograph - - - 213A4B - 5B38 - E5ACB8 - East Asian ideograph - - - 213A4C - 5B40 - E5AD80 - East Asian ideograph - - - 213A4D - 5B50 - E5AD90 - East Asian ideograph - - - 213A4E - 5B51 - E5AD91 - East Asian ideograph - - - 213A4F - 5B53 - E5AD93 - East Asian ideograph - - - 213A50 - 5B54 - E5AD94 - East Asian ideograph - - - 213A51 - 5B55 - E5AD95 - East Asian ideograph - - - 213A52 - 5B57 - E5AD97 - East Asian ideograph - - - 213A53 - 5B58 - E5AD98 - East Asian ideograph - - - 213A54 - 5B5D - E5AD9D - East Asian ideograph - - - 213A55 - 5B5C - E5AD9C - East Asian ideograph - - - 213A57 - 5B5F - E5AD9F - East Asian ideograph - - - 213A58 - 5B63 - E5ADA3 - East Asian ideograph - - - 213A59 - 5B64 - E5ADA4 - East Asian ideograph - - - 213A5A - 5B69 - E5ADA9 - East Asian ideograph - - - 213A5B - 5B6B - E5ADAB - East Asian ideograph - - - 213A5C - 5B70 - E5ADB0 - East Asian ideograph - - - 213A5D - 5B73 - E5ADB3 - East Asian ideograph - - - 213A5E - 5B71 - E5ADB1 - East Asian ideograph - - - 213A5F - 5B75 - E5ADB5 - East Asian ideograph - - - 213A60 - 5B78 - E5ADB8 - East Asian ideograph - - - 213A61 - 5B7A - E5ADBA - East Asian ideograph - - - 213A62 - 5B7D - E5ADBD - East Asian ideograph - - - 213A63 - 5B7F - E5ADBF - East Asian ideograph - - - 213A65 - 5B87 - E5AE87 - East Asian ideograph - - - 213A66 - 5B88 - E5AE88 - East Asian ideograph - - - 213A67 - 5B89 - E5AE89 - East Asian ideograph - - - 213A68 - 5B85 - E5AE85 - East Asian ideograph - - - 213A69 - 5B8C - E5AE8C - East Asian ideograph - - - 213A6A - 5B8B - E5AE8B - East Asian ideograph - - - 213A6B - 5B8F - E5AE8F - East Asian ideograph - - - 213A6C - 5B97 - E5AE97 - East Asian ideograph - - - 213A6D - 5B9A - E5AE9A - East Asian ideograph - - - 213A6E - 5B9C - E5AE9C - East Asian ideograph - - - 213A6F - 5B98 - E5AE98 - East Asian ideograph - - - 213A70 - 5B99 - E5AE99 - East Asian ideograph - - - 213A71 - 5B9B - E5AE9B - East Asian ideograph - - - 213A72 - 5BA5 - E5AEA5 - East Asian ideograph - - - 213A73 - 5BA3 - E5AEA3 - East Asian ideograph - - - 213A74 - 5BA6 - E5AEA6 - East Asian ideograph - - - 213A75 - 5BA4 - E5AEA4 - East Asian ideograph - - - 213A76 - 5BA2 - E5AEA2 - East Asian ideograph - - - 213A77 - 5BB0 - E5AEB0 - East Asian ideograph - - - 213A78 - 5BB8 - E5AEB8 - East Asian ideograph - - - 213A7A - 5BB5 - E5AEB5 - East Asian ideograph - - - 213A7B - 5BB4 - E5AEB4 - East Asian ideograph - - - 213A7C - 5BAE - E5AEAE - East Asian ideograph - - - 213A7D - 5BB9 - E5AEB9 - East Asian ideograph - - - 213A7E - 5BB3 - E5AEB3 - East Asian ideograph - - - 213B21 - 5BC6 - E5AF86 - East Asian ideograph - - - 213B22 - 5BC7 - E5AF87 - East Asian ideograph - - - 213B23 - 5BC5 - E5AF85 - East Asian ideograph - - - 213B24 - 5BC4 - E5AF84 - East Asian ideograph - - - 213B25 - 5BC2 - E5AF82 - East Asian ideograph - - - 213B26 - 5BBF - E5AEBF - East Asian ideograph - - - 213B27 - 5BCC - E5AF8C - East Asian ideograph - - - 213B28 - 5BD2 - E5AF92 - East Asian ideograph - - - 213B29 - 5BD0 - E5AF90 - East Asian ideograph - - - 213B2A - 5BD3 - E5AF93 - East Asian ideograph - - - 213B2B - 5BE1 - E5AFA1 - East Asian ideograph - - - 213B2C - 5BE5 - E5AFA5 - East Asian ideograph - - - 213B2D - 5BE8 - E5AFA8 - East Asian ideograph - - - 213B2E - 5BE2 - E5AFA2 - East Asian ideograph - - - 213B2F - 5BE4 - E5AFA4 - East Asian ideograph - - - 213B30 - 5BDE - E5AF9E - East Asian ideograph - - - 213B31 - 5BE6 - E5AFA6 - East Asian ideograph - - - 213B32 - 5BE7 - E5AFA7 - East Asian ideograph - - - 213B33 - 5BDF - E5AF9F - East Asian ideograph - - - 213B34 - 5BEE - E5AFAE - East Asian ideograph - - - 213B35 - 5BEC - E5AFAC - East Asian ideograph - - - 213B36 - 5BE9 - E5AFA9 - East Asian ideograph - - - 213B37 - 5BEB - E5AFAB - East Asian ideograph - - - 213B38 - 5BF5 - E5AFB5 - East Asian ideograph - - - 213B39 - 5BF6 - E5AFB6 - East Asian ideograph - - - 213B3A - 5BF8 - E5AFB8 - East Asian ideograph - - - 213B3B - 5BFA - E5AFBA - East Asian ideograph - - - 213B3C - 5C01 - E5B081 - East Asian ideograph - - - 213B3D - 5C04 - E5B084 - East Asian ideograph - - - 213B3E - 5C09 - E5B089 - East Asian ideograph - - - 213B3F - 5C08 - E5B088 - East Asian ideograph - - - 213B40 - 5C07 - E5B087 - East Asian ideograph - - - 213B41 - 5C0A - E5B08A - East Asian ideograph - - - 213B42 - 5C0B - E5B08B - East Asian ideograph - - - 213B43 - 5C0D - E5B08D - East Asian ideograph - - - 213B44 - 5C0E - E5B08E - East Asian ideograph - - - 213B45 - 5C0F - E5B08F - East Asian ideograph - - - 213B46 - 5C11 - E5B091 - East Asian ideograph - - - 213B47 - 5C16 - E5B096 - East Asian ideograph - - - 213B48 - 5C1A - E5B09A - East Asian ideograph - - - 213B49 - 5C24 - E5B0A4 - East Asian ideograph - - - 213B4A - 5C2C - E5B0AC - East Asian ideograph - - - 213B4B - 5C31 - E5B0B1 - East Asian ideograph - - - 213B4C - 5C37 - E5B0B7 - East Asian ideograph - - - 213B4D - 5C38 - E5B0B8 - East Asian ideograph - - - 213B4E - 5C3A - E5B0BA - East Asian ideograph - - - 213B4F - 5C3C - E5B0BC - East Asian ideograph - - - 213B50 - 5C40 - E5B180 - East Asian ideograph - - - 213B51 - 5C41 - E5B181 - East Asian ideograph - - - 213B52 - 5C3F - E5B0BF - East Asian ideograph - - - 213B53 - 5C3E - E5B0BE - East Asian ideograph - - - 213B54 - 5C46 - E5B186 - East Asian ideograph - - - 213B55 - 5C45 - E5B185 - East Asian ideograph - - - 213B56 - 5C48 - E5B188 - East Asian ideograph - - - 213B57 - 5C4E - E5B18E - East Asian ideograph - - - 213B58 - 5C4B - E5B18B - East Asian ideograph - - - 213B59 - 5C4D - E5B18D - East Asian ideograph - - - 213B5A - 5C55 - E5B195 - East Asian ideograph - - - 213B5B - 5C51 - E5B191 - East Asian ideograph - - - 213B5C - 5C50 - E5B190 - East Asian ideograph - - - 213B5D - 5C5B - E5B19B - East Asian ideograph - - - 213B5E - 5C60 - E5B1A0 - East Asian ideograph - - - 213B5F - 5C5C - E5B19C - East Asian ideograph - - - 213B60 - 5C62 - E5B1A2 - East Asian ideograph - - - 213B61 - 5C64 - E5B1A4 - East Asian ideograph (variant of EACC 4B3B61) - - - 213B62 - 5C65 - E5B1A5 - East Asian ideograph - - - 213B63 - 5C6C - E5B1AC - East Asian ideograph - - - 213B64 - 5C6F - E5B1AF - East Asian ideograph - - - 213B65 - 5C71 - E5B1B1 - East Asian ideograph - - - 213B66 - 5C79 - E5B1B9 - East Asian ideograph - - - 213B67 - 5C90 - E5B290 - East Asian ideograph - - - 213B68 - 5C8C - E5B28C - East Asian ideograph - - - 213B69 - 5C91 - E5B291 - East Asian ideograph - - - 213B6A - 5C94 - E5B294 - East Asian ideograph - - - 213B6B - 5CB7 - E5B2B7 - East Asian ideograph - - - 213B6C - 5CB8 - E5B2B8 - East Asian ideograph - - - 213B6E - 5CA1 - E5B2A1 - East Asian ideograph - - - 213B6F - 5CAB - E5B2AB - East Asian ideograph - - - 213B71 - 5CB1 - E5B2B1 - East Asian ideograph - - - 213B72 - 5CD9 - E5B399 - East Asian ideograph - - - 213B73 - 5D01 - E5B481 - East Asian ideograph - - - 213B74 - 5CFD - E5B3BD - East Asian ideograph - - - 213B75 - 5CED - E5B3AD - East Asian ideograph - - - 213B76 - 5CFB - E5B3BB - East Asian ideograph - - - 213B77 - 5CE8 - E5B3A8 - East Asian ideograph - - - 213B78 - 5CF0 - E5B3B0 - East Asian ideograph - - - 213B79 - 5CF6 - E5B3B6 - East Asian ideograph - - - 213B7A - 5CEA - E5B3AA - East Asian ideograph - - - 213B7B - 5D07 - E5B487 - East Asian ideograph - - - 213B7C - 5D06 - E5B486 - East Asian ideograph - - - 213B7D - 5D1B - E5B49B - East Asian ideograph - - - 213B7E - 5D16 - E5B496 - East Asian ideograph - - - 213C21 - 5D0E - E5B48E - East Asian ideograph - - - 213C22 - 5D11 - E5B491 - East Asian ideograph - - - 213C23 - 5D22 - E5B4A2 - East Asian ideograph - - - 213C24 - 5D29 - E5B4A9 - East Asian ideograph - - - 213C25 - 5D14 - E5B494 - East Asian ideograph - - - 213C26 - 5D19 - E5B499 - East Asian ideograph - - - 213C27 - 5D4C - E5B58C - East Asian ideograph - - - 213C28 - 5D50 - E5B590 - East Asian ideograph - - - 213C29 - 5D69 - E5B5A9 - East Asian ideograph - - - 213C2A - 5D84 - E5B684 - East Asian ideograph - - - 213C2B - 5D87 - E5B687 - East Asian ideograph - - - 213C2C - 5D9D - E5B69D - East Asian ideograph - - - 213C2D - 5DBC - E5B6BC - East Asian ideograph - - - 213C2E - 5DBD - E5B6BD - East Asian ideograph - - - 213C2F - 5DBA - E5B6BA - East Asian ideograph (variant of EACC 4B3C2F) - - - 213C30 - 5DCD - E5B78D - East Asian ideograph - - - 213C31 - 5DD2 - E5B792 - East Asian ideograph - - - 213C32 - 5DD4 - E5B794 - East Asian ideograph - - - 213C33 - 5DD6 - E5B796 - East Asian ideograph - - - 213C34 - 5DDD - E5B79D - East Asian ideograph - - - 213C35 - 5DDE - E5B79E - East Asian ideograph - - - 213C36 - 5DE2 - E5B7A2 - East Asian ideograph - - - 213C37 - 5DE5 - E5B7A5 - East Asian ideograph - - - 213C38 - 5DE8 - E5B7A8 - East Asian ideograph - - - 213C39 - 5DE7 - E5B7A7 - East Asian ideograph - - - 213C3A - 5DE6 - E5B7A6 - East Asian ideograph - - - 213C3B - 5DEB - E5B7AB - East Asian ideograph - - - 213C3C - 5DEE - E5B7AE - East Asian ideograph - - - 213C3D - 5DF1 - E5B7B1 - East Asian ideograph - - - 213C3E - 5DF2 - E5B7B2 - East Asian ideograph - - - 213C3F - 5DF3 - E5B7B3 - East Asian ideograph - - - 213C40 - 5DF4 - E5B7B4 - East Asian ideograph - - - 213C41 - 5DF7 - E5B7B7 - East Asian ideograph - - - 213C42 - 5DFD - E5B7BD - East Asian ideograph - - - 213C43 - 5DFE - E5B7BE - East Asian ideograph - - - 213C44 - 5E02 - E5B882 - East Asian ideograph - - - 213C46 - 5E06 - E5B886 - East Asian ideograph - - - 213C49 - 5E1A - E5B89A - East Asian ideograph - - - 213C4A - 5E16 - E5B896 - East Asian ideograph - - - 213C4B - 5E15 - E5B895 - East Asian ideograph - - - 213C4C - 5E1B - E5B89B - East Asian ideograph - - - 213C4D - 5E11 - E5B891 - East Asian ideograph - - - 213C4E - 5E1D - E5B89D - East Asian ideograph - - - 213C4F - 5E25 - E5B8A5 - East Asian ideograph - - - 213C51 - 5E2B - E5B8AB - East Asian ideograph - - - 213C52 - 5E33 - E5B8B3 - East Asian ideograph - - - 213C53 - 5E36 - E5B8B6 - East Asian ideograph - - - 213C54 - 5E38 - E5B8B8 - East Asian ideograph - - - 213C55 - 5E37 - E5B8B7 - East Asian ideograph - - - 213C56 - 5E45 - E5B985 - East Asian ideograph - - - 213C57 - 5E3D - E5B8BD - East Asian ideograph - - - 213C58 - 5E40 - E5B980 - East Asian ideograph - - - 213C59 - 5E4C - E5B98C - East Asian ideograph - - - 213C5A - 5E5B - E5B99B - East Asian ideograph - - - 213C5B - 5E54 - E5B994 - East Asian ideograph - - - 213C5C - 5E57 - E5B997 - East Asian ideograph - - - 213C5D - 5E55 - E5B995 - East Asian ideograph - - - 213C5E - 5E63 - E5B9A3 - East Asian ideograph - - - 213C5F - 5E62 - E5B9A2 - East Asian ideograph - - - 213C60 - 5E5F - E5B99F - East Asian ideograph - - - 213C61 - 5E6B - E5B9AB - East Asian ideograph - - - 213C63 - 5E73 - E5B9B3 - East Asian ideograph - - - 213C65 - 5E74 - E5B9B4 - East Asian ideograph - - - 213C68 - 5E7B - E5B9BB - East Asian ideograph - - - 213C69 - 5E7C - E5B9BC - East Asian ideograph - - - 213C6A - 5E7D - E5B9BD - East Asian ideograph - - - 213C6B - 5E7E - E5B9BE - East Asian ideograph - - - 213C6C - 5E8F - E5BA8F - East Asian ideograph - - - 213C6D - 5E87 - E5BA87 - East Asian ideograph - - - 213C6E - 5E8A - E5BA8A - East Asian ideograph - - - 213C6F - 5E9A - E5BA9A - East Asian ideograph - - - 213C70 - 5E97 - E5BA97 - East Asian ideograph - - - 213C71 - 5E96 - E5BA96 - East Asian ideograph - - - 213C72 - 5E9C - E5BA9C - East Asian ideograph - - - 213C73 - 5E95 - E5BA95 - East Asian ideograph - - - 213C74 - 5EA0 - E5BAA0 - East Asian ideograph - - - 213C75 - 5EA6 - E5BAA6 - East Asian ideograph - - - 213C76 - 5EAB - E5BAAB - East Asian ideograph - - - 213C77 - 5EA7 - E5BAA7 - East Asian ideograph - - - 213C78 - 5EAD - E5BAAD - East Asian ideograph - - - 213C79 - 5EB7 - E5BAB7 - East Asian ideograph - - - 213C7A - 5EB8 - E5BAB8 - East Asian ideograph - - - 213C7B - 5EB6 - E5BAB6 - East Asian ideograph - - - 213C7C - 5EB5 - E5BAB5 - East Asian ideograph - - - 213C7D - 5EC2 - E5BB82 - East Asian ideograph - - - 213C7E - 5EC1 - E5BB81 - East Asian ideograph - - - 213D21 - 5EBE - E5BABE - East Asian ideograph - - - 213D22 - 5ECA - E5BB8A - East Asian ideograph - - - 213D23 - 5EC9 - E5BB89 - East Asian ideograph - - - 213D24 - 5EC8 - E5BB88 - East Asian ideograph - - - 213D25 - 5ED3 - E5BB93 - East Asian ideograph - - - 213D26 - 5ED6 - E5BB96 - East Asian ideograph - - - 213D27 - 5EE2 - E5BBA2 - East Asian ideograph - - - 213D28 - 5EDA - E5BB9A - East Asian ideograph - - - 213D29 - 5EDD - E5BB9D - East Asian ideograph - - - 213D2A - 5EE3 - E5BBA3 - East Asian ideograph (variant of EACC 4B3D2A) - - - 213D2B - 5EDF - E5BB9F - East Asian ideograph - - - 213D2C - 5EE0 - E5BBA0 - East Asian ideograph - - - 213D2D - 9F90 - E9BE90 - East Asian ideograph - - - 213D2E - 5EEC - E5BBAC - East Asian ideograph - - - 213D2F - 5EF3 - E5BBB3 - East Asian ideograph - - - 213D30 - 5EF7 - E5BBB7 - East Asian ideograph - - - 213D32 - 5EF6 - E5BBB6 - East Asian ideograph - - - 213D33 - 5EFA - E5BBBA - East Asian ideograph - - - 213D34 - 5EFF - E5BBBF - East Asian ideograph - - - 213D36 - 5F04 - E5BC84 - East Asian ideograph - - - 213D37 - 5F08 - E5BC88 - East Asian ideograph - - - 213D38 - 5F0A - E5BC8A - East Asian ideograph - - - 213D39 - 5F0F - E5BC8F - East Asian ideograph - - - 213D3A - 5F12 - E5BC92 - East Asian ideograph - - - 213D3B - 5F13 - E5BC93 - East Asian ideograph - - - 213D3C - 5F15 - E5BC95 - East Asian ideograph - - - 213D3D - 5F14 - E5BC94 - East Asian ideograph - - - 213D3E - 5F18 - E5BC98 - East Asian ideograph - - - 213D3F - 5F17 - E5BC97 - East Asian ideograph - - - 213D40 - 5F1B - E5BC9B - East Asian ideograph - - - 213D41 - 5F1F - E5BC9F - East Asian ideograph - - - 213D42 - 5F26 - E5BCA6 - East Asian ideograph - - - 213D43 - 5F27 - E5BCA7 - East Asian ideograph - - - 213D44 - 5F29 - E5BCA9 - East Asian ideograph - - - 213D45 - 5F2D - E5BCAD - East Asian ideograph - - - 213D46 - 5F31 - E5BCB1 - East Asian ideograph - - - 213D47 - 5F35 - E5BCB5 - East Asian ideograph - - - 213D48 - 5F37 - E5BCB7 - East Asian ideograph - - - 213D49 - 5F3C - E5BCBC - East Asian ideograph - - - 213D4A - 5F46 - E5BD86 - East Asian ideograph - - - 213D4B - 5F48 - E5BD88 - East Asian ideograph - - - 213D4C - 5F4C - E5BD8C - East Asian ideograph - - - 213D4D - 5F4E - E5BD8E - East Asian ideograph - - - 213D4E - 5F57 - E5BD97 - East Asian ideograph - - - 213D4F - 5F59 - E5BD99 - East Asian ideograph - - - 213D50 - 5F5D - E5BD9D - East Asian ideograph - - - 213D51 - 5F62 - E5BDA2 - East Asian ideograph - - - 213D52 - 5F64 - E5BDA4 - East Asian ideograph - - - 213D53 - 5F65 - E5BDA5 - East Asian ideograph - - - 213D54 - 5F6C - E5BDAC - East Asian ideograph - - - 213D55 - 5F69 - E5BDA9 - East Asian ideograph - - - 213D57 - 5F6D - E5BDAD - East Asian ideograph - - - 213D58 - 5F70 - E5BDB0 - East Asian ideograph - - - 213D59 - 5F71 - E5BDB1 - East Asian ideograph - - - 213D5B - 5F79 - E5BDB9 - East Asian ideograph - - - 213D5C - 5F80 - E5BE80 - East Asian ideograph - - - 213D5E - 5F7F - E5BDBF - East Asian ideograph - - - 213D5F - 5F7C - E5BDBC - East Asian ideograph - - - 213D60 - 5F85 - E5BE85 - East Asian ideograph - - - 213D61 - 5F88 - E5BE88 - East Asian ideograph - - - 213D62 - 5F8B - E5BE8B - East Asian ideograph - - - 213D63 - 5F8A - E5BE8A - East Asian ideograph - - - 213D64 - 5F87 - E5BE87 - East Asian ideograph - - - 213D65 - 5F8C - E5BE8C - East Asian ideograph - - - 213D66 - 5F92 - E5BE92 - East Asian ideograph - - - 213D67 - 5F91 - E5BE91 - East Asian ideograph - - - 213D68 - 5F90 - E5BE90 - East Asian ideograph - - - 213D69 - 5F98 - E5BE98 - East Asian ideograph - - - 213D6A - 5F97 - E5BE97 - East Asian ideograph - - - 213D6B - 5F99 - E5BE99 - East Asian ideograph - - - 213D6C - 5F9E - E5BE9E - East Asian ideograph - - - 213D6F - 5FA9 - E5BEA9 - East Asian ideograph - - - 213D71 - 5FAA - E5BEAA - East Asian ideograph - - - 213D72 - 5FAC - E5BEAC - East Asian ideograph - - - 213D73 - 5FAE - E5BEAE - East Asian ideograph - - - 213D74 - 5FB9 - E5BEB9 - East Asian ideograph - - - 213D75 - 5FB7 - E5BEB7 - East Asian ideograph - - - 213D76 - 5FB5 - E5BEB5 - East Asian ideograph - - - 213D77 - 5FBD - E5BEBD - East Asian ideograph - - - 213D78 - 5FC3 - E5BF83 - East Asian ideograph - - - 213D79 - 5FC5 - E5BF85 - East Asian ideograph - - - 213D7A - 5FD9 - E5BF99 - East Asian ideograph - - - 213D7B - 5FD8 - E5BF98 - East Asian ideograph - - - 213D7C - 5FCC - E5BF8C - East Asian ideograph - - - 213D7D - 5FD6 - E5BF96 - East Asian ideograph - - - 213E21 - 5FCD - E5BF8D - East Asian ideograph - - - 213E22 - 5FEB - E5BFAB - East Asian ideograph - - - 213E23 - 5FE0 - E5BFA0 - East Asian ideograph - - - 213E24 - 5FF1 - E5BFB1 - East Asian ideograph - - - 213E25 - 5FFD - E5BFBD - East Asian ideograph - - - 213E26 - 5FDD - E5BF9D - East Asian ideograph - - - 213E27 - 5FF5 - E5BFB5 - East Asian ideograph - - - 213E28 - 5FFF - E5BFBF - East Asian ideograph - - - 213E29 - 6014 - E68094 - East Asian ideograph - - - 213E2A - 6035 - E680B5 - East Asian ideograph (variant of EACC 4B3E2A) - - - 213E2B - 602A - E680AA - East Asian ideograph - - - 213E2C - 602F - E680AF - East Asian ideograph - - - 213E2D - 6016 - E68096 - East Asian ideograph - - - 213E2E - 601D - E6809D - East Asian ideograph - - - 213E2F - 600F - E6808F - East Asian ideograph - - - 213E30 - 6021 - E680A1 - East Asian ideograph - - - 213E31 - 6020 - E680A0 - East Asian ideograph - - - 213E32 - 6028 - E680A8 - East Asian ideograph - - - 213E33 - 6025 - E680A5 - East Asian ideograph - - - 213E34 - 6027 - E680A7 - East Asian ideograph - - - 213E35 - 600E - E6808E - East Asian ideograph - - - 213E36 - 6015 - E68095 - East Asian ideograph - - - 213E37 - 6012 - E68092 - East Asian ideograph - - - 213E38 - 6059 - E68199 - East Asian ideograph - - - 213E39 - 6063 - E681A3 - East Asian ideograph - - - 213E3A - 6068 - E681A8 - East Asian ideograph - - - 213E3B - 6043 - E68183 - East Asian ideograph - - - 213E3C - 6065 - E681A5 - East Asian ideograph - - - 213E3D - 6050 - E68190 - East Asian ideograph - - - 213E3E - 606D - E681AD - East Asian ideograph - - - 213E3F - 6062 - E681A2 - East Asian ideograph - - - 213E40 - 6046 - E68186 - East Asian ideograph (variant of EACC 4B3E40) - - - 213E41 - 604D - E6818D - East Asian ideograph - - - 213E42 - 606B - E681AB - East Asian ideograph - - - 213E43 - 6069 - E681A9 - East Asian ideograph - - - 213E44 - 606C - E681AC - East Asian ideograph - - - 213E45 - 606F - E681AF - East Asian ideograph - - - 213E46 - 606A - E681AA - East Asian ideograph - - - 213E47 - 6064 - E681A4 - East Asian ideograph - - - 213E48 - 6070 - E681B0 - East Asian ideograph - - - 213E49 - 6055 - E68195 - East Asian ideograph - - - 213E4A - 608C - E6828C - East Asian ideograph - - - 213E4B - 60A6 - E682A6 - East Asian ideograph - - - 213E4C - 607F - E681BF - East Asian ideograph - - - 213E4D - 609F - E6829F - East Asian ideograph - - - 213E4E - 609A - E6829A - East Asian ideograph - - - 213E4F - 6096 - E68296 - East Asian ideograph - - - 213E50 - 6084 - E68284 - East Asian ideograph - - - 213E51 - 608D - E6828D - East Asian ideograph - - - 213E52 - 60A3 - E682A3 - East Asian ideograph - - - 213E53 - 6089 - E68289 - East Asian ideograph - - - 213E54 - 6094 - E68294 - East Asian ideograph - - - 213E55 - 60A0 - E682A0 - East Asian ideograph - - - 213E56 - 60A8 - E682A8 - East Asian ideograph - - - 213E57 - 60B4 - E682B4 - East Asian ideograph - - - 213E58 - 60E6 - E683A6 - East Asian ideograph - - - 213E59 - 60CB - E6838B - East Asian ideograph - - - 213E5B - 60C5 - E68385 - East Asian ideograph (variant of EACC 4B3E5B) - - - 213E5C - 60B6 - E682B6 - East Asian ideograph - - - 213E5D - 60D1 - E68391 - East Asian ideograph - - - 213E5E - 60B5 - E682B5 - East Asian ideograph - - - 213E5F - 60BB - E682BB - East Asian ideograph - - - 213E60 - 60E0 - E683A0 - East Asian ideograph - - - 213E61 - 60E1 - E683A1 - East Asian ideograph - - - 213E62 - 60DC - E6839C - East Asian ideograph - - - 213E63 - 60D8 - E68398 - East Asian ideograph - - - 213E64 - 60D5 - E68395 - East Asian ideograph - - - 213E65 - 60BC - E682BC - East Asian ideograph - - - 213E66 - 60B2 - E682B2 - East Asian ideograph - - - 213E67 - 60C6 - E68386 - East Asian ideograph - - - 213E68 - 60B8 - E682B8 - East Asian ideograph - - - 213E69 - 60DA - E6839A - East Asian ideograph - - - 213E6A - 60DF - E6839F - East Asian ideograph - - - 213E6B - 610F - E6848F - East Asian ideograph - - - 213E6C - 611C - E6849C - East Asian ideograph - - - 213E6D - 60F3 - E683B3 - East Asian ideograph - - - 213E6E - 611F - E6849F - East Asian ideograph - - - 213E6F - 60F0 - E683B0 - East Asian ideograph - - - 213E70 - 60FB - E683BB - East Asian ideograph - - - 213E71 - 60FA - E683BA - East Asian ideograph - - - 213E72 - 611A - E6849A - East Asian ideograph - - - 213E73 - 6115 - E68495 - East Asian ideograph - - - 213E74 - 60F9 - E683B9 - East Asian ideograph - - - 213E75 - 6123 - E684A3 - East Asian ideograph - - - 213E76 - 60F4 - E683B4 - East Asian ideograph - - - 213E77 - 611B - E6849B - East Asian ideograph - - - 213E78 - 610E - E6848E - East Asian ideograph - - - 213E79 - 6100 - E68480 - East Asian ideograph - - - 213E7A - 6101 - E68481 - East Asian ideograph - - - 213E7B - 60F6 - E683B6 - East Asian ideograph - - - 213E7C - 6109 - E68489 - East Asian ideograph - - - 213E7D - 6108 - E68488 - East Asian ideograph - - - 213E7E - 60F1 - E683B1 - East Asian ideograph - - - 213F21 - 6148 - E68588 - East Asian ideograph - - - 213F22 - 6168 - E685A8 - East Asian ideograph - - - 213F24 - 613C - E684BC - East Asian ideograph - - - 213F26 - 614C - E6858C - East Asian ideograph - - - 213F27 - 614D - E6858D - East Asian ideograph - - - 213F28 - 614B - E6858B - East Asian ideograph - - - 213F29 - 613E - E684BE - East Asian ideograph - - - 213F2A - 6127 - E684A7 - East Asian ideograph - - - 213F2B - 6134 - E684B4 - East Asian ideograph - - - 213F2C - 6147 - E68587 - East Asian ideograph - - - 213F2D - 6177 - E685B7 - East Asian ideograph - - - 213F2E - 6176 - E685B6 - East Asian ideograph - - - 213F2F - 6167 - E685A7 - East Asian ideograph - - - 213F30 - 6170 - E685B0 - East Asian ideograph - - - 213F31 - 615A - E6859A - East Asian ideograph - - - 213F32 - 615D - E6859D - East Asian ideograph - - - 213F33 - 6182 - E68682 - East Asian ideograph - - - 213F34 - 617C - E685BC - East Asian ideograph - - - 213F35 - 6162 - E685A2 - East Asian ideograph - - - 213F36 - 616E - E685AE - East Asian ideograph - - - 213F37 - 6155 - E68595 - East Asian ideograph - - - 213F38 - 6158 - E68598 - East Asian ideograph - - - 213F39 - 6163 - E685A3 - East Asian ideograph - - - 213F3A - 615F - E6859F - East Asian ideograph - - - 213F3B - 616B - E685AB - East Asian ideograph - - - 213F3C - 617E - E685BE - East Asian ideograph - - - 213F3D - 61A7 - E686A7 - East Asian ideograph - - - 213F3E - 61B2 - E686B2 - East Asian ideograph - - - 213F3F - 6191 - E68691 - East Asian ideograph - - - 213F40 - 618E - E6868E - East Asian ideograph - - - 213F41 - 61AB - E686AB - East Asian ideograph - - - 213F42 - 61A4 - E686A4 - East Asian ideograph - - - 213F43 - 61AC - E686AC - East Asian ideograph - - - 213F44 - 619A - E6869A - East Asian ideograph - - - 213F45 - 61A9 - E686A9 - East Asian ideograph - - - 213F46 - 6194 - E68694 - East Asian ideograph - - - 213F47 - 618A - E6868A - East Asian ideograph - - - 213F48 - 61B6 - E686B6 - East Asian ideograph - - - 213F49 - 61CD - E6878D - East Asian ideograph - - - 213F4A - 61C9 - E68789 - East Asian ideograph - - - 213F4B - 6190 - E68690 - East Asian ideograph - - - 213F4C - 61BE - E686BE - East Asian ideograph - - - 213F4D - 61C2 - E68782 - East Asian ideograph - - - 213F4E - 61C7 - E68787 - East Asian ideograph - - - 213F4F - 61C8 - E68788 - East Asian ideograph - - - 213F50 - 61CA - E6878A - East Asian ideograph - - - 213F51 - 61E3 - E687A3 - East Asian ideograph - - - 213F52 - 61E6 - E687A6 - East Asian ideograph - - - 213F53 - 61F2 - E687B2 - East Asian ideograph (variant of EACC 4B3F53) - - - 213F54 - 61F7 - E687B7 - East Asian ideograph - - - 213F55 - 61F6 - E687B6 - East Asian ideograph - - - 213F56 - 61F8 - E687B8 - East Asian ideograph - - - 213F57 - 61F5 - E687B5 - East Asian ideograph - - - 213F58 - 61FA - E687BA - East Asian ideograph - - - 213F59 - 61FE - E687BE - East Asian ideograph - - - 213F5A - 61FF - E687BF - East Asian ideograph - - - 213F5B - 61FC - E687BC - East Asian ideograph - - - 213F5C - 6200 - E68880 - East Asian ideograph - - - 213F5D - 6208 - E68888 - East Asian ideograph - - - 213F5E - 620A - E6888A - East Asian ideograph - - - 213F5F - 620E - E6888E - East Asian ideograph - - - 213F60 - 620D - E6888D - East Asian ideograph - - - 213F61 - 620C - E6888C - East Asian ideograph - - - 213F62 - 6210 - E68890 - East Asian ideograph - - - 213F63 - 6212 - E68892 - East Asian ideograph - - - 213F64 - 6211 - E68891 - East Asian ideograph - - - 213F65 - 6216 - E68896 - East Asian ideograph - - - 213F66 - 6215 - E68895 - East Asian ideograph - - - 213F67 - 621B - E6889B - East Asian ideograph - - - 213F68 - 621A - E6889A - East Asian ideograph - - - 213F69 - 621F - E6889F - East Asian ideograph - - - 213F6A - 6221 - E688A1 - East Asian ideograph - - - 213F6B - 6222 - E688A2 - East Asian ideograph - - - 213F6C - 622A - E688AA - East Asian ideograph - - - 213F6D - 622E - E688AE - East Asian ideograph - - - 213F6E - 6230 - E688B0 - East Asian ideograph - - - 213F6F - 6232 - E688B2 - East Asian ideograph - - - 213F70 - 6234 - E688B4 - East Asian ideograph - - - 213F71 - 6233 - E688B3 - East Asian ideograph - - - 213F72 - 6236 - E688B6 - East Asian ideograph - - - 213F73 - 623F - E688BF - East Asian ideograph - - - 213F74 - 623E - E688BE - East Asian ideograph - - - 213F75 - 6240 - E68980 - East Asian ideograph - - - 213F76 - 6241 - E68981 - East Asian ideograph - - - 213F78 - 6248 - E68988 - East Asian ideograph - - - 213F79 - 6249 - E68989 - East Asian ideograph - - - 213F7A - 624B - E6898B - East Asian ideograph - - - 213F7D - 6253 - E68993 - East Asian ideograph - - - 213F7E - 6254 - E68994 - East Asian ideograph - - - 214021 - 6252 - E68992 - East Asian ideograph - - - 214022 - 625B - E6899B - East Asian ideograph - - - 214023 - 6263 - E689A3 - East Asian ideograph - - - 214024 - 6258 - E68998 - East Asian ideograph - - - 214025 - 6296 - E68A96 - East Asian ideograph - - - 214026 - 6297 - E68A97 - East Asian ideograph - - - 214027 - 6292 - E68A92 - East Asian ideograph - - - 214028 - 6276 - E689B6 - East Asian ideograph - - - 214029 - 6289 - E68A89 - East Asian ideograph - - - 21402A - 627F - E689BF - East Asian ideograph - - - 21402B - 6279 - E689B9 - East Asian ideograph - - - 21402C - 6280 - E68A80 - East Asian ideograph - - - 21402D - 628A - E68A8A - East Asian ideograph - - - 21402E - 626D - E689AD - East Asian ideograph - - - 21402F - 627C - E689BC - East Asian ideograph - - - 214030 - 627E - E689BE - East Asian ideograph - - - 214031 - 626F - E689AF - East Asian ideograph - - - 214032 - 6284 - E68A84 - East Asian ideograph - - - 214033 - 6295 - E68A95 - East Asian ideograph - - - 214034 - 6291 - E68A91 - East Asian ideograph - - - 214035 - 6298 - E68A98 - East Asian ideograph - - - 214036 - 626E - E689AE - East Asian ideograph - - - 214037 - 6273 - E689B3 - East Asian ideograph - - - 214038 - 6293 - E68A93 - East Asian ideograph - - - 214039 - 62C9 - E68B89 - East Asian ideograph - - - 21403A - 62C4 - E68B84 - East Asian ideograph - - - 21403B - 62CC - E68B8C - East Asian ideograph - - - 21403C - 62A8 - E68AA8 - East Asian ideograph - - - 21403D - 62DC - E68B9C - East Asian ideograph - - - 21403E - 62BF - E68ABF - East Asian ideograph - - - 21403F - 62C2 - E68B82 - East Asian ideograph - - - 214040 - 62B9 - E68AB9 - East Asian ideograph - - - 214041 - 62D2 - E68B92 - East Asian ideograph - - - 214042 - 62D3 - E68B93 - East Asian ideograph - - - 214043 - 62DB - E68B9B - East Asian ideograph - - - 214044 - 62AB - E68AAB - East Asian ideograph - - - 214045 - 62CB - E68B8B - East Asian ideograph - - - 214046 - 62D4 - E68B94 - East Asian ideograph - - - 214047 - 62BD - E68ABD - East Asian ideograph - - - 214048 - 62BC - E68ABC - East Asian ideograph - - - 214049 - 62D0 - E68B90 - East Asian ideograph (variant of EACC 4B4049) - - - 21404A - 62C8 - E68B88 - East Asian ideograph - - - 21404B - 62D9 - E68B99 - East Asian ideograph - - - 21404C - 62DA - E68B9A - East Asian ideograph - - - 21404D - 62AC - E68AAC - East Asian ideograph - - - 21404E - 62C7 - E68B87 - East Asian ideograph - - - 21404F - 62B1 - E68AB1 - East Asian ideograph - - - 214050 - 62D6 - E68B96 - East Asian ideograph - - - 214051 - 62D8 - E68B98 - East Asian ideograph - - - 214052 - 62CD - E68B8D - East Asian ideograph - - - 214053 - 62B5 - E68AB5 - East Asian ideograph - - - 214054 - 62CE - E68B8E - East Asian ideograph - - - 214055 - 62D7 - E68B97 - East Asian ideograph - - - 214056 - 62C6 - E68B86 - East Asian ideograph - - - 214057 - 6309 - E68C89 - East Asian ideograph - - - 214058 - 6316 - E68C96 - East Asian ideograph - - - 214059 - 62FC - E68BBC - East Asian ideograph - - - 21405A - 62F3 - E68BB3 - East Asian ideograph - - - 21405B - 6308 - E68C88 - East Asian ideograph - - - 21405C - 62ED - E68BAD - East Asian ideograph - - - 21405D - 6301 - E68C81 - East Asian ideograph - - - 21405E - 62EE - E68BAE - East Asian ideograph - - - 21405F - 62EF - E68BAF - East Asian ideograph - - - 214060 - 62F7 - E68BB7 - East Asian ideograph - - - 214061 - 6307 - E68C87 - East Asian ideograph - - - 214062 - 62F1 - E68BB1 - East Asian ideograph - - - 214063 - 62FD - E68BBD - East Asian ideograph - - - 214064 - 6311 - E68C91 - East Asian ideograph - - - 214065 - 62EC - E68BAC - East Asian ideograph - - - 214066 - 62F4 - E68BB4 - East Asian ideograph (variant of EACC 4B4066) - - - 214067 - 62FF - E68BBF - East Asian ideograph - - - 214069 - 6342 - E68D82 - East Asian ideograph - - - 21406A - 632A - E68CAA - East Asian ideograph - - - 21406B - 6355 - E68D95 - East Asian ideograph - - - 21406C - 633E - E68CBE - East Asian ideograph - - - 21406D - 632F - E68CAF - East Asian ideograph - - - 21406E - 634E - E68D8E - East Asian ideograph - - - 21406F - 634F - E68D8F - East Asian ideograph - - - 214070 - 6350 - E68D90 - East Asian ideograph - - - 214071 - 6349 - E68D89 - East Asian ideograph - - - 214073 - 632B - E68CAB - East Asian ideograph - - - 214074 - 6328 - E68CA8 - East Asian ideograph - - - 214075 - 633A - E68CBA - East Asian ideograph - - - 214076 - 63A5 - E68EA5 - East Asian ideograph - - - 214077 - 6369 - E68DA9 - East Asian ideograph - - - 214078 - 63A0 - E68EA0 - East Asian ideograph - - - 214079 - 6396 - E68E96 - East Asian ideograph - - - 21407A - 63A7 - E68EA7 - East Asian ideograph - - - 21407B - 6372 - E68DB2 - East Asian ideograph - - - 21407C - 6377 - E68DB7 - East Asian ideograph - - - 21407D - 6383 - E68E83 - East Asian ideograph - - - 21407E - 636B - E68DAB - East Asian ideograph - - - 214121 - 6367 - E68DA7 - East Asian ideograph - - - 214122 - 6398 - E68E98 - East Asian ideograph - - - 214123 - 639B - E68E9B - East Asian ideograph - - - 214124 - 63AA - E68EAA - East Asian ideograph - - - 214125 - 6371 - E68DB1 - East Asian ideograph - - - 214126 - 63A9 - E68EA9 - East Asian ideograph - - - 214127 - 638C - E68E8C - East Asian ideograph - - - 214128 - 6389 - E68E89 - East Asian ideograph - - - 214129 - 63A2 - E68EA2 - East Asian ideograph - - - 21412A - 6399 - E68E99 - East Asian ideograph - - - 21412B - 63A1 - E68EA1 - East Asian ideograph - - - 21412C - 6388 - E68E88 - East Asian ideograph - - - 21412D - 63AC - E68EAC - East Asian ideograph - - - 21412E - 633D - E68CBD - East Asian ideograph - - - 21412F - 6392 - E68E92 - East Asian ideograph - - - 214130 - 63A3 - E68EA3 - East Asian ideograph - - - 214131 - 6376 - E68DB6 - East Asian ideograph - - - 214132 - 638F - E68E8F - East Asian ideograph - - - 214133 - 63A8 - E68EA8 - East Asian ideograph - - - 214134 - 637B - E68DBB - East Asian ideograph - - - 214135 - 6368 - E68DA8 - East Asian ideograph (variant of EACC 4B4135) - - - 214136 - 6384 - E68E84 - East Asian ideograph - - - 214137 - 6380 - E68E80 - East Asian ideograph - - - 214138 - 63C6 - E68F86 - East Asian ideograph - - - 214139 - 63C9 - E68F89 - East Asian ideograph - - - 21413A - 63CD - E68F8D - East Asian ideograph - - - 21413B - 63E1 - E68FA1 - East Asian ideograph - - - 21413C - 63C0 - E68F80 - East Asian ideograph - - - 21413D - 63E9 - E68FA9 - East Asian ideograph - - - 21413E - 63D0 - E68F90 - East Asian ideograph - - - 21413F - 63DA - E68F9A - East Asian ideograph - - - 214140 - 63D6 - E68F96 - East Asian ideograph - - - 214141 - 63ED - E68FAD - East Asian ideograph - - - 214142 - 63EE - E68FAE - East Asian ideograph - - - 214143 - 63CF - E68F8F - East Asian ideograph - - - 214144 - 63E3 - E68FA3 - East Asian ideograph - - - 214145 - 63F4 - E68FB4 - East Asian ideograph - - - 214146 - 63DB - E68F9B - East Asian ideograph (variant of EACC 454146) - - - 214147 - 63D2 - E68F92 - East Asian ideograph - - - 214148 - 63EA - E68FAA - East Asian ideograph - - - 214149 - 641E - E6909E - East Asian ideograph - - - 21414A - 642A - E690AA - East Asian ideograph - - - 21414B - 643E - E690BE - East Asian ideograph - - - 21414C - 6413 - E69093 - East Asian ideograph - - - 21414D - 640F - E6908F - East Asian ideograph - - - 21414E - 6414 - E69094 - East Asian ideograph - - - 21414F - 640D - E6908D - East Asian ideograph - - - 214150 - 642D - E690AD - East Asian ideograph - - - 214151 - 643D - E690BD - East Asian ideograph - - - 214152 - 6416 - E69096 - East Asian ideograph - - - 214153 - 6417 - E69097 - East Asian ideograph - - - 214154 - 641C - E6909C - East Asian ideograph - - - 214155 - 6436 - E690B6 - East Asian ideograph - - - 214156 - 642C - E690AC - East Asian ideograph - - - 214157 - 6458 - E69198 - East Asian ideograph - - - 214158 - 6469 - E691A9 - East Asian ideograph - - - 214159 - 6454 - E69194 - East Asian ideograph - - - 21415A - 6452 - E69192 - East Asian ideograph - - - 21415B - 646F - E691AF - East Asian ideograph - - - 21415C - 6478 - E691B8 - East Asian ideograph - - - 21415D - 6479 - E691B9 - East Asian ideograph - - - 21415E - 647A - E691BA - East Asian ideograph - - - 21415F - 645F - E6919F - East Asian ideograph - - - 214160 - 6451 - E69191 - East Asian ideograph - - - 214161 - 6467 - E691A7 - East Asian ideograph - - - 214162 - 649E - E6929E - East Asian ideograph - - - 214163 - 64A4 - E692A4 - East Asian ideograph - - - 214164 - 6487 - E69287 - East Asian ideograph - - - 214165 - 6488 - E69288 - East Asian ideograph - - - 214166 - 64A5 - E692A5 - East Asian ideograph - - - 214167 - 64B0 - E692B0 - East Asian ideograph - - - 214168 - 6493 - E69293 - East Asian ideograph - - - 214169 - 6495 - E69295 - East Asian ideograph - - - 21416A - 6492 - E69292 - East Asian ideograph - - - 21416B - 64A9 - E692A9 - East Asian ideograph - - - 21416C - 6491 - E69291 - East Asian ideograph - - - 21416D - 64AE - E692AE - East Asian ideograph - - - 21416E - 64B2 - E692B2 - East Asian ideograph - - - 21416F - 64AD - E692AD - East Asian ideograph - - - 214170 - 649A - E6929A - East Asian ideograph - - - 214171 - 64AB - E692AB - East Asian ideograph - - - 214172 - 64AC - E692AC - East Asian ideograph - - - 214173 - 64C5 - E69385 - East Asian ideograph - - - 214174 - 64C1 - E69381 - East Asian ideograph - - - 214175 - 64D8 - E69398 - East Asian ideograph - - - 214176 - 64CA - E6938A - East Asian ideograph - - - 214177 - 64BB - E692BB - East Asian ideograph - - - 214178 - 64C2 - E69382 - East Asian ideograph - - - 214179 - 64BC - E692BC - East Asian ideograph - - - 21417A - 64CB - E6938B - East Asian ideograph - - - 21417B - 64CD - E6938D - East Asian ideograph - - - 21417C - 64DA - E6939A - East Asian ideograph - - - 21417D - 64C4 - E69384 - East Asian ideograph - - - 21417E - 64C7 - E69387 - East Asian ideograph - - - 214221 - 64CE - E6938E - East Asian ideograph - - - 214222 - 64D4 - E69394 - East Asian ideograph - - - 214223 - 64D2 - E69392 - East Asian ideograph - - - 214224 - 64BF - E692BF - East Asian ideograph - - - 214225 - 64E0 - E693A0 - East Asian ideograph - - - 214226 - 64F0 - E693B0 - East Asian ideograph - - - 214227 - 64E6 - E693A6 - East Asian ideograph - - - 214228 - 64EC - E693AC - East Asian ideograph - - - 214229 - 64F1 - E693B1 - East Asian ideograph - - - 21422A - 64F4 - E693B4 - East Asian ideograph - - - 21422B - 64F2 - E693B2 - East Asian ideograph - - - 21422C - 6506 - E69486 - East Asian ideograph - - - 21422D - 6500 - E69480 - East Asian ideograph - - - 21422E - 64FE - E693BE - East Asian ideograph - - - 21422F - 64FB - E693BB - East Asian ideograph - - - 214230 - 64FA - E693BA - East Asian ideograph - - - 214231 - 650F - E6948F - East Asian ideograph - - - 214232 - 6518 - E69498 - East Asian ideograph - - - 214233 - 6514 - E69494 - East Asian ideograph - - - 214234 - 6519 - E69499 - East Asian ideograph - - - 214235 - 651D - E6949D - East Asian ideograph - - - 214236 - 651C - E6949C - East Asian ideograph - - - 214237 - 6523 - E694A3 - East Asian ideograph - - - 214238 - 6524 - E694A4 - East Asian ideograph - - - 214239 - 652B - E694AB - East Asian ideograph - - - 21423A - 652A - E694AA - East Asian ideograph - - - 21423B - 652C - E694AC - East Asian ideograph - - - 21423C - 652F - E694AF - East Asian ideograph - - - 21423D - 6536 - E694B6 - East Asian ideograph - - - 21423E - 6539 - E694B9 - East Asian ideograph - - - 21423F - 653B - E694BB - East Asian ideograph - - - 214240 - 653E - E694BE - East Asian ideograph - - - 214241 - 653F - E694BF - East Asian ideograph - - - 214242 - 6545 - E69585 - East Asian ideograph - - - 214243 - 6548 - E69588 - East Asian ideograph - - - 214244 - 654E - E6958E - East Asian ideograph - - - 214245 - 6556 - E69596 - East Asian ideograph - - - 214246 - 6551 - E69591 - East Asian ideograph - - - 214247 - 6557 - E69597 - East Asian ideograph - - - 214248 - 655D - E6959D - East Asian ideograph - - - 214249 - 6558 - E69598 - East Asian ideograph - - - 21424A - 654F - E6958F - East Asian ideograph - - - 21424B - 6566 - E695A6 - East Asian ideograph - - - 21424C - 6562 - E695A2 - East Asian ideograph - - - 21424D - 6563 - E695A3 - East Asian ideograph - - - 21424E - 655E - E6959E - East Asian ideograph - - - 21424F - 5553 - E59593 - East Asian ideograph - - - 214250 - 656C - E695AC - East Asian ideograph - - - 214251 - 6572 - E695B2 - East Asian ideograph - - - 214252 - 6575 - E695B5 - East Asian ideograph - - - 214253 - 6577 - E695B7 - East Asian ideograph - - - 214254 - 6578 - E695B8 - East Asian ideograph - - - 214255 - 6574 - E695B4 - East Asian ideograph - - - 214256 - 6582 - E69682 - East Asian ideograph - - - 214257 - 6583 - E69683 - East Asian ideograph - - - 214258 - 6587 - E69687 - East Asian ideograph - - - 214259 - 6591 - E69691 - East Asian ideograph - - - 21425A - 6590 - E69690 - East Asian ideograph - - - 21425C - 6599 - E69699 - East Asian ideograph - - - 21425D - 659C - E6969C - East Asian ideograph - - - 21425E - 659F - E6969F - East Asian ideograph - - - 21425F - 65A1 - E696A1 - East Asian ideograph - - - 214260 - 65A4 - E696A4 - East Asian ideograph - - - 214261 - 65A5 - E696A5 - East Asian ideograph - - - 214262 - 65A7 - E696A7 - East Asian ideograph - - - 214263 - 65AC - E696AC - East Asian ideograph - - - 214264 - 65AF - E696AF - East Asian ideograph - - - 214265 - 65B0 - E696B0 - East Asian ideograph - - - 214266 - 65B7 - E696B7 - East Asian ideograph - - - 214267 - 65B9 - E696B9 - East Asian ideograph - - - 214269 - 65BD - E696BD - East Asian ideograph - - - 21426A - 65C1 - E69781 - East Asian ideograph - - - 21426B - 65C5 - E69785 - East Asian ideograph - - - 21426C - 65CE - E6978E - East Asian ideograph - - - 21426D - 65CB - E6978B - East Asian ideograph - - - 21426E - 65CC - E6978C - East Asian ideograph - - - 21426F - 65CF - E6978F - East Asian ideograph - - - 214270 - 65D7 - E69797 - East Asian ideograph - - - 214271 - 65D6 - E69796 - East Asian ideograph - - - 214272 - 65E2 - E697A2 - East Asian ideograph - - - 214273 - 65E5 - E697A5 - East Asian ideograph - - - 214275 - 65E9 - E697A9 - East Asian ideograph - - - 214276 - 65EC - E697AC - East Asian ideograph - - - 214277 - 65ED - E697AD - East Asian ideograph - - - 214278 - 65E8 - E697A8 - East Asian ideograph - - - 214279 - 65F1 - E697B1 - East Asian ideograph - - - 21427A - 65FA - E697BA - East Asian ideograph - - - 21427B - 6606 - E69886 - East Asian ideograph - - - 21427C - 6614 - E69894 - East Asian ideograph - - - 21427D - 660C - E6988C - East Asian ideograph - - - 21427E - 6600 - E69880 - East Asian ideograph - - - 214321 - 660E - E6988E - East Asian ideograph - - - 214322 - 6613 - E69893 - East Asian ideograph - - - 214323 - 6602 - E69882 - East Asian ideograph - - - 214324 - 660F - E6988F - East Asian ideograph - - - 214325 - 6625 - E698A5 - East Asian ideograph - - - 214326 - 6627 - E698A7 - East Asian ideograph - - - 214327 - 662F - E698AF - East Asian ideograph - - - 214328 - 662D - E698AD - East Asian ideograph - - - 214329 - 6620 - E698A0 - East Asian ideograph - - - 21432A - 661F - E6989F - East Asian ideograph - - - 21432B - 6628 - E698A8 - East Asian ideograph - - - 21432C - 664F - E6998F - East Asian ideograph - - - 21432D - 6642 - E69982 - East Asian ideograph - - - 21432E - 6652 - E69992 - East Asian ideograph - - - 21432F - 6649 - E69989 - East Asian ideograph - - - 214330 - 6643 - E69983 - East Asian ideograph - - - 214331 - 664C - E6998C - East Asian ideograph - - - 214332 - 665D - E6999D - East Asian ideograph - - - 214333 - 6664 - E699A4 - East Asian ideograph - - - 214334 - 6668 - E699A8 - East Asian ideograph - - - 214335 - 6666 - E699A6 - East Asian ideograph - - - 214336 - 665A - E6999A - East Asian ideograph - - - 214337 - 666F - E699AF - East Asian ideograph - - - 214338 - 666E - E699AE - East Asian ideograph - - - 214339 - 6674 - E699B4 - East Asian ideograph (variant of EACC 4B4339) - - - 21433A - 6691 - E69A91 - East Asian ideograph - - - 21433B - 6670 - E699B0 - East Asian ideograph - - - 21433C - 6676 - E699B6 - East Asian ideograph - - - 21433D - 667A - E699BA - East Asian ideograph - - - 21433E - 6697 - E69A97 - East Asian ideograph - - - 21433F - 6687 - E69A87 - East Asian ideograph - - - 214340 - 6689 - E69A89 - East Asian ideograph - - - 214341 - 6688 - E69A88 - East Asian ideograph - - - 214342 - 6696 - E69A96 - East Asian ideograph - - - 214343 - 66A2 - E69AA2 - East Asian ideograph - - - 214344 - 66AB - E69AAB - East Asian ideograph - - - 214345 - 66B4 - E69AB4 - East Asian ideograph - - - 214346 - 66AE - E69AAE - East Asian ideograph - - - 214347 - 66C1 - E69B81 - East Asian ideograph - - - 214348 - 66C9 - E69B89 - East Asian ideograph - - - 214349 - 66C6 - E69B86 - East Asian ideograph - - - 21434A - 66B9 - E69AB9 - East Asian ideograph - - - 21434B - 66D6 - E69B96 - East Asian ideograph - - - 21434C - 66D9 - E69B99 - East Asian ideograph - - - 21434D - 66E0 - E69BA0 - East Asian ideograph - - - 21434E - 66DD - E69B9D - East Asian ideograph - - - 21434F - 66E6 - E69BA6 - East Asian ideograph - - - 214350 - 66F0 - E69BB0 - East Asian ideograph - - - 214351 - 66F2 - E69BB2 - East Asian ideograph - - - 214352 - 66F3 - E69BB3 - East Asian ideograph - - - 214353 - 66F4 - E69BB4 - East Asian ideograph - - - 214354 - 66F7 - E69BB7 - East Asian ideograph - - - 214355 - 66F8 - E69BB8 - East Asian ideograph - - - 214356 - 66F9 - E69BB9 - East Asian ideograph - - - 214357 - 52D7 - E58B97 - East Asian ideograph - - - 214358 - 66FE - E69BBE - East Asian ideograph - - - 214359 - 66FF - E69BBF - East Asian ideograph - - - 21435A - 6703 - E69C83 - East Asian ideograph - - - 21435B - 6708 - E69C88 - East Asian ideograph - - - 21435C - 6709 - E69C89 - East Asian ideograph - - - 21435D - 670D - E69C8D - East Asian ideograph - - - 21435E - 670B - E69C8B - East Asian ideograph - - - 21435F - 6717 - E69C97 - East Asian ideograph - - - 214360 - 6715 - E69C95 - East Asian ideograph - - - 214361 - 6714 - E69C94 - East Asian ideograph - - - 214362 - 671B - E69C9B - East Asian ideograph - - - 214363 - 671D - E69C9D - East Asian ideograph - - - 214364 - 671F - E69C9F - East Asian ideograph - - - 214366 - 6727 - E69CA7 - East Asian ideograph - - - 214367 - 6728 - E69CA8 - East Asian ideograph - - - 214369 - 672C - E69CAC - East Asian ideograph - - - 21436A - 672B - E69CAB - East Asian ideograph - - - 21436B - 672A - E69CAA - East Asian ideograph - - - 21436D - 673D - E69CBD - East Asian ideograph - - - 21436F - 6731 - E69CB1 - East Asian ideograph - - - 214370 - 6735 - E69CB5 - East Asian ideograph - - - 214371 - 675E - E69D9E - East Asian ideograph - - - 214372 - 6751 - E69D91 - East Asian ideograph - - - 214373 - 674E - E69D8E - East Asian ideograph - - - 214374 - 675C - E69D9C - East Asian ideograph - - - 214375 - 6750 - E69D90 - East Asian ideograph - - - 214376 - 6756 - E69D96 - East Asian ideograph - - - 214377 - 675F - E69D9F - East Asian ideograph - - - 214378 - 674F - E69D8F - East Asian ideograph - - - 214379 - 6749 - E69D89 - East Asian ideograph - - - 21437B - 676D - E69DAD - East Asian ideograph - - - 21437C - 678B - E69E8B - East Asian ideograph - - - 21437D - 6795 - E69E95 - East Asian ideograph - - - 21437E - 6789 - E69E89 - East Asian ideograph - - - 214421 - 6787 - E69E87 - East Asian ideograph - - - 214422 - 6777 - E69DB7 - East Asian ideograph - - - 214423 - 679D - E69E9D - East Asian ideograph - - - 214424 - 6797 - E69E97 - East Asian ideograph - - - 214425 - 676F - E69DAF - East Asian ideograph - - - 214426 - 6771 - E69DB1 - East Asian ideograph - - - 214427 - 6773 - E69DB3 - East Asian ideograph - - - 214428 - 679C - E69E9C - East Asian ideograph - - - 214429 - 6775 - E69DB5 - East Asian ideograph - - - 21442A - 679A - E69E9A - East Asian ideograph - - - 21442B - 6790 - E69E90 - East Asian ideograph - - - 21442D - 677E - E69DBE - East Asian ideograph - - - 21442E - 67D3 - E69F93 - East Asian ideograph - - - 21442F - 67F1 - E69FB1 - East Asian ideograph - - - 214430 - 67FF - E69FBF - East Asian ideograph - - - 214431 - 67D4 - E69F94 - East Asian ideograph - - - 214432 - 67C4 - E69F84 - East Asian ideograph - - - 214433 - 67AF - E69EAF - East Asian ideograph - - - 214434 - 67D0 - E69F90 - East Asian ideograph - - - 214435 - 67D1 - E69F91 - East Asian ideograph - - - 214436 - 67EF - E69FAF - East Asian ideograph - - - 214437 - 67E9 - E69FA9 - East Asian ideograph - - - 214438 - 67B6 - E69EB6 - East Asian ideograph - - - 214439 - 67EC - E69FAC - East Asian ideograph - - - 21443A - 67E5 - E69FA5 - East Asian ideograph - - - 21443B - 67FA - E69FBA - East Asian ideograph - - - 21443C - 67DA - E69F9A - East Asian ideograph - - - 21443D - 6805 - E6A085 - East Asian ideograph - - - 21443E - 67DE - E69F9E - East Asian ideograph - - - 21443F - 67B8 - E69EB8 - East Asian ideograph - - - 214440 - 67CF - E69F8F - East Asian ideograph - - - 214441 - 67F3 - E69FB3 - East Asian ideograph - - - 214442 - 6848 - E6A188 - East Asian ideograph - - - 214443 - 6821 - E6A0A1 - East Asian ideograph - - - 214444 - 6838 - E6A0B8 - East Asian ideograph - - - 214445 - 6853 - E6A193 - East Asian ideograph - - - 214446 - 6846 - E6A186 - East Asian ideograph - - - 214447 - 6842 - E6A182 - East Asian ideograph - - - 214448 - 6854 - E6A194 - East Asian ideograph - - - 214449 - 6817 - E6A097 - East Asian ideograph - - - 21444A - 683D - E6A0BD - East Asian ideograph - - - 21444B - 6851 - E6A191 - East Asian ideograph - - - 21444C - 6829 - E6A0A9 - East Asian ideograph - - - 21444D - 6850 - E6A190 - East Asian ideograph - - - 21444E - 6839 - E6A0B9 - East Asian ideograph - - - 214450 - 67F4 - E69FB4 - East Asian ideograph - - - 214451 - 6843 - E6A183 - East Asian ideograph - - - 214452 - 6840 - E6A180 - East Asian ideograph - - - 214453 - 682A - E6A0AA - East Asian ideograph - - - 214454 - 6845 - E6A185 - East Asian ideograph - - - 214455 - 683C - E6A0BC - East Asian ideograph - - - 214456 - 6813 - E6A093 - East Asian ideograph (variant of EACC 4B4456) - - - 214457 - 6881 - E6A281 - East Asian ideograph - - - 214458 - 6893 - E6A293 - East Asian ideograph - - - 214459 - 68AF - E6A2AF - East Asian ideograph - - - 21445A - 6876 - E6A1B6 - East Asian ideograph - - - 21445B - 68B0 - E6A2B0 - East Asian ideograph - - - 21445C - 68A7 - E6A2A7 - East Asian ideograph - - - 21445D - 6897 - E6A297 - East Asian ideograph - - - 21445E - 68B5 - E6A2B5 - East Asian ideograph - - - 21445F - 68B3 - E6A2B3 - East Asian ideograph - - - 214460 - 68A2 - E6A2A2 - East Asian ideograph - - - 214461 - 687F - E6A1BF - East Asian ideograph - - - 214462 - 68B1 - E6A2B1 - East Asian ideograph - - - 214463 - 689D - E6A29D - East Asian ideograph - - - 214464 - 68AD - E6A2AD - East Asian ideograph - - - 214465 - 6886 - E6A286 - East Asian ideograph - - - 214466 - 6885 - E6A285 - East Asian ideograph - - - 214467 - 68A8 - E6A2A8 - East Asian ideograph - - - 214468 - 689F - E6A29F - East Asian ideograph - - - 214469 - 6894 - E6A294 - East Asian ideograph - - - 21446A - 6883 - E6A283 - East Asian ideograph - - - 21446B - 68D5 - E6A395 - East Asian ideograph - - - 21446C - 68FA - E6A3BA - East Asian ideograph - - - 21446D - 68C4 - E6A384 - East Asian ideograph - - - 21446E - 68F2 - E6A3B2 - East Asian ideograph - - - 21446F - 68D2 - E6A392 - East Asian ideograph - - - 214470 - 68E3 - E6A3A3 - East Asian ideograph - - - 214471 - 68DF - E6A39F - East Asian ideograph - - - 214472 - 68CB - E6A38B - East Asian ideograph - - - 214473 - 68EE - E6A3AE - East Asian ideograph - - - 214474 - 690D - E6A48D - East Asian ideograph - - - 214475 - 6905 - E6A485 - East Asian ideograph - - - 214476 - 68E7 - E6A3A7 - East Asian ideograph - - - 214477 - 68E0 - E6A3A0 - East Asian ideograph - - - 214478 - 68F5 - E6A3B5 - East Asian ideograph - - - 214479 - 68CD - E6A38D - East Asian ideograph - - - 21447A - 68D7 - E6A397 - East Asian ideograph - - - 21447B - 68D8 - E6A398 - East Asian ideograph - - - 21447C - 6912 - E6A492 - East Asian ideograph - - - 21447D - 68F9 - E6A3B9 - East Asian ideograph - - - 21447E - 68DA - E6A39A - East Asian ideograph - - - 214521 - 690E - E6A48E - East Asian ideograph - - - 214522 - 68C9 - E6A389 - East Asian ideograph - - - 214523 - 6954 - E6A594 - East Asian ideograph - - - 214524 - 6930 - E6A4B0 - East Asian ideograph - - - 214525 - 6977 - E6A5B7 - East Asian ideograph - - - 214526 - 6975 - E6A5B5 - East Asian ideograph - - - 214527 - 695A - E6A59A - East Asian ideograph - - - 214528 - 6960 - E6A5A0 - East Asian ideograph - - - 214529 - 696B - E6A5AB - East Asian ideograph - - - 21452A - 694A - E6A58A - East Asian ideograph - - - 21452B - 6968 - E6A5A8 - East Asian ideograph - - - 21452C - 695E - E6A59E - East Asian ideograph - - - 21452D - 696D - E6A5AD - East Asian ideograph - - - 21452E - 6979 - E6A5B9 - East Asian ideograph - - - 21452F - 6953 - E6A593 - East Asian ideograph - - - 214530 - 6986 - E6A686 - East Asian ideograph - - - 214531 - 69A8 - E6A6A8 - East Asian ideograph - - - 214532 - 6995 - E6A695 - East Asian ideograph - - - 214533 - 699C - E6A69C - East Asian ideograph - - - 214534 - 6994 - E6A694 - East Asian ideograph - - - 214535 - 69C1 - E6A781 - East Asian ideograph - - - 214536 - 69B7 - E6A6B7 - East Asian ideograph - - - 214537 - 69AE - E6A6AE - East Asian ideograph - - - 214538 - 699B - E6A69B - East Asian ideograph - - - 214539 - 69CB - E6A78B - East Asian ideograph - - - 21453A - 69D3 - E6A793 - East Asian ideograph - - - 21453B - 69BB - E6A6BB - East Asian ideograph - - - 21453C - 69AB - E6A6AB - East Asian ideograph - - - 21453D - 69CC - E6A78C - East Asian ideograph - - - 21453E - 69AD - E6A6AD - East Asian ideograph - - - 21453F - 69D0 - E6A790 - East Asian ideograph - - - 214540 - 69CD - E6A78D - East Asian ideograph - - - 214541 - 69B4 - E6A6B4 - East Asian ideograph - - - 214542 - 6A1F - E6A89F - East Asian ideograph - - - 214543 - 69E8 - E6A7A8 - East Asian ideograph - - - 214544 - 6A23 - E6A8A3 - East Asian ideograph - - - 214545 - 69EA - E6A7AA - East Asian ideograph - - - 214546 - 6A01 - E6A881 - East Asian ideograph - - - 214547 - 6A19 - E6A899 - East Asian ideograph - - - 214548 - 69FD - E6A7BD - East Asian ideograph - - - 214549 - 6A1E - E6A89E - East Asian ideograph - - - 21454A - 6A13 - E6A893 - East Asian ideograph - - - 21454B - 6A21 - E6A8A1 - East Asian ideograph - - - 21454C - 69F3 - E6A7B3 - East Asian ideograph - - - 21454D - 6A0A - E6A88A - East Asian ideograph - - - 21454E - 6A02 - E6A882 - East Asian ideograph - - - 21454F - 6A05 - E6A885 - East Asian ideograph - - - 214550 - 6A3D - E6A8BD - East Asian ideograph - - - 214551 - 6A58 - E6A998 - East Asian ideograph - - - 214552 - 6A59 - E6A999 - East Asian ideograph - - - 214553 - 6A62 - E6A9A2 - East Asian ideograph - - - 214554 - 6A44 - E6A984 - East Asian ideograph - - - 214555 - 6A39 - E6A8B9 - East Asian ideograph - - - 214556 - 6A6B - E6A9AB - East Asian ideograph - - - 214557 - 6A3A - E6A8BA - East Asian ideograph - - - 214558 - 6A38 - E6A8B8 - East Asian ideograph - - - 214559 - 6A47 - E6A987 - East Asian ideograph - - - 21455A - 6A61 - E6A9A1 - East Asian ideograph - - - 21455B - 6A4B - E6A98B - East Asian ideograph - - - 21455C - 6A35 - E6A8B5 - East Asian ideograph - - - 21455D - 6A5F - E6A99F - East Asian ideograph - - - 21455E - 6A80 - E6AA80 - East Asian ideograph - - - 21455F - 6A94 - E6AA94 - East Asian ideograph - - - 214560 - 6A84 - E6AA84 - East Asian ideograph - - - 214561 - 6AA2 - E6AAA2 - East Asian ideograph - - - 214562 - 6A9C - E6AA9C - East Asian ideograph - - - 214563 - 6AB8 - E6AAB8 - East Asian ideograph - - - 214564 - 6AB3 - E6AAB3 - East Asian ideograph - - - 214565 - 6AC3 - E6AB83 - East Asian ideograph - - - 214566 - 6ABB - E6AABB - East Asian ideograph - - - 214568 - 6AAC - E6AAAC - East Asian ideograph - - - 214569 - 6AE5 - E6ABA5 - East Asian ideograph - - - 21456A - 6ADA - E6AB9A - East Asian ideograph - - - 21456B - 6ADD - E6AB9D - East Asian ideograph - - - 21456C - 6ADB - E6AB9B - East Asian ideograph - - - 21456D - 6AD3 - E6AB93 - East Asian ideograph - - - 21456E - 6B04 - E6AC84 - East Asian ideograph - - - 21456F - 6AFB - E6ABBB - East Asian ideograph - - - 214570 - 6B0A - E6AC8A - East Asian ideograph - - - 214571 - 6B16 - E6AC96 - East Asian ideograph - - - 214573 - 6B21 - E6ACA1 - East Asian ideograph - - - 214574 - 6B23 - E6ACA3 - East Asian ideograph - - - 214576 - 6B3E - E6ACBE - East Asian ideograph - - - 214577 - 6B3A - E6ACBA - East Asian ideograph - - - 214578 - 6B3D - E6ACBD - East Asian ideograph - - - 214579 - 6B47 - E6AD87 - East Asian ideograph - - - 21457A - 6B49 - E6AD89 - East Asian ideograph - - - 21457B - 6B4C - E6AD8C - East Asian ideograph - - - 21457C - 6B50 - E6AD90 - East Asian ideograph - - - 21457D - 6B59 - E6AD99 - East Asian ideograph - - - 21457E - 6B5F - E6AD9F - East Asian ideograph - - - 214621 - 6B61 - E6ADA1 - East Asian ideograph - - - 214623 - 6B63 - E6ADA3 - East Asian ideograph - - - 214624 - 6B64 - E6ADA4 - East Asian ideograph - - - 214625 - 6B65 - E6ADA5 - East Asian ideograph - - - 214627 - 6B66 - E6ADA6 - East Asian ideograph - - - 214628 - 6B6A - E6ADAA - East Asian ideograph - - - 214629 - 6B72 - E6ADB2 - East Asian ideograph - - - 21462A - 6B77 - E6ADB7 - East Asian ideograph - - - 21462B - 6B78 - E6ADB8 - East Asian ideograph - - - 21462C - 6B79 - E6ADB9 - East Asian ideograph - - - 21462D - 6B7B - E6ADBB - East Asian ideograph - - - 21462E - 6B7F - E6ADBF - East Asian ideograph - - - 21462F - 6B83 - E6AE83 - East Asian ideograph - - - 214630 - 6B86 - E6AE86 - East Asian ideograph - - - 214631 - 6B8A - E6AE8A - East Asian ideograph - - - 214632 - 6B89 - E6AE89 - East Asian ideograph - - - 214633 - 6B98 - E6AE98 - East Asian ideograph - - - 214634 - 6B96 - E6AE96 - East Asian ideograph - - - 214635 - 6BA4 - E6AEA4 - East Asian ideograph - - - 214636 - 6BAE - E6AEAE - East Asian ideograph - - - 214637 - 6BAF - E6AEAF - East Asian ideograph - - - 214638 - 6BB2 - E6AEB2 - East Asian ideograph - - - 214639 - 6BB5 - E6AEB5 - East Asian ideograph - - - 21463A - 6BB7 - E6AEB7 - East Asian ideograph - - - 21463B - 6BBA - E6AEBA - East Asian ideograph - - - 21463C - 6BBC - E6AEBC - East Asian ideograph - - - 21463D - 6BC0 - E6AF80 - East Asian ideograph - - - 21463E - 6BBF - E6AEBF - East Asian ideograph - - - 21463F - 6BC5 - E6AF85 - East Asian ideograph - - - 214640 - 6BC6 - E6AF86 - East Asian ideograph - - - 214641 - 6BCB - E6AF8B - East Asian ideograph - - - 214642 - 6BCD - E6AF8D - East Asian ideograph - - - 214643 - 6BCF - E6AF8F - East Asian ideograph - - - 214644 - 6BD2 - E6AF92 - East Asian ideograph - - - 214646 - 6BD4 - E6AF94 - East Asian ideograph - - - 214647 - 6BD7 - E6AF97 - East Asian ideograph - - - 214648 - 6BDB - E6AF9B - East Asian ideograph - - - 214649 - 6BEB - E6AFAB - East Asian ideograph - - - 21464A - 6BEF - E6AFAF - East Asian ideograph - - - 21464B - 6BFD - E6AFBD - East Asian ideograph - - - 21464C - 6C0F - E6B08F - East Asian ideograph - - - 21464D - 6C11 - E6B091 - East Asian ideograph - - - 21464E - 6C10 - E6B090 - East Asian ideograph - - - 21464F - 6C13 - E6B093 - East Asian ideograph - - - 214650 - 6C16 - E6B096 - East Asian ideograph - - - 214651 - 6C1B - E6B09B - East Asian ideograph - - - 214652 - 6C1F - E6B09F - East Asian ideograph - - - 214653 - 6C27 - E6B0A7 - East Asian ideograph - - - 214654 - 6C26 - E6B0A6 - East Asian ideograph - - - 214655 - 6C23 - E6B0A3 - East Asian ideograph - - - 214656 - 6C28 - E6B0A8 - East Asian ideograph - - - 214657 - 6C24 - E6B0A4 - East Asian ideograph - - - 214658 - 6C2B - E6B0AB - East Asian ideograph - - - 214659 - 6C2E - E6B0AE - East Asian ideograph - - - 21465A - 6C33 - E6B0B3 - East Asian ideograph - - - 21465B - 6C2F - E6B0AF - East Asian ideograph (variant of EACC 45465B) - - - 21465C - 6C34 - E6B0B4 - East Asian ideograph - - - 21465D - 6C38 - E6B0B8 - East Asian ideograph - - - 21465E - 6C41 - E6B181 - East Asian ideograph - - - 214660 - 6C40 - E6B180 - East Asian ideograph - - - 214661 - 6C42 - E6B182 - East Asian ideograph - - - 214662 - 6C5E - E6B19E - East Asian ideograph - - - 214663 - 6C57 - E6B197 - East Asian ideograph - - - 214664 - 6C5F - E6B19F - East Asian ideograph - - - 214665 - 6C59 - E6B199 - East Asian ideograph - - - 214666 - 6C60 - E6B1A0 - East Asian ideograph - - - 214667 - 6C55 - E6B195 - East Asian ideograph - - - 214668 - 6C50 - E6B190 - East Asian ideograph - - - 214669 - 6C5D - E6B19D - East Asian ideograph - - - 21466A - 6C9B - E6B29B - East Asian ideograph - - - 21466B - 6C81 - E6B281 - East Asian ideograph - - - 21466D - 6C7A - E6B1BA - East Asian ideograph - - - 21466E - 6C6A - E6B1AA - East Asian ideograph - - - 21466F - 6C8C - E6B28C - East Asian ideograph - - - 214670 - 6C90 - E6B290 - East Asian ideograph - - - 214671 - 6C72 - E6B1B2 - East Asian ideograph - - - 214672 - 6C70 - E6B1B0 - East Asian ideograph - - - 214673 - 6C68 - E6B1A8 - East Asian ideograph - - - 214674 - 6C96 - E6B296 - East Asian ideograph - - - 214676 - 6C89 - E6B289 - East Asian ideograph (variant of EACC 4B4676) - - - 214677 - 6C99 - E6B299 - East Asian ideograph - - - 214678 - 6C7E - E6B1BE - East Asian ideograph - - - 214679 - 6C7D - E6B1BD - East Asian ideograph - - - 21467A - 6C92 - E6B292 - East Asian ideograph - - - 21467B - 6C83 - E6B283 - East Asian ideograph - - - 21467C - 6CB1 - E6B2B1 - East Asian ideograph - - - 21467E - 6CF3 - E6B3B3 - East Asian ideograph - - - 214721 - 6CE3 - E6B3A3 - East Asian ideograph - - - 214722 - 6CF0 - E6B3B0 - East Asian ideograph - - - 214723 - 6CB8 - E6B2B8 - East Asian ideograph - - - 214724 - 6CD3 - E6B393 - East Asian ideograph - - - 214725 - 6CAB - E6B2AB - East Asian ideograph - - - 214726 - 6CE5 - E6B3A5 - East Asian ideograph - - - 214727 - 6CBD - E6B2BD - East Asian ideograph - - - 214728 - 6CB3 - E6B2B3 - East Asian ideograph - - - 214729 - 6CC4 - E6B384 - East Asian ideograph - - - 21472A - 6CD5 - E6B395 - East Asian ideograph - - - 21472B - 6CE2 - E6B3A2 - East Asian ideograph - - - 21472C - 6CBC - E6B2BC - East Asian ideograph - - - 21472D - 6CAE - E6B2AE - East Asian ideograph - - - 21472E - 6CB9 - E6B2B9 - East Asian ideograph - - - 21472F - 6CF1 - E6B3B1 - East Asian ideograph - - - 214730 - 6CC1 - E6B381 - East Asian ideograph - - - 214731 - 6CBE - E6B2BE - East Asian ideograph - - - 214732 - 6CC5 - E6B385 - East Asian ideograph - - - 214733 - 6CD7 - E6B397 - East Asian ideograph - - - 214734 - 6CBB - E6B2BB - East Asian ideograph - - - 214735 - 6CDB - E6B39B - East Asian ideograph - - - 214736 - 6CE1 - E6B3A1 - East Asian ideograph - - - 214737 - 6CBF - E6B2BF - East Asian ideograph - - - 214738 - 6CCA - E6B38A - East Asian ideograph - - - 214739 - 6CCC - E6B38C - East Asian ideograph - - - 21473A - 6CC9 - E6B389 - East Asian ideograph - - - 21473B - 6D41 - E6B581 - East Asian ideograph - - - 21473C - 6D0B - E6B48B - East Asian ideograph - - - 21473D - 6D32 - E6B4B2 - East Asian ideograph - - - 21473E - 6D25 - E6B4A5 - East Asian ideograph - - - 21473F - 6D31 - E6B4B1 - East Asian ideograph - - - 214740 - 6D2A - E6B4AA - East Asian ideograph - - - 214741 - 6D0C - E6B48C - East Asian ideograph - - - 214742 - 6D1E - E6B49E - East Asian ideograph - - - 214743 - 6D17 - E6B497 - East Asian ideograph - - - 214744 - 6D3B - E6B4BB - East Asian ideograph - - - 214745 - 6D1B - E6B49B - East Asian ideograph - - - 214746 - 6D36 - E6B4B6 - East Asian ideograph - - - 214747 - 6D3D - E6B4BD - East Asian ideograph - - - 214748 - 6D3E - E6B4BE - East Asian ideograph - - - 214749 - 6D6A - E6B5AA - East Asian ideograph - - - 21474A - 6D95 - E6B695 - East Asian ideograph - - - 21474B - 6D78 - E6B5B8 - East Asian ideograph - - - 21474C - 6D66 - E6B5A6 - East Asian ideograph - - - 21474D - 6D59 - E6B599 - East Asian ideograph - - - 21474E - 6D87 - E6B687 - East Asian ideograph - - - 21474F - 6D88 - E6B688 - East Asian ideograph - - - 214750 - 6D6C - E6B5AC - East Asian ideograph - - - 214751 - 6D93 - E6B693 - East Asian ideograph - - - 214752 - 6D89 - E6B689 - East Asian ideograph - - - 214753 - 6D6E - E6B5AE - East Asian ideograph - - - 214754 - 6D74 - E6B5B4 - East Asian ideograph - - - 214755 - 6D5A - E6B59A - East Asian ideograph - - - 214756 - 6D69 - E6B5A9 - East Asian ideograph - - - 214757 - 6D77 - E6B5B7 - East Asian ideograph - - - 214758 - 6DD9 - E6B799 - East Asian ideograph - - - 214759 - 6DDA - E6B79A - East Asian ideograph - - - 21475A - 6DF3 - E6B7B3 - East Asian ideograph - - - 21475B - 6DBC - E6B6BC - East Asian ideograph - - - 21475C - 6DE4 - E6B7A4 - East Asian ideograph - - - 21475D - 6DB2 - E6B6B2 - East Asian ideograph - - - 21475E - 6DE1 - E6B7A1 - East Asian ideograph - - - 21475F - 6DD2 - E6B792 - East Asian ideograph - - - 214760 - 6DAE - E6B6AE - East Asian ideograph - - - 214761 - 6DF8 - E6B7B8 - East Asian ideograph - - - 214762 - 6DC7 - E6B787 - East Asian ideograph - - - 214763 - 6DCB - E6B78B - East Asian ideograph - - - 214764 - 6DC5 - E6B785 - East Asian ideograph - - - 214765 - 6DDE - E6B79E - East Asian ideograph - - - 214766 - 6DAF - E6B6AF - East Asian ideograph - - - 214767 - 6DB5 - E6B6B5 - East Asian ideograph - - - 214768 - 6DFA - E6B7BA - East Asian ideograph - - - 214769 - 6DF9 - E6B7B9 - East Asian ideograph - - - 21476A - 6DCC - E6B78C - East Asian ideograph - - - 21476B - 6DF7 - E6B7B7 - East Asian ideograph - - - 21476C - 6DB8 - E6B6B8 - East Asian ideograph - - - 21476D - 6DD1 - E6B791 - East Asian ideograph - - - 21476E - 6DF1 - E6B7B1 - East Asian ideograph - - - 21476F - 6DE8 - E6B7A8 - East Asian ideograph - - - 214770 - 6DEB - E6B7AB - East Asian ideograph - - - 214771 - 6DD8 - E6B798 - East Asian ideograph - - - 214772 - 6DFB - E6B7BB - East Asian ideograph - - - 214773 - 6DEE - E6B7AE - East Asian ideograph - - - 214774 - 6DF5 - E6B7B5 - East Asian ideograph - - - 214775 - 6D8E - E6B68E - East Asian ideograph - - - 214776 - 6DC6 - E6B786 - East Asian ideograph - - - 214777 - 6DEA - E6B7AA - East Asian ideograph - - - 214778 - 6DC4 - E6B784 - East Asian ideograph - - - 214779 - 6E54 - E6B994 - East Asian ideograph - - - 21477A - 6E21 - E6B8A1 - East Asian ideograph - - - 21477B - 6E38 - E6B8B8 - East Asian ideograph - - - 21477C - 6E32 - E6B8B2 - East Asian ideograph - - - 21477D - 6E67 - E6B9A7 - East Asian ideograph - - - 21477E - 6E20 - E6B8A0 - East Asian ideograph - - - 214821 - 6E5B - E6B99B - East Asian ideograph - - - 214822 - 6E1A - E6B89A - East Asian ideograph - - - 214823 - 6E56 - E6B996 - East Asian ideograph - - - 214824 - 6E2F - E6B8AF - East Asian ideograph - - - 214825 - 6E6E - E6B9AE - East Asian ideograph - - - 214826 - 6E58 - E6B998 - East Asian ideograph - - - 214827 - 6E23 - E6B8A3 - East Asian ideograph - - - 214828 - 6E24 - E6B8A4 - East Asian ideograph - - - 214829 - 6E1B - E6B89B - East Asian ideograph - - - 21482A - 6E25 - E6B8A5 - East Asian ideograph - - - 21482B - 6E4A - E6B98A - East Asian ideograph - - - 21482C - 6E3A - E6B8BA - East Asian ideograph - - - 21482D - 6E6F - E6B9AF - East Asian ideograph - - - 21482E - 6E2D - E6B8AD - East Asian ideograph - - - 21482F - 6E34 - E6B8B4 - East Asian ideograph - - - 214830 - 6E2C - E6B8AC - East Asian ideograph - - - 214831 - 6E26 - E6B8A6 - East Asian ideograph - - - 214832 - 6E4D - E6B98D - East Asian ideograph - - - 214833 - 6E3E - E6B8BE - East Asian ideograph - - - 214834 - 6E43 - E6B983 - East Asian ideograph - - - 214835 - 6E19 - E6B899 - East Asian ideograph - - - 214836 - 6E1D - E6B89D - East Asian ideograph - - - 214837 - 6ED3 - E6BB93 - East Asian ideograph - - - 214838 - 6EB6 - E6BAB6 - East Asian ideograph - - - 214839 - 6EC2 - E6BB82 - East Asian ideograph - - - 21483B - 6EAF - E6BAAF - East Asian ideograph - - - 21483C - 6EA2 - E6BAA2 - East Asian ideograph - - - 21483D - 6E9D - E6BA9D - East Asian ideograph - - - 21483F - 6EA5 - E6BAA5 - East Asian ideograph - - - 214840 - 6E98 - E6BA98 - East Asian ideograph - - - 214841 - 6E90 - E6BA90 - East Asian ideograph - - - 214842 - 6EC5 - E6BB85 - East Asian ideograph - - - 214843 - 6EC7 - E6BB87 - East Asian ideograph - - - 214844 - 6EBC - E6BABC - East Asian ideograph - - - 214845 - 6EAB - E6BAAB - East Asian ideograph - - - 214846 - 6ED1 - E6BB91 - East Asian ideograph - - - 214847 - 6ECB - E6BB8B - East Asian ideograph - - - 214848 - 6EC4 - E6BB84 - East Asian ideograph - - - 214849 - 6ED4 - E6BB94 - East Asian ideograph - - - 21484A - 6EAA - E6BAAA - East Asian ideograph - - - 21484B - 6E96 - E6BA96 - East Asian ideograph - - - 21484C - 6E9C - E6BA9C - East Asian ideograph - - - 21484D - 6F33 - E6BCB3 - East Asian ideograph - - - 21484E - 6EF4 - E6BBB4 - East Asian ideograph - - - 21484F - 6EEC - E6BBAC - East Asian ideograph - - - 214850 - 6EFE - E6BBBE - East Asian ideograph - - - 214851 - 6F29 - E6BCA9 - East Asian ideograph - - - 214852 - 6F14 - E6BC94 - East Asian ideograph - - - 214853 - 6F3E - E6BCBE - East Asian ideograph - - - 214854 - 6F2C - E6BCAC - East Asian ideograph - - - 214855 - 6F32 - E6BCB2 - East Asian ideograph - - - 214856 - 6F0F - E6BC8F - East Asian ideograph - - - 214857 - 6F22 - E6BCA2 - East Asian ideograph (variant of EACC 4B4857) - - - 214858 - 6EFF - E6BBBF - East Asian ideograph - - - 214859 - 6F23 - E6BCA3 - East Asian ideograph - - - 21485A - 6F38 - E6BCB8 - East Asian ideograph - - - 21485B - 6F15 - E6BC95 - East Asian ideograph - - - 21485C - 6F31 - E6BCB1 - East Asian ideograph - - - 21485D - 6F02 - E6BC82 - East Asian ideograph - - - 21485E - 6F06 - E6BC86 - East Asian ideograph - - - 21485F - 6EEF - E6BBAF - East Asian ideograph - - - 214860 - 6F2B - E6BCAB - East Asian ideograph - - - 214861 - 6F2F - E6BCAF - East Asian ideograph - - - 214862 - 6F20 - E6BCA0 - East Asian ideograph - - - 214863 - 6F3F - E6BCBF - East Asian ideograph - - - 214864 - 6EF2 - E6BBB2 - East Asian ideograph - - - 214865 - 6F01 - E6BC81 - East Asian ideograph - - - 214866 - 6F11 - E6BC91 - East Asian ideograph - - - 214867 - 6ECC - E6BB8C - East Asian ideograph - - - 214868 - 6F2A - E6BCAA - East Asian ideograph - - - 214869 - 6F7C - E6BDBC - East Asian ideograph - - - 21486A - 6F88 - E6BE88 - East Asian ideograph - - - 21486B - 6F84 - E6BE84 - East Asian ideograph - - - 21486C - 6F51 - E6BD91 - East Asian ideograph - - - 21486D - 6F64 - E6BDA4 - East Asian ideograph - - - 21486E - 6F97 - E6BE97 - East Asian ideograph - - - 21486F - 6F54 - E6BD94 - East Asian ideograph - - - 214870 - 6F7A - E6BDBA - East Asian ideograph - - - 214871 - 6F86 - E6BE86 - East Asian ideograph - - - 214872 - 6F8E - E6BE8E - East Asian ideograph - - - 214873 - 6F6D - E6BDAD - East Asian ideograph - - - 214874 - 6F5B - E6BD9B - East Asian ideograph - - - 214875 - 6F6E - E6BDAE - East Asian ideograph - - - 214876 - 6F78 - E6BDB8 - East Asian ideograph - - - 214877 - 6F66 - E6BDA6 - East Asian ideograph - - - 214878 - 6F70 - E6BDB0 - East Asian ideograph - - - 214879 - 6F58 - E6BD98 - East Asian ideograph - - - 21487A - 6FC2 - E6BF82 - East Asian ideograph - - - 21487B - 6FB1 - E6BEB1 - East Asian ideograph - - - 21487C - 6FC3 - E6BF83 - East Asian ideograph - - - 21487D - 6FA7 - E6BEA7 - East Asian ideograph - - - 21487E - 6FA1 - E6BEA1 - East Asian ideograph - - - 214921 - 6FA4 - E6BEA4 - East Asian ideograph - - - 214922 - 6FC1 - E6BF81 - East Asian ideograph - - - 214924 - 6FC0 - E6BF80 - East Asian ideograph - - - 214925 - 6FB3 - E6BEB3 - East Asian ideograph - - - 214926 - 6FDF - E6BF9F - East Asian ideograph - - - 214927 - 6FD8 - E6BF98 - East Asian ideograph - - - 214928 - 6FF1 - E6BFB1 - East Asian ideograph - - - 214929 - 6FE0 - E6BFA0 - East Asian ideograph - - - 21492A - 6FEF - E6BFAF - East Asian ideograph - - - 21492B - 6FEB - E6BFAB - East Asian ideograph (variant of EACC 4B492B) - - - 21492C - 6FE1 - E6BFA1 - East Asian ideograph - - - 21492D - 6FE4 - E6BFA4 - East Asian ideograph - - - 21492E - 6F80 - E6BE80 - East Asian ideograph - - - 214931 - 700B - E7808B - East Asian ideograph - - - 214932 - 7009 - E78089 - East Asian ideograph - - - 214933 - 7006 - E78086 - East Asian ideograph - - - 214934 - 6FFA - E6BFBA - East Asian ideograph - - - 214935 - 7011 - E78091 - East Asian ideograph - - - 214936 - 6FFE - E6BFBE - East Asian ideograph - - - 214937 - 700F - E7808F - East Asian ideograph - - - 214938 - 701B - E7809B - East Asian ideograph - - - 214939 - 701A - E7809A - East Asian ideograph - - - 21493A - 7028 - E780A8 - East Asian ideograph - - - 21493B - 701D - E7809D - East Asian ideograph - - - 21493C - 7015 - E78095 - East Asian ideograph - - - 21493D - 701F - E7809F - East Asian ideograph - - - 21493F - 703E - E780BE - East Asian ideograph - - - 214940 - 704C - E7818C - East Asian ideograph - - - 214941 - 7051 - E78191 - East Asian ideograph - - - 214942 - 7058 - E78198 - East Asian ideograph - - - 214943 - 7063 - E781A3 - East Asian ideograph - - - 214944 - 7064 - E781A4 - East Asian ideograph - - - 214945 - 706B - E781AB - East Asian ideograph - - - 214946 - 7070 - E781B0 - East Asian ideograph - - - 214947 - 7076 - E781B6 - East Asian ideograph - - - 214948 - 707C - E781BC - East Asian ideograph - - - 214949 - 7078 - E781B8 - East Asian ideograph - - - 21494A - 707D - E781BD - East Asian ideograph - - - 21494B - 7095 - E78295 - East Asian ideograph - - - 21494C - 708E - E7828E - East Asian ideograph - - - 21494D - 7092 - E78292 - East Asian ideograph - - - 21494E - 7099 - E78299 - East Asian ideograph - - - 21494F - 708A - E7828A - East Asian ideograph - - - 214950 - 70AB - E782AB - East Asian ideograph - - - 214951 - 70BA - E782BA - East Asian ideograph - - - 214952 - 70AC - E782AC - East Asian ideograph - - - 214953 - 70B3 - E782B3 - East Asian ideograph - - - 214954 - 70AF - E782AF - East Asian ideograph - - - 214955 - 70AD - E782AD - East Asian ideograph - - - 214956 - 70AE - E782AE - East Asian ideograph - - - 214957 - 70B8 - E782B8 - East Asian ideograph - - - 214958 - 70CA - E7838A - East Asian ideograph - - - 214959 - 70E4 - E783A4 - East Asian ideograph - - - 21495A - 70D8 - E78398 - East Asian ideograph - - - 21495B - 70C8 - E78388 - East Asian ideograph - - - 21495C - 70D9 - E78399 - East Asian ideograph - - - 21495D - 70CF - E7838F - East Asian ideograph - - - 21495E - 70F9 - E783B9 - East Asian ideograph - - - 21495F - 7109 - E78489 - East Asian ideograph - - - 214960 - 710A - E7848A - East Asian ideograph - - - 214961 - 70FD - E783BD - East Asian ideograph - - - 214962 - 7119 - E78499 - East Asian ideograph - - - 214963 - 716E - E785AE - East Asian ideograph - - - 214964 - 711A - E7849A - East Asian ideograph - - - 214965 - 7136 - E784B6 - East Asian ideograph - - - 214966 - 7121 - E784A1 - East Asian ideograph - - - 214967 - 7130 - E784B0 - East Asian ideograph - - - 214968 - 7126 - E784A6 - East Asian ideograph - - - 214969 - 714E - E7858E - East Asian ideograph - - - 21496A - 7149 - E78589 - East Asian ideograph - - - 21496B - 7159 - E78599 - East Asian ideograph - - - 21496C - 7164 - E785A4 - East Asian ideograph - - - 21496D - 7169 - E785A9 - East Asian ideograph - - - 21496E - 715C - E7859C - East Asian ideograph - - - 21496F - 716C - E785AC - East Asian ideograph - - - 214970 - 7166 - E785A6 - East Asian ideograph - - - 214971 - 7167 - E785A7 - East Asian ideograph - - - 214972 - 715E - E7859E - East Asian ideograph - - - 214973 - 7165 - E785A5 - East Asian ideograph - - - 214974 - 714C - E7858C - East Asian ideograph - - - 214975 - 717D - E785BD - East Asian ideograph - - - 214977 - 7199 - E78699 - East Asian ideograph - - - 214978 - 718A - E7868A - East Asian ideograph - - - 214979 - 7184 - E78684 - East Asian ideograph - - - 21497A - 719F - E7869F - East Asian ideograph - - - 21497B - 71A8 - E786A8 - East Asian ideograph - - - 21497C - 71AC - E786AC - East Asian ideograph - - - 21497D - 71B1 - E786B1 - East Asian ideograph - - - 21497E - 71D9 - E78799 - East Asian ideograph - - - 214A21 - 71BE - E786BE - East Asian ideograph - - - 214A22 - 71C9 - E78789 - East Asian ideograph - - - 214A23 - 71D0 - E78790 - East Asian ideograph - - - 214A24 - 71C8 - E78788 - East Asian ideograph - - - 214A25 - 71DC - E7879C - East Asian ideograph - - - 214A26 - 71D2 - E78792 - East Asian ideograph - - - 214A27 - 71B9 - E786B9 - East Asian ideograph - - - 214A28 - 71D5 - E78795 - East Asian ideograph - - - 214A29 - 71CE - E7878E - East Asian ideograph - - - 214A2A - 71C3 - E78783 - East Asian ideograph - - - 214A2B - 71C4 - E78784 - East Asian ideograph - - - 214A2C - 71EE - E787AE - East Asian ideograph - - - 214A2D - 71E7 - E787A7 - East Asian ideograph - - - 214A2E - 71DF - E7879F - East Asian ideograph - - - 214A2F - 71E5 - E787A5 - East Asian ideograph - - - 214A30 - 71ED - E787AD - East Asian ideograph - - - 214A31 - 71E6 - E787A6 - East Asian ideograph - - - 214A32 - 71EC - E787AC - East Asian ideograph - - - 214A33 - 71F4 - E787B4 - East Asian ideograph - - - 214A34 - 71FB - E787BB - East Asian ideograph - - - 214A35 - 7206 - E78886 - East Asian ideograph - - - 214A36 - 720D - E7888D - East Asian ideograph - - - 214A37 - 7210 - E78890 - East Asian ideograph - - - 214A38 - 721B - E7889B - East Asian ideograph - - - 214A39 - 7228 - E788A8 - East Asian ideograph - - - 214A3A - 722A - E788AA - East Asian ideograph - - - 214A3B - 722D - E788AD - East Asian ideograph - - - 214A3C - 722C - E788AC - East Asian ideograph - - - 214A3D - 7230 - E788B0 - East Asian ideograph - - - 214A3E - 7235 - E788B5 - East Asian ideograph (variant of EACC 4B4A3E) - - - 214A3F - 7236 - E788B6 - East Asian ideograph - - - 214A40 - 7238 - E788B8 - East Asian ideograph - - - 214A41 - 7239 - E788B9 - East Asian ideograph - - - 214A42 - 723A - E788BA - East Asian ideograph - - - 214A43 - 723B - E788BB - East Asian ideograph - - - 214A44 - 723D - E788BD - East Asian ideograph - - - 214A45 - 723E - E788BE - East Asian ideograph - - - 214A46 - 7246 - E78986 - East Asian ideograph - - - 214A47 - 7247 - E78987 - East Asian ideograph - - - 214A48 - 7248 - E78988 - East Asian ideograph - - - 214A49 - 724C - E7898C - East Asian ideograph - - - 214A4A - 7252 - E78992 - East Asian ideograph - - - 214A4B - 7256 - E78996 - East Asian ideograph - - - 214A4C - 7258 - E78998 - East Asian ideograph - - - 214A4D - 7259 - E78999 - East Asian ideograph - - - 214A4E - 725B - E7899B - East Asian ideograph - - - 214A4F - 725F - E7899F - East Asian ideograph - - - 214A50 - 725D - E7899D - East Asian ideograph - - - 214A51 - 7262 - E789A2 - East Asian ideograph - - - 214A52 - 7261 - E789A1 - East Asian ideograph - - - 214A53 - 7260 - E789A0 - East Asian ideograph - - - 214A54 - 7267 - E789A7 - East Asian ideograph - - - 214A55 - 7269 - E789A9 - East Asian ideograph - - - 214A56 - 726F - E789AF - East Asian ideograph - - - 214A57 - 7272 - E789B2 - East Asian ideograph - - - 214A58 - 7274 - E789B4 - East Asian ideograph - - - 214A59 - 7279 - E789B9 - East Asian ideograph - - - 214A5A - 727D - E789BD - East Asian ideograph - - - 214A5B - 7281 - E78A81 - East Asian ideograph - - - 214A5C - 7280 - E78A80 - East Asian ideograph - - - 214A5D - 7284 - E78A84 - East Asian ideograph - - - 214A5E - 7296 - E78A96 - East Asian ideograph - - - 214A5F - 7292 - E78A92 - East Asian ideograph - - - 214A60 - 729B - E78A9B - East Asian ideograph - - - 214A61 - 72A2 - E78AA2 - East Asian ideograph - - - 214A62 - 72A7 - E78AA7 - East Asian ideograph - - - 214A63 - 72AC - E78AAC - East Asian ideograph - - - 214A64 - 72AF - E78AAF - East Asian ideograph - - - 214A65 - 72C4 - E78B84 - East Asian ideograph - - - 214A66 - 72C2 - E78B82 - East Asian ideograph - - - 214A67 - 72D9 - E78B99 - East Asian ideograph - - - 214A68 - 72C0 - E78B80 - East Asian ideograph - - - 214A69 - 72CE - E78B8E - East Asian ideograph - - - 214A6A - 72D7 - E78B97 - East Asian ideograph - - - 214A6B - 72D0 - E78B90 - East Asian ideograph - - - 214A6C - 72E1 - E78BA1 - East Asian ideograph - - - 214A6D - 72E9 - E78BA9 - East Asian ideograph - - - 214A6E - 72E0 - E78BA0 - East Asian ideograph - - - 214A6F - 72FC - E78BBC - East Asian ideograph - - - 214A70 - 72F9 - E78BB9 - East Asian ideograph - - - 214A72 - 72FD - E78BBD - East Asian ideograph - - - 214A73 - 72F7 - E78BB7 - East Asian ideograph - - - 214A74 - 731C - E78C9C - East Asian ideograph - - - 214A75 - 731B - E78C9B - East Asian ideograph - - - 214A76 - 7313 - E78C93 - East Asian ideograph - - - 214A77 - 7316 - E78C96 - East Asian ideograph - - - 214A78 - 7319 - E78C99 - East Asian ideograph - - - 214A79 - 7336 - E78CB6 - East Asian ideograph - - - 214A7A - 7337 - E78CB7 - East Asian ideograph - - - 214A7B - 7329 - E78CA9 - East Asian ideograph - - - 214A7C - 7325 - E78CA5 - East Asian ideograph - - - 214A7D - 7334 - E78CB4 - East Asian ideograph - - - 214A7E - 7344 - E78D84 - East Asian ideograph - - - 214B21 - 733F - E78CBF - East Asian ideograph - - - 214B22 - 733E - E78CBE - East Asian ideograph - - - 214B23 - 7345 - E78D85 - East Asian ideograph - - - 214B24 - 7350 - E78D90 - East Asian ideograph - - - 214B26 - 7357 - E78D97 - East Asian ideograph - - - 214B27 - 7368 - E78DA8 - East Asian ideograph - - - 214B28 - 7370 - E78DB0 - East Asian ideograph - - - 214B29 - 7372 - E78DB2 - East Asian ideograph - - - 214B2A - 7377 - E78DB7 - East Asian ideograph - - - 214B2B - 7378 - E78DB8 - East Asian ideograph - - - 214B2C - 7375 - E78DB5 - East Asian ideograph - - - 214B2D - 737A - E78DBA - East Asian ideograph - - - 214B2E - 737B - E78DBB - East Asian ideograph - - - 214B2F - 7380 - E78E80 - East Asian ideograph - - - 214B30 - 7384 - E78E84 - East Asian ideograph - - - 214B31 - 7387 - E78E87 - East Asian ideograph - - - 214B32 - 7389 - E78E89 - East Asian ideograph - - - 214B33 - 738B - E78E8B - East Asian ideograph - - - 214B34 - 7396 - E78E96 - East Asian ideograph - - - 214B35 - 739F - E78E9F - East Asian ideograph - - - 214B36 - 73A8 - E78EA8 - East Asian ideograph - - - 214B37 - 73A9 - E78EA9 - East Asian ideograph - - - 214B38 - 73AB - E78EAB - East Asian ideograph - - - 214B39 - 73BB - E78EBB - East Asian ideograph - - - 214B3A - 73CA - E78F8A - East Asian ideograph - - - 214B3B - 73B7 - E78EB7 - East Asian ideograph - - - 214B3C - 73C0 - E78F80 - East Asian ideograph - - - 214B3E - 73B2 - E78EB2 - East Asian ideograph - - - 214B3F - 73CD - E78F8D - East Asian ideograph - - - 214B40 - 73ED - E78FAD - East Asian ideograph - - - 214B41 - 73EE - E78FAE - East Asian ideograph - - - 214B42 - 73E0 - E78FA0 - East Asian ideograph - - - 214B43 - 7405 - E79085 - East Asian ideograph - - - 214B44 - 7409 - E79089 - East Asian ideograph - - - 214B45 - 7403 - E79083 - East Asian ideograph - - - 214B46 - 740A - E7908A - East Asian ideograph - - - 214B47 - 73FE - E78FBE - East Asian ideograph - - - 214B48 - 7406 - E79086 - East Asian ideograph - - - 214B49 - 740D - E7908D - East Asian ideograph - - - 214B4A - 743A - E790BA - East Asian ideograph - - - 214B4B - 7435 - E790B5 - East Asian ideograph - - - 214B4C - 7436 - E790B6 - East Asian ideograph - - - 214B4D - 7434 - E790B4 - East Asian ideograph - - - 214B4E - 742A - E790AA - East Asian ideograph - - - 214B4F - 7433 - E790B3 - East Asian ideograph - - - 214B50 - 7422 - E790A2 - East Asian ideograph - - - 214B51 - 7425 - E790A5 - East Asian ideograph - - - 214B53 - 7455 - E79195 - East Asian ideograph - - - 214B54 - 745F - E7919F - East Asian ideograph - - - 214B55 - 745A - E7919A - East Asian ideograph - - - 214B56 - 7441 - E79181 - East Asian ideograph - - - 214B57 - 743F - E790BF - East Asian ideograph - - - 214B58 - 745B - E7919B - East Asian ideograph - - - 214B59 - 745E - E7919E - East Asian ideograph - - - 214B5A - 745C - E7919C - East Asian ideograph - - - 214B5B - 7459 - E79199 - East Asian ideograph - - - 214B5C - 7483 - E79283 - East Asian ideograph - - - 214B5D - 7469 - E791A9 - East Asian ideograph - - - 214B5E - 746A - E791AA - East Asian ideograph - - - 214B5F - 7463 - E791A3 - East Asian ideograph - - - 214B60 - 7464 - E791A4 - East Asian ideograph - - - 214B61 - 7470 - E791B0 - East Asian ideograph - - - 214B62 - 748B - E7928B - East Asian ideograph - - - 214B63 - 749C - E7929C - East Asian ideograph (variant of EACC 4B4B63) - - - 214B64 - 74A3 - E792A3 - East Asian ideograph - - - 214B65 - 74A7 - E792A7 - East Asian ideograph - - - 214B66 - 74A9 - E792A9 - East Asian ideograph - - - 214B67 - 74B0 - E792B0 - East Asian ideograph - - - 214B68 - 74A6 - E792A6 - East Asian ideograph - - - 214B69 - 74BD - E792BD - East Asian ideograph - - - 214B6A - 74CA - E7938A - East Asian ideograph - - - 214B6B - 74CF - E7938F - East Asian ideograph - - - 214B6C - 74DC - E7939C - East Asian ideograph - - - 214B6D - 74E0 - E793A0 - East Asian ideograph - - - 214B6E - 74E2 - E793A2 - East Asian ideograph - - - 214B6F - 74E3 - E793A3 - East Asian ideograph - - - 214B70 - 74E6 - E793A6 - East Asian ideograph - - - 214B71 - 74F6 - E793B6 - East Asian ideograph - - - 214B72 - 74F7 - E793B7 - East Asian ideograph - - - 214B73 - 7504 - E79484 - East Asian ideograph - - - 214B74 - 750C - E7948C - East Asian ideograph - - - 214B75 - 7515 - E79495 - East Asian ideograph - - - 214B76 - 7518 - E79498 - East Asian ideograph - - - 214B77 - 751A - E7949A - East Asian ideograph - - - 214B78 - 751C - E7949C - East Asian ideograph - - - 214B79 - 751F - E7949F - East Asian ideograph - - - 214B7A - 7522 - E794A2 - East Asian ideograph - - - 214B7B - 7526 - E794A6 - East Asian ideograph - - - 214B7C - 7525 - E794A5 - East Asian ideograph - - - 214B7D - 7528 - E794A8 - East Asian ideograph - - - 214B7E - 7529 - E794A9 - East Asian ideograph - - - 214C21 - 752C - E794AC - East Asian ideograph - - - 214C22 - 752B - E794AB - East Asian ideograph - - - 214C23 - 752D - E794AD - East Asian ideograph - - - 214C24 - 7530 - E794B0 - East Asian ideograph - - - 214C25 - 7532 - E794B2 - East Asian ideograph - - - 214C26 - 7531 - E794B1 - East Asian ideograph - - - 214C27 - 7533 - E794B3 - East Asian ideograph - - - 214C28 - 7537 - E794B7 - East Asian ideograph - - - 214C29 - 7538 - E794B8 - East Asian ideograph - - - 214C2A - 753D - E794BD - East Asian ideograph - - - 214C2B - 754F - E7958F - East Asian ideograph - - - 214C2C - 754C - E7958C - East Asian ideograph - - - 214C2D - 755D - E7959D - East Asian ideograph - - - 214C2E - 755C - E7959C - East Asian ideograph - - - 214C2F - 7554 - E79594 - East Asian ideograph - - - 214C30 - 755A - E7959A - East Asian ideograph - - - 214C31 - 7559 - E79599 - East Asian ideograph - - - 214C32 - 7566 - E795A6 - East Asian ideograph - - - 214C33 - 7562 - E795A2 - East Asian ideograph - - - 214C34 - 7570 - E795B0 - East Asian ideograph - - - 214C35 - 7565 - E795A5 - East Asian ideograph - - - 214C36 - 756B - E795AB - East Asian ideograph - - - 214C37 - 756A - E795AA - East Asian ideograph - - - 214C38 - 7578 - E795B8 - East Asian ideograph - - - 214C39 - 7576 - E795B6 - East Asian ideograph - - - 214C3A - 7586 - E79686 - East Asian ideograph - - - 214C3B - 7587 - E79687 - East Asian ideograph - - - 214C3C - 758A - E7968A - East Asian ideograph - - - 214C3E - 758F - E7968F - East Asian ideograph - - - 214C3F - 7591 - E79691 - East Asian ideograph - - - 214C40 - 759D - E7969D - East Asian ideograph - - - 214C41 - 7599 - E79699 - East Asian ideograph - - - 214C42 - 759A - E7969A - East Asian ideograph - - - 214C43 - 75A4 - E796A4 - East Asian ideograph - - - 214C44 - 75AB - E796AB - East Asian ideograph - - - 214C45 - 75A5 - E796A5 - East Asian ideograph - - - 214C46 - 75C7 - E79787 - East Asian ideograph - - - 214C47 - 75C5 - E79785 - East Asian ideograph - - - 214C48 - 75B3 - E796B3 - East Asian ideograph - - - 214C49 - 75B2 - E796B2 - East Asian ideograph - - - 214C4A - 75BD - E796BD - East Asian ideograph - - - 214C4B - 75BE - E796BE - East Asian ideograph - - - 214C4C - 75BC - E796BC - East Asian ideograph - - - 214C4D - 75B9 - E796B9 - East Asian ideograph - - - 214C4E - 75D5 - E79795 - East Asian ideograph - - - 214C4F - 75D4 - E79794 - East Asian ideograph - - - 214C50 - 75B5 - E796B5 - East Asian ideograph - - - 214C51 - 75CA - E7978A - East Asian ideograph (variant of EACC 4B4C51) - - - 214C52 - 75DB - E7979B - East Asian ideograph - - - 214C53 - 75E3 - E797A3 - East Asian ideograph - - - 214C54 - 75D8 - E79798 - East Asian ideograph - - - 214C55 - 75DE - E7979E - East Asian ideograph - - - 214C56 - 75D9 - E79799 - East Asian ideograph - - - 214C57 - 75E2 - E797A2 - East Asian ideograph - - - 214C58 - 7601 - E79881 - East Asian ideograph - - - 214C59 - 7600 - E79880 - East Asian ideograph - - - 214C5A - 75F0 - E797B0 - East Asian ideograph - - - 214C5B - 75F2 - E797B2 - East Asian ideograph - - - 214C5C - 75F1 - E797B1 - East Asian ideograph - - - 214C5D - 75F4 - E797B4 - East Asian ideograph - - - 214C5E - 75FF - E797BF - East Asian ideograph - - - 214C5F - 75FA - E797BA - East Asian ideograph - - - 214C60 - 760D - E7988D - East Asian ideograph - - - 214C61 - 7627 - E798A7 - East Asian ideograph - - - 214C62 - 7613 - E79893 - East Asian ideograph - - - 214C63 - 760B - E7988B - East Asian ideograph - - - 214C65 - 7620 - E798A0 - East Asian ideograph - - - 214C66 - 7629 - E798A9 - East Asian ideograph - - - 214C67 - 761F - E7989F - East Asian ideograph - - - 214C68 - 7624 - E798A4 - East Asian ideograph - - - 214C69 - 7626 - E798A6 - East Asian ideograph - - - 214C6A - 7621 - E798A1 - East Asian ideograph - - - 214C6B - 7634 - E798B4 - East Asian ideograph - - - 214C6C - 7638 - E798B8 - East Asian ideograph - - - 214C6D - 7646 - E79986 - East Asian ideograph - - - 214C6E - 7642 - E79982 - East Asian ideograph - - - 214C6F - 764C - E7998C - East Asian ideograph - - - 214C70 - 7656 - E79996 - East Asian ideograph - - - 214C71 - 7658 - E79998 - East Asian ideograph - - - 214C73 - 7662 - E799A2 - East Asian ideograph - - - 214C74 - 7665 - E799A5 - East Asian ideograph - - - 214C75 - 7669 - E799A9 - East Asian ideograph - - - 214C76 - 766E - E799AE - East Asian ideograph - - - 214C77 - 766C - E799AC - East Asian ideograph - - - 214C78 - 7671 - E799B1 - East Asian ideograph - - - 214C79 - 7672 - E799B2 - East Asian ideograph (variant of EACC 4B4C79) - - - 214C7A - 7678 - E799B8 - East Asian ideograph - - - 214C7B - 767C - E799BC - East Asian ideograph - - - 214C7C - 767B - E799BB - East Asian ideograph - - - 214C7D - 767D - E799BD - East Asian ideograph - - - 214C7E - 767E - E799BE - East Asian ideograph - - - 214D21 - 7682 - E79A82 - East Asian ideograph - - - 214D22 - 7684 - E79A84 - East Asian ideograph - - - 214D23 - 7687 - E79A87 - East Asian ideograph - - - 214D24 - 7686 - E79A86 - East Asian ideograph - - - 214D26 - 768E - E79A8E - East Asian ideograph - - - 214D27 - 7696 - E79A96 - East Asian ideograph - - - 214D28 - 7693 - E79A93 - East Asian ideograph - - - 214D29 - 769A - E79A9A - East Asian ideograph - - - 214D2A - 76AE - E79AAE - East Asian ideograph - - - 214D2B - 76B0 - E79AB0 - East Asian ideograph - - - 214D2C - 76B4 - E79AB4 - East Asian ideograph - - - 214D2D - 76BA - E79ABA - East Asian ideograph - - - 214D2E - 76BF - E79ABF - East Asian ideograph - - - 214D2F - 76C2 - E79B82 - East Asian ideograph - - - 214D31 - 76C8 - E79B88 - East Asian ideograph - - - 214D32 - 76C6 - E79B86 - East Asian ideograph - - - 214D33 - 76CA - E79B8A - East Asian ideograph - - - 214D34 - 76CD - E79B8D - East Asian ideograph - - - 214D35 - 76CE - E79B8E - East Asian ideograph - - - 214D36 - 76D4 - E79B94 - East Asian ideograph - - - 214D37 - 76D2 - E79B92 - East Asian ideograph - - - 214D38 - 76DC - E79B9C - East Asian ideograph - - - 214D39 - 76DB - E79B9B - East Asian ideograph - - - 214D3A - 76DE - E79B9E - East Asian ideograph - - - 214D3B - 76DF - E79B9F - East Asian ideograph - - - 214D3C - 76E1 - E79BA1 - East Asian ideograph - - - 214D3D - 76E3 - E79BA3 - East Asian ideograph - - - 214D3E - 76E4 - E79BA4 - East Asian ideograph - - - 214D3F - 76E7 - E79BA7 - East Asian ideograph - - - 214D40 - 76E5 - E79BA5 - East Asian ideograph - - - 214D41 - 76EA - E79BAA - East Asian ideograph - - - 214D42 - 76EE - E79BAE - East Asian ideograph - - - 214D43 - 76EF - E79BAF - East Asian ideograph - - - 214D44 - 76F2 - E79BB2 - East Asian ideograph - - - 214D45 - 76F4 - E79BB4 - East Asian ideograph - - - 214D46 - 7709 - E79C89 - East Asian ideograph - - - 214D47 - 76F9 - E79BB9 - East Asian ideograph - - - 214D48 - 76F8 - E79BB8 - East Asian ideograph - - - 214D49 - 7701 - E79C81 - East Asian ideograph - - - 214D4A - 770B - E79C8B - East Asian ideograph - - - 214D4B - 76FC - E79BBC - East Asian ideograph - - - 214D4C - 76FE - E79BBE - East Asian ideograph - - - 214D4D - 7729 - E79CA9 - East Asian ideograph - - - 214D4E - 7720 - E79CA0 - East Asian ideograph - - - 214D4F - 771E - E79C9E - East Asian ideograph - - - 214D50 - 7728 - E79CA8 - East Asian ideograph - - - 214D51 - 7737 - E79CB7 - East Asian ideograph - - - 214D52 - 773C - E79CBC - East Asian ideograph - - - 214D53 - 7736 - E79CB6 - East Asian ideograph - - - 214D54 - 7738 - E79CB8 - East Asian ideograph - - - 214D55 - 773A - E79CBA - East Asian ideograph - - - 214D56 - 773E - E79CBE - East Asian ideograph - - - 214D57 - 774F - E79D8F - East Asian ideograph - - - 214D58 - 776B - E79DAB - East Asian ideograph - - - 214D59 - 775B - E79D9B - East Asian ideograph - - - 214D5A - 776A - E79DAA - East Asian ideograph - - - 214D5B - 7766 - E79DA6 - East Asian ideograph - - - 214D5C - 7779 - E79DB9 - East Asian ideograph - - - 214D5D - 775E - E79D9E - East Asian ideograph - - - 214D5E - 7763 - E79DA3 - East Asian ideograph - - - 214D5F - 775C - E79D9C - East Asian ideograph - - - 214D60 - 776C - E79DAC - East Asian ideograph - - - 214D61 - 7768 - E79DA8 - East Asian ideograph - - - 214D62 - 7765 - E79DA5 - East Asian ideograph - - - 214D63 - 777D - E79DBD - East Asian ideograph - - - 214D64 - 7771 - E79DB1 - East Asian ideograph - - - 214D65 - 777F - E79DBF - East Asian ideograph - - - 214D66 - 7784 - E79E84 - East Asian ideograph - - - 214D67 - 7761 - E79DA1 - East Asian ideograph - - - 214D68 - 7787 - E79E87 - East Asian ideograph - - - 214D69 - 778E - E79E8E - East Asian ideograph - - - 214D6A - 778C - E79E8C - East Asian ideograph - - - 214D6B - 7791 - E79E91 - East Asian ideograph - - - 214D6C - 779F - E79E9F - East Asian ideograph - - - 214D6D - 779E - E79E9E - East Asian ideograph - - - 214D6E - 77A0 - E79EA0 - East Asian ideograph - - - 214D6F - 77A5 - E79EA5 - East Asian ideograph - - - 214D70 - 77B3 - E79EB3 - East Asian ideograph - - - 214D71 - 77AA - E79EAA - East Asian ideograph - - - 214D72 - 77B0 - E79EB0 - East Asian ideograph - - - 214D73 - 77AD - E79EAD - East Asian ideograph - - - 214D74 - 77AC - E79EAC - East Asian ideograph - - - 214D75 - 77A7 - E79EA7 - East Asian ideograph - - - 214D76 - 77BD - E79EBD - East Asian ideograph - - - 214D77 - 77BF - E79EBF - East Asian ideograph - - - 214D78 - 77BB - E79EBB - East Asian ideograph - - - 214D7A - 77D3 - E79F93 - East Asian ideograph - - - 214D7B - 77D7 - E79F97 - East Asian ideograph - - - 214D7C - 77DA - E79F9A - East Asian ideograph - - - 214D7D - 77DB - E79F9B - East Asian ideograph - - - 214D7E - 77DC - E79F9C - East Asian ideograph - - - 214E21 - 77E2 - E79FA2 - East Asian ideograph - - - 214E22 - 77E3 - E79FA3 - East Asian ideograph - - - 214E23 - 77E5 - E79FA5 - East Asian ideograph - - - 214E24 - 77E9 - E79FA9 - East Asian ideograph - - - 214E25 - 77ED - E79FAD - East Asian ideograph - - - 214E26 - 77EE - E79FAE - East Asian ideograph - - - 214E27 - 77EF - E79FAF - East Asian ideograph - - - 214E28 - 77F3 - E79FB3 - East Asian ideograph - - - 214E29 - 77FD - E79FBD - East Asian ideograph - - - 214E2A - 7802 - E7A082 - East Asian ideograph - - - 214E2B - 780D - E7A08D - East Asian ideograph - - - 214E2C - 780C - E7A08C - East Asian ideograph - - - 214E2D - 65AB - E696AB - East Asian ideograph - - - 214E2E - 7830 - E7A0B0 - East Asian ideograph - - - 214E2F - 781D - E7A09D - East Asian ideograph - - - 214E30 - 7834 - E7A0B4 - East Asian ideograph - - - 214E31 - 7838 - E7A0B8 - East Asian ideograph - - - 214E32 - 7837 - E7A0B7 - East Asian ideograph - - - 214E33 - 7827 - E7A0A7 - East Asian ideograph - - - 214E34 - 782D - E7A0AD - East Asian ideograph - - - 214E35 - 7825 - E7A0A5 - East Asian ideograph - - - 214E36 - 786B - E7A1AB - East Asian ideograph - - - 214E37 - 784F - E7A18F - East Asian ideograph - - - 214E38 - 7843 - E7A183 - East Asian ideograph - - - 214E39 - 786C - E7A1AC - East Asian ideograph - - - 214E3A - 785D - E7A19D - East Asian ideograph - - - 214E3B - 786F - E7A1AF - East Asian ideograph - - - 214E3C - 78B0 - E7A2B0 - East Asian ideograph - - - 214E3D - 7897 - E7A297 - East Asian ideograph - - - 214E3E - 788E - E7A28E - East Asian ideograph - - - 214E3F - 7898 - E7A298 - East Asian ideograph - - - 214E40 - 7889 - E7A289 - East Asian ideograph - - - 214E41 - 7891 - E7A291 - East Asian ideograph - - - 214E42 - 787C - E7A1BC - East Asian ideograph - - - 214E43 - 788C - E7A28C - East Asian ideograph - - - 214E44 - 78A7 - E7A2A7 - East Asian ideograph - - - 214E45 - 78A9 - E7A2A9 - East Asian ideograph - - - 214E46 - 789F - E7A29F - East Asian ideograph - - - 214E47 - 78B3 - E7A2B3 - East Asian ideograph - - - 214E48 - 78CB - E7A38B - East Asian ideograph - - - 214E49 - 78BA - E7A2BA - East Asian ideograph - - - 214E4A - 78C1 - E7A381 - East Asian ideograph - - - 214E4B - 78C5 - E7A385 - East Asian ideograph - - - 214E4C - 78BC - E7A2BC - East Asian ideograph - - - 214E4D - 78D5 - E7A395 - East Asian ideograph - - - 214E4E - 78BE - E7A2BE - East Asian ideograph - - - 214E4F - 78CA - E7A38A - East Asian ideograph - - - 214E50 - 78D0 - E7A390 - East Asian ideograph - - - 214E51 - 78E8 - E7A3A8 - East Asian ideograph - - - 214E52 - 78EC - E7A3AC - East Asian ideograph - - - 214E53 - 78DA - E7A39A - East Asian ideograph - - - 214E54 - 78F7 - E7A3B7 - East Asian ideograph - - - 214E55 - 78F4 - E7A3B4 - East Asian ideograph - - - 214E56 - 78FA - E7A3BA - East Asian ideograph (variant of EACC 4B4E56) - - - 214E57 - 7901 - E7A481 - East Asian ideograph - - - 214E58 - 78EF - E7A3AF - East Asian ideograph - - - 214E59 - 790E - E7A48E - East Asian ideograph - - - 214E5A - 7919 - E7A499 - East Asian ideograph - - - 214E5B - 7926 - E7A4A6 - East Asian ideograph - - - 214E5C - 792C - E7A4AC - East Asian ideograph - - - 214E5D - 792A - E7A4AA - East Asian ideograph - - - 214E5E - 792B - E7A4AB - East Asian ideograph - - - 214E5F - 793A - E7A4BA - East Asian ideograph - - - 214E60 - 7940 - E7A580 - East Asian ideograph - - - 214E61 - 793E - E7A4BE - East Asian ideograph - - - 214E62 - 7941 - E7A581 - East Asian ideograph - - - 214E63 - 7945 - E7A585 - East Asian ideograph - - - 214E64 - 7949 - E7A589 - East Asian ideograph - - - 214E65 - 7948 - E7A588 - East Asian ideograph - - - 214E66 - 7947 - E7A587 - East Asian ideograph - - - 214E67 - 7955 - E7A595 - East Asian ideograph - - - 214E68 - 7960 - E7A5A0 - East Asian ideograph - - - 214E69 - 7950 - E7A590 - East Asian ideograph - - - 214E6A - 7956 - E7A596 - East Asian ideograph - - - 214E6B - 795E - E7A59E - East Asian ideograph - - - 214E6C - 795D - E7A59D - East Asian ideograph - - - 214E6D - 795F - E7A59F - East Asian ideograph - - - 214E6E - 795A - E7A59A - East Asian ideograph - - - 214E6F - 7957 - E7A597 - East Asian ideograph - - - 214E70 - 7965 - E7A5A5 - East Asian ideograph - - - 214E71 - 7968 - E7A5A8 - East Asian ideograph - - - 214E72 - 796D - E7A5AD - East Asian ideograph - - - 214E73 - 797A - E7A5BA - East Asian ideograph - - - 214E74 - 7981 - E7A681 - East Asian ideograph - - - 214E75 - 797F - E7A5BF - East Asian ideograph - - - 214E76 - 798F - E7A68F - East Asian ideograph - - - 214E77 - 798D - E7A68D - East Asian ideograph - - - 214E78 - 798E - E7A68E - East Asian ideograph - - - 214E79 - 79A6 - E7A6A6 - East Asian ideograph - - - 214E7A - 79A7 - E7A6A7 - East Asian ideograph - - - 214E7B - 79AA - E7A6AA - East Asian ideograph - - - 214E7C - 79AE - E7A6AE - East Asian ideograph - - - 214E7D - 79B1 - E7A6B1 - East Asian ideograph - - - 214E7E - 79B9 - E7A6B9 - East Asian ideograph - - - 214F21 - 79BD - E7A6BD - East Asian ideograph - - - 214F22 - 842C - E890AC - East Asian ideograph - - - 214F23 - 79BE - E7A6BE - East Asian ideograph - - - 214F24 - 79C0 - E7A780 - East Asian ideograph - - - 214F25 - 79C1 - E7A781 - East Asian ideograph - - - 214F26 - 79BF - E7A6BF - East Asian ideograph - - - 214F27 - 79C9 - E7A789 - East Asian ideograph - - - 214F28 - 79D1 - E7A791 - East Asian ideograph - - - 214F29 - 79CB - E7A78B - East Asian ideograph - - - 214F2A - 79D2 - E7A792 - East Asian ideograph - - - 214F2B - 79E4 - E7A7A4 - East Asian ideograph - - - 214F2C - 79E6 - E7A7A6 - East Asian ideograph - - - 214F2D - 79E3 - E7A7A3 - East Asian ideograph - - - 214F2E - 79DF - E7A79F - East Asian ideograph - - - 214F2F - 79E7 - E7A7A7 - East Asian ideograph - - - 214F30 - 79E9 - E7A7A9 - East Asian ideograph - - - 214F31 - 79FB - E7A7BB - East Asian ideograph - - - 214F32 - 7A05 - E7A885 - East Asian ideograph - - - 214F33 - 7A0D - E7A88D - East Asian ideograph - - - 214F34 - 7A08 - E7A888 - East Asian ideograph - - - 214F35 - 7A0B - E7A88B - East Asian ideograph - - - 214F36 - 7A00 - E7A880 - East Asian ideograph - - - 214F37 - 7A1F - E7A89F - East Asian ideograph - - - 214F39 - 7A20 - E7A8A0 - East Asian ideograph - - - 214F3A - 7A1A - E7A89A - East Asian ideograph - - - 214F3B - 7A14 - E7A894 - East Asian ideograph - - - 214F3C - 7A31 - E7A8B1 - East Asian ideograph - - - 214F3D - 7A2E - E7A8AE - East Asian ideograph - - - 214F3E - 7A3F - E7A8BF - East Asian ideograph - - - 214F3F - 7A3C - E7A8BC - East Asian ideograph - - - 214F40 - 7A40 - E7A980 - East Asian ideograph - - - 214F41 - 7A3D - E7A8BD - East Asian ideograph - - - 214F42 - 7A37 - E7A8B7 - East Asian ideograph - - - 214F43 - 7A3B - E7A8BB - East Asian ideograph - - - 214F44 - 7A4D - E7A98D - East Asian ideograph - - - 214F45 - 7A4E - E7A98E - East Asian ideograph - - - 214F46 - 7A4C - E7A98C - East Asian ideograph - - - 214F47 - 7A46 - E7A986 - East Asian ideograph - - - 214F48 - 7A57 - E7A997 - East Asian ideograph - - - 214F49 - 7A61 - E7A9A1 - East Asian ideograph - - - 214F4A - 7A62 - E7A9A2 - East Asian ideograph - - - 214F4B - 7A6B - E7A9AB - East Asian ideograph - - - 214F4C - 7A69 - E7A9A9 - East Asian ideograph - - - 214F4D - 7A74 - E7A9B4 - East Asian ideograph - - - 214F4E - 7A76 - E7A9B6 - East Asian ideograph - - - 214F4F - 7A79 - E7A9B9 - East Asian ideograph - - - 214F50 - 7A7A - E7A9BA - East Asian ideograph - - - 214F51 - 7A7F - E7A9BF - East Asian ideograph - - - 214F52 - 7A81 - E7AA81 - East Asian ideograph - - - 214F53 - 7A84 - E7AA84 - East Asian ideograph - - - 214F54 - 7A88 - E7AA88 - East Asian ideograph - - - 214F55 - 7A92 - E7AA92 - East Asian ideograph - - - 214F56 - 7A95 - E7AA95 - East Asian ideograph - - - 214F57 - 7A98 - E7AA98 - East Asian ideograph - - - 214F58 - 7A96 - E7AA96 - East Asian ideograph - - - 214F59 - 7A97 - E7AA97 - East Asian ideograph - - - 214F5A - 7A9F - E7AA9F - East Asian ideograph - - - 214F5B - 7AA0 - E7AAA0 - East Asian ideograph - - - 214F5C - 7AAA - E7AAAA - East Asian ideograph - - - 214F5D - 7AA9 - E7AAA9 - East Asian ideograph - - - 214F5E - 7AAF - E7AAAF - East Asian ideograph - - - 214F5F - 7AAE - E7AAAE - East Asian ideograph - - - 214F60 - 7ABA - E7AABA - East Asian ideograph - - - 214F61 - 7AC5 - E7AB85 - East Asian ideograph - - - 214F62 - 7AC4 - E7AB84 - East Asian ideograph - - - 214F63 - 7AC7 - E7AB87 - East Asian ideograph - - - 214F64 - 7ACA - E7AB8A - East Asian ideograph - - - 214F65 - 7ACB - E7AB8B - East Asian ideograph - - - 214F66 - 7AD9 - E7AB99 - East Asian ideograph - - - 214F67 - 7AE5 - E7ABA5 - East Asian ideograph - - - 214F68 - 7AE3 - E7ABA3 - East Asian ideograph - - - 214F69 - 7AED - E7ABAD - East Asian ideograph - - - 214F6A - 7AEF - E7ABAF - East Asian ideograph - - - 214F6B - 7AF6 - E7ABB6 - East Asian ideograph - - - 214F6C - 7AF9 - E7ABB9 - East Asian ideograph - - - 214F6D - 7AFA - E7ABBA - East Asian ideograph - - - 214F6E - 7AFF - E7ABBF - East Asian ideograph - - - 214F6F - 7AFD - E7ABBD - East Asian ideograph - - - 214F70 - 7B06 - E7AC86 - East Asian ideograph - - - 214F71 - 7B11 - E7AC91 - East Asian ideograph - - - 214F72 - 7B20 - E7ACA0 - East Asian ideograph - - - 214F73 - 7B2C - E7ACAC - East Asian ideograph - - - 214F74 - 7B28 - E7ACA8 - East Asian ideograph - - - 214F75 - 7B1B - E7AC9B - East Asian ideograph - - - 214F76 - 7B1E - E7AC9E - East Asian ideograph - - - 214F77 - 7B19 - E7AC99 - East Asian ideograph - - - 214F78 - 7B26 - E7ACA6 - East Asian ideograph - - - 214F79 - 7B46 - E7AD86 - East Asian ideograph - - - 214F7A - 7B49 - E7AD89 - East Asian ideograph - - - 214F7B - 7B50 - E7AD90 - East Asian ideograph - - - 214F7C - 7B56 - E7AD96 - East Asian ideograph - - - 214F7D - 7B52 - E7AD92 - East Asian ideograph - - - 214F7E - 7B4B - E7AD8B - East Asian ideograph - - - 215021 - 7B4D - E7AD8D - East Asian ideograph - - - 215022 - 7B4F - E7AD8F - East Asian ideograph - - - 215023 - 7B54 - E7AD94 - East Asian ideograph - - - 215024 - 7B60 - E7ADA0 - East Asian ideograph - - - 215025 - 7B77 - E7ADB7 - East Asian ideograph - - - 215026 - 7B75 - E7ADB5 - East Asian ideograph - - - 215027 - 7BA1 - E7AEA1 - East Asian ideograph - - - 215028 - 7B94 - E7AE94 - East Asian ideograph - - - 215029 - 7B95 - E7AE95 - East Asian ideograph - - - 21502A - 7B9D - E7AE9D - East Asian ideograph - - - 21502B - 7B8B - E7AE8B - East Asian ideograph - - - 21502C - 7B97 - E7AE97 - East Asian ideograph - - - 21502D - 7B8F - E7AE8F - East Asian ideograph - - - 21502E - 7BC7 - E7AF87 - East Asian ideograph - - - 21502F - 7BAD - E7AEAD - East Asian ideograph - - - 215030 - 7BC4 - E7AF84 - East Asian ideograph - - - 215031 - 7BB1 - E7AEB1 - East Asian ideograph - - - 215032 - 7BB4 - E7AEB4 - East Asian ideograph - - - 215033 - 7BC0 - E7AF80 - East Asian ideograph - - - 215034 - 7BC6 - E7AF86 - East Asian ideograph - - - 215035 - 7BC1 - E7AF81 - East Asian ideograph - - - 215036 - 7C11 - E7B091 - East Asian ideograph - - - 215037 - 7BD9 - E7AF99 - East Asian ideograph - - - 215038 - 7BDB - E7AF9B - East Asian ideograph - - - 215039 - 7BE4 - E7AFA4 - East Asian ideograph - - - 21503A - 7BC9 - E7AF89 - East Asian ideograph - - - 21503B - 7BE1 - E7AFA1 - East Asian ideograph - - - 21503C - 7BE9 - E7AFA9 - East Asian ideograph - - - 21503D - 7C07 - E7B087 - East Asian ideograph - - - 21503E - 7C0D - E7B08D - East Asian ideograph - - - 21503F - 7BFE - E7AFBE - East Asian ideograph - - - 215040 - 7BF7 - E7AFB7 - East Asian ideograph - - - 215041 - 7C21 - E7B0A1 - East Asian ideograph - - - 215042 - 7C2B - E7B0AB - East Asian ideograph - - - 215043 - 7C2A - E7B0AA - East Asian ideograph - - - 215044 - 7C27 - E7B0A7 - East Asian ideograph - - - 215045 - 7C1E - E7B09E - East Asian ideograph - - - 215046 - 7C23 - E7B0A3 - East Asian ideograph - - - 215047 - 7C3F - E7B0BF - East Asian ideograph - - - 215048 - 7C3E - E7B0BE - East Asian ideograph - - - 215049 - 7C38 - E7B0B8 - East Asian ideograph - - - 21504A - 7C37 - E7B0B7 - East Asian ideograph - - - 21504B - 7C3D - E7B0BD - East Asian ideograph - - - 21504C - 7C43 - E7B183 - East Asian ideograph - - - 21504D - 7C4C - E7B18C - East Asian ideograph - - - 21504E - 7C4D - E7B18D - East Asian ideograph - - - 21504F - 7C50 - E7B190 - East Asian ideograph - - - 215050 - 7C60 - E7B1A0 - East Asian ideograph - - - 215051 - 7C5F - E7B19F - East Asian ideograph - - - 215052 - 7C64 - E7B1A4 - East Asian ideograph - - - 215053 - 7C6C - E7B1AC - East Asian ideograph - - - 215054 - 7C6E - E7B1AE - East Asian ideograph - - - 215055 - 7C72 - E7B1B2 - East Asian ideograph - - - 215056 - 7C73 - E7B1B3 - East Asian ideograph - - - 215057 - 7C89 - E7B289 - East Asian ideograph - - - 215058 - 7C92 - E7B292 - East Asian ideograph - - - 215059 - 7C97 - E7B297 - East Asian ideograph - - - 21505A - 7C9F - E7B29F - East Asian ideograph - - - 21505B - 7CA5 - E7B2A5 - East Asian ideograph - - - 21505C - 7CA4 - E7B2A4 - East Asian ideograph - - - 21505D - 7CB1 - E7B2B1 - East Asian ideograph - - - 21505E - 7CB3 - E7B2B3 - East Asian ideograph - - - 21505F - 7CBD - E7B2BD - East Asian ideograph - - - 215060 - 7CB9 - E7B2B9 - East Asian ideograph - - - 215061 - 7CBE - E7B2BE - East Asian ideograph (variant of EACC 4B5061) - - - 215062 - 7CCA - E7B38A - East Asian ideograph - - - 215063 - 7CD6 - E7B396 - East Asian ideograph - - - 215064 - 7CD5 - E7B395 - East Asian ideograph - - - 215065 - 7CE0 - E7B3A0 - East Asian ideograph - - - 215066 - 7CDC - E7B39C - East Asian ideograph - - - 215067 - 7CDF - E7B39F - East Asian ideograph - - - 215068 - 7CDE - E7B39E - East Asian ideograph - - - 215069 - 7CE2 - E7B3A2 - East Asian ideograph - - - 21506A - 7CD9 - E7B399 - East Asian ideograph - - - 21506B - 7CE7 - E7B3A7 - East Asian ideograph - - - 21506C - 7CEF - E7B3AF - East Asian ideograph - - - 21506E - 7CFB - E7B3BB - East Asian ideograph - - - 21506F - 7CFE - E7B3BE - East Asian ideograph - - - 215070 - 7D00 - E7B480 - East Asian ideograph - - - 215071 - 7D02 - E7B482 - East Asian ideograph - - - 215072 - 7D05 - E7B485 - East Asian ideograph - - - 215073 - 7D09 - E7B489 - East Asian ideograph - - - 215074 - 7D04 - E7B484 - East Asian ideograph - - - 215075 - 7D07 - E7B487 - East Asian ideograph - - - 215076 - 7D21 - E7B4A1 - East Asian ideograph - - - 215077 - 7D0B - E7B48B - East Asian ideograph - - - 215078 - 7D0A - E7B48A - East Asian ideograph - - - 215079 - 7D20 - E7B4A0 - East Asian ideograph - - - 21507A - 7D1C - E7B49C - East Asian ideograph - - - 21507B - 7D22 - E7B4A2 - East Asian ideograph - - - 21507C - 7D15 - E7B495 - East Asian ideograph - - - 21507D - 7D14 - E7B494 - East Asian ideograph - - - 21507E - 7D10 - E7B490 - East Asian ideograph - - - 215121 - 7D17 - E7B497 - East Asian ideograph - - - 215122 - 7D0D - E7B48D - East Asian ideograph (variant of EACC 455122) - - - 215123 - 7D1A - E7B49A - East Asian ideograph - - - 215124 - 7D19 - E7B499 - East Asian ideograph - - - 215125 - 7D1B - E7B49B - East Asian ideograph - - - 215126 - 7D46 - E7B586 - East Asian ideograph - - - 215128 - 7D3C - E7B4BC - East Asian ideograph - - - 215129 - 7D2E - E7B4AE - East Asian ideograph - - - 21512A - 7D39 - E7B4B9 - East Asian ideograph - - - 21512B - 7D44 - E7B584 - East Asian ideograph - - - 21512C - 7D30 - E7B4B0 - East Asian ideograph - - - 21512D - 7D33 - E7B4B3 - East Asian ideograph - - - 21512E - 7D2F - E7B4AF - East Asian ideograph - - - 21512F - 7D40 - E7B580 - East Asian ideograph - - - 215130 - 7D42 - E7B582 - East Asian ideograph - - - 215131 - 7D71 - E7B5B1 - East Asian ideograph - - - 215132 - 7D5E - E7B59E - East Asian ideograph - - - 215133 - 7D68 - E7B5A8 - East Asian ideograph - - - 215134 - 7D50 - E7B590 - East Asian ideograph - - - 215135 - 7D2B - E7B4AB - East Asian ideograph - - - 215136 - 7D62 - E7B5A2 - East Asian ideograph - - - 215137 - 7D76 - E7B5B6 - East Asian ideograph - - - 215138 - 7D61 - E7B5A1 - East Asian ideograph - - - 215139 - 7D66 - E7B5A6 - East Asian ideograph - - - 21513A - 7D6E - E7B5AE - East Asian ideograph - - - 21513B - 7D72 - E7B5B2 - East Asian ideograph - - - 21513C - 7D93 - E7B693 - East Asian ideograph - - - 21513D - 7D91 - E7B691 - East Asian ideograph - - - 21513E - 7D79 - E7B5B9 - East Asian ideograph - - - 21513F - 7D8F - E7B68F - East Asian ideograph - - - 215140 - 7D81 - E7B681 - East Asian ideograph - - - 215141 - 7D9C - E7B69C - East Asian ideograph - - - 215142 - 7DBB - E7B6BB - East Asian ideograph - - - 215143 - 7DB0 - E7B6B0 - East Asian ideograph - - - 215144 - 7DCA - E7B78A - East Asian ideograph - - - 215145 - 7DBE - E7B6BE - East Asian ideograph - - - 215146 - 7DB4 - E7B6B4 - East Asian ideograph - - - 215147 - 7DBA - E7B6BA - East Asian ideograph - - - 215148 - 7DB2 - E7B6B2 - East Asian ideograph - - - 215149 - 7DB1 - E7B6B1 - East Asian ideograph - - - 21514A - 7DBD - E7B6BD - East Asian ideograph - - - 21514B - 7DB5 - E7B6B5 - East Asian ideograph - - - 21514C - 7DA0 - E7B6A0 - East Asian ideograph - - - 21514D - 7DA2 - E7B6A2 - East Asian ideograph - - - 21514E - 7DAD - E7B6AD - East Asian ideograph - - - 21514F - 7DBF - E7B6BF - East Asian ideograph - - - 215150 - 7DB8 - E7B6B8 - East Asian ideograph - - - 215151 - 7DC7 - E7B787 - East Asian ideograph - - - 215152 - 7DE0 - E7B7A0 - East Asian ideograph - - - 215153 - 7DEF - E7B7AF - East Asian ideograph - - - 215154 - 7DF4 - E7B7B4 - East Asian ideograph (variant of EACC 4B5154) - - - 215155 - 7DD6 - E7B796 - East Asian ideograph - - - 215156 - 7DD8 - E7B798 - East Asian ideograph - - - 215157 - 7DEC - E7B7AC - East Asian ideograph - - - 215158 - 7DDD - E7B79D - East Asian ideograph - - - 215159 - 7DE9 - E7B7A9 - East Asian ideograph - - - 21515A - 7DE3 - E7B7A3 - East Asian ideograph - - - 21515B - 7DE8 - E7B7A8 - East Asian ideograph - - - 21515C - 7DDA - E7B79A - East Asian ideograph - - - 21515D - 7D9E - E7B69E - East Asian ideograph - - - 21515E - 7DDE - E7B79E - East Asian ideograph - - - 21515F - 7E11 - E7B891 - East Asian ideograph - - - 215160 - 7E0A - E7B88A - East Asian ideograph - - - 215161 - 7E08 - E7B888 - East Asian ideograph - - - 215162 - 7E1B - E7B89B - East Asian ideograph - - - 215163 - 7DFB - E7B7BB - East Asian ideograph - - - 215164 - 7E23 - E7B8A3 - East Asian ideograph - - - 215165 - 7E2E - E7B8AE - East Asian ideograph - - - 215166 - 7E3E - E7B8BE - East Asian ideograph - - - 215167 - 7E46 - E7B986 - East Asian ideograph - - - 215168 - 7E37 - E7B8B7 - East Asian ideograph - - - 215169 - 7E32 - E7B8B2 - East Asian ideograph - - - 21516A - 7E43 - E7B983 - East Asian ideograph - - - 21516B - 7E41 - E7B981 - East Asian ideograph - - - 21516C - 7E2B - E7B8AB - East Asian ideograph - - - 21516D - 7E3D - E7B8BD - East Asian ideograph - - - 21516E - 7E31 - E7B8B1 - East Asian ideograph - - - 21516F - 7E45 - E7B985 - East Asian ideograph - - - 215170 - 7E55 - E7B995 - East Asian ideograph - - - 215171 - 7E54 - E7B994 - East Asian ideograph - - - 215172 - 7E61 - E7B9A1 - East Asian ideograph - - - 215173 - 7E5E - E7B99E - East Asian ideograph - - - 215174 - 7E5A - E7B99A - East Asian ideograph - - - 215175 - 7E6B - E7B9AB - East Asian ideograph - - - 215176 - 7E69 - E7B9A9 - East Asian ideograph - - - 215177 - 7E6D - E7B9AD - East Asian ideograph - - - 215178 - 7E79 - E7B9B9 - East Asian ideograph - - - 215179 - 7E6A - E7B9AA - East Asian ideograph - - - 21517A - 8FAE - E8BEAE - East Asian ideograph - - - 21517B - 7E7D - E7B9BD - East Asian ideograph - - - 21517C - 7E82 - E7BA82 - East Asian ideograph - - - 21517D - 7E7C - E7B9BC - East Asian ideograph - - - 21517E - 7E8F - E7BA8F - East Asian ideograph - - - 215221 - 7E8C - E7BA8C - East Asian ideograph - - - 215222 - 7E93 - E7BA93 - East Asian ideograph - - - 215223 - 7E96 - E7BA96 - East Asian ideograph - - - 215224 - 7E9C - E7BA9C - East Asian ideograph - - - 215226 - 7F38 - E7BCB8 - East Asian ideograph - - - 215227 - 7F3A - E7BCBA - East Asian ideograph - - - 215228 - 7F3D - E7BCBD - East Asian ideograph - - - 215229 - 7F44 - E7BD84 - East Asian ideograph - - - 21522B - 7F50 - E7BD90 - East Asian ideograph - - - 21522C - 7F55 - E7BD95 - East Asian ideograph - - - 21522D - 7F54 - E7BD94 - East Asian ideograph - - - 21522E - 7F5F - E7BD9F - East Asian ideograph - - - 21522F - 7F72 - E7BDB2 - East Asian ideograph - - - 215230 - 7F6E - E7BDAE - East Asian ideograph - - - 215231 - 7F69 - E7BDA9 - East Asian ideograph - - - 215232 - 7F6A - E7BDAA - East Asian ideograph - - - 215233 - 7F70 - E7BDB0 - East Asian ideograph - - - 215234 - 7F75 - E7BDB5 - East Asian ideograph - - - 215235 - 7F77 - E7BDB7 - East Asian ideograph - - - 215236 - 7F79 - E7BDB9 - East Asian ideograph - - - 215237 - 7F85 - E7BE85 - East Asian ideograph - - - 215238 - 7F88 - E7BE88 - East Asian ideograph - - - 215239 - 7F8A - E7BE8A - East Asian ideograph - - - 21523A - 7F8C - E7BE8C - East Asian ideograph - - - 21523B - 7F8E - E7BE8E - East Asian ideograph - - - 21523C - 7F94 - E7BE94 - East Asian ideograph - - - 21523D - 7F9E - E7BE9E - East Asian ideograph - - - 21523E - 7F9A - E7BE9A - East Asian ideograph - - - 21523F - 5584 - E59684 - East Asian ideograph - - - 215240 - 7FA8 - E7BEA8 - East Asian ideograph - - - 215241 - 7FA4 - E7BEA4 - East Asian ideograph - - - 215242 - 7FA9 - E7BEA9 - East Asian ideograph - - - 215243 - 7FAF - E7BEAF - East Asian ideograph - - - 215244 - 7FB2 - E7BEB2 - East Asian ideograph - - - 215245 - 7FB6 - E7BEB6 - East Asian ideograph - - - 215246 - 7FB8 - E7BEB8 - East Asian ideograph - - - 215247 - 7FB9 - E7BEB9 - East Asian ideograph - - - 215248 - 7FBD - E7BEBD - East Asian ideograph - - - 215249 - 7FBF - E7BEBF - East Asian ideograph - - - 21524A - 7FC5 - E7BF85 - East Asian ideograph - - - 21524B - 7FC1 - E7BF81 - East Asian ideograph - - - 21524C - 7FCC - E7BF8C - East Asian ideograph - - - 21524D - 7FD2 - E7BF92 - East Asian ideograph - - - 21524E - 7FCE - E7BF8E - East Asian ideograph (variant of EACC 4B524E) - - - 21524F - 7FD4 - E7BF94 - East Asian ideograph - - - 215250 - 7FD5 - E7BF95 - East Asian ideograph - - - 215251 - 7FE0 - E7BFA0 - East Asian ideograph - - - 215252 - 7FE1 - E7BFA1 - East Asian ideograph - - - 215253 - 7FDF - E7BF9F - East Asian ideograph - - - 215254 - 7FE9 - E7BFA9 - East Asian ideograph - - - 215255 - 7FF0 - E7BFB0 - East Asian ideograph - - - 215256 - 7FF3 - E7BFB3 - East Asian ideograph - - - 215257 - 7FFC - E7BFBC - East Asian ideograph - - - 215258 - 7FF9 - E7BFB9 - East Asian ideograph - - - 215259 - 7FFB - E7BFBB - East Asian ideograph - - - 21525A - 7FF1 - E7BFB1 - East Asian ideograph - - - 21525B - 8000 - E88080 - East Asian ideograph - - - 21525C - 8001 - E88081 - East Asian ideograph - - - 21525D - 8003 - E88083 - East Asian ideograph - - - 21525E - 8006 - E88086 - East Asian ideograph - - - 21525F - 8005 - E88085 - East Asian ideograph - - - 215260 - 800C - E8808C - East Asian ideograph - - - 215261 - 8010 - E88090 - East Asian ideograph - - - 215262 - 800D - E8808D - East Asian ideograph - - - 215263 - 8012 - E88092 - East Asian ideograph - - - 215264 - 8015 - E88095 - East Asian ideograph - - - 215265 - 8018 - E88098 - East Asian ideograph - - - 215266 - 8019 - E88099 - East Asian ideograph - - - 215267 - 8017 - E88097 - East Asian ideograph - - - 215268 - 801C - E8809C - East Asian ideograph - - - 215269 - 8033 - E880B3 - East Asian ideograph - - - 21526A - 8036 - E880B6 - East Asian ideograph - - - 21526B - 803F - E880BF - East Asian ideograph - - - 21526C - 803D - E880BD - East Asian ideograph - - - 21526D - 804A - E8818A - East Asian ideograph - - - 21526E - 8046 - E88186 - East Asian ideograph - - - 21526F - 8056 - E88196 - East Asian ideograph - - - 215270 - 8058 - E88198 - East Asian ideograph - - - 215271 - 805E - E8819E - East Asian ideograph - - - 215272 - 805A - E8819A - East Asian ideograph - - - 215273 - 8071 - E881B1 - East Asian ideograph - - - 215274 - 8072 - E881B2 - East Asian ideograph - - - 215275 - 8073 - E881B3 - East Asian ideograph - - - 215276 - 8070 - E881B0 - East Asian ideograph - - - 215277 - 806F - E881AF - East Asian ideograph - - - 215278 - 8077 - E881B7 - East Asian ideograph - - - 215279 - 8076 - E881B6 - East Asian ideograph - - - 21527A - 807E - E881BE - East Asian ideograph - - - 21527B - 807D - E881BD - East Asian ideograph - - - 21527C - 807F - E881BF - East Asian ideograph - - - 21527E - 8084 - E88284 - East Asian ideograph - - - 215321 - 8085 - E88285 - East Asian ideograph - - - 215322 - 8087 - E88287 - East Asian ideograph - - - 215323 - 8089 - E88289 - East Asian ideograph - - - 215324 - 808B - E8828B - East Asian ideograph - - - 215325 - 808C - E8828C - East Asian ideograph - - - 215326 - 8093 - E88293 - East Asian ideograph - - - 215327 - 809D - E8829D - East Asian ideograph - - - 215328 - 8098 - E88298 - East Asian ideograph - - - 215329 - 809B - E8829B - East Asian ideograph - - - 21532A - 809A - E8829A - East Asian ideograph - - - 21532B - 8096 - E88296 - East Asian ideograph - - - 21532C - 80B2 - E882B2 - East Asian ideograph - - - 21532D - 80AA - E882AA - East Asian ideograph - - - 21532E - 80BA - E882BA - East Asian ideograph - - - 21532F - 80A5 - E882A5 - East Asian ideograph - - - 215330 - 80A2 - E882A2 - East Asian ideograph - - - 215331 - 80AB - E882AB - East Asian ideograph - - - 215332 - 80B1 - E882B1 - East Asian ideograph - - - 215333 - 80AF - E882AF - East Asian ideograph - - - 215334 - 80A1 - E882A1 - East Asian ideograph - - - 215335 - 80A9 - E882A9 - East Asian ideograph - - - 215336 - 80B4 - E882B4 - East Asian ideograph - - - 215337 - 80D6 - E88396 - East Asian ideograph - - - 215338 - 80CC - E8838C - East Asian ideograph - - - 215339 - 80E5 - E883A5 - East Asian ideograph - - - 21533A - 80DA - E8839A - East Asian ideograph - - - 21533B - 80E1 - E883A1 - East Asian ideograph - - - 21533C - 80C3 - E88383 - East Asian ideograph - - - 21533D - 80DB - E8839B - East Asian ideograph - - - 21533E - 80C4 - E88384 - East Asian ideograph - - - 21533F - 80CE - E8838E - East Asian ideograph - - - 215340 - 80DE - E8839E - East Asian ideograph - - - 215341 - 80E4 - E883A4 - East Asian ideograph - - - 215342 - 80F0 - E883B0 - East Asian ideograph - - - 215343 - 8102 - E88482 - East Asian ideograph - - - 215344 - 8105 - E88485 - East Asian ideograph - - - 215345 - 80F1 - E883B1 - East Asian ideograph - - - 215346 - 80F4 - E883B4 - East Asian ideograph - - - 215347 - 80ED - E883AD - East Asian ideograph - - - 215348 - 80FD - E883BD - East Asian ideograph - - - 215349 - 8106 - E88486 - East Asian ideograph - - - 21534A - 80F3 - E883B3 - East Asian ideograph - - - 21534B - 80F8 - E883B8 - East Asian ideograph - - - 21534C - 810A - E8848A - East Asian ideograph - - - 21534D - 8108 - E88488 - East Asian ideograph - - - 21534E - 812B - E884AB - East Asian ideograph - - - 21534F - 812F - E884AF - East Asian ideograph - - - 215350 - 8116 - E88496 - East Asian ideograph - - - 215352 - 8129 - E884A9 - East Asian ideograph - - - 215353 - 8155 - E88595 - East Asian ideograph - - - 215354 - 8154 - E88594 - East Asian ideograph - - - 215355 - 814B - E8858B - East Asian ideograph - - - 215356 - 8151 - E88591 - East Asian ideograph - - - 215357 - 8150 - E88590 - East Asian ideograph - - - 215358 - 814E - E8858E - East Asian ideograph - - - 215359 - 8139 - E884B9 - East Asian ideograph - - - 21535A - 8146 - E88586 - East Asian ideograph - - - 21535B - 813E - E884BE - East Asian ideograph - - - 21535C - 8171 - E885B1 - East Asian ideograph - - - 21535D - 8170 - E885B0 - East Asian ideograph - - - 21535E - 8178 - E885B8 - East Asian ideograph - - - 21535F - 8165 - E885A5 - East Asian ideograph - - - 215360 - 816E - E885AE - East Asian ideograph - - - 215361 - 8173 - E885B3 - East Asian ideograph - - - 215362 - 816B - E885AB - East Asian ideograph - - - 215363 - 8179 - E885B9 - East Asian ideograph - - - 215364 - 817A - E885BA - East Asian ideograph - - - 215365 - 8166 - E885A6 - East Asian ideograph - - - 215366 - 8180 - E88680 - East Asian ideograph - - - 215367 - 818F - E8868F - East Asian ideograph - - - 215368 - 817F - E885BF - East Asian ideograph - - - 215369 - 818A - E8868A - East Asian ideograph - - - 21536A - 8188 - E88688 - East Asian ideograph - - - 21536B - 819D - E8869D - East Asian ideograph - - - 21536C - 81A0 - E886A0 - East Asian ideograph - - - 21536D - 819B - E8869B - East Asian ideograph - - - 21536E - 819A - E8869A - East Asian ideograph - - - 21536F - 819C - E8869C - East Asian ideograph - - - 215370 - 81B3 - E886B3 - East Asian ideograph - - - 215371 - 81A9 - E886A9 - East Asian ideograph - - - 215372 - 81A8 - E886A8 - East Asian ideograph - - - 215373 - 81C6 - E88786 - East Asian ideograph - - - 215374 - 81BA - E886BA - East Asian ideograph - - - 215375 - 81C3 - E88783 - East Asian ideograph - - - 215376 - 81C0 - E88780 - East Asian ideograph - - - 215377 - 81C2 - E88782 - East Asian ideograph - - - 215378 - 81BF - E886BF - East Asian ideograph - - - 215379 - 81BD - E886BD - East Asian ideograph - - - 21537A - 81C9 - E88789 - East Asian ideograph - - - 21537B - 81BE - E886BE - East Asian ideograph - - - 21537C - 81CD - E8878D - East Asian ideograph - - - 21537D - 81CF - E8878F - East Asian ideograph - - - 21537E - 81D8 - E88798 - East Asian ideograph - - - 215421 - 81DA - E8879A - East Asian ideograph - - - 215422 - 81DF - E8879F - East Asian ideograph - - - 215423 - 81E3 - E887A3 - East Asian ideograph - - - 215424 - 81E5 - E887A5 - East Asian ideograph - - - 215425 - 81E8 - E887A8 - East Asian ideograph - - - 215426 - 81EA - E887AA - East Asian ideograph - - - 215427 - 81EC - E887AC - East Asian ideograph - - - 215428 - 81ED - E887AD - East Asian ideograph - - - 215429 - 81F3 - E887B3 - East Asian ideograph - - - 21542B - 81FA - E887BA - East Asian ideograph - - - 21542C - 81FB - E887BB - East Asian ideograph - - - 21542D - 81FC - E887BC - East Asian ideograph - - - 21542E - 81FE - E887BE - East Asian ideograph - - - 21542F - 8200 - E88880 - East Asian ideograph - - - 215430 - 8202 - E88882 - East Asian ideograph - - - 215431 - 8205 - E88885 - East Asian ideograph - - - 215432 - 8207 - E88887 - East Asian ideograph - - - 215433 - 8208 - E88888 - East Asian ideograph - - - 215434 - 8209 - E88889 - East Asian ideograph - - - 215435 - 820A - E8888A - East Asian ideograph - - - 215436 - 820C - E8888C - East Asian ideograph - - - 215437 - 820D - E8888D - East Asian ideograph - - - 215438 - 8210 - E88890 - East Asian ideograph - - - 215439 - 8212 - E88892 - East Asian ideograph - - - 21543A - 8214 - E88894 - East Asian ideograph - - - 21543B - 821B - E8889B - East Asian ideograph - - - 21543C - 821C - E8889C - East Asian ideograph - - - 21543D - 821E - E8889E - East Asian ideograph - - - 21543E - 821F - E8889F - East Asian ideograph - - - 21543F - 8222 - E888A2 - East Asian ideograph - - - 215440 - 822A - E888AA - East Asian ideograph - - - 215441 - 822B - E888AB - East Asian ideograph - - - 215442 - 822C - E888AC - East Asian ideograph - - - 215443 - 8228 - E888A8 - East Asian ideograph - - - 215444 - 8237 - E888B7 - East Asian ideograph - - - 215445 - 8235 - E888B5 - East Asian ideograph - - - 215446 - 8239 - E888B9 - East Asian ideograph - - - 215447 - 8236 - E888B6 - East Asian ideograph - - - 215448 - 8247 - E88987 - East Asian ideograph - - - 215449 - 8258 - E88998 - East Asian ideograph - - - 21544A - 8259 - E88999 - East Asian ideograph - - - 21544B - 8266 - E889A6 - East Asian ideograph - - - 21544C - 826E - E889AE - East Asian ideograph - - - 21544D - 826F - E889AF - East Asian ideograph - - - 21544E - 8271 - E889B1 - East Asian ideograph - - - 21544F - 8272 - E889B2 - East Asian ideograph - - - 215450 - 827E - E889BE - East Asian ideograph - - - 215451 - 8292 - E88A92 - East Asian ideograph - - - 215452 - 828B - E88A8B - East Asian ideograph - - - 215453 - 828D - E88A8D - East Asian ideograph - - - 215454 - 82B3 - E88AB3 - East Asian ideograph - - - 215455 - 829D - E88A9D - East Asian ideograph - - - 215456 - 8299 - E88A99 - East Asian ideograph - - - 215457 - 82BD - E88ABD - East Asian ideograph - - - 215458 - 82AD - E88AAD - East Asian ideograph - - - 215459 - 82AC - E88AAC - East Asian ideograph - - - 21545A - 82A5 - E88AA5 - East Asian ideograph - - - 21545B - 829F - E88A9F - East Asian ideograph - - - 21545C - 82BB - E88ABB - East Asian ideograph - - - 21545D - 82B1 - E88AB1 - East Asian ideograph - - - 21545E - 82B9 - E88AB9 - East Asian ideograph - - - 215460 - 82E7 - E88BA7 - East Asian ideograph - - - 215461 - 8305 - E88C85 - East Asian ideograph - - - 215462 - 8309 - E88C89 - East Asian ideograph - - - 215463 - 82E3 - E88BA3 - East Asian ideograph - - - 215464 - 82DB - E88B9B - East Asian ideograph - - - 215465 - 82E6 - E88BA6 - East Asian ideograph - - - 215466 - 8304 - E88C84 - East Asian ideograph - - - 215467 - 82E5 - E88BA5 - East Asian ideograph - - - 215468 - 8302 - E88C82 - East Asian ideograph - - - 215469 - 82DC - E88B9C - East Asian ideograph - - - 21546A - 82D7 - E88B97 - East Asian ideograph - - - 21546B - 82F1 - E88BB1 - East Asian ideograph - - - 21546C - 8301 - E88C81 - East Asian ideograph - - - 21546D - 82D3 - E88B93 - East Asian ideograph - - - 21546E - 82D4 - E88B94 - East Asian ideograph - - - 21546F - 82D1 - E88B91 - East Asian ideograph - - - 215470 - 82DE - E88B9E - East Asian ideograph - - - 215471 - 82DF - E88B9F - East Asian ideograph - - - 215472 - 832B - E88CAB - East Asian ideograph - - - 215473 - 8352 - E88D92 - East Asian ideograph - - - 215474 - 834A - E88D8A - East Asian ideograph - - - 215475 - 8338 - E88CB8 - East Asian ideograph - - - 215476 - 8354 - E88D94 - East Asian ideograph - - - 215477 - 8350 - E88D90 - East Asian ideograph - - - 215478 - 8349 - E88D89 - East Asian ideograph - - - 215479 - 8335 - E88CB5 - East Asian ideograph - - - 21547A - 8334 - E88CB4 - East Asian ideograph - - - 21547B - 8336 - E88CB6 - East Asian ideograph - - - 21547C - 8331 - E88CB1 - East Asian ideograph - - - 21547D - 8340 - E88D80 - East Asian ideograph - - - 21547E - 8317 - E88C97 - East Asian ideograph - - - 215521 - 5179 - E585B9 - East Asian ideograph - - - 215522 - 834F - E88D8F - East Asian ideograph - - - 215523 - 8339 - E88CB9 - East Asian ideograph - - - 215524 - 838E - E88E8E - East Asian ideograph - - - 215525 - 8398 - E88E98 - East Asian ideograph - - - 215526 - 839E - E88E9E - East Asian ideograph - - - 215527 - 8378 - E88DB8 - East Asian ideograph - - - 215528 - 83A2 - E88EA2 - East Asian ideograph - - - 215529 - 8396 - E88E96 - East Asian ideograph - - - 21552A - 83A7 - E88EA7 - East Asian ideograph - - - 21552B - 83AB - E88EAB - East Asian ideograph - - - 21552C - 8392 - E88E92 - East Asian ideograph (variant of EACC 4B552C) - - - 21552D - 838A - E88E8A - East Asian ideograph - - - 21552E - 8393 - E88E93 - East Asian ideograph - - - 21552F - 83A0 - E88EA0 - East Asian ideograph - - - 215530 - 8389 - E88E89 - East Asian ideograph - - - 215531 - 8377 - E88DB7 - East Asian ideograph - - - 215532 - 837C - E88DBC - East Asian ideograph - - - 215533 - 837B - E88DBB - East Asian ideograph - - - 215534 - 840D - E8908D - East Asian ideograph - - - 215535 - 83E0 - E88FA0 - East Asian ideograph - - - 215536 - 83E9 - E88FA9 - East Asian ideograph - - - 215538 - 8403 - E89083 - East Asian ideograph - - - 215539 - 83C5 - E88F85 - East Asian ideograph - - - 21553A - 83C1 - E88F81 - East Asian ideograph - - - 21553B - 840B - E8908B - East Asian ideograph - - - 21553C - 83EF - E88FAF - East Asian ideograph - - - 21553E - 83F1 - E88FB1 - East Asian ideograph - - - 21553F - 83BD - E88EBD - East Asian ideograph - - - 215541 - 840A - E8908A - East Asian ideograph - - - 215542 - 840C - E8908C - East Asian ideograph - - - 215543 - 83CC - E88F8C - East Asian ideograph - - - 215544 - 83DC - E88F9C - East Asian ideograph - - - 215545 - 83CA - E88F8A - East Asian ideograph - - - 215546 - 83F2 - E88FB2 - East Asian ideograph - - - 215547 - 840E - E8908E - East Asian ideograph - - - 215548 - 8404 - E89084 - East Asian ideograph - - - 215549 - 843D - E890BD - East Asian ideograph - - - 21554A - 8482 - E89282 - East Asian ideograph - - - 21554B - 8431 - E890B1 - East Asian ideograph - - - 21554C - 8475 - E891B5 - East Asian ideograph - - - 21554D - 8466 - E891A6 - East Asian ideograph - - - 21554E - 8457 - E89197 - East Asian ideograph - - - 21554F - 8449 - E89189 - East Asian ideograph - - - 215550 - 846C - E891AC - East Asian ideograph - - - 215551 - 846B - E891AB - East Asian ideograph - - - 215552 - 845B - E8919B - East Asian ideograph - - - 215553 - 8477 - E891B7 - East Asian ideograph - - - 215554 - 843C - E890BC - East Asian ideograph - - - 215555 - 8435 - E890B5 - East Asian ideograph - - - 215556 - 8461 - E891A1 - East Asian ideograph - - - 215557 - 8463 - E891A3 - East Asian ideograph - - - 215558 - 8469 - E891A9 - East Asian ideograph - - - 215559 - 8438 - E890B8 - East Asian ideograph - - - 21555A - 84B2 - E892B2 - East Asian ideograph - - - 21555B - 849E - E8929E - East Asian ideograph - - - 21555C - 84BF - E892BF - East Asian ideograph - - - 21555D - 84C6 - E89386 - East Asian ideograph - - - 21555E - 84C4 - E89384 - East Asian ideograph - - - 21555F - 84C9 - E89389 - East Asian ideograph - - - 215560 - 849C - E8929C - East Asian ideograph - - - 215561 - 84CB - E8938B - East Asian ideograph - - - 215562 - 84B8 - E892B8 - East Asian ideograph - - - 215563 - 84C0 - E89380 - East Asian ideograph - - - 215564 - 8499 - E89299 - East Asian ideograph - - - 215565 - 84D3 - E89393 - East Asian ideograph - - - 215566 - 8490 - E89290 - East Asian ideograph - - - 215567 - 84BC - E892BC - East Asian ideograph - - - 215568 - 853D - E894BD - East Asian ideograph - - - 215569 - 84FF - E893BF - East Asian ideograph - - - 21556A - 8517 - E89497 - East Asian ideograph - - - 21556B - 851A - E8949A - East Asian ideograph - - - 21556C - 84EE - E893AE - East Asian ideograph - - - 21556D - 852C - E894AC - East Asian ideograph - - - 21556E - 852D - E894AD - East Asian ideograph - - - 21556F - 8513 - E89493 - East Asian ideograph - - - 215571 - 8523 - E894A3 - East Asian ideograph - - - 215572 - 8521 - E894A1 - East Asian ideograph - - - 215573 - 8514 - E89494 - East Asian ideograph - - - 215574 - 84EC - E893AC - East Asian ideograph - - - 215575 - 8525 - E894A5 - East Asian ideograph - - - 215576 - 8569 - E895A9 - East Asian ideograph - - - 215577 - 854A - E8958A - East Asian ideograph - - - 215578 - 8559 - E89599 - East Asian ideograph - - - 215579 - 8548 - E89588 - East Asian ideograph - - - 21557A - 8568 - E895A8 - East Asian ideograph - - - 21557B - 8543 - E89583 - East Asian ideograph - - - 21557C - 856A - E895AA - East Asian ideograph - - - 21557D - 8549 - E89589 - East Asian ideograph - - - 21557E - 8584 - E89684 - East Asian ideograph - - - 215621 - 85AA - E896AA - East Asian ideograph - - - 215622 - 856D - E895AD - East Asian ideograph - - - 215623 - 859B - E8969B - East Asian ideograph - - - 215624 - 8591 - E89691 - East Asian ideograph - - - 215625 - 857E - E895BE - East Asian ideograph - - - 215626 - 8594 - E89694 - East Asian ideograph - - - 215627 - 859C - E8969C - East Asian ideograph - - - 215628 - 8587 - E89687 - East Asian ideograph - - - 215629 - 85CD - E8978D - East Asian ideograph (variant of EACC 4B5629) - - - 21562A - 85A9 - E896A9 - East Asian ideograph - - - 21562B - 85CF - E8978F - East Asian ideograph - - - 21562C - 85AF - E896AF - East Asian ideograph - - - 21562D - 85D0 - E89790 - East Asian ideograph - - - 21562E - 85C9 - E89789 - East Asian ideograph - - - 21562F - 85B0 - E896B0 - East Asian ideograph - - - 215630 - 85E9 - E897A9 - East Asian ideograph - - - 215631 - 85DD - E8979D - East Asian ideograph - - - 215632 - 85EA - E897AA - East Asian ideograph - - - 215633 - 85E4 - E897A4 - East Asian ideograph - - - 215634 - 85D5 - E89795 - East Asian ideograph - - - 215635 - 85E5 - E897A5 - East Asian ideograph - - - 215636 - 85FB - E897BB - East Asian ideograph - - - 215637 - 85F9 - E897B9 - East Asian ideograph - - - 215638 - 8611 - E89891 - East Asian ideograph - - - 215639 - 85FA - E897BA - East Asian ideograph - - - 21563A - 8606 - E89886 - East Asian ideograph - - - 21563B - 860B - E8988B - East Asian ideograph - - - 21563C - 8607 - E89887 - East Asian ideograph - - - 21563D - 860A - E8988A - East Asian ideograph - - - 21563E - 862D - E898AD - East Asian ideograph - - - 21563F - 8617 - E89897 - East Asian ideograph - - - 215640 - 861A - E8989A - East Asian ideograph - - - 215641 - 8638 - E898B8 - East Asian ideograph - - - 215642 - 863F - E898BF - East Asian ideograph - - - 215643 - 864E - E8998E - East Asian ideograph - - - 215644 - 8650 - E89990 - East Asian ideograph - - - 215645 - 8654 - E89994 - East Asian ideograph - - - 215646 - 5F6A - E5BDAA - East Asian ideograph - - - 215647 - 8655 - E89995 - East Asian ideograph - - - 215648 - 865C - E8999C - East Asian ideograph - - - 215649 - 865B - E8999B - East Asian ideograph - - - 21564A - 865F - E8999F - East Asian ideograph - - - 21564B - 865E - E8999E - East Asian ideograph - - - 21564C - 8667 - E899A7 - East Asian ideograph - - - 21564F - 8679 - E899B9 - East Asian ideograph - - - 215650 - 86A9 - E89AA9 - East Asian ideograph - - - 215651 - 86AA - E89AAA - East Asian ideograph - - - 215652 - 868A - E89A8A - East Asian ideograph - - - 215653 - 8693 - E89A93 - East Asian ideograph - - - 215654 - 86A4 - E89AA4 - East Asian ideograph - - - 215655 - 868C - E89A8C - East Asian ideograph - - - 215656 - 86A3 - E89AA3 - East Asian ideograph - - - 215657 - 86C0 - E89B80 - East Asian ideograph - - - 215658 - 86C7 - E89B87 - East Asian ideograph - - - 215659 - 86B5 - E89AB5 - East Asian ideograph - - - 21565A - 86CB - E89B8B - East Asian ideograph - - - 21565B - 86B6 - E89AB6 - East Asian ideograph - - - 21565C - 86C4 - E89B84 - East Asian ideograph - - - 21565D - 86C6 - E89B86 - East Asian ideograph - - - 21565E - 86B1 - E89AB1 - East Asian ideograph - - - 21565F - 86AF - E89AAF - East Asian ideograph - - - 215660 - 86DF - E89B9F - East Asian ideograph - - - 215661 - 86D9 - E89B99 - East Asian ideograph - - - 215662 - 86ED - E89BAD - East Asian ideograph - - - 215663 - 86D4 - E89B94 - East Asian ideograph - - - 215664 - 86DB - E89B9B - East Asian ideograph - - - 215665 - 86E4 - E89BA4 - East Asian ideograph - - - 215666 - 86FB - E89BBB - East Asian ideograph - - - 215667 - 86F9 - E89BB9 - East Asian ideograph - - - 215668 - 8707 - E89C87 - East Asian ideograph - - - 215669 - 8703 - E89C83 - East Asian ideograph - - - 21566A - 8708 - E89C88 - East Asian ideograph - - - 21566B - 8700 - E89C80 - East Asian ideograph - - - 21566C - 86FE - E89BBE - East Asian ideograph - - - 21566D - 8713 - E89C93 - East Asian ideograph - - - 21566E - 8702 - E89C82 - East Asian ideograph - - - 21566F - 871C - E89C9C - East Asian ideograph - - - 215670 - 873F - E89CBF - East Asian ideograph - - - 215671 - 873B - E89CBB - East Asian ideograph - - - 215672 - 8722 - E89CA2 - East Asian ideograph - - - 215673 - 8725 - E89CA5 - East Asian ideograph - - - 215674 - 8734 - E89CB4 - East Asian ideograph - - - 215675 - 8718 - E89C98 - East Asian ideograph - - - 215676 - 8755 - E89D95 - East Asian ideograph - - - 215677 - 8760 - E89DA0 - East Asian ideograph - - - 215678 - 8776 - E89DB6 - East Asian ideograph - - - 215679 - 8774 - E89DB4 - East Asian ideograph - - - 21567A - 8766 - E89DA6 - East Asian ideograph - - - 21567B - 8778 - E89DB8 - East Asian ideograph - - - 21567C - 8768 - E89DA8 - East Asian ideograph - - - 21567D - 874C - E89D8C - East Asian ideograph - - - 21567E - 8757 - E89D97 - East Asian ideograph - - - 215721 - 8759 - E89D99 - East Asian ideograph - - - 215722 - 8783 - E89E83 - East Asian ideograph - - - 215723 - 8782 - E89E82 - East Asian ideograph - - - 215724 - 87A2 - E89EA2 - East Asian ideograph - - - 215725 - 879E - E89E9E - East Asian ideograph - - - 215726 - 878D - E89E8D - East Asian ideograph - - - 215727 - 879F - E89E9F - East Asian ideograph - - - 215728 - 87D1 - E89F91 - East Asian ideograph - - - 215729 - 87C0 - E89F80 - East Asian ideograph - - - 21572A - 87AB - E89EAB - East Asian ideograph - - - 21572B - 87B3 - E89EB3 - East Asian ideograph - - - 21572C - 87BB - E89EBB - East Asian ideograph - - - 21572D - 87C8 - E89F88 - East Asian ideograph - - - 21572E - 87D2 - E89F92 - East Asian ideograph - - - 21572F - 87BA - E89EBA - East Asian ideograph - - - 215730 - 87C6 - E89F86 - East Asian ideograph - - - 215731 - 87CB - E89F8B - East Asian ideograph - - - 215732 - 87EF - E89FAF - East Asian ideograph - - - 215733 - 87F2 - E89FB2 - East Asian ideograph - - - 215734 - 87EC - E89FAC - East Asian ideograph - - - 215735 - 87FB - E89FBB - East Asian ideograph - - - 215736 - 8805 - E8A085 - East Asian ideograph - - - 215737 - 880D - E8A08D - East Asian ideograph - - - 215738 - 87F9 - E89FB9 - East Asian ideograph - - - 215739 - 8814 - E8A094 - East Asian ideograph - - - 21573A - 8815 - E8A095 - East Asian ideograph - - - 21573B - 8822 - E8A0A2 - East Asian ideograph - - - 21573C - 8823 - E8A0A3 - East Asian ideograph - - - 21573D - 8821 - E8A0A1 - East Asian ideograph - - - 21573E - 881F - E8A09F - East Asian ideograph - - - 21573F - 8831 - E8A0B1 - East Asian ideograph - - - 215740 - 8839 - E8A0B9 - East Asian ideograph - - - 215741 - 8836 - E8A0B6 - East Asian ideograph - - - 215742 - 883B - E8A0BB - East Asian ideograph - - - 215743 - 8840 - E8A180 - East Asian ideograph - - - 215744 - 884C - E8A18C - East Asian ideograph - - - 215745 - 884D - E8A18D - East Asian ideograph - - - 215746 - 8853 - E8A193 - East Asian ideograph (variant of EACC 4B5746) - - - 215747 - 8857 - E8A197 - East Asian ideograph - - - 215748 - 8859 - E8A199 - East Asian ideograph - - - 215749 - 885B - E8A19B - East Asian ideograph - - - 21574A - 885D - E8A19D - East Asian ideograph - - - 21574B - 8861 - E8A1A1 - East Asian ideograph - - - 21574C - 8862 - E8A1A2 - East Asian ideograph - - - 21574D - 8863 - E8A1A3 - East Asian ideograph - - - 21574E - 521D - E5889D - East Asian ideograph - - - 21574F - 8868 - E8A1A8 - East Asian ideograph - - - 215750 - 886B - E8A1AB - East Asian ideograph - - - 215751 - 8882 - E8A282 - East Asian ideograph - - - 215752 - 8881 - E8A281 - East Asian ideograph - - - 215753 - 8870 - E8A1B0 - East Asian ideograph - - - 215754 - 8877 - E8A1B7 - East Asian ideograph - - - 215755 - 8888 - E8A288 - East Asian ideograph - - - 215756 - 88AB - E8A2AB - East Asian ideograph - - - 215757 - 8892 - E8A292 - East Asian ideograph - - - 215758 - 8896 - E8A296 - East Asian ideograph - - - 215759 - 888D - E8A28D - East Asian ideograph - - - 21575A - 888B - E8A28B - East Asian ideograph - - - 21575B - 889E - E8A29E - East Asian ideograph - - - 21575C - 88C1 - E8A381 - East Asian ideograph - - - 21575D - 88C2 - E8A382 - East Asian ideograph - - - 21575E - 88B1 - E8A2B1 - East Asian ideograph - - - 21575F - 88DF - E8A39F - East Asian ideograph - - - 215760 - 88D9 - E8A399 - East Asian ideograph - - - 215761 - 88D8 - E8A398 - East Asian ideograph - - - 215762 - 88DC - E8A39C - East Asian ideograph - - - 215763 - 88CF - E8A38F - East Asian ideograph - - - 215764 - 88D4 - E8A394 - East Asian ideograph - - - 215765 - 88DD - E8A39D - East Asian ideograph - - - 215766 - 88D5 - E8A395 - East Asian ideograph - - - 215767 - 8902 - E8A482 - East Asian ideograph - - - 215768 - 88F3 - E8A3B3 - East Asian ideograph - - - 215769 - 88F8 - E8A3B8 - East Asian ideograph - - - 21576A - 88F9 - E8A3B9 - East Asian ideograph - - - 21576B - 88F4 - E8A3B4 - East Asian ideograph - - - 21576C - 88FD - E8A3BD - East Asian ideograph - - - 21576D - 88E8 - E8A3A8 - East Asian ideograph - - - 21576E - 891A - E8A49A - East Asian ideograph - - - 21576F - 8910 - E8A490 - East Asian ideograph - - - 215771 - 8913 - E8A493 - East Asian ideograph - - - 215772 - 8912 - E8A492 - East Asian ideograph - - - 215773 - 8932 - E8A4B2 - East Asian ideograph - - - 215774 - 892A - E8A4AA - East Asian ideograph - - - 215775 - 8925 - E8A4A5 - East Asian ideograph - - - 215776 - 892B - E8A4AB - East Asian ideograph - - - 215777 - 893B - E8A4BB - East Asian ideograph - - - 215778 - 8936 - E8A4B6 - East Asian ideograph - - - 215779 - 8938 - E8A4B8 - East Asian ideograph - - - 21577A - 8944 - E8A584 - East Asian ideograph - - - 21577B - 895F - E8A59F - East Asian ideograph - - - 21577C - 8960 - E8A5A0 - East Asian ideograph - - - 21577D - 8956 - E8A596 - East Asian ideograph - - - 21577E - 8964 - E8A5A4 - East Asian ideograph - - - 215821 - 896A - E8A5AA - East Asian ideograph - - - 215822 - 896F - E8A5AF - East Asian ideograph - - - 215823 - 8972 - E8A5B2 - East Asian ideograph - - - 215824 - 897F - E8A5BF - East Asian ideograph - - - 215825 - 8981 - E8A681 - East Asian ideograph - - - 215826 - 8983 - E8A683 - East Asian ideograph - - - 215828 - 898B - E8A68B - East Asian ideograph - - - 215829 - 898F - E8A68F - East Asian ideograph - - - 21582A - 8993 - E8A693 - East Asian ideograph - - - 21582B - 8996 - E8A696 - East Asian ideograph - - - 21582C - 89AA - E8A6AA - East Asian ideograph - - - 21582D - 89A6 - E8A6A6 - East Asian ideograph - - - 21582E - 89AC - E8A6AC - East Asian ideograph - - - 21582F - 89B2 - E8A6B2 - East Asian ideograph - - - 215830 - 89BA - E8A6BA - East Asian ideograph - - - 215831 - 89BD - E8A6BD - East Asian ideograph - - - 215832 - 89C0 - E8A780 - East Asian ideograph - - - 215833 - 89D2 - E8A792 - East Asian ideograph - - - 215834 - 89E3 - E8A7A3 - East Asian ideograph - - - 215835 - 89F4 - E8A7B4 - East Asian ideograph - - - 215836 - 89F8 - E8A7B8 - East Asian ideograph - - - 215837 - 8A00 - E8A880 - East Asian ideograph - - - 215838 - 8A08 - E8A888 - East Asian ideograph - - - 215839 - 8A02 - E8A882 - East Asian ideograph - - - 21583A - 8A03 - E8A883 - East Asian ideograph - - - 21583B - 8A10 - E8A890 - East Asian ideograph - - - 21583C - 8A18 - E8A898 - East Asian ideograph - - - 21583D - 8A0E - E8A88E - East Asian ideograph - - - 21583E - 8A0C - E8A88C - East Asian ideograph - - - 21583F - 8A15 - E8A895 - East Asian ideograph - - - 215840 - 8A0A - E8A88A - East Asian ideograph - - - 215841 - 8A16 - E8A896 - East Asian ideograph - - - 215842 - 8A17 - E8A897 - East Asian ideograph - - - 215843 - 8A13 - E8A893 - East Asian ideograph - - - 215844 - 8A2A - E8A8AA - East Asian ideograph - - - 215845 - 8A23 - E8A8A3 - East Asian ideograph - - - 215846 - 8A1D - E8A89D - East Asian ideograph - - - 215847 - 8A25 - E8A8A5 - East Asian ideograph - - - 215848 - 8A31 - E8A8B1 - East Asian ideograph - - - 215849 - 8A2D - E8A8AD - East Asian ideograph - - - 21584A - 8A1B - E8A89B - East Asian ideograph - - - 21584B - 8A1F - E8A89F - East Asian ideograph - - - 21584C - 8A3B - E8A8BB - East Asian ideograph - - - 21584D - 8A60 - E8A9A0 - East Asian ideograph - - - 21584E - 8A55 - E8A995 - East Asian ideograph - - - 21584F - 8A5E - E8A99E - East Asian ideograph - - - 215851 - 8A41 - E8A981 - East Asian ideograph - - - 215852 - 8A54 - E8A994 - East Asian ideograph - - - 215853 - 8A5B - E8A99B - East Asian ideograph - - - 215854 - 8A50 - E8A990 - East Asian ideograph - - - 215855 - 8A46 - E8A986 - East Asian ideograph - - - 215856 - 8A34 - E8A8B4 - East Asian ideograph - - - 215857 - 8A3A - E8A8BA - East Asian ideograph - - - 215858 - 8A6B - E8A9AB - East Asian ideograph - - - 215859 - 8A72 - E8A9B2 - East Asian ideograph - - - 21585A - 8A73 - E8A9B3 - East Asian ideograph - - - 21585B - 8A66 - E8A9A6 - East Asian ideograph - - - 21585C - 8A69 - E8A9A9 - East Asian ideograph - - - 21585D - 8A70 - E8A9B0 - East Asian ideograph - - - 21585E - 8A63 - E8A9A3 - East Asian ideograph - - - 21585F - 8A7C - E8A9BC - East Asian ideograph - - - 215860 - 8AA0 - E8AAA0 - East Asian ideograph - - - 215861 - 8A87 - E8AA87 - East Asian ideograph - - - 215862 - 8A85 - E8AA85 - East Asian ideograph - - - 215863 - 8A6D - E8A9AD - East Asian ideograph - - - 215864 - 8A79 - E8A9B9 - East Asian ideograph - - - 215865 - 8A62 - E8A9A2 - East Asian ideograph - - - 215866 - 8A71 - E8A9B1 - East Asian ideograph - - - 215867 - 8A6E - E8A9AE - East Asian ideograph - - - 215868 - 8A6C - E8A9AC - East Asian ideograph - - - 215869 - 8AAA - E8AAAA - East Asian ideograph - - - 21586A - 8AA6 - E8AAA6 - East Asian ideograph - - - 21586B - 8AA1 - E8AAA1 - East Asian ideograph - - - 21586C - 8A9E - E8AA9E - East Asian ideograph - - - 21586D - 8A8C - E8AA8C - East Asian ideograph - - - 21586E - 8A93 - E8AA93 - East Asian ideograph - - - 21586F - 8AA3 - E8AAA3 - East Asian ideograph - - - 215870 - 8A8D - E8AA8D - East Asian ideograph - - - 215871 - 8AA4 - E8AAA4 - East Asian ideograph (variant of EACC 4B5871) - - - 215872 - 8AA8 - E8AAA8 - East Asian ideograph - - - 215873 - 8AA5 - E8AAA5 - East Asian ideograph - - - 215874 - 8A98 - E8AA98 - East Asian ideograph - - - 215875 - 8A91 - E8AA91 - East Asian ideograph - - - 215876 - 8ABC - E8AABC - East Asian ideograph - - - 215877 - 8AC4 - E8AB84 - East Asian ideograph - - - 215878 - 8AD2 - E8AB92 - East Asian ideograph - - - 215879 - 8AC7 - E8AB87 - East Asian ideograph - - - 21587A - 8ACB - E8AB8B - East Asian ideograph (variant of EACC 4B587A) - - - 21587B - 8AF8 - E8ABB8 - East Asian ideograph - - - 21587C - 8AB2 - E8AAB2 - East Asian ideograph - - - 21587D - 8ABF - E8AABF - East Asian ideograph - - - 21587E - 8AC9 - E8AB89 - East Asian ideograph - - - 215921 - 8AC2 - E8AB82 - East Asian ideograph - - - 215922 - 8AB0 - E8AAB0 - East Asian ideograph - - - 215923 - 8A95 - E8AA95 - East Asian ideograph - - - 215924 - 8AD6 - E8AB96 - East Asian ideograph - - - 215925 - 8AE6 - E8ABA6 - East Asian ideograph - - - 215926 - 8AFA - E8ABBA - East Asian ideograph - - - 215927 - 8AEB - E8ABAB - East Asian ideograph - - - 215928 - 8AF1 - E8ABB1 - East Asian ideograph - - - 215929 - 8AE7 - E8ABA7 - East Asian ideograph - - - 21592A - 8ADC - E8AB9C - East Asian ideograph - - - 21592B - 8B00 - E8AC80 - East Asian ideograph - - - 21592C - 8B01 - E8AC81 - East Asian ideograph (variant of EACC 2D592C) - - - 21592D - 8B02 - E8AC82 - East Asian ideograph - - - 21592E - 8AFE - E8ABBE - East Asian ideograph - - - 21592F - 8AF7 - E8ABB7 - East Asian ideograph - - - 215930 - 8AED - E8ABAD - East Asian ideograph - - - 215931 - 8B17 - E8AC97 - East Asian ideograph - - - 215932 - 8B19 - E8AC99 - East Asian ideograph - - - 215933 - 8B0E - E8AC8E - East Asian ideograph - - - 215934 - 8B1B - E8AC9B - East Asian ideograph - - - 215935 - 8B0A - E8AC8A - East Asian ideograph - - - 215936 - 8B21 - E8ACA1 - East Asian ideograph - - - 215937 - 8B04 - E8AC84 - East Asian ideograph - - - 215938 - 8B1D - E8AC9D - East Asian ideograph - - - 215939 - 8B39 - E8ACB9 - East Asian ideograph - - - 21593A - 8B2C - E8ACAC - East Asian ideograph - - - 21593B - 8B28 - E8ACA8 - East Asian ideograph - - - 21593C - 8B58 - E8AD98 - East Asian ideograph - - - 21593D - 8B5C - E8AD9C - East Asian ideograph - - - 21593E - 8B4E - E8AD8E - East Asian ideograph - - - 21593F - 8B49 - E8AD89 - East Asian ideograph - - - 215940 - 8B5A - E8AD9A - East Asian ideograph - - - 215941 - 8B41 - E8AD81 - East Asian ideograph - - - 215942 - 8B4F - E8AD8F - East Asian ideograph - - - 215943 - 8B70 - E8ADB0 - East Asian ideograph - - - 215944 - 8B6C - E8ADAC - East Asian ideograph - - - 215945 - 8B66 - E8ADA6 - East Asian ideograph - - - 215946 - 8B6F - E8ADAF - East Asian ideograph - - - 215947 - 8B74 - E8ADB4 - East Asian ideograph - - - 215948 - 8B77 - E8ADB7 - East Asian ideograph - - - 215949 - 8B7D - E8ADBD - East Asian ideograph - - - 21594A - 8B80 - E8AE80 - East Asian ideograph - - - 21594B - 8B8A - E8AE8A - East Asian ideograph - - - 21594C - 8B93 - E8AE93 - East Asian ideograph - - - 21594D - 8B96 - E8AE96 - East Asian ideograph - - - 21594E - 8B92 - E8AE92 - East Asian ideograph - - - 21594F - 8B9A - E8AE9A - East Asian ideograph - - - 215951 - 8C41 - E8B181 - East Asian ideograph - - - 215952 - 8C3F - E8B0BF - East Asian ideograph - - - 215953 - 8C46 - E8B186 - East Asian ideograph - - - 215954 - 8C48 - E8B188 - East Asian ideograph - - - 215955 - 8C49 - E8B189 - East Asian ideograph - - - 215956 - 8C4C - E8B18C - East Asian ideograph - - - 215957 - 8C4E - E8B18E - East Asian ideograph - - - 215958 - 8C50 - E8B190 - East Asian ideograph - - - 215959 - 8C54 - E8B194 - East Asian ideograph - - - 21595A - 8C5A - E8B19A - East Asian ideograph - - - 21595C - 8C62 - E8B1A2 - East Asian ideograph - - - 21595D - 8C6A - E8B1AA - East Asian ideograph - - - 21595E - 8C6B - E8B1AB - East Asian ideograph - - - 21595F - 8C6C - E8B1AC - East Asian ideograph - - - 215960 - 8C7A - E8B1BA - East Asian ideograph - - - 215961 - 8C79 - E8B1B9 - East Asian ideograph - - - 215962 - 8C82 - E8B282 - East Asian ideograph - - - 215963 - 8C8A - E8B28A - East Asian ideograph - - - 215964 - 8C89 - E8B289 - East Asian ideograph - - - 215965 - 8C8D - E8B28D - East Asian ideograph - - - 215966 - 8C8C - E8B28C - East Asian ideograph - - - 215967 - 8C93 - E8B293 - East Asian ideograph - - - 215968 - 8C9D - E8B29D - East Asian ideograph - - - 215969 - 8C9E - E8B29E - East Asian ideograph - - - 21596A - 8CA0 - E8B2A0 - East Asian ideograph - - - 21596B - 8CA2 - E8B2A2 - East Asian ideograph - - - 21596C - 8CA1 - E8B2A1 - East Asian ideograph - - - 21596D - 8CAC - E8B2AC - East Asian ideograph - - - 21596E - 8CAB - E8B2AB - East Asian ideograph - - - 21596F - 8CA8 - E8B2A8 - East Asian ideograph - - - 215970 - 8CAA - E8B2AA - East Asian ideograph - - - 215971 - 8CA7 - E8B2A7 - East Asian ideograph - - - 215972 - 8CA9 - E8B2A9 - East Asian ideograph - - - 215973 - 8CAF - E8B2AF - East Asian ideograph - - - 215975 - 8CBB - E8B2BB - East Asian ideograph - - - 215976 - 8CC1 - E8B381 - East Asian ideograph - - - 215977 - 8CC0 - E8B380 - East Asian ideograph - - - 215978 - 8CB4 - E8B2B4 - East Asian ideograph - - - 215979 - 8CBC - E8B2BC - East Asian ideograph - - - 21597A - 8CB7 - E8B2B7 - East Asian ideograph - - - 21597B - 8CB6 - E8B2B6 - East Asian ideograph - - - 21597C - 8CBD - E8B2BD - East Asian ideograph - - - 21597D - 8CB8 - E8B2B8 - East Asian ideograph - - - 21597E - 8CBF - E8B2BF - East Asian ideograph - - - 215A21 - 8CC5 - E8B385 - East Asian ideograph - - - 215A22 - 8CC7 - E8B387 - East Asian ideograph - - - 215A23 - 8CCA - E8B38A - East Asian ideograph - - - 215A24 - 8CC8 - E8B388 - East Asian ideograph - - - 215A25 - 8CC4 - E8B384 - East Asian ideograph - - - 215A26 - 8CB2 - E8B2B2 - East Asian ideograph - - - 215A27 - 8CC3 - E8B383 - East Asian ideograph - - - 215A28 - 8CC2 - E8B382 - East Asian ideograph - - - 215A29 - 8CD3 - E8B393 - East Asian ideograph - - - 215A2A - 8CD1 - E8B391 - East Asian ideograph - - - 215A2B - 8CD2 - E8B392 - East Asian ideograph - - - 215A2C - 8CE0 - E8B3A0 - East Asian ideograph - - - 215A2D - 8CE6 - E8B3A6 - East Asian ideograph - - - 215A2F - 8CE3 - E8B3A3 - East Asian ideograph - - - 215A30 - 8CE2 - E8B3A2 - East Asian ideograph - - - 215A31 - 8CE4 - E8B3A4 - East Asian ideograph - - - 215A32 - 8CDE - E8B39E - East Asian ideograph - - - 215A33 - 8CDC - E8B39C - East Asian ideograph - - - 215A34 - 8CEA - E8B3AA - East Asian ideograph - - - 215A35 - 8CED - E8B3AD - East Asian ideograph - - - 215A36 - 8CF4 - E8B3B4 - East Asian ideograph - - - 215A37 - 8CFD - E8B3BD - East Asian ideograph - - - 215A38 - 8CFA - E8B3BA - East Asian ideograph - - - 215A39 - 8D05 - E8B485 - East Asian ideograph - - - 215A3A - 8CFC - E8B3BC - East Asian ideograph - - - 215A3B - 8D08 - E8B488 - East Asian ideograph (variant of EACC 4B5A3B) - - - 215A3C - 8D0B - E8B48B - East Asian ideograph - - - 215A3D - 8D0A - E8B48A - East Asian ideograph - - - 215A3E - 8D0F - E8B48F - East Asian ideograph - - - 215A3F - 8D0D - E8B48D - East Asian ideograph - - - 215A40 - 8D13 - E8B493 - East Asian ideograph - - - 215A41 - 8D16 - E8B496 - East Asian ideograph - - - 215A42 - 8D1B - E8B49B - East Asian ideograph - - - 215A43 - 8D64 - E8B5A4 - East Asian ideograph - - - 215A44 - 8D67 - E8B5A7 - East Asian ideograph - - - 215A45 - 8D66 - E8B5A6 - East Asian ideograph - - - 215A46 - 8D6B - E8B5AB - East Asian ideograph - - - 215A47 - 8D6D - E8B5AD - East Asian ideograph - - - 215A48 - 8D70 - E8B5B0 - East Asian ideograph - - - 215A49 - 8D74 - E8B5B4 - East Asian ideograph - - - 215A4A - 8D73 - E8B5B3 - East Asian ideograph - - - 215A4B - 8D77 - E8B5B7 - East Asian ideograph - - - 215A4C - 8D85 - E8B685 - East Asian ideograph - - - 215A4D - 8D8A - E8B68A - East Asian ideograph - - - 215A4E - 8D81 - E8B681 - East Asian ideograph - - - 215A4F - 8D99 - E8B699 - East Asian ideograph - - - 215A50 - 8D95 - E8B695 - East Asian ideograph - - - 215A51 - 8DA3 - E8B6A3 - East Asian ideograph - - - 215A52 - 8D9F - E8B69F - East Asian ideograph - - - 215A53 - 8DA8 - E8B6A8 - East Asian ideograph - - - 215A54 - 8DB3 - E8B6B3 - East Asian ideograph - - - 215A55 - 8DB4 - E8B6B4 - East Asian ideograph - - - 215A56 - 8DBE - E8B6BE - East Asian ideograph - - - 215A57 - 8DCE - E8B78E - East Asian ideograph - - - 215A58 - 8DDD - E8B79D - East Asian ideograph - - - 215A59 - 8DDB - E8B79B - East Asian ideograph - - - 215A5A - 8DCB - E8B78B - East Asian ideograph - - - 215A5B - 8DDA - E8B79A - East Asian ideograph - - - 215A5C - 8DC6 - E8B786 - East Asian ideograph - - - 215A5D - 8DD1 - E8B791 - East Asian ideograph - - - 215A5E - 8DCC - E8B78C - East Asian ideograph - - - 215A5F - 8DE1 - E8B7A1 - East Asian ideograph - - - 215A60 - 8DDF - E8B79F - East Asian ideograph - - - 215A61 - 8DE8 - E8B7A8 - East Asian ideograph - - - 215A62 - 8DF3 - E8B7B3 - East Asian ideograph - - - 215A63 - 8DFA - E8B7BA - East Asian ideograph - - - 215A64 - 8DEA - E8B7AA - East Asian ideograph - - - 215A65 - 8DEF - E8B7AF - East Asian ideograph - - - 215A66 - 8DFC - E8B7BC - East Asian ideograph - - - 215A67 - 8E2B - E8B8AB - East Asian ideograph - - - 215A68 - 8E10 - E8B890 - East Asian ideograph - - - 215A69 - 8E22 - E8B8A2 - East Asian ideograph - - - 215A6A - 8E1D - E8B89D - East Asian ideograph - - - 215A6B - 8E0F - E8B88F - East Asian ideograph - - - 215A6C - 8E29 - E8B8A9 - East Asian ideograph - - - 215A6D - 8E1F - E8B89F - East Asian ideograph - - - 215A6E - 8E44 - E8B984 - East Asian ideograph - - - 215A6F - 8E31 - E8B8B1 - East Asian ideograph - - - 215A70 - 8E42 - E8B982 - East Asian ideograph - - - 215A71 - 8E34 - E8B8B4 - East Asian ideograph - - - 215A72 - 8E39 - E8B8B9 - East Asian ideograph - - - 215A73 - 8E35 - E8B8B5 - East Asian ideograph - - - 215A74 - 8E49 - E8B989 - East Asian ideograph - - - 215A75 - 8E4B - E8B98B - East Asian ideograph - - - 215A76 - 8E48 - E8B988 - East Asian ideograph - - - 215A77 - 8E4A - E8B98A - East Asian ideograph - - - 215A78 - 8E63 - E8B9A3 - East Asian ideograph - - - 215A79 - 8E59 - E8B999 - East Asian ideograph - - - 215A7A - 8E66 - E8B9A6 - East Asian ideograph - - - 215A7B - 8E64 - E8B9A4 - East Asian ideograph - - - 215A7C - 8E72 - E8B9B2 - East Asian ideograph - - - 215A7D - 8E6C - E8B9AC - East Asian ideograph - - - 215A7E - 8E7A - E8B9BA - East Asian ideograph - - - 215B21 - 8E76 - E8B9B6 - East Asian ideograph - - - 215B22 - 8E7C - E8B9BC - East Asian ideograph - - - 215B23 - 8E82 - E8BA82 - East Asian ideograph - - - 215B24 - 8E81 - E8BA81 - East Asian ideograph - - - 215B25 - 8E87 - E8BA87 - East Asian ideograph - - - 215B26 - 8E89 - E8BA89 - East Asian ideograph - - - 215B27 - 8E85 - E8BA85 - East Asian ideograph - - - 215B28 - 8E8A - E8BA8A - East Asian ideograph - - - 215B29 - 8E8D - E8BA8D - East Asian ideograph (variant of EACC 4B5B29) - - - 215B2A - 8E91 - E8BA91 - East Asian ideograph - - - 215B2B - 8EA1 - E8BAA1 - East Asian ideograph - - - 215B2C - 8EAA - E8BAAA - East Asian ideograph - - - 215B2D - 8EAB - E8BAAB - East Asian ideograph - - - 215B2E - 8EAC - E8BAAC - East Asian ideograph - - - 215B2F - 8EB2 - E8BAB2 - East Asian ideograph - - - 215B30 - 8EBA - E8BABA - East Asian ideograph - - - 215B31 - 8EC0 - E8BB80 - East Asian ideograph - - - 215B32 - 8ECA - E8BB8A - East Asian ideograph - - - 215B33 - 8ECB - E8BB8B - East Asian ideograph - - - 215B34 - 8ECD - E8BB8D - East Asian ideograph - - - 215B35 - 8ECC - E8BB8C - East Asian ideograph - - - 215B36 - 8ED2 - E8BB92 - East Asian ideograph - - - 215B37 - 8ED4 - E8BB94 - East Asian ideograph - - - 215B38 - 8EDF - E8BB9F - East Asian ideograph - - - 215B39 - 8EDB - E8BB9B - East Asian ideograph - - - 215B3A - 8EFB - E8BBBB - East Asian ideograph - - - 215B3B - 8EF8 - E8BBB8 - East Asian ideograph - - - 215B3C - 8EFC - E8BBBC - East Asian ideograph - - - 215B3D - 8F03 - E8BC83 - East Asian ideograph - - - 215B3E - 8EFE - E8BBBE - East Asian ideograph - - - 215B3F - 8F09 - E8BC89 - East Asian ideograph - - - 215B40 - 8F0A - E8BC8A - East Asian ideograph - - - 215B41 - 8F14 - E8BC94 - East Asian ideograph - - - 215B42 - 8F12 - E8BC92 - East Asian ideograph - - - 215B43 - 8F15 - E8BC95 - East Asian ideograph - - - 215B44 - 8F13 - E8BC93 - East Asian ideograph - - - 215B45 - 8F26 - E8BCA6 - East Asian ideograph - - - 215B46 - 8F1B - E8BC9B - East Asian ideograph - - - 215B47 - 8F1F - E8BC9F - East Asian ideograph - - - 215B48 - 8F1D - E8BC9D - East Asian ideograph - - - 215B49 - 8F29 - E8BCA9 - East Asian ideograph - - - 215B4A - 8F2A - E8BCAA - East Asian ideograph - - - 215B4B - 8F1C - E8BC9C - East Asian ideograph - - - 215B4C - 8F3B - E8BCBB - East Asian ideograph - - - 215B4D - 8F2F - E8BCAF - East Asian ideograph - - - 215B4E - 8F38 - E8BCB8 - East Asian ideograph - - - 215B4F - 8F44 - E8BD84 - East Asian ideograph - - - 215B50 - 8F3E - E8BCBE - East Asian ideograph - - - 215B51 - 8F45 - E8BD85 - East Asian ideograph - - - 215B52 - 8F42 - E8BD82 - East Asian ideograph (variant of EACC 4B5B52) - - - 215B53 - 8F3F - E8BCBF - East Asian ideograph - - - 215B54 - 8F4D - E8BD8D - East Asian ideograph - - - 215B55 - 8F49 - E8BD89 - East Asian ideograph - - - 215B56 - 8F54 - E8BD94 - East Asian ideograph - - - 215B57 - 8F4E - E8BD8E - East Asian ideograph - - - 215B58 - 8F5F - E8BD9F - East Asian ideograph - - - 215B59 - 8F61 - E8BDA1 - East Asian ideograph - - - 215B5A - 8F9B - E8BE9B - East Asian ideograph - - - 215B5B - 8F9C - E8BE9C - East Asian ideograph - - - 215B5C - 8F9F - E8BE9F - East Asian ideograph - - - 215B5D - 8FA3 - E8BEA3 - East Asian ideograph - - - 215B5E - 8FA8 - E8BEA8 - East Asian ideograph - - - 215B5F - 8FA6 - E8BEA6 - East Asian ideograph - - - 215B60 - 8FAD - E8BEAD - East Asian ideograph - - - 215B61 - 8FAF - E8BEAF - East Asian ideograph - - - 215B62 - 8FB0 - E8BEB0 - East Asian ideograph - - - 215B63 - 8FB1 - E8BEB1 - East Asian ideograph - - - 215B64 - 8FB2 - E8BEB2 - East Asian ideograph - - - 215B66 - 8FC6 - E8BF86 - East Asian ideograph - - - 215B67 - 8FC5 - E8BF85 - East Asian ideograph - - - 215B68 - 8FC4 - E8BF84 - East Asian ideograph - - - 215B69 - 5DE1 - E5B7A1 - East Asian ideograph - - - 215B6A - 8FCE - E8BF8E - East Asian ideograph - - - 215B6B - 8FD1 - E8BF91 - East Asian ideograph - - - 215B6C - 8FD4 - E8BF94 - East Asian ideograph - - - 215B6D - 8FF0 - E8BFB0 - East Asian ideograph (variant of EACC 275B6D) - - - 215B6E - 8FE6 - E8BFA6 - East Asian ideograph - - - 215B6F - 8FE2 - E8BFA2 - East Asian ideograph - - - 215B70 - 8FEA - E8BFAA - East Asian ideograph - - - 215B71 - 8FE5 - E8BFA5 - East Asian ideograph - - - 215B73 - 8FEB - E8BFAB - East Asian ideograph - - - 215B74 - 9001 - E98081 - East Asian ideograph - - - 215B75 - 9006 - E98086 - East Asian ideograph - - - 215B76 - 8FF7 - E8BFB7 - East Asian ideograph - - - 215B77 - 9000 - E98080 - East Asian ideograph - - - 215B7A - 9003 - E98083 - East Asian ideograph - - - 215B7B - 8FFD - E8BFBD - East Asian ideograph - - - 215B7C - 9005 - E98085 - East Asian ideograph - - - 215B7D - 9019 - E98099 - East Asian ideograph - - - 215B7E - 9023 - E980A3 - East Asian ideograph - - - 215C21 - 901F - E9809F - East Asian ideograph - - - 215C22 - 9017 - E98097 - East Asian ideograph - - - 215C23 - 901D - E9809D - East Asian ideograph - - - 215C24 - 9010 - E98090 - East Asian ideograph - - - 215C26 - 900D - E9808D - East Asian ideograph - - - 215C27 - 901E - E9809E - East Asian ideograph - - - 215C28 - 901A - E9809A - East Asian ideograph - - - 215C29 - 9020 - E980A0 - East Asian ideograph - - - 215C2A - 900F - E9808F - East Asian ideograph - - - 215C2B - 9022 - E980A2 - East Asian ideograph - - - 215C2C - 9016 - E98096 - East Asian ideograph - - - 215C2D - 901B - E9809B - East Asian ideograph - - - 215C2E - 9014 - E98094 - East Asian ideograph - - - 215C2F - 902E - E980AE - East Asian ideograph - - - 215C30 - 9035 - E980B5 - East Asian ideograph - - - 215C31 - 9031 - E980B1 - East Asian ideograph - - - 215C32 - 9038 - E980B8 - East Asian ideograph (variant of EACC 4B5C32) - - - 215C33 - 9032 - E980B2 - East Asian ideograph - - - 215C34 - 904B - E9818B - East Asian ideograph - - - 215C36 - 9053 - E98193 - East Asian ideograph - - - 215C37 - 9042 - E98182 - East Asian ideograph - - - 215C38 - 9050 - E98190 - East Asian ideograph - - - 215C39 - 9054 - E98194 - East Asian ideograph - - - 215C3A - 9055 - E98195 - East Asian ideograph - - - 215C3B - 903C - E980BC - East Asian ideograph - - - 215C3C - 9047 - E98187 - East Asian ideograph - - - 215C3D - 904F - E9818F - East Asian ideograph - - - 215C3E - 904E - E9818E - East Asian ideograph - - - 215C3F - 904D - E9818D - East Asian ideograph - - - 215C40 - 9051 - E98191 - East Asian ideograph - - - 215C41 - 9041 - E98181 - East Asian ideograph - - - 215C42 - 903E - E980BE - East Asian ideograph - - - 215C43 - 9058 - E98198 - East Asian ideograph - - - 215C44 - 9060 - E981A0 - East Asian ideograph - - - 215C45 - 905C - E9819C - East Asian ideograph - - - 215C46 - 9063 - E981A3 - East Asian ideograph - - - 215C47 - 9065 - E981A5 - East Asian ideograph - - - 215C48 - 905E - E9819E - East Asian ideograph - - - 215C49 - 9069 - E981A9 - East Asian ideograph - - - 215C4A - 906E - E981AE - East Asian ideograph - - - 215C4B - 9068 - E981A8 - East Asian ideograph - - - 215C4C - 906D - E981AD - East Asian ideograph - - - 215C4D - 9075 - E981B5 - East Asian ideograph - - - 215C4E - 9074 - E981B4 - East Asian ideograph - - - 215C4F - 9078 - E981B8 - East Asian ideograph - - - 215C50 - 9072 - E981B2 - East Asian ideograph - - - 215C51 - 9077 - E981B7 - East Asian ideograph - - - 215C52 - 907C - E981BC - East Asian ideograph - - - 215C53 - 907A - E981BA - East Asian ideograph - - - 215C54 - 907F - E981BF - East Asian ideograph - - - 215C55 - 907D - E981BD - East Asian ideograph - - - 215C56 - 9081 - E98281 - East Asian ideograph - - - 215C57 - 9084 - E98284 - East Asian ideograph - - - 215C58 - 9082 - E98282 - East Asian ideograph - - - 215C59 - 9080 - E98280 - East Asian ideograph - - - 215C5A - 9087 - E98287 - East Asian ideograph - - - 215C5B - 908A - E9828A - East Asian ideograph - - - 215C5C - 9090 - E98290 - East Asian ideograph - - - 215C5D - 908F - E9828F - East Asian ideograph - - - 215C5E - 9091 - E98291 - East Asian ideograph - - - 215C5F - 9095 - E98295 - East Asian ideograph - - - 215C60 - 90A3 - E982A3 - East Asian ideograph - - - 215C61 - 90A2 - E982A2 - East Asian ideograph - - - 215C62 - 90AA - E982AA - East Asian ideograph - - - 215C63 - 90A6 - E982A6 - East Asian ideograph - - - 215C64 - 90B5 - E982B5 - East Asian ideograph - - - 215C65 - 90B1 - E982B1 - East Asian ideograph - - - 215C66 - 90B8 - E982B8 - East Asian ideograph - - - 215C67 - 90CE - E9838E - East Asian ideograph - - - 215C68 - 90CA - E9838A - East Asian ideograph - - - 215C6A - 90E1 - E983A1 - East Asian ideograph - - - 215C6B - 90E8 - E983A8 - East Asian ideograph - - - 215C6C - 90ED - E983AD - East Asian ideograph - - - 215C6D - 90F5 - E983B5 - East Asian ideograph - - - 215C6E - 90FD - E983BD - East Asian ideograph - - - 215C6F - 9102 - E98482 - East Asian ideograph - - - 215C70 - 9109 - E98489 - East Asian ideograph - - - 215C71 - 9112 - E98492 - East Asian ideograph - - - 215C72 - 9119 - E98499 - East Asian ideograph - - - 215C73 - 912D - E984AD - East Asian ideograph - - - 215C74 - 9130 - E984B0 - East Asian ideograph - - - 215C75 - 9127 - E984A7 - East Asian ideograph - - - 215C76 - 9131 - E984B1 - East Asian ideograph - - - 215C77 - 9139 - E984B9 - East Asian ideograph (variant of EACC 4B5C77) - - - 215C78 - 9149 - E98589 - East Asian ideograph - - - 215C79 - 914B - E9858B - East Asian ideograph - - - 215C7A - 914A - E9858A - East Asian ideograph - - - 215C7B - 9152 - E98592 - East Asian ideograph - - - 215C7C - 914D - E9858D - East Asian ideograph - - - 215C7D - 914C - E9858C - East Asian ideograph - - - 215C7E - 9157 - E98597 - East Asian ideograph - - - 215D21 - 9163 - E985A3 - East Asian ideograph - - - 215D22 - 9165 - E985A5 - East Asian ideograph - - - 215D23 - 916C - E985AC - East Asian ideograph - - - 215D24 - 9169 - E985A9 - East Asian ideograph - - - 215D25 - 916A - E985AA - East Asian ideograph - - - 215D26 - 9175 - E985B5 - East Asian ideograph - - - 215D27 - 9178 - E985B8 - East Asian ideograph - - - 215D28 - 9177 - E985B7 - East Asian ideograph - - - 215D29 - 9187 - E98687 - East Asian ideograph - - - 215D2A - 9189 - E98689 - East Asian ideograph - - - 215D2B - 918B - E9868B - East Asian ideograph - - - 215D2C - 9183 - E98683 - East Asian ideograph - - - 215D2D - 9192 - E98692 - East Asian ideograph - - - 215D2E - 91A3 - E986A3 - East Asian ideograph - - - 215D2F - 919E - E9869E - East Asian ideograph - - - 215D30 - 919C - E9869C - East Asian ideograph - - - 215D31 - 91AB - E986AB - East Asian ideograph - - - 215D32 - 91AC - E986AC - East Asian ideograph - - - 215D33 - 91BA - E986BA - East Asian ideograph - - - 215D34 - 91C0 - E98780 - East Asian ideograph - - - 215D35 - 91C1 - E98781 - East Asian ideograph - - - 215D36 - 91C7 - E98787 - East Asian ideograph - - - 215D37 - 91C9 - E98789 - East Asian ideograph - - - 215D38 - 91CB - E9878B - East Asian ideograph - - - 215D3A - 91CD - E9878D - East Asian ideograph - - - 215D3B - 91CE - E9878E - East Asian ideograph - - - 215D3C - 91CF - E9878F - East Asian ideograph - - - 215D3D - 91D0 - E98790 - East Asian ideograph - - - 215D3E - 91D1 - E98791 - East Asian ideograph - - - 215D3F - 91DD - E9879D - East Asian ideograph - - - 215D40 - 91D8 - E98798 - East Asian ideograph - - - 215D41 - 91D7 - E98797 - East Asian ideograph - - - 215D42 - 91DC - E9879C - East Asian ideograph - - - 215D43 - 91F5 - E987B5 - East Asian ideograph - - - 215D44 - 91E6 - E987A6 - East Asian ideograph - - - 215D45 - 91E3 - E987A3 - East Asian ideograph - - - 215D46 - 91E7 - E987A7 - East Asian ideograph - - - 215D47 - 9223 - E988A3 - East Asian ideograph - - - 215D48 - 920D - E9888D - East Asian ideograph - - - 215D49 - 9215 - E98895 - East Asian ideograph - - - 215D4A - 9209 - E98889 - East Asian ideograph - - - 215D4B - 9214 - E98894 - East Asian ideograph - - - 215D4C - 921E - E9889E - East Asian ideograph - - - 215D4D - 9210 - E98890 - East Asian ideograph - - - 215D4F - 9237 - E988B7 - East Asian ideograph - - - 215D50 - 9238 - E988B8 - East Asian ideograph - - - 215D51 - 923D - E988BD - East Asian ideograph - - - 215D52 - 923E - E988BE - East Asian ideograph - - - 215D53 - 9240 - E98980 - East Asian ideograph - - - 215D54 - 924B - E9898B - East Asian ideograph - - - 215D55 - 925B - E9899B - East Asian ideograph - - - 215D56 - 9264 - E989A4 - East Asian ideograph - - - 215D57 - 9251 - E98991 - East Asian ideograph - - - 215D58 - 9234 - E988B4 - East Asian ideograph (variant of EACC 4B5D58) - - - 215D59 - 9278 - E989B8 - East Asian ideograph - - - 215D5A - 9280 - E98A80 - East Asian ideograph - - - 215D5B - 92AC - E98AAC - East Asian ideograph - - - 215D5C - 9285 - E98A85 - East Asian ideograph - - - 215D5D - 9298 - E98A98 - East Asian ideograph - - - 215D5E - 9296 - E98A96 - East Asian ideograph - - - 215D5F - 927B - E989BB - East Asian ideograph - - - 215D60 - 9293 - E98A93 - East Asian ideograph - - - 215D61 - 929C - E98A9C - East Asian ideograph - - - 215D62 - 92C5 - E98B85 - East Asian ideograph - - - 215D63 - 92BB - E98ABB - East Asian ideograph - - - 215D64 - 92B3 - E98AB3 - East Asian ideograph - - - 215D65 - 92EA - E98BAA - East Asian ideograph - - - 215D66 - 92B7 - E98AB7 - East Asian ideograph - - - 215D67 - 92C1 - E98B81 - East Asian ideograph - - - 215D68 - 92E4 - E98BA4 - East Asian ideograph - - - 215D69 - 92BC - E98ABC - East Asian ideograph - - - 215D6A - 92D2 - E98B92 - East Asian ideograph - - - 215D6B - 9320 - E98CA0 - East Asian ideograph - - - 215D6C - 9336 - E98CB6 - East Asian ideograph - - - 215D6D - 92F8 - E98BB8 - East Asian ideograph - - - 215D6E - 9333 - E98CB3 - East Asian ideograph - - - 215D6F - 932F - E98CAF - East Asian ideograph - - - 215D70 - 9322 - E98CA2 - East Asian ideograph - - - 215D71 - 92FC - E98BBC - East Asian ideograph - - - 215D72 - 932B - E98CAB - East Asian ideograph - - - 215D73 - 931A - E98C9A - East Asian ideograph - - - 215D74 - 9304 - E98C84 - East Asian ideograph - - - 215D75 - 9310 - E98C90 - East Asian ideograph - - - 215D76 - 9326 - E98CA6 - East Asian ideograph - - - 215D77 - 934D - E98D8D - East Asian ideograph - - - 215D78 - 9382 - E98E82 - East Asian ideograph - - - 215D79 - 9375 - E98DB5 - East Asian ideograph - - - 215D7A - 9365 - E98DA5 - East Asian ideograph - - - 215D7C - 934B - E98D8B - East Asian ideograph - - - 215D7D - 9328 - E98CA8 - East Asian ideograph - - - 215D7E - 9370 - E98DB0 - East Asian ideograph - - - 215E21 - 937E - E98DBE - East Asian ideograph - - - 215E22 - 9318 - E98C98 - East Asian ideograph - - - 215E23 - 936C - E98DAC - East Asian ideograph - - - 215E24 - 935B - E98D9B - East Asian ideograph - - - 215E25 - 938A - E98E8A - East Asian ideograph - - - 215E26 - 9394 - E98E94 - East Asian ideograph - - - 215E27 - 93AE - E98EAE - East Asian ideograph - - - 215E28 - 9396 - E98E96 - East Asian ideograph - - - 215E29 - 93A2 - E98EA2 - East Asian ideograph - - - 215E2A - 93B3 - E98EB3 - East Asian ideograph - - - 215E2B - 93E1 - E98FA1 - East Asian ideograph - - - 215E2C - 93D1 - E98F91 - East Asian ideograph - - - 215E2D - 93D6 - E98F96 - East Asian ideograph - - - 215E2E - 93C3 - E98F83 - East Asian ideograph - - - 215E2F - 93DF - E98F9F - East Asian ideograph - - - 215E30 - 93D7 - E98F97 - East Asian ideograph - - - 215E31 - 93C8 - E98F88 - East Asian ideograph - - - 215E32 - 93E2 - E98FA2 - East Asian ideograph - - - 215E33 - 93DC - E98F9C - East Asian ideograph - - - 215E34 - 93E4 - E98FA4 - East Asian ideograph - - - 215E35 - 93DD - E98F9D - East Asian ideograph - - - 215E36 - 93CD - E98F8D - East Asian ideograph - - - 215E37 - 93D8 - E98F98 - East Asian ideograph - - - 215E39 - 9403 - E99083 - East Asian ideograph - - - 215E3A - 942E - E990AE - East Asian ideograph - - - 215E3B - 93FD - E98FBD - East Asian ideograph - - - 215E3C - 9433 - E990B3 - East Asian ideograph - - - 215E3D - 9435 - E990B5 - East Asian ideograph - - - 215E3E - 943A - E990BA - East Asian ideograph - - - 215E3F - 9438 - E990B8 - East Asian ideograph - - - 215E40 - 9432 - E990B2 - East Asian ideograph - - - 215E42 - 9451 - E99191 - East Asian ideograph - - - 215E43 - 9444 - E99184 - East Asian ideograph - - - 215E44 - 9463 - E991A3 - East Asian ideograph - - - 215E45 - 9460 - E991A0 - East Asian ideograph - - - 215E46 - 9472 - E991B2 - East Asian ideograph - - - 215E47 - 9470 - E991B0 - East Asian ideograph - - - 215E48 - 947E - E991BE - East Asian ideograph - - - 215E49 - 947C - E991BC - East Asian ideograph - - - 215E4A - 947D - E991BD - East Asian ideograph - - - 215E4B - 947F - E991BF - East Asian ideograph - - - 215E4C - 9577 - E995B7 - East Asian ideograph - - - 215E4D - 9580 - E99680 - East Asian ideograph - - - 215E4E - 9582 - E99682 - East Asian ideograph - - - 215E4F - 9583 - E99683 - East Asian ideograph - - - 215E50 - 9589 - E99689 - East Asian ideograph - - - 215E51 - 9594 - E99694 - East Asian ideograph - - - 215E52 - 958F - E9968F - East Asian ideograph - - - 215E53 - 958B - E9968B - East Asian ideograph - - - 215E54 - 9591 - E99691 - East Asian ideograph - - - 215E55 - 9593 - E99693 - East Asian ideograph - - - 215E56 - 9592 - E99692 - East Asian ideograph - - - 215E57 - 9598 - E99698 - East Asian ideograph - - - 215E58 - 95A1 - E996A1 - East Asian ideograph - - - 215E59 - 95A8 - E996A8 - East Asian ideograph - - - 215E5A - 95A9 - E996A9 - East Asian ideograph - - - 215E5B - 95A3 - E996A3 - East Asian ideograph - - - 215E5C - 95A5 - E996A5 - East Asian ideograph - - - 215E5D - 95A4 - E996A4 - East Asian ideograph - - - 215E5E - 95B1 - E996B1 - East Asian ideograph - - - 215E5F - 95AD - E996AD - East Asian ideograph - - - 215E60 - 95BB - E996BB - East Asian ideograph - - - 215E61 - 95CA - E9978A - East Asian ideograph - - - 215E62 - 95CB - E9978B - East Asian ideograph - - - 215E63 - 95CC - E9978C - East Asian ideograph - - - 215E64 - 95C8 - E99788 - East Asian ideograph - - - 215E65 - 95C6 - E99786 - East Asian ideograph - - - 215E67 - 95D6 - E99796 - East Asian ideograph - - - 215E68 - 95D0 - E99790 - East Asian ideograph - - - 215E69 - 95DC - E9979C - East Asian ideograph - - - 215E6A - 95E1 - E997A1 - East Asian ideograph - - - 215E6B - 95E2 - E997A2 - East Asian ideograph - - - 215E6C - 961C - E9989C - East Asian ideograph - - - 215E6D - 9621 - E998A1 - East Asian ideograph - - - 215E6E - 9632 - E998B2 - East Asian ideograph - - - 215E6F - 9631 - E998B1 - East Asian ideograph - - - 215E70 - 962E - E998AE - East Asian ideograph - - - 215E71 - 962A - E998AA - East Asian ideograph - - - 215E72 - 9640 - E99980 - East Asian ideograph - - - 215E73 - 963F - E998BF - East Asian ideograph - - - 215E74 - 963B - E998BB - East Asian ideograph - - - 215E75 - 9644 - E99984 - East Asian ideograph - - - 215E76 - 9650 - E99990 - East Asian ideograph - - - 215E77 - 964C - E9998C - East Asian ideograph - - - 215E78 - 964B - E9998B - East Asian ideograph - - - 215E79 - 964D - E9998D - East Asian ideograph - - - 215E7A - 9662 - E999A2 - East Asian ideograph - - - 215E7B - 9663 - E999A3 - East Asian ideograph - - - 215E7C - 965B - E9999B - East Asian ideograph - - - 215E7D - 9661 - E999A1 - East Asian ideograph - - - 215E7E - 965D - E9999D - East Asian ideograph - - - 215F21 - 9664 - E999A4 - East Asian ideograph - - - 215F22 - 966A - E999AA - East Asian ideograph - - - 215F23 - 9673 - E999B3 - East Asian ideograph - - - 215F24 - 9678 - E999B8 - East Asian ideograph - - - 215F25 - 9675 - E999B5 - East Asian ideograph - - - 215F26 - 9672 - E999B2 - East Asian ideograph - - - 215F27 - 9676 - E999B6 - East Asian ideograph - - - 215F28 - 9677 - E999B7 - East Asian ideograph - - - 215F29 - 9674 - E999B4 - East Asian ideograph - - - 215F2A - 9670 - E999B0 - East Asian ideograph - - - 215F2B - 968A - E99A8A - East Asian ideograph - - - 215F2C - 968E - E99A8E - East Asian ideograph - - - 215F2D - 968B - E99A8B - East Asian ideograph - - - 215F2E - 967D - E999BD - East Asian ideograph - - - 215F2F - 9685 - E99A85 - East Asian ideograph - - - 215F30 - 9686 - E99A86 - East Asian ideograph - - - 215F31 - 968D - E99A8D - East Asian ideograph - - - 215F32 - 9698 - E99A98 - East Asian ideograph - - - 215F33 - 9694 - E99A94 - East Asian ideograph - - - 215F34 - 9699 - E99A99 - East Asian ideograph - - - 215F35 - 9695 - E99A95 - East Asian ideograph - - - 215F36 - 969C - E99A9C - East Asian ideograph - - - 215F37 - 969B - E99A9B - East Asian ideograph - - - 215F38 - 96A7 - E99AA7 - East Asian ideograph - - - 215F39 - 96A8 - E99AA8 - East Asian ideograph - - - 215F3A - 96AA - E99AAA - East Asian ideograph - - - 215F3B - 96B1 - E99AB1 - East Asian ideograph - - - 215F3C - 96B4 - E99AB4 - East Asian ideograph - - - 215F3D - 96B8 - E99AB8 - East Asian ideograph - - - 215F3E - 96BB - E99ABB - East Asian ideograph - - - 215F3F - 96C0 - E99B80 - East Asian ideograph - - - 215F40 - 96C7 - E99B87 - East Asian ideograph - - - 215F41 - 96C6 - E99B86 - East Asian ideograph - - - 215F42 - 96C4 - E99B84 - East Asian ideograph - - - 215F43 - 96C1 - E99B81 - East Asian ideograph - - - 215F44 - 96C5 - E99B85 - East Asian ideograph - - - 215F45 - 96CD - E99B8D - East Asian ideograph - - - 215F46 - 96CB - E99B8B - East Asian ideograph - - - 215F47 - 96C9 - E99B89 - East Asian ideograph - - - 215F48 - 96CC - E99B8C - East Asian ideograph - - - 215F49 - 96D5 - E99B95 - East Asian ideograph - - - 215F4A - 96D6 - E99B96 - East Asian ideograph - - - 215F4B - 96DC - E99B9C - East Asian ideograph - - - 215F4C - 96DE - E99B9E - East Asian ideograph - - - 215F4D - 96DB - E99B9B - East Asian ideograph - - - 215F4E - 96D9 - E99B99 - East Asian ideograph - - - 215F4F - 96E2 - E99BA2 - East Asian ideograph - - - 215F50 - 96E3 - E99BA3 - East Asian ideograph (variant of EACC 4B5F50) - - - 215F51 - 96E8 - E99BA8 - East Asian ideograph - - - 215F52 - 96EA - E99BAA - East Asian ideograph - - - 215F53 - 96EF - E99BAF - East Asian ideograph - - - 215F54 - 96F2 - E99BB2 - East Asian ideograph - - - 215F55 - 96FB - E99BBB - East Asian ideograph - - - 215F56 - 96F7 - E99BB7 - East Asian ideograph - - - 215F57 - 96F9 - E99BB9 - East Asian ideograph - - - 215F58 - 96F6 - E99BB6 - East Asian ideograph - - - 215F59 - 9700 - E99C80 - East Asian ideograph - - - 215F5A - 9707 - E99C87 - East Asian ideograph - - - 215F5B - 9704 - E99C84 - East Asian ideograph - - - 215F5C - 9709 - E99C89 - East Asian ideograph - - - 215F5D - 9706 - E99C86 - East Asian ideograph - - - 215F5E - 9711 - E99C91 - East Asian ideograph - - - 215F5F - 970E - E99C8E - East Asian ideograph - - - 215F60 - 9716 - E99C96 - East Asian ideograph - - - 215F61 - 970F - E99C8F - East Asian ideograph - - - 215F62 - 970D - E99C8D - East Asian ideograph - - - 215F63 - 9713 - E99C93 - East Asian ideograph - - - 215F64 - 971C - E99C9C - East Asian ideograph - - - 215F65 - 971E - E99C9E - East Asian ideograph - - - 215F66 - 972A - E99CAA - East Asian ideograph - - - 215F67 - 9727 - E99CA7 - East Asian ideograph - - - 215F68 - 9738 - E99CB8 - East Asian ideograph - - - 215F69 - 9739 - E99CB9 - East Asian ideograph - - - 215F6A - 9732 - E99CB2 - East Asian ideograph - - - 215F6B - 973D - E99CBD - East Asian ideograph - - - 215F6C - 973E - E99CBE - East Asian ideograph - - - 215F6D - 9744 - E99D84 - East Asian ideograph - - - 215F6E - 9742 - E99D82 - East Asian ideograph - - - 215F6F - 9748 - E99D88 - East Asian ideograph - - - 215F70 - 9751 - E99D91 - East Asian ideograph - - - 215F71 - 9756 - E99D96 - East Asian ideograph (variant of EACC 4B5F71) - - - 215F72 - 975B - E99D9B - East Asian ideograph (variant of EACC 4B5F72) - - - 215F73 - 975C - E99D9C - East Asian ideograph - - - 215F74 - 975E - E99D9E - East Asian ideograph - - - 215F75 - 9760 - E99DA0 - East Asian ideograph - - - 215F76 - 9761 - E99DA1 - East Asian ideograph - - - 215F78 - 9766 - E99DA6 - East Asian ideograph - - - 215F79 - 9768 - E99DA8 - East Asian ideograph - - - 215F7A - 9769 - E99DA9 - East Asian ideograph - - - 215F7B - 9776 - E99DB6 - East Asian ideograph - - - 215F7C - 9774 - E99DB4 - East Asian ideograph - - - 215F7D - 977C - E99DBC - East Asian ideograph - - - 215F7E - 9785 - E99E85 - East Asian ideograph - - - 216021 - 978D - E99E8D - East Asian ideograph - - - 216022 - 978B - E99E8B - East Asian ideograph - - - 216023 - 978F - E99E8F - East Asian ideograph - - - 216024 - 9798 - E99E98 - East Asian ideograph - - - 216025 - 97A0 - E99EA0 - East Asian ideograph - - - 216026 - 97A3 - E99EA3 - East Asian ideograph - - - 216027 - 97A6 - E99EA6 - East Asian ideograph - - - 216028 - 97AD - E99EAD - East Asian ideograph - - - 216029 - 97C3 - E99F83 - East Asian ideograph - - - 21602A - 97C1 - E99F81 - East Asian ideograph - - - 21602B - 97C6 - E99F86 - East Asian ideograph - - - 21602C - 97CB - E99F8B - East Asian ideograph - - - 21602D - 97CC - E99F8C - East Asian ideograph - - - 21602E - 97D3 - E99F93 - East Asian ideograph - - - 21602F - 97DC - E99F9C - East Asian ideograph - - - 216030 - 97ED - E99FAD - East Asian ideograph - - - 216031 - 97F3 - E99FB3 - East Asian ideograph - - - 216032 - 7AE0 - E7ABA0 - East Asian ideograph - - - 216033 - 7ADF - E7AB9F - East Asian ideograph - - - 216034 - 97F6 - E99FB6 - East Asian ideograph - - - 216035 - 97FB - E99FBB - East Asian ideograph - - - 216036 - 97FF - E99FBF - East Asian ideograph (variant of EACC 456036) - - - 216037 - 9801 - E9A081 - East Asian ideograph - - - 216038 - 9802 - E9A082 - East Asian ideograph - - - 216039 - 9803 - E9A083 - East Asian ideograph - - - 21603A - 9805 - E9A085 - East Asian ideograph - - - 21603B - 9806 - E9A086 - East Asian ideograph - - - 21603C - 9808 - E9A088 - East Asian ideograph - - - 21603D - 9810 - E9A090 - East Asian ideograph - - - 21603E - 980A - E9A08A - East Asian ideograph - - - 21603F - 9811 - E9A091 - East Asian ideograph - - - 216040 - 9813 - E9A093 - East Asian ideograph - - - 216041 - 9812 - E9A092 - East Asian ideograph - - - 216042 - 980C - E9A08C - East Asian ideograph - - - 216043 - 9817 - E9A097 - East Asian ideograph - - - 216044 - 9818 - E9A098 - East Asian ideograph (variant of EACC 4B6044) - - - 216045 - 9821 - E9A0A1 - East Asian ideograph - - - 216046 - 982D - E9A0AD - East Asian ideograph - - - 216047 - 9830 - E9A0B0 - East Asian ideograph - - - 216048 - 9838 - E9A0B8 - East Asian ideograph - - - 216049 - 983B - E9A0BB - East Asian ideograph - - - 21604A - 9839 - E9A0B9 - East Asian ideograph - - - 21604B - 9837 - E9A0B7 - East Asian ideograph - - - 21604C - 9824 - E9A0A4 - East Asian ideograph - - - 21604D - 9846 - E9A186 - East Asian ideograph - - - 21604E - 9854 - E9A194 - East Asian ideograph - - - 21604F - 984D - E9A18D - East Asian ideograph - - - 216050 - 984C - E9A18C - East Asian ideograph - - - 216051 - 984E - E9A18E - East Asian ideograph - - - 216052 - 9853 - E9A193 - East Asian ideograph - - - 216053 - 985E - E9A19E - East Asian ideograph (variant of EACC 4B6053) - - - 216054 - 985A - E9A19A - East Asian ideograph - - - 216055 - 9858 - E9A198 - East Asian ideograph - - - 216056 - 9867 - E9A1A7 - East Asian ideograph - - - 216057 - 986B - E9A1AB - East Asian ideograph - - - 216058 - 986F - E9A1AF - East Asian ideograph - - - 216059 - 9871 - E9A1B1 - East Asian ideograph - - - 21605A - 9870 - E9A1B0 - East Asian ideograph - - - 21605B - 98A8 - E9A2A8 - East Asian ideograph - - - 21605C - 98AF - E9A2AF - East Asian ideograph - - - 21605D - 98B1 - E9A2B1 - East Asian ideograph - - - 21605E - 98B3 - E9A2B3 - East Asian ideograph - - - 21605F - 98B6 - E9A2B6 - East Asian ideograph - - - 216060 - 98BA - E9A2BA - East Asian ideograph - - - 216061 - 98BC - E9A2BC - East Asian ideograph - - - 216062 - 98C4 - E9A384 - East Asian ideograph - - - 216063 - 98DB - E9A39B - East Asian ideograph - - - 216064 - 98DF - E9A39F - East Asian ideograph - - - 216065 - 98E2 - E9A3A2 - East Asian ideograph - - - 216066 - 98E7 - E9A3A7 - East Asian ideograph - - - 216067 - 98E9 - E9A3A9 - East Asian ideograph - - - 216068 - 98ED - E9A3AD - East Asian ideograph - - - 216069 - 98EA - E9A3AA - East Asian ideograph - - - 21606A - 98EE - E9A3AE - East Asian ideograph - - - 21606B - 98EF - E9A3AF - East Asian ideograph - - - 21606C - 98FC - E9A3BC - East Asian ideograph - - - 21606D - 98F4 - E9A3B4 - East Asian ideograph - - - 21606E - 98FD - E9A3BD - East Asian ideograph - - - 21606F - 98FE - E9A3BE - East Asian ideograph - - - 216070 - 9903 - E9A483 - East Asian ideograph - - - 216071 - 990A - E9A48A - East Asian ideograph - - - 216072 - 990C - E9A48C - East Asian ideograph - - - 216073 - 9909 - E9A489 - East Asian ideograph - - - 216074 - 9910 - E9A490 - East Asian ideograph - - - 216075 - 9912 - E9A492 - East Asian ideograph - - - 216076 - 9918 - E9A498 - East Asian ideograph - - - 216077 - 9913 - E9A493 - East Asian ideograph - - - 216078 - 9905 - E9A485 - East Asian ideograph - - - 216079 - 9928 - E9A4A8 - East Asian ideograph - - - 21607A - 991E - E9A49E - East Asian ideograph - - - 21607B - 991B - E9A49B - East Asian ideograph - - - 21607C - 9921 - E9A4A1 - East Asian ideograph - - - 21607D - 9935 - E9A4B5 - East Asian ideograph - - - 21607E - 993E - E9A4BE - East Asian ideograph - - - 216121 - 993F - E9A4BF - East Asian ideograph - - - 216122 - 993D - E9A4BD - East Asian ideograph - - - 216123 - 9945 - E9A585 - East Asian ideograph - - - 216124 - 9952 - E9A592 - East Asian ideograph - - - 216125 - 9951 - E9A591 - East Asian ideograph - - - 216126 - 995C - E9A59C - East Asian ideograph - - - 216127 - 995E - E9A59E - East Asian ideograph - - - 216128 - 9996 - E9A696 - East Asian ideograph - - - 216129 - 9999 - E9A699 - East Asian ideograph - - - 21612A - 99A5 - E9A6A5 - East Asian ideograph - - - 21612B - 99A8 - E9A6A8 - East Asian ideograph - - - 21612C - 99AC - E9A6AC - East Asian ideograph - - - 21612D - 99AE - E9A6AE - East Asian ideograph - - - 21612E - 99AD - E9A6AD - East Asian ideograph - - - 21612F - 99B3 - E9A6B3 - East Asian ideograph - - - 216130 - 99B1 - E9A6B1 - East Asian ideograph - - - 216131 - 99B4 - E9A6B4 - East Asian ideograph - - - 216132 - 99C1 - E9A781 - East Asian ideograph - - - 216133 - 99D0 - E9A790 - East Asian ideograph - - - 216134 - 99DD - E9A79D - East Asian ideograph - - - 216135 - 99D5 - E9A795 - East Asian ideograph - - - 216136 - 99DF - E9A79F - East Asian ideograph - - - 216137 - 99DB - E9A79B - East Asian ideograph - - - 216138 - 99D2 - E9A792 - East Asian ideograph - - - 216139 - 99D9 - E9A799 - East Asian ideograph - - - 21613A - 99D1 - E9A791 - East Asian ideograph - - - 21613B - 99ED - E9A7AD - East Asian ideograph - - - 21613C - 99F1 - E9A7B1 - East Asian ideograph - - - 21613D - 9A01 - E9A881 - East Asian ideograph - - - 21613E - 99FF - E9A7BF - East Asian ideograph - - - 21613F - 99E2 - E9A7A2 - East Asian ideograph - - - 216140 - 9A0E - E9A88E - East Asian ideograph - - - 216141 - 9A19 - E9A899 - East Asian ideograph - - - 216142 - 9A16 - E9A896 - East Asian ideograph - - - 216143 - 9A2B - E9A8AB - East Asian ideograph - - - 216144 - 9A30 - E9A8B0 - East Asian ideograph - - - 216145 - 9A37 - E9A8B7 - East Asian ideograph - - - 216146 - 9A43 - E9A983 - East Asian ideograph - - - 216147 - 9A45 - E9A985 - East Asian ideograph - - - 216148 - 9A40 - E9A980 - East Asian ideograph - - - 216149 - 9A3E - E9A8BE - East Asian ideograph - - - 21614A - 9A55 - E9A995 - East Asian ideograph - - - 21614B - 9A5A - E9A99A - East Asian ideograph - - - 21614C - 9A5B - E9A99B - East Asian ideograph - - - 21614D - 9A57 - E9A997 - East Asian ideograph - - - 21614E - 9A5F - E9A99F - East Asian ideograph - - - 21614F - 9A62 - E9A9A2 - East Asian ideograph - - - 216150 - 9A65 - E9A9A5 - East Asian ideograph - - - 216151 - 9A6A - E9A9AA - East Asian ideograph - - - 216152 - 9AA8 - E9AAA8 - East Asian ideograph - - - 216153 - 9AAF - E9AAAF - East Asian ideograph - - - 216154 - 9AB0 - E9AAB0 - East Asian ideograph - - - 216155 - 9AB7 - E9AAB7 - East Asian ideograph - - - 216156 - 9AB8 - E9AAB8 - East Asian ideograph - - - 216157 - 9ABC - E9AABC - East Asian ideograph - - - 216158 - 9ACF - E9AB8F - East Asian ideograph - - - 216159 - 9AD3 - E9AB93 - East Asian ideograph - - - 21615A - 9AD4 - E9AB94 - East Asian ideograph - - - 21615B - 9AD2 - E9AB92 - East Asian ideograph - - - 21615C - 9AD8 - E9AB98 - East Asian ideograph - - - 21615D - 9AE5 - E9ABA5 - East Asian ideograph - - - 21615F - 9AEE - E9ABAE - East Asian ideograph - - - 216160 - 9AFB - E9ABBB - East Asian ideograph - - - 216161 - 9AED - E9ABAD - East Asian ideograph - - - 216162 - 9B03 - E9AC83 - East Asian ideograph - - - 216163 - 9B06 - E9AC86 - East Asian ideograph - - - 216164 - 9B0D - E9AC8D - East Asian ideograph - - - 216165 - 9B1A - E9AC9A - East Asian ideograph - - - 216166 - 9B22 - E9ACA2 - East Asian ideograph - - - 216167 - 9B25 - E9ACA5 - East Asian ideograph - - - 216168 - 9B27 - E9ACA7 - East Asian ideograph - - - 21616A - 9B31 - E9ACB1 - East Asian ideograph - - - 21616B - 9B32 - E9ACB2 - East Asian ideograph - - - 21616C - 9B3C - E9ACBC - East Asian ideograph - - - 21616D - 9B41 - E9AD81 - East Asian ideograph - - - 21616E - 9B42 - E9AD82 - East Asian ideograph - - - 21616F - 9B45 - E9AD85 - East Asian ideograph - - - 216170 - 9B44 - E9AD84 - East Asian ideograph - - - 216171 - 9B4F - E9AD8F - East Asian ideograph - - - 216172 - 9B54 - E9AD94 - East Asian ideograph - - - 216173 - 9B58 - E9AD98 - East Asian ideograph - - - 216174 - 9B5A - E9AD9A - East Asian ideograph - - - 216175 - 9B77 - E9ADB7 - East Asian ideograph - - - 216176 - 9B6F - E9ADAF - East Asian ideograph - - - 216177 - 9B91 - E9AE91 - East Asian ideograph - - - 216178 - 9BAB - E9AEAB - East Asian ideograph - - - 216179 - 9BAE - E9AEAE - East Asian ideograph - - - 21617A - 9BAA - E9AEAA - East Asian ideograph - - - 21617B - 9BCA - E9AF8A - East Asian ideograph - - - 21617C - 9BC9 - E9AF89 - East Asian ideograph - - - 21617D - 9BE8 - E9AFA8 - East Asian ideograph - - - 21617E - 9BE7 - E9AFA7 - East Asian ideograph - - - 216221 - 9C13 - E9B093 - East Asian ideograph - - - 216222 - 9C0D - E9B08D - East Asian ideograph - - - 216223 - 9BFD - E9AFBD - East Asian ideograph - - - 216224 - 9C2D - E9B0AD - East Asian ideograph - - - 216225 - 9C25 - E9B0A5 - East Asian ideograph - - - 216226 - 9C31 - E9B0B1 - East Asian ideograph - - - 216227 - 9C3E - E9B0BE - East Asian ideograph - - - 216228 - 9C3B - E9B0BB - East Asian ideograph - - - 216229 - 9C54 - E9B194 - East Asian ideograph - - - 21622A - 9C57 - E9B197 - East Asian ideograph - - - 21622B - 9C56 - E9B196 - East Asian ideograph - - - 21622C - 9C49 - E9B189 - East Asian ideograph - - - 21622D - 9C77 - E9B1B7 - East Asian ideograph - - - 21622E - 9C78 - E9B1B8 - East Asian ideograph - - - 21622F - 9CE5 - E9B3A5 - East Asian ideograph - - - 216230 - 9CE9 - E9B3A9 - East Asian ideograph - - - 216231 - 9CF6 - E9B3B6 - East Asian ideograph - - - 216232 - 9CF4 - E9B3B4 - East Asian ideograph - - - 216233 - 9CF3 - E9B3B3 - East Asian ideograph - - - 216234 - 9D06 - E9B486 - East Asian ideograph - - - 216235 - 9D09 - E9B489 - East Asian ideograph - - - 216236 - 9D15 - E9B495 - East Asian ideograph - - - 216237 - 9D23 - E9B4A3 - East Asian ideograph - - - 216238 - 9D28 - E9B4A8 - East Asian ideograph - - - 216239 - 9D26 - E9B4A6 - East Asian ideograph - - - 21623A - 9D1B - E9B49B - East Asian ideograph - - - 21623B - 9D12 - E9B492 - East Asian ideograph (variant of EACC 4B623B) - - - 21623C - 9D3B - E9B4BB - East Asian ideograph - - - 21623D - 9D3F - E9B4BF - East Asian ideograph - - - 21623E - 9D61 - E9B5A1 - East Asian ideograph - - - 21623F - 9D51 - E9B591 - East Asian ideograph - - - 216240 - 9D60 - E9B5A0 - East Asian ideograph - - - 216241 - 9D5D - E9B59D - East Asian ideograph - - - 216242 - 9D89 - E9B689 - East Asian ideograph - - - 216243 - 9D72 - E9B5B2 - East Asian ideograph - - - 216244 - 9D6A - E9B5AA - East Asian ideograph - - - 216245 - 9D6C - E9B5AC - East Asian ideograph - - - 216246 - 9DB4 - E9B6B4 - East Asian ideograph - - - 216247 - 9DAF - E9B6AF - East Asian ideograph - - - 216248 - 9DC2 - E9B782 - East Asian ideograph - - - 216249 - 9DD3 - E9B793 - East Asian ideograph - - - 21624A - 9DD7 - E9B797 - East Asian ideograph - - - 21624B - 9DE5 - E9B7A5 - East Asian ideograph - - - 21624C - 9DF9 - E9B7B9 - East Asian ideograph - - - 21624D - 9DFA - E9B7BA - East Asian ideograph - - - 21624E - 9E1A - E9B89A - East Asian ideograph - - - 21624F - 9E1E - E9B89E - East Asian ideograph - - - 216250 - 9E79 - E9B9B9 - East Asian ideograph - - - 216251 - 9E7D - E9B9BD - East Asian ideograph - - - 216252 - 9E7C - E9B9BC - East Asian ideograph - - - 216253 - 9E7F - E9B9BF - East Asian ideograph - - - 216254 - 9E82 - E9BA82 - East Asian ideograph - - - 216255 - 9E8B - E9BA8B - East Asian ideograph - - - 216256 - 9E97 - E9BA97 - East Asian ideograph - - - 216257 - 9E92 - E9BA92 - East Asian ideograph - - - 216258 - 9E93 - E9BA93 - East Asian ideograph - - - 216259 - 9E9D - E9BA9D - East Asian ideograph - - - 21625A - 9E9F - E9BA9F - East Asian ideograph - - - 21625B - 9EA5 - E9BAA5 - East Asian ideograph - - - 21625C - 9EA9 - E9BAA9 - East Asian ideograph - - - 21625D - 9EB4 - E9BAB4 - East Asian ideograph - - - 21625E - 9EB5 - E9BAB5 - East Asian ideograph - - - 21625F - 9EBB - E9BABB - East Asian ideograph - - - 216260 - 9EBC - E9BABC - East Asian ideograph - - - 216261 - 9EBE - E9BABE - East Asian ideograph - - - 216262 - 9EC3 - E9BB83 - East Asian ideograph - - - 216263 - 9ECD - E9BB8D - East Asian ideograph - - - 216264 - 9ECE - E9BB8E - East Asian ideograph - - - 216265 - 9ECF - E9BB8F - East Asian ideograph - - - 216266 - 9ED1 - E9BB91 - East Asian ideograph - - - 216267 - 58A8 - E5A2A8 - East Asian ideograph - - - 216268 - 9ED8 - E9BB98 - East Asian ideograph - - - 216269 - 9ED4 - E9BB94 - East Asian ideograph - - - 21626A - 9EDE - E9BB9E - East Asian ideograph - - - 21626B - 9EDC - E9BB9C - East Asian ideograph - - - 21626C - 9EDB - E9BB9B - East Asian ideograph - - - 21626D - 9EDD - E9BB9D - East Asian ideograph - - - 21626E - 9EE0 - E9BBA0 - East Asian ideograph - - - 21626F - 9EE8 - E9BBA8 - East Asian ideograph - - - 216270 - 9EEF - E9BBAF - East Asian ideograph - - - 216271 - 9EF4 - E9BBB4 - East Asian ideograph - - - 216272 - 9EF7 - E9BBB7 - East Asian ideograph - - - 216273 - 9F07 - E9BC87 - East Asian ideograph - - - 216274 - 9F0E - E9BC8E - East Asian ideograph - - - 216275 - 9F13 - E9BC93 - East Asian ideograph - - - 216276 - 9F15 - E9BC95 - East Asian ideograph - - - 216277 - 9F19 - E9BC99 - East Asian ideograph - - - 216278 - 9F20 - E9BCA0 - East Asian ideograph - - - 216279 - 9F2C - E9BCAC - East Asian ideograph - - - 21627A - 9F34 - E9BCB4 - East Asian ideograph - - - 21627B - 9F3B - E9BCBB - East Asian ideograph - - - 21627C - 9F3E - E9BCBE - East Asian ideograph - - - 21627D - 9F4A - E9BD8A - East Asian ideograph - - - 21627E - 9F4B - E9BD8B - East Asian ideograph - - - 216321 - 9F52 - E9BD92 - East Asian ideograph - - - 216322 - 9F5F - E9BD9F - East Asian ideograph - - - 216323 - 9F63 - E9BDA3 - East Asian ideograph - - - 216324 - 9F61 - E9BDA1 - East Asian ideograph (variant of EACC 456324) - - - 216325 - 9F66 - E9BDA6 - East Asian ideograph - - - 216326 - 9F5C - E9BD9C - East Asian ideograph - - - 216327 - 9F6C - E9BDAC - East Asian ideograph - - - 216328 - 9F6A - E9BDAA - East Asian ideograph - - - 216329 - 9F77 - E9BDB7 - East Asian ideograph - - - 21632A - 9F72 - E9BDB2 - East Asian ideograph - - - 21632B - 9F8D - E9BE8D - East Asian ideograph - - - 21632C - 9F94 - E9BE94 - East Asian ideograph - - - 21632D - 9F9C - E9BE9C - East Asian ideograph - - - 216330 - 8288 - E88A88 - East Asian ideograph - - - 216424 - 4E0F - E4B88F - East Asian ideograph - - - 216425 - 5187 - E58687 - East Asian ideograph - - - 216429 - 4E28 - E4B8A8 - East Asian ideograph - - - 21642E - 4E31 - E4B8B1 - East Asian ideograph - - - 216431 - 4E36 - E4B8B6 - East Asian ideograph - - - 216433 - 4E3F - E4B8BF - East Asian ideograph - - - 216434 - 4E42 - E4B982 - East Asian ideograph - - - 216437 - 738D - E78E8D - East Asian ideograph - - - 21643C - 4E5C - E4B99C - East Asian ideograph - - - 21643F - 6C39 - E6B0B9 - East Asian ideograph - - - 216446 - 4E85 - E4BA85 - East Asian ideograph - - - 216450 - 4EA0 - E4BAA0 - East Asian ideograph - - - 216451 - 4EA2 - E4BAA2 - East Asian ideograph - - - 216452 - 4EB3 - E4BAB3 - East Asian ideograph - - - 216455 - 4EB6 - E4BAB6 - East Asian ideograph (variant of EACC 4B6455) - - - 216458 - 4EB9 - E4BAB9 - East Asian ideograph - - - 21645A - 4EBC - E4BABC - East Asian ideograph - - - 21645E - 4EC9 - E4BB89 - East Asian ideograph - - - 216461 - 4EC8 - E4BB88 - East Asian ideograph - - - 216462 - 4ECE - E4BB8E - East Asian ideograph - - - 216463 - 4EE8 - E4BBA8 - East Asian ideograph - - - 21646B - 4EE1 - E4BBA1 - East Asian ideograph - - - 216472 - 4F08 - E4BC88 - East Asian ideograph - - - 216473 - 4F0E - E4BC8E - East Asian ideograph - - - 216475 - 4F03 - E4BC83 - East Asian ideograph - - - 21647C - 4F22 - E4BCA2 - East Asian ideograph - - - 216527 - 4EF5 - E4BBB5 - East Asian ideograph - - - 216528 - 4F07 - E4BC87 - East Asian ideograph - - - 21652A - 4F00 - E4BC80 - East Asian ideograph - - - 21652C - 4F0B - E4BC8B - East Asian ideograph - - - 216532 - 4F3B - E4BCBB - East Asian ideograph - - - 216536 - 4F58 - E4BD98 - East Asian ideograph - - - 216537 - 4F62 - E4BDA2 - East Asian ideograph - - - 216539 - 4F64 - E4BDA4 - East Asian ideograph - - - 21653A - 4F49 - E4BD89 - East Asian ideograph - - - 21653F - 4F3E - E4BCBE - East Asian ideograph - - - 216540 - 4F66 - E4BDA6 - East Asian ideograph - - - 216544 - 4F67 - E4BDA7 - East Asian ideograph - - - 21654D - 4F68 - E4BDA8 - East Asian ideograph - - - 21654E - 4F5A - E4BD9A - East Asian ideograph - - - 21654F - 4F5F - E4BD9F - East Asian ideograph - - - 216556 - 4F82 - E4BE82 - East Asian ideograph - - - 216557 - 4F7C - E4BDBC - East Asian ideograph - - - 21655A - 4F98 - E4BE98 - East Asian ideograph - - - 21655B - 4F92 - E4BE92 - East Asian ideograph - - - 21655C - 4F7D - E4BDBD - East Asian ideograph - - - 216560 - 4F80 - E4BE80 - East Asian ideograph - - - 216561 - 4F74 - E4BDB4 - East Asian ideograph - - - 216562 - 4F76 - E4BDB6 - East Asian ideograph - - - 216564 - 4FA2 - E4BEA2 - East Asian ideograph - - - 216566 - 4F91 - E4BE91 - East Asian ideograph - - - 216567 - 4F95 - E4BE95 - East Asian ideograph - - - 21656C - 4F4C - E4BD8C - East Asian ideograph - - - 21656D - 4F97 - E4BE97 - East Asian ideograph - - - 21656E - 4F94 - E4BE94 - East Asian ideograph - - - 216570 - 4F79 - E4BDB9 - East Asian ideograph - - - 216571 - 4F9A - E4BE9A - East Asian ideograph - - - 216572 - 4F81 - E4BE81 - East Asian ideograph - - - 216573 - 4F78 - E4BDB8 - East Asian ideograph - - - 216576 - 4F9C - E4BE9C - East Asian ideograph - - - 216577 - 4F90 - E4BE90 - East Asian ideograph - - - 21657B - 4F7A - E4BDBA - East Asian ideograph - - - 21657C - 4FCD - E4BF8D - East Asian ideograph - - - 216622 - 4FE4 - E4BFA4 - East Asian ideograph - - - 216626 - 4FB7 - E4BEB7 - East Asian ideograph - - - 216627 - 4FC5 - E4BF85 - East Asian ideograph - - - 216629 - 4FC9 - E4BF89 - East Asian ideograph - - - 21662A - 4FE5 - E4BFA5 - East Asian ideograph - - - 21662C - 4FE7 - E4BFA7 - East Asian ideograph - - - 216633 - 4FDC - E4BF9C - East Asian ideograph - - - 216635 - 4FD4 - E4BF94 - East Asian ideograph - - - 216637 - 4FC1 - E4BF81 - East Asian ideograph - - - 21663B - 4FDB - E4BF9B - East Asian ideograph - - - 21663E - 4FC6 - E4BF86 - East Asian ideograph - - - 216643 - 4FB9 - E4BEB9 - East Asian ideograph - - - 216646 - 501E - E5809E - East Asian ideograph - - - 216648 - 503F - E580BF - East Asian ideograph - - - 216649 - 5005 - E58085 - East Asian ideograph - - - 21664C - 5007 - E58087 - East Asian ideograph - - - 21664D - 5013 - E58093 - East Asian ideograph - - - 21664E - 5022 - E580A2 - East Asian ideograph - - - 216652 - 4FF5 - E4BFB5 - East Asian ideograph - - - 216659 - 4FF4 - E4BFB4 - East Asian ideograph - - - 21665B - 5037 - E580B7 - East Asian ideograph - - - 21665E - 502E - E580AE - East Asian ideograph - - - 216661 - 4FF6 - E4BFB6 - East Asian ideograph - - - 216662 - 501C - E5809C - East Asian ideograph - - - 216666 - 502C - E580AC - East Asian ideograph - - - 216669 - 5010 - E58090 - East Asian ideograph - - - 216679 - 503D - E580BD - East Asian ideograph - - - 216722 - 506F - E581AF - East Asian ideograph - - - 216723 - 5050 - E58190 - East Asian ideograph - - - 216725 - 5070 - E581B0 - East Asian ideograph - - - 216729 - 5053 - E58193 - East Asian ideograph - - - 21672A - 506A - E581AA - East Asian ideograph - - - 21672C - 5056 - E58196 - East Asian ideograph - - - 216731 - 506D - E581AD - East Asian ideograph - - - 216738 - 505D - E5819D - East Asian ideograph - - - 216739 - 5048 - E58188 - East Asian ideograph - - - 21673B - 5058 - E58198 - East Asian ideograph - - - 21673C - 5072 - E581B2 - East Asian ideograph - - - 216741 - 5041 - E58181 - East Asian ideograph - - - 216746 - 5015 - E58095 - East Asian ideograph - - - 216748 - 507A - E581BA - East Asian ideograph - - - 21674A - 506C - E581AC - East Asian ideograph - - - 21674B - 505F - E5819F - East Asian ideograph - - - 21674D - 506B - E581AB - East Asian ideograph - - - 21674E - 5094 - E58294 - East Asian ideograph - - - 216750 - 509E - E5829E - East Asian ideograph - - - 216752 - 509B - E5829B - East Asian ideograph - - - 216753 - 509A - E5829A - East Asian ideograph - - - 216757 - 50A3 - E582A3 - East Asian ideograph - - - 21675A - 508C - E5828C - East Asian ideograph - - - 21675C - 5088 - E58288 - East Asian ideograph - - - 216762 - 508E - E5828E - East Asian ideograph - - - 216764 - 5095 - E58295 - East Asian ideograph - - - 216767 - 50A6 - E582A6 - East Asian ideograph - - - 21676A - 5092 - E58292 - East Asian ideograph - - - 21676C - 509C - E5829C - East Asian ideograph - - - 216771 - 50C7 - E58387 - East Asian ideograph - - - 216775 - 50C9 - E58389 - East Asian ideograph - - - 21677B - 50CA - E5838A - East Asian ideograph - - - 21677C - 50B4 - E582B4 - East Asian ideograph - - - 216822 - 50C2 - E58382 - East Asian ideograph - - - 21682C - 50BA - E582BA - East Asian ideograph - - - 21682E - 50CD - E5838D - East Asian ideograph - - - 216832 - 50D4 - E58394 - East Asian ideograph - - - 216834 - 50EF - E583AF - East Asian ideograph - - - 216835 - 50E6 - E583A6 - East Asian ideograph - - - 21683A - 50F4 - E583B4 - East Asian ideograph - - - 21683B - 50CE - E5838E - East Asian ideograph - - - 21683C - 50DD - E5839D - East Asian ideograph - - - 216841 - 50F3 - E583B3 - East Asian ideograph - - - 216842 - 50E8 - E583A8 - East Asian ideograph - - - 216844 - 50F0 - E583B0 - East Asian ideograph - - - 216846 - 50D9 - E58399 - East Asian ideograph - - - 216855 - 50EC - E583AC - East Asian ideograph - - - 21685B - 510E - E5848E - East Asian ideograph - - - 21685F - 5105 - E58485 - East Asian ideograph - - - 216861 - 50FC - E583BC - East Asian ideograph - - - 216865 - 5106 - E58486 - East Asian ideograph - - - 216866 - 5107 - E58487 - East Asian ideograph - - - 216867 - 510F - E5848F - East Asian ideograph - - - 216868 - 50FE - E583BE - East Asian ideograph - - - 216869 - 510B - E5848B - East Asian ideograph - - - 21686A - 50FD - E583BD - East Asian ideograph - - - 21686D - 5101 - E58481 - East Asian ideograph - - - 216871 - 5115 - E58495 - East Asian ideograph - - - 216872 - 5113 - E58493 - East Asian ideograph - - - 216878 - 511A - E5849A - East Asian ideograph - - - 216879 - 9797 - E99E97 - East Asian ideograph - - - 21687E - 5126 - E584A6 - East Asian ideograph - - - 216929 - 5124 - E584A4 - East Asian ideograph - - - 21692B - 5129 - E584A9 - East Asian ideograph - - - 216930 - 5131 - E584B1 - East Asian ideograph - - - 21693E - 5135 - E584B5 - East Asian ideograph - - - 216940 - 5133 - E584B3 - East Asian ideograph - - - 216944 - 513A - E584BA - East Asian ideograph - - - 216947 - 5139 - E584B9 - East Asian ideograph - - - 216948 - 513B - E584BB - East Asian ideograph - - - 216951 - 5159 - E58599 - East Asian ideograph - - - 216952 - 515B - E5859B - East Asian ideograph - - - 216955 - 515D - E5859D - East Asian ideograph - - - 216956 - 515E - E5859E - East Asian ideograph - - - 216958 - 515F - E5859F - East Asian ideograph - - - 216959 - 5161 - E585A1 - East Asian ideograph - - - 21695C - 5163 - E585A3 - East Asian ideograph - - - 216967 - 5182 - E58682 - East Asian ideograph - - - 216969 - 5184 - E58684 - East Asian ideograph - - - 21696E - 518F - E5868F - East Asian ideograph - - - 216970 - 5194 - E58694 - East Asian ideograph - - - 216971 - 5193 - E58693 - East Asian ideograph - - - 216975 - 5196 - E58696 - East Asian ideograph - - - 21697B - 51A1 - E586A1 - East Asian ideograph - - - 21697C - 51A3 - E586A3 - East Asian ideograph - - - 216A22 - 51AA - E586AA - East Asian ideograph - - - 216A23 - 51AB - E586AB - East Asian ideograph - - - 216A26 - 51B1 - E586B1 - East Asian ideograph - - - 216A35 - 51BC - E586BC - East Asian ideograph - - - 216A43 - 51CA - E5878A - East Asian ideograph - - - 216A46 - 51C7 - E58787 - East Asian ideograph - - - 216A4E - 51D1 - E58791 - East Asian ideograph - - - 216A4F - 51D0 - E58790 - East Asian ideograph - - - 216A54 - 51D3 - E58793 - East Asian ideograph - - - 216A63 - 51D9 - E58799 - East Asian ideograph - - - 216A66 - 51DF - E5879F - East Asian ideograph - - - 216A68 - 51E2 - E587A2 - East Asian ideograph - - - 216A73 - 5160 - E585A0 - East Asian ideograph - - - 216A78 - 51F5 - E587B5 - East Asian ideograph - - - 216A79 - 51F7 - E587B7 - East Asian ideograph - - - 216B24 - 5213 - E58893 - East Asian ideograph - - - 216B26 - 5216 - E58896 - East Asian ideograph - - - 216B2A - 521C - E5889C - East Asian ideograph - - - 216B33 - 5231 - E588B1 - East Asian ideograph - - - 216B36 - 5235 - E588B5 - East Asian ideograph - - - 216B37 - 5232 - E588B2 - East Asian ideograph - - - 216B39 - 5233 - E588B3 - East Asian ideograph - - - 216B3E - 5244 - E58984 - East Asian ideograph - - - 216B43 - 5249 - E58989 - East Asian ideograph - - - 216B47 - 5260 - E589A0 - East Asian ideograph - - - 216B4B - 525A - E5899A - East Asian ideograph - - - 216B4C - 5252 - E58992 - East Asian ideograph - - - 216B4D - 525E - E5899E - East Asian ideograph - - - 216B50 - 525F - E5899F - East Asian ideograph - - - 216B53 - 5255 - E58995 - East Asian ideograph - - - 216B5B - 526E - E589AE - East Asian ideograph - - - 216B5E - 5268 - E589A8 - East Asian ideograph - - - 216B5F - 7B9A - E7AE9A - East Asian ideograph - - - 216B6B - 5278 - E589B8 - East Asian ideograph - - - 216B74 - 5282 - E58A82 - East Asian ideograph - - - 216B75 - 5281 - E58A81 - East Asian ideograph - - - 216B79 - 528C - E58A8C - East Asian ideograph - - - 216B7A - 528A - E58A8A - East Asian ideograph - - - 216B7C - 5290 - E58A90 - East Asian ideograph - - - 216C21 - 5293 - E58A93 - East Asian ideograph - - - 216C27 - 5296 - E58A96 - East Asian ideograph - - - 216C29 - 5298 - E58A98 - East Asian ideograph - - - 216C2B - 529A - E58A9A - East Asian ideograph - - - 216C2C - 5299 - E58A99 - East Asian ideograph - - - 216C2E - 52A6 - E58AA6 - East Asian ideograph - - - 216C31 - 52AD - E58AAD - East Asian ideograph - - - 216C33 - 52AE - E58AAE - East Asian ideograph - - - 216C37 - 52BB - E58ABB - East Asian ideograph - - - 216C38 - 52BC - E58ABC - East Asian ideograph - - - 216C3C - 52CA - E58B8A - East Asian ideograph - - - 216C3D - 52CD - E58B8D - East Asian ideograph - - - 216C40 - 52D0 - E58B90 - East Asian ideograph - - - 216C41 - 52D1 - E58B91 - East Asian ideograph - - - 216C46 - 52D4 - E58B94 - East Asian ideograph - - - 216C48 - 52D6 - E58B96 - East Asian ideograph - - - 216C4C - 52E3 - E58BA3 - East Asian ideograph - - - 216C4E - 52E1 - E58BA1 - East Asian ideograph - - - 216C50 - 55E7 - E597A7 - East Asian ideograph - - - 216C53 - 52E9 - E58BA9 - East Asian ideograph - - - 216C58 - 52F0 - E58BB0 - East Asian ideograph - - - 216C5A - 52F1 - E58BB1 - East Asian ideograph - - - 216C5E - 52F7 - E58BB7 - East Asian ideograph - - - 216C61 - 52F9 - E58BB9 - East Asian ideograph - - - 216C62 - 52FA - E58BBA - East Asian ideograph - - - 216C64 - 52FC - E58BBC - East Asian ideograph - - - 216C69 - 5307 - E58C87 - East Asian ideograph - - - 216C6A - 5303 - E58C83 - East Asian ideograph - - - 216C6B - 5306 - E58C86 - East Asian ideograph - - - 216C6E - 530A - E58C8A - East Asian ideograph - - - 216C6F - 530B - E58C8B - East Asian ideograph - - - 216C77 - 5311 - E58C91 - East Asian ideograph - - - 216C7B - 6706 - E69C86 - East Asian ideograph - - - 216D23 - 531A - E58C9A - East Asian ideograph - - - 216D24 - 531C - E58C9C - East Asian ideograph - - - 216D25 - 531F - E58C9F - East Asian ideograph - - - 216D2E - 532D - E58CAD - East Asian ideograph - - - 216D33 - 5330 - E58CB0 - East Asian ideograph - - - 216D36 - 5335 - E58CB5 - East Asian ideograph - - - 216D3A - 5338 - E58CB8 - East Asian ideograph - - - 216D3E - 533D - E58CBD - East Asian ideograph - - - 216D41 - 534C - E58D8C - East Asian ideograph - - - 216D42 - 534D - E58D8D - East Asian ideograph - - - 216D4B - 535D - E58D9D - East Asian ideograph - - - 216D4C - 5363 - E58DA3 - East Asian ideograph - - - 216D4E - 5365 - E58DA5 - East Asian ideograph - - - 216D53 - 536C - E58DAC - East Asian ideograph - - - 216D57 - 5372 - E58DB2 - East Asian ideograph - - - 216D58 - 537A - E58DBA - East Asian ideograph - - - 216D5D - 5380 - E58E80 - East Asian ideograph - - - 216D64 - 538E - E58E8E - East Asian ideograph - - - 216D66 - 5393 - E58E93 - East Asian ideograph - - - 216D67 - 5394 - E58E94 - East Asian ideograph - - - 216D6D - 5399 - E58E99 - East Asian ideograph - - - 216D74 - 8652 - E89992 - East Asian ideograph - - - 216D7A - 53A4 - E58EA4 - East Asian ideograph - - - 216D7B - 53AB - E58EAB - East Asian ideograph - - - 216E2C - 53B5 - E58EB5 - East Asian ideograph - - - 216E2E - 53B9 - E58EB9 - East Asian ideograph - - - 216E3E - 53D0 - E58F90 - East Asian ideograph - - - 216E48 - 53DA - E58F9A - East Asian ideograph - - - 216E57 - 53FB - E58FBB - East Asian ideograph - - - 216E58 - 535F - E58D9F - East Asian ideograph - - - 216E61 - 5414 - E59094 - East Asian ideograph - - - 216E68 - 5406 - E59086 - East Asian ideograph - - - 216E6C - 544C - E5918C - East Asian ideograph - - - 216E6D - 5445 - E59185 - East Asian ideograph - - - 216E6F - 541A - E5909A - East Asian ideograph - - - 216E70 - 5432 - E590B2 - East Asian ideograph - - - 216E76 - 5421 - E590A1 - East Asian ideograph - - - 216E78 - 5430 - E590B0 - East Asian ideograph - - - 216E79 - 5454 - E59194 - East Asian ideograph - - - 216E7D - 543D - E590BD - East Asian ideograph - - - 216F21 - 544F - E5918F - East Asian ideograph - - - 216F24 - 542A - E590AA - East Asian ideograph - - - 216F26 - 5422 - E590A2 - East Asian ideograph - - - 216F27 - 5423 - E590A3 - East Asian ideograph - - - 216F2E - 545F - E5919F - East Asian ideograph - - - 216F2F - 549C - E5929C - East Asian ideograph - - - 216F35 - 5488 - E59288 - East Asian ideograph - - - 216F37 - 547F - E591BF - East Asian ideograph - - - 216F39 - 5482 - E59282 - East Asian ideograph - - - 216F3A - 546D - E591AD - East Asian ideograph - - - 216F3B - 5491 - E59291 - East Asian ideograph - - - 216F42 - 5494 - E59294 - East Asian ideograph - - - 216F43 - 546B - E591AB - East Asian ideograph - - - 216F49 - 548D - E5928D - East Asian ideograph - - - 216F4A - 5463 - E591A3 - East Asian ideograph - - - 216F4B - 5474 - E591B4 - East Asian ideograph - - - 216F52 - 5466 - E591A6 - East Asian ideograph - - - 216F53 - 5464 - E591A4 - East Asian ideograph - - - 216F55 - 54A4 - E592A4 - East Asian ideograph - - - 216F58 - 54A1 - E592A1 - East Asian ideograph - - - 216F5A - 54AD - E592AD - East Asian ideograph - - - 216F5B - 54BA - E592BA - East Asian ideograph - - - 216F5C - 54CF - E5938F - East Asian ideograph - - - 216F5E - 54BE - E592BE - East Asian ideograph - - - 216F60 - 54A5 - E592A5 - East Asian ideograph - - - 216F63 - 54A7 - E592A7 - East Asian ideograph - - - 216F64 - 54B5 - E592B5 - East Asian ideograph - - - 216F66 - 54A2 - E592A2 - East Asian ideograph - - - 216F67 - 5472 - E591B2 - East Asian ideograph - - - 216F68 - 5470 - E591B0 - East Asian ideograph - - - 216F69 - 54BC - E592BC - East Asian ideograph - - - 216F6A - 54B7 - E592B7 - East Asian ideograph - - - 216F6B - 54DE - E5939E - East Asian ideograph - - - 216F6C - 54D6 - E59396 - East Asian ideograph - - - 216F6D - 54AE - E592AE - East Asian ideograph - - - 216F71 - 54BF - E592BF - East Asian ideograph - - - 216F74 - 54C6 - E59386 - East Asian ideograph - - - 216F7B - 551A - E5949A - East Asian ideograph - - - 216F7C - 54E2 - E593A2 - East Asian ideograph - - - 216F7D - 5507 - E59487 - East Asian ideograph - - - 217023 - 5517 - E59497 - East Asian ideograph - - - 217024 - 54FD - E593BD - East Asian ideograph - - - 217025 - 54E7 - E593A7 - East Asian ideograph - - - 217027 - 54F3 - E593B3 - East Asian ideograph - - - 21702A - 54E4 - E593A4 - East Asian ideograph - - - 21702B - 550A - E5948A - East Asian ideograph - - - 21702D - 54FF - E593BF - East Asian ideograph - - - 21702E - 5518 - E59498 - East Asian ideograph - - - 217030 - 5504 - E59484 - East Asian ideograph - - - 217032 - 54EF - E593AF - East Asian ideograph - - - 217034 - 5508 - E59488 - East Asian ideograph - - - 217038 - 54F6 - E593B6 - East Asian ideograph - - - 217039 - 54F7 - E593B7 - East Asian ideograph - - - 21703E - 550E - E5948E - East Asian ideograph - - - 217044 - 5523 - E594A3 - East Asian ideograph - - - 217046 - 550F - E5948F - East Asian ideograph - - - 217047 - 5511 - E59491 - East Asian ideograph - - - 21704B - 5575 - E595B5 - East Asian ideograph - - - 21704D - 5573 - E595B3 - East Asian ideograph - - - 21704E - 554C - E5958C - East Asian ideograph - - - 21704F - 5576 - E595B6 - East Asian ideograph - - - 217050 - 554D - E5958D - East Asian ideograph - - - 217051 - 555A - E5959A - East Asian ideograph - - - 217053 - 553C - E594BC - East Asian ideograph - - - 217055 - 5550 - E59590 - East Asian ideograph - - - 217057 - 5539 - E594B9 - East Asian ideograph - - - 217058 - 5548 - E59588 - East Asian ideograph - - - 217059 - 552D - E594AD - East Asian ideograph - - - 21705A - 5551 - E59591 - East Asian ideograph - - - 21705D - 552A - E594AA - East Asian ideograph - - - 217060 - 5562 - E595A2 - East Asian ideograph - - - 217061 - 5536 - E594B6 - East Asian ideograph - - - 217064 - 5549 - E59589 - East Asian ideograph - - - 217068 - 5530 - E594B0 - East Asian ideograph - - - 21706A - 5540 - E59580 - East Asian ideograph - - - 21706B - 5535 - E594B5 - East Asian ideograph - - - 217070 - 5545 - E59585 - East Asian ideograph - - - 217079 - 553F - E594BF - East Asian ideograph - - - 21707B - 5541 - E59581 - East Asian ideograph - - - 21707D - 5565 - E595A5 - East Asian ideograph - - - 217123 - 5591 - E59691 - East Asian ideograph - - - 217125 - 5577 - E595B7 - East Asian ideograph - - - 217126 - 55A8 - E596A8 - East Asian ideograph - - - 217127 - 55AD - E596AD - East Asian ideograph - - - 21712A - 5605 - E59885 - East Asian ideograph - - - 21712D - 5593 - E59693 - East Asian ideograph - - - 21712F - 5586 - E59686 - East Asian ideograph - - - 217134 - 5588 - E59688 - East Asian ideograph - - - 217136 - 55B4 - E596B4 - East Asian ideograph - - - 217143 - 55E2 - E597A2 - East Asian ideograph (variant of EACC 2D7143) - - - 217144 - 5581 - E59681 - East Asian ideograph - - - 217145 - 558E - E5968E - East Asian ideograph - - - 217147 - 55B5 - E596B5 - East Asian ideograph - - - 217149 - 558F - E5968F - East Asian ideograph - - - 21714B - 5559 - E59599 - East Asian ideograph - - - 217150 - 55A4 - E596A4 - East Asian ideograph - - - 217151 - 5592 - E59692 - East Asian ideograph - - - 217152 - 5599 - E59699 - East Asian ideograph - - - 217156 - 55F4 - E597B4 - East Asian ideograph - - - 217158 - 55CC - E5978C - East Asian ideograph - - - 217159 - 55D0 - E59790 - East Asian ideograph - - - 21715A - 55DB - E5979B - East Asian ideograph - - - 21715B - 55CD - E5978D - East Asian ideograph - - - 21715C - 55DE - E5979E - East Asian ideograph - - - 21715D - 55D9 - E59799 - East Asian ideograph - - - 21715E - 55C3 - E59783 - East Asian ideograph - - - 21715F - 55C9 - E59789 - East Asian ideograph - - - 217161 - 55CA - E5978A - East Asian ideograph - - - 217162 - 55DD - E5979D - East Asian ideograph - - - 217164 - 55D4 - E59794 - East Asian ideograph - - - 217165 - 55C4 - E59784 - East Asian ideograph - - - 217169 - 55E9 - E597A9 - East Asian ideograph - - - 21716F - 55CF - E5978F - East Asian ideograph - - - 217170 - 55D2 - E59792 - East Asian ideograph - - - 217175 - 55E5 - E597A5 - East Asian ideograph - - - 217177 - 55D6 - E59796 - East Asian ideograph - - - 217178 - 55C1 - E59781 - East Asian ideograph - - - 217179 - 55F2 - E597B2 - East Asian ideograph - - - 21717E - 5627 - E598A7 - East Asian ideograph - - - 217224 - 55FB - E597BB - East Asian ideograph - - - 217225 - 5612 - E59892 - East Asian ideograph - - - 217227 - 55F8 - E597B8 - East Asian ideograph - - - 217228 - 560F - E5988F - East Asian ideograph - - - 21722B - 55F9 - E597B9 - East Asian ideograph - - - 21722E - 561E - E5989E - East Asian ideograph - - - 217231 - 560C - E5988C - East Asian ideograph - - - 217234 - 561C - E5989C - East Asian ideograph - - - 217235 - 5610 - E59890 - East Asian ideograph - - - 217236 - 5601 - E59881 - East Asian ideograph - - - 217238 - 5613 - E59893 - East Asian ideograph - - - 217239 - 55F6 - E597B6 - East Asian ideograph - - - 21723C - 5602 - E59882 - East Asian ideograph - - - 217242 - 561D - E5989D - East Asian ideograph - - - 217244 - 55FF - E597BF - East Asian ideograph - - - 217247 - 5642 - E59982 - East Asian ideograph - - - 217248 - 564C - E5998C - East Asian ideograph - - - 21724B - 564B - E5998B - East Asian ideograph - - - 217252 - 5640 - E59980 - East Asian ideograph - - - 217255 - 5635 - E598B5 - East Asian ideograph - - - 217257 - 5649 - E59989 - East Asian ideograph - - - 217258 - 5641 - E59981 - East Asian ideograph - - - 21725C - 5658 - E59998 - East Asian ideograph - - - 21725D - 5620 - E598A0 - East Asian ideograph - - - 21725E - 5654 - E59994 - East Asian ideograph - - - 217260 - 562A - E598AA - East Asian ideograph - - - 217261 - 563D - E598BD - East Asian ideograph - - - 217264 - 562C - E598AC - East Asian ideograph - - - 217267 - 5638 - E598B8 - East Asian ideograph - - - 217269 - 564D - E5998D - East Asian ideograph - - - 21726B - 562B - E598AB - East Asian ideograph - - - 21726C - 564F - E5998F - East Asian ideograph - - - 21726E - 5670 - E599B0 - East Asian ideograph - - - 21726F - 565F - E5999F - East Asian ideograph - - - 217270 - 567C - E599BC - East Asian ideograph - - - 217272 - 5660 - E599A0 - East Asian ideograph - - - 217278 - 5676 - E599B6 - East Asian ideograph - - - 21727A - 5666 - E599A6 - East Asian ideograph - - - 21727B - 5673 - E599B3 - East Asian ideograph - - - 21727C - 566D - E599AD - East Asian ideograph - - - 21727E - 5672 - E599B2 - East Asian ideograph - - - 217325 - 5693 - E59A93 - East Asian ideograph - - - 217328 - 568C - E59A8C - East Asian ideograph - - - 217332 - 56BA - E59ABA - East Asian ideograph - - - 217334 - 5686 - E59A86 - East Asian ideograph - - - 217335 - 5684 - E59A84 - East Asian ideograph - - - 217336 - 5691 - E59A91 - East Asian ideograph - - - 217337 - 568A - E59A8A - East Asian ideograph - - - 21733E - 569E - E59A9E - East Asian ideograph - - - 217341 - 569C - E59A9C - East Asian ideograph - - - 217342 - 569A - E59A9A - East Asian ideograph - - - 217345 - 5699 - E59A99 - East Asian ideograph - - - 21734B - 56AD - E59AAD - East Asian ideograph - - - 21734C - 56A6 - E59AA6 - East Asian ideograph - - - 21734E - 56AC - E59AAC - East Asian ideograph - - - 217353 - 56B2 - E59AB2 - East Asian ideograph - - - 21735A - 56B3 - E59AB3 - East Asian ideograph - - - 21735B - 56C3 - E59B83 - East Asian ideograph - - - 217360 - 56C5 - E59B85 - East Asian ideograph - - - 217362 - 56CF - E59B8F - East Asian ideograph - - - 217367 - 56CD - E59B8D - East Asian ideograph - - - 21736A - 56D4 - E59B94 - East Asian ideograph - - - 21736B - 56D7 - E59B97 - East Asian ideograph - - - 21736D - 56DD - E59B9D - East Asian ideograph - - - 21736F - 56E1 - E59BA1 - East Asian ideograph - - - 217370 - 56DF - E59B9F - East Asian ideograph - - - 217375 - 56EB - E59BAB - East Asian ideograph - - - 217376 - 56EE - E59BAE - East Asian ideograph - - - 217377 - 56E7 - E59BA7 - East Asian ideograph - - - 217379 - 56FB - E59BBB - East Asian ideograph - - - 21737E - 56F7 - E59BB7 - East Asian ideograph - - - 217421 - 56F9 - E59BB9 - East Asian ideograph - - - 217424 - 56FF - E59BBF - East Asian ideograph - - - 217427 - 5705 - E59C85 - East Asian ideograph - - - 217428 - 5704 - E59C84 - East Asian ideograph - - - 217429 - 5702 - E59C82 - East Asian ideograph - - - 21742C - 570A - E59C8A - East Asian ideograph - - - 21742D - 5709 - E59C89 - East Asian ideograph - - - 21742E - 5707 - E59C87 - East Asian ideograph - - - 217430 - 570C - E59C8C - East Asian ideograph - - - 217431 - 5715 - E59C95 - East Asian ideograph - - - 217432 - 5714 - E59C94 - East Asian ideograph - - - 217435 - 571A - E59C9A - East Asian ideograph - - - 217436 - 571B - E59C9B - East Asian ideograph - - - 217437 - 571C - E59C9C - East Asian ideograph - - - 217439 - 571D - E59C9D - East Asian ideograph - - - 21743A - 571E - E59C9E - East Asian ideograph - - - 217441 - 5724 - E59CA4 - East Asian ideograph - - - 217442 - 572E - E59CAE - East Asian ideograph - - - 217443 - 5729 - E59CA9 - East Asian ideograph - - - 217448 - 5738 - E59CB8 - East Asian ideograph - - - 21744C - 572A - E59CAA - East Asian ideograph - - - 217463 - 5749 - E59D89 - East Asian ideograph - - - 217465 - 5745 - E59D85 - East Asian ideograph - - - 217468 - 574B - E59D8B - East Asian ideograph - - - 217469 - 574C - E59D8C - East Asian ideograph - - - 21746A - 573F - E59CBF - East Asian ideograph - - - 217470 - 5768 - E59DA8 - East Asian ideograph - - - 217475 - 578A - E59E8A - East Asian ideograph - - - 217477 - 576D - E59DAD - East Asian ideograph - - - 217479 - 5774 - E59DB4 - East Asian ideograph - - - 21747A - 5767 - E59DA7 - East Asian ideograph - - - 217526 - 5770 - E59DB0 - East Asian ideograph - - - 217528 - 5771 - E59DB1 - East Asian ideograph - - - 21752A - 576E - E59DAE - East Asian ideograph - - - 21752D - 5776 - E59DB6 - East Asian ideograph - - - 21752E - 5789 - E59E89 - East Asian ideograph - - - 217530 - 577F - E59DBF - East Asian ideograph - - - 217531 - 5775 - E59DB5 - East Asian ideograph - - - 217532 - 577B - E59DBB - East Asian ideograph - - - 217533 - 5788 - E59E88 - East Asian ideograph - - - 217535 - 5773 - E59DB3 - East Asian ideograph - - - 217538 - 579F - E59E9F - East Asian ideograph - - - 217539 - 5790 - E59E90 - East Asian ideograph - - - 21753A - 5793 - E59E93 - East Asian ideograph - - - 21753F - 579E - E59E9E - East Asian ideograph - - - 217540 - 57B5 - E59EB5 - East Asian ideograph - - - 217543 - 579A - E59E9A - East Asian ideograph - - - 217545 - 5794 - E59E94 - East Asian ideograph - - - 217547 - 57A4 - E59EA4 - East Asian ideograph - - - 217548 - 5799 - E59E99 - East Asian ideograph - - - 217549 - 578C - E59E8C - East Asian ideograph - - - 21754B - 5797 - E59E97 - East Asian ideograph - - - 21754E - 579D - E59E9D - East Asian ideograph - - - 217552 - 579C - E59E9C - East Asian ideograph - - - 217554 - 57A7 - E59EA7 - East Asian ideograph - - - 217557 - 57A1 - E59EA1 - East Asian ideograph - - - 217559 - 212C4 - - East Asian ideograph (Unicode CJK Extension B) - - - 21755B - 5795 - E59E95 - East Asian ideograph - - - 21755F - 57B8 - E59EB8 - East Asian ideograph - - - 217560 - 57C7 - E59F87 - East Asian ideograph - - - 21756A - 5809 - E5A089 - East Asian ideograph - - - 21756C - 57BE - E59EBE - East Asian ideograph - - - 217571 - 57DB - E59F9B - East Asian ideograph - - - 217573 - 57D5 - E59F95 - East Asian ideograph - - - 217577 - 57D2 - E59F92 - East Asian ideograph - - - 21757E - 57C6 - E59F86 - East Asian ideograph - - - 217622 - 57C4 - E59F84 - East Asian ideograph - - - 217627 - 70FE - E783BE - East Asian ideograph - - - 217629 - 57E3 - E59FA3 - East Asian ideograph - - - 21762A - 57FB - E59FBB - East Asian ideograph - - - 21762B - 5803 - E5A083 - East Asian ideograph - - - 21762C - 57F6 - E59FB6 - East Asian ideograph - - - 21762D - 57E6 - E59FA6 - East Asian ideograph - - - 217631 - 57ED - E59FAD - East Asian ideograph - - - 217633 - 5800 - E5A080 - East Asian ideograph - - - 217635 - 57EC - E59FAC - East Asian ideograph - - - 217636 - 5807 - E5A087 - East Asian ideograph - - - 217639 - 580E - E5A08E - East Asian ideograph - - - 21763B - 580F - E5A08F - East Asian ideograph - - - 21763D - 57F4 - E59FB4 - East Asian ideograph - - - 21763E - 5810 - E5A090 - East Asian ideograph - - - 217640 - 580D - E5A08D - East Asian ideograph - - - 217643 - 57EF - E59FAF - East Asian ideograph - - - 217648 - 5801 - E5A081 - East Asian ideograph - - - 217649 - 5812 - E5A092 - East Asian ideograph - - - 21764D - 57FD - E59FBD - East Asian ideograph - - - 21764E - 57F8 - E59FB8 - East Asian ideograph - - - 217650 - 580C - E5A08C - East Asian ideograph - - - 217651 - 5813 - E5A093 - East Asian ideograph - - - 217652 - 57F0 - E59FB0 - East Asian ideograph - - - 217656 - 580B - E5A08B - East Asian ideograph - - - 217658 - 57F3 - E59FB3 - East Asian ideograph - - - 217659 - 5804 - E5A084 - East Asian ideograph - - - 21765A - 57CF - E59F8F - East Asian ideograph - - - 21765B - 57DD - E59F9D - East Asian ideograph - - - 21765F - 5847 - E5A187 - East Asian ideograph - - - 217667 - 581B - E5A09B - East Asian ideograph - - - 217669 - 5819 - E5A099 - East Asian ideograph - - - 21766A - 5833 - E5A0B3 - East Asian ideograph - - - 21766C - 581E - E5A09E - East Asian ideograph - - - 21766D - 583F - E5A0BF - East Asian ideograph - - - 217671 - 5827 - E5A0A7 - East Asian ideograph - - - 217676 - 5828 - E5A0A8 - East Asian ideograph - - - 217678 - 582E - E5A0AE - East Asian ideograph - - - 21767A - 581D - E5A09D - East Asian ideograph - - - 21767D - 5844 - E5A184 - East Asian ideograph - - - 217721 - 5848 - E5A188 - East Asian ideograph - - - 217723 - 5818 - E5A098 - East Asian ideograph - - - 217726 - 57F5 - E59FB5 - East Asian ideograph - - - 217729 - 582D - E5A0AD - East Asian ideograph - - - 21772B - 5820 - E5A0A0 - East Asian ideograph - - - 217730 - 584E - E5A18E - East Asian ideograph - - - 217733 - 585D - E5A19D - East Asian ideograph - - - 217735 - 5859 - E5A199 - East Asian ideograph - - - 217737 - 584B - E5A18B - East Asian ideograph - - - 21773D - 5865 - E5A1A5 - East Asian ideograph - - - 217740 - 586C - E5A1AC - East Asian ideograph - - - 217742 - 5852 - E5A192 - East Asian ideograph - - - 217745 - 5864 - E5A1A4 - East Asian ideograph - - - 217747 - 5853 - E5A193 - East Asian ideograph - - - 217748 - 584F - E5A18F - East Asian ideograph - - - 217749 - 583D - E5A0BD - East Asian ideograph - - - 21774D - 584D - E5A18D - East Asian ideograph - - - 21774E - 5856 - E5A196 - East Asian ideograph - - - 217755 - 589A - E5A29A - East Asian ideograph - - - 217758 - 5892 - E5A292 - East Asian ideograph - - - 21775A - 588E - E5A28E - East Asian ideograph - - - 21775C - 5889 - E5A289 - East Asian ideograph - - - 21775F - 5840 - E5A180 - East Asian ideograph - - - 217760 - 589B - E5A29B - East Asian ideograph - - - 217761 - 587C - E5A1BC - East Asian ideograph - - - 217763 - 5888 - E5A288 - East Asian ideograph - - - 217765 - 5890 - E5A290 - East Asian ideograph - - - 217768 - 5898 - E5A298 - East Asian ideograph - - - 21776B - 587D - E5A1BD - East Asian ideograph - - - 21776F - 587F - E5A1BF - East Asian ideograph - - - 217770 - 5881 - E5A281 - East Asian ideograph - - - 21777B - 58A9 - E5A2A9 - East Asian ideograph - - - 21777E - 58A1 - E5A2A1 - East Asian ideograph - - - 217824 - 58B1 - E5A2B1 - East Asian ideograph - - - 21782B - 58AD - E5A2AD - East Asian ideograph - - - 21782E - 58A0 - E5A2A0 - East Asian ideograph - - - 217830 - 58A3 - E5A2A3 - East Asian ideograph - - - 217832 - 58A6 - E5A2A6 - East Asian ideograph - - - 21783A - 58C8 - E5A388 - East Asian ideograph - - - 217841 - 58BC - E5A2BC - East Asian ideograph - - - 217849 - 58BF - E5A2BF - East Asian ideograph - - - 21784B - 58C6 - E5A386 - East Asian ideograph - - - 21784C - 58BA - E5A2BA - East Asian ideograph - - - 217850 - 58D6 - E5A396 - East Asian ideograph - - - 217854 - 58D2 - E5A392 - East Asian ideograph - - - 217856 - 58CE - E5A38E - East Asian ideograph - - - 21785A - 58E0 - E5A3A0 - East Asian ideograph - - - 21785E - 58DA - E5A39A - East Asian ideograph - - - 21786C - 58FC - E5A3BC - East Asian ideograph - - - 217870 - 5902 - E5A482 - East Asian ideograph - - - 217873 - 5906 - E5A486 - East Asian ideograph - - - 217874 - 6535 - E694B5 - East Asian ideograph - - - 21787A - 5910 - E5A490 - East Asian ideograph - - - 21787C - 8641 - E89981 - East Asian ideograph - - - 217928 - 592C - E5A4AC - East Asian ideograph - - - 21792B - 592F - E5A4AF - East Asian ideograph - - - 217930 - 593C - E5A4BC - East Asian ideograph - - - 217933 - 5940 - E5A580 - East Asian ideograph - - - 217938 - 594D - E5A58D - East Asian ideograph - - - 217943 - 5953 - E5A593 - East Asian ideograph - - - 21794B - 595C - E5A59C - East Asian ideograph - - - 21794F - 5961 - E5A5A1 - East Asian ideograph - - - 217954 - 596C - E5A5AC - East Asian ideograph - - - 217955 - 596D - E5A5AD - East Asian ideograph - - - 217965 - 597C - E5A5BC - East Asian ideograph - - - 217969 - 59A7 - E5A6A7 - East Asian ideograph - - - 21796B - 5998 - E5A698 - East Asian ideograph - - - 21796F - 599A - E5A69A - East Asian ideograph - - - 217971 - 59A0 - E5A6A0 - East Asian ideograph - - - 21797C - 5997 - E5A697 - East Asian ideograph - - - 217A21 - 5990 - E5A690 - East Asian ideograph - - - 217A24 - 59C5 - E5A785 - East Asian ideograph - - - 217A25 - 59B5 - E5A6B5 - East Asian ideograph - - - 217A28 - 59CF - E5A78F - East Asian ideograph - - - 217A2A - 59BA - E5A6BA - East Asian ideograph - - - 217A2C - 59B8 - E5A6B8 - East Asian ideograph - - - 217A35 - 59B2 - E5A6B2 - East Asian ideograph - - - 217A3A - 59B7 - E5A6B7 - East Asian ideograph - - - 217A3E - 59C1 - E5A781 - East Asian ideograph - - - 217A43 - 59F9 - E5A7B9 - East Asian ideograph - - - 217A44 - 59F8 - E5A7B8 - East Asian ideograph - - - 217A4F - 59EE - E5A7AE - East Asian ideograph - - - 217A50 - 59F1 - E5A7B1 - East Asian ideograph - - - 217A51 - 5A00 - E5A880 - East Asian ideograph - - - 217A52 - 59DE - E5A79E - East Asian ideograph - - - 217A56 - 59FD - E5A7BD - East Asian ideograph - - - 217A5D - 59F6 - E5A7B6 - East Asian ideograph - - - 217A5E - 59DD - E5A79D - East Asian ideograph - - - 217A5F - 59FA - E5A7BA - East Asian ideograph - - - 217A61 - 59E4 - E5A7A4 - East Asian ideograph - - - 217A6E - 5A2A - E5A8AA - East Asian ideograph - - - 217A75 - 5A16 - E5A896 - East Asian ideograph - - - 217A78 - 5A09 - E5A889 - East Asian ideograph - - - 217A7E - 5A12 - E5A892 - East Asian ideograph - - - 217B2C - 5A60 - E5A9A0 - East Asian ideograph - - - 217B31 - 5A67 - E5A9A7 - East Asian ideograph - - - 217B3A - 5A38 - E5A8B8 - East Asian ideograph - - - 217B3B - 5A5E - E5A99E - East Asian ideograph - - - 217B3C - 5A6D - E5A9AD - East Asian ideograph - - - 217B3D - 5A35 - E5A8B5 - East Asian ideograph - - - 217B3E - 5A55 - E5A995 - East Asian ideograph - - - 217B41 - 5A2C - E5A8AC - East Asian ideograph - - - 217B48 - 5A50 - E5A990 - East Asian ideograph - - - 217B49 - 5A65 - E5A9A5 - East Asian ideograph - - - 217B52 - 5A64 - E5A9A4 - East Asian ideograph - - - 217B65 - 5A8A - E5AA8A - East Asian ideograph - - - 217B69 - 5ACF - E5AB8F - East Asian ideograph - - - 217B6A - 5A7A - E5A9BA - East Asian ideograph - - - 217B71 - 5A9F - E5AA9F - East Asian ideograph - - - 217B75 - 5AA0 - E5AAA0 - East Asian ideograph - - - 217C21 - 5AA6 - E5AAA6 - East Asian ideograph - - - 217C22 - 5A8C - E5AA8C - East Asian ideograph - - - 217C24 - 5AA7 - E5AAA7 - East Asian ideograph - - - 217C25 - 5A9E - E5AA9E - East Asian ideograph - - - 217C26 - 5AA2 - E5AAA2 - East Asian ideograph - - - 217C27 - 5A9C - E5AA9C - East Asian ideograph - - - 217C28 - 5A7C - E5A9BC - East Asian ideograph - - - 217C29 - 5A96 - E5AA96 - East Asian ideograph - - - 217C30 - 5A93 - E5AA93 - East Asian ideograph - - - 217C31 - 5AAC - E5AAAC - East Asian ideograph - - - 217C34 - 5AAE - E5AAAE - East Asian ideograph - - - 217C35 - 5A95 - E5AA95 - East Asian ideograph - - - 217C36 - 5AAF - E5AAAF - East Asian ideograph - - - 217C39 - 5AC8 - E5AB88 - East Asian ideograph - - - 217C3E - 5AB5 - E5AAB5 - East Asian ideograph - - - 217C41 - 5AC4 - E5AB84 - East Asian ideograph - - - 217C45 - 5AB7 - E5AAB7 - East Asian ideograph - - - 217C49 - 5AD1 - E5AB91 - East Asian ideograph - - - 217C4A - 5A90 - E5AA90 - East Asian ideograph - - - 217C4F - 5AB8 - E5AAB8 - East Asian ideograph - - - 217C50 - 5ABA - E5AABA - East Asian ideograph - - - 217C52 - 5AAA - E5AAAA - East Asian ideograph - - - 217C59 - 5AD3 - E5AB93 - East Asian ideograph - - - 217C5B - 5AB1 - E5AAB1 - East Asian ideograph - - - 217C60 - 5ADC - E5AB9C - East Asian ideograph - - - 217C6D - 5AE5 - E5ABA5 - East Asian ideograph - - - 217C6E - 5AE0 - E5ABA0 - East Asian ideograph - - - 217C72 - 5AEA - E5ABAA - East Asian ideograph - - - 217C7B - 5ADA - E5AB9A - East Asian ideograph - - - 217C7C - 5AEB - E5ABAB - East Asian ideograph - - - 217D26 - 5AFF - E5ABBF - East Asian ideograph - - - 217D2A - 5AFD - E5ABBD - East Asian ideograph - - - 217D2B - 5B08 - E5AC88 - East Asian ideograph - - - 217D2E - 5B0D - E5AC8D - East Asian ideograph - - - 217D38 - 5B03 - E5AC83 - East Asian ideograph - - - 217D3D - 5B17 - E5AC97 - East Asian ideograph - - - 217D3E - 5B16 - E5AC96 - East Asian ideograph - - - 217D40 - 5B19 - E5AC99 - East Asian ideograph - - - 217D47 - 5B1B - E5AC9B - East Asian ideograph - - - 217D48 - 5B21 - E5ACA1 - East Asian ideograph - - - 217D52 - 5B2C - E5ACAC - East Asian ideograph - - - 217D59 - 5B32 - E5ACB2 - East Asian ideograph - - - 217D63 - 5B3F - E5ACBF - East Asian ideograph - - - 217D6E - 5B45 - E5AD85 - East Asian ideograph - - - 217D74 - 5B4C - E5AD8C - East Asian ideograph - - - 217D76 - 5B4B - E5AD8B - East Asian ideograph - - - 217D7C - 5B56 - E5AD96 - East Asian ideograph - - - 217E21 - 5B5B - E5AD9B - East Asian ideograph - - - 217E23 - 5B62 - E5ADA2 - East Asian ideograph - - - 217E24 - 5B65 - E5ADA5 - East Asian ideograph - - - 217E25 - 5B67 - E5ADA7 - East Asian ideograph - - - 217E27 - 5C58 - E5B198 - East Asian ideograph - - - 217E28 - 5B6C - E5ADAC - East Asian ideograph - - - 217E2A - 5B6E - E5ADAE - East Asian ideograph - - - 217E30 - 5B7B - E5ADBB - East Asian ideograph - - - 217E31 - 5B7C - E5ADBC - East Asian ideograph - - - 217E32 - 5B80 - E5AE80 - East Asian ideograph - - - 217E34 - 5B84 - E5AE84 - East Asian ideograph - - - 217E35 - 5B82 - E5AE82 - East Asian ideograph - - - 217E40 - 5B95 - E5AE95 - East Asian ideograph - - - 217E43 - 5B93 - E5AE93 - East Asian ideograph - - - 217E49 - 5BAC - E5AEAC - East Asian ideograph - - - 217E52 - 5BA7 - E5AEA7 - East Asian ideograph - - - 217E55 - 5BB7 - E5AEB7 - East Asian ideograph - - - 217E59 - 5BC1 - E5AF81 - East Asian ideograph - - - 217E5B - 3761 - E39DA1 - East Asian ideograph (Unicode CJK Extension A) - - - 217E60 - 5BC9 - E5AF89 - East Asian ideograph - - - 217E68 - 5BD4 - E5AF94 - East Asian ideograph - - - 217E6A - 5BC3 - E5AF83 - East Asian ideograph - - - 217E6E - 5BD6 - E5AF96 - East Asian ideograph - - - 217E75 - 5BD7 - E5AF97 - East Asian ideograph - - - 217E79 - 5BE0 - E5AFA0 - East Asian ideograph - - - 217E7E - 5BEA - E5AFAA - East Asian ideograph - - - 222224 - 5BF0 - E5AFB0 - East Asian ideograph - - - 222225 - 5BEF - E5AFAF - East Asian ideograph - - - 222233 - 5C00 - E5B080 - East Asian ideograph - - - 222235 - 5C57 - E5B197 - East Asian ideograph - - - 22223C - 5C15 - E5B095 - East Asian ideograph - - - 222246 - 5C22 - E5B0A2 - East Asian ideograph - - - 222248 - 5C25 - E5B0A5 - East Asian ideograph - - - 22224B - 5C2A - E5B0AA - East Asian ideograph - - - 222252 - 5C2F - E5B0AF - East Asian ideograph - - - 22225B - 5C32 - E5B0B2 - East Asian ideograph - - - 222263 - 5C3B - E5B0BB - East Asian ideograph - - - 222265 - 5C44 - E5B184 - East Asian ideograph - - - 222267 - 5C49 - E5B189 - East Asian ideograph - - - 222279 - 5C59 - E5B199 - East Asian ideograph - - - 22227B - 5C5D - E5B19D - East Asian ideograph - - - 22227C - 5C5F - E5B19F - East Asian ideograph - - - 222323 - 5C63 - E5B1A3 - East Asian ideograph - - - 222329 - 5C67 - E5B1A7 - East Asian ideograph - - - 22232B - 5C68 - E5B1A8 - East Asian ideograph - - - 222330 - 5C6D - E5B1AD - East Asian ideograph - - - 222331 - 5C6E - E5B1AE - East Asian ideograph - - - 222337 - 5C74 - E5B1B4 - East Asian ideograph - - - 222339 - 5C73 - E5B1B3 - East Asian ideograph - - - 22233B - 5C77 - E5B1B7 - East Asian ideograph - - - 22233C - 5C7A - E5B1BA - East Asian ideograph - - - 222340 - 5C7C - E5B1BC - East Asian ideograph - - - 222346 - 5C8F - E5B28F - East Asian ideograph - - - 222349 - 5C88 - E5B288 - East Asian ideograph - - - 22234B - 5C8D - E5B28D - East Asian ideograph - - - 22234D - 5C99 - E5B299 - East Asian ideograph - - - 222355 - 5CA6 - E5B2A6 - East Asian ideograph - - - 222357 - 5CA0 - E5B2A0 - East Asian ideograph - - - 22235C - 5CA2 - E5B2A2 - East Asian ideograph - - - 222360 - 5CB5 - E5B2B5 - East Asian ideograph - - - 222361 - 5CA7 - E5B2A7 - East Asian ideograph - - - 222366 - 5CA8 - E5B2A8 - East Asian ideograph - - - 222367 - 5CAC - E5B2AC - East Asian ideograph - - - 22236B - 5CA3 - E5B2A3 - East Asian ideograph - - - 22236C - 5CB6 - E5B2B6 - East Asian ideograph - - - 22236D - 5CC1 - E5B381 - East Asian ideograph - - - 22236F - 5CAD - E5B2AD - East Asian ideograph - - - 222370 - 5CD5 - E5B395 - East Asian ideograph - - - 222378 - 5CD3 - E5B393 - East Asian ideograph - - - 222379 - 5C8D - E5B28D - East Asian ideograph - - - 222426 - 5CE0 - E5B3A0 - East Asian ideograph - - - 222428 - 5CD2 - E5B392 - East Asian ideograph - - - 222429 - 5CDD - E5B39D - East Asian ideograph - - - 22242B - 5CCB - E5B38B - East Asian ideograph - - - 222430 - 5CC7 - E5B387 - East Asian ideograph - - - 222431 - 5CDC - E5B39C - East Asian ideograph - - - 222434 - 5D00 - E5B480 - East Asian ideograph - - - 22243B - 5CFF - E5B3BF - East Asian ideograph - - - 22243C - 5CEB - E5B3AB - East Asian ideograph - - - 222441 - 5CF4 - E5B3B4 - East Asian ideograph - - - 222446 - 5CF1 - E5B3B1 - East Asian ideograph - - - 222449 - 5D1E - E5B49E - East Asian ideograph - - - 22244A - 5D12 - E5B492 - East Asian ideograph - - - 222450 - 5D1A - E5B49A - East Asian ideograph - - - 222452 - 5D0C - E5B48C - East Asian ideograph - - - 222453 - 5D20 - E5B4A0 - East Asian ideograph - - - 222454 - 5D21 - E5B4A1 - East Asian ideograph - - - 222457 - 5D27 - E5B4A7 - East Asian ideograph - - - 222458 - 5D0D - E5B48D - East Asian ideograph - - - 22245A - 5D26 - E5B4A6 - East Asian ideograph - - - 22245D - 5D2E - E5B4AE - East Asian ideograph - - - 222469 - 5D24 - E5B4A4 - East Asian ideograph - - - 222471 - 5D36 - E5B4B6 - East Asian ideograph - - - 222472 - 5D3E - E5B4BE - East Asian ideograph - - - 222474 - 5D4B - E5B58B - East Asian ideograph - - - 222476 - 5D57 - E5B597 - East Asian ideograph - - - 222477 - 5D34 - E5B4B4 - East Asian ideograph - - - 222525 - 5D3F - E5B4BF - East Asian ideograph - - - 222526 - 5D52 - E5B592 - East Asian ideograph - - - 222527 - 5D3D - E5B4BD - East Asian ideograph - - - 222528 - 5D4E - E5B58E - East Asian ideograph - - - 22252C - 5D59 - E5B599 - East Asian ideograph - - - 22252D - 5D47 - E5B587 - East Asian ideograph - - - 22252F - 5D32 - E5B4B2 - East Asian ideograph - - - 222531 - 5D42 - E5B582 - East Asian ideograph - - - 222534 - 5D74 - E5B5B4 - East Asian ideograph - - - 222539 - 5D6F - E5B5AF - East Asian ideograph - - - 22253A - 5D6B - E5B5AB - East Asian ideograph - - - 22253F - 5D75 - E5B5B5 - East Asian ideograph - - - 222544 - 5D4A - E5B58A - East Asian ideograph - - - 222549 - 5D6C - E5B5AC - East Asian ideograph - - - 22254A - 5D62 - E5B5A2 - East Asian ideograph - - - 22254D - 5D82 - E5B682 - East Asian ideograph - - - 222550 - 5D79 - E5B5B9 - East Asian ideograph - - - 222551 - 5D8E - E5B68E - East Asian ideograph - - - 22255A - 5D81 - E5B681 - East Asian ideograph - - - 222560 - 5D7E - E5B5BE - East Asian ideograph - - - 222566 - 5D92 - E5B692 - East Asian ideograph - - - 222568 - 5D99 - E5B699 - East Asian ideograph - - - 222569 - 5D97 - E5B697 - East Asian ideograph - - - 22256A - 5DA2 - E5B6A2 - East Asian ideograph - - - 222573 - 5DA1 - E5B6A1 - East Asian ideograph - - - 222575 - 5D93 - E5B693 - East Asian ideograph - - - 222577 - 5DA0 - E5B6A0 - East Asian ideograph - - - 22257B - 5D94 - E5B694 - East Asian ideograph - - - 22257E - 5DAC - E5B6AC - East Asian ideograph - - - 222626 - 5DA7 - E5B6A7 - East Asian ideograph - - - 22262A - 5DB0 - E5B6B0 - East Asian ideograph - - - 22262E - 5DB4 - E5B6B4 - East Asian ideograph - - - 22262F - 5DAE - E5B6AE - East Asian ideograph - - - 222630 - 5DB6 - E5B6B6 - East Asian ideograph - - - 222632 - 5DB8 - E5B6B8 - East Asian ideograph - - - 222634 - 5DBF - E5B6BF - East Asian ideograph - - - 222636 - 5DB7 - E5B6B7 - East Asian ideograph - - - 22263E - 5DC3 - E5B783 - East Asian ideograph - - - 222644 - 5DC7 - E5B787 - East Asian ideograph - - - 222646 - 5DC9 - E5B789 - East Asian ideograph - - - 222647 - 5DCB - E5B78B - East Asian ideograph - - - 22264E - 5DD8 - E5B798 - East Asian ideograph - - - 222650 - 5DDB - E5B79B - East Asian ideograph - - - 222652 - 5DDC - E5B79C - East Asian ideograph - - - 222656 - 5DE4 - E5B7A4 - East Asian ideograph - - - 222662 - 5E00 - E5B880 - East Asian ideograph - - - 222664 - 51E7 - E587A7 - East Asian ideograph - - - 222672 - 5E14 - E5B894 - East Asian ideograph - - - 222673 - 5E17 - E5B897 - East Asian ideograph - - - 222676 - 5E19 - E5B899 - East Asian ideograph - - - 222677 - 5E12 - E5B892 - East Asian ideograph - - - 222678 - 5E1F - E5B89F - East Asian ideograph - - - 22267A - 5E23 - E5B8A3 - East Asian ideograph - - - 22267B - 5E21 - E5B8A1 - East Asian ideograph - - - 222722 - 5E22 - E5B8A2 - East Asian ideograph - - - 222724 - 5E28 - E5B8A8 - East Asian ideograph - - - 222735 - 5E44 - E5B984 - East Asian ideograph - - - 222736 - 5E43 - E5B983 - East Asian ideograph - - - 222739 - 5E42 - E5B982 - East Asian ideograph - - - 22273F - 5E4E - E5B98E - East Asian ideograph - - - 222747 - 5E58 - E5B998 - East Asian ideograph - - - 222748 - 5E48 - E5B988 - East Asian ideograph - - - 222757 - 5E5E - E5B99E - East Asian ideograph - - - 222758 - 5E61 - E5B9A1 - East Asian ideograph - - - 22275D - 5E68 - E5B9A8 - East Asian ideograph - - - 22275F - 5E6C - E5B9AC - East Asian ideograph - - - 222760 - 5E6A - E5B9AA - East Asian ideograph - - - 222763 - 5E6E - E5B9AE - East Asian ideograph - - - 222764 - 5E6D - E5B9AD - East Asian ideograph - - - 222765 - 5E70 - E5B9B0 - East Asian ideograph - - - 22276D - 5E75 - E5B9B5 - East Asian ideograph - - - 222777 - 5E80 - E5BA80 - East Asian ideograph - - - 22277E - 5E8B - E5BA8B - East Asian ideograph - - - 22282F - 5EA4 - E5BAA4 - East Asian ideograph - - - 222835 - 5EA5 - E5BAA5 - East Asian ideograph - - - 222836 - 5EAF - E5BAAF - East Asian ideograph - - - 222842 - 5EB9 - E5BAB9 - East Asian ideograph - - - 22284B - 5EB3 - E5BAB3 - East Asian ideograph - - - 22284C - 5EC4 - E5BB84 - East Asian ideograph - - - 222851 - 5ECC - E5BB8C - East Asian ideograph - - - 222855 - 5ECB - E5BB8B - East Asian ideograph - - - 222857 - 5ECD - E5BB8D - East Asian ideograph - - - 22285A - 5ED2 - E5BB92 - East Asian ideograph - - - 22285B - 5ED1 - E5BB91 - East Asian ideograph - - - 22285C - 5ED5 - E5BB95 - East Asian ideograph - - - 22285F - 5ED4 - E5BB94 - East Asian ideograph - - - 222860 - 5ED9 - E5BB99 - East Asian ideograph - - - 222861 - 5ECE - E5BB8E - East Asian ideograph - - - 222868 - 5EE1 - E5BBA1 - East Asian ideograph - - - 22286D - 5EE7 - E5BBA7 - East Asian ideograph - - - 222871 - 5EE8 - E5BBA8 - East Asian ideograph - - - 22287C - 5EED - E5BBAD - East Asian ideograph - - - 222921 - 5EF1 - E5BBB1 - East Asian ideograph - - - 222923 - 5EF4 - E5BBB4 - East Asian ideograph - - - 222935 - 5F07 - E5BC87 - East Asian ideograph - - - 22293A - 5F0B - E5BC8B - East Asian ideograph - - - 22294A - 5F28 - E5BCA8 - East Asian ideograph - - - 22294B - 5F22 - E5BCA2 - East Asian ideograph - - - 22294C - 5F23 - E5BCA3 - East Asian ideograph - - - 22294D - 5F24 - E5BCA4 - East Asian ideograph - - - 222951 - 5F33 - E5BCB3 - East Asian ideograph - - - 222952 - 5F30 - E5BCB0 - East Asian ideograph - - - 222958 - 5F38 - E5BCB8 - East Asian ideograph - - - 22295C - 5F40 - E5BD80 - East Asian ideograph - - - 22295F - 5F44 - E5BD84 - East Asian ideograph - - - 222962 - 5F4D - E5BD8D - East Asian ideograph - - - 222968 - 5F50 - E5BD90 - East Asian ideograph - - - 222969 - 5F54 - E5BD94 - East Asian ideograph - - - 22296A - 5F56 - E5BD96 - East Asian ideograph - - - 22296C - 5F58 - E5BD98 - East Asian ideograph - - - 222970 - 5F60 - E5BDA0 - East Asian ideograph - - - 222971 - 5F61 - E5BDA1 - East Asian ideograph - - - 222972 - 5F63 - E5BDA3 - East Asian ideograph - - - 222973 - 809C - E8829C - East Asian ideograph - - - 222974 - 5F67 - E5BDA7 - East Asian ideograph - - - 222978 - 5F72 - E5BDB2 - East Asian ideograph - - - 222979 - 5F73 - E5BDB3 - East Asian ideograph - - - 22297C - 5F74 - E5BDB4 - East Asian ideograph - - - 222A23 - 5F82 - E5BE82 - East Asian ideograph - - - 222A27 - 5F89 - E5BE89 - East Asian ideograph - - - 222A2B - 5F94 - E5BE94 - East Asian ideograph - - - 222A34 - 2251B - - East Asian ideograph (Unicode CJK Extension B) - - - 222A39 - 5F9C - E5BE9C - East Asian ideograph - - - 222A3D - 5F9A - E5BE9A - East Asian ideograph - - - 222A46 - 5FAF - E5BEAF - East Asian ideograph - - - 222A50 - 5FBC - E5BEBC - East Asian ideograph - - - 222A57 - 5FC9 - E5BF89 - East Asian ideograph - - - 222A5F - 5FD1 - E5BF91 - East Asian ideograph - - - 222A61 - 5FD2 - E5BF92 - East Asian ideograph - - - 222A63 - 5FD0 - E5BF90 - East Asian ideograph - - - 222A67 - 5FCE - E5BF8E - East Asian ideograph - - - 222A68 - 5FED - E5BFAD - East Asian ideograph - - - 222A72 - 5FEE - E5BFAE - East Asian ideograph - - - 222A73 - 5FF8 - E5BFB8 - East Asian ideograph - - - 222A78 - 5FE1 - E5BFA1 - East Asian ideograph - - - 222A7B - 5FE4 - E5BFA4 - East Asian ideograph - - - 222B24 - 5FEA - E5BFAA - East Asian ideograph - - - 222B2A - 6026 - E680A6 - East Asian ideograph - - - 222B2C - 6029 - E680A9 - East Asian ideograph - - - 222B2D - 602B - E680AB - East Asian ideograph - - - 222B30 - 6019 - E68099 - East Asian ideograph - - - 222B31 - 6008 - E68088 - East Asian ideograph - - - 222B36 - 600A - E6808A - East Asian ideograph - - - 222B37 - 600C - E6808C - East Asian ideograph - - - 222B38 - 601B - E6809B - East Asian ideograph - - - 222B3C - 6017 - E68097 - East Asian ideograph - - - 222B3D - 6033 - E680B3 - East Asian ideograph - - - 222B45 - 600D - E6808D - East Asian ideograph - - - 222B46 - 6010 - E68090 - East Asian ideograph - - - 222B4B - 6039 - E680B9 - East Asian ideograph - - - 222B50 - 6013 - E68093 - East Asian ideograph - - - 222B53 - 6054 - E68194 - East Asian ideograph - - - 222B57 - 605D - E6819D - East Asian ideograph - - - 222B5A - 6047 - E68187 - East Asian ideograph - - - 222B5E - 6049 - E68189 - East Asian ideograph - - - 222B5F - 6053 - E68193 - East Asian ideograph - - - 222B68 - 6067 - E681A7 - East Asian ideograph - - - 222B6F - 604C - E6818C - East Asian ideograph - - - 222B71 - 6041 - E68181 - East Asian ideograph - - - 222B72 - 6077 - E681B7 - East Asian ideograph - - - 222B74 - 6042 - E68182 - East Asian ideograph - - - 222B76 - 605F - E6819F - East Asian ideograph - - - 222B7A - 6061 - E681A1 - East Asian ideograph - - - 222C24 - 608A - E6828A - East Asian ideograph - - - 222C2B - 6092 - E68292 - East Asian ideograph - - - 222C2C - 609D - E6829D - East Asian ideograph - - - 222C2D - 6081 - E68281 - East Asian ideograph - - - 222C2F - 609E - E6829E - East Asian ideograph - - - 222C30 - 6083 - E68283 - East Asian ideograph - - - 222C32 - 6097 - E68297 - East Asian ideograph - - - 222C34 - 60A7 - E682A7 - East Asian ideograph - - - 222C3A - 6095 - E68295 - East Asian ideograph - - - 222C3E - 60C7 - E68387 - East Asian ideograph - - - 222C42 - 60B0 - E682B0 - East Asian ideograph - - - 222C46 - 60BE - E682BE - East Asian ideograph - - - 222C47 - 60D3 - E68393 - East Asian ideograph - - - 222C48 - 60D4 - E68394 - East Asian ideograph - - - 222C4E - 60CE - E6838E - East Asian ideograph - - - 222C51 - 60CF - E6838F - East Asian ideograph - - - 222C53 - 60D9 - E68399 - East Asian ideograph - - - 222C54 - 60B3 - E682B3 - East Asian ideograph - - - 222C56 - 60DD - E6839D - East Asian ideograph - - - 222C5D - 60C4 - E68384 - East Asian ideograph - - - 222C60 - 60B1 - E682B1 - East Asian ideograph - - - 222C62 - 60E3 - E683A3 - East Asian ideograph - - - 222C66 - 60E2 - E683A2 - East Asian ideograph - - - 222C67 - 60E5 - E683A5 - East Asian ideograph - - - 222C69 - 60DB - E6839B - East Asian ideograph - - - 222C6E - 60E9 - E683A9 - East Asian ideograph - - - 222C70 - 6114 - E68494 - East Asian ideograph - - - 222C73 - 6103 - E68483 - East Asian ideograph - - - 222C75 - 6119 - E68499 - East Asian ideograph - - - 222C7C - 60FD - E683BD - East Asian ideograph - - - 222C7D - 610D - E6848D - East Asian ideograph - - - 222D2A - 610A - E6848A - East Asian ideograph - - - 222D2C - 6110 - E68490 - East Asian ideograph - - - 222D32 - 6112 - E68492 - East Asian ideograph - - - 222D34 - 60F2 - E683B2 - East Asian ideograph - - - 222D37 - 6125 - E684A5 - East Asian ideograph - - - 222D3B - 60F8 - E683B8 - East Asian ideograph - - - 222D3F - 6121 - E684A1 - East Asian ideograph - - - 222D41 - 60FC - E683BC - East Asian ideograph - - - 222D43 - 6106 - E68486 - East Asian ideograph - - - 222D48 - 6149 - E68589 - East Asian ideograph - - - 222D4A - 614A - E6858A - East Asian ideograph - - - 222D4E - 612B - E684AB - East Asian ideograph - - - 222D50 - 6129 - E684A9 - East Asian ideograph - - - 222D51 - 6150 - E68590 - East Asian ideograph - - - 222D56 - 53AF - E58EAF - East Asian ideograph - - - 222D58 - 6130 - E684B0 - East Asian ideograph - - - 222D5B - 6141 - E68581 - East Asian ideograph - - - 222D5E - 6137 - E684B7 - East Asian ideograph - - - 222D61 - 6146 - E68586 - East Asian ideograph - - - 222D66 - 615E - E6859E - East Asian ideograph - - - 222D67 - 6175 - E685B5 - East Asian ideograph - - - 222D68 - 6174 - E685B4 - East Asian ideograph - - - 222D6B - 6183 - E68683 - East Asian ideograph - - - 222D70 - 6171 - E685B1 - East Asian ideograph - - - 222D74 - 616A - E685AA - East Asian ideograph - - - 222D77 - 6173 - E685B3 - East Asian ideograph - - - 222D79 - 6164 - E685A4 - East Asian ideograph - - - 222D7B - 6153 - E68593 - East Asian ideograph - - - 222E23 - 618B - E6868B - East Asian ideograph - - - 222E2C - 616F - E685AF - East Asian ideograph - - - 222E2D - 6165 - E685A5 - East Asian ideograph - - - 222E2F - 615C - E6859C - East Asian ideograph - - - 222E32 - 619D - E6869D - East Asian ideograph - - - 222E33 - 61A6 - E686A6 - East Asian ideograph - - - 222E3D - 61A2 - E686A2 - East Asian ideograph - - - 222E40 - 61A8 - E686A8 - East Asian ideograph - - - 222E42 - 619C - E6869C - East Asian ideograph - - - 222E43 - 61AF - E686AF - East Asian ideograph - - - 222E45 - 6196 - E68696 - East Asian ideograph - - - 222E46 - 6197 - E68697 - East Asian ideograph - - - 222E47 - 61AD - E686AD - East Asian ideograph - - - 222E4C - 6192 - E68692 - East Asian ideograph - - - 222E52 - 61AE - E686AE - East Asian ideograph - - - 222E55 - 618D - E6868D - East Asian ideograph - - - 222E5A - 61CB - E6878B - East Asian ideograph - - - 222E5C - 61CC - E6878C - East Asian ideograph - - - 222E5D - 61C6 - E68786 - East Asian ideograph - - - 222E68 - 61BA - E686BA - East Asian ideograph - - - 222E6A - 61B8 - E686B8 - East Asian ideograph - - - 222E71 - 61E0 - E687A0 - East Asian ideograph - - - 222E77 - 61E5 - E687A5 - East Asian ideograph - - - 222E7D - 61DC - E6879C - East Asian ideograph - - - 222E7E - 61DF - E6879F - East Asian ideograph - - - 222F29 - 61F3 - E687B3 - East Asian ideograph - - - 222F3D - 6201 - E68881 - East Asian ideograph - - - 222F41 - 6204 - E68884 - East Asian ideograph - - - 222F43 - 6207 - E68887 - East Asian ideograph - - - 222F44 - 6209 - E68889 - East Asian ideograph - - - 222F47 - 6214 - E68894 - East Asian ideograph - - - 222F56 - 6223 - E688A3 - East Asian ideograph - - - 222F5B - 6225 - E688A5 - East Asian ideograph - - - 222F5D - 6224 - E688A4 - East Asian ideograph - - - 222F61 - 6229 - E688A9 - East Asian ideograph - - - 222F67 - 622D - E688AD - East Asian ideograph - - - 222F69 - 97EF - E99FAF - East Asian ideograph - - - 222F6E - 6239 - E688B9 - East Asian ideograph - - - 222F6F - 623A - E688BA - East Asian ideograph - - - 222F70 - 623D - E688BD - East Asian ideograph - - - 222F75 - 6243 - E68983 - East Asian ideograph - - - 222F77 - 6246 - E68986 - East Asian ideograph - - - 222F78 - 6245 - E68985 - East Asian ideograph - - - 222F79 - 624A - E6898A - East Asian ideograph - - - 222F7A - 6250 - E68990 - East Asian ideograph - - - 222F7C - 625E - E6899E - East Asian ideograph - - - 223026 - 6268 - E689A8 - East Asian ideograph - - - 223028 - 6260 - E689A0 - East Asian ideograph - - - 22302B - 625A - E6899A - East Asian ideograph - - - 22302C - 6262 - E689A2 - East Asian ideograph - - - 22302D - 6266 - E689A6 - East Asian ideograph - - - 223031 - 6286 - E68A86 - East Asian ideograph - - - 223032 - 628E - E68A8E - East Asian ideograph - - - 223041 - 62A3 - E68AA3 - East Asian ideograph - - - 223043 - 6282 - E68A82 - East Asian ideograph - - - 223046 - 6285 - E68A85 - East Asian ideograph - - - 22304B - 629D - E68A9D - East Asian ideograph - - - 223056 - 62A6 - E68AA6 - East Asian ideograph - - - 223057 - 62D1 - E68B91 - East Asian ideograph - - - 223061 - 62E4 - E68BA4 - East Asian ideograph - - - 223069 - 62B6 - E68AB6 - East Asian ideograph - - - 22306A - 62C3 - E68B83 - East Asian ideograph - - - 223072 - 630D - E68C8D - East Asian ideograph - - - 223125 - 62F5 - E68BB5 - East Asian ideograph - - - 223131 - 630C - E68C8C - East Asian ideograph - - - 223132 - 6360 - E68DA0 - East Asian ideograph - - - 223137 - 62F6 - E68BB6 - East Asian ideograph - - - 22313A - 6331 - E68CB1 - East Asian ideograph - - - 223142 - 6345 - E68D85 - East Asian ideograph - - - 223144 - 6343 - E68D83 - East Asian ideograph - - - 223145 - 6335 - E68CB5 - East Asian ideograph - - - 223147 - 6353 - E68D93 - East Asian ideograph - - - 223148 - 6364 - E68DA4 - East Asian ideograph - - - 223149 - 6336 - E68CB6 - East Asian ideograph - - - 22314A - 6344 - E68D84 - East Asian ideograph - - - 223154 - 6339 - E68CB9 - East Asian ideograph - - - 223158 - 6357 - E68D97 - East Asian ideograph - - - 22315A - 633C - E68CBC - East Asian ideograph - - - 22315B - 6358 - E68D98 - East Asian ideograph - - - 22315C - 634B - E68D8B - East Asian ideograph - - - 22315F - 6354 - E68D94 - East Asian ideograph - - - 223168 - 637D - E68DBD - East Asian ideograph - - - 22316A - 63B6 - E68EB6 - East Asian ideograph - - - 22316B - 6382 - E68E82 - East Asian ideograph - - - 22316C - 636C - E68DAC - East Asian ideograph - - - 22316E - 639F - E68E9F - East Asian ideograph - - - 223172 - 639E - E68E9E - East Asian ideograph - - - 223173 - 637F - E68DBF - East Asian ideograph - - - 223179 - 6381 - E68E81 - East Asian ideograph - - - 22317B - 6397 - E68E97 - East Asian ideograph - - - 22317D - 63AB - E68EAB - East Asian ideograph - - - 223225 - 6387 - E68E87 - East Asian ideograph - - - 223226 - 637A - E68DBA - East Asian ideograph - - - 223227 - 638E - E68E8E - East Asian ideograph - - - 22322A - 6386 - E68E86 - East Asian ideograph - - - 22322F - 6375 - E68DB5 - East Asian ideograph - - - 223230 - 63AF - E68EAF - East Asian ideograph - - - 223237 - 63B1 - E68EB1 - East Asian ideograph - - - 223238 - 63B0 - E68EB0 - East Asian ideograph - - - 223239 - 63AE - E68EAE - East Asian ideograph - - - 22323A - 637C - E68DBC - East Asian ideograph - - - 22323B - 6390 - E68E90 - East Asian ideograph - - - 22323D - 63AD - E68EAD - East Asian ideograph - - - 223241 - 636D - E68DAD - East Asian ideograph - - - 223243 - 63DE - E68F9E - East Asian ideograph - - - 223244 - 63E5 - E68FA5 - East Asian ideograph - - - 223247 - 63D3 - E68F93 - East Asian ideograph - - - 22324F - 63BD - E68EBD - East Asian ideograph - - - 223250 - 63C3 - E68F83 - East Asian ideograph - - - 223252 - 63F5 - E68FB5 - East Asian ideograph - - - 223258 - 63E6 - E68FA6 - East Asian ideograph - - - 22325B - 63E0 - E68FA0 - East Asian ideograph - - - 22325C - 63D5 - E68F95 - East Asian ideograph - - - 22325D - 63F6 - E68FB6 - East Asian ideograph - - - 22325E - 63F2 - E68FB2 - East Asian ideograph - - - 22325F - 63F8 - E68FB8 - East Asian ideograph - - - 223266 - 63C5 - E68F85 - East Asian ideograph - - - 22326A - 63F9 - E68FB9 - East Asian ideograph - - - 223270 - 63BE - E68EBE - East Asian ideograph - - - 223272 - 63EB - E68FAB - East Asian ideograph - - - 223273 - 63DD - E68F9D - East Asian ideograph - - - 223276 - 63D1 - E68F91 - East Asian ideograph - - - 223279 - 63C4 - E68F84 - East Asian ideograph - - - 22327A - 63DC - E68F9C - East Asian ideograph - - - 22327B - 63D7 - E68F97 - East Asian ideograph - - - 22327E - 6412 - E69092 - East Asian ideograph - - - 223322 - 6410 - E69090 - East Asian ideograph - - - 223324 - 6434 - E690B4 - East Asian ideograph - - - 223329 - 641B - E6909B - East Asian ideograph - - - 22332B - 6420 - E690A0 - East Asian ideograph - - - 22332C - 6424 - E690A4 - East Asian ideograph - - - 22332F - 6426 - E690A6 - East Asian ideograph - - - 223331 - 640C - E6908C - East Asian ideograph - - - 223336 - 6415 - E69095 - East Asian ideograph - - - 223337 - 6418 - E69098 - East Asian ideograph - - - 223338 - 640E - E6908E - East Asian ideograph - - - 223339 - 22C4D - - East Asian ideograph (Unicode CJK Extension B) - - - 22333B - 6422 - E690A2 - East Asian ideograph - - - 22333D - 6421 - E690A1 - East Asian ideograph - - - 223344 - 6430 - E690B0 - East Asian ideograph - - - 223345 - 6441 - E69181 - East Asian ideograph - - - 223348 - 6435 - E690B5 - East Asian ideograph - - - 22334C - 6409 - E69089 - East Asian ideograph - - - 223351 - 640A - E6908A - East Asian ideograph - - - 223353 - 6440 - E69180 - East Asian ideograph - - - 223359 - 6407 - E69087 - East Asian ideograph - - - 22335B - 643B - E690BB - East Asian ideograph - - - 22335D - 643F - E690BF - East Asian ideograph - - - 223368 - 645B - E6919B - East Asian ideograph - - - 22336A - 644F - E6918F - East Asian ideograph - - - 22336C - 646B - E691AB - East Asian ideograph - - - 22336F - 6476 - E691B6 - East Asian ideograph - - - 223376 - 6474 - E691B4 - East Asian ideograph - - - 223378 - 647D - E691BD - East Asian ideograph - - - 22337B - 6473 - E691B3 - East Asian ideograph - - - 223423 - 644E - E6918E - East Asian ideograph - - - 223424 - 6464 - E691A4 - East Asian ideograph - - - 223427 - 6482 - E69282 - East Asian ideograph - - - 223428 - 645E - E6919E - East Asian ideograph - - - 22342C - 647B - E691BB - East Asian ideograph - - - 22342E - 645C - E6919C - East Asian ideograph - - - 22343C - 649D - E6929D - East Asian ideograph - - - 22343F - 6499 - E69299 - East Asian ideograph - - - 223442 - 648F - E6928F - East Asian ideograph - - - 22344D - 6496 - E69296 - East Asian ideograph - - - 22344E - 64A2 - E692A2 - East Asian ideograph - - - 223454 - 6490 - E69290 - East Asian ideograph - - - 22345B - 64B6 - E692B6 - East Asian ideograph - - - 223461 - 6498 - E69298 - East Asian ideograph - - - 223462 - 649F - E6929F - East Asian ideograph - - - 223465 - 64A7 - E692A7 - East Asian ideograph - - - 223466 - 64B3 - E692B3 - East Asian ideograph - - - 22346A - 64D7 - E69397 - East Asian ideograph - - - 22346C - 64D3 - E69393 - East Asian ideograph - - - 223474 - 64BE - E692BE - East Asian ideograph - - - 223475 - 64D0 - E69390 - East Asian ideograph - - - 22352A - 64EF - E693AF - East Asian ideograph - - - 22352D - 64E1 - E693A1 - East Asian ideograph - - - 22352E - 64E5 - E693A5 - East Asian ideograph - - - 223531 - 64EB - E693AB - East Asian ideograph - - - 223533 - 64E2 - E693A2 - East Asian ideograph - - - 223536 - 64ED - E693AD - East Asian ideograph - - - 223538 - 64E4 - E693A4 - East Asian ideograph - - - 223542 - 64F7 - E693B7 - East Asian ideograph - - - 223546 - 6504 - E69484 - East Asian ideograph - - - 22354B - 64FD - E693BD - East Asian ideograph - - - 22354F - 6508 - E69488 - East Asian ideograph - - - 223553 - 6509 - E69489 - East Asian ideograph - - - 223559 - 651A - E6949A - East Asian ideograph - - - 22355B - 6516 - E69496 - East Asian ideograph - - - 223561 - 651B - E6949B - East Asian ideograph - - - 223569 - 6527 - E694A7 - East Asian ideograph - - - 22356D - 6522 - E694A2 - East Asian ideograph - - - 22356F - 6529 - E694A9 - East Asian ideograph - - - 223572 - 6525 - E694A5 - East Asian ideograph - - - 223577 - 652E - E694AE - East Asian ideograph - - - 22357C - 6541 - E69581 - East Asian ideograph - - - 22362C - 6538 - E694B8 - East Asian ideograph - - - 223634 - 6542 - E69582 - East Asian ideograph - - - 223636 - 6549 - E69589 - East Asian ideograph - - - 22363E - 6554 - E69594 - East Asian ideograph - - - 22363F - 6555 - E69595 - East Asian ideograph - - - 223645 - 6567 - E695A7 - East Asian ideograph - - - 223647 - 6561 - E695A1 - East Asian ideograph - - - 22364F - 656D - E695AD - East Asian ideograph - - - 223654 - 657A - E695BA - East Asian ideograph - - - 223664 - 6585 - E69685 - East Asian ideograph - - - 22366E - 658C - E6968C - East Asian ideograph - - - 223670 - 6592 - E69692 - East Asian ideograph - - - 223671 - 6595 - E69695 - East Asian ideograph - - - 223675 - 659B - E6969B - East Asian ideograph - - - 223677 - 659D - E6969D - East Asian ideograph - - - 22367A - 65A0 - E696A0 - East Asian ideograph - - - 223722 - 65A8 - E696A8 - East Asian ideograph - - - 223723 - 65A6 - E696A6 - East Asian ideograph - - - 223727 - 65AE - E696AE - East Asian ideograph - - - 22372A - 65B6 - E696B6 - East Asian ideograph - - - 22372C - 65B8 - E696B8 - East Asian ideograph - - - 22372F - 65BF - E696BF - East Asian ideograph - - - 223731 - 65C6 - E69786 - East Asian ideograph - - - 223732 - 65C3 - E69783 - East Asian ideograph - - - 223733 - 65C4 - E69784 - East Asian ideograph - - - 223734 - 65C2 - E69782 - East Asian ideograph - - - 22373B - 65D0 - E69790 - East Asian ideograph - - - 22373C - 65D2 - E69792 - East Asian ideograph - - - 223744 - 65DB - E6979B - East Asian ideograph - - - 223745 - 65DC - E6979C - East Asian ideograph - - - 223747 - 65DD - E6979D - East Asian ideograph - - - 223748 - 65DF - E6979F - East Asian ideograph - - - 22374A - 65E1 - E697A1 - East Asian ideograph - - - 22374E - 65E4 - E697A4 - East Asian ideograph - - - 223754 - 65F4 - E697B4 - East Asian ideograph - - - 223755 - 65F0 - E697B0 - East Asian ideograph - - - 22375A - 6609 - E69889 - East Asian ideograph - - - 22375B - 65FB - E697BB - East Asian ideograph - - - 22375C - 65FC - E697BC - East Asian ideograph - - - 22375E - 660A - E6988A - East Asian ideograph - - - 223764 - 6603 - E69883 - East Asian ideograph - - - 22376A - 6611 - E69891 - East Asian ideograph - - - 22376B - 6615 - E69895 - East Asian ideograph - - - 22376D - 6604 - E69884 - East Asian ideograph - - - 22376E - 6631 - E698B1 - East Asian ideograph - - - 223772 - 6621 - E698A1 - East Asian ideograph - - - 223775 - 662C - E698AC - East Asian ideograph - - - 223777 - 6635 - E698B5 - East Asian ideograph - - - 22377C - 661E - E6989E - East Asian ideograph - - - 22377D - 663A - E698BA - East Asian ideograph - - - 223827 - 6633 - E698B3 - East Asian ideograph - - - 223828 - 662B - E698AB - East Asian ideograph - - - 22382B - 6634 - E698B4 - East Asian ideograph - - - 22382C - 6624 - E698A4 - East Asian ideograph - - - 223831 - 6645 - E69985 - East Asian ideograph - - - 223832 - 665F - E6999F - East Asian ideograph - - - 22383D - 6665 - E699A5 - East Asian ideograph - - - 22383E - 665C - E6999C - East Asian ideograph - - - 22383F - 6661 - E699A1 - East Asian ideograph - - - 223848 - 665B - E6999B - East Asian ideograph - - - 223849 - 6659 - E69999 - East Asian ideograph - - - 22384A - 6667 - E699A7 - East Asian ideograph - - - 22384C - 665E - E6999E - East Asian ideograph - - - 22384D - 6657 - E69997 - East Asian ideograph - - - 223850 - 667E - E699BE - East Asian ideograph - - - 223851 - 666C - E699AC - East Asian ideograph - - - 22385A - 6678 - E699B8 - East Asian ideograph - - - 223860 - 6673 - E699B3 - East Asian ideograph - - - 223866 - 666D - E699AD - East Asian ideograph - - - 223868 - 6677 - E699B7 - East Asian ideograph - - - 223870 - 6684 - E69A84 - East Asian ideograph - - - 223871 - 668C - E69A8C - East Asian ideograph - - - 223872 - 6693 - E69A93 - East Asian ideograph - - - 223875 - 668B - E69A8B - East Asian ideograph - - - 223876 - 6690 - E69A90 - East Asian ideograph - - - 223879 - 6694 - E69A94 - East Asian ideograph - - - 22387A - 668A - E69A8A - East Asian ideograph - - - 22387C - 6698 - E69A98 - East Asian ideograph - - - 22387D - 668D - E69A8D - East Asian ideograph - - - 223924 - 7A25 - E7A8A5 - East Asian ideograph - - - 22392A - 66A0 - E69AA0 - East Asian ideograph - - - 223930 - 5C21 - E5B0A1 - East Asian ideograph - - - 223932 - 669D - E69A9D - East Asian ideograph - - - 22393A - 66B2 - E69AB2 - East Asian ideograph - - - 223940 - 66B5 - E69AB5 - East Asian ideograph - - - 223941 - 66AA - E69AAA - East Asian ideograph - - - 223943 - 66AC - E69AAC - East Asian ideograph - - - 223947 - 66B1 - E69AB1 - East Asian ideograph - - - 22394E - 66C8 - E69B88 - East Asian ideograph - - - 22394F - 66BE - E69ABE - East Asian ideograph - - - 223954 - 66C0 - E69B80 - East Asian ideograph - - - 223955 - 66C7 - E69B87 - East Asian ideograph - - - 22395A - 66BB - E69ABB - East Asian ideograph - - - 22395C - 66C4 - E69B84 - East Asian ideograph - - - 223960 - 66CF - E69B8F - East Asian ideograph - - - 223971 - 66DA - E69B9A - East Asian ideograph - - - 223972 - 66DB - E69B9B - East Asian ideograph - - - 223973 - 66E2 - E69BA2 - East Asian ideograph - - - 223976 - 66E1 - E69BA1 - East Asian ideograph - - - 223978 - 66E8 - E69BA8 - East Asian ideograph - - - 22397C - 66E9 - E69BA9 - East Asian ideograph - - - 223A28 - 6705 - E69C85 - East Asian ideograph - - - 223A30 - 670F - E69C8F - East Asian ideograph - - - 223A31 - 6710 - E69C90 - East Asian ideograph - - - 223A33 - 6712 - E69C92 - East Asian ideograph - - - 223A34 - 6713 - E69C93 - East Asian ideograph - - - 223A38 - 6719 - E69C99 - East Asian ideograph - - - 223A39 - 6718 - E69C98 - East Asian ideograph - - - 223A47 - 6723 - E69CA3 - East Asian ideograph - - - 223A4C - 673E - E69CBE - East Asian ideograph - - - 223A4E - 673F - E69CBF - East Asian ideograph - - - 223A58 - 6757 - E69D97 - East Asian ideograph - - - 223A5B - 6745 - E69D85 - East Asian ideograph - - - 223A5C - 6747 - E69D87 - East Asian ideograph - - - 223A60 - 675D - E69D9D - East Asian ideograph - - - 223A61 - 6755 - E69D95 - East Asian ideograph - - - 223A66 - 674C - E69D8C - East Asian ideograph - - - 223A67 - 6759 - E69D99 - East Asian ideograph - - - 223A68 - 6748 - E69D88 - East Asian ideograph - - - 223A6B - 6763 - E69DA3 - East Asian ideograph - - - 223A6E - 6753 - E69D93 - East Asian ideograph - - - 223A71 - 674A - E69D8A - East Asian ideograph - - - 223A75 - 6793 - E69E93 - East Asian ideograph - - - 223A78 - 677C - E69DBC - East Asian ideograph - - - 223A7A - 679F - E69E9F - East Asian ideograph - - - 223A7C - 6785 - E69E85 - East Asian ideograph - - - 223B21 - 677B - E69DBB - East Asian ideograph - - - 223B22 - 6792 - E69E92 - East Asian ideograph - - - 223B23 - 6776 - E69DB6 - East Asian ideograph - - - 223B25 - 6791 - E69E91 - East Asian ideograph - - - 223B26 - 6799 - E69E99 - East Asian ideograph - - - 223B28 - 67A4 - E69EA4 - East Asian ideograph - - - 223B2E - 678F - E69E8F - East Asian ideograph - - - 223B30 - 6772 - E69DB2 - East Asian ideograph - - - 223B31 - 6798 - E69E98 - East Asian ideograph (variant of EACC 4C3B31) - - - 223B32 - 676A - E69DAA - East Asian ideograph - - - 223B39 - 67AC - E69EAC - East Asian ideograph - - - 223B3B - 67A0 - E69EA0 - East Asian ideograph - - - 223B3F - 67A1 - E69EA1 - East Asian ideograph - - - 223B44 - 67F9 - E69FB9 - East Asian ideograph - - - 223B48 - 678D - E69E8D - East Asian ideograph - - - 223B49 - 678C - E69E8C - East Asian ideograph - - - 223B4C - 67FC - E69FBC - East Asian ideograph - - - 223B4E - 6810 - E6A090 - East Asian ideograph - - - 223B51 - 67C8 - E69F88 - East Asian ideograph - - - 223B54 - 67CC - E69F8C - East Asian ideograph - - - 223B58 - 67C5 - E69F85 - East Asian ideograph - - - 223B5C - 67BB - E69EBB - East Asian ideograph - - - 223B5F - 67B0 - E69EB0 - East Asian ideograph - - - 223B60 - 6803 - E6A083 - East Asian ideograph - - - 223B61 - 67F8 - E69FB8 - East Asian ideograph - - - 223B63 - 67D8 - E69F98 - East Asian ideograph - - - 223B64 - 67B7 - E69EB7 - East Asian ideograph - - - 223B6D - 6802 - E6A082 - East Asian ideograph - - - 223B6F - 67E4 - E69FA4 - East Asian ideograph - - - 223B70 - 67D9 - E69F99 - East Asian ideograph - - - 223B71 - 67DB - E69F9B - East Asian ideograph - - - 223B72 - 67B5 - E69EB5 - East Asian ideograph - - - 223B74 - 67DF - E69F9F - East Asian ideograph - - - 223B75 - 67F7 - E69FB7 - East Asian ideograph - - - 223B77 - 67B3 - E69EB3 - East Asian ideograph - - - 223B78 - 6806 - E6A086 - East Asian ideograph - - - 223B79 - 67AE - E69EAE - East Asian ideograph - - - 223B7A - 67F6 - E69FB6 - East Asian ideograph - - - 223B7C - 67EE - E69FAE - East Asian ideograph - - - 223B7D - 6AAF - E6AAAF - East Asian ideograph - - - 223B7E - 67B2 - E69EB2 - East Asian ideograph - - - 223C21 - 67B9 - E69EB9 - East Asian ideograph - - - 223C23 - 67C2 - E69F82 - East Asian ideograph - - - 223C24 - 67E3 - E69FA3 - East Asian ideograph - - - 223C26 - 67CA - E69F8A - East Asian ideograph - - - 223C28 - 67CE - E69F8E - East Asian ideograph - - - 223C29 - 67E2 - E69FA2 - East Asian ideograph - - - 223C2A - 67F2 - E69FB2 - East Asian ideograph - - - 223C2B - 67C3 - E69F83 - East Asian ideograph - - - 223C2D - 67DD - E69F9D - East Asian ideograph - - - 223C2F - 67E7 - E69FA7 - East Asian ideograph - - - 223C30 - 6849 - E6A189 - East Asian ideograph - - - 223C31 - 683E - E6A0BE - East Asian ideograph - - - 223C36 - 6814 - E6A094 - East Asian ideograph - - - 223C37 - 684B - E6A18B - East Asian ideograph - - - 223C38 - 681E - E6A09E - East Asian ideograph - - - 223C3B - 6833 - E6A0B3 - East Asian ideograph - - - 223C40 - 6831 - E6A0B1 - East Asian ideograph - - - 223C41 - 6832 - E6A0B2 - East Asian ideograph - - - 223C42 - 6835 - E6A0B5 - East Asian ideograph - - - 223C43 - 683B - E6A0BB - East Asian ideograph - - - 223C44 - 684E - E6A18E - East Asian ideograph - - - 223C47 - 682B - E6A0AB - East Asian ideograph - - - 223C48 - 682D - E6A0AD - East Asian ideograph - - - 223C4A - 684D - E6A18D - East Asian ideograph - - - 223C4F - 6844 - E6A184 - East Asian ideograph - - - 223C55 - 685D - E6A19D - East Asian ideograph - - - 223C56 - 685E - E6A19E - East Asian ideograph - - - 223C58 - 6834 - E6A0B4 - East Asian ideograph - - - 223C59 - 6812 - E6A092 - East Asian ideograph - - - 223C65 - 685A - E6A19A - East Asian ideograph - - - 223C68 - 686B - E6A1AB - East Asian ideograph - - - 223C69 - 686C - E6A1AC - East Asian ideograph - - - 223C6B - 6879 - E6A1B9 - East Asian ideograph - - - 223C6E - 68B2 - E6A2B2 - East Asian ideograph - - - 223C71 - 689B - E6A29B - East Asian ideograph - - - 223C72 - 687E - E6A1BE - East Asian ideograph - - - 223C74 - 68B6 - E6A2B6 - East Asian ideograph - - - 223C76 - 6882 - E6A282 - East Asian ideograph - - - 223C7A - 6890 - E6A290 - East Asian ideograph - - - 223D21 - 6872 - E6A1B2 - East Asian ideograph - - - 223D22 - 689C - E6A29C - East Asian ideograph - - - 223D25 - 686D - E6A1AD - East Asian ideograph - - - 223D2E - 68A9 - E6A2A9 - East Asian ideograph - - - 223D30 - 6898 - E6A298 - East Asian ideograph - - - 223D32 - 688B - E6A28B - East Asian ideograph - - - 223D33 - 68A0 - E6A2A0 - East Asian ideograph - - - 223D34 - 686F - E6A1AF - East Asian ideograph - - - 223D39 - 68A3 - E6A2A3 - East Asian ideograph - - - 223D3B - 6874 - E6A1B4 - East Asian ideograph - - - 223D3C - 6875 - E6A1B5 - East Asian ideograph - - - 223D3F - 6877 - E6A1B7 - East Asian ideograph - - - 223D40 - 688F - E6A28F - East Asian ideograph - - - 223D43 - 687B - E6A1BB - East Asian ideograph - - - 223D44 - 688E - E6A28E - East Asian ideograph - - - 223D4B - 68B4 - E6A2B4 - East Asian ideograph - - - 223D50 - 692C - E6A4AC - East Asian ideograph - - - 223D51 - 6917 - E6A497 - East Asian ideograph - - - 223D53 - 690C - E6A48C - East Asian ideograph - - - 223D56 - 690B - E6A48B - East Asian ideograph - - - 223D58 - 68D3 - E6A393 - East Asian ideograph - - - 223D59 - 6904 - E6A484 - East Asian ideograph - - - 223D5B - 690A - E6A48A - East Asian ideograph - - - 223D5C - 6909 - E6A489 - East Asian ideograph - - - 223D5D - 6929 - E6A4A9 - East Asian ideograph - - - 223D62 - 68EC - E6A3AC - East Asian ideograph - - - 223D63 - 692A - E6A4AA - East Asian ideograph - - - 223D64 - 68EA - E6A3AA - East Asian ideograph - - - 223D65 - 681F - E6A09F - East Asian ideograph - - - 223D66 - 7439 - E790B9 - East Asian ideograph - - - 223D6A - 6910 - E6A490 - East Asian ideograph - - - 223D6E - 68D6 - E6A396 - East Asian ideograph - - - 223D6F - 68EB - E6A3AB - East Asian ideograph - - - 223D73 - 68F1 - E6A3B1 - East Asian ideograph - - - 223D78 - 68FD - E6A3BD - East Asian ideograph - - - 223D79 - 68FC - E6A3BC - East Asian ideograph - - - 223D7B - 68F3 - E6A3B3 - East Asian ideograph - - - 223D7C - 6913 - E6A493 - East Asian ideograph - - - 223E21 - 6907 - E6A487 - East Asian ideograph - - - 223E23 - 691A - E6A49A - East Asian ideograph - - - 223E24 - 6919 - E6A499 - East Asian ideograph - - - 223E2A - 68DE - E6A39E - East Asian ideograph - - - 223E2B - 691B - E6A49B - East Asian ideograph - - - 223E2D - 68FB - E6A3BB - East Asian ideograph - - - 223E33 - 68E1 - E6A3A1 - East Asian ideograph - - - 223E37 - 68D1 - E6A391 - East Asian ideograph - - - 223E38 - 68D0 - E6A390 - East Asian ideograph - - - 223E39 - 6908 - E6A488 - East Asian ideograph - - - 223E3E - 68E8 - E6A3A8 - East Asian ideograph - - - 223E3F - 68F0 - E6A3B0 - East Asian ideograph - - - 223E40 - 68C3 - E6A383 - East Asian ideograph - - - 223E44 - 6911 - E6A491 - East Asian ideograph - - - 223E46 - 68D4 - E6A394 - East Asian ideograph - - - 223E47 - 68EF - E6A3AF - East Asian ideograph - - - 223E49 - 68C6 - E6A386 - East Asian ideograph - - - 223E4B - 68C7 - E6A387 - East Asian ideograph - - - 223E53 - 6974 - E6A5B4 - East Asian ideograph - - - 223E55 - 6938 - E6A4B8 - East Asian ideograph - - - 223E58 - 6962 - E6A5A2 - East Asian ideograph - - - 223E5D - 6958 - E6A598 - East Asian ideograph - - - 223E5F - 6957 - E6A597 - East Asian ideograph - - - 223E60 - 693F - E6A4BF - East Asian ideograph - - - 223E61 - 6971 - E6A5B1 - East Asian ideograph - - - 223E64 - 6945 - E6A585 - East Asian ideograph - - - 223E65 - 695D - E6A59D - East Asian ideograph - - - 223E66 - 6932 - E6A4B2 - East Asian ideograph - - - 223E69 - 696E - E6A5AE - East Asian ideograph - - - 223E6A - 6963 - E6A5A3 - East Asian ideograph - - - 223E6B - 6948 - E6A588 - East Asian ideograph - - - 223E6E - 6939 - E6A4B9 - East Asian ideograph - - - 223E70 - 696A - E6A5AA - East Asian ideograph - - - 223E73 - 6937 - E6A4B7 - East Asian ideograph - - - 223E7A - 696C - E6A5AC - East Asian ideograph - - - 223E7B - 694E - E6A58E - East Asian ideograph - - - 223E7D - 6980 - E6A680 - East Asian ideograph - - - 223E7E - 6933 - E6A4B3 - East Asian ideograph - - - 223F21 - 6952 - E6A592 - East Asian ideograph - - - 223F25 - 695B - E6A59B - East Asian ideograph - - - 223F2D - 6985 - E6A685 - East Asian ideograph - - - 223F32 - 693D - E6A4BD - East Asian ideograph - - - 223F35 - 6978 - E6A5B8 - East Asian ideograph - - - 223F37 - 697B - E6A5BB - East Asian ideograph - - - 223F3A - 6934 - E6A4B4 - East Asian ideograph - - - 223F3B - 6969 - E6A5A9 - East Asian ideograph - - - 223F3D - 6944 - E6A584 - East Asian ideograph - - - 223F3E - 696F - E6A5AF - East Asian ideograph - - - 223F44 - 698A - E6A68A - East Asian ideograph - - - 223F45 - 69A0 - E6A6A0 - East Asian ideograph - - - 223F46 - 69B1 - E6A6B1 - East Asian ideograph - - - 223F50 - 69CE - E6A78E - East Asian ideograph - - - 223F51 - 69CA - E6A78A - East Asian ideograph - - - 223F59 - 698D - E6A68D - East Asian ideograph - - - 223F5A - 6991 - E6A691 - East Asian ideograph - - - 223F5C - 69AA - E6A6AA - East Asian ideograph - - - 223F60 - 69BC - E6A6BC - East Asian ideograph - - - 223F61 - 69A7 - E6A6A7 - East Asian ideograph - - - 223F65 - 699E - E6A69E - East Asian ideograph - - - 223F68 - 69D9 - E6A799 - East Asian ideograph - - - 223F6A - 698E - E6A68E - East Asian ideograph - - - 223F6D - 69D6 - E6A796 - East Asian ideograph - - - 223F75 - 69A5 - E6A6A5 - East Asian ideograph - - - 223F77 - 69BE - E6A6BE - East Asian ideograph - - - 223F78 - 69D1 - E6A791 - East Asian ideograph - - - 223F7A - 69F6 - E6A7B6 - East Asian ideograph - - - 223F7E - 69D5 - E6A795 - East Asian ideograph - - - 224027 - 69BF - E6A6BF - East Asian ideograph - - - 22402D - 69A3 - E6A6A3 - East Asian ideograph - - - 22402E - 69A4 - E6A6A4 - East Asian ideograph - - - 224034 - 69D4 - E6A794 - East Asian ideograph - - - 224038 - 69C3 - E6A783 - East Asian ideograph - - - 22403D - 6A12 - E6A892 - East Asian ideograph - - - 22403E - 6A11 - E6A891 - East Asian ideograph - - - 224041 - 6A00 - E6A880 - East Asian ideograph - - - 224046 - 69E6 - E6A7A6 - East Asian ideograph - - - 22404B - 6A0B - E6A88B - East Asian ideograph - - - 22404C - 69E5 - E6A7A5 - East Asian ideograph - - - 22404D - 69E9 - E6A7A9 - East Asian ideograph - - - 224050 - 69FC - E6A7BC - East Asian ideograph - - - 224054 - 6A17 - E6A897 - East Asian ideograph - - - 224056 - 69E7 - E6A7A7 - East Asian ideograph - - - 224057 - 69EB - E6A7AB - East Asian ideograph - - - 22405B - 69F1 - E6A7B1 - East Asian ideograph - - - 22405E - 6A2B - E6A8AB - East Asian ideograph - - - 22405F - 69FF - E6A7BF - East Asian ideograph - - - 224060 - 6A20 - E6A8A0 - East Asian ideograph - - - 224064 - 69ED - E6A7AD - East Asian ideograph - - - 224067 - 6A1B - E6A89B - East Asian ideograph - - - 224068 - 6A2D - E6A8AD - East Asian ideograph - - - 22406E - 6A18 - E6A898 - East Asian ideograph - - - 224072 - 6A1D - E6A89D - East Asian ideograph - - - 224075 - 6A0C - E6A88C - East Asian ideograph - - - 224076 - 6A0F - E6A88F - East Asian ideograph - - - 22407C - 69EE - E6A7AE - East Asian ideograph - - - 224123 - 69F0 - E6A7B0 - East Asian ideograph - - - 224124 - 69F2 - E6A7B2 - East Asian ideograph - - - 224128 - 6A14 - E6A894 - East Asian ideograph - - - 224129 - 6A63 - E6A9A3 - East Asian ideograph - - - 224137 - 6A67 - E6A9A7 - East Asian ideograph - - - 224139 - 6A43 - E6A983 - East Asian ideograph - - - 22413A - 6A33 - E6A8B3 - East Asian ideograph - - - 22413B - 6A32 - E6A8B2 - East Asian ideograph - - - 22413C - 6A5A - E6A99A - East Asian ideograph - - - 22413F - 6A28 - E6A8A8 - East Asian ideograph - - - 224140 - 6A48 - E6A988 - East Asian ideograph - - - 224141 - 6A50 - E6A990 - East Asian ideograph - - - 224142 - 6A52 - E6A992 - East Asian ideograph - - - 224143 - 6A72 - E6A9B2 - East Asian ideograph - - - 224145 - 6A3E - E6A8BE - East Asian ideograph - - - 224146 - 6A77 - E6A9B7 - East Asian ideograph - - - 224147 - 6A5B - E6A99B - East Asian ideograph - - - 22414A - 6A5E - E6A99E - East Asian ideograph - - - 22414B - 6A5C - E6A99C - East Asian ideograph - - - 22414F - 6A51 - E6A991 - East Asian ideograph - - - 224151 - 6A56 - E6A996 - East Asian ideograph - - - 224153 - 6A36 - E6A8B6 - East Asian ideograph - - - 224156 - 6A7A - E6A9BA - East Asian ideograph - - - 224158 - 6A3F - E6A8BF - East Asian ideograph - - - 22416C - 69F9 - E6A7B9 - East Asian ideograph - - - 22416D - 6A64 - E6A9A4 - East Asian ideograph - - - 224173 - 6A8D - E6AA8D - East Asian ideograph - - - 224175 - 6AA8 - E6AAA8 - East Asian ideograph - - - 224177 - 6AA5 - E6AAA5 - East Asian ideograph - - - 224179 - 6A96 - E6AA96 - East Asian ideograph - - - 22417E - 6A7D - E6A9BD - East Asian ideograph - - - 224222 - 6A7F - E6A9BF - East Asian ideograph - - - 224223 - 6A89 - E6AA89 - East Asian ideograph - - - 224224 - 6A91 - E6AA91 - East Asian ideograph - - - 224226 - 6A9F - E6AA9F - East Asian ideograph - - - 22422A - 6A92 - E6AA92 - East Asian ideograph - - - 22422B - 6AA3 - E6AAA3 - East Asian ideograph - - - 224234 - 6A99 - E6AA99 - East Asian ideograph - - - 224235 - 6A9D - E6AA9D - East Asian ideograph - - - 224236 - 6A7E - E6A9BE - East Asian ideograph - - - 224237 - 6A9B - E6AA9B - East Asian ideograph - - - 224242 - 6AA0 - E6AAA0 - East Asian ideograph - - - 224247 - 6A90 - E6AA90 - East Asian ideograph - - - 224249 - 6A9E - E6AA9E - East Asian ideograph - - - 22424A - 6A87 - E6AA87 - East Asian ideograph - - - 22424B - 6A8E - E6AA8E - East Asian ideograph - - - 224251 - 6AAB - E6AAAB - East Asian ideograph - - - 224255 - 6AC8 - E6AB88 - East Asian ideograph - - - 224257 - 6AAE - E6AAAE - East Asian ideograph - - - 22425D - 6ABF - E6AABF - East Asian ideograph - - - 224264 - 6ACA - E6AB8A - East Asian ideograph - - - 224268 - 6AB4 - E6AAB4 - East Asian ideograph - - - 224279 - 6AE6 - E6ABA6 - East Asian ideograph - - - 22427E - 6AED - E6ABAD - East Asian ideograph - - - 224325 - 6ACC - E6AB8C - East Asian ideograph - - - 224328 - 6AD1 - E6AB91 - East Asian ideograph - - - 224333 - 6ADF - E6AB9F - East Asian ideograph - - - 224334 - 6ACD - E6AB8D - East Asian ideograph - - - 224335 - 6ADE - E6AB9E - East Asian ideograph - - - 224337 - 6AEC - E6ABAC - East Asian ideograph - - - 224339 - 6AF3 - E6ABB3 - East Asian ideograph - - - 22433A - 6AE7 - E6ABA7 - East Asian ideograph - - - 22433F - 6AEB - E6ABAB - East Asian ideograph - - - 224340 - 6AEA - E6ABAA - East Asian ideograph - - - 224344 - 6AF1 - E6ABB1 - East Asian ideograph - - - 224345 - 6AE8 - E6ABA8 - East Asian ideograph - - - 224348 - 6AF5 - E6ABB5 - East Asian ideograph - - - 22434E - 6AFD - E6ABBD - East Asian ideograph - - - 224350 - 6AFA - E6ABBA - East Asian ideograph - - - 224352 - 6B01 - E6AC81 - East Asian ideograph - - - 224358 - 6B03 - E6AC83 - East Asian ideograph - - - 224359 - 6AF8 - E6ABB8 - East Asian ideograph - - - 22435F - 6B0D - E6AC8D - East Asian ideograph - - - 224360 - 6B09 - E6AC89 - East Asian ideograph - - - 224361 - 6B0E - E6AC8E - East Asian ideograph - - - 224367 - 6B11 - E6AC91 - East Asian ideograph - - - 22436D - 6B19 - E6AC99 - East Asian ideograph - - - 22436E - 6B17 - E6AC97 - East Asian ideograph - - - 224372 - 6B1E - E6AC9E - East Asian ideograph - - - 22437E - 6B2C - E6ACAC - East Asian ideograph - - - 22442A - 6B35 - E6ACB5 - East Asian ideograph - - - 22442C - 6B37 - E6ACB7 - East Asian ideograph - - - 22442D - 6B3B - E6ACBB - East Asian ideograph - - - 224432 - 6B39 - E6ACB9 - East Asian ideograph - - - 224435 - 6B3F - E6ACBF - East Asian ideograph - - - 224437 - 6B46 - E6AD86 - East Asian ideograph - - - 224438 - 6B41 - E6AD81 - East Asian ideograph - - - 22443A - 6B40 - E6AD80 - East Asian ideograph - - - 22443B - 6B42 - E6AD82 - East Asian ideograph - - - 22443C - 6B43 - E6AD83 - East Asian ideograph - - - 22443E - 6B48 - E6AD88 - East Asian ideograph - - - 22443F - 6B4A - E6AD8A - East Asian ideograph - - - 224446 - 6B4E - E6AD8E - East Asian ideograph (variant of EACC 4C4446) - - - 22444A - 6B57 - E6AD97 - East Asian ideograph - - - 22444C - 6B54 - E6AD94 - East Asian ideograph - - - 22444E - 6B55 - E6AD95 - East Asian ideograph - - - 224451 - 6B5C - E6AD9C - East Asian ideograph - - - 224453 - 6B5E - E6AD9E - East Asian ideograph - - - 224454 - 6B60 - E6ADA0 - East Asian ideograph - - - 22445B - 6B6B - E6ADAB - East Asian ideograph - - - 22445D - 6B6C - E6ADAC - East Asian ideograph - - - 22445F - 6B6E - E6ADAE - East Asian ideograph - - - 224461 - 6B71 - E6ADB1 - East Asian ideograph - - - 22446B - 6B7E - E6ADBE - East Asian ideograph - - - 224471 - 6B82 - E6AE82 - East Asian ideograph - - - 224473 - 6B84 - E6AE84 - East Asian ideograph - - - 224479 - 6B8D - E6AE8D - East Asian ideograph - - - 22447B - 6B95 - E6AE95 - East Asian ideograph - - - 224525 - 6B99 - E6AE99 - East Asian ideograph - - - 224529 - 6B9B - E6AE9B - East Asian ideograph - - - 224535 - 6BA3 - E6AEA3 - East Asian ideograph - - - 224536 - 6BA2 - E6AEA2 - East Asian ideograph - - - 224538 - 6BAA - E6AEAA - East Asian ideograph - - - 224539 - 6BAB - E6AEAB - East Asian ideograph - - - 22453B - 6BAD - E6AEAD - East Asian ideograph - - - 22453D - 6BB0 - E6AEB0 - East Asian ideograph - - - 22453F - 6BB3 - E6AEB3 - East Asian ideograph - - - 224547 - 6BBD - E6AEBD - East Asian ideograph - - - 22454D - 6996 - E6A696 - East Asian ideograph - - - 224554 - 6BC8 - E6AF88 - East Asian ideograph - - - 22455B - 6BD6 - E6AF96 - East Asian ideograph - - - 224560 - 6BDA - E6AF9A - East Asian ideograph - - - 224562 - 6BDC - E6AF9C - East Asian ideograph - - - 224563 - 6BDD - E6AF9D - East Asian ideograph - - - 224565 - 6BDF - E6AF9F - East Asian ideograph - - - 22456F - 6BE7 - E6AFA7 - East Asian ideograph - - - 224570 - 6BEA - E6AFAA - East Asian ideograph - - - 224571 - 6BE8 - E6AFA8 - East Asian ideograph - - - 22462A - 6BF6 - E6AFB6 - East Asian ideograph - - - 22462C - 6BF3 - E6AFB3 - East Asian ideograph - - - 224633 - 6BF8 - E6AFB8 - East Asian ideograph - - - 224637 - 6BFA - E6AFBA - East Asian ideograph - - - 224638 - 6BF9 - E6AFB9 - East Asian ideograph - - - 224642 - 6BFF - E6AFBF - East Asian ideograph - - - 224644 - 6C06 - E6B086 - East Asian ideograph - - - 224648 - 6C04 - E6B084 - East Asian ideograph - - - 22464A - 6C05 - E6B085 - East Asian ideograph - - - 22464C - 6C08 - E6B088 - East Asian ideograph - - - 224651 - 6C0C - E6B08C - East Asian ideograph - - - 224652 - 6C0D - E6B08D - East Asian ideograph - - - 224659 - 6C15 - E6B095 - East Asian ideograph - - - 22465A - 6C18 - E6B098 - East Asian ideograph - - - 22465B - 6C19 - E6B099 - East Asian ideograph - - - 22465C - 6C1A - E6B09A - East Asian ideograph - - - 22465E - 6C1D - E6B09D - East Asian ideograph - - - 224660 - 6C20 - E6B0A0 - East Asian ideograph - - - 224662 - 6C21 - E6B0A1 - East Asian ideograph - - - 224664 - 6C2A - E6B0AA - East Asian ideograph - - - 224666 - 6C2D - E6B0AD - East Asian ideograph - - - 224667 - 6C30 - E6B0B0 - East Asian ideograph - - - 224668 - 6C2C - E6B0AC - East Asian ideograph - - - 224669 - 6C31 - E6B0B1 - East Asian ideograph - - - 224670 - 6C3B - E6B0BB - East Asian ideograph - - - 224674 - 6C3F - E6B0BF - East Asian ideograph - - - 224678 - 6C46 - E6B186 - East Asian ideograph - - - 22467A - 6C52 - E6B192 - East Asian ideograph - - - 22467B - 6C62 - E6B1A2 - East Asian ideograph - - - 22467C - 6C4A - E6B18A - East Asian ideograph - - - 224724 - 6C5C - E6B19C - East Asian ideograph - - - 224726 - 6C5B - E6B19B - East Asian ideograph - - - 224727 - 6C4D - E6B18D - East Asian ideograph - - - 22472B - 6C4B - E6B18B - East Asian ideograph - - - 22472C - 6C54 - E6B194 - East Asian ideograph - - - 22472D - 6C63 - E6B1A3 - East Asian ideograph - - - 224730 - 6C78 - E6B1B8 - East Asian ideograph - - - 224731 - 6C74 - E6B1B4 - East Asian ideograph - - - 224732 - 6C86 - E6B286 - East Asian ideograph - - - 224733 - 6C76 - E6B1B6 - East Asian ideograph - - - 224738 - 6C6C - E6B1AC - East Asian ideograph - - - 224739 - 6C67 - E6B1A7 - East Asian ideograph - - - 22473B - 6C84 - E6B284 - East Asian ideograph - - - 22473E - 6C94 - E6B294 - East Asian ideograph - - - 224740 - 6C8F - E6B28F - East Asian ideograph - - - 224742 - 6C65 - E6B1A5 - East Asian ideograph - - - 224747 - 6C6F - E6B1AF - East Asian ideograph - - - 224749 - 6C9D - E6B29D - East Asian ideograph - - - 22474A - 6C69 - E6B1A9 - East Asian ideograph - - - 22474B - 6C9A - E6B29A - East Asian ideograph - - - 22474C - 6C6D - E6B1AD - East Asian ideograph - - - 22474D - 6C93 - E6B293 - East Asian ideograph - - - 224751 - 6C87 - E6B287 - East Asian ideograph - - - 224752 - 6C6E - E6B1AE - East Asian ideograph - - - 224756 - 6C95 - E6B295 - East Asian ideograph - - - 22475A - 6C82 - E6B282 - East Asian ideograph - - - 22475C - 6CA0 - E6B2A0 - East Asian ideograph - - - 224762 - 6CEB - E6B3AB - East Asian ideograph - - - 224763 - 6CEE - E6B3AE - East Asian ideograph - - - 224764 - 6CC0 - E6B380 - East Asian ideograph - - - 224766 - 6CEF - E6B3AF - East Asian ideograph - - - 224767 - 6CAC - E6B2AC - East Asian ideograph - - - 22476E - 6CAD - E6B2AD - East Asian ideograph (variant of EACC 4C476E) - - - 224770 - 6CAF - E6B2AF - East Asian ideograph - - - 224772 - 6CF5 - E6B3B5 - East Asian ideograph - - - 22477A - 6CBA - E6B2BA - East Asian ideograph - - - 22477B - 7553 - E79593 - East Asian ideograph - - - 22477D - 6CC2 - E6B382 - East Asian ideograph - - - 224824 - 6CD8 - E6B398 - East Asian ideograph - - - 224826 - 6CC6 - E6B386 - East Asian ideograph - - - 224828 - 6CCE - E6B38E - East Asian ideograph - - - 224829 - 6CE9 - E6B3A9 - East Asian ideograph - - - 22482D - 6CF2 - E6B3B2 - East Asian ideograph - - - 22482F - 6CE0 - E6B3A0 - East Asian ideograph - - - 224830 - 6CD1 - E6B391 - East Asian ideograph - - - 224832 - 6CD2 - E6B392 - East Asian ideograph - - - 224833 - 6CB4 - E6B2B4 - East Asian ideograph - - - 224837 - 6D1D - E6B49D - East Asian ideograph - - - 22483B - 6D28 - E6B4A8 - East Asian ideograph - - - 224844 - 6D39 - E6B4B9 - East Asian ideograph - - - 22484D - 6D26 - E6B4A6 - East Asian ideograph - - - 22484E - 6D27 - E6B4A7 - East Asian ideograph - - - 22484F - 6D0F - E6B48F - East Asian ideograph - - - 224850 - 6D0A - E6B48A - East Asian ideograph - - - 224851 - 6D3F - E6B4BF - East Asian ideograph - - - 22485A - 6D07 - E6B487 - East Asian ideograph - - - 22485B - 6D04 - E6B484 - East Asian ideograph - - - 22485C - 6CDA - E6B39A - East Asian ideograph - - - 224860 - 6D2E - E6B4AE - East Asian ideograph - - - 224861 - 6D35 - E6B4B5 - East Asian ideograph - - - 224862 - 6D3A - E6B4BA - East Asian ideograph - - - 224864 - 6D19 - E6B499 - East Asian ideograph - - - 224867 - 6D0E - E6B48E - East Asian ideograph - - - 22486A - 6D2B - E6B4AB - East Asian ideograph - - - 22486B - 6D11 - E6B491 - East Asian ideograph - - - 22486C - 6D00 - E6B480 - East Asian ideograph - - - 22486D - 6D24 - E6B4A4 - East Asian ideograph - - - 22486F - 6D33 - E6B4B3 - East Asian ideograph - - - 224873 - 6D63 - E6B5A3 - East Asian ideograph - - - 224877 - 6DA5 - E6B6A5 - East Asian ideograph - - - 22487D - 6D92 - E6B692 - East Asian ideograph - - - 224925 - 6D6D - E6B5AD - East Asian ideograph - - - 224926 - 6D6F - E6B5AF - East Asian ideograph - - - 224928 - 6D61 - E6B5A1 - East Asian ideograph - - - 224929 - 6D91 - E6B691 - East Asian ideograph - - - 22492C - 6D81 - E6B681 - East Asian ideograph - - - 22492E - 6D8A - E6B68A - East Asian ideograph - - - 22492F - 6D34 - E6B4B4 - East Asian ideograph (variant of EACC 34492F) - - - 224934 - 6D79 - E6B5B9 - East Asian ideograph - - - 224935 - 6DEF - E6B7AF - East Asian ideograph - - - 224939 - 6D7F - E6B5BF - East Asian ideograph - - - 22493B - 6D85 - E6B685 - East Asian ideograph - - - 22493C - 6D65 - E6B5A5 - East Asian ideograph - - - 22493E - 6D5E - E6B59E - East Asian ideograph - - - 224940 - 6D67 - E6B5A7 - East Asian ideograph - - - 224943 - 6D94 - E6B694 - East Asian ideograph - - - 224946 - 6D60 - E6B5A0 - East Asian ideograph - - - 224948 - 6D98 - E6B698 - East Asian ideograph - - - 22494B - 6D7C - E6B5BC - East Asian ideograph - - - 22494C - 6D70 - E6B5B0 - East Asian ideograph - - - 22494F - 6D96 - E6B696 - East Asian ideograph - - - 224959 - 6DAB - E6B6AB - East Asian ideograph - - - 22495A - 6DB4 - E6B6B4 - East Asian ideograph - - - 22495C - 6DAA - E6B6AA - East Asian ideograph - - - 224960 - 6DEC - E6B7AC - East Asian ideograph - - - 22496A - 6DAC - E6B6AC - East Asian ideograph - - - 22496B - 6DB7 - E6B6B7 - East Asian ideograph - - - 22496C - 6DE2 - E6B7A2 - East Asian ideograph - - - 22496D - 6DD5 - E6B795 - East Asian ideograph - - - 22496E - 6DE9 - E6B7A9 - East Asian ideograph - - - 224971 - 6DF6 - E6B7B6 - East Asian ideograph - - - 224979 - 6E0F - E6B88F - East Asian ideograph - - - 22497B - 6DBF - E6B6BF - East Asian ideograph - - - 224A2A - 6DDF - E6B79F - East Asian ideograph - - - 224A2D - 6DD3 - E6B793 - East Asian ideograph - - - 224A32 - 6DFC - E6B7BC - East Asian ideograph - - - 224A35 - 6DDD - E6B79D - East Asian ideograph - - - 224A36 - 6DDC - E6B79C - East Asian ideograph - - - 224A39 - 6DDB - E6B79B - East Asian ideograph - - - 224A3D - 6DA4 - E6B6A4 - East Asian ideograph - - - 224A44 - 6E12 - E6B892 - East Asian ideograph - - - 224A46 - 6DF0 - E6B7B0 - East Asian ideograph - - - 224A4A - 6DE6 - E6B7A6 - East Asian ideograph - - - 224A4C - 6E1F - E6B89F - East Asian ideograph - - - 224A50 - 6E27 - E6B8A7 - East Asian ideograph - - - 224A55 - 6E49 - E6B989 - East Asian ideograph - - - 224A58 - 6E3C - E6B8BC - East Asian ideograph - - - 224A60 - 6E8A - E6BA8A - East Asian ideograph - - - 224A62 - 6E4B - E6B98B - East Asian ideograph - - - 224A66 - 6E62 - E6B9A2 - East Asian ideograph - - - 224A6A - 6E51 - E6B991 - East Asian ideograph - - - 224A6B - 6E44 - E6B984 - East Asian ideograph - - - 224A6D - 6E63 - E6B9A3 - East Asian ideograph - - - 224A71 - 6E73 - E6B9B3 - East Asian ideograph - - - 224A74 - 6E4F - E6B98F - East Asian ideograph - - - 224A77 - 6E4E - E6B98E - East Asian ideograph - - - 224B22 - 6E28 - E6B8A8 - East Asian ideograph - - - 224B24 - 6E5C - E6B99C - East Asian ideograph - - - 224B26 - 6E31 - E6B8B1 - East Asian ideograph - - - 224B28 - 6E5E - E6B99E - East Asian ideograph - - - 224B2C - 6E84 - E6BA84 - East Asian ideograph - - - 224B2E - 6E2E - E6B8AE - East Asian ideograph - - - 224B30 - 6E36 - E6B8B6 - East Asian ideograph - - - 224B31 - 6E5D - E6B99D - East Asian ideograph - - - 224B32 - 6E72 - E6B9B2 - East Asian ideograph - - - 224B33 - 6E30 - E6B8B0 - East Asian ideograph - - - 224B34 - 6E53 - E6B993 - East Asian ideograph - - - 224B36 - 6E39 - E6B8B9 - East Asian ideograph - - - 224B37 - 6E71 - E6B9B1 - East Asian ideograph - - - 224B38 - 6E69 - E6B9A9 - East Asian ideograph - - - 224B39 - 6E6B - E6B9AB - East Asian ideograph - - - 224B3B - 6E8B - E6BA8B - East Asian ideograph - - - 224B3E - 6E76 - E6B9B6 - East Asian ideograph - - - 224B40 - 6E2A - E6B8AA - East Asian ideograph - - - 224B41 - 6E4C - E6B98C - East Asian ideograph - - - 224B42 - 6E22 - E6B8A2 - East Asian ideograph - - - 224B43 - 6ECE - E6BB8E - East Asian ideograph - - - 224B45 - 6E9B - E6BA9B - East Asian ideograph - - - 224B46 - 6E9F - E6BA9F - East Asian ideograph - - - 224B48 - 6EC8 - E6BB88 - East Asian ideograph - - - 224B49 - 6ED8 - E6BB98 - East Asian ideograph - - - 224B4A - 6E8F - E6BA8F - East Asian ideograph - - - 224B4D - 6E93 - E6BA93 - East Asian ideograph - - - 224B4F - 6EA0 - E6BAA0 - East Asian ideograph - - - 224B51 - 6EB1 - E6BAB1 - East Asian ideograph - - - 224B57 - 6EA8 - E6BAA8 - East Asian ideograph - - - 224B59 - 6E92 - E6BA92 - East Asian ideograph - - - 224B5A - 6EA7 - E6BAA7 - East Asian ideograph - - - 224B5E - 6E8E - E6BA8E - East Asian ideograph - - - 224B60 - 6ED9 - E6BB99 - East Asian ideograph - - - 224B61 - 6EBD - E6BABD - East Asian ideograph - - - 224B63 - 6EC1 - E6BB81 - East Asian ideograph - - - 224B69 - 6EBB - E6BABB - East Asian ideograph - - - 224B6A - 6EC9 - E6BB89 - East Asian ideograph - - - 224B6C - 6EB3 - E6BAB3 - East Asian ideograph - - - 224B6D - 6EB7 - E6BAB7 - East Asian ideograph - - - 224B75 - 6EA4 - E6BAA4 - East Asian ideograph - - - 224B79 - 6ECF - E6BB8F - East Asian ideograph - - - 224B7C - 6ECA - E6BB8A - East Asian ideograph - - - 224B7D - 6ED5 - E6BB95 - East Asian ideograph - - - 224C21 - 6EC3 - E6BB83 - East Asian ideograph - - - 224C24 - 6EB4 - E6BAB4 - East Asian ideograph - - - 224C26 - 6EB2 - E6BAB2 - East Asian ideograph - - - 224C29 - 6EB5 - E6BAB5 - East Asian ideograph - - - 224C2E - 6EF8 - E6BBB8 - East Asian ideograph - - - 224C30 - 6F37 - E6BCB7 - East Asian ideograph - - - 224C34 - 6EFD - E6BBBD - East Asian ideograph - - - 224C35 - 6F09 - E6BC89 - East Asian ideograph - - - 224C3C - 6F3B - E6BCBB - East Asian ideograph - - - 224C3D - 6F63 - E6BDA3 - East Asian ideograph - - - 224C3E - 6F12 - E6BC92 - East Asian ideograph - - - 224C3F - 6F26 - E6BCA6 - East Asian ideograph - - - 224C41 - 6F1A - E6BC9A - East Asian ideograph - - - 224C42 - 6EF6 - E6BBB6 - East Asian ideograph - - - 224C43 - 6F19 - E6BC99 - East Asian ideograph - - - 224C44 - 6F00 - E6BC80 - East Asian ideograph - - - 224C4B - 6F24 - E6BCA4 - East Asian ideograph - - - 224C51 - 6F18 - E6BC98 - East Asian ideograph - - - 224C57 - 6F1F - E6BC9F - East Asian ideograph - - - 224C5A - 6F0A - E6BC8A - East Asian ideograph - - - 224C5E - 6F36 - E6BCB6 - East Asian ideograph - - - 224C60 - 6EF9 - E6BBB9 - East Asian ideograph - - - 224C61 - 6EEE - E6BBAE - East Asian ideograph - - - 224C62 - 6F41 - E6BD81 - East Asian ideograph - - - 224C64 - 6F95 - E6BE95 - East Asian ideograph - - - 224C65 - 6F2D - E6BCAD - East Asian ideograph - - - 224C67 - 6F34 - E6BCB4 - East Asian ideograph - - - 224C6B - 6F49 - E6BD89 - East Asian ideograph - - - 224C6D - 6F30 - E6BCB0 - East Asian ideograph - - - 224C76 - 6EFA - E6BBBA - East Asian ideograph - - - 224C77 - 6EEB - E6BBAB - East Asian ideograph - - - 224C78 - 6F08 - E6BC88 - East Asian ideograph - - - 224C79 - 6F0E - E6BC8E - East Asian ideograph - - - 224C7B - 6F35 - E6BCB5 - East Asian ideograph - - - 224D23 - 6F7E - E6BDBE - East Asian ideograph - - - 224D24 - 6F9D - E6BE9D - East Asian ideograph - - - 224D27 - 6F87 - E6BE87 - East Asian ideograph - - - 224D2B - 6F6F - E6BDAF - East Asian ideograph - - - 224D2F - 6F5A - E6BD9A - East Asian ideograph - - - 224D30 - 6F60 - E6BDA0 - East Asian ideograph - - - 224D35 - 6F90 - E6BE90 - East Asian ideograph - - - 224D37 - 6F8D - E6BE8D - East Asian ideograph - - - 224D39 - 6F92 - E6BE92 - East Asian ideograph - - - 224D3A - 6F89 - E6BE89 - East Asian ideograph - - - 224D3C - 6F8C - E6BE8C - East Asian ideograph - - - 224D3D - 6F62 - E6BDA2 - East Asian ideograph (variant of EACC 4C4D3D) - - - 224D44 - 6F0B - E6BC8B - East Asian ideograph - - - 224D4B - 6F6C - E6BDAC - East Asian ideograph - - - 224D4D - 6F8B - E6BE8B - East Asian ideograph - - - 224D58 - 6E88 - E6BA88 - East Asian ideograph - - - 224D5A - 6F55 - E6BD95 - East Asian ideograph - - - 224D5F - 6F72 - E6BDB2 - East Asian ideograph - - - 224D62 - 6F57 - E6BD97 - East Asian ideograph - - - 224D63 - 6F5F - E6BD9F - East Asian ideograph - - - 224D68 - 6F5D - E6BD9D - East Asian ideograph - - - 224D73 - 6FB6 - E6BEB6 - East Asian ideograph - - - 224D74 - 6F9F - E6BE9F - East Asian ideograph - - - 224D79 - 6FA6 - E6BEA6 - East Asian ideograph - - - 224D7C - 6FC6 - E6BF86 - East Asian ideograph - - - 224D7D - 6FBC - E6BEBC - East Asian ideograph - - - 224E21 - 6FAA - E6BEAA - East Asian ideograph - - - 224E25 - 6FBF - E6BEBF - East Asian ideograph - - - 224E26 - 6FC7 - E6BF87 - East Asian ideograph - - - 224E2D - 6FC9 - E6BF89 - East Asian ideograph - - - 224E2E - 6F5E - E6BD9E - East Asian ideograph - - - 224E2F - 6FC8 - E6BF88 - East Asian ideograph - - - 224E30 - 6FA0 - E6BEA0 - East Asian ideograph - - - 224E32 - 6FCA - E6BF8A - East Asian ideograph - - - 224E35 - 6FB4 - E6BEB4 - East Asian ideograph - - - 224E37 - 6FAF - E6BEAF - East Asian ideograph - - - 224E3C - 6FA8 - E6BEA8 - East Asian ideograph - - - 224E40 - 6FA5 - E6BEA5 - East Asian ideograph - - - 224E41 - 6FB0 - E6BEB0 - East Asian ideograph - - - 224E42 - 6FAE - E6BEAE - East Asian ideograph - - - 224E43 - 6FD9 - E6BF99 - East Asian ideograph - - - 224E44 - 6FDA - E6BF9A - East Asian ideograph - - - 224E50 - 6FD4 - E6BF94 - East Asian ideograph - - - 224E56 - 6FE9 - E6BFA9 - East Asian ideograph - - - 224E57 - 6FF8 - E6BFB8 - East Asian ideograph - - - 224E5D - 6FDE - E6BF9E - East Asian ideograph - - - 224E5E - 6FEE - E6BFAE - East Asian ideograph - - - 224E62 - 6FF0 - E6BFB0 - East Asian ideograph - - - 224E66 - 7005 - E78085 - East Asian ideograph - - - 224E67 - 700C - E7808C - East Asian ideograph - - - 224E6A - 700D - E7808D - East Asian ideograph - - - 224E72 - 7026 - E780A6 - East Asian ideograph - - - 224F24 - 7020 - E780A0 - East Asian ideograph - - - 224F26 - 7027 - E780A7 - East Asian ideograph - - - 224F2B - 701E - E7809E - East Asian ideograph (variant of EACC 4C4F2B) - - - 224F2F - 702E - E780AE - East Asian ideograph - - - 224F31 - 702D - E780AD - East Asian ideograph - - - 224F35 - 7021 - E780A1 - East Asian ideograph - - - 224F39 - 7018 - E78098 - East Asian ideograph - - - 224F3A - 7023 - E780A3 - East Asian ideograph - - - 224F41 - 703C - E780BC - East Asian ideograph - - - 224F44 - 7035 - E780B5 - East Asian ideograph - - - 224F51 - 7034 - E780B4 - East Asian ideograph - - - 224F53 - 7039 - E780B9 - East Asian ideograph - - - 224F54 - 703A - E780BA - East Asian ideograph - - - 224F5D - 7043 - E78183 - East Asian ideograph - - - 224F61 - 7044 - E78184 - East Asian ideograph - - - 224F67 - 7047 - E78187 - East Asian ideograph - - - 224F69 - 7049 - E78189 - East Asian ideograph - - - 224F6B - 7055 - E78195 - East Asian ideograph - - - 224F71 - 7052 - E78192 - East Asian ideograph - - - 224F73 - 705C - E7819C - East Asian ideograph - - - 224F78 - 7059 - E78199 - East Asian ideograph - - - 224F7B - 705E - E7819E - East Asian ideograph - - - 224F7C - 7061 - E781A1 - East Asian ideograph - - - 224F7D - 705D - E7819D - East Asian ideograph - - - 225021 - 9E02 - E9B882 - East Asian ideograph - - - 225025 - 7066 - E781A6 - East Asian ideograph - - - 225027 - 7065 - E781A5 - East Asian ideograph - - - 225028 - 7068 - E781A8 - East Asian ideograph - - - 225029 - 7054 - E78194 - East Asian ideograph - - - 225039 - 7074 - E781B4 - East Asian ideograph - - - 22503B - 707A - E781BA - East Asian ideograph - - - 225040 - 7093 - E78293 - East Asian ideograph - - - 225042 - 7086 - E78286 - East Asian ideograph - - - 225048 - 7096 - E78296 - East Asian ideograph - - - 225049 - 7084 - E78284 - East Asian ideograph - - - 22504A - 7081 - E78281 - East Asian ideograph - - - 225056 - 7088 - E78288 - East Asian ideograph - - - 225057 - 7098 - E78298 - East Asian ideograph - - - 225059 - 708C - E7828C - East Asian ideograph - - - 22505C - 70B7 - E782B7 - East Asian ideograph - - - 225062 - 70A1 - E782A1 - East Asian ideograph - - - 225063 - 70A3 - E782A3 - East Asian ideograph - - - 225068 - 7551 - E79591 - East Asian ideograph - - - 22506F - 70A7 - E782A7 - East Asian ideograph - - - 225070 - 79CC - E7A78C - East Asian ideograph - - - 225071 - 70B5 - E782B5 - East Asian ideograph - - - 225072 - 70BF - E782BF - East Asian ideograph - - - 225073 - 70A9 - E782A9 - East Asian ideograph - - - 225078 - 70EA - E783AA - East Asian ideograph - - - 22507B - 70E5 - E783A5 - East Asian ideograph - - - 22507C - 70DC - E7839C - East Asian ideograph - - - 22507D - 70D3 - E78393 - East Asian ideograph - - - 225122 - 70DD - E7839D - East Asian ideograph - - - 225123 - 70E1 - E783A1 - East Asian ideograph - - - 225126 - 70E3 - E783A3 - East Asian ideograph - - - 225128 - 70E0 - E783A0 - East Asian ideograph - - - 22512B - 70D4 - E78394 - East Asian ideograph - - - 22512E - 70D1 - E78391 - East Asian ideograph - - - 225138 - 70CB - E7838B - East Asian ideograph - - - 22513A - 70D0 - E78390 - East Asian ideograph - - - 22513B - 70C7 - E78387 - East Asian ideograph - - - 22513C - 70DA - E7839A - East Asian ideograph - - - 22513D - 70C6 - E78386 - East Asian ideograph - - - 22513F - 70FA - E783BA - East Asian ideograph - - - 225142 - 70F7 - E783B7 - East Asian ideograph - - - 225144 - 7104 - E78484 - East Asian ideograph - - - 225148 - 70F3 - E783B3 - East Asian ideograph - - - 22514A - 7110 - E78490 - East Asian ideograph - - - 22514C - 7103 - E78483 - East Asian ideograph - - - 225150 - 70F4 - E783B4 - East Asian ideograph - - - 225155 - 7111 - E78491 - East Asian ideograph - - - 225156 - 7112 - E78492 - East Asian ideograph - - - 22515C - 710C - E7848C - East Asian ideograph - - - 225160 - 70F6 - E783B6 - East Asian ideograph - - - 225166 - 7113 - E78493 - East Asian ideograph - - - 225167 - 70EF - E783AF - East Asian ideograph - - - 225168 - 7100 - E78480 - East Asian ideograph - - - 22516C - 711E - E7849E - East Asian ideograph - - - 22516D - 7134 - E784B4 - East Asian ideograph - - - 22516E - 7120 - E784A0 - East Asian ideograph - - - 22516F - 713F - E784BF - East Asian ideograph - - - 225174 - 7131 - E784B1 - East Asian ideograph - - - 225175 - 712D - E784AD - East Asian ideograph - - - 225227 - 7139 - E784B9 - East Asian ideograph - - - 225228 - 7135 - E784B5 - East Asian ideograph - - - 22522C - 713B - E784BB - East Asian ideograph - - - 22522E - 711C - E7849C - East Asian ideograph - - - 225232 - 713D - E784BD - East Asian ideograph - - - 225235 - 712F - E784AF - East Asian ideograph - - - 22523B - 7129 - E784A9 - East Asian ideograph - - - 225243 - 712E - E784AE - East Asian ideograph - - - 225248 - 7177 - E785B7 - East Asian ideograph - - - 225251 - 7146 - E78586 - East Asian ideograph - - - 225252 - 7152 - E78592 - East Asian ideograph - - - 225254 - 714F - E7858F - East Asian ideograph - - - 225255 - 715D - E7859D - East Asian ideograph - - - 225256 - 7141 - E78581 - East Asian ideograph - - - 225257 - 7160 - E785A0 - East Asian ideograph - - - 225259 - 7175 - E785B5 - East Asian ideograph - - - 22525A - 7173 - E785B3 - East Asian ideograph - - - 22525C - 7143 - E78583 - East Asian ideograph - - - 22525D - 715A - E7859A - East Asian ideograph - - - 22525E - 7176 - E785B6 - East Asian ideograph - - - 225260 - 714B - E7858B - East Asian ideograph - - - 225262 - 7147 - E78587 - East Asian ideograph - - - 225265 - 7168 - E785A8 - East Asian ideograph - - - 225266 - 7171 - E785B1 - East Asian ideograph - - - 225267 - 715F - E7859F - East Asian ideograph - - - 225269 - 7150 - E78590 - East Asian ideograph - - - 22526B - 7153 - E78593 - East Asian ideograph - - - 225270 - 7144 - E78584 - East Asian ideograph - - - 225276 - 7172 - E785B2 - East Asian ideograph - - - 225278 - 7178 - E785B8 - East Asian ideograph - - - 22527B - 7187 - E78687 - East Asian ideograph - - - 22527C - 717B - E785BB - East Asian ideograph - - - 225323 - 7192 - E78692 - East Asian ideograph - - - 22532B - 7180 - E78680 - East Asian ideograph - - - 22532C - 7189 - E78689 - East Asian ideograph - - - 225332 - 7185 - E78685 - East Asian ideograph - - - 225333 - 7196 - E78696 - East Asian ideograph - - - 225336 - 717C - E785BC - East Asian ideograph - - - 225339 - 7198 - E78698 - East Asian ideograph - - - 22533C - 7197 - E78697 - East Asian ideograph - - - 22533E - 71B5 - E786B5 - East Asian ideograph - - - 22533F - 71A9 - E786A9 - East Asian ideograph - - - 225342 - 71A5 - E786A5 - East Asian ideograph - - - 225346 - 719E - E7869E - East Asian ideograph - - - 225347 - 71B2 - E786B2 - East Asian ideograph - - - 22534A - 719B - E7869B - East Asian ideograph - - - 22534E - 71AF - E786AF - East Asian ideograph - - - 225351 - 71A4 - E786A4 - East Asian ideograph - - - 225352 - 71A0 - E786A0 - East Asian ideograph - - - 225355 - 719A - E7869A - East Asian ideograph - - - 225357 - 71B3 - E786B3 - East Asian ideograph - - - 225359 - 71B4 - E786B4 - East Asian ideograph - - - 225367 - 71D1 - E78791 - East Asian ideograph - - - 225369 - 71C7 - E78787 - East Asian ideograph - - - 22536A - 71B7 - E786B7 - East Asian ideograph - - - 22536D - 71CA - E7878A - East Asian ideograph - - - 22536F - 71CF - E7878F - East Asian ideograph - - - 225370 - 71D6 - E78796 - East Asian ideograph - - - 225372 - 71BA - E786BA - East Asian ideograph - - - 225375 - 71C2 - E78782 - East Asian ideograph - - - 225377 - 71C5 - E78785 - East Asian ideograph - - - 22537A - 71BF - E786BF - East Asian ideograph - - - 22537C - 71B8 - E786B8 - East Asian ideograph - - - 225421 - 71DD - E7879D - East Asian ideograph - - - 225422 - 71C0 - E78780 - East Asian ideograph - - - 225424 - 71C1 - E78781 - East Asian ideograph - - - 225426 - 71D4 - E78794 - East Asian ideograph - - - 225429 - 71CB - E7878B - East Asian ideograph - - - 22542A - 71DE - E7879E - East Asian ideograph - - - 225432 - 71EB - E787AB - East Asian ideograph - - - 225436 - 71E8 - E787A8 - East Asian ideograph - - - 22543A - 71F5 - E787B5 - East Asian ideograph - - - 22543D - 71F3 - E787B3 - East Asian ideograph - - - 22543F - 71E1 - E787A1 - East Asian ideograph - - - 225447 - 71E0 - E787A0 - East Asian ideograph - - - 22544B - 720C - E7888C - East Asian ideograph - - - 22544F - 71FC - E787BC - East Asian ideograph - - - 225456 - 71F9 - E787B9 - East Asian ideograph - - - 22545B - 720E - E7888E - East Asian ideograph - - - 22545C - 5911 - E5A491 - East Asian ideograph - - - 22545E - 720A - E7888A - East Asian ideograph - - - 225460 - 7217 - E78897 - East Asian ideograph - - - 225461 - 7207 - E78887 - East Asian ideograph - - - 225466 - 7215 - E78895 - East Asian ideograph - - - 225469 - 7213 - E78893 - East Asian ideograph - - - 22546E - 7218 - E78898 - East Asian ideograph - - - 225471 - 720B - E7888B - East Asian ideograph - - - 225479 - 721A - E7889A - East Asian ideograph - - - 22547D - 721F - E7889F - East Asian ideograph - - - 225521 - 721D - E7889D - East Asian ideograph - - - 225529 - 7225 - E788A5 - East Asian ideograph - - - 22552A - 7226 - E788A6 - East Asian ideograph - - - 225541 - 723F - E788BF - East Asian ideograph - - - 225543 - 7241 - E78981 - East Asian ideograph - - - 225544 - 7242 - E78982 - East Asian ideograph - - - 22554F - 7250 - E78990 - East Asian ideograph - - - 225551 - 724F - E7898F - East Asian ideograph - - - 225552 - 7253 - E78993 - East Asian ideograph - - - 225553 - 7255 - E78995 - East Asian ideograph - - - 225556 - 725A - E7899A - East Asian ideograph - - - 225559 - 7263 - E789A3 - East Asian ideograph - - - 225561 - 7273 - E789B3 - East Asian ideograph - - - 225563 - 726E - E789AE - East Asian ideograph - - - 225566 - 7276 - E789B6 - East Asian ideograph - - - 225568 - 7277 - E789B7 - East Asian ideograph - - - 22556B - 727E - E789BE - East Asian ideograph - - - 22556D - 727C - E789BC - East Asian ideograph - - - 225571 - 727F - E789BF - East Asian ideograph - - - 225574 - 7289 - E78A89 - East Asian ideograph - - - 22557C - 728B - E78A8B - East Asian ideograph - - - 225622 - 728D - E78A8D - East Asian ideograph - - - 225628 - 728F - E78A8F - East Asian ideograph - - - 225648 - 72A8 - E78AA8 - East Asian ideograph - - - 22564C - 72AB - E78AAB - East Asian ideograph - - - 22564E - 72B0 - E78AB0 - East Asian ideograph - - - 22564F - 72B4 - E78AB4 - East Asian ideograph - - - 225651 - 72C6 - E78B86 - East Asian ideograph - - - 225652 - 72B5 - E78AB5 - East Asian ideograph - - - 225656 - 72BC - E78ABC - East Asian ideograph - - - 225658 - 72C3 - E78B83 - East Asian ideograph - - - 22565B - 72C1 - E78B81 - East Asian ideograph - - - 225660 - 72D6 - E78B96 - East Asian ideograph - - - 225664 - 72D2 - E78B92 - East Asian ideograph - - - 225667 - 72C9 - E78B89 - East Asian ideograph - - - 22566C - 72CC - E78B8C - East Asian ideograph - - - 22566E - 72DB - E78B9B - East Asian ideograph - - - 22566F - 72CD - E78B8D - East Asian ideograph - - - 225673 - 72E8 - E78BA8 - East Asian ideograph - - - 225676 - 72EB - E78BAB - East Asian ideograph - - - 225679 - 72E5 - E78BA5 - East Asian ideograph - - - 22567E - 72FA - E78BBA - East Asian ideograph - - - 225724 - 72F4 - E78BB4 - East Asian ideograph - - - 225725 - 72FE - E78BBE - East Asian ideograph - - - 225729 - 7302 - E78C82 - East Asian ideograph - - - 22572C - 72FB - E78BBB - East Asian ideograph - - - 22572D - 7301 - E78C81 - East Asian ideograph - - - 22572E - 72F3 - E78BB3 - East Asian ideograph - - - 225731 - 731D - E78C9D - East Asian ideograph - - - 225735 - 730B - E78C8B - East Asian ideograph - - - 225736 - 7317 - E78C97 - East Asian ideograph - - - 22573B - 7307 - E78C87 - East Asian ideograph - - - 22573E - 7318 - E78C98 - East Asian ideograph - - - 225742 - 731E - E78C9E - East Asian ideograph - - - 225746 - 7331 - E78CB1 - East Asian ideograph - - - 225749 - 7338 - E78CB8 - East Asian ideograph - - - 22574A - 7322 - E78CA2 - East Asian ideograph - - - 22574C - 7332 - E78CB2 - East Asian ideograph - - - 22574D - 732C - E78CAC - East Asian ideograph - - - 22574E - 7327 - E78CA7 - East Asian ideograph - - - 22574F - 732B - E78CAB - East Asian ideograph - - - 225752 - 732F - E78CAF - East Asian ideograph - - - 225755 - 7328 - E78CA8 - East Asian ideograph - - - 22575A - 7347 - E78D87 - East Asian ideograph - - - 22575B - 7348 - E78D88 - East Asian ideograph - - - 22575C - 7349 - E78D89 - East Asian ideograph - - - 22575F - 733B - E78CBB - East Asian ideograph - - - 225762 - 733A - E78CBA - East Asian ideograph - - - 225765 - 7340 - E78D80 - East Asian ideograph - - - 225768 - 734D - E78D8D - East Asian ideograph - - - 22576B - 7352 - E78D92 - East Asian ideograph - - - 225772 - 735E - E78D9E - East Asian ideograph - - - 225774 - 735D - E78D9D - East Asian ideograph - - - 225779 - 7360 - E78DA0 - East Asian ideograph - - - 22577B - 7358 - E78D98 - East Asian ideograph - - - 22577E - 7362 - E78DA2 - East Asian ideograph - - - 225821 - 734B - E78D8B - East Asian ideograph - - - 225825 - 7367 - E78DA7 - East Asian ideograph - - - 225829 - 736C - E78DAC - East Asian ideograph - - - 22582B - 736B - E78DAB - East Asian ideograph - - - 22582F - 736F - E78DAF - East Asian ideograph - - - 225836 - 737C - E78DBC - East Asian ideograph - - - 225838 - 737E - E78DBE - East Asian ideograph - - - 22583B - 7381 - E78E81 - East Asian ideograph - - - 22583F - 7388 - E78E88 - East Asian ideograph - - - 225842 - 738E - E78E8E - East Asian ideograph - - - 225846 - 7395 - E78E95 - East Asian ideograph - - - 225847 - 7392 - E78E92 - East Asian ideograph - - - 225848 - 7397 - E78E97 - East Asian ideograph - - - 22584C - 7393 - E78E93 - East Asian ideograph - - - 22584D - 7394 - E78E94 - East Asian ideograph - - - 225851 - 739E - E78E9E - East Asian ideograph - - - 225852 - 73A6 - E78EA6 - East Asian ideograph - - - 22585D - 73A5 - E78EA5 - East Asian ideograph - - - 225862 - 73A2 - E78EA2 - East Asian ideograph - - - 225863 - 73A0 - E78EA0 - East Asian ideograph - - - 225867 - 73B6 - E78EB6 - East Asian ideograph - - - 225868 - 73CF - E78F8F - East Asian ideograph - - - 22586A - 73C2 - E78F82 - East Asian ideograph - - - 22586B - 73D0 - E78F90 - East Asian ideograph - - - 22586F - 73BF - E78EBF - East Asian ideograph - - - 225870 - 73C8 - E78F88 - East Asian ideograph - - - 22587D - 73CC - E78F8C - East Asian ideograph - - - 225921 - 73D3 - E78F93 - East Asian ideograph - - - 225927 - 73EA - E78FAA - East Asian ideograph - - - 225928 - 73E5 - E78FA5 - East Asian ideograph - - - 22592A - 73D9 - E78F99 - East Asian ideograph - - - 22592B - 73EF - E78FAF - East Asian ideograph - - - 22592F - 73D4 - E78F94 - East Asian ideograph - - - 225930 - 73DB - E78F9B - East Asian ideograph - - - 225932 - 73D6 - E78F96 - East Asian ideograph - - - 225935 - 73BC - E78EBC - East Asian ideograph - - - 225936 - 73E7 - E78FA7 - East Asian ideograph - - - 225938 - 73E3 - E78FA3 - East Asian ideograph - - - 22593A - 73DE - E78F9E - East Asian ideograph - - - 22593C - 73E6 - E78FA6 - East Asian ideograph - - - 22593F - 73E9 - E78FA9 - East Asian ideograph - - - 225945 - 73F6 - E78FB6 - East Asian ideograph - - - 225947 - 73FA - E78FBA - East Asian ideograph - - - 22594A - 73F8 - E78FB8 - East Asian ideograph - - - 225954 - 73F5 - E78FB5 - East Asian ideograph - - - 22595A - 73FD - E78FBD - East Asian ideograph - - - 22595C - 7407 - E79087 - East Asian ideograph - - - 22595E - 7412 - E79092 - East Asian ideograph - - - 225963 - 743C - E790BC - East Asian ideograph - - - 225966 - 742E - E790AE - East Asian ideograph - - - 225967 - 742F - E790AF - East Asian ideograph - - - 225969 - 7414 - E79094 - East Asian ideograph - - - 22596A - 742C - E790AC - East Asian ideograph - - - 22596C - 7430 - E790B0 - East Asian ideograph - - - 22596E - 742B - E790AB - East Asian ideograph - - - 225970 - 73F7 - E78FB7 - East Asian ideograph - - - 225971 - 741A - E7909A - East Asian ideograph - - - 225978 - 7416 - E79096 - East Asian ideograph - - - 22597A - 7426 - E790A6 - East Asian ideograph - - - 225A21 - 7428 - E790A8 - East Asian ideograph - - - 225A23 - 7429 - E790A9 - East Asian ideograph - - - 225A28 - 7420 - E790A0 - East Asian ideograph - - - 225A2A - 741B - E7909B - East Asian ideograph - - - 225A2B - 7424 - E790A4 - East Asian ideograph - - - 225A2C - 7432 - E790B2 - East Asian ideograph - - - 225A2D - 742D - E790AD - East Asian ideograph - - - 225A30 - 7415 - E79095 - East Asian ideograph - - - 225A32 - 743B - E790BB - East Asian ideograph - - - 225A36 - 7444 - E79184 - East Asian ideograph - - - 225A40 - 7447 - E79187 - East Asian ideograph - - - 225A43 - 7458 - E79198 - East Asian ideograph - - - 225A45 - 7442 - E79182 - East Asian ideograph - - - 225A47 - 744B - E7918B - East Asian ideograph - - - 225A4A - 744A - E7918A - East Asian ideograph - - - 225A4F - 7452 - E79192 - East Asian ideograph - - - 225A55 - 7457 - E79197 - East Asian ideograph - - - 225A56 - 7451 - E79191 - East Asian ideograph - - - 225A5A - 745D - E7919D - East Asian ideograph - - - 225A5B - 7454 - E79194 - East Asian ideograph - - - 225A5D - 7440 - E79180 - East Asian ideograph - - - 225A60 - 746D - E791AD - East Asian ideograph - - - 225A61 - 7462 - E791A2 - East Asian ideograph - - - 225A62 - 7473 - E791B3 - East Asian ideograph - - - 225A68 - 7474 - E791B4 - East Asian ideograph - - - 225A69 - 746E - E791AE - East Asian ideograph - - - 225A6A - 7471 - E791B1 - East Asian ideograph - - - 225A6B - 7468 - E791A8 - East Asian ideograph - - - 225A78 - 7460 - E791A0 - East Asian ideograph - - - 225A79 - 7472 - E791B2 - East Asian ideograph - - - 225A7A - 7484 - E79284 - East Asian ideograph - - - 225A7B - 7487 - E79287 - East Asian ideograph - - - 225A7E - 7488 - E79288 - East Asian ideograph - - - 225B21 - 7489 - E79289 - East Asian ideograph - - - 225B22 - 747C - E791BC - East Asian ideograph - - - 225B27 - 7482 - E79282 - East Asian ideograph - - - 225B28 - 747E - E791BE - East Asian ideograph - - - 225B2A - 748A - E7928A - East Asian ideograph - - - 225B2D - 7486 - E79286 - East Asian ideograph - - - 225B30 - 747A - E791BA - East Asian ideograph - - - 225B38 - 7480 - E79280 - East Asian ideograph - - - 225B3C - 7481 - E79281 - East Asian ideograph - - - 225B3E - 747D - E791BD - East Asian ideograph - - - 225B3F - 7485 - E79285 - East Asian ideograph - - - 225B40 - 7497 - E79297 - East Asian ideograph - - - 225B43 - 7498 - E79298 - East Asian ideograph - - - 225B45 - 749A - E7929A - East Asian ideograph - - - 225B4D - 74A4 - E792A4 - East Asian ideograph - - - 225B54 - 749F - E7929F - East Asian ideograph - - - 225B55 - 749D - E7929D - East Asian ideograph - - - 225B56 - 748D - E7928D - East Asian ideograph - - - 225B57 - 749E - E7929E - East Asian ideograph - - - 225B59 - 74A0 - E792A0 - East Asian ideograph - - - 225B5D - 74A1 - E792A1 - East Asian ideograph - - - 225B60 - 74B2 - E792B2 - East Asian ideograph - - - 225B61 - 74B1 - E792B1 - East Asian ideograph - - - 225B66 - 74B4 - E792B4 - East Asian ideograph - - - 225B67 - 74AB - E792AB - East Asian ideograph - - - 225B69 - 74AA - E792AA - East Asian ideograph - - - 225B6A - 7490 - E79290 - East Asian ideograph - - - 225B6C - 74A5 - E792A5 - East Asian ideograph - - - 225B6E - 74A8 - E792A8 - East Asian ideograph - - - 225B76 - 74B8 - E792B8 - East Asian ideograph - - - 225B7A - 74C0 - E79380 - East Asian ideograph - - - 225C25 - 74BF - E792BF - East Asian ideograph - - - 225C28 - 74B5 - E792B5 - East Asian ideograph - - - 225C29 - 74BA - E792BA - East Asian ideograph - - - 225C30 - 74C8 - E79388 - East Asian ideograph - - - 225C31 - 74C5 - E79385 - East Asian ideograph - - - 225C32 - 74CC - E7938C - East Asian ideograph - - - 225C38 - 74D6 - E79396 - East Asian ideograph - - - 225C3A - 74D4 - E79394 - East Asian ideograph - - - 225C3D - 74D8 - E79398 - East Asian ideograph - - - 225C40 - 74DA - E7939A - East Asian ideograph - - - 225C41 - 74DB - E7939B - East Asian ideograph - - - 225C47 - 74DE - E7939E - East Asian ideograph - - - 225C50 - 74E4 - E793A4 - East Asian ideograph - - - 225C52 - 74E7 - E793A7 - East Asian ideograph - - - 225C54 - 74E9 - E793A9 - East Asian ideograph - - - 225C58 - 74F1 - E793B1 - East Asian ideograph - - - 225C5A - 74F0 - E793B0 - East Asian ideograph - - - 225C5C - 74EE - E793AE - East Asian ideograph - - - 225C61 - 74F4 - E793B4 - East Asian ideograph - - - 225C63 - 74F8 - E793B8 - East Asian ideograph - - - 225C66 - 74FB - E793BB - East Asian ideograph - - - 225C67 - 74FF - E793BF - East Asian ideograph - - - 225C71 - 7505 - E79485 - East Asian ideograph - - - 225C77 - 7503 - E79483 - East Asian ideograph - - - 225C7D - 7507 - E79487 - East Asian ideograph - - - 225D25 - 750E - E7948E - East Asian ideograph - - - 225D28 - 750D - E7948D - East Asian ideograph - - - 225D2C - 7511 - E79491 - East Asian ideograph - - - 225D2D - 750F - E7948F - East Asian ideograph - - - 225D32 - 7512 - E79492 - East Asian ideograph - - - 225D33 - 7513 - E79493 - East Asian ideograph - - - 225D39 - 7517 - E79497 - East Asian ideograph - - - 225D42 - 7521 - E794A1 - East Asian ideograph - - - 225D44 - 7524 - E794A4 - East Asian ideograph - - - 225D49 - 752F - E794AF - East Asian ideograph - - - 225D4D - 753A - E794BA - East Asian ideograph - - - 225D4F - 753F - E794BF - East Asian ideograph - - - 225D51 - 7540 - E79580 - East Asian ideograph - - - 225D52 - 753E - E794BE - East Asian ideograph - - - 225D55 - 754A - E7958A - East Asian ideograph - - - 225D57 - 754E - E7958E - East Asian ideograph - - - 225D58 - 7547 - E79587 - East Asian ideograph - - - 225D59 - 754B - E7958B - East Asian ideograph - - - 225D5A - 7548 - E79588 - East Asian ideograph - - - 225D5F - 755F - E7959F - East Asian ideograph - - - 225D60 - 755B - E7959B - East Asian ideograph - - - 225D62 - 7564 - E795A4 - East Asian ideograph - - - 225D67 - 7563 - E795A3 - East Asian ideograph - - - 225D69 - 756F - E795AF - East Asian ideograph - - - 225D6B - 756C - E795AC - East Asian ideograph - - - 225D6D - 7579 - E795B9 - East Asian ideograph - - - 225D6E - 757A - E795BA - East Asian ideograph - - - 225D71 - 7577 - E795B7 - East Asian ideograph - - - 225D75 - 7571 - E795B1 - East Asian ideograph - - - 225D79 - 757D - E795BD - East Asian ideograph - - - 225D7E - 757F - E795BF - East Asian ideograph - - - 225E25 - 7583 - E79683 - East Asian ideograph - - - 225E2C - 7590 - E79690 - East Asian ideograph - - - 225E2D - 7592 - E79692 - East Asian ideograph - - - 225E2E - 7594 - E79694 - East Asian ideograph - - - 225E31 - 7595 - E79695 - East Asian ideograph - - - 225E35 - 7598 - E79698 - East Asian ideograph - - - 225E37 - 75A2 - E796A2 - East Asian ideograph - - - 225E3B - 75A3 - E796A3 - East Asian ideograph - - - 225E3E - 75BA - E796BA - East Asian ideograph - - - 225E43 - 75B0 - E796B0 - East Asian ideograph - - - 225E44 - 75C3 - E79783 - East Asian ideograph - - - 225E46 - 75BF - E796BF - East Asian ideograph - - - 225E47 - 75B4 - E796B4 - East Asian ideograph - - - 225E4A - 75C2 - E79782 - East Asian ideograph - - - 225E4E - 75C1 - E79781 - East Asian ideograph - - - 225E50 - 75B1 - E796B1 - East Asian ideograph - - - 225E51 - 75C4 - E79784 - East Asian ideograph - - - 225E58 - 75CD - E7978D - East Asian ideograph - - - 225E5C - 75CF - E7978F - East Asian ideograph - - - 225E5E - 75CC - E7978C - East Asian ideograph - - - 225E5F - 75D0 - E79790 - East Asian ideograph - - - 225E63 - 75E7 - E797A7 - East Asian ideograph - - - 225E66 - 75E1 - E797A1 - East Asian ideograph - - - 225E67 - 75E6 - E797A6 - East Asian ideograph - - - 225E71 - 75E4 - E797A4 - East Asian ideograph - - - 225E72 - 75E0 - E797A0 - East Asian ideograph - - - 225E73 - 75D7 - E79797 - East Asian ideograph - - - 225E7A - 7602 - E79882 - East Asian ideograph - - - 225E7E - 7603 - E79883 - East Asian ideograph - - - 225F21 - 75F9 - E797B9 - East Asian ideograph - - - 225F22 - 75FC - E797BC - East Asian ideograph - - - 225F29 - 7616 - E79896 - East Asian ideograph - - - 225F2C - 7608 - E79888 - East Asian ideograph - - - 225F2D - 7615 - E79895 - East Asian ideograph - - - 225F2E - 760C - E7988C - East Asian ideograph - - - 225F2F - 760F - E7988F - East Asian ideograph - - - 225F3B - 7610 - E79890 - East Asian ideograph - - - 225F3C - 760A - E7988A - East Asian ideograph - - - 225F3E - 7625 - E798A5 - East Asian ideograph - - - 225F3F - 761A - E7989A - East Asian ideograph - - - 225F40 - 761B - E7989B - East Asian ideograph - - - 225F47 - 7619 - E79899 - East Asian ideograph - - - 225F48 - 761E - E7989E - East Asian ideograph - - - 225F4C - 761D - E7989D - East Asian ideograph - - - 225F50 - 7622 - E798A2 - East Asian ideograph - - - 225F51 - 762F - E798AF - East Asian ideograph - - - 225F54 - 762D - E798AD - East Asian ideograph - - - 225F5C - 7633 - E798B3 - East Asian ideograph - - - 225F5E - 763B - E798BB - East Asian ideograph - - - 225F5F - 7630 - E798B0 - East Asian ideograph - - - 225F60 - 763C - E798BC - East Asian ideograph - - - 225F62 - 7635 - E798B5 - East Asian ideograph - - - 225F67 - 7648 - E79988 - East Asian ideograph - - - 225F68 - 764E - E7998E - East Asian ideograph - - - 225F69 - 7647 - E79987 - East Asian ideograph - - - 225F6A - 7643 - E79983 - East Asian ideograph - - - 225F6E - 764D - E7998D - East Asian ideograph - - - 225F6F - 7649 - E79989 - East Asian ideograph - - - 225F75 - 7654 - E79994 - East Asian ideograph - - - 225F7A - 765C - E7999C - East Asian ideograph - - - 225F7B - 7657 - E79997 - East Asian ideograph - - - 226022 - 7664 - E799A4 - East Asian ideograph - - - 226024 - 7659 - E79999 - East Asian ideograph - - - 22602B - 765F - E7999F - East Asian ideograph - - - 226032 - 7667 - E799A7 - East Asian ideograph - - - 226035 - 766A - E799AA - East Asian ideograph - - - 226037 - 766D - E799AD - East Asian ideograph - - - 226038 - 766F - E799AF - East Asian ideograph - - - 22603A - 7670 - E799B0 - East Asian ideograph - - - 226040 - 7676 - E799B6 - East Asian ideograph - - - 226041 - 7677 - E799B7 - East Asian ideograph - - - 226048 - 7680 - E79A80 - East Asian ideograph - - - 22604A - 768B - E79A8B - East Asian ideograph - - - 226052 - 7695 - E79A95 - East Asian ideograph - - - 226055 - 656B - E695AB - East Asian ideograph - - - 226059 - 7699 - E79A99 - East Asian ideograph - - - 22605D - 769C - E79A9C - East Asian ideograph - - - 22605F - 769D - E79A9D - East Asian ideograph - - - 226065 - 76A4 - E79AA4 - East Asian ideograph - - - 226066 - 76A5 - E79AA5 - East Asian ideograph - - - 226067 - 76A6 - E79AA6 - East Asian ideograph - - - 22606A - 76AA - E79AAA - East Asian ideograph - - - 22606D - 76AD - E79AAD - East Asian ideograph - - - 226074 - 76B8 - E79AB8 - East Asian ideograph - - - 226077 - 76BD - E79ABD - East Asian ideograph - - - 226123 - 76CB - E79B8B - East Asian ideograph - - - 226126 - 76CC - E79B8C - East Asian ideograph - - - 22613B - 76E6 - E79BA6 - East Asian ideograph - - - 22613C - 76E9 - E79BA9 - East Asian ideograph - - - 226140 - 76EC - E79BAC - East Asian ideograph - - - 226144 - 76ED - E79BAD - East Asian ideograph - - - 226148 - 76F1 - E79BB1 - East Asian ideograph - - - 22614B - 7704 - E79C84 - East Asian ideograph - - - 22614F - 7708 - E79C88 - East Asian ideograph - - - 226150 - 7707 - E79C87 - East Asian ideograph - - - 226153 - 76F7 - E79BB7 - East Asian ideograph - - - 226154 - 770A - E79C8A - East Asian ideograph - - - 226159 - 76FB - E79BBB - East Asian ideograph - - - 22615E - 772B - E79CAB - East Asian ideograph - - - 226160 - 770E - E79C8E - East Asian ideograph - - - 226162 - 771B - E79C9B - East Asian ideograph - - - 226163 - 7724 - E79CA4 - East Asian ideograph - - - 22616C - 7722 - E79CA2 - East Asian ideograph - - - 22616D - 771A - E79C9A - East Asian ideograph - - - 22616F - 7721 - E79CA1 - East Asian ideograph - - - 226174 - 7740 - E79D80 - East Asian ideograph - - - 226175 - 7739 - E79CB9 - East Asian ideograph - - - 226176 - 772F - E79CAF - East Asian ideograph - - - 226177 - 7731 - E79CB1 - East Asian ideograph - - - 226222 - 7725 - E79CA5 - East Asian ideograph - - - 226225 - 7735 - E79CB5 - East Asian ideograph - - - 226226 - 7734 - E79CB4 - East Asian ideograph - - - 22622D - 7747 - E79D87 - East Asian ideograph - - - 226231 - 7745 - E79D85 - East Asian ideograph - - - 226232 - 774D - E79D8D - East Asian ideograph - - - 226233 - 774A - E79D8A - East Asian ideograph - - - 226235 - 7743 - E79D83 - East Asian ideograph - - - 226237 - 774E - E79D8E - East Asian ideograph - - - 22623A - 775F - E79D9F - East Asian ideograph - - - 22623D - 7760 - E79DA0 - East Asian ideograph - - - 22623E - 7752 - E79D92 - East Asian ideograph - - - 226242 - 7758 - E79D98 - East Asian ideograph - - - 226244 - 7756 - E79D96 - East Asian ideograph - - - 226245 - 775A - E79D9A - East Asian ideograph - - - 22624F - 7762 - E79DA2 - East Asian ideograph - - - 226252 - 7780 - E79E80 - East Asian ideograph - - - 226256 - 776F - E79DAF - East Asian ideograph - - - 22625D - 777E - E79DBE - East Asian ideograph - - - 22625F - 7785 - E79E85 - East Asian ideograph - - - 226260 - 777A - E79DBA - East Asian ideograph - - - 226266 - 778B - E79E8B - East Asian ideograph (variant of EACC 4C6266) - - - 22626A - 778D - E79E8D - East Asian ideograph - - - 226272 - 7798 - E79E98 - East Asian ideograph - - - 226273 - 7796 - E79E96 - East Asian ideograph - - - 226275 - 77A2 - E79EA2 - East Asian ideograph - - - 226276 - 7799 - E79E99 - East Asian ideograph - - - 22627A - 77B5 - E79EB5 - East Asian ideograph - - - 22627D - 77B7 - E79EB7 - East Asian ideograph - - - 226323 - 77B6 - E79EB6 - East Asian ideograph - - - 226329 - 77BE - E79EBE - East Asian ideograph - - - 22632B - 77B9 - E79EB9 - East Asian ideograph - - - 22632C - 77BC - E79EBC - East Asian ideograph - - - 226335 - 77CD - E79F8D - East Asian ideograph - - - 22633A - 77D1 - E79F91 - East Asian ideograph - - - 226345 - 77DE - E79F9E - East Asian ideograph - - - 226346 - 77DF - E79F9F - East Asian ideograph - - - 22634F - 77E7 - E79FA7 - East Asian ideograph - - - 226352 - 77E6 - E79FA6 - East Asian ideograph - - - 226355 - 77EC - E79FAC - East Asian ideograph - - - 226359 - 77F0 - E79FB0 - East Asian ideograph - - - 22635A - 77F1 - E79FB1 - East Asian ideograph - - - 22635C - 77F4 - E79FB4 - East Asian ideograph - - - 226360 - 77FC - E79FBC - East Asian ideograph - - - 226367 - 77F8 - E79FB8 - East Asian ideograph - - - 226368 - 77FB - E79FBB - East Asian ideograph - - - 226370 - 7809 - E7A089 - East Asian ideograph - - - 226371 - 7806 - E7A086 - East Asian ideograph - - - 226373 - 7819 - E7A099 - East Asian ideograph - - - 226374 - 7811 - E7A091 - East Asian ideograph - - - 226378 - 7812 - E7A092 - East Asian ideograph - - - 226424 - 781B - E7A09B - East Asian ideograph - - - 226426 - 782C - E7A0AC - East Asian ideograph - - - 226427 - 7823 - E7A0A3 - East Asian ideograph - - - 226428 - 782B - E7A0AB - East Asian ideograph - - - 22642A - 7829 - E7A0A9 - East Asian ideograph - - - 22642D - 7822 - E7A0A2 - East Asian ideograph - - - 226431 - 7835 - E7A0B5 - East Asian ideograph - - - 226432 - 7833 - E7A0B3 - East Asian ideograph - - - 226433 - 782E - E7A0AE - East Asian ideograph - - - 226435 - 7820 - E7A0A0 - East Asian ideograph - - - 226438 - 783D - E7A0BD - East Asian ideograph - - - 22643B - 781F - E7A09F - East Asian ideograph - - - 22643D - 7831 - E7A0B1 - East Asian ideograph - - - 226444 - 784D - E7A18D - East Asian ideograph - - - 226448 - 7848 - E7A188 - East Asian ideograph - - - 226449 - 7853 - E7A193 - East Asian ideograph - - - 22644A - 7854 - E7A194 - East Asian ideograph - - - 22644B - 7845 - E7A185 - East Asian ideograph - - - 22644C - 7852 - E7A192 - East Asian ideograph - - - 22644E - 7850 - E7A190 - East Asian ideograph - - - 22644F - 7858 - E7A198 - East Asian ideograph - - - 226450 - 7826 - E7A0A6 - East Asian ideograph - - - 226452 - 7847 - E7A187 - East Asian ideograph - - - 226456 - 784C - E7A18C - East Asian ideograph - - - 22645A - 7868 - E7A1A8 - East Asian ideograph - - - 22645B - 786D - E7A1AD - East Asian ideograph - - - 226460 - 7864 - E7A1A4 - East Asian ideograph - - - 226461 - 785C - E7A19C - East Asian ideograph - - - 226464 - 7876 - E7A1B6 - East Asian ideograph - - - 226466 - 786A - E7A1AA - East Asian ideograph - - - 226469 - 7886 - E7A286 - East Asian ideograph - - - 22646B - 789A - E7A29A - East Asian ideograph - - - 22646C - 787F - E7A1BF - East Asian ideograph - - - 22646D - 7887 - E7A287 - East Asian ideograph - - - 226470 - 7894 - E7A294 - East Asian ideograph - - - 226476 - 788F - E7A28F - East Asian ideograph - - - 22647E - 7899 - E7A299 - East Asian ideograph - - - 226529 - 7893 - E7A293 - East Asian ideograph - - - 22652C - 7892 - E7A292 - East Asian ideograph - - - 22652D - 7896 - E7A296 - East Asian ideograph - - - 22652F - 78B2 - E7A2B2 - East Asian ideograph - - - 226531 - 78A1 - E7A2A1 - East Asian ideograph - - - 226532 - 78B6 - E7A2B6 - East Asian ideograph - - - 226539 - 78B7 - E7A2B7 - East Asian ideograph - - - 22653B - 78A4 - E7A2A4 - East Asian ideograph - - - 22653E - 78B4 - E7A2B4 - East Asian ideograph - - - 226540 - 78AD - E7A2AD - East Asian ideograph - - - 226541 - 78A3 - E7A2A3 - East Asian ideograph - - - 226543 - 789E - E7A29E - East Asian ideograph - - - 226544 - 78A8 - E7A2A8 - East Asian ideograph - - - 226548 - 78AB - E7A2AB - East Asian ideograph - - - 22654E - 78BB - E7A2BB - East Asian ideograph - - - 226555 - 78CC - E7A38C - East Asian ideograph - - - 226556 - 78C9 - E7A389 - East Asian ideograph - - - 226558 - 78D1 - E7A391 - East Asian ideograph - - - 22655A - 78D8 - E7A398 - East Asian ideograph - - - 22655E - 78C8 - E7A388 - East Asian ideograph - - - 226560 - 78D4 - E7A394 - East Asian ideograph - - - 226568 - 78DF - E7A39F - East Asian ideograph - - - 22656A - 78E7 - E7A3A7 - East Asian ideograph - - - 22656E - 78DB - E7A39B - East Asian ideograph - - - 22656F - 78E1 - E7A3A1 - East Asian ideograph - - - 226573 - 78E0 - E7A3A0 - East Asian ideograph - - - 226576 - 78EE - E7A3AE - East Asian ideograph - - - 226577 - 78E3 - E7A3A3 - East Asian ideograph - - - 226579 - 78F2 - E7A3B2 - East Asian ideograph - - - 22657E - 7905 - E7A485 - East Asian ideograph - - - 226621 - 78F9 - E7A3B9 - East Asian ideograph - - - 226622 - 78FD - E7A3BD - East Asian ideograph - - - 226627 - 78FE - E7A3BE - East Asian ideograph - - - 226629 - 78FB - E7A3BB - East Asian ideograph - - - 22662B - 7904 - E7A484 - East Asian ideograph - - - 22662E - 7912 - E7A492 - East Asian ideograph - - - 226632 - 790C - E7A48C - East Asian ideograph - - - 226634 - 7913 - E7A493 - East Asian ideograph - - - 226635 - 7911 - E7A491 - East Asian ideograph - - - 226643 - 791E - E7A49E - East Asian ideograph - - - 226646 - 7922 - E7A4A2 - East Asian ideograph - - - 22664C - 7924 - E7A4A4 - East Asian ideograph - - - 22664D - 7927 - E7A4A7 - East Asian ideograph - - - 226650 - 7929 - E7A4A9 - East Asian ideograph - - - 226655 - 7931 - E7A4B1 - East Asian ideograph - - - 22665D - 7934 - E7A4B4 - East Asian ideograph - - - 226660 - 7936 - E7A4B6 - East Asian ideograph - - - 226665 - 793D - E7A4BD - East Asian ideograph - - - 226667 - 7942 - E7A582 - East Asian ideograph - - - 226668 - 793F - E7A4BF - East Asian ideograph - - - 22666A - 794A - E7A58A - East Asian ideograph - - - 22666B - 794D - E7A58D - East Asian ideograph - - - 226675 - 7946 - E7A586 - East Asian ideograph - - - 226677 - 7958 - E7A598 - East Asian ideograph - - - 226679 - 795B - E7A59B - East Asian ideograph - - - 22667A - 795C - E7A59C - East Asian ideograph - - - 22667B - 794F - E7A58F - East Asian ideograph - - - 22667C - 7953 - E7A593 - East Asian ideograph - - - 22667D - 7953 - E7A593 - East Asian ideograph (unrelated variant of EACC 22667C) - - - 226721 - 7951 - E7A591 - East Asian ideograph - - - 226723 - 7954 - E7A594 - East Asian ideograph - - - 22672A - 7967 - E7A5A7 - East Asian ideograph - - - 22672D - 796B - E7A5AB - East Asian ideograph - - - 226730 - 7972 - E7A5B2 - East Asian ideograph - - - 22673E - 797C - E7A5BC - East Asian ideograph - - - 22674A - 7998 - E7A698 - East Asian ideograph - - - 22674B - 798A - E7A68A - East Asian ideograph - - - 22674D - 7999 - E7A699 - East Asian ideograph - - - 22674E - 7995 - E7A695 - East Asian ideograph - - - 22674F - 798B - E7A68B - East Asian ideograph - - - 226750 - 7996 - E7A696 - East Asian ideograph - - - 226754 - 7994 - E7A694 - East Asian ideograph - - - 226755 - 7993 - E7A693 - East Asian ideograph - - - 22675C - 799A - E7A69A - East Asian ideograph - - - 22675F - 79A1 - E7A6A1 - East Asian ideograph - - - 226760 - 799B - E7A69B - East Asian ideograph - - - 226761 - 79A3 - E7A6A3 - East Asian ideograph - - - 226764 - 799D - E7A69D - East Asian ideograph - - - 22676E - 79A9 - E7A6A9 - East Asian ideograph - - - 226770 - 79AB - E7A6AB - East Asian ideograph - - - 226771 - 79A8 - E7A6A8 - East Asian ideograph - - - 226775 - 79B0 - E7A6B0 - East Asian ideograph - - - 22677A - 79B3 - E7A6B3 - East Asian ideograph - - - 22677B - 79B4 - E7A6B4 - East Asian ideograph - - - 226822 - 79B8 - E7A6B8 - East Asian ideograph - - - 226823 - 79BA - E7A6BA - East Asian ideograph - - - 226825 - 79BC - E7A6BC - East Asian ideograph - - - 226828 - 79C6 - E7A786 - East Asian ideograph - - - 22682A - 79C8 - E7A788 - East Asian ideograph - - - 22682D - 79D4 - E7A794 - East Asian ideograph - - - 22682E - 79D5 - E7A795 - East Asian ideograph - - - 226832 - 79D6 - E7A796 - East Asian ideograph - - - 22683D - 79EC - E7A7AC - East Asian ideograph - - - 22683E - 79EB - E7A7AB - East Asian ideograph (variant of EACC 4C683E) - - - 226842 - 79E1 - E7A7A1 - East Asian ideograph - - - 226844 - 79DD - E7A79D - East Asian ideograph - - - 226845 - 79ED - E7A7AD - East Asian ideograph - - - 226848 - 79F8 - E7A7B8 - East Asian ideograph - - - 22684F - 7A02 - E7A882 - East Asian ideograph - - - 226850 - 7A0A - E7A88A - East Asian ideograph - - - 226854 - 7A09 - E7A889 - East Asian ideograph - - - 22685C - 7A03 - E7A883 - East Asian ideograph - - - 226861 - 7A0C - E7A88C - East Asian ideograph - - - 22686B - 7A11 - E7A891 - East Asian ideograph - - - 22686C - 7A18 - E7A898 - East Asian ideograph - - - 22686F - 7A19 - E7A899 - East Asian ideograph (variant of EACC 2E686F) - - - 226871 - 7A1E - E7A89E - East Asian ideograph - - - 226876 - 7A17 - E7A897 - East Asian ideograph - - - 22687E - 7A2D - E7A8AD - East Asian ideograph - - - 226922 - 7A2C - E7A8AC - East Asian ideograph - - - 226939 - 7A48 - E7A988 - East Asian ideograph - - - 22693D - 7A4B - E7A98B - East Asian ideograph - - - 22693E - 7A47 - E7A987 - East Asian ideograph - - - 22693F - 7A44 - E7A984 - East Asian ideograph - - - 226940 - 7A5C - E7A99C - East Asian ideograph - - - 22694D - 7A5F - E7A99F - East Asian ideograph - - - 22694F - 7A60 - E7A9A0 - East Asian ideograph - - - 226957 - 7A6E - E7A9AE - East Asian ideograph - - - 22695F - 7A70 - E7A9B0 - East Asian ideograph - - - 226966 - 7A75 - E7A9B5 - East Asian ideograph - - - 226969 - 7A78 - E7A9B8 - East Asian ideograph - - - 22696B - 7A80 - E7AA80 - East Asian ideograph - - - 226970 - 7A85 - E7AA85 - East Asian ideograph - - - 226975 - 7A86 - E7AA86 - East Asian ideograph - - - 226978 - 7A8A - E7AA8A - East Asian ideograph - - - 22697A - 7A94 - E7AA94 - East Asian ideograph - - - 22697E - 68A5 - E6A2A5 - East Asian ideograph - - - 226A28 - 7AA3 - E7AAA3 - East Asian ideograph - - - 226A2B - 7A9E - E7AA9E - East Asian ideograph - - - 226A2C - 7AA7 - E7AAA7 - East Asian ideograph - - - 226A2E - 7AA8 - E7AAA8 - East Asian ideograph - - - 226A31 - 7AAC - E7AAAC - East Asian ideograph - - - 226A36 - 7AB3 - E7AAB3 - East Asian ideograph - - - 226A3A - 7ABD - E7AABD - East Asian ideograph - - - 226A3C - 7AB6 - E7AAB6 - East Asian ideograph - - - 226A3D - 7AB8 - E7AAB8 - East Asian ideograph - - - 226A3E - 7AB5 - E7AAB5 - East Asian ideograph - - - 226A3F - 7ABB - E7AABB - East Asian ideograph - - - 226A43 - 7ABF - E7AABF - East Asian ideograph - - - 226A49 - 7ACD - E7AB8D - East Asian ideograph - - - 226A4B - 7ACF - E7AB8F - East Asian ideograph - - - 226A4F - 7AD1 - E7AB91 - East Asian ideograph - - - 226A51 - 7AD3 - E7AB93 - East Asian ideograph - - - 226A52 - 7AD4 - E7AB94 - East Asian ideograph - - - 226A54 - 7AD5 - E7AB95 - East Asian ideograph - - - 226A55 - 7ADA - E7AB9A - East Asian ideograph - - - 226A5A - 7AE1 - E7ABA1 - East Asian ideograph - - - 226A5E - 7AE6 - E7ABA6 - East Asian ideograph - - - 226A66 - 7AEB - E7ABAB - East Asian ideograph - - - 226A6B - 7AF0 - E7ABB0 - East Asian ideograph - - - 226A76 - 7AF5 - E7ABB5 - East Asian ideograph - - - 226A7C - 7AFE - E7ABBE - East Asian ideograph - - - 226B27 - 7B39 - E7ACB9 - East Asian ideograph - - - 226B2D - 7B0F - E7AC8F - East Asian ideograph - - - 226B2E - 7B08 - E7AC88 - East Asian ideograph - - - 226B33 - 7B0A - E7AC8A - East Asian ideograph - - - 226B35 - 7B35 - E7ACB5 - East Asian ideograph - - - 226B36 - 7B25 - E7ACA5 - East Asian ideograph - - - 226B39 - 7B38 - E7ACB8 - East Asian ideograph - - - 226B3B - 7B3B - E7ACBB - East Asian ideograph - - - 226B3F - 7B24 - E7ACA4 - East Asian ideograph - - - 226B40 - 7B33 - E7ACB3 - East Asian ideograph - - - 226B42 - 7B2A - E7ACAA - East Asian ideograph - - - 226B44 - 7B18 - E7AC98 - East Asian ideograph - - - 226B47 - 7B31 - E7ACB1 - East Asian ideograph - - - 226B4A - 7B2B - E7ACAB - East Asian ideograph - - - 226B4B - 7B37 - E7ACB7 - East Asian ideograph - - - 226B4D - 7B1F - E7AC9F - East Asian ideograph - - - 226B52 - 7B4A - E7AD8A - East Asian ideograph - - - 226B53 - 7B59 - E7AD99 - East Asian ideograph - - - 226B54 - 7B04 - E7AC84 - East Asian ideograph (variant of EACC 2E6B54) - - - 226B55 - 7B47 - E7AD87 - East Asian ideograph - - - 226B59 - 7B58 - E7AD98 - East Asian ideograph - - - 226B5B - 7B6C - E7ADAC - East Asian ideograph - - - 226B60 - 7B48 - E7AD88 - East Asian ideograph - - - 226B61 - 7B45 - E7AD85 - East Asian ideograph - - - 226B62 - 7B4C - E7AD8C - East Asian ideograph - - - 226B63 - 7B4E - E7AD8E - East Asian ideograph - - - 226B68 - 7B66 - E7ADA6 - East Asian ideograph - - - 226B6C - 7B64 - E7ADA4 - East Asian ideograph - - - 226B6E - 7B69 - E7ADA9 - East Asian ideograph - - - 226B70 - 7B6D - E7ADAD - East Asian ideograph - - - 226B74 - 7B62 - E7ADA2 - East Asian ideograph - - - 226B75 - 7B6E - E7ADAE - East Asian ideograph - - - 226B76 - 7B74 - E7ADB4 - East Asian ideograph - - - 226B79 - 7B72 - E7ADB2 - East Asian ideograph - - - 226B7A - 7B78 - E7ADB8 - East Asian ideograph - - - 226B7B - 7B6F - E7ADAF - East Asian ideograph - - - 226B7C - 7B67 - E7ADA7 - East Asian ideograph - - - 226B7E - 7B65 - E7ADA5 - East Asian ideograph - - - 226C26 - 7B71 - E7ADB1 - East Asian ideograph - - - 226C27 - 7B70 - E7ADB0 - East Asian ideograph - - - 226C29 - 7B73 - E7ADB3 - East Asian ideograph - - - 226C2D - 7B9C - E7AE9C - East Asian ideograph - - - 226C33 - 7B92 - E7AE92 - East Asian ideograph - - - 226C34 - 7B91 - E7AE91 - East Asian ideograph - - - 226C35 - 7B90 - E7AE90 - East Asian ideograph - - - 226C38 - 7BA3 - E7AEA3 - East Asian ideograph - - - 226C3A - 7B8D - E7AE8D - East Asian ideograph - - - 226C41 - 7B85 - E7AE85 - East Asian ideograph - - - 226C43 - 7B8E - E7AE8E - East Asian ideograph - - - 226C44 - 7B98 - E7AE98 - East Asian ideograph - - - 226C46 - 7B86 - E7AE86 - East Asian ideograph - - - 226C48 - 7B99 - E7AE99 - East Asian ideograph - - - 226C52 - 7BB2 - E7AEB2 - East Asian ideograph - - - 226C58 - 7BCB - E7AF8B - East Asian ideograph - - - 226C59 - 7BB8 - E7AEB8 - East Asian ideograph - - - 226C5A - 7BCF - E7AF8F - East Asian ideograph - - - 226C5C - 7BD0 - E7AF90 - East Asian ideograph - - - 226C60 - 7BBE - E7AEBE - East Asian ideograph - - - 226C6F - 7BCC - E7AF8C - East Asian ideograph - - - 226D22 - 7BDD - E7AF9D - East Asian ideograph - - - 226D24 - 7BE5 - E7AFA5 - East Asian ideograph - - - 226D29 - 7BE8 - E7AFA8 - East Asian ideograph - - - 226D2E - 7BF9 - E7AFB9 - East Asian ideograph - - - 226D2F - 7BD4 - E7AF94 - East Asian ideograph - - - 226D32 - 7BDF - E7AF9F - East Asian ideograph - - - 226D35 - 7BD8 - E7AF98 - East Asian ideograph - - - 226D37 - 7BEA - E7AFAA - East Asian ideograph (unrelated variant of EACC 3A6A7C) - - - 226D3B - 7C06 - E7B086 - East Asian ideograph - - - 226D3E - 7BF0 - E7AFB0 - East Asian ideograph - - - 226D41 - 7C0F - E7B08F - East Asian ideograph - - - 226D46 - 7C0B - E7B08B - East Asian ideograph - - - 226D47 - 7C00 - E7B080 - East Asian ideograph - - - 226D4B - 7C0C - E7B08C - East Asian ideograph - - - 226D4F - 7BF4 - E7AFB4 - East Asian ideograph - - - 226D54 - 7BF3 - E7AFB3 - East Asian ideograph - - - 226D5A - 7C09 - E7B089 - East Asian ideograph - - - 226D5B - 7C03 - E7B083 - East Asian ideograph - - - 226D5C - 7BFC - E7AFBC - East Asian ideograph - - - 226D5F - 7C1C - E7B09C - East Asian ideograph - - - 226D61 - 7C26 - E7B0A6 - East Asian ideograph - - - 226D62 - 7C28 - E7B0A8 - East Asian ideograph - - - 226D63 - 7C20 - E7B0A0 - East Asian ideograph - - - 226D66 - 7C1F - E7B09F - East Asian ideograph - - - 226D68 - 7C2F - E7B0AF - East Asian ideograph - - - 226D75 - 7C30 - E7B0B0 - East Asian ideograph - - - 226E27 - 7C35 - E7B0B5 - East Asian ideograph - - - 226E2A - 7C40 - E7B180 - East Asian ideograph - - - 226E30 - 7C39 - E7B0B9 - East Asian ideograph - - - 226E34 - 7C3B - E7B0BB - East Asian ideograph - - - 226E35 - 7C34 - E7B0B4 - East Asian ideograph - - - 226E3B - 7C42 - E7B182 - East Asian ideograph - - - 226E46 - 7C4E - E7B18E - East Asian ideograph - - - 226E54 - 7C5D - E7B19D - East Asian ideograph - - - 226E56 - 7C5C - E7B19C - East Asian ideograph - - - 226E57 - 7C5A - E7B19A - East Asian ideograph - - - 226E58 - 7C5B - E7B19B - East Asian ideograph - - - 226E59 - 7C59 - E7B199 - East Asian ideograph - - - 226E5B - 7C5E - E7B19E - East Asian ideograph - - - 226E5C - 7C67 - E7B1A7 - East Asian ideograph - - - 226E5E - 7C63 - E7B1A3 - East Asian ideograph - - - 226E61 - 7C68 - E7B1A8 - East Asian ideograph - - - 226E62 - 7C65 - E7B1A5 - East Asian ideograph - - - 226E6F - 7C6F - E7B1AF - East Asian ideograph - - - 226E75 - 7C75 - E7B1B5 - East Asian ideograph - - - 226E79 - 7C7E - E7B1BE - East Asian ideograph - - - 226E7A - 7C78 - E7B1B8 - East Asian ideograph - - - 226E7D - 7C7D - E7B1BD - East Asian ideograph - - - 226F21 - 7C81 - E7B281 - East Asian ideograph - - - 226F28 - 7C8E - E7B28E - East Asian ideograph - - - 226F29 - 7C91 - E7B291 - East Asian ideograph - - - 226F2A - 7C83 - E7B283 - East Asian ideograph - - - 226F2C - 7C8D - E7B28D - East Asian ideograph - - - 226F3A - 7C99 - E7B299 - East Asian ideograph - - - 226F3B - 7C98 - E7B298 - East Asian ideograph - - - 226F3E - 7C9C - E7B29C - East Asian ideograph - - - 226F40 - 7C95 - E7B295 - East Asian ideograph - - - 226F42 - 7CA7 - E7B2A7 - East Asian ideograph - - - 226F43 - 7CA2 - E7B2A2 - East Asian ideograph - - - 226F45 - 7C9E - E7B29E - East Asian ideograph - - - 226F46 - 7CA9 - E7B2A9 - East Asian ideograph - - - 226F48 - 7CA8 - E7B2A8 - East Asian ideograph - - - 226F49 - 7CA1 - E7B2A1 - East Asian ideograph - - - 226F4A - 7CAC - E7B2AC - East Asian ideograph - - - 226F4C - 7CA6 - E7B2A6 - East Asian ideograph - - - 226F54 - 7CB2 - E7B2B2 - East Asian ideograph - - - 226F58 - 7CBB - E7B2BB - East Asian ideograph - - - 226F59 - 7CBF - E7B2BF - East Asian ideograph - - - 226F5E - 7CBA - E7B2BA - East Asian ideograph - - - 226F5F - 7CBC - E7B2BC - East Asian ideograph - - - 226F64 - 7CC2 - E7B382 - East Asian ideograph - - - 226F66 - 7CCE - E7B38E - East Asian ideograph - - - 226F68 - 7CC8 - E7B388 - East Asian ideograph - - - 226F69 - 7CC5 - E7B385 - East Asian ideograph - - - 226F6D - 7CCC - E7B38C - East Asian ideograph - - - 226F6F - 7CC9 - E7B389 - East Asian ideograph - - - 226F71 - 7CD2 - E7B392 - East Asian ideograph - - - 226F75 - 7CD7 - E7B397 - East Asian ideograph - - - 226F77 - 7CE1 - E7B3A1 - East Asian ideograph - - - 226F7B - 7CE8 - E7B3A8 - East Asian ideograph (variant of EACC 4C6F7B) - - - 227022 - 7CDD - E7B39D - East Asian ideograph - - - 227028 - 7CED - E7B3AD - East Asian ideograph - - - 22702E - 7CF0 - E7B3B0 - East Asian ideograph - - - 227030 - 7CF2 - E7B3B2 - East Asian ideograph - - - 227035 - 7CF4 - E7B3B4 - East Asian ideograph - - - 227039 - 7CF6 - E7B3B6 - East Asian ideograph - - - 227042 - 7D06 - E7B486 - East Asian ideograph - - - 227044 - 7D03 - E7B483 - East Asian ideograph - - - 227045 - 7D08 - E7B488 - East Asian ideograph - - - 227049 - 7D0F - E7B48F - East Asian ideograph - - - 22704A - 7D13 - E7B493 - East Asian ideograph - - - 227050 - 7D18 - E7B498 - East Asian ideograph - - - 227051 - 7D1E - E7B49E - East Asian ideograph - - - 227052 - 7D1D - E7B49D - East Asian ideograph - - - 227059 - 7D35 - E7B4B5 - East Asian ideograph - - - 22705A - 7D3D - E7B4BD - East Asian ideograph - - - 227061 - 7D3A - E7B4BA - East Asian ideograph - - - 227062 - 7D32 - E7B4B2 - East Asian ideograph - - - 227065 - 7D31 - E7B4B1 - East Asian ideograph - - - 227068 - 7D45 - E7B585 - East Asian ideograph - - - 22706A - 7D3F - E7B4BF - East Asian ideograph - - - 22706C - 7D29 - E7B4A9 - East Asian ideograph - - - 22706F - 7D41 - E7B581 - East Asian ideograph - - - 227071 - 7D3E - E7B4BE - East Asian ideograph - - - 22707A - 7D5C - E7B59C - East Asian ideograph - - - 22707C - 7D53 - E7B593 - East Asian ideograph - - - 22707E - 7D5A - E7B59A - East Asian ideograph - - - 227122 - 7D70 - E7B5B0 - East Asian ideograph - - - 227129 - 7D67 - E7B5A7 - East Asian ideograph - - - 22712B - 7D6A - E7B5AA - East Asian ideograph - - - 22712C - 7D6B - E7B5AB - East Asian ideograph - - - 227130 - 7D73 - E7B5B3 - East Asian ideograph - - - 227134 - 7D4E - E7B58E - East Asian ideograph - - - 227137 - 7D8B - E7B68B - East Asian ideograph - - - 227139 - 7D88 - E7B688 - East Asian ideograph - - - 22713B - 7D85 - E7B685 - East Asian ideograph - - - 22713D - 7D8E - E7B68E - East Asian ideograph - - - 227142 - 7D7F - E7B5BF - East Asian ideograph - - - 227144 - 7D86 - E7B686 - East Asian ideograph - - - 227148 - 7D8D - E7B68D - East Asian ideograph - - - 22714B - 7D9B - E7B69B - East Asian ideograph - - - 22714D - 7D83 - E7B683 - East Asian ideograph - - - 22714F - 7D7D - E7B5BD - East Asian ideograph - - - 227154 - 7D7B - E7B5BB - East Asian ideograph - - - 227158 - 7D7A - E7B5BA - East Asian ideograph - - - 227159 - 7D96 - E7B696 - East Asian ideograph - - - 22715A - 7D5B - E7B59B - East Asian ideograph - - - 22715B - 7D8C - E7B68C - East Asian ideograph - - - 227161 - 7DA3 - E7B6A3 - East Asian ideograph - - - 227162 - 7DAE - E7B6AE - East Asian ideograph - - - 227167 - 7DCB - E7B78B - East Asian ideograph - - - 227169 - 7DAA - E7B6AA - East Asian ideograph - - - 22716A - 7DCE - E7B78E - East Asian ideograph - - - 22716B - 7DC9 - E7B789 - East Asian ideograph - - - 22716E - 7DC5 - E7B785 - East Asian ideograph - - - 22716F - 7DA6 - E7B6A6 - East Asian ideograph - - - 227174 - 7DC4 - E7B784 - East Asian ideograph - - - 227178 - 7DAC - E7B6AC - East Asian ideograph - - - 22717D - 7DB9 - E7B6B9 - East Asian ideograph - - - 227222 - 7D9F - E7B69F - East Asian ideograph - - - 227229 - 7DE1 - E7B7A1 - East Asian ideograph - - - 22722A - 7DD9 - E7B799 - East Asian ideograph - - - 22722B - 7DE4 - E7B7A4 - East Asian ideograph - - - 227231 - 7DD7 - E7B797 - East Asian ideograph - - - 227236 - 7DF9 - E7B7B9 - East Asian ideograph - - - 22723A - 7E06 - E7B886 - East Asian ideograph - - - 22723C - 7DF2 - E7B7B2 - East Asian ideograph - - - 22723E - 7DE6 - E7B7A6 - East Asian ideograph - - - 227246 - 7DDC - E7B79C - East Asian ideograph - - - 227247 - 7DF1 - E7B7B1 - East Asian ideograph - - - 227248 - 7DF6 - E7B7B6 - East Asian ideograph - - - 227249 - 7DE5 - E7B7A5 - East Asian ideograph - - - 22724B - 7DF5 - E7B7B5 - East Asian ideograph - - - 227250 - 7E17 - E7B897 - East Asian ideograph - - - 227251 - 7E1E - E7B89E - East Asian ideograph - - - 227252 - 7E21 - E7B8A1 - East Asian ideograph - - - 227253 - 7E0B - E7B88B - East Asian ideograph - - - 227255 - 7E12 - E7B892 - East Asian ideograph - - - 227256 - 7E22 - E7B8A2 - East Asian ideograph - - - 22725B - 7E20 - E7B8A0 - East Asian ideograph - - - 22725D - 7E1D - E7B89D - East Asian ideograph - - - 22725E - 7E09 - E7B889 - East Asian ideograph - - - 22725F - 7E1F - E7B89F - East Asian ideograph - - - 227265 - 7E15 - E7B895 - East Asian ideograph - - - 227269 - 7E10 - E7B890 - East Asian ideograph - - - 22726A - 7E0F - E7B88F - East Asian ideograph - - - 22726D - 7E3B - E7B8BB - East Asian ideograph - - - 227271 - 7E34 - E7B8B4 - East Asian ideograph - - - 227272 - 7E2D - E7B8AD - East Asian ideograph - - - 227273 - 7E2F - E7B8AF - East Asian ideograph - - - 227275 - 7E36 - E7B8B6 - East Asian ideograph - - - 227277 - 7E3A - E7B8BA - East Asian ideograph - - - 227279 - 7E39 - E7B8B9 - East Asian ideograph - - - 22727D - 7E44 - E7B984 - East Asian ideograph - - - 227321 - 7E35 - E7B8B5 - East Asian ideograph - - - 227326 - 7E3F - E7B8BF - East Asian ideograph - - - 227328 - 7E47 - E7B987 - East Asian ideograph - - - 22732D - 7E52 - E7B992 - East Asian ideograph - - - 22732F - 7E51 - E7B991 - East Asian ideograph - - - 227333 - 7E50 - E7B990 - East Asian ideograph - - - 227334 - 7E67 - E7B9A7 - East Asian ideograph - - - 227337 - 7E56 - E7B996 - East Asian ideograph - - - 227348 - 7E68 - E7B9A8 - East Asian ideograph - - - 227349 - 7E6E - E7B9AE - East Asian ideograph - - - 22734E - 7E70 - E7B9B0 - East Asian ideograph - - - 227351 - 7E6F - E7B9AF - East Asian ideograph - - - 227352 - 7E73 - E7B9B3 - East Asian ideograph - - - 227358 - 7E7B - E7B9BB - East Asian ideograph - - - 227359 - 7E7E - E7B9BE - East Asian ideograph - - - 22735B - 7E81 - E7BA81 - East Asian ideograph - - - 22735D - 7E8A - E7BA8A - East Asian ideograph - - - 22735E - 7E87 - E7BA87 - East Asian ideograph - - - 227360 - 7E88 - E7BA88 - East Asian ideograph - - - 227364 - 7E86 - E7BA86 - East Asian ideograph - - - 22736A - 7E91 - E7BA91 - East Asian ideograph - - - 22736B - 7E95 - E7BA95 - East Asian ideograph - - - 22736D - 7E94 - E7BA94 - East Asian ideograph - - - 227370 - 7E9B - E7BA9B - East Asian ideograph - - - 227371 - 7E9A - E7BA9A - East Asian ideograph - - - 227373 - 7E99 - E7BA99 - East Asian ideograph - - - 227374 - 7E98 - E7BA98 - East Asian ideograph - - - 227425 - 7F43 - E7BD83 - East Asian ideograph - - - 227427 - 7F46 - E7BD86 - East Asian ideograph - - - 227428 - 7F45 - E7BD85 - East Asian ideograph - - - 22742B - 7F4B - E7BD8B - East Asian ideograph - - - 22742E - 7F4C - E7BD8C - East Asian ideograph - - - 22742F - 7F4D - E7BD8D - East Asian ideograph - - - 227431 - 7F4E - E7BD8E - East Asian ideograph - - - 227432 - 7F4F - E7BD8F - East Asian ideograph - - - 22743E - 7F60 - E7BDA0 - East Asian ideograph - - - 22743F - 7F61 - E7BDA1 - East Asian ideograph - - - 227443 - 7F5D - E7BD9D - East Asian ideograph - - - 227445 - 7F5B - E7BD9B - East Asian ideograph - - - 227447 - 7F63 - E7BDA3 - East Asian ideograph - - - 227450 - 7F65 - E7BDA5 - East Asian ideograph - - - 227451 - 7F66 - E7BDA6 - East Asian ideograph - - - 227453 - 7F6D - E7BDAD - East Asian ideograph - - - 227454 - 7F6B - E7BDAB - East Asian ideograph - - - 227455 - 7F67 - E7BDA7 - East Asian ideograph - - - 227457 - 7F68 - E7BDA8 - East Asian ideograph - - - 22745E - 7F71 - E7BDB1 - East Asian ideograph - - - 227460 - 7F73 - E7BDB3 - East Asian ideograph - - - 227463 - 7F76 - E7BDB6 - East Asian ideograph - - - 22746A - 7F7F - E7BDBF - East Asian ideograph - - - 22746B - 7F7E - E7BDBE - East Asian ideograph - - - 22746C - 7F7D - E7BDBD - East Asian ideograph - - - 227472 - 7F86 - E7BE86 - East Asian ideograph - - - 22747A - 7F91 - E7BE91 - East Asian ideograph - - - 22747E - 7F96 - E7BE96 - East Asian ideograph - - - 227523 - 7F97 - E7BE97 - East Asian ideograph - - - 227524 - 7F95 - E7BE95 - East Asian ideograph - - - 22752C - 7FA2 - E7BEA2 - East Asian ideograph - - - 227533 - 7FA7 - E7BEA7 - East Asian ideograph - - - 22753B - 7FB0 - E7BEB0 - East Asian ideograph - - - 22753C - 7FAD - E7BEAD - East Asian ideograph - - - 22753F - 7FB1 - E7BEB1 - East Asian ideograph - - - 227540 - 7FB4 - E7BEB4 - East Asian ideograph - - - 227542 - 7FB5 - E7BEB5 - East Asian ideograph - - - 22754A - 7FBC - E7BEBC - East Asian ideograph - - - 22754C - 7FBE - E7BEBE - East Asian ideograph - - - 227551 - 7FC3 - E7BF83 - East Asian ideograph - - - 227557 - 7FCA - E7BF8A - East Asian ideograph - - - 227567 - 7FDB - E7BF9B - East Asian ideograph - - - 227568 - 7FE3 - E7BFA3 - East Asian ideograph - - - 22756C - 7FE6 - E7BFA6 - East Asian ideograph - - - 22756F - 7FE5 - E7BFA5 - East Asian ideograph - - - 227572 - 7FEC - E7BFAC - East Asian ideograph - - - 227573 - 7FEB - E7BFAB - East Asian ideograph - - - 227577 - 7FEF - E7BFAF - East Asian ideograph - - - 22757A - 7FEE - E7BFAE - East Asian ideograph - - - 227629 - 7FFD - E7BFBD - East Asian ideograph - - - 22762A - 7FFE - E7BFBE - East Asian ideograph - - - 22762C - 7FFF - E7BFBF - East Asian ideograph - - - 22762E - 8004 - E88084 - East Asian ideograph - - - 227631 - 8008 - E88088 - East Asian ideograph - - - 227633 - 800B - E8808B - East Asian ideograph - - - 227634 - 800E - E8808E - East Asian ideograph - - - 227635 - 8011 - E88091 - East Asian ideograph - - - 227636 - 800F - E8808F - East Asian ideograph - - - 227637 - 8014 - E88094 - East Asian ideograph - - - 227639 - 8016 - E88096 - East Asian ideograph - - - 22763B - 801F - E8809F - East Asian ideograph - - - 22763D - 801E - E8809E - East Asian ideograph - - - 22763E - 801D - E8809D - East Asian ideograph - - - 22764B - 8025 - E880A5 - East Asian ideograph - - - 22764C - 8026 - E880A6 - East Asian ideograph - - - 22764D - 802A - E880AA - East Asian ideograph - - - 22764E - 8029 - E880A9 - East Asian ideograph - - - 22764F - 8028 - E880A8 - East Asian ideograph - - - 22765B - 8030 - E880B0 - East Asian ideograph - - - 22765D - 8031 - E880B1 - East Asian ideograph - - - 227660 - 8035 - E880B5 - East Asian ideograph - - - 227669 - 8039 - E880B9 - East Asian ideograph - - - 22766B - 8041 - E88181 - East Asian ideograph - - - 227670 - 8043 - E88183 - East Asian ideograph - - - 22767B - 8052 - E88192 - East Asian ideograph - - - 22767E - 8062 - E881A2 - East Asian ideograph - - - 227728 - 8063 - E881A3 - East Asian ideograph - - - 227732 - 806C - E881AC - East Asian ideograph - - - 227739 - 8075 - E881B5 - East Asian ideograph - - - 22773E - 807B - E881BB - East Asian ideograph - - - 22773F - 8079 - E881B9 - East Asian ideograph - - - 227747 - 808A - E8828A - East Asian ideograph - - - 227749 - 808E - E8828E - East Asian ideograph - - - 22774E - 809F - E8829F - East Asian ideograph - - - 22775C - 670A - E69C8A - East Asian ideograph - - - 227760 - 80A7 - E882A7 - East Asian ideograph - - - 227761 - 80B0 - E882B0 - East Asian ideograph - - - 227768 - 80B8 - E882B8 - East Asian ideograph - - - 227769 - 80B5 - E882B5 - East Asian ideograph - - - 22776A - 80A6 - E882A6 - East Asian ideograph - - - 227773 - 80E0 - E883A0 - East Asian ideograph - - - 227775 - 6711 - E69C91 - East Asian ideograph - - - 22777B - 80DF - E8839F - East Asian ideograph - - - 22777D - 80C2 - E88382 - East Asian ideograph - - - 227827 - 80D9 - E88399 - East Asian ideograph - - - 22782A - 80DD - E8839D - East Asian ideograph - - - 22782D - 80CF - E8838F - East Asian ideograph - - - 22782F - 80CD - E8838D - East Asian ideograph - - - 227830 - 80D7 - E88397 - East Asian ideograph - - - 227833 - 80F2 - E883B2 - East Asian ideograph - - - 227834 - 80FA - E883BA - East Asian ideograph - - - 227838 - 80FE - E883BE - East Asian ideograph - - - 22783C - 8103 - E88483 - East Asian ideograph - - - 227840 - 80F9 - E883B9 - East Asian ideograph - - - 227841 - 80EF - E883AF - East Asian ideograph - - - 227842 - 80D4 - E88394 - East Asian ideograph - - - 227849 - 811D - E8849D - East Asian ideograph - - - 22784B - 8118 - E88498 - East Asian ideograph - - - 227850 - 8130 - E884B0 - East Asian ideograph - - - 227854 - 8124 - E884A4 - East Asian ideograph - - - 227855 - 811B - E8849B - East Asian ideograph - - - 227860 - 812A - E884AA - East Asian ideograph - - - 227861 - 811E - E8849E - East Asian ideograph - - - 227864 - 8121 - E884A1 - East Asian ideograph - - - 227866 - 8117 - E88497 - East Asian ideograph - - - 227869 - 813A - E884BA - East Asian ideograph - - - 22786A - 815A - E8859A - East Asian ideograph - - - 22786D - 8148 - E88588 - East Asian ideograph - - - 227877 - 814C - E8858C - East Asian ideograph - - - 22787C - 8153 - E88593 - East Asian ideograph - - - 22787D - 8141 - E88581 - East Asian ideograph - - - 227925 - 814D - E8858D - East Asian ideograph - - - 22792E - 6720 - E69CA0 - East Asian ideograph - - - 227932 - 8160 - E885A0 - East Asian ideograph - - - 22793B - 8169 - E885A9 - East Asian ideograph - - - 22793C - 817C - E885BC - East Asian ideograph - - - 227941 - 8161 - E885A1 - East Asian ideograph - - - 227946 - 8176 - E885B6 - East Asian ideograph - - - 227947 - 8174 - E885B4 - East Asian ideograph - - - 227948 - 8167 - E885A7 - East Asian ideograph - - - 22794B - 816F - E885AF - East Asian ideograph - - - 22794D - 8182 - E88682 - East Asian ideograph - - - 227951 - 818B - E8868B - East Asian ideograph - - - 227952 - 8186 - E88686 - East Asian ideograph - - - 227959 - 8183 - E88683 - East Asian ideograph - - - 22796A - 819F - E8869F - East Asian ideograph - - - 22796B - 81A3 - E886A3 - East Asian ideograph - - - 227970 - 8198 - E88698 - East Asian ideograph - - - 227975 - 8195 - E88695 - East Asian ideograph - - - 227977 - 8197 - E88697 - East Asian ideograph - - - 22797C - 81AA - E886AA - East Asian ideograph - - - 22797D - 81A6 - E886A6 - East Asian ideograph - - - 22797E - 6725 - E69CA5 - East Asian ideograph - - - 227A2C - 81B5 - E886B5 - East Asian ideograph - - - 227A2E - 81B0 - E886B0 - East Asian ideograph - - - 227A2F - 81B4 - E886B4 - East Asian ideograph - - - 227A33 - 81B7 - E886B7 - East Asian ideograph - - - 227A37 - 81BB - E886BB - East Asian ideograph - - - 227A38 - 81C1 - E88781 - East Asian ideograph - - - 227A39 - 81CC - E8878C - East Asian ideograph - - - 227A3A - 81CA - E8878A - East Asian ideograph - - - 227A3B - 81C4 - E88784 - East Asian ideograph - - - 227A40 - 81D1 - E88791 - East Asian ideograph - - - 227A41 - 81CE - E8878E - East Asian ideograph - - - 227A43 - 81D0 - E88790 - East Asian ideograph - - - 227A4B - 81DB - E8879B - East Asian ideograph - - - 227A4F - 81DD - E8879D - East Asian ideograph - - - 227A53 - 81DE - E8879E - East Asian ideograph - - - 227A56 - 81E0 - E887A0 - East Asian ideograph - - - 227A57 - 81E2 - E887A2 - East Asian ideograph - - - 227A5B - 81E7 - E887A7 - East Asian ideograph - - - 227A60 - 81EF - E887AF - East Asian ideograph - - - 227A65 - 81F2 - E887B2 - East Asian ideograph - - - 227A68 - 81F6 - E887B6 - East Asian ideograph - - - 227A70 - 8201 - E88881 - East Asian ideograph - - - 227A72 - 8201 - E88881 - East Asian ideograph - - - 227A74 - 8203 - E88883 - East Asian ideograph - - - 227A75 - 8204 - E88884 - East Asian ideograph - - - 227A77 - 820B - E8888B - East Asian ideograph - - - 227B27 - 821D - E8889D - East Asian ideograph - - - 227B29 - 8220 - E888A0 - East Asian ideograph - - - 227B2E - 822D - E888AD - East Asian ideograph - - - 227B2F - 822F - E888AF - East Asian ideograph - - - 227B32 - 8238 - E888B8 - East Asian ideograph - - - 227B34 - 823A - E888BA - East Asian ideograph - - - 227B35 - 8233 - E888B3 - East Asian ideograph - - - 227B36 - 8234 - E888B4 - East Asian ideograph - - - 227B3A - 8232 - E888B2 - East Asian ideograph - - - 227B42 - 8248 - E88988 - East Asian ideograph - - - 227B43 - 8249 - E88989 - East Asian ideograph - - - 227B45 - 8244 - E88984 - East Asian ideograph - - - 227B47 - 8240 - E88980 - East Asian ideograph - - - 227B48 - 8241 - E88981 - East Asian ideograph - - - 227B4A - 8245 - E88985 - East Asian ideograph - - - 227B4B - 824B - E8898B - East Asian ideograph - - - 227B50 - 824F - E8898F - East Asian ideograph - - - 227B53 - 824E - E8898E - East Asian ideograph - - - 227B56 - 8256 - E88996 - East Asian ideograph - - - 227B57 - 8257 - E88997 - East Asian ideograph - - - 227B5E - 825A - E8899A - East Asian ideograph - - - 227B62 - 825F - E8899F - East Asian ideograph - - - 227B67 - 8262 - E889A2 - East Asian ideograph - - - 227B6B - 8268 - E889A8 - East Asian ideograph - - - 227B6F - 826D - E889AD - East Asian ideograph - - - 227B77 - 8278 - E889B8 - East Asian ideograph - - - 227B7D - 827F - E889BF - East Asian ideograph - - - 227C24 - 828E - E88A8E - East Asian ideograph - - - 227C25 - 8291 - E88A91 - East Asian ideograph - - - 227C27 - 828F - E88A8F - East Asian ideograph - - - 227C28 - 8284 - E88A84 - East Asian ideograph - - - 227C2D - 8283 - E88A83 - East Asian ideograph - - - 227C2E - 828A - E88A8A - East Asian ideograph - - - 227C31 - 82AF - E88AAF - East Asian ideograph - - - 227C34 - 82A7 - E88AA7 - East Asian ideograph - - - 227C38 - 82AB - E88AAB - East Asian ideograph - - - 227C3A - 82B0 - E88AB0 - East Asian ideograph - - - 227C3C - 82A4 - E88AA4 - East Asian ideograph - - - 227C3F - 829A - E88A9A - East Asian ideograph - - - 227C42 - 82A3 - E88AA3 - East Asian ideograph - - - 227C44 - 82B7 - E88AB7 - East Asian ideograph - - - 227C45 - 82AE - E88AAE - East Asian ideograph (variant of EACC 4C7C45) - - - 227C46 - 82A9 - E88AA9 - East Asian ideograph - - - 227C49 - 82BC - E88ABC - East Asian ideograph - - - 227C4C - 82A8 - E88AA8 - East Asian ideograph - - - 227C4E - 82B4 - E88AB4 - East Asian ideograph - - - 227C50 - 82A1 - E88AA1 - East Asian ideograph - - - 227C53 - 82AA - E88AAA - East Asian ideograph - - - 227C55 - 82D9 - E88B99 - East Asian ideograph - - - 227C57 - 82FE - E88BBE - East Asian ideograph - - - 227C5A - 82E0 - E88BA0 - East Asian ideograph - - - 227C5B - 82D0 - E88B90 - East Asian ideograph - - - 227C5C - 8300 - E88C80 - East Asian ideograph - - - 227C5F - 82EA - E88BAA - East Asian ideograph - - - 227C60 - 82F7 - E88BB7 - East Asian ideograph - - - 227C62 - 82EF - E88BAF - East Asian ideograph - - - 227C63 - 833A - E88CBA - East Asian ideograph - - - 227C64 - 82E4 - E88BA4 - East Asian ideograph - - - 227C65 - 82D5 - E88B95 - East Asian ideograph - - - 227C67 - 8307 - E88C87 - East Asian ideograph - - - 227C68 - 82FA - E88BBA - East Asian ideograph - - - 227C69 - 82F4 - E88BB4 - East Asian ideograph - - - 227C6A - 82E2 - E88BA2 - East Asian ideograph - - - 227C6D - 82D2 - E88B92 - East Asian ideograph - - - 227C6E - 8314 - E88C94 - East Asian ideograph - - - 227C71 - 82EB - E88BAB - East Asian ideograph - - - 227C72 - 82D8 - E88B98 - East Asian ideograph - - - 227C73 - 82E1 - E88BA1 - East Asian ideograph - - - 227C75 - 82F6 - E88BB6 - East Asian ideograph - - - 227C7B - 8310 - E88C90 - East Asian ideograph - - - 227C7C - 82F3 - E88BB3 - East Asian ideograph - - - 227D21 - 830C - E88C8C - East Asian ideograph - - - 227D22 - 82FB - E88BBB - East Asian ideograph - - - 227D24 - 82FD - E88BBD - East Asian ideograph - - - 227D26 - 8333 - E88CB3 - East Asian ideograph - - - 227D29 - 8328 - E88CA8 - East Asian ideograph - - - 227D2B - 8344 - E88D84 - East Asian ideograph - - - 227D2E - 8351 - E88D91 - East Asian ideograph - - - 227D35 - 831B - E88C9B - East Asian ideograph - - - 227D3B - 8356 - E88D96 - East Asian ideograph - - - 227D3F - 8322 - E88CA2 - East Asian ideograph - - - 227D40 - 832C - E88CAC - East Asian ideograph - - - 227D48 - 833C - E88CBC - East Asian ideograph - - - 227D4A - 834D - E88D8D - East Asian ideograph - - - 227D4D - 8343 - E88D83 - East Asian ideograph (variant of EACC 4C7D4D) - - - 227D52 - 832F - E88CAF - East Asian ideograph - - - 227D53 - 8348 - E88D88 - East Asian ideograph - - - 227D54 - 8312 - E88C92 - East Asian ideograph - - - 227D56 - 8316 - E88C96 - East Asian ideograph - - - 227D58 - 831A - E88C9A - East Asian ideograph - - - 227D5F - 8347 - E88D87 - East Asian ideograph - - - 227D62 - 83A8 - E88EA8 - East Asian ideograph - - - 227D67 - 83AD - E88EAD - East Asian ideograph - - - 227D6D - 8373 - E88DB3 - East Asian ideograph - - - 227D72 - 83B0 - E88EB0 - East Asian ideograph - - - 227D76 - 831D - E88C9D - East Asian ideograph - - - 227D7A - 838F - E88E8F - East Asian ideograph - - - 227D7C - 8395 - E88E95 - East Asian ideograph - - - 227D7E - 8375 - E88DB5 - East Asian ideograph - - - 227E21 - 837F - E88DBF - East Asian ideograph - - - 227E22 - 8399 - E88E99 - East Asian ideograph - - - 227E23 - 83A6 - E88EA6 - East Asian ideograph - - - 227E25 - 8387 - E88E87 - East Asian ideograph - - - 227E26 - 83B9 - E88EB9 - East Asian ideograph - - - 227E2B - 83A9 - E88EA9 - East Asian ideograph - - - 227E2F - 839B - E88E9B - East Asian ideograph - - - 227E33 - 83AA - E88EAA - East Asian ideograph - - - 227E37 - 839C - E88E9C - East Asian ideograph - - - 227E38 - 839F - E88E9F - East Asian ideograph - - - 227E41 - 83CF - E88F8F - East Asian ideograph - - - 227E43 - 83F9 - E88FB9 - East Asian ideograph - - - 227E45 - 8421 - E890A1 - East Asian ideograph - - - 227E51 - 8423 - E890A3 - East Asian ideograph - - - 227E52 - 83EA - E88FAA - East Asian ideograph - - - 227E53 - 8413 - E89093 - East Asian ideograph - - - 227E56 - 83FC - E88FBC - East Asian ideograph - - - 227E57 - 83F6 - E88FB6 - East Asian ideograph - - - 227E59 - 8410 - E89090 - East Asian ideograph - - - 227E5A - 83E1 - E88FA1 - East Asian ideograph - - - 227E60 - 83C6 - E88F86 - East Asian ideograph - - - 227E61 - 8407 - E89087 - East Asian ideograph - - - 227E63 - 83EB - E88FAB - East Asian ideograph - - - 227E6A - 83BF - E88EBF - East Asian ideograph - - - 227E6B - 83E2 - E88FA2 - East Asian ideograph - - - 227E6D - 8401 - E89081 - East Asian ideograph - - - 227E71 - 83D8 - E88F98 - East Asian ideograph - - - 227E72 - 83E5 - E88FA5 - East Asian ideograph - - - 227E74 - 8418 - E89098 - East Asian ideograph - - - 227E79 - 83CE - E88F8E - East Asian ideograph - - - 227E7B - 83D3 - E88F93 - East Asian ideograph - - - 227E7D - 83D6 - E88F96 - East Asian ideograph - - - 232223 - 83FD - E88FBD - East Asian ideograph - - - 232225 - 841E - E8909E - East Asian ideograph - - - 232229 - 83C9 - E88F89 - East Asian ideograph - - - 23222A - 83DF - E88F9F - East Asian ideograph - - - 23222C - 841F - E8909F - East Asian ideograph - - - 23222E - 840F - E8908F - East Asian ideograph - - - 232230 - 8411 - E89091 - East Asian ideograph - - - 232236 - 839A - E88E9A - East Asian ideograph - - - 23223C - 83F3 - E88FB3 - East Asian ideograph - - - 232243 - 83D1 - E88F91 - East Asian ideograph - - - 232248 - 8453 - E89193 - East Asian ideograph - - - 23224A - 848E - E8928E - East Asian ideograph - - - 23224C - 8439 - E890B9 - East Asian ideograph - - - 23224D - 8476 - E891B6 - East Asian ideograph - - - 23224E - 8479 - E891B9 - East Asian ideograph - - - 23225C - 8451 - E89191 - East Asian ideograph - - - 23225F - 847D - E891BD - East Asian ideograph - - - 232262 - 845A - E8919A - East Asian ideograph - - - 232266 - 8459 - E89199 - East Asian ideograph - - - 232269 - 8473 - E891B3 - East Asian ideograph - - - 23226E - 843E - E890BE - East Asian ideograph - - - 232271 - 846D - E891AD - East Asian ideograph - - - 232278 - 847A - E891BA - East Asian ideograph - - - 23227B - 8484 - E89284 - East Asian ideograph - - - 23227C - 8478 - E891B8 - East Asian ideograph - - - 232324 - 8432 - E890B2 - East Asian ideograph - - - 232329 - 845C - E8919C - East Asian ideograph - - - 23232D - 842A - E890AA - East Asian ideograph - - - 23232E - 8429 - E890A9 - East Asian ideograph - - - 232332 - 8471 - E891B1 - East Asian ideograph - - - 232335 - 845F - E8919F - East Asian ideograph - - - 232336 - 8460 - E891A0 - East Asian ideograph - - - 232337 - 846E - E891AE - East Asian ideograph - - - 23233A - 8446 - E89186 - East Asian ideograph - - - 23233C - 8452 - E89192 - East Asian ideograph - - - 23233F - 844A - E8918A - East Asian ideograph - - - 232345 - 844E - E8918E - East Asian ideograph - - - 232349 - 8497 - E89297 - East Asian ideograph - - - 232350 - 84A1 - E892A1 - East Asian ideograph - - - 232353 - 849F - E8929F - East Asian ideograph - - - 232356 - 84BA - E892BA - East Asian ideograph - - - 232358 - 84B9 - E892B9 - East Asian ideograph - - - 23235C - 84B4 - E892B4 - East Asian ideograph - - - 23235E - 84C1 - E89381 - East Asian ideograph - - - 23235F - 84BB - E892BB - East Asian ideograph - - - 232368 - 84CD - E8938D - East Asian ideograph - - - 232370 - 84B1 - E892B1 - East Asian ideograph - - - 232371 - 849D - E8929D - East Asian ideograph - - - 232372 - 84D0 - E89390 - East Asian ideograph - - - 232375 - 8494 - E89294 - East Asian ideograph - - - 232379 - 84C7 - E89387 - East Asian ideograph - - - 23237A - 84BD - E892BD - East Asian ideograph - - - 23237C - 84C2 - E89382 - East Asian ideograph - - - 232421 - 8495 - E89295 - East Asian ideograph - - - 232427 - 84AF - E892AF - East Asian ideograph - - - 232429 - 84AD - E892AD - East Asian ideograph - - - 232432 - 84A8 - E892A8 - East Asian ideograph - - - 232433 - 84D6 - E89396 - East Asian ideograph - - - 232435 - 84DA - E8939A - East Asian ideograph - - - 23243A - 8493 - E89293 - East Asian ideograph - - - 23243F - 84CF - E8938F - East Asian ideograph - - - 232441 - 84CA - E8938A - East Asian ideograph - - - 232446 - 8506 - E89486 - East Asian ideograph - - - 232447 - 850B - E8948B - East Asian ideograph - - - 23244D - 8500 - E89480 - East Asian ideograph - - - 232459 - 851F - E8949F - East Asian ideograph - - - 23245C - 853B - E894BB - East Asian ideograph - - - 23245F - 84EA - E893AA - East Asian ideograph - - - 232466 - 84F4 - E893B4 - East Asian ideograph - - - 23246A - 850C - E8948C - East Asian ideograph - - - 232472 - 852F - E894AF - East Asian ideograph - - - 232475 - 8515 - E89495 - East Asian ideograph - - - 232477 - 84F7 - E893B7 - East Asian ideograph - - - 23247A - 84FC - E893BC - East Asian ideograph - - - 23247C - 84EB - E893AB - East Asian ideograph - - - 23247D - 84FD - E893BD - East Asian ideograph - - - 232524 - 851E - E8949E - East Asian ideograph - - - 23252A - 8518 - E89498 - East Asian ideograph - - - 23252D - 8526 - E894A6 - East Asian ideograph - - - 23252E - 8507 - E89487 - East Asian ideograph (variant of EACC 2F252E) - - - 23252F - 84E7 - E893A7 - East Asian ideograph - - - 232534 - 84F0 - E893B0 - East Asian ideograph - - - 232535 - 84EF - E893AF - East Asian ideograph - - - 232536 - 8556 - E89596 - East Asian ideograph - - - 232546 - 8541 - E89581 - East Asian ideograph - - - 23254B - 8558 - E89598 - East Asian ideograph - - - 23254D - 8553 - E89593 - East Asian ideograph - - - 23254E - 8561 - E895A1 - East Asian ideograph - - - 23254F - 8540 - E89580 - East Asian ideograph - - - 23255A - 8546 - E89586 - East Asian ideograph - - - 23255C - 8564 - E895A4 - East Asian ideograph - - - 23255D - 855E - E8959E - East Asian ideograph - - - 23255E - 8573 - E895B3 - East Asian ideograph - - - 23255F - 8551 - E89591 - East Asian ideograph - - - 232564 - 8562 - E895A2 - East Asian ideograph - - - 23256B - 8563 - E895A3 - East Asian ideograph - - - 23256C - 848D - E8928D - East Asian ideograph - - - 23256D - 8542 - E89582 - East Asian ideograph - - - 232571 - 854E - E8958E - East Asian ideograph - - - 232574 - 8555 - E89595 - East Asian ideograph - - - 232576 - 855D - E8959D - East Asian ideograph - - - 232577 - 858C - E8968C - East Asian ideograph - - - 232625 - 8580 - E89680 - East Asian ideograph - - - 232628 - 858F - E8968F - East Asian ideograph - - - 23262D - 8579 - E895B9 - East Asian ideograph - - - 232632 - 857F - E895BF - East Asian ideograph - - - 232633 - 8577 - E895B7 - East Asian ideograph - - - 232634 - 8578 - E895B8 - East Asian ideograph - - - 232635 - 8598 - E89698 - East Asian ideograph - - - 232636 - 857B - E895BB - East Asian ideograph - - - 23263D - 85A4 - E896A4 - East Asian ideograph - - - 232642 - 857A - E895BA - East Asian ideograph - - - 232644 - 8597 - E89697 - East Asian ideograph - - - 232645 - 8557 - E89597 - East Asian ideograph - - - 232649 - 85A8 - E896A8 - East Asian ideograph - - - 23264E - 8586 - E89686 - East Asian ideograph - - - 232650 - 8599 - E89699 - East Asian ideograph - - - 232651 - 858A - E8968A - East Asian ideograph - - - 232652 - 85A2 - E896A2 - East Asian ideograph - - - 232654 - 8590 - E89690 - East Asian ideograph - - - 232656 - 8585 - E89685 - East Asian ideograph - - - 232657 - 8588 - E89688 - East Asian ideograph - - - 23265A - 85B8 - E896B8 - East Asian ideograph - - - 23265D - 85C1 - E89781 - East Asian ideograph - - - 232661 - 85BA - E896BA - East Asian ideograph - - - 232668 - 85CE - E8978E - East Asian ideograph - - - 23266A - 85C2 - E89782 - East Asian ideograph - - - 23266B - 85B7 - E896B7 - East Asian ideograph - - - 23266C - 85B9 - E896B9 - East Asian ideograph - - - 23266E - 85B3 - E896B3 - East Asian ideograph - - - 23266F - 85BD - E896BD - East Asian ideograph - - - 232670 - 85C4 - E89784 - East Asian ideograph - - - 232672 - 85BF - E896BF - East Asian ideograph - - - 232675 - 85BE - E896BE - East Asian ideograph - - - 23267E - 85B6 - E896B6 - East Asian ideograph - - - 232724 - 8624 - E898A4 - East Asian ideograph - - - 232728 - 85F7 - E897B7 - East Asian ideograph - - - 23272C - 85E6 - E897A6 - East Asian ideograph - - - 23272E - 85D4 - E89794 - East Asian ideograph - - - 232731 - 85ED - E897AD - East Asian ideograph - - - 232739 - 85DA - E8979A - East Asian ideograph - - - 232743 - 85DF - E8979F - East Asian ideograph - - - 232745 - 85D8 - E89798 - East Asian ideograph - - - 23274C - 85DC - E8979C - East Asian ideograph - - - 23274E - 85F5 - E897B5 - East Asian ideograph - - - 232752 - 8622 - E898A2 - East Asian ideograph - - - 232754 - 8610 - E89890 - East Asian ideograph - - - 232757 - 85FC - E897BC - East Asian ideograph - - - 23275B - 85FF - E897BF - East Asian ideograph - - - 23275E - 85FE - E897BE - East Asian ideograph - - - 232760 - 8600 - E89880 - East Asian ideograph - - - 232768 - 8604 - E89884 - East Asian ideograph - - - 232771 - 8605 - E89885 - East Asian ideograph - - - 232775 - 862B - E898AB - East Asian ideograph - - - 232822 - 8627 - E898A7 - East Asian ideograph - - - 232826 - 8629 - E898A9 - East Asian ideograph - - - 232832 - 8637 - E898B7 - East Asian ideograph - - - 232838 - 8636 - E898B6 - East Asian ideograph - - - 23283E - 863C - E898BC - East Asian ideograph - - - 23283F - 8640 - E89980 - East Asian ideograph - - - 232840 - 863A - E898BA - East Asian ideograph - - - 23284C - 8645 - E89985 - East Asian ideograph - - - 232859 - 864D - E8998D - East Asian ideograph - - - 23285A - 8653 - E89993 - East Asian ideograph - - - 23285E - 8659 - E89999 - East Asian ideograph - - - 232866 - 8661 - E899A1 - East Asian ideograph - - - 232869 - 8662 - E899A2 - East Asian ideograph - - - 23286A - 8663 - E899A3 - East Asian ideograph - - - 232871 - 8669 - E899A9 - East Asian ideograph - - - 232878 - 866C - E899AC - East Asian ideograph - - - 23287B - 8672 - E899B2 - East Asian ideograph - - - 23287C - 866F - E899AF - East Asian ideograph - - - 23287E - 867B - E899BB - East Asian ideograph - - - 232925 - 867A - E899BA - East Asian ideograph - - - 232926 - 8673 - E899B3 - East Asian ideograph - - - 232927 - 867C - E899BC - East Asian ideograph - - - 23292E - 8696 - E89A96 - East Asian ideograph - - - 23292F - 86A8 - E89AA8 - East Asian ideograph - - - 232936 - 8691 - E89A91 - East Asian ideograph - - - 232937 - 869C - E89A9C - East Asian ideograph - - - 232939 - 8698 - E89A98 - East Asian ideograph - - - 23293C - 868D - E89A8D - East Asian ideograph - - - 23293D - 868B - E89A8B - East Asian ideograph - - - 232940 - 86A6 - E89AA6 - East Asian ideograph - - - 232942 - 869D - E89A9D - East Asian ideograph - - - 232946 - 86A0 - E89AA0 - East Asian ideograph - - - 232948 - 86A7 - E89AA7 - East Asian ideograph - - - 23294B - 86BF - E89ABF - East Asian ideograph - - - 232958 - 86BA - E89ABA - East Asian ideograph - - - 232959 - 86B0 - E89AB0 - East Asian ideograph - - - 232960 - 86B3 - E89AB3 - East Asian ideograph - - - 232962 - 86C9 - E89B89 - East Asian ideograph - - - 232963 - 86B4 - E89AB4 - East Asian ideograph - - - 232967 - 86D8 - E89B98 - East Asian ideograph - - - 23296E - 86E3 - E89BA3 - East Asian ideograph - - - 23296F - 86E9 - E89BA9 - East Asian ideograph - - - 232971 - 86EC - E89BAC - East Asian ideograph - - - 232974 - 86D5 - E89B95 - East Asian ideograph - - - 232977 - 86D0 - E89B90 - East Asian ideograph - - - 23297A - 86D1 - E89B91 - East Asian ideograph - - - 23297E - 86DE - E89B9E - East Asian ideograph - - - 232A25 - 870B - E89C8B - East Asian ideograph - - - 232A2F - 86FA - E89BBA - East Asian ideograph - - - 232A33 - 86F8 - E89BB8 - East Asian ideograph - - - 232A34 - 8706 - E89C86 - East Asian ideograph - - - 232A36 - 870E - E89C8E - East Asian ideograph - - - 232A38 - 8709 - E89C89 - East Asian ideograph - - - 232A3A - 870A - E89C8A - East Asian ideograph - - - 232A3E - 870D - E89C8D - East Asian ideograph - - - 232A42 - 874A - E89D8A - East Asian ideograph - - - 232A43 - 8723 - E89CA3 - East Asian ideograph - - - 232A44 - 8737 - E89CB7 - East Asian ideograph - - - 232A45 - 8728 - E89CA8 - East Asian ideograph - - - 232A49 - 8740 - E89D80 - East Asian ideograph - - - 232A4B - 872E - E89CAE - East Asian ideograph - - - 232A4C - 873D - E89CBD - East Asian ideograph - - - 232A4E - 871E - E89C9E - East Asian ideograph - - - 232A53 - 8743 - E89D83 - East Asian ideograph - - - 232A55 - 8744 - E89D84 - East Asian ideograph - - - 232A57 - 873E - E89CBE - East Asian ideograph - - - 232A59 - 8729 - E89CA9 - East Asian ideograph - - - 232A5A - 8739 - E89CB9 - East Asian ideograph - - - 232A5F - 871A - E89C9A - East Asian ideograph - - - 232A64 - 8731 - E89CB1 - East Asian ideograph - - - 232A65 - 8711 - E89C91 - East Asian ideograph - - - 232A66 - 8712 - E89C92 - East Asian ideograph - - - 232A6B - 874F - E89D8F - East Asian ideograph - - - 232A6C - 8771 - E89DB1 - East Asian ideograph - - - 232A6D - 8763 - E89DA3 - East Asian ideograph - - - 232A71 - 8764 - E89DA4 - East Asian ideograph - - - 232A73 - 8765 - E89DA5 - East Asian ideograph - - - 232A74 - 877D - E89DBD - East Asian ideograph - - - 232A79 - 8758 - E89D98 - East Asian ideograph - - - 232A7B - 877B - E89DBB - East Asian ideograph - - - 232B21 - 8761 - E89DA1 - East Asian ideograph - - - 232B24 - 876A - E89DAA - East Asian ideograph - - - 232B27 - 874E - E89D8E - East Asian ideograph - - - 232B28 - 875F - E89D9F - East Asian ideograph - - - 232B2D - 876F - E89DAF - East Asian ideograph - - - 232B2E - 875D - E89D9D - East Asian ideograph - - - 232B30 - 876E - E89DAE - East Asian ideograph - - - 232B33 - 874D - E89D8D - East Asian ideograph - - - 232B35 - 8753 - E89D93 - East Asian ideograph - - - 232B3A - 87A3 - E89EA3 - East Asian ideograph - - - 232B3D - 8793 - E89E93 - East Asian ideograph - - - 232B45 - 8799 - E89E99 - East Asian ideograph - - - 232B48 - 8788 - E89E88 - East Asian ideograph - - - 232B4C - 8798 - E89E98 - East Asian ideograph - - - 232B53 - 8785 - E89E85 - East Asian ideograph - - - 232B54 - 878B - E89E8B - East Asian ideograph - - - 232B55 - 8784 - E89E84 - East Asian ideograph - - - 232B58 - 87A9 - E89EA9 - East Asian ideograph - - - 232B5D - 8789 - E89E89 - East Asian ideograph - - - 232B60 - 87AD - E89EAD - East Asian ideograph - - - 232B66 - 87BE - E89EBE - East Asian ideograph - - - 232B6E - 87C4 - E89F84 - East Asian ideograph - - - 232B6F - 87AF - E89EAF - East Asian ideograph - - - 232B72 - 87AC - E89EAC - East Asian ideograph - - - 232B78 - 87AE - E89EAE - East Asian ideograph - - - 232B7E - 87BF - E89EBF - East Asian ideograph - - - 232C24 - 87BD - E89EBD - East Asian ideograph - - - 232C2C - 87EE - E89FAE - East Asian ideograph - - - 232C30 - 87F3 - E89FB3 - East Asian ideograph - - - 232C31 - 87F0 - E89FB0 - East Asian ideograph - - - 232C34 - 87EA - E89FAA - East Asian ideograph - - - 232C36 - 87DB - E89F9B - East Asian ideograph - - - 232C37 - 87E2 - E89FA2 - East Asian ideograph - - - 232C39 - 87EB - E89FAB - East Asian ideograph - - - 232C3A - 87D6 - E89F96 - East Asian ideograph - - - 232C3F - 87F5 - E89FB5 - East Asian ideograph - - - 232C47 - 87E0 - E89FA0 - East Asian ideograph - - - 232C48 - 87D3 - E89F93 - East Asian ideograph - - - 232C49 - 87DC - E89F9C - East Asian ideograph - - - 232C4C - 87E3 - E89FA3 - East Asian ideograph - - - 232C4D - 8801 - E8A081 - East Asian ideograph - - - 232C4F - 8803 - E8A083 - East Asian ideograph - - - 232C50 - 880A - E8A08A - East Asian ideograph - - - 232C55 - 87F6 - E89FB6 - East Asian ideograph - - - 232C57 - 87F7 - E89FB7 - East Asian ideograph - - - 232C5C - 880B - E8A08B - East Asian ideograph - - - 232C5D - 8806 - E8A086 - East Asian ideograph - - - 232C5F - 87FE - E89FBE - East Asian ideograph - - - 232C61 - 8810 - E8A090 - East Asian ideograph - - - 232C63 - 8819 - E8A099 - East Asian ideograph - - - 232C64 - 8811 - E8A091 - East Asian ideograph - - - 232C66 - 8818 - E8A098 - East Asian ideograph - - - 232C6A - 8813 - E8A093 - East Asian ideograph - - - 232C6B - 8816 - E8A096 - East Asian ideograph - - - 232C72 - 8834 - E8A0B4 - East Asian ideograph - - - 232C73 - 881C - E8A09C - East Asian ideograph - - - 232C7A - 881B - E8A09B - East Asian ideograph - - - 232D23 - 8828 - E8A0A8 - East Asian ideograph - - - 232D2A - 8832 - E8A0B2 - East Asian ideograph - - - 232D2E - 882E - E8A0AE - East Asian ideograph - - - 232D32 - 882D - E8A0AD - East Asian ideograph - - - 232D3C - 883C - E8A0BC - East Asian ideograph - - - 232D41 - 8841 - E8A181 - East Asian ideograph - - - 232D42 - 4610 - E49890 - East Asian ideograph - - - 232D44 - 8844 - E8A184 - East Asian ideograph - - - 232D4B - 8847 - E8A187 - East Asian ideograph - - - 232D51 - 884A - E8A18A - East Asian ideograph - - - 232D53 - 884E - E8A18E - East Asian ideograph - - - 232D56 - 8852 - E8A192 - East Asian ideograph - - - 232D57 - 8850 - E8A190 - East Asian ideograph - - - 232D59 - 8856 - E8A196 - East Asian ideograph - - - 232D5A - 8855 - E8A195 - East Asian ideograph - - - 232D5E - 885C - E8A19C - East Asian ideograph - - - 232D5F - 885A - E8A19A - East Asian ideograph - - - 232D69 - 8869 - E8A1A9 - East Asian ideograph - - - 232D6D - 886D - E8A1AD - East Asian ideograph - - - 232D6E - 887A - E8A1BA - East Asian ideograph - - - 232D71 - 8875 - E8A1B5 - East Asian ideograph - - - 232D75 - 8872 - E8A1B2 - East Asian ideograph - - - 232D79 - 887D - E8A1BD - East Asian ideograph - - - 232D7C - 8879 - E8A1B9 - East Asian ideograph - - - 232D7D - 887F - E8A1BF - East Asian ideograph - - - 232D7E - 887E - E8A1BE - East Asian ideograph - - - 232E28 - 88A2 - E8A2A2 - East Asian ideograph - - - 232E2A - 88A4 - E8A2A4 - East Asian ideograph - - - 232E2F - 88AA - E8A2AA - East Asian ideograph - - - 232E34 - 889A - E8A29A - East Asian ideograph - - - 232E3A - 8890 - E8A290 - East Asian ideograph - - - 232E3B - 888C - E8A28C - East Asian ideograph - - - 232E3D - 88A0 - E8A2A0 - East Asian ideograph - - - 232E40 - 8899 - E8A299 - East Asian ideograph - - - 232E45 - 8897 - E8A297 - East Asian ideograph - - - 232E48 - 88C9 - E8A389 - East Asian ideograph - - - 232E49 - 88BF - E8A2BF - East Asian ideograph - - - 232E4A - 88BA - E8A2BA - East Asian ideograph - - - 232E4F - 88C0 - E8A380 - East Asian ideograph - - - 232E51 - 88B2 - E8A2B2 - East Asian ideograph - - - 232E54 - 88BC - E8A2BC - East Asian ideograph - - - 232E57 - 88B7 - E8A2B7 - East Asian ideograph - - - 232E59 - 88BD - E8A2BD - East Asian ideograph - - - 232E5A - 88C4 - E8A384 - East Asian ideograph - - - 232E5E - 88CB - E8A38B - East Asian ideograph - - - 232E60 - 88CC - E8A38C - East Asian ideograph - - - 232E62 - 88DB - E8A39B - East Asian ideograph - - - 232E64 - 88CE - E8A38E - East Asian ideograph - - - 232E68 - 88D2 - E8A392 - East Asian ideograph - - - 232E71 - 88F1 - E8A3B1 - East Asian ideograph - - - 232E72 - 88FE - E8A3BE - East Asian ideograph - - - 232E75 - 88F2 - E8A3B2 - East Asian ideograph - - - 232E78 - 8900 - E8A480 - East Asian ideograph - - - 232E7A - 88F0 - E8A3B0 - East Asian ideograph - - - 232F21 - 88FC - E8A3BC - East Asian ideograph - - - 232F23 - 88EF - E8A3AF - East Asian ideograph - - - 232F24 - 8903 - E8A483 - East Asian ideograph - - - 232F2D - 8909 - E8A489 - East Asian ideograph - - - 232F2F - 8918 - E8A498 - East Asian ideograph - - - 232F35 - 8906 - E8A486 - East Asian ideograph - - - 232F36 - 890C - E8A48C - East Asian ideograph - - - 232F37 - 8919 - E8A499 - East Asian ideograph - - - 232F3D - 890A - E8A48A - East Asian ideograph - - - 232F43 - 8915 - E8A495 - East Asian ideograph - - - 232F45 - 892F - E8A4AF - East Asian ideograph - - - 232F47 - 8930 - E8A4B0 - East Asian ideograph - - - 232F4E - 8921 - E8A4A1 - East Asian ideograph - - - 232F4F - 8927 - E8A4A7 - East Asian ideograph - - - 232F51 - 891F - E8A49F - East Asian ideograph - - - 232F53 - 8931 - E8A4B1 - East Asian ideograph - - - 232F54 - 891E - E8A49E - East Asian ideograph - - - 232F56 - 8926 - E8A4A6 - East Asian ideograph - - - 232F57 - 8922 - E8A4A2 - East Asian ideograph - - - 232F5A - 8935 - E8A4B5 - East Asian ideograph - - - 232F5D - 8941 - E8A581 - East Asian ideograph - - - 232F60 - 8933 - E8A4B3 - East Asian ideograph - - - 232F66 - 8954 - E8A594 - East Asian ideograph - - - 232F6F - 894F - E8A58F - East Asian ideograph - - - 232F72 - 8947 - E8A587 - East Asian ideograph - - - 232F7A - 894C - E8A58C - East Asian ideograph - - - 232F7B - 8946 - E8A586 - East Asian ideograph - - - 233021 - 894D - E8A58D - East Asian ideograph - - - 233023 - 8962 - E8A5A2 - East Asian ideograph - - - 233024 - 895A - E8A59A - East Asian ideograph - - - 233025 - 895E - E8A59E - East Asian ideograph - - - 233029 - 895B - E8A59B - East Asian ideograph - - - 23302C - 895C - E8A59C - East Asian ideograph - - - 23302D - 895D - E8A59D - East Asian ideograph - - - 233031 - 8966 - E8A5A6 - East Asian ideograph - - - 233037 - 896D - E8A5AD - East Asian ideograph - - - 23303A - 896B - E8A5AB - East Asian ideograph - - - 23303B - 896E - E8A5AE - East Asian ideograph - - - 23303C - 896C - E8A5AC - East Asian ideograph - - - 233041 - 8976 - E8A5B6 - East Asian ideograph - - - 233042 - 8974 - E8A5B4 - East Asian ideograph - - - 233049 - 897B - E8A5BB - East Asian ideograph - - - 23304A - 897C - E8A5BC - East Asian ideograph - - - 233053 - 8984 - E8A684 - East Asian ideograph - - - 233055 - 8985 - E8A685 - East Asian ideograph - - - 233062 - 8991 - E8A691 - East Asian ideograph - - - 233064 - 8997 - E8A697 - East Asian ideograph - - - 233066 - 8998 - E8A698 - East Asian ideograph - - - 23306B - 899C - E8A69C - East Asian ideograph - - - 23306F - 89A1 - E8A6A1 - East Asian ideograph - - - 233076 - 89A5 - E8A6A5 - East Asian ideograph - - - 233079 - 89A9 - E8A6A9 - East Asian ideograph - - - 23307D - 89AF - E8A6AF - East Asian ideograph - - - 23312A - 89B8 - E8A6B8 - East Asian ideograph - - - 23312B - 89B7 - E8A6B7 - East Asian ideograph - - - 23312C - 89B6 - E8A6B6 - East Asian ideograph - - - 23312F - 89BC - E8A6BC - East Asian ideograph - - - 233132 - 89BF - E8A6BF - East Asian ideograph - - - 23313A - 89D6 - E8A796 - East Asian ideograph - - - 23313B - 89D5 - E8A795 - East Asian ideograph - - - 23313F - 89DA - E8A79A - East Asian ideograph - - - 233143 - 89E5 - E8A7A5 - East Asian ideograph - - - 233145 - 89DC - E8A79C - East Asian ideograph - - - 233147 - 89E1 - E8A7A1 - East Asian ideograph - - - 23314C - 89E9 - E8A7A9 - East Asian ideograph - - - 23314D - 89EB - E8A7AB - East Asian ideograph - - - 233153 - 89ED - E8A7AD - East Asian ideograph - - - 233158 - 89F1 - E8A7B1 - East Asian ideograph - - - 23315C - 89F3 - E8A7B3 - East Asian ideograph - - - 23315E - 89F5 - E8A7B5 - East Asian ideograph - - - 233160 - 89F6 - E8A7B6 - East Asian ideograph - - - 233164 - 89F7 - E8A7B7 - East Asian ideograph - - - 23316B - 89FF - E8A7BF - East Asian ideograph - - - 23316C - 8A06 - E8A886 - East Asian ideograph - - - 23316D - 8A07 - E8A887 - East Asian ideograph - - - 23316E - 8A04 - E8A884 - East Asian ideograph - - - 233170 - 8A0F - E8A88F - East Asian ideograph - - - 233171 - 8A11 - E8A891 - East Asian ideograph - - - 233172 - 8A12 - E8A892 - East Asian ideograph - - - 233173 - 8A0D - E8A88D - East Asian ideograph - - - 23317A - 8A27 - E8A8A7 - East Asian ideograph - - - 23317D - 8A29 - E8A8A9 - East Asian ideograph - - - 233225 - 8A22 - E8A8A2 - East Asian ideograph - - - 233227 - 8A51 - E8A991 - East Asian ideograph - - - 233228 - 8A4A - E8A98A - East Asian ideograph - - - 23322A - 8A4E - E8A98E - East Asian ideograph - - - 233230 - 8A56 - E8A996 - East Asian ideograph - - - 233237 - 8A57 - E8A997 - East Asian ideograph - - - 233239 - 8A48 - E8A988 - East Asian ideograph - - - 23323B - 8A58 - E8A998 - East Asian ideograph - - - 23323C - 8A52 - E8A992 - East Asian ideograph - - - 233240 - 8A3D - E8A8BD - East Asian ideograph - - - 233242 - 8A45 - E8A985 - East Asian ideograph - - - 23324F - 8A7F - E8A9BF - East Asian ideograph - - - 233250 - 8A86 - E8AA86 - East Asian ideograph - - - 233256 - 8A61 - E8A9A1 - East Asian ideograph - - - 233258 - 8A3E - E8A8BE - East Asian ideograph - - - 233259 - 8A82 - E8AA82 - East Asian ideograph - - - 23325D - 8A84 - E8AA84 - East Asian ideograph - - - 23325E - 8A75 - E8A9B5 - East Asian ideograph - - - 233269 - 8A8F - E8AA8F - East Asian ideograph - - - 23326F - 8A96 - E8AA96 - East Asian ideograph - - - 233271 - 8A9A - E8AA9A - East Asian ideograph - - - 23327E - 8AB6 - E8AAB6 - East Asian ideograph - - - 233321 - 8ABE - E8AABE - East Asian ideograph - - - 233325 - 8ACF - E8AB8F - East Asian ideograph - - - 233327 - 8AC6 - E8AB86 - East Asian ideograph - - - 23332C - 8AD1 - E8AB91 - East Asian ideograph - - - 23332D - 8AD3 - E8AB93 - East Asian ideograph - - - 233331 - 8AAF - E8AAAF - East Asian ideograph - - - 233333 - 8AD4 - E8AB94 - East Asian ideograph - - - 233336 - 8ACD - E8AB8D - East Asian ideograph - - - 233338 - 8AB9 - E8AAB9 - East Asian ideograph - - - 23333B - 8ADB - E8AB9B - East Asian ideograph - - - 23333F - 8AD0 - E8AB90 - East Asian ideograph - - - 233340 - 8AD7 - E8AB97 - East Asian ideograph - - - 233344 - 8AF3 - E8ABB3 - East Asian ideograph - - - 233345 - 8AE2 - E8ABA2 - East Asian ideograph - - - 233349 - 8B4C - E8AD8C - East Asian ideograph - - - 23334C - 8ADD - E8AB9D - East Asian ideograph - - - 23334E - 8AF6 - E8ABB6 - East Asian ideograph - - - 23334F - 8AF4 - E8ABB4 - East Asian ideograph - - - 233350 - 8AF5 - E8ABB5 - East Asian ideograph - - - 233353 - 8ADF - E8AB9F - East Asian ideograph - - - 233356 - 8B03 - E8AC83 - East Asian ideograph - - - 233357 - 8AE4 - E8ABA4 - East Asian ideograph - - - 233359 - 8B14 - E8AC94 - East Asian ideograph - - - 23335D - 8AFC - E8ABBC - East Asian ideograph - - - 233362 - 8ADE - E8AB9E - East Asian ideograph - - - 233363 - 8AE1 - E8ABA1 - East Asian ideograph - - - 233364 - 8B07 - E8AC87 - East Asian ideograph - - - 23336B - 8B0C - E8AC8C - East Asian ideograph - - - 23336F - 8B1C - E8AC9C - East Asian ideograph - - - 233373 - 8B16 - E8AC96 - East Asian ideograph - - - 233376 - 8B1F - E8AC9F - East Asian ideograph - - - 233378 - 8B0B - E8AC8B - East Asian ideograph - - - 233379 - 8B06 - E8AC86 - East Asian ideograph - - - 23337A - 8B05 - E8AC85 - East Asian ideograph - - - 23337C - 8B0F - E8AC8F - East Asian ideograph - - - 23337D - 8B10 - E8AC90 - East Asian ideograph - - - 233422 - 8B2B - E8ACAB - East Asian ideograph - - - 23342A - 8B37 - E8ACB7 - East Asian ideograph - - - 23342D - 8B26 - E8ACA6 - East Asian ideograph - - - 233430 - 8B33 - E8ACB3 - East Asian ideograph - - - 233438 - 8B3E - E8ACBE - East Asian ideograph - - - 23343A - 8B29 - E8ACA9 - East Asian ideograph - - - 233442 - 8B48 - E8AD88 - East Asian ideograph - - - 233444 - 8B54 - E8AD94 - East Asian ideograph - - - 233448 - 8B53 - E8AD93 - East Asian ideograph - - - 233449 - 8B4A - E8AD8A - East Asian ideograph - - - 23344A - 8B46 - E8AD86 - East Asian ideograph - - - 23344D - 8B56 - E8AD96 - East Asian ideograph - - - 23344F - 8B3F - E8ACBF - East Asian ideograph - - - 233459 - 8B59 - E8AD99 - East Asian ideograph - - - 23345F - 8B4D - E8AD8D - East Asian ideograph - - - 233468 - 8B6B - E8ADAB - East Asian ideograph - - - 23346B - 8B6D - E8ADAD - East Asian ideograph - - - 233470 - 8B78 - E8ADB8 - East Asian ideograph - - - 233473 - 8B45 - E8AD85 - East Asian ideograph - - - 233478 - 8B85 - E8AE85 - East Asian ideograph - - - 233479 - 8B81 - E8AE81 - East Asian ideograph - - - 23347B - 8B7E - E8ADBE - East Asian ideograph - - - 233523 - 8B8B - E8AE8B - East Asian ideograph - - - 233526 - 8B87 - E8AE87 - East Asian ideograph - - - 23352D - 8B95 - E8AE95 - East Asian ideograph - - - 23352E - 8B94 - E8AE94 - East Asian ideograph - - - 233537 - 8B9C - E8AE9C - East Asian ideograph - - - 23353A - 8B9F - E8AE9F - East Asian ideograph - - - 23353D - 8C3A - E8B0BA - East Asian ideograph - - - 233544 - 8C40 - E8B180 - East Asian ideograph - - - 233545 - 8C42 - E8B182 - East Asian ideograph - - - 23354B - 8C47 - E8B187 - East Asian ideograph - - - 23354D - 8C4B - E8B18B - East Asian ideograph - - - 233550 - 8C4F - E8B18F - East Asian ideograph - - - 233552 - 8C55 - E8B195 - East Asian ideograph - - - 233554 - 8C57 - E8B197 - East Asian ideograph - - - 233555 - 8C5C - E8B19C - East Asian ideograph - - - 233556 - 8C5D - E8B19D - East Asian ideograph - - - 23355C - 86C3 - E89B83 - East Asian ideograph - - - 233563 - 8C68 - E8B1A8 - East Asian ideograph - - - 233565 - 8C6D - E8B1AD - East Asian ideograph - - - 23356D - 8C73 - E8B1B3 - East Asian ideograph - - - 23356F - 8C74 - E8B1B4 - East Asian ideograph - - - 233571 - 8C75 - E8B1B5 - East Asian ideograph - - - 233573 - 8C77 - E8B1B7 - East Asian ideograph - - - 233574 - 8C76 - E8B1B6 - East Asian ideograph - - - 23357B - 8C78 - E8B1B8 - East Asian ideograph - - - 23357D - 8C7B - E8B1BB - East Asian ideograph - - - 23362A - 8C86 - E8B286 - East Asian ideograph - - - 23362D - 8C85 - E8B285 - East Asian ideograph - - - 23362E - 8C88 - E8B288 - East Asian ideograph - - - 233639 - 8C94 - E8B294 - East Asian ideograph - - - 233641 - 8C9B - E8B29B - East Asian ideograph - - - 233643 - 8C9F - E8B29F - East Asian ideograph - - - 233644 - 8CA4 - E8B2A4 - East Asian ideograph - - - 23364E - 8CB0 - E8B2B0 - East Asian ideograph - - - 233651 - 8CBA - E8B2BA - East Asian ideograph - - - 233652 - 8CB5 - E8B2B5 - East Asian ideograph - - - 233653 - 8CB9 - E8B2B9 - East Asian ideograph - - - 233657 - 8CCD - E8B38D - East Asian ideograph - - - 23365E - 8CD8 - E8B398 - East Asian ideograph - - - 23365F - 8CD5 - E8B395 - East Asian ideograph - - - 233667 - 8CE8 - E8B3A8 - East Asian ideograph - - - 233668 - 8CE9 - E8B3A9 - East Asian ideograph - - - 23366A - 8CE1 - E8B3A1 - East Asian ideograph - - - 23366F - 8CEB - E8B3AB - East Asian ideograph - - - 233670 - 8CDA - E8B39A - East Asian ideograph - - - 233672 - 8CDD - E8B39D - East Asian ideograph - - - 233674 - 8CD9 - E8B399 - East Asian ideograph - - - 233676 - 8CEE - E8B3AE - East Asian ideograph - - - 23367B - 8CF1 - E8B3B1 - East Asian ideograph - - - 23367C - 8CF5 - E8B3B5 - East Asian ideograph - - - 23367E - 8CFB - E8B3BB - East Asian ideograph - - - 233721 - 8CF7 - E8B3B7 - East Asian ideograph - - - 233725 - 8D04 - E8B484 - East Asian ideograph - - - 233726 - 8CFE - E8B3BE - East Asian ideograph - - - 23372B - 8D07 - E8B487 - East Asian ideograph - - - 23372D - 8D09 - E8B489 - East Asian ideograph - - - 233732 - 8D0C - E8B48C - East Asian ideograph - - - 233739 - 8D11 - E8B491 - East Asian ideograph - - - 23373A - 8D10 - E8B490 - East Asian ideograph - - - 23373B - 8D12 - E8B492 - East Asian ideograph - - - 23373D - 8D14 - E8B494 - East Asian ideograph - - - 23373E - 8D18 - E8B498 - East Asian ideograph - - - 233748 - 8D6C - E8B5AC - East Asian ideograph - - - 233752 - 8D78 - E8B5B8 - East Asian ideograph - - - 23375C - 8D7A - E8B5BA - East Asian ideograph - - - 233761 - 8D84 - E8B684 - East Asian ideograph - - - 233771 - 8D94 - E8B694 - East Asian ideograph - - - 233775 - 8D8D - E8B68D - East Asian ideograph - - - 233822 - 8D96 - E8B696 - East Asian ideograph - - - 23382F - 8DA1 - E8B6A1 - East Asian ideograph - - - 233833 - 8DA6 - E8B6A6 - East Asian ideograph - - - 233852 - 8DAB - E8B6AB - East Asian ideograph - - - 233859 - 8DAF - E8B6AF - East Asian ideograph - - - 23385A - 8DB0 - E8B6B0 - East Asian ideograph - - - 233866 - 8DB2 - E8B6B2 - East Asian ideograph - - - 23386E - 8DBC - E8B6BC - East Asian ideograph - - - 23386F - 8DBA - E8B6BA - East Asian ideograph - - - 233870 - 8DB9 - E8B6B9 - East Asian ideograph - - - 233871 - 8DC2 - E8B782 - East Asian ideograph - - - 233872 - 8DC1 - E8B781 - East Asian ideograph - - - 233873 - 8DBF - E8B6BF - East Asian ideograph - - - 233921 - 8DCF - E8B78F - East Asian ideograph - - - 233922 - 8DD6 - E8B796 - East Asian ideograph - - - 233927 - 8DD0 - E8B790 - East Asian ideograph - - - 23392B - 8DC5 - E8B785 - East Asian ideograph - - - 23392F - 8DE4 - E8B7A4 - East Asian ideograph - - - 233934 - 8DEC - E8B7AC - East Asian ideograph - - - 233935 - 8DEB - E8B7AB - East Asian ideograph - - - 233936 - 8DF4 - E8B7B4 - East Asian ideograph - - - 233938 - 8DE9 - E8B7A9 - East Asian ideograph - - - 23393A - 8DE6 - E8B7A6 - East Asian ideograph - - - 23393B - 8DE3 - E8B7A3 - East Asian ideograph - - - 23393D - 8DE7 - E8B7A7 - East Asian ideograph - - - 23393E - 8DF2 - E8B7B2 - East Asian ideograph - - - 23393F - 8E09 - E8B889 - East Asian ideograph - - - 233941 - 8DFD - E8B7BD - East Asian ideograph - - - 233944 - 8DFF - E8B7BF - East Asian ideograph - - - 233946 - 8E05 - E8B885 - East Asian ideograph - - - 233949 - 8E01 - E8B881 - East Asian ideograph - - - 23394E - 8E04 - E8B884 - East Asian ideograph - - - 233950 - 8E06 - E8B886 - East Asian ideograph - - - 233952 - 8E2A - E8B8AA - East Asian ideograph - - - 233954 - 8E23 - E8B8A3 - East Asian ideograph - - - 233957 - 8E2E - E8B8AE - East Asian ideograph - - - 233958 - 8E21 - E8B8A1 - East Asian ideograph - - - 23395C - 8E1E - E8B89E - East Asian ideograph - - - 233964 - 8E16 - E8B896 - East Asian ideograph - - - 233966 - 8E26 - E8B8A6 - East Asian ideograph - - - 233967 - 8E27 - E8B8A7 - East Asian ideograph - - - 233968 - 8E14 - E8B894 - East Asian ideograph - - - 233969 - 8E18 - E8B898 - East Asian ideograph - - - 23396F - 8E41 - E8B981 - East Asian ideograph - - - 233977 - 8E40 - E8B980 - East Asian ideograph - - - 233979 - 8E36 - E8B8B6 - East Asian ideograph - - - 23397E - 8E3D - E8B8BD - East Asian ideograph - - - 233A21 - 8E30 - E8B8B0 - East Asian ideograph - - - 233A24 - 8E47 - E8B987 - East Asian ideograph - - - 233A26 - 8E46 - E8B986 - East Asian ideograph - - - 233A2E - 8E4C - E8B98C - East Asian ideograph - - - 233A30 - 8E50 - E8B990 - East Asian ideograph - - - 233A32 - 8E4F - E8B98F - East Asian ideograph - - - 233A34 - 8E5C - E8B99C - East Asian ideograph - - - 233A35 - 8E62 - E8B9A2 - East Asian ideograph - - - 233A36 - 8E60 - E8B9A0 - East Asian ideograph - - - 233A3A - 8E54 - E8B994 - East Asian ideograph - - - 233A3B - 8E67 - E8B9A7 - East Asian ideograph - - - 233A3E - 8E5A - E8B99A - East Asian ideograph - - - 233A3F - 8E5E - E8B99E - East Asian ideograph - - - 233A40 - 8E55 - E8B995 - East Asian ideograph - - - 233A41 - 8E61 - E8B9A1 - East Asian ideograph - - - 233A43 - 8E5D - E8B99D - East Asian ideograph - - - 233A44 - 8E75 - E8B9B5 - East Asian ideograph - - - 233A45 - 8E74 - E8B9B4 - East Asian ideograph - - - 233A46 - 8E95 - E8BA95 - East Asian ideograph - - - 233A48 - 8E6D - E8B9AD - East Asian ideograph - - - 233A4B - 8E69 - E8B9A9 - East Asian ideograph - - - 233A52 - 8E83 - E8BA83 - East Asian ideograph - - - 233A53 - 8E84 - E8BA84 - East Asian ideograph - - - 233A57 - 8E8B - E8BA8B - East Asian ideograph - - - 233A5D - 8E94 - E8BA94 - East Asian ideograph - - - 233A5E - 8E9A - E8BA9A - East Asian ideograph - - - 233A5F - 8E92 - E8BA92 - East Asian ideograph - - - 233A60 - 8E93 - E8BA93 - East Asian ideograph - - - 233A62 - 8E90 - E8BA90 - East Asian ideograph - - - 233A63 - 8E98 - E8BA98 - East Asian ideograph - - - 233A64 - 8E9E - E8BA9E - East Asian ideograph - - - 233A6B - 8EA5 - E8BAA5 - East Asian ideograph - - - 233A6F - 8EA7 - E8BAA7 - East Asian ideograph - - - 233A71 - 8EA9 - E8BAA9 - East Asian ideograph - - - 233A72 - 8E99 - E8BA99 - East Asian ideograph - - - 233A78 - 8EB3 - E8BAB3 - East Asian ideograph - - - 233A7A - 8EBC - E8BABC - East Asian ideograph - - - 233A7D - 8EB6 - E8BAB6 - East Asian ideograph - - - 233B2E - 8EC9 - E8BB89 - East Asian ideograph - - - 233B2F - 8ECF - E8BB8F - East Asian ideograph - - - 233B31 - 8ECE - E8BB8E - East Asian ideograph - - - 233B33 - 8ED5 - E8BB95 - East Asian ideograph - - - 233B3F - 8EFA - E8BBBA - East Asian ideograph - - - 233B42 - 8EF9 - E8BBB9 - East Asian ideograph - - - 233B4B - 8EE8 - E8BBA8 - East Asian ideograph - - - 233B4F - 8EEB - E8BBAB - East Asian ideograph - - - 233B51 - 8EFF - E8BBBF - East Asian ideograph - - - 233B56 - 8F00 - E8BC80 - East Asian ideograph - - - 233B59 - 8F05 - E8BC85 - East Asian ideograph - - - 233B5A - 8F08 - E8BC88 - East Asian ideograph - - - 233B5B - 8F07 - E8BC87 - East Asian ideograph - - - 233B63 - 8F27 - E8BCA7 - East Asian ideograph - - - 233B64 - 8F2C - E8BCAC - East Asian ideograph - - - 233B6B - 8F1E - E8BC9E - East Asian ideograph - - - 233B6D - 8F25 - E8BCA5 - East Asian ideograph - - - 233B6E - 8F20 - E8BCA0 - East Asian ideograph - - - 233B75 - 8F17 - E8BC97 - East Asian ideograph - - - 233B78 - 8F36 - E8BCB6 - East Asian ideograph - - - 233B79 - 8F2E - E8BCAE - East Asian ideograph - - - 233B7A - 8F33 - E8BCB3 - East Asian ideograph - - - 233B7D - 8F2D - E8BCAD - East Asian ideograph - - - 233C26 - 8F39 - E8BCB9 - East Asian ideograph - - - 233C27 - 8F34 - E8BCB4 - East Asian ideograph - - - 233C2D - 8F40 - E8BD80 - East Asian ideograph - - - 233C30 - 8F46 - E8BD86 - East Asian ideograph - - - 233C31 - 8F4A - E8BD8A - East Asian ideograph - - - 233C33 - 8F47 - E8BD87 - East Asian ideograph - - - 233C3D - 8F52 - E8BD92 - East Asian ideograph - - - 233C48 - 8F56 - E8BD96 - East Asian ideograph - - - 233C49 - 8F57 - E8BD97 - East Asian ideograph - - - 233C4B - 8F55 - E8BD95 - East Asian ideograph - - - 233C4C - 8F58 - E8BD98 - East Asian ideograph - - - 233C4D - 8F5C - E8BD9C - East Asian ideograph - - - 233C4E - 8F5E - E8BD9E - East Asian ideograph - - - 233C53 - 8F5D - E8BD9D - East Asian ideograph - - - 233C57 - 8F62 - E8BDA2 - East Asian ideograph - - - 233C59 - 8F63 - E8BDA3 - East Asian ideograph - - - 233C5A - 8F64 - E8BDA4 - East Asian ideograph - - - 233C65 - 8FA4 - E8BEA4 - East Asian ideograph - - - 233C66 - 8FA5 - E8BEA5 - East Asian ideograph - - - 233C6C - 8FB5 - E8BEB5 - East Asian ideograph - - - 233C6D - 8FB7 - E8BEB7 - East Asian ideograph - - - 233C6E - 8FBB - E8BEBB - East Asian ideograph - - - 233C70 - 8FBC - E8BEBC - East Asian ideograph - - - 233C74 - 8FBF - E8BEBF - East Asian ideograph - - - 233C75 - 8FD2 - E8BF92 - East Asian ideograph - - - 233C77 - 8FCB - E8BF8B - East Asian ideograph - - - 233C7A - 8FCA - E8BF8A - East Asian ideograph - - - 233C7B - 8FD3 - E8BF93 - East Asian ideograph - - - 233C7D - 8FCD - E8BF8D - East Asian ideograph - - - 233D21 - 8FDA - E8BF9A - East Asian ideograph - - - 233D22 - 8FD5 - E8BF95 - East Asian ideograph - - - 233D2F - 8FE4 - E8BFA4 - East Asian ideograph - - - 233D30 - 8FEE - E8BFAE - East Asian ideograph - - - 233D35 - 8FF9 - E8BFB9 - East Asian ideograph - - - 233D3C - 8FFB - E8BFBB - East Asian ideograph - - - 233D3F - 9004 - E98084 - East Asian ideograph - - - 233D40 - 9008 - E98088 - East Asian ideograph - - - 233D44 - 9011 - E98091 - East Asian ideograph - - - 233D45 - 900B - E9808B - East Asian ideograph - - - 233D48 - 900C - E9808C - East Asian ideograph - - - 233D49 - 9021 - E980A1 - East Asian ideograph - - - 233D4A - 902D - E980AD - East Asian ideograph - - - 233D4E - 902C - E980AC - East Asian ideograph - - - 233D56 - 9037 - E980B7 - East Asian ideograph - - - 233D57 - 9034 - E980B4 - East Asian ideograph - - - 233D58 - 902F - E980AF - East Asian ideograph - - - 233D59 - 9036 - E980B6 - East Asian ideograph - - - 233D5B - 9046 - E98186 - East Asian ideograph - - - 233D5D - 9052 - E98192 - East Asian ideograph - - - 233D67 - 9049 - E98189 - East Asian ideograph - - - 233D6A - 9044 - E98184 - East Asian ideograph - - - 233D74 - 9062 - E981A2 - East Asian ideograph - - - 233D75 - 905D - E9819D - East Asian ideograph - - - 233D78 - 905B - E9819B - East Asian ideograph - - - 233D7B - 906B - E981AB - East Asian ideograph - - - 233E21 - 9070 - E981B0 - East Asian ideograph - - - 233E25 - 906F - E981AF - East Asian ideograph - - - 233E26 - 9079 - E981B9 - East Asian ideograph - - - 233E28 - 9076 - E981B6 - East Asian ideograph - - - 233E2A - 907B - E981BB - East Asian ideograph - - - 233E2C - 9085 - E98285 - East Asian ideograph - - - 233E34 - 9083 - E98283 - East Asian ideograph - - - 233E37 - 9088 - E98288 - East Asian ideograph - - - 233E3A - 908B - E9828B - East Asian ideograph - - - 233E3F - 9099 - E98299 - East Asian ideograph - - - 233E40 - 9097 - E98297 - East Asian ideograph - - - 233E43 - 909B - E9829B - East Asian ideograph - - - 233E44 - 909C - E9829C - East Asian ideograph - - - 233E48 - 90A1 - E982A1 - East Asian ideograph - - - 233E51 - 90A8 - E982A8 - East Asian ideograph - - - 233E54 - 90A0 - E982A0 - East Asian ideograph - - - 233E58 - 90AF - E982AF - East Asian ideograph - - - 233E59 - 90B3 - E982B3 - East Asian ideograph - - - 233E5B - 90B6 - E982B6 - East Asian ideograph - - - 233E5D - 90B0 - E982B0 - East Asian ideograph - - - 233E5F - 90AD - E982AD - East Asian ideograph - - - 233E61 - 90B2 - E982B2 - East Asian ideograph - - - 233E68 - 90C9 - E98389 - East Asian ideograph - - - 233E6A - 90BD - E982BD - East Asian ideograph - - - 233E6F - 90D5 - E98395 - East Asian ideograph - - - 233E72 - 90BE - E982BE - East Asian ideograph - - - 233E75 - 90C7 - E98387 - East Asian ideograph - - - 233E78 - 90C8 - E98388 - East Asian ideograph - - - 233E79 - 90C3 - E98383 - East Asian ideograph - - - 233F22 - 90DD - E9839D - East Asian ideograph - - - 233F23 - 90DF - E9839F - East Asian ideograph - - - 233F26 - 90E2 - E983A2 - East Asian ideograph - - - 233F27 - 90D8 - E98398 - East Asian ideograph - - - 233F28 - 90DB - E9839B - East Asian ideograph - - - 233F2A - 90DC - E9839C - East Asian ideograph - - - 233F2C - 90D7 - E98397 - East Asian ideograph - - - 233F2D - 90E4 - E983A4 - East Asian ideograph - - - 233F2E - 90EF - E983AF - East Asian ideograph - - - 233F2F - 90EA - E983AA - East Asian ideograph - - - 233F32 - 90F0 - E983B0 - East Asian ideograph - - - 233F33 - 90F4 - E983B4 - East Asian ideograph - - - 233F34 - 90F2 - E983B2 - East Asian ideograph - - - 233F3E - 90EB - E983AB - East Asian ideograph - - - 233F3F - 90F3 - E983B3 - East Asian ideograph - - - 233F46 - 90FC - E983BC - East Asian ideograph - - - 233F47 - 90FE - E983BE - East Asian ideograph - - - 233F49 - 9104 - E98484 - East Asian ideograph - - - 233F4A - 90FF - E983BF - East Asian ideograph - - - 233F4C - 9106 - E98486 - East Asian ideograph - - - 233F4E - 9100 - E98480 - East Asian ideograph - - - 233F50 - 9107 - E98487 - East Asian ideograph - - - 233F57 - 910F - E9848F - East Asian ideograph - - - 233F58 - 9111 - E98491 - East Asian ideograph - - - 233F5A - 9116 - E98496 - East Asian ideograph - - - 233F5C - 9114 - E98494 - East Asian ideograph - - - 233F60 - 910B - E9848B - East Asian ideograph - - - 233F62 - 9123 - E984A3 - East Asian ideograph (Version J extension) - - - 233F63 - 9118 - E98498 - East Asian ideograph - - - 233F64 - 911C - E9849C - East Asian ideograph - - - 233F66 - 9120 - E984A0 - East Asian ideograph - - - 233F67 - 9122 - E984A2 - East Asian ideograph - - - 233F6A - 911E - E9849E - East Asian ideograph - - - 233F71 - 9124 - E984A4 - East Asian ideograph - - - 233F72 - 911A - E9849A - East Asian ideograph - - - 233F74 - 9125 - E984A5 - East Asian ideograph - - - 233F77 - 912F - E984AF - East Asian ideograph - - - 233F79 - 912B - E984AB - East Asian ideograph - - - 234021 - 9132 - E984B2 - East Asian ideograph - - - 234024 - 9126 - E984A6 - East Asian ideograph - - - 23402B - 9134 - E984B4 - East Asian ideograph - - - 23402C - 9136 - E984B6 - East Asian ideograph - - - 234031 - 913A - E984BA - East Asian ideograph - - - 234032 - 913B - E984BB - East Asian ideograph - - - 23403B - 9143 - E98583 - East Asian ideograph - - - 23403E - 9146 - E98586 - East Asian ideograph - - - 23403F - 9145 - E98585 - East Asian ideograph - - - 234040 - 9148 - E98588 - East Asian ideograph - - - 234041 - 9147 - E98587 - East Asian ideograph - - - 234042 - 9150 - E98590 - East Asian ideograph - - - 234043 - 914E - E9858E - East Asian ideograph - - - 234048 - 9159 - E98599 - East Asian ideograph - - - 234049 - 915C - E9859C - East Asian ideograph - - - 23404D - 9156 - E98596 - East Asian ideograph - - - 234050 - 9158 - E98598 - East Asian ideograph - - - 234052 - 915A - E9859A - East Asian ideograph - - - 234053 - 9161 - E985A1 - East Asian ideograph - - - 234056 - 9164 - E985A4 - East Asian ideograph - - - 234061 - 916F - E985AF - East Asian ideograph - - - 234062 - 916E - E985AE - East Asian ideograph - - - 234066 - 917A - E985BA - East Asian ideograph - - - 234068 - 9172 - E985B2 - East Asian ideograph - - - 234069 - 9179 - E985B9 - East Asian ideograph - - - 23406A - 9176 - E985B6 - East Asian ideograph - - - 23406B - 9174 - E985B4 - East Asian ideograph - - - 23406C - 9173 - E985B3 - East Asian ideograph - - - 23406D - 9185 - E98685 - East Asian ideograph - - - 23406F - 9182 - E98682 - East Asian ideograph - - - 234070 - 918A - E9868A - East Asian ideograph - - - 234071 - 9186 - E98686 - East Asian ideograph - - - 234072 - 918C - E9868C - East Asian ideograph - - - 234073 - 9181 - E98681 - East Asian ideograph - - - 23407B - 9191 - E98691 - East Asian ideograph - - - 23407D - 9190 - E98690 - East Asian ideograph - - - 23407E - 918E - E9868E - East Asian ideograph - - - 234124 - 918D - E9868D - East Asian ideograph - - - 234125 - 9193 - E98693 - East Asian ideograph - - - 23412B - 919D - E9869D - East Asian ideograph - - - 23412C - 919A - E9869A - East Asian ideograph - - - 234130 - 91A2 - E986A2 - East Asian ideograph - - - 234134 - 919B - E9869B - East Asian ideograph (variant of EACC 4D4134) - - - 234137 - 91A8 - E986A8 - East Asian ideograph - - - 23413D - 91AA - E986AA - East Asian ideograph - - - 234141 - 91AF - E986AF - East Asian ideograph - - - 234142 - 91B1 - E986B1 - East Asian ideograph - - - 234147 - 91AD - E986AD - East Asian ideograph - - - 234148 - 91AE - E986AE - East Asian ideograph - - - 23414B - 91B4 - E986B4 - East Asian ideograph - - - 23414C - 91B2 - E986B2 - East Asian ideograph - - - 23414D - 91B5 - E986B5 - East Asian ideograph - - - 234156 - 91BF - E986BF - East Asian ideograph - - - 234157 - 91BD - E986BD - East Asian ideograph - - - 23415A - 91C2 - E98782 - East Asian ideograph - - - 23415B - 91C4 - E98784 - East Asian ideograph - - - 23415C - 91C3 - E98783 - East Asian ideograph - - - 234161 - 91D4 - E98794 - East Asian ideograph - - - 234162 - 91D3 - E98793 - East Asian ideograph - - - 234163 - 91D5 - E98795 - East Asian ideograph - - - 234164 - 91D9 - E98799 - East Asian ideograph - - - 234168 - 91E2 - E987A2 - East Asian ideograph - - - 234169 - 91ED - E987AD - East Asian ideograph - - - 23416A - 91F7 - E987B7 - East Asian ideograph - - - 23416B - 91FA - E987BA - East Asian ideograph - - - 23416F - 91F2 - E987B2 - East Asian ideograph - - - 234171 - 91E8 - E987A8 - East Asian ideograph - - - 234172 - 91F6 - E987B6 - East Asian ideograph - - - 234173 - 91EE - E987AE - East Asian ideograph - - - 234174 - 91F4 - E987B4 - East Asian ideograph - - - 234177 - 91F1 - E987B1 - East Asian ideograph - - - 234179 - 91E9 - E987A9 - East Asian ideograph - - - 23417A - 91F8 - E987B8 - East Asian ideograph - - - 234221 - 91F9 - E987B9 - East Asian ideograph - - - 234222 - 91E4 - E987A4 - East Asian ideograph - - - 234223 - 9204 - E98884 - East Asian ideograph - - - 234225 - 9201 - E98881 - East Asian ideograph - - - 234226 - 922B - E988AB - East Asian ideograph - - - 234227 - 920A - E9888A - East Asian ideograph - - - 234228 - 9225 - E988A5 - East Asian ideograph - - - 23422A - 9292 - E98A92 - East Asian ideograph - - - 23422C - 9228 - E988A8 - East Asian ideograph - - - 23422E - 9207 - E98887 - East Asian ideograph - - - 23422F - 9203 - E98883 - East Asian ideograph - - - 234231 - 9200 - E98880 - East Asian ideograph - - - 234232 - 9218 - E98898 - East Asian ideograph - - - 234233 - 91FE - E987BE - East Asian ideograph - - - 234236 - 9208 - E98888 - East Asian ideograph - - - 234237 - 9226 - E988A6 - East Asian ideograph - - - 234238 - 921C - E9889C - East Asian ideograph - - - 23423B - 9224 - E988A4 - East Asian ideograph - - - 234243 - 9212 - E98892 - East Asian ideograph - - - 234248 - 91FF - E987BF - East Asian ideograph - - - 23424A - 9216 - E98896 - East Asian ideograph - - - 23424B - 9211 - E98891 - East Asian ideograph - - - 23424E - 9206 - E98886 - East Asian ideograph - - - 23424F - 92A2 - E98AA2 - East Asian ideograph - - - 234251 - 9230 - E988B0 - East Asian ideograph - - - 234252 - 9249 - E98989 - East Asian ideograph - - - 234254 - 924D - E9898D - East Asian ideograph - - - 234255 - 9248 - E98988 - East Asian ideograph - - - 234258 - 923A - E988BA - East Asian ideograph - - - 23425C - 922E - E988AE - East Asian ideograph - - - 23425F - 9233 - E988B3 - East Asian ideograph - - - 234261 - 9266 - E989A6 - East Asian ideograph - - - 234264 - 925E - E9899E - East Asian ideograph - - - 234268 - 9235 - E988B5 - East Asian ideograph - - - 23426B - 9250 - E98990 - East Asian ideograph - - - 23426C - 926B - E989AB - East Asian ideograph - - - 23426D - 9239 - E988B9 - East Asian ideograph - - - 23426F - 926D - E989AD - East Asian ideograph - - - 234270 - 926C - E989AC - East Asian ideograph - - - 234271 - 924F - E9898F - East Asian ideograph - - - 234274 - 923F - E988BF - East Asian ideograph - - - 234277 - 9260 - E989A0 - East Asian ideograph - - - 23427E - 9236 - E988B6 - East Asian ideograph - - - 234323 - 924E - E9898E - East Asian ideograph - - - 234326 - 924C - E9898C - East Asian ideograph - - - 234327 - 9256 - E98996 - East Asian ideograph - - - 23432B - 925A - E9899A - East Asian ideograph - - - 23432E - 9241 - E98981 - East Asian ideograph - - - 23432F - 9283 - E98A83 - East Asian ideograph - - - 234331 - 92A5 - E98AA5 - East Asian ideograph - - - 234333 - 9282 - E98A82 - East Asian ideograph - - - 234335 - 92A8 - E98AA8 - East Asian ideograph - - - 234337 - 927C - E989BC - East Asian ideograph - - - 234338 - 92A4 - E98AA4 - East Asian ideograph - - - 23433E - 9276 - E989B6 - East Asian ideograph - - - 23433F - 928D - E98A8D - East Asian ideograph - - - 234340 - 92EE - E98BAE - East Asian ideograph - - - 234342 - 9288 - E98A88 - East Asian ideograph - - - 234343 - 927A - E989BA - East Asian ideograph - - - 234345 - 928E - E98A8E - East Asian ideograph - - - 234346 - 92A0 - E98AA0 - East Asian ideograph - - - 234347 - 9277 - E989B7 - East Asian ideograph - - - 234349 - 92AA - E98AAA - East Asian ideograph - - - 234350 - 92A6 - E98AA6 - East Asian ideograph - - - 234354 - 927E - E989BE - East Asian ideograph - - - 234355 - 929A - E98A9A - East Asian ideograph - - - 234358 - 92AB - E98AAB - East Asian ideograph - - - 23435B - 9291 - E98A91 - East Asian ideograph - - - 23435D - 929B - E98A9B - East Asian ideograph - - - 234362 - 927F - E989BF - East Asian ideograph - - - 234364 - 92A3 - E98AA3 - East Asian ideograph - - - 234366 - 92C8 - E98B88 - East Asian ideograph - - - 23436A - 92C3 - E98B83 - East Asian ideograph - - - 23436F - 92D0 - E98B90 - East Asian ideograph - - - 234371 - 92F1 - E98BB1 - East Asian ideograph - - - 234372 - 92DF - E98B9F - East Asian ideograph - - - 234375 - 92E6 - E98BA6 - East Asian ideograph - - - 234376 - 92B6 - E98AB6 - East Asian ideograph - - - 234377 - 92C0 - E98B80 - East Asian ideograph - - - 234379 - 92BE - E98ABE - East Asian ideograph - - - 23437A - 92D9 - E98B99 - East Asian ideograph - - - 23437E - 92D5 - E98B95 - East Asian ideograph - - - 234421 - 92C6 - E98B86 - East Asian ideograph - - - 234425 - 92F4 - E98BB4 - East Asian ideograph - - - 234427 - 92CF - E98B8F - East Asian ideograph - - - 23442A - 92B2 - E98AB2 - East Asian ideograph - - - 23442C - 92E7 - E98BA7 - East Asian ideograph - - - 23442D - 92C7 - E98B87 - East Asian ideograph - - - 23442E - 92F0 - E98BB0 - East Asian ideograph - - - 23442F - 92DB - E98B9B - East Asian ideograph - - - 234430 - 92DC - E98B9C - East Asian ideograph - - - 234431 - 92D8 - E98B98 - East Asian ideograph - - - 234433 - 92E9 - E98BA9 - East Asian ideograph - - - 234435 - 92DD - E98B9D - East Asian ideograph - - - 234439 - 92D1 - E98B91 - East Asian ideograph - - - 23443A - 92CA - E98B8A - East Asian ideograph - - - 23443C - 92C2 - E98B82 - East Asian ideograph - - - 23443E - 92CC - E98B8C - East Asian ideograph - - - 234440 - 92EF - E98BAF - East Asian ideograph - - - 234441 - 92E8 - E98BA8 - East Asian ideograph - - - 234443 - 92EB - E98BAB - East Asian ideograph - - - 234445 - 92F5 - E98BB5 - East Asian ideograph - - - 234448 - 92F2 - E98BB2 - East Asian ideograph - - - 23444C - 9303 - E98C83 - East Asian ideograph - - - 23444D - 9307 - E98C87 - East Asian ideograph - - - 23444E - 931E - E98C9E - East Asian ideograph - - - 23444F - 9344 - E98D84 - East Asian ideograph - - - 234453 - 931D - E98C9D - East Asian ideograph - - - 234454 - 92FA - E98BBA - East Asian ideograph - - - 234458 - 931F - E98C9F - East Asian ideograph - - - 23445A - 9331 - E98CB1 - East Asian ideograph - - - 23445B - 9306 - E98C86 - East Asian ideograph - - - 23445D - 92F9 - E98BB9 - East Asian ideograph - - - 23445F - 930F - E98C8F - East Asian ideograph - - - 234462 - 9302 - E98C82 - East Asian ideograph - - - 234464 - 9324 - E98CA4 - East Asian ideograph - - - 234466 - 9312 - E98C92 - East Asian ideograph - - - 234469 - 9338 - E98CB8 - East Asian ideograph - - - 23446A - 9323 - E98CA3 - East Asian ideograph - - - 23446C - 9321 - E98CA1 - East Asian ideograph - - - 234471 - 9340 - E98D80 - East Asian ideograph - - - 234472 - 9301 - E98C81 - East Asian ideograph - - - 234474 - 9315 - E98C95 - East Asian ideograph - - - 234476 - 9329 - E98CA9 - East Asian ideograph - - - 234478 - 932E - E98CAE - East Asian ideograph - - - 234479 - 932A - E98CAA - East Asian ideograph - - - 23447B - 933F - E98CBF - East Asian ideograph - - - 23447C - 933A - E98CBA - East Asian ideograph - - - 23447E - 9335 - E98CB5 - East Asian ideograph - - - 234522 - 9314 - E98C94 - East Asian ideograph - - - 234528 - 92FE - E98BBE - East Asian ideograph - - - 23452F - 9342 - E98D82 - East Asian ideograph - - - 234531 - 9341 - E98D81 - East Asian ideograph - - - 234532 - 9319 - E98C99 - East Asian ideograph - - - 234535 - 934C - E98D8C - East Asian ideograph - - - 234541 - 9379 - E98DB9 - East Asian ideograph - - - 234544 - 9386 - E98E86 - East Asian ideograph - - - 234547 - 936A - E98DAA - East Asian ideograph - - - 234548 - 935C - E98D9C - East Asian ideograph - - - 23454C - 934F - E98D8F - East Asian ideograph - - - 23454D - 9347 - E98D87 - East Asian ideograph - - - 234551 - 937A - E98DBA - East Asian ideograph - - - 234553 - 9356 - E98D96 - East Asian ideograph - - - 234554 - 9371 - E98DB1 - East Asian ideograph - - - 234556 - 937C - E98DBC - East Asian ideograph - - - 23455C - 9377 - E98DB7 - East Asian ideograph - - - 23455D - 9349 - E98D89 - East Asian ideograph - - - 23455E - 9358 - E98D98 - East Asian ideograph - - - 23455F - 935A - E98D9A - East Asian ideograph - - - 234560 - 93BE - E98EBE - East Asian ideograph - - - 234562 - 935F - E98D9F - East Asian ideograph - - - 234564 - 9376 - E98DB6 - East Asian ideograph - - - 234566 - 9355 - E98D95 - East Asian ideograph - - - 234567 - 9354 - E98D94 - East Asian ideograph - - - 23456A - 9348 - E98D88 - East Asian ideograph - - - 23456B - 9374 - E98DB4 - East Asian ideograph - - - 23456E - 9351 - E98D91 - East Asian ideograph - - - 23456F - 9364 - E98DA4 - East Asian ideograph - - - 234571 - 936B - E98DAB - East Asian ideograph - - - 234572 - 936D - E98DAD - East Asian ideograph - - - 234573 - 9360 - E98DA0 - East Asian ideograph - - - 234577 - 936E - E98DAE - East Asian ideograph - - - 234579 - 938F - E98E8F - East Asian ideograph - - - 23457A - 93AC - E98EAC - East Asian ideograph - - - 23457B - 9395 - E98E95 - East Asian ideograph - - - 23457E - 938B - E98E8B - East Asian ideograph - - - 234621 - 93B5 - E98EB5 - East Asian ideograph - - - 234622 - 938C - E98E8C - East Asian ideograph - - - 234623 - 9388 - E98E88 - East Asian ideograph - - - 234625 - 93B9 - E98EB9 - East Asian ideograph - - - 234627 - 93A1 - E98EA1 - East Asian ideograph - - - 234628 - 93B0 - E98EB0 - East Asian ideograph - - - 234629 - 93A3 - E98EA3 - East Asian ideograph - - - 23462A - 93B7 - E98EB7 - East Asian ideograph - - - 23462B - 939B - E98E9B - East Asian ideograph - - - 23462D - 9398 - E98E98 - East Asian ideograph - - - 23463C - 9389 - E98E89 - East Asian ideograph - - - 23463D - 93A4 - E98EA4 - East Asian ideograph - - - 234640 - 93BC - E98EBC - East Asian ideograph - - - 234642 - 93A7 - E98EA7 - East Asian ideograph - - - 234644 - 93BD - E98EBD - East Asian ideograph - - - 234647 - 93A6 - E98EA6 - East Asian ideograph - - - 234648 - 939A - E98E9A - East Asian ideograph - - - 23464A - 93AA - E98EAA - East Asian ideograph - - - 23464D - 939E - E98E9E - East Asian ideograph - - - 23464F - 9397 - E98E97 - East Asian ideograph - - - 234651 - 93BB - E98EBB - East Asian ideograph - - - 234653 - 93F1 - E98FB1 - East Asian ideograph - - - 234656 - 93DE - E98F9E - East Asian ideograph - - - 234657 - 93EE - E98FAE - East Asian ideograph - - - 23465A - 93C7 - E98F87 - East Asian ideograph - - - 23465B - 93F2 - E98FB2 - East Asian ideograph - - - 23465D - 93D4 - E98F94 - East Asian ideograph - - - 23465F - 93E5 - E98FA5 - East Asian ideograph - - - 234662 - 93F9 - E98FB9 - East Asian ideograph - - - 234663 - 93CA - E98F8A - East Asian ideograph - - - 234664 - 93C4 - E98F84 - East Asian ideograph - - - 234666 - 93E8 - E98FA8 - East Asian ideograph - - - 234667 - 93E7 - E98FA7 - East Asian ideograph - - - 234672 - 93DA - E98F9A - East Asian ideograph - - - 234673 - 93D0 - E98F90 - East Asian ideograph - - - 234674 - 93EF - E98FAF - East Asian ideograph - - - 234675 - 93DB - E98F9B - East Asian ideograph - - - 23467C - 93CC - E98F8C - East Asian ideograph - - - 23472C - 93D3 - E98F93 - East Asian ideograph - - - 23472F - 93A9 - E98EA9 - East Asian ideograph - - - 234730 - 93E6 - E98FA6 - East Asian ideograph - - - 234732 - 940B - E9908B - East Asian ideograph - - - 234734 - 9413 - E99093 - East Asian ideograph - - - 23473B - 940F - E9908F - East Asian ideograph - - - 23473C - 9420 - E990A0 - East Asian ideograph - - - 23473D - 93FB - E98FBB - East Asian ideograph - - - 234749 - 93FA - E98FBA - East Asian ideograph - - - 23474D - 9419 - E99099 - East Asian ideograph - - - 23474E - 940D - E9908D - East Asian ideograph - - - 234750 - 9426 - E990A6 - East Asian ideograph - - - 234751 - 9427 - E990A7 - East Asian ideograph - - - 234755 - 9409 - E99089 - East Asian ideograph - - - 234758 - 9414 - E99094 - East Asian ideograph - - - 234759 - 9404 - E99084 - East Asian ideograph - - - 23475C - 9422 - E990A2 - East Asian ideograph - - - 23475D - 9406 - E99086 - East Asian ideograph - - - 234760 - 9410 - E99090 - East Asian ideograph - - - 234762 - 9423 - E990A3 - East Asian ideograph - - - 234767 - 93F5 - E98FB5 - East Asian ideograph - - - 234769 - 93F7 - E98FB7 - East Asian ideograph - - - 23476A - 9407 - E99087 - East Asian ideograph - - - 23476F - 940E - E9908E - East Asian ideograph - - - 234771 - 9411 - E99091 - East Asian ideograph - - - 234774 - 943F - E990BF - East Asian ideograph - - - 234779 - 9429 - E990A9 - East Asian ideograph - - - 23477C - 943D - E990BD - East Asian ideograph - - - 234827 - 93F4 - E98FB4 - East Asian ideograph - - - 234828 - 9436 - E990B6 - East Asian ideograph - - - 23482B - 943B - E990BB - East Asian ideograph - - - 23482D - 9424 - E990A4 - East Asian ideograph - - - 234830 - 9437 - E990B7 - East Asian ideograph - - - 234832 - 9440 - E99180 - East Asian ideograph - - - 234835 - 942B - E990AB - East Asian ideograph - - - 234836 - 942D - E990AD - East Asian ideograph - - - 234837 - 9441 - E99181 - East Asian ideograph - - - 234838 - 9431 - E990B1 - East Asian ideograph - - - 23483D - 9467 - E991A7 - East Asian ideograph - - - 23483E - 944C - E9918C - East Asian ideograph - - - 234840 - 9445 - E99185 - East Asian ideograph - - - 234842 - 9450 - E99190 - East Asian ideograph - - - 23484A - 944A - E9918A - East Asian ideograph - - - 234853 - 9466 - E991A6 - East Asian ideograph - - - 234857 - 9464 - E991A4 - East Asian ideograph - - - 234858 - 9462 - E991A2 - East Asian ideograph - - - 23485C - 9465 - E991A5 - East Asian ideograph - - - 23485D - 9455 - E99195 - East Asian ideograph - - - 23485E - 945E - E9919E - East Asian ideograph - - - 234862 - 946A - E991AA - East Asian ideograph - - - 234868 - 946B - E991AB - East Asian ideograph - - - 234869 - 946D - E991AD - East Asian ideograph - - - 23486C - 946F - E991AF - East Asian ideograph - - - 23486D - 9471 - E991B1 - East Asian ideograph - - - 234871 - 9477 - E991B7 - East Asian ideograph - - - 23487B - 9482 - E99282 - East Asian ideograph - - - 23487C - 9481 - E99281 - East Asian ideograph - - - 23492E - 9585 - E99685 - East Asian ideograph - - - 234930 - 9588 - E99688 - East Asian ideograph - - - 234931 - 958C - E9968C - East Asian ideograph - - - 234934 - 9597 - E99697 - East Asian ideograph - - - 234936 - 958E - E9968E - East Asian ideograph - - - 234938 - 959F - E9969F - East Asian ideograph - - - 23493A - 95A0 - E996A0 - East Asian ideograph - - - 234942 - 95AC - E996AC - East Asian ideograph - - - 234944 - 95AB - E996AB - East Asian ideograph - - - 234948 - 95BC - E996BC - East Asian ideograph - - - 234949 - 95BE - E996BE - East Asian ideograph - - - 23494A - 95CD - E9978D - East Asian ideograph - - - 23494D - 95B9 - E996B9 - East Asian ideograph - - - 23494E - 95BA - E996BA - East Asian ideograph - - - 23494F - 95B6 - E996B6 - East Asian ideograph - - - 234950 - 95BF - E996BF - East Asian ideograph - - - 234952 - 95BD - E996BD - East Asian ideograph - - - 234959 - 95C9 - E99789 - East Asian ideograph - - - 23495D - 95CE - E9978E - East Asian ideograph - - - 234960 - 95D5 - E99795 - East Asian ideograph - - - 234962 - 95D2 - E99792 - East Asian ideograph - - - 234963 - 95D3 - E99793 - East Asian ideograph - - - 234964 - 95D1 - E99791 - East Asian ideograph - - - 234965 - 95C3 - E99783 - East Asian ideograph - - - 234966 - 95DA - E9979A - East Asian ideograph - - - 234969 - 95DE - E9979E - East Asian ideograph - - - 23496A - 95E0 - E997A0 - East Asian ideograph - - - 23496F - 95E5 - E997A5 - East Asian ideograph - - - 234972 - 95E4 - E997A4 - East Asian ideograph - - - 234976 - 95E7 - E997A7 - East Asian ideograph - - - 23497A - 961E - E9989E - East Asian ideograph - - - 23497B - 9624 - E998A4 - East Asian ideograph - - - 23497C - 9622 - E998A2 - East Asian ideograph - - - 234A21 - 9627 - E998A7 - East Asian ideograph - - - 234A2F - 9642 - E99982 - East Asian ideograph - - - 234A30 - 963D - E998BD - East Asian ideograph - - - 234A32 - 963C - E998BC - East Asian ideograph - - - 234A3C - 9651 - E99991 - East Asian ideograph - - - 234A42 - 9660 - E999A0 - East Asian ideograph - - - 234A44 - 965C - E9999C - East Asian ideograph - - - 234A46 - 9658 - E99998 - East Asian ideograph - - - 234A4A - 965F - E9999F - East Asian ideograph - - - 234A4B - 9656 - E99996 - East Asian ideograph - - - 234A51 - 966C - E999AC - East Asian ideograph - - - 234A5D - 967B - E999BB - East Asian ideograph - - - 234A5E - 967F - E999BF - East Asian ideograph - - - 234A62 - 967E - E999BE - East Asian ideograph - - - 234A63 - 9684 - E99A84 - East Asian ideograph - - - 234A65 - 9688 - E99A88 - East Asian ideograph - - - 234A6C - 9689 - E99A89 - East Asian ideograph - - - 234A6D - 9682 - E99A82 - East Asian ideograph - - - 234A6E - 9683 - E99A83 - East Asian ideograph - - - 234A79 - 9696 - E99A96 - East Asian ideograph - - - 234A7A - 9697 - E99A97 - East Asian ideograph - - - 234B2F - 96A4 - E99AA4 - East Asian ideograph - - - 234B35 - 96A9 - E99AA9 - East Asian ideograph - - - 234B37 - 96AE - E99AAE - East Asian ideograph - - - 234B3B - 96B0 - E99AB0 - East Asian ideograph - - - 234B3C - 96B2 - E99AB2 - East Asian ideograph - - - 234B3E - 96B3 - E99AB3 - East Asian ideograph - - - 234B48 - 96B9 - E99AB9 - East Asian ideograph - - - 234B49 - 96BC - E99ABC - East Asian ideograph - - - 234B52 - 96CE - E99B8E - East Asian ideograph - - - 234B53 - 96CA - E99B8A - East Asian ideograph - - - 234B57 - 96D2 - E99B92 - East Asian ideograph - - - 234B64 - 96DF - E99B9F - East Asian ideograph - - - 234B66 - 96D8 - E99B98 - East Asian ideograph - - - 234B67 - 96DD - E99B9D - East Asian ideograph - - - 234B71 - 96E9 - E99BA9 - East Asian ideograph - - - 234B74 - 96F1 - E99BB1 - East Asian ideograph - - - 234B76 - 96F0 - E99BB0 - East Asian ideograph - - - 234B77 - 96F4 - E99BB4 - East Asian ideograph - - - 234B78 - 96FA - E99BBA - East Asian ideograph - - - 234B7A - 96F5 - E99BB5 - East Asian ideograph - - - 234C22 - 96FF - E99BBF - East Asian ideograph - - - 234C27 - 9702 - E99C82 - East Asian ideograph - - - 234C29 - 9708 - E99C88 - East Asian ideograph - - - 234C2A - 9705 - E99C85 - East Asian ideograph - - - 234C38 - 971B - E99C9B - East Asian ideograph - - - 234C3D - 971D - E99C9D - East Asian ideograph - - - 234C3E - 9719 - E99C99 - East Asian ideograph - - - 234C47 - 9723 - E99CA3 - East Asian ideograph - - - 234C49 - 9722 - E99CA2 - East Asian ideograph - - - 234C4A - 9724 - E99CA4 - East Asian ideograph - - - 234C4E - 9728 - E99CA8 - East Asian ideograph - - - 234C50 - 9726 - E99CA6 - East Asian ideograph - - - 234C52 - 9731 - E99CB1 - East Asian ideograph - - - 234C58 - 9730 - E99CB0 - East Asian ideograph - - - 234C5C - 9736 - E99CB6 - East Asian ideograph - - - 234C6A - 9741 - E99D81 - East Asian ideograph - - - 234C6B - 9747 - E99D87 - East Asian ideograph - - - 234C6C - 9746 - E99D86 - East Asian ideograph - - - 234C6E - 9749 - E99D89 - East Asian ideograph - - - 234C75 - 9758 - E99D98 - East Asian ideograph - - - 234C76 - 975A - E99D9A - East Asian ideograph - - - 234C78 - 975D - E99D9D - East Asian ideograph - - - 234C7B - 975F - E99D9F - East Asian ideograph - - - 234C7D - 9764 - E99DA4 - East Asian ideograph - - - 234D25 - 9767 - E99DA7 - East Asian ideograph - - - 234D2C - 976B - E99DAB - East Asian ideograph - - - 234D30 - 976E - E99DAE - East Asian ideograph - - - 234D31 - 9777 - E99DB7 - East Asian ideograph - - - 234D32 - 9778 - E99DB8 - East Asian ideograph - - - 234D35 - 9773 - E99DB3 - East Asian ideograph - - - 234D37 - 9783 - E99E83 - East Asian ideograph - - - 234D38 - 977A - E99DBA - East Asian ideograph - - - 234D3A - 9780 - E99E80 - East Asian ideograph - - - 234D3C - 9781 - E99E81 - East Asian ideograph - - - 234D40 - 9784 - E99E84 - East Asian ideograph - - - 234D43 - 977F - E99DBF - East Asian ideograph - - - 234D49 - 9789 - E99E89 - East Asian ideograph - - - 234D54 - 9794 - E99E94 - East Asian ideograph - - - 234D59 - 979B - E99E9B - East Asian ideograph - - - 234D5A - 979F - E99E9F - East Asian ideograph - - - 234D5C - 979A - E99E9A - East Asian ideograph - - - 234D62 - 979C - E99E9C - East Asian ideograph - - - 234D6A - 97AC - E99EAC - East Asian ideograph - - - 234D70 - 97AE - E99EAE - East Asian ideograph - - - 234D71 - 97A8 - E99EA8 - East Asian ideograph - - - 234D74 - 97AB - E99EAB - East Asian ideograph - - - 234D78 - 97A5 - E99EA5 - East Asian ideograph - - - 234D7A - 97B2 - E99EB2 - East Asian ideograph - - - 234D7C - 97B4 - E99EB4 - East Asian ideograph - - - 234E24 - 97B3 - E99EB3 - East Asian ideograph - - - 234E26 - 97B5 - E99EB5 - East Asian ideograph - - - 234E29 - 97B9 - E99EB9 - East Asian ideograph - - - 234E2D - 97B8 - E99EB8 - East Asian ideograph - - - 234E35 - 97BE - E99EBE - East Asian ideograph - - - 234E38 - 97C0 - E99F80 - East Asian ideograph - - - 234E3B - 97C5 - E99F85 - East Asian ideograph - - - 234E43 - 97C9 - E99F89 - East Asian ideograph - - - 234E4B - 97CE - E99F8E - East Asian ideograph - - - 234E4C - 97CD - E99F8D - East Asian ideograph - - - 234E4E - 97D0 - E99F90 - East Asian ideograph - - - 234E51 - 97D4 - E99F94 - East Asian ideograph - - - 234E53 - 97D8 - E99F98 - East Asian ideograph - - - 234E54 - 97D9 - E99F99 - East Asian ideograph - - - 234E59 - 97DD - E99F9D - East Asian ideograph - - - 234E5C - 97DE - E99F9E - East Asian ideograph - - - 234E5E - 97E0 - E99FA0 - East Asian ideograph - - - 234E60 - 97E1 - E99FA1 - East Asian ideograph - - - 234E6C - 97F5 - E99FB5 - East Asian ideograph - - - 234E73 - 97FA - E99FBA - East Asian ideograph - - - 234E79 - 9807 - E9A087 - East Asian ideograph - - - 234E7B - 980F - E9A08F - East Asian ideograph - - - 234E7E - 980D - E9A08D - East Asian ideograph - - - 234F23 - 980E - E9A08E - East Asian ideograph - - - 234F26 - 9816 - E9A096 - East Asian ideograph - - - 234F2C - 9826 - E9A0A6 - East Asian ideograph - - - 234F2D - 981E - E9A09E - East Asian ideograph - - - 234F34 - 982B - E9A0AB - East Asian ideograph - - - 234F37 - 9820 - E9A0A0 - East Asian ideograph - - - 234F38 - 981F - E9A09F - East Asian ideograph - - - 234F3D - 9833 - E9A0B3 - East Asian ideograph - - - 234F40 - 982E - E9A0AE - East Asian ideograph - - - 234F44 - 982F - E9A0AF - East Asian ideograph - - - 234F45 - 9832 - E9A0B2 - East Asian ideograph - - - 234F4B - 9847 - E9A187 - East Asian ideograph - - - 234F4E - 9844 - E9A184 - East Asian ideograph - - - 234F60 - 9852 - E9A192 - East Asian ideograph - - - 234F62 - 984B - E9A18B - East Asian ideograph - - - 234F66 - 983F - E9A0BF - East Asian ideograph - - - 234F6A - 985C - E9A19C - East Asian ideograph - - - 234F6B - 9859 - E9A199 - East Asian ideograph - - - 234F6F - 9857 - E9A197 - East Asian ideograph - - - 234F72 - 9856 - E9A196 - East Asian ideograph - - - 234F77 - 9862 - E9A1A2 - East Asian ideograph - - - 234F7E - 9868 - E9A1A8 - East Asian ideograph - - - 235021 - 9865 - E9A1A5 - East Asian ideograph - - - 235022 - 9866 - E9A1A6 - East Asian ideograph - - - 235029 - 986C - E9A1AC - East Asian ideograph - - - 235030 - 9873 - E9A1B3 - East Asian ideograph - - - 235031 - 9874 - E9A1B4 - East Asian ideograph - - - 235039 - 98AD - E9A2AD - East Asian ideograph - - - 235040 - 98B4 - E9A2B4 - East Asian ideograph - - - 235048 - 98B8 - E9A2B8 - East Asian ideograph - - - 23504A - 98BF - E9A2BF - East Asian ideograph - - - 23504D - 98BB - E9A2BB - East Asian ideograph - - - 23504E - 98C0 - E9A380 - East Asian ideograph - - - 235053 - 98C6 - E9A386 - East Asian ideograph - - - 23505F - 98E1 - E9A3A1 - East Asian ideograph - - - 235060 - 98E3 - E9A3A3 - East Asian ideograph - - - 235061 - 98E4 - E9A3A4 - East Asian ideograph - - - 235063 - 98E5 - E9A3A5 - East Asian ideograph - - - 235068 - 98F1 - E9A3B1 - East Asian ideograph - - - 23506C - 98EB - E9A3AB - East Asian ideograph - - - 235124 - 9907 - E9A487 - East Asian ideograph - - - 235128 - 9902 - E9A482 - East Asian ideograph - - - 23512F - 9916 - E9A496 - East Asian ideograph - - - 235130 - 9914 - E9A494 - East Asian ideograph - - - 235131 - 9917 - E9A497 - East Asian ideograph - - - 235132 - 9911 - E9A491 - East Asian ideograph - - - 235138 - 9915 - E9A495 - East Asian ideograph - - - 23513A - 9924 - E9A4A4 - East Asian ideograph - - - 23513B - 991F - E9A49F - East Asian ideograph - - - 235140 - 991C - E9A49C - East Asian ideograph - - - 235143 - 9929 - E9A4A9 - East Asian ideograph - - - 235145 - 9927 - E9A4A7 - East Asian ideograph - - - 235147 - 991A - E9A49A - East Asian ideograph - - - 23514F - 992E - E9A4AE - East Asian ideograph - - - 235150 - 992C - E9A4AC - East Asian ideograph - - - 235151 - 992A - E9A4AA - East Asian ideograph - - - 235153 - 9933 - E9A4B3 - East Asian ideograph - - - 235154 - 9942 - E9A582 - East Asian ideograph (variant of EACC 4D5154) - - - 235155 - 9932 - E9A4B2 - East Asian ideograph - - - 235156 - 992B - E9A4AB - East Asian ideograph - - - 235158 - 9931 - E9A4B1 - East Asian ideograph - - - 23515C - 993B - E9A4BB - East Asian ideograph - - - 235160 - 993A - E9A4BA - East Asian ideograph - - - 235161 - 9941 - E9A581 - East Asian ideograph - - - 235164 - 9940 - E9A580 - East Asian ideograph - - - 235166 - 993C - E9A4BC - East Asian ideograph - - - 23516A - 9948 - E9A588 - East Asian ideograph - - - 23516C - 9947 - E9A587 - East Asian ideograph - - - 23516D - 9949 - E9A589 - East Asian ideograph - - - 235170 - 9943 - E9A583 - East Asian ideograph - - - 235171 - 994D - E9A58D - East Asian ideograph - - - 235172 - 994C - E9A58C - East Asian ideograph - - - 235173 - 994E - E9A58E - East Asian ideograph - - - 235174 - 9950 - E9A590 - East Asian ideograph - - - 23517A - 9958 - E9A598 - East Asian ideograph - - - 23517B - 9954 - E9A594 - East Asian ideograph - - - 23517E - 9955 - E9A595 - East Asian ideograph - - - 235222 - 9957 - E9A597 - East Asian ideograph (variant of EACC 475222) - - - 235229 - 995D - E9A59D - East Asian ideograph - - - 23522B - 995F - E9A59F - East Asian ideograph - - - 23522F - 9997 - E9A697 - East Asian ideograph - - - 235230 - 9998 - E9A698 - East Asian ideograph - - - 23523B - 99A3 - E9A6A3 - East Asian ideograph - - - 23523C - 99A1 - E9A6A1 - East Asian ideograph - - - 23523E - 99A6 - E9A6A6 - East Asian ideograph - - - 235241 - 99A9 - E9A6A9 - East Asian ideograph - - - 235242 - 99AA - E9A6AA - East Asian ideograph - - - 235249 - 99B5 - E9A6B5 - East Asian ideograph - - - 23524D - 99BF - E9A6BF - East Asian ideograph - - - 23524E - 99BC - E9A6BC - East Asian ideograph - - - 23524F - 99C3 - E9A783 - East Asian ideograph - - - 235253 - 99B9 - E9A6B9 - East Asian ideograph - - - 235254 - 99BD - E9A6BD - East Asian ideograph - - - 235261 - 99D3 - E9A793 - East Asian ideograph - - - 235263 - 99D4 - E9A794 - East Asian ideograph - - - 235265 - 99C9 - E9A789 - East Asian ideograph - - - 235269 - 99D8 - E9A798 - East Asian ideograph - - - 235274 - 99EC - E9A7AC - East Asian ideograph - - - 23527A - 99F0 - E9A7B0 - East Asian ideograph - - - 23527B - 99E3 - E9A7A3 - East Asian ideograph - - - 23527C - 99EA - E9A7AA - East Asian ideograph - - - 235324 - 9A02 - E9A882 - East Asian ideograph - - - 235329 - 99F8 - E9A7B8 - East Asian ideograph - - - 23532A - 99F4 - E9A7B4 - East Asian ideograph - - - 235330 - 99FB - E9A7BB - East Asian ideograph - - - 235331 - 99FD - E9A7BD - East Asian ideograph - - - 23533D - 9A0F - E9A88F - East Asian ideograph - - - 23533E - 9A0B - E9A88B - East Asian ideograph - - - 23533F - 9A09 - E9A889 - East Asian ideograph - - - 235344 - 9A04 - E9A884 - East Asian ideograph - - - 235345 - 9A11 - E9A891 - East Asian ideograph - - - 235347 - 9A05 - E9A885 - East Asian ideograph - - - 235348 - 9A10 - E9A890 - East Asian ideograph - - - 23534C - 9A24 - E9A8A4 - East Asian ideograph - - - 23534D - 9A22 - E9A8A2 - East Asian ideograph - - - 23534F - 9A20 - E9A8A0 - East Asian ideograph - - - 235352 - 9A27 - E9A8A7 - East Asian ideograph - - - 235359 - 9A2F - E9A8AF - East Asian ideograph - - - 23535A - 9A38 - E9A8B8 - East Asian ideograph - - - 235360 - 9A2D - E9A8AD - East Asian ideograph - - - 235361 - 9A35 - E9A8B5 - East Asian ideograph - - - 235364 - 9A32 - E9A8B2 - East Asian ideograph - - - 235369 - 9A36 - E9A8B6 - East Asian ideograph - - - 23536A - 9A2E - E9A8AE - East Asian ideograph - - - 235370 - 9A41 - E9A981 - East Asian ideograph - - - 235374 - 9A3B - E9A8BB - East Asian ideograph - - - 235379 - 9A42 - E9A982 - East Asian ideograph - - - 23537A - 9A44 - E9A984 - East Asian ideograph - - - 23537D - 9A48 - E9A988 - East Asian ideograph - - - 23537E - 9A4C - E9A98C - East Asian ideograph - - - 235422 - 9A4D - E9A98D - East Asian ideograph - - - 235424 - 9A52 - E9A992 - East Asian ideograph - - - 235427 - 9A4A - E9A98A - East Asian ideograph - - - 23542A - 9A58 - E9A998 - East Asian ideograph - - - 23542C - 9A56 - E9A996 - East Asian ideograph - - - 235433 - 9A64 - E9A9A4 - East Asian ideograph - - - 235434 - 9A66 - E9A9A6 - East Asian ideograph - - - 23543A - 9A6B - E9A9AB - East Asian ideograph - - - 23543F - 9AAD - E9AAAD - East Asian ideograph - - - 235441 - 9AAB - E9AAAB - East Asian ideograph - - - 235443 - 9AB1 - E9AAB1 - East Asian ideograph - - - 235445 - 9AB3 - E9AAB3 - East Asian ideograph - - - 235449 - 9AB6 - E9AAB6 - East Asian ideograph - - - 23544C - 9ABB - E9AABB - East Asian ideograph - - - 235450 - 9ABA - E9AABA - East Asian ideograph - - - 235454 - 9ABD - E9AABD - East Asian ideograph - - - 235457 - 9AC1 - E9AB81 - East Asian ideograph - - - 235459 - 9AC0 - E9AB80 - East Asian ideograph - - - 23545A - 9AC2 - E9AB82 - East Asian ideograph - - - 23545D - 9AC8 - E9AB88 - East Asian ideograph - - - 235466 - 9AD0 - E9AB90 - East Asian ideograph - - - 23546A - 9AD1 - E9AB91 - East Asian ideograph - - - 23546D - 9AD6 - E9AB96 - East Asian ideograph - - - 235472 - 9ADC - E9AB9C - East Asian ideograph - - - 235474 - 9ADF - E9AB9F - East Asian ideograph - - - 235476 - 9AE0 - E9ABA0 - East Asian ideograph - - - 235477 - 9AE2 - E9ABA2 - East Asian ideograph - - - 235521 - 9AE7 - E9ABA7 - East Asian ideograph - - - 235527 - 9AEB - E9ABAB - East Asian ideograph - - - 235528 - 9AF2 - E9ABB2 - East Asian ideograph - - - 23552A - 9AEF - E9ABAF - East Asian ideograph - - - 235532 - 9AF9 - E9ABB9 - East Asian ideograph - - - 235535 - 9AFD - E9ABBD - East Asian ideograph - - - 235536 - 9B01 - E9AC81 - East Asian ideograph - - - 235538 - 9B02 - E9AC82 - East Asian ideograph - - - 23553B - 9B00 - E9AC80 - East Asian ideograph - - - 23553C - 9B08 - E9AC88 - East Asian ideograph - - - 23553E - 9B04 - E9AC84 - East Asian ideograph - - - 235541 - 9B05 - E9AC85 - East Asian ideograph - - - 235543 - 9B0B - E9AC8B - East Asian ideograph - - - 235547 - 9B0E - E9AC8E - East Asian ideograph - - - 23554E - 9B11 - E9AC91 - East Asian ideograph - - - 23554F - 9B10 - E9AC90 - East Asian ideograph - - - 235554 - 9B18 - E9AC98 - East Asian ideograph - - - 235556 - 9B1D - E9AC9D - East Asian ideograph - - - 23555E - 9B1F - E9AC9F - East Asian ideograph - - - 235566 - 9B23 - E9ACA3 - East Asian ideograph - - - 23556C - 9B29 - E9ACA9 - East Asian ideograph - - - 235573 - 9B2D - E9ACAD - East Asian ideograph - - - 235574 - 9B2E - E9ACAE - East Asian ideograph - - - 235576 - 9B2F - E9ACAF - East Asian ideograph - - - 23557D - 9B34 - E9ACB4 - East Asian ideograph - - - 235622 - 9B35 - E9ACB5 - East Asian ideograph - - - 235623 - 9B37 - E9ACB7 - East Asian ideograph - - - 235636 - 9B43 - E9AD83 - East Asian ideograph - - - 23563A - 9B48 - E9AD88 - East Asian ideograph - - - 23563C - 9B4E - E9AD8E - East Asian ideograph - - - 23563E - 9B4D - E9AD8D - East Asian ideograph - - - 235641 - 9B4B - E9AD8B - East Asian ideograph - - - 235647 - 9B51 - E9AD91 - East Asian ideograph - - - 23565D - 9B74 - E9ADB4 - East Asian ideograph - - - 235663 - 9B68 - E9ADA8 - East Asian ideograph - - - 235672 - 9B80 - E9AE80 - East Asian ideograph - - - 235673 - 9B8C - E9AE8C - East Asian ideograph - - - 23567A - 9B95 - E9AE95 - East Asian ideograph - - - 23567B - 9B7D - E9ADBD - East Asian ideograph - - - 235721 - 9B83 - E9AE83 - East Asian ideograph - - - 235729 - 9B8E - E9AE8E - East Asian ideograph - - - 23572B - 9B90 - E9AE90 - East Asian ideograph - - - 23572E - 9B93 - E9AE93 - East Asian ideograph - - - 23572F - 9B97 - E9AE97 - East Asian ideograph - - - 235731 - 9B92 - E9AE92 - East Asian ideograph - - - 235732 - 9B98 - E9AE98 - East Asian ideograph - - - 235736 - 9B9F - E9AE9F - East Asian ideograph - - - 235739 - 9B9D - E9AE9D - East Asian ideograph - - - 23573C - 9BAD - E9AEAD - East Asian ideograph - - - 23573D - 9B9A - E9AE9A - East Asian ideograph - - - 23573F - 9BA8 - E9AEA8 - East Asian ideograph - - - 235742 - 9B9E - E9AE9E - East Asian ideograph - - - 235743 - 9B99 - E9AE99 - East Asian ideograph - - - 235749 - 9B86 - E9AE86 - East Asian ideograph - - - 23574E - 9BA0 - E9AEA0 - East Asian ideograph - - - 235756 - 9BC7 - E9AF87 - East Asian ideograph - - - 235759 - 9BD2 - E9AF92 - East Asian ideograph - - - 23575D - 9BC6 - E9AF86 - East Asian ideograph - - - 23575E - 9BBF - E9AEBF - East Asian ideograph - - - 23575F - 9BC1 - E9AF81 - East Asian ideograph - - - 235766 - 9BB9 - E9AEB9 - East Asian ideograph - - - 23576B - 9BBB - E9AEBB - East Asian ideograph - - - 23576C - 9BD3 - E9AF93 - East Asian ideograph - - - 23576E - 9BC0 - E9AF80 - East Asian ideograph - - - 235772 - 9BC8 - E9AF88 - East Asian ideograph - - - 235777 - 9BD7 - E9AF97 - East Asian ideograph - - - 23577A - 9BD6 - E9AF96 - East Asian ideograph - - - 23577C - 9BEB - E9AFAB - East Asian ideograph - - - 235823 - 9BD5 - E9AF95 - East Asian ideograph - - - 235827 - 9BE4 - E9AFA4 - East Asian ideograph - - - 23582B - 9BF1 - E9AFB1 - East Asian ideograph - - - 23582C - 9BE1 - E9AFA1 - East Asian ideograph - - - 23582D - 9BDB - E9AF9B - East Asian ideograph - - - 23582F - 9BE2 - E9AFA2 - East Asian ideograph - - - 235831 - 9BF0 - E9AFB0 - East Asian ideograph - - - 235834 - 9BD4 - E9AF94 - East Asian ideograph - - - 23583E - 9BFF - E9AFBF - East Asian ideograph - - - 235843 - 9C06 - E9B086 - East Asian ideograph - - - 235844 - 9C15 - E9B095 - East Asian ideograph - - - 235849 - 9C0A - E9B08A - East Asian ideograph - - - 23584B - 9C08 - E9B088 - East Asian ideograph - - - 23584C - 9C14 - E9B094 - East Asian ideograph - - - 23584D - 9C04 - E9B084 - East Asian ideograph - - - 235852 - 9C02 - E9B082 - East Asian ideograph - - - 235854 - 9C10 - E9B090 - East Asian ideograph - - - 235859 - 9C12 - E9B092 - East Asian ideograph - - - 23585C - 9C09 - E9B089 - East Asian ideograph - - - 235866 - 9C1C - E9B09C - East Asian ideograph - - - 235869 - 9C2F - E9B0AF - East Asian ideograph - - - 23586E - 9C23 - E9B0A3 - East Asian ideograph - - - 235870 - 9C2E - E9B0AE - East Asian ideograph - - - 235871 - 9C28 - E9B0A8 - East Asian ideograph - - - 235878 - 9C21 - E9B0A1 - East Asian ideograph - - - 235879 - 9C24 - E9B0A4 - East Asian ideograph - - - 23587E - 9C46 - E9B186 - East Asian ideograph - - - 235925 - 9C32 - E9B0B2 - East Asian ideograph - - - 235926 - 9C44 - E9B184 - East Asian ideograph - - - 235928 - 9C48 - E9B188 - East Asian ideograph - - - 235929 - 9C39 - E9B0B9 - East Asian ideograph - - - 23592A - 9C33 - E9B0B3 - East Asian ideograph - - - 235930 - 9C47 - E9B187 - East Asian ideograph - - - 235932 - 9C35 - E9B0B5 - East Asian ideograph - - - 235934 - 9C37 - E9B0B7 - East Asian ideograph - - - 235938 - 9C52 - E9B192 - East Asian ideograph - - - 23593B - 9C58 - E9B198 - East Asian ideograph - - - 235945 - 9C51 - E9B191 - East Asian ideograph - - - 235949 - 9C63 - E9B1A3 - East Asian ideograph - - - 23594F - 9C67 - E9B1A7 - East Asian ideograph - - - 235955 - 9C5F - E9B19F - East Asian ideograph - - - 235956 - 9C60 - E9B1A0 - East Asian ideograph - - - 235958 - 9C6D - E9B1AD - East Asian ideograph - - - 23595B - 9C68 - E9B1A8 - East Asian ideograph - - - 23595C - 9C6F - E9B1AF - East Asian ideograph - - - 23595E - 9C6E - E9B1AE - East Asian ideograph - - - 23596B - 9C7A - E9B1BA - East Asian ideograph - - - 235973 - 9CE7 - E9B3A7 - East Asian ideograph - - - 235974 - 9CF0 - E9B3B0 - East Asian ideograph - - - 235977 - 9CF2 - E9B3B2 - East Asian ideograph - - - 235A21 - 9D02 - E9B482 - East Asian ideograph - - - 235A22 - 9D03 - E9B483 - East Asian ideograph - - - 235A23 - 9CF7 - E9B3B7 - East Asian ideograph - - - 235A24 - 9D04 - E9B484 - East Asian ideograph - - - 235A28 - 9D07 - E9B487 - East Asian ideograph - - - 235A2C - 9CF8 - E9B3B8 - East Asian ideograph - - - 235A2F - 9D2A - E9B4AA - East Asian ideograph - - - 235A30 - 9D25 - E9B4A5 - East Asian ideograph - - - 235A3F - 9D1E - E9B49E - East Asian ideograph - - - 235A44 - 9D1D - E9B49D - East Asian ideograph - - - 235A48 - 9D1F - E9B49F - East Asian ideograph - - - 235A4F - 9D41 - E9B581 - East Asian ideograph - - - 235A53 - 9D36 - E9B4B6 - East Asian ideograph - - - 235A63 - 9D3E - E9B4BE - East Asian ideograph - - - 235A65 - 9D30 - E9B4B0 - East Asian ideograph - - - 235A68 - 9D42 - E9B582 - East Asian ideograph - - - 235A69 - 9D40 - E9B580 - East Asian ideograph - - - 235A6B - 9D3D - E9B4BD - East Asian ideograph - - - 235A70 - 9D5C - E9B59C - East Asian ideograph - - - 235A75 - 9D53 - E9B593 - East Asian ideograph - - - 235A7B - 9D59 - E9B599 - East Asian ideograph - - - 235B26 - 9D5A - E9B59A - East Asian ideograph - - - 235B2A - 9D52 - E9B592 - East Asian ideograph - - - 235B2C - 9D77 - E9B5B7 - East Asian ideograph - - - 235B2E - 9D8A - E9B68A - East Asian ideograph - - - 235B2F - 9D7A - E9B5BA - East Asian ideograph - - - 235B35 - 9D87 - E9B687 - East Asian ideograph - - - 235B3F - 9D78 - E9B5B8 - East Asian ideograph - - - 235B42 - 9D7E - E9B5BE - East Asian ideograph - - - 235B47 - 9D69 - E9B5A9 - East Asian ideograph - - - 235B4D - 9D7B - E9B5BB - East Asian ideograph - - - 235B4F - 9D83 - E9B683 - East Asian ideograph - - - 235B52 - 9D6F - E9B5AF - East Asian ideograph - - - 235B59 - 9DA9 - E9B6A9 - East Asian ideograph - - - 235B5E - 9D92 - E9B692 - East Asian ideograph - - - 235B60 - 9D98 - E9B698 - East Asian ideograph - - - 235B66 - 9DA4 - E9B6A4 - East Asian ideograph - - - 235B67 - 9DAA - E9B6AA - East Asian ideograph - - - 235B6A - 9DA1 - E9B6A1 - East Asian ideograph - - - 235B6B - 9D9A - E9B69A - East Asian ideograph - - - 235B70 - 9D96 - E9B696 - East Asian ideograph - - - 235B74 - 9DB1 - E9B6B1 - East Asian ideograph - - - 235B76 - 9DB6 - E9B6B6 - East Asian ideograph - - - 235B77 - 9DBC - E9B6BC - East Asian ideograph - - - 235B79 - 9DC0 - E9B780 - East Asian ideograph - - - 235B7A - 9DC1 - E9B781 - East Asian ideograph - - - 235B7B - 9DB8 - E9B6B8 - East Asian ideograph - - - 235B7C - 9DBA - E9B6BA - East Asian ideograph - - - 235B7E - 9DCF - E9B78F - East Asian ideograph - - - 235C22 - 9DC7 - E9B787 - East Asian ideograph - - - 235C27 - 9DC3 - E9B783 - East Asian ideograph - - - 235C28 - 9DBB - E9B6BB - East Asian ideograph - - - 235C32 - 9DB9 - E9B6B9 - East Asian ideograph - - - 235C34 - 9DAC - E9B6AC - East Asian ideograph - - - 235C36 - 9DB2 - E9B6B2 - East Asian ideograph - - - 235C3A - 9DDF - E9B79F - East Asian ideograph - - - 235C3E - 9DD9 - E9B799 - East Asian ideograph - - - 235C45 - 9DD6 - E9B796 - East Asian ideograph - - - 235C46 - 9DDE - E9B79E - East Asian ideograph - - - 235C4F - 9DE9 - E9B7A9 - East Asian ideograph - - - 235C57 - 9DF2 - E9B7B2 - East Asian ideograph - - - 235C5B - 9DF8 - E9B7B8 - East Asian ideograph - - - 235C5C - 9DFC - E9B7BC - East Asian ideograph - - - 235C5F - 9DEB - E9B7AB - East Asian ideograph - - - 235C65 - 9DEF - E9B7AF - East Asian ideograph - - - 235C6A - 9DED - E9B7AD - East Asian ideograph - - - 235C6C - 9DE6 - E9B7A6 - East Asian ideograph - - - 235C6D - 9DEE - E9B7AE - East Asian ideograph - - - 235C71 - 9E07 - E9B887 - East Asian ideograph - - - 235C7E - 9DFD - E9B7BD - East Asian ideograph - - - 235D27 - 9E0E - E9B88E - East Asian ideograph - - - 235D2B - 9E11 - E9B891 - East Asian ideograph - - - 235D36 - 9E15 - E9B895 - East Asian ideograph - - - 235D37 - 9E18 - E9B898 - East Asian ideograph - - - 235D39 - 9E1C - E9B89C - East Asian ideograph - - - 235D3A - 9E1B - E9B89B - East Asian ideograph - - - 235D3B - 9E1D - E9B89D - East Asian ideograph - - - 235D3C - 9E75 - E9B9B5 - East Asian ideograph - - - 235D42 - 9E7A - E9B9BA - East Asian ideograph - - - 235D43 - 9E7B - E9B9BB - East Asian ideograph - - - 235D47 - 9E80 - E9BA80 - East Asian ideograph - - - 235D48 - 9E83 - E9BA83 - East Asian ideograph - - - 235D49 - 9E84 - E9BA84 - East Asian ideograph - - - 235D4B - 9E88 - E9BA88 - East Asian ideograph - - - 235D4F - 9E87 - E9BA87 - East Asian ideograph - - - 235D55 - 9E90 - E9BA90 - East Asian ideograph - - - 235D58 - 9E8C - E9BA8C - East Asian ideograph - - - 235D5A - 9E95 - E9BA95 - East Asian ideograph - - - 235D5C - 9E91 - E9BA91 - East Asian ideograph - - - 235D5D - 9E9B - E9BA9B - East Asian ideograph - - - 235D66 - 9E9E - E9BA9E - East Asian ideograph - - - 235D77 - 9EAD - E9BAAD - East Asian ideograph - - - 235D79 - 9EAF - E9BAAF - East Asian ideograph - - - 235D7A - 9EB0 - E9BAB0 - East Asian ideograph - - - 235E30 - 9EC1 - E9BB81 - East Asian ideograph - - - 235E35 - 9EC6 - E9BB86 - East Asian ideograph - - - 235E37 - 9EC8 - E9BB88 - East Asian ideograph - - - 235E42 - 9ECC - E9BB8C - East Asian ideograph - - - 235E4A - 9ED0 - E9BB90 - East Asian ideograph - - - 235E4C - 9ED3 - E9BB93 - East Asian ideograph - - - 235E53 - 9EDA - E9BB9A - East Asian ideograph - - - 235E55 - 9EDF - E9BB9F - East Asian ideograph - - - 235E57 - 9EE3 - E9BBA3 - East Asian ideograph - - - 235E59 - 9EE5 - E9BBA5 - East Asian ideograph - - - 235E5C - 9EE7 - E9BBA7 - East Asian ideograph - - - 235E60 - 9EEE - E9BBAE - East Asian ideograph - - - 235E66 - 9EF0 - E9BBB0 - East Asian ideograph - - - 235E6F - 9EF6 - E9BBB6 - East Asian ideograph - - - 235E74 - 9EF9 - E9BBB9 - East Asian ideograph - - - 235E76 - 9EFB - E9BBBB - East Asian ideograph - - - 235E77 - 9EFC - E9BBBC - East Asian ideograph - - - 235E7A - 9EFD - E9BBBD - East Asian ideograph - - - 235E7B - 9EFE - E9BBBE - East Asian ideograph - - - 235E7C - 9EFF - E9BBBF - East Asian ideograph - - - 235E7D - 9F02 - E9BC82 - East Asian ideograph - - - 235F2F - 9F0F - E9BC8F - East Asian ideograph - - - 235F31 - 9F10 - E9BC90 - East Asian ideograph - - - 235F32 - 9F12 - E9BC92 - East Asian ideograph - - - 235F33 - 9F16 - E9BC96 - East Asian ideograph - - - 235F34 - 9F17 - E9BC97 - East Asian ideograph - - - 235F37 - 9F1A - E9BC9A - East Asian ideograph - - - 235F45 - 9F22 - E9BCA2 - East Asian ideograph - - - 235F48 - 9F2B - E9BCAB - East Asian ideograph - - - 235F49 - 9F26 - E9BCA6 - East Asian ideograph - - - 235F53 - 9F2F - E9BCAF - East Asian ideograph - - - 235F5E - 9F39 - E9BCB9 - East Asian ideograph - - - 235F5F - 9F37 - E9BCB7 - East Asian ideograph - - - 235F64 - 9F3D - E9BCBD - East Asian ideograph - - - 235F69 - 9F41 - E9BD81 - East Asian ideograph - - - 235F6D - 9F45 - E9BD85 - East Asian ideograph - - - 235F6F - 9F46 - E9BD86 - East Asian ideograph - - - 235F71 - 9F48 - E9BD88 - East Asian ideograph - - - 235F73 - 9F49 - E9BD89 - East Asian ideograph - - - 235F79 - 9F4E - E9BD8E - East Asian ideograph - - - 235F7B - 9F4F - E9BD8F - East Asian ideograph - - - 235F7C - 9F54 - E9BD94 - East Asian ideograph - - - 235F7E - 9F55 - E9BD95 - East Asian ideograph - - - 236023 - 9F57 - E9BD97 - East Asian ideograph - - - 236028 - 9F60 - E9BDA0 - East Asian ideograph - - - 23603F - 9F6E - E9BDAE - East Asian ideograph - - - 236040 - 9F6F - E9BDAF - East Asian ideograph - - - 236047 - 9F76 - E9BDB6 - East Asian ideograph - - - 23605B - 9F8E - E9BE8E - East Asian ideograph - - - 236061 - 9F93 - E9BE93 - East Asian ideograph - - - 236062 - 9F95 - E9BE95 - East Asian ideograph - - - 23606B - 9FA0 - E9BEA0 - East Asian ideograph - - - 236071 - 9FA5 - E9BEA5 - East Asian ideograph - - - 236072 - 9FA4 - E9BEA4 - East Asian ideograph - - - 273032 - 5E76 - E5B9B6 - East Asian ideograph - - - 27304C - 5E72 - E5B9B2 - East Asian ideograph - - - 27304D - 4E71 - E4B9B1 - East Asian ideograph - - - 273058 - 4E9A - E4BA9A - East Asian ideograph - - - 273138 - 5E03 - E5B883 - East Asian ideograph - - - 27313C - 5360 - E58DA0 - East Asian ideograph - - - 27314C - 6765 - E69DA5 - East Asian ideograph - - - 27314F - 4ED1 - E4BB91 - East Asian ideograph - - - 27315D - 4FA0 - E4BEA0 - East Asian ideograph - - - 273169 - 7CFB - E7B3BB - East Asian ideograph (duplicate simplified) - - - 27316C - 4ED3 - E4BB93 - East Asian ideograph - - - 273173 - 4EEC - E4BBAC - East Asian ideograph - - - 273179 - 4FE9 - E4BFA9 - East Asian ideograph - - - 273224 - 4E2A - E4B8AA - East Asian ideograph - - - 273226 - 4F25 - E4BCA5 - East Asian ideograph - - - 27322D - 4F26 - E4BCA6 - East Asian ideograph - - - 27322E - 4EC3 - E4BB83 - East Asian ideograph (duplicate simplified) - - - 273233 - 4F1F - E4BC9F - East Asian ideograph - - - 273235 - 4FA7 - E4BEA7 - East Asian ideograph - - - 273238 - 4FA6 - E4BEA6 - East Asian ideograph - - - 27323E - 5BB6 - E5AEB6 - East Asian ideograph - - - 273240 - 5907 - E5A487 - East Asian ideograph - - - 273241 - 6770 - E69DB0 - East Asian ideograph - - - 273243 - 4F27 - E4BCA7 - East Asian ideograph - - - 273244 - 4F1E - E4BC9E - East Asian ideograph - - - 273246 - 4F20 - E4BCA0 - East Asian ideograph - - - 273247 - 503A - E580BA - East Asian ideograph - - - 273249 - 4EC5 - E4BB85 - East Asian ideograph - - - 27324A - 503E - E580BE - East Asian ideograph - - - 27324C - 4F24 - E4BCA4 - East Asian ideograph - - - 273251 - 4FA5 - E4BEA5 - East Asian ideograph - - - 273255 - 4EC6 - E4BB86 - East Asian ideograph - - - 273256 - 4F2A - E4BCAA - East Asian ideograph - - - 273257 - 8C61 - E8B1A1 - East Asian ideograph - - - 273258 - 4FA8 - E4BEA8 - East Asian ideograph - - - 273259 - 4EEA - E4BBAA - East Asian ideograph - - - 27325A - 4EBF - E4BABF - East Asian ideograph - - - 27325D - 4EF7 - E4BBB7 - East Asian ideograph - - - 27325E - 4FAC - E4BEAC - East Asian ideograph - - - 273260 - 4FA9 - E4BEA9 - East Asian ideograph - - - 273261 - 4FED - E4BFAD - East Asian ideograph - - - 273262 - 50A7 - E582A7 - East Asian ideograph - - - 273263 - 5C3D - E5B0BD - East Asian ideograph (duplicate simplified) - - - 273265 - 4FE6 - E4BFA6 - East Asian ideograph - - - 273266 - 4F18 - E4BC98 - East Asian ideograph - - - 273267 - 507F - E581BF - East Asian ideograph - - - 273269 - 50A8 - E582A8 - East Asian ideograph - - - 27326A - 4FEA - E4BFAA - East Asian ideograph - - - 27326B - 4FE8 - E4BFA8 - East Asian ideograph - - - 273273 - 51F6 - E587B6 - East Asian ideograph - - - 27327A - 513F - E584BF - East Asian ideograph - - - 27327B - 5156 - E58596 - East Asian ideograph - - - 273323 - 4E24 - E4B8A4 - East Asian ideograph - - - 273340 - 51BB - E586BB - East Asian ideograph - - - 273348 - 51EF - E587AF - East Asian ideograph - - - 27336B - 514B - E5858B - East Asian ideograph - - - 27336D - 5219 - E58899 - East Asian ideograph - - - 273370 - 521A - E5889A - East Asian ideograph - - - 273376 - 5240 - E58980 - East Asian ideograph - - - 273378 - 521B - E5889B - East Asian ideograph - - - 27337C - 5212 - E58892 - East Asian ideograph - - - 27337E - 5267 - E589A7 - East Asian ideograph - - - 273421 - 5251 - E58991 - East Asian ideograph - - - 273422 - 5218 - E58898 - East Asian ideograph - - - 273423 - 5242 - E58982 - East Asian ideograph - - - 27342F - 52B2 - E58AB2 - East Asian ideograph - - - 273433 - 52A1 - E58AA1 - East Asian ideograph - - - 273434 - 52A8 - E58AA8 - East Asian ideograph - - - 273435 - 52B3 - E58AB3 - East Asian ideograph - - - 273436 - 52CB - E58B8B - East Asian ideograph - - - 273437 - 80DC - E8839C - East Asian ideograph - - - 273438 - 52BF - E58ABF - East Asian ideograph - - - 27343C - 52B1 - E58AB1 - East Asian ideograph - - - 27343D - 529D - E58A9D - East Asian ideograph - - - 273451 - 6C47 - E6B187 - East Asian ideograph - - - 273452 - 532E - E58CAE - East Asian ideograph - - - 273455 - 533A - E58CBA - East Asian ideograph - - - 27345F - 5346 - E58D86 - East Asian ideograph - - - 273460 - 534F - E58D8F - East Asian ideograph - - - 27347A - 538C - E58E8C - East Asian ideograph - - - 27347B - 5389 - E58E89 - East Asian ideograph - - - 27347D - 53C2 - E58F82 - East Asian ideograph - - - 27352B - 4E1B - E4B89B - East Asian ideograph - - - 27363E - 5458 - E59198 - East Asian ideograph - - - 273648 - 95EE - E997AE - East Asian ideograph - - - 273649 - 54D1 - E59391 - East Asian ideograph - - - 273663 - 4E27 - E4B8A7 - East Asian ideograph - - - 273668 - 5355 - E58D95 - East Asian ideograph - - - 27366D - 5524 - E594A4 - East Asian ideograph - - - 27366F - 4E54 - E4B994 - East Asian ideograph - - - 273671 - 54DF - E5939F - East Asian ideograph - - - 273678 - 556C - E595AC - East Asian ideograph - - - 27367A - 5417 - E59097 - East Asian ideograph - - - 273721 - 545C - E5919C - East Asian ideograph - - - 273722 - 545B - E5919B - East Asian ideograph - - - 273727 - 5567 - E595A7 - East Asian ideograph - - - 27372C - 53F9 - E58FB9 - East Asian ideograph - - - 27372E - 5455 - E59195 - East Asian ideograph - - - 273730 - 5C1D - E5B09D - East Asian ideograph - - - 273731 - 55BD - E596BD - East Asian ideograph - - - 273732 - 5520 - E594A0 - East Asian ideograph - - - 273733 - 5578 - E595B8 - East Asian ideograph - - - 27373D - 5480 - E59280 - East Asian ideograph - - - 273740 - 53FD - E58FBD - East Asian ideograph - - - 273744 - 5428 - E590A8 - East Asian ideograph - - - 273745 - 55B7 - E596B7 - East Asian ideograph - - - 273746 - 5F53 - E5BD93 - East Asian ideograph (duplicate simplified) - - - 273747 - 54DD - E5939D - East Asian ideograph - - - 27374B - 55F3 - E597B3 - East Asian ideograph - - - 27374E - 549B - E5929B - East Asian ideograph - - - 273751 - 5413 - E59093 - East Asian ideograph - - - 273754 - 565C - E5999C - East Asian ideograph - - - 273755 - 5411 - E59091 - East Asian ideograph - - - 273756 - 5499 - E59299 - East Asian ideograph - - - 27375A - 4E25 - E4B8A5 - East Asian ideograph - - - 27375B - 5624 - E598A4 - East Asian ideograph - - - 27375C - 556D - E595AD - East Asian ideograph - - - 27375D - 55EB - E597AB - East Asian ideograph - - - 27375E - 56A3 - E59AA3 - East Asian ideograph - - - 273761 - 7F57 - E7BD97 - East Asian ideograph (duplicate simplified) - - - 273762 - 5453 - E59193 - East Asian ideograph - - - 273764 - 5631 - E598B1 - East Asian ideograph - - - 27376F - 56EF - E59BAF - East Asian ideograph - - - 273770 - 56F4 - E59BB4 - East Asian ideograph - - - 273771 - 56ED - E59BAD - East Asian ideograph - - - 273772 - 5706 - E59C86 - East Asian ideograph - - - 273773 - 56E2 - E59BA2 - East Asian ideograph - - - 273774 - 56FE - E59BBE - East Asian ideograph - - - 27383B - 6267 - E689A7 - East Asian ideograph - - - 27383E - 57A9 - E59EA9 - East Asian ideograph - - - 273844 - 62A5 - E68AA5 - East Asian ideograph - - - 273845 - 5C27 - E5B0A7 - East Asian ideograph - - - 27384A - 573A - E59CBA - East Asian ideograph - - - 27384D - 6D82 - E6B682 - East Asian ideograph - - - 273855 - 575E - E59D9E - East Asian ideograph - - - 273856 - 5757 - E59D97 - East Asian ideograph - - - 273859 - 5C18 - E5B098 - East Asian ideograph - - - 27385A - 57AB - E59EAB - East Asian ideograph - - - 27385B - 5811 - E5A091 - East Asian ideograph - - - 273860 - 575F - E59D9F - East Asian ideograph - - - 273861 - 5760 - E59DA0 - East Asian ideograph - - - 273862 - 5815 - E5A095 - East Asian ideograph - - - 273864 - 575B - E59D9B - East Asian ideograph - - - 273867 - 57A6 - E59EA6 - East Asian ideograph - - - 273869 - 538B - E58E8B - East Asian ideograph - - - 27386B - 5739 - E59CB9 - East Asian ideograph - - - 27386C - 5792 - E59E92 - East Asian ideograph - - - 27386D - 5784 - E59E84 - East Asian ideograph - - - 27386E - 574F - E59D8F - East Asian ideograph - - - 27386F - 575C - E59D9C - East Asian ideograph - - - 273871 - 575D - E59D9D - East Asian ideograph - - - 273874 - 58EE - E5A3AE - East Asian ideograph - - - 273876 - 58F6 - E5A3B6 - East Asian ideograph - - - 273877 - 5BFF - E5AFBF - East Asian ideograph - - - 273923 - 4F19 - E4BC99 - East Asian ideograph - - - 273924 - 68A6 - E6A2A6 - East Asian ideograph - - - 27392E - 5939 - E5A4B9 - East Asian ideograph - - - 27393F - 5941 - E5A581 - East Asian ideograph - - - 273940 - 593A - E5A4BA - East Asian ideograph - - - 273941 - 594B - E5A58B - East Asian ideograph - - - 273953 - 5986 - E5A686 - East Asian ideograph - - - 273A27 - 5987 - E5A687 - East Asian ideograph - - - 273A28 - 5A04 - E5A884 - East Asian ideograph - - - 273A36 - 5988 - E5A688 - East Asian ideograph - - - 273A3B - 59AA - E5A6AA - East Asian ideograph - - - 273A41 - 5A34 - E5A8B4 - East Asian ideograph - - - 273A43 - 5A75 - E5A9B5 - East Asian ideograph - - - 273A44 - 5A07 - E5A887 - East Asian ideograph - - - 273A45 - 59A9 - E5A6A9 - East Asian ideograph - - - 273A48 - 5AD4 - E5AB94 - East Asian ideograph - - - 273A4A - 5A74 - E5A9B4 - East Asian ideograph - - - 273A4B - 5A76 - E5A9B6 - East Asian ideograph - - - 273A5B - 5B59 - E5AD99 - East Asian ideograph - - - 273A5F - 5B5A - E5AD9A - East Asian ideograph - - - 273A60 - 5B66 - E5ADA6 - East Asian ideograph - - - 273A63 - 5B6A - E5ADAA - East Asian ideograph - - - 273B2E - 5BDD - E5AF9D - East Asian ideograph - - - 273B31 - 5B9E - E5AE9E - East Asian ideograph - - - 273B32 - 5B81 - E5AE81 - East Asian ideograph - - - 273B35 - 5BBD - E5AEBD - East Asian ideograph - - - 273B36 - 5BA1 - E5AEA1 - East Asian ideograph - - - 273B37 - 5199 - E58699 - East Asian ideograph - - - 273B38 - 5BA0 - E5AEA0 - East Asian ideograph - - - 273B39 - 5B9D - E5AE9D - East Asian ideograph - - - 273B3F - 4E13 - E4B893 - East Asian ideograph - - - 273B40 - 5C06 - E5B086 - East Asian ideograph - - - 273B42 - 5BFB - E5AFBB - East Asian ideograph - - - 273B43 - 5BF9 - E5AFB9 - East Asian ideograph - - - 273B44 - 5BFC - E5AFBC - East Asian ideograph - - - 273B4C - 5C34 - E5B0B4 - East Asian ideograph - - - 273B60 - 5C61 - E5B1A1 - East Asian ideograph - - - 273B61 - 5C42 - E5B182 - East Asian ideograph - - - 273B63 - 5C5E - E5B19E - East Asian ideograph - - - 273B6E - 5188 - E58688 - East Asian ideograph - - - 273B74 - 5CE1 - E5B3A1 - East Asian ideograph - - - 273B79 - 5C9B - E5B29B - East Asian ideograph - - - 273C28 - 5C9A - E5B29A - East Asian ideograph - - - 273C2A - 5D2D - E5B4AD - East Asian ideograph - - - 273C2B - 5C96 - E5B296 - East Asian ideograph - - - 273C2D - 5C7F - E5B1BF - East Asian ideograph - - - 273C2E - 5CB3 - E5B2B3 - East Asian ideograph - - - 273C31 - 5CE6 - E5B3A6 - East Asian ideograph - - - 273C32 - 5DC5 - E5B785 - East Asian ideograph - - - 273C33 - 5CA9 - E5B2A9 - East Asian ideograph - - - 273C4F - 5E05 - E5B885 - East Asian ideograph - - - 273C51 - 5E08 - E5B888 - East Asian ideograph - - - 273C52 - 5E10 - E5B890 - East Asian ideograph - - - 273C53 - 5E26 - E5B8A6 - East Asian ideograph - - - 273C58 - 5E27 - E5B8A7 - East Asian ideograph - - - 273C5C - 5E3C - E5B8BC - East Asian ideograph - - - 273C5E - 5E01 - E5B881 - East Asian ideograph - - - 273C60 - 5E1C - E5B89C - East Asian ideograph - - - 273C61 - 5E2E - E5B8AE - East Asian ideograph - - - 273C67 - 5E72 - E5B9B2 - East Asian ideograph (Version J extension) - - - 273C6B - 51E0 - E587A0 - East Asian ideograph - - - 273C76 - 5E93 - E5BA93 - East Asian ideograph - - - 273C77 - 5750 - E59D90 - East Asian ideograph - - - 273C7E - 5395 - E58E95 - East Asian ideograph - - - 273D27 - 5E9F - E5BA9F - East Asian ideograph - - - 273D2A - 5E7F - E5B9BF - East Asian ideograph - - - 273D2B - 5E99 - E5BA99 - East Asian ideograph - - - 273D2C - 5382 - E58E82 - East Asian ideograph - - - 273D2D - 5E9E - E5BA9E - East Asian ideograph - - - 273D2E - 5E90 - E5BA90 - East Asian ideograph - - - 273D2F - 5385 - E58E85 - East Asian ideograph - - - 273D47 - 5F20 - E5BCA0 - East Asian ideograph - - - 273D4B - 5F39 - E5BCB9 - East Asian ideograph - - - 273D4C - 5F25 - E5BCA5 - East Asian ideograph - - - 273D4D - 5F2F - E5BCAF - East Asian ideograph - - - 273D4F - 6C47 - E6B187 - East Asian ideograph (duplicate simplified) - - - 273D65 - 540E - E5908E - East Asian ideograph - - - 273D67 - 5F84 - E5BE84 - East Asian ideograph - - - 273D6C - 4ECE - E4BB8E - East Asian ideograph - - - 273D6F - 590D - E5A48D - East Asian ideograph - - - 273D74 - 5F7B - E5BDBB - East Asian ideograph - - - 273D76 - 5F81 - E5BE81 - East Asian ideograph - - - 273E57 - 5FF0 - E5BFB0 - East Asian ideograph - - - 273E5C - 95F7 - E997B7 - East Asian ideograph - - - 273E5E - 6005 - E68085 - East Asian ideograph - - - 273E61 - 6076 - E681B6 - East Asian ideograph - - - 273E6C - 60EC - E683AC - East Asian ideograph - - - 273E70 - 607B - E681BB - East Asian ideograph - - - 273E77 - 7231 - E788B1 - East Asian ideograph - - - 273E7E - 607C - E681BC - East Asian ideograph - - - 273F28 - 6001 - E68081 - East Asian ideograph - - - 273F29 - 5FFE - E5BFBE - East Asian ideograph - - - 273F2B - 6006 - E68086 - East Asian ideograph - - - 273F2E - 5E86 - E5BA86 - East Asian ideograph - - - 273F31 - 60ED - E683AD - East Asian ideograph - - - 273F33 - 5FE7 - E5BFA7 - East Asian ideograph - - - 273F36 - 8651 - E89991 - East Asian ideograph - - - 273F38 - 60E8 - E683A8 - East Asian ideograph - - - 273F39 - 60EF - E683AF - East Asian ideograph - - - 273F3A - 6078 - E681B8 - East Asian ideograph - - - 273F3B - 6002 - E68082 - East Asian ideograph - - - 273F3C - 6B32 - E6ACB2 - East Asian ideograph - - - 273F3E - 5BAA - E5AEAA - East Asian ideograph - - - 273F3F - 51ED - E587AD - East Asian ideograph - - - 273F41 - 60AF - E682AF - East Asian ideograph - - - 273F42 - 6124 - E684A4 - East Asian ideograph - - - 273F44 - 60EE - E683AE - East Asian ideograph - - - 273F45 - 6187 - E68687 - East Asian ideograph - - - 273F47 - 60EB - E683AB - East Asian ideograph - - - 273F48 - 5FC6 - E5BF86 - East Asian ideograph - - - 273F4A - 5E94 - E5BA94 - East Asian ideograph - - - 273F4B - 601C - E6809C - East Asian ideograph - - - 273F4E - 6073 - E681B3 - East Asian ideograph - - - 273F54 - 6000 - E68080 - East Asian ideograph - - - 273F55 - 61D2 - E68792 - East Asian ideograph - - - 273F56 - 60AC - E682AC - East Asian ideograph - - - 273F58 - 5FCF - E5BF8F - East Asian ideograph - - - 273F59 - 6151 - E68591 - East Asian ideograph - - - 273F5B - 60E7 - E683A7 - East Asian ideograph - - - 273F5C - 604B - E6818B - East Asian ideograph - - - 273F6E - 6218 - E68898 - East Asian ideograph - - - 273F6F - 620F - E6888F - East Asian ideograph - - - 27406C - 631F - E68C9F - East Asian ideograph - - - 27407B - 5377 - E58DB7 - East Asian ideograph - - - 27407D - 626B - E689AB - East Asian ideograph - - - 27407E - 626A - E689AA - East Asian ideograph - - - 274123 - 6302 - E68C82 - East Asian ideograph - - - 274136 - 62A1 - E68AA1 - East Asian ideograph - - - 27413C - 62E3 - E68BA3 - East Asian ideograph - - - 27413F - 626C - E689AC - East Asian ideograph - - - 274142 - 6325 - E68CA5 - East Asian ideograph - - - 27414F - 635F - E68D9F - East Asian ideograph - - - 274153 - 6363 - E68DA3 - East Asian ideograph - - - 274155 - 62A2 - E68AA2 - East Asian ideograph - - - 27415A - 5C4F - E5B18F - East Asian ideograph - - - 27415B - 631A - E68C9A - East Asian ideograph - - - 27415F - 6402 - E69082 - East Asian ideograph - - - 274160 - 63B4 - E68EB4 - East Asian ideograph - - - 274165 - 635E - E68D9E - East Asian ideograph - - - 274166 - 62E8 - E68BA8 - East Asian ideograph - - - 274168 - 6320 - E68CA0 - East Asian ideograph - - - 27416E - 6251 - E68991 - East Asian ideograph - - - 274171 - 629A - E68A9A - East Asian ideograph - - - 274174 - 62E5 - E68BA5 - East Asian ideograph - - - 274176 - 51FB - E587BB - East Asian ideograph - - - 274177 - 631E - E68C9E - East Asian ideograph - - - 27417A - 6321 - E68CA1 - East Asian ideograph - - - 27417C - 636E - E68DAE - East Asian ideograph - - - 27417D - 63B3 - E68EB3 - East Asian ideograph - - - 27417E - 62E9 - E68BA9 - East Asian ideograph - - - 274222 - 62C5 - E68B85 - East Asian ideograph - - - 274224 - 6361 - E68DA1 - East Asian ideograph - - - 274225 - 6324 - E68CA4 - East Asian ideograph - - - 274226 - 62E7 - E68BA7 - East Asian ideograph - - - 274228 - 62DF - E68B9F - East Asian ideograph - - - 274229 - 6401 - E69081 - East Asian ideograph - - - 27422A - 6269 - E689A9 - East Asian ideograph - - - 27422B - 63B7 - E68EB7 - East Asian ideograph - - - 27422C - 64B5 - E692B5 - East Asian ideograph - - - 27422E - 6270 - E689B0 - East Asian ideograph - - - 27422F - 64DE - E6939E - East Asian ideograph - - - 274230 - 6446 - E69186 - East Asian ideograph - - - 274231 - 62E2 - E68BA2 - East Asian ideograph - - - 274233 - 62E6 - E68BA6 - East Asian ideograph - - - 274234 - 6400 - E69080 - East Asian ideograph - - - 274235 - 6444 - E69184 - East Asian ideograph - - - 274237 - 631B - E68C9B - East Asian ideograph - - - 274238 - 644A - E6918A - East Asian ideograph - - - 27423A - 6405 - E69085 - East Asian ideograph - - - 27423B - 63FD - E68FBD - East Asian ideograph - - - 274247 - 8D25 - E8B4A5 - East Asian ideograph - - - 27424F - 542F - E590AF - East Asian ideograph - - - 274252 - 654C - E6958C - East Asian ideograph - - - 274254 - 6570 - E695B0 - East Asian ideograph - - - 274256 - 655B - E6959B - East Asian ideograph - - - 274257 - 6BD9 - E6AF99 - East Asian ideograph - - - 274263 - 65A9 - E696A9 - East Asian ideograph - - - 274266 - 65AD - E696AD - East Asian ideograph - - - 27432D - 65F6 - E697B6 - East Asian ideograph - - - 274332 - 663C - E698BC - East Asian ideograph - - - 274340 - 6656 - E69996 - East Asian ideograph - - - 274341 - 6655 - E69995 - East Asian ideograph - - - 274343 - 7545 - E79585 - East Asian ideograph - - - 274344 - 6682 - E69A82 - East Asian ideograph - - - 274348 - 6653 - E69993 - East Asian ideograph - - - 274349 - 5386 - E58E86 - East Asian ideograph (duplicate simplified) - - - 27434B - 66A7 - E69AA7 - East Asian ideograph - - - 27434D - 65F7 - E697B7 - East Asian ideograph - - - 274355 - 4E66 - E4B9A6 - East Asian ideograph - - - 27435A - 4F1A - E4BC9A - East Asian ideograph - - - 274366 - 80E7 - E883A7 - East Asian ideograph - - - 274426 - 4E1C - E4B89C - East Asian ideograph - - - 274463 - 6761 - E69DA1 - East Asian ideograph - - - 274468 - 67AD - E69EAD - East Asian ideograph - - - 274469 - 6800 - E6A080 - East Asian ideograph - - - 27446D - 5F03 - E5BC83 - East Asian ideograph - - - 27446E - 6816 - E6A096 - East Asian ideograph - - - 274471 - 680B - E6A08B - East Asian ideograph - - - 274476 - 6808 - E6A088 - East Asian ideograph - - - 27447A - 67A3 - E69EA3 - East Asian ideograph - - - 27447C - 832D - E88CAD - East Asian ideograph - - - 274526 - 6781 - E69E81 - East Asian ideograph - - - 27452A - 6768 - E69DA8 - East Asian ideograph - - - 27452B - 6862 - E6A1A2 - East Asian ideograph - - - 27452D - 4E1A - E4B89A - East Asian ideograph - - - 27452F - 67AB - E69EAB - East Asian ideograph - - - 274537 - 8363 - E88DA3 - East Asian ideograph - - - 274539 - 6784 - E69E84 - East Asian ideograph - - - 274540 - 67AA - E69EAA - East Asian ideograph - - - 274544 - 6837 - E6A0B7 - East Asian ideograph - - - 274546 - 6869 - E6A1A9 - East Asian ideograph - - - 274547 - 6807 - E6A087 - East Asian ideograph - - - 274549 - 67A2 - E69EA2 - East Asian ideograph - - - 27454A - 697C - E6A5BC - East Asian ideograph - - - 27454C - 6868 - E6A1A8 - East Asian ideograph - - - 27454E - 4E50 - E4B990 - East Asian ideograph - - - 27454F - 679E - E69E9E - East Asian ideograph - - - 274553 - 692D - E6A4AD - East Asian ideograph - - - 274555 - 6811 - E6A091 - East Asian ideograph - - - 274557 - 6866 - E6A1A6 - East Asian ideograph - - - 274558 - 6734 - E69CB4 - East Asian ideograph - - - 27455B - 6865 - E6A1A5 - East Asian ideograph - - - 27455D - 673A - E69CBA - East Asian ideograph - - - 27455F - 6863 - E6A1A3 - East Asian ideograph - - - 274561 - 68C0 - E6A380 - East Asian ideograph - - - 274562 - 6867 - E6A1A7 - East Asian ideograph - - - 274563 - 67E0 - E69FA0 - East Asian ideograph - - - 274564 - 69DF - E6A79F - East Asian ideograph - - - 274565 - 67DC - E69F9C - East Asian ideograph - - - 274566 - 69DB - E6A79B - East Asian ideograph - - - 27456A - 6988 - E6A688 - East Asian ideograph - - - 27456B - 691F - E6A49F - East Asian ideograph - - - 27456C - 6809 - E6A089 - East Asian ideograph - - - 27456D - 6A79 - E6A9B9 - East Asian ideograph - - - 27456E - 680F - E6A08F - East Asian ideograph - - - 27456F - 6A31 - E6A8B1 - East Asian ideograph - - - 274570 - 6743 - E69D83 - East Asian ideograph - - - 274571 - 6984 - E6A684 - East Asian ideograph - - - 274578 - 94A6 - E992A6 - East Asian ideograph - - - 27457A - 6B20 - E6ACA0 - East Asian ideograph (duplicate simplified) - - - 27457C - 6B27 - E6ACA7 - East Asian ideograph - - - 27457E - 6B24 - E6ACA4 - East Asian ideograph - - - 274621 - 6B22 - E6ACA2 - East Asian ideograph - - - 274629 - 5C81 - E5B281 - East Asian ideograph - - - 27462A - 5386 - E58E86 - East Asian ideograph - - - 27462B - 5F52 - E5BD92 - East Asian ideograph - - - 274633 - 6B8B - E6AE8B - East Asian ideograph - - - 274635 - 6B87 - E6AE87 - East Asian ideograph - - - 274636 - 6B93 - E6AE93 - East Asian ideograph - - - 274637 - 6BA1 - E6AEA1 - East Asian ideograph - - - 274638 - 6B7C - E6ADBC - East Asian ideograph - - - 27463B - 6740 - E69D80 - East Asian ideograph - - - 27463C - 58F3 - E5A3B3 - East Asian ideograph - - - 274640 - 6BB4 - E6AEB4 - East Asian ideograph - - - 274655 - 6C14 - E6B094 - East Asian ideograph - - - 274658 - 6C22 - E6B0A2 - East Asian ideograph - - - 27474E - 6CFE - E6B3BE - East Asian ideograph - - - 274759 - 6CEA - E6B3AA - East Asian ideograph - - - 274768 - 6D45 - E6B585 - East Asian ideograph - - - 274774 - 6E0A - E6B88A - East Asian ideograph - - - 274777 - 6CA6 - E6B2A6 - East Asian ideograph - - - 27477D - 6D8C - E6B68C - East Asian ideograph - - - 27482D - 6C64 - E6B1A4 - East Asian ideograph - - - 274830 - 6D4B - E6B58B - East Asian ideograph - - - 274831 - 6DA1 - E6B6A1 - East Asian ideograph - - - 274833 - 6D51 - E6B591 - East Asian ideograph - - - 27483D - 6C9F - E6B29F - East Asian ideograph - - - 274841 - 6C85 - E6B285 - East Asian ideograph - - - 274842 - 706D - E781AD - East Asian ideograph - - - 274844 - 6E7F - E6B9BF - East Asian ideograph - - - 274848 - 6CA7 - E6B2A7 - East Asian ideograph - - - 27484B - 51C6 - E58786 - East Asian ideograph - - - 27484F - 6CAA - E6B2AA - East Asian ideograph - - - 274854 - 6E0D - E6B88D - East Asian ideograph - - - 274855 - 6DA8 - E6B6A8 - East Asian ideograph - - - 274857 - 6C49 - E6B189 - East Asian ideograph - - - 274858 - 6EE1 - E6BBA1 - East Asian ideograph - - - 274859 - 6D9F - E6B69F - East Asian ideograph - - - 27485A - 6E10 - E6B890 - East Asian ideograph - - - 27485F - 6EDE - E6BB9E - East Asian ideograph - - - 274863 - 6D46 - E6B586 - East Asian ideograph - - - 274864 - 6E17 - E6B897 - East Asian ideograph - - - 274865 - 6E14 - E6B894 - East Asian ideograph - - - 27486C - 6CFC - E6B3BC - East Asian ideograph - - - 27486D - 6DA6 - E6B6A6 - East Asian ideograph - - - 27486E - 6DA7 - E6B6A7 - East Asian ideograph - - - 27486F - 6D01 - E6B481 - East Asian ideograph - - - 274871 - 6D47 - E6B587 - East Asian ideograph - - - 274878 - 6E83 - E6BA83 - East Asian ideograph - - - 27487B - 6DC0 - E6B780 - East Asian ideograph - - - 27487C - 6D53 - E6B593 - East Asian ideograph - - - 274921 - 6CFD - E6B3BD - East Asian ideograph - - - 274922 - 6D4A - E6B58A - East Asian ideograph - - - 274926 - 6D4E - E6B58E - East Asian ideograph - - - 274927 - 6CDE - E6B39E - East Asian ideograph - - - 274928 - 6EE8 - E6BBA8 - East Asian ideograph - - - 27492B - 6EE5 - E6BBA5 - East Asian ideograph - - - 27492D - 6D9B - E6B69B - East Asian ideograph - - - 27492E - 6DA9 - E6B6A9 - East Asian ideograph - - - 274931 - 6C88 - E6B288 - East Asian ideograph - - - 274932 - 6CFB - E6B3BB - East Asian ideograph - - - 274933 - 6E0E - E6B88E - East Asian ideograph - - - 274934 - 6E85 - E6BA85 - East Asian ideograph - - - 274936 - 6EE4 - E6BBA4 - East Asian ideograph - - - 274937 - 6D4F - E6B58F - East Asian ideograph - - - 27493A - 6FD1 - E6BF91 - East Asian ideograph - - - 27493B - 6CA5 - E6B2A5 - East Asian ideograph - - - 27493C - 6FD2 - E6BF92 - East Asian ideograph - - - 27493D - 6F47 - E6BD87 - East Asian ideograph - - - 27493F - 6F9C - E6BE9C - East Asian ideograph - - - 274941 - 6D12 - E6B492 - East Asian ideograph - - - 274942 - 6EE9 - E6BBA9 - East Asian ideograph - - - 274943 - 6E7E - E6B9BE - East Asian ideograph - - - 274944 - 6EE6 - E6BBA6 - East Asian ideograph - - - 27494A - 707E - E781BE - East Asian ideograph - - - 274951 - 4E3A - E4B8BA - East Asian ideograph - - - 27495D - 4E4C - E4B98C - East Asian ideograph - - - 274966 - 65E0 - E697A0 - East Asian ideograph - - - 27496A - 70BC - E782BC - East Asian ideograph - - - 27496D - 70E6 - E783A6 - East Asian ideograph - - - 27496F - 7080 - E78280 - East Asian ideograph - - - 274975 - 6247 - E68987 - East Asian ideograph - - - 27497D - 70ED - E783AD - East Asian ideograph - - - 27497E - 70EB - E783AB - East Asian ideograph - - - 274A21 - 70BD - E782BD - East Asian ideograph - - - 274A22 - 7096 - E78296 - East Asian ideograph - - - 274A24 - 706F - E781AF - East Asian ideograph - - - 274A25 - 7116 - E78496 - East Asian ideograph - - - 274A26 - 70E7 - E783A7 - East Asian ideograph - - - 274A2E - 8425 - E890A5 - East Asian ideograph - - - 274A30 - 70DB - E7839B - East Asian ideograph - - - 274A31 - 707F - E781BF - East Asian ideograph - - - 274A33 - 70E9 - E783A9 - East Asian ideograph - - - 274A36 - 70C1 - E78381 - East Asian ideograph - - - 274A37 - 7089 - E78289 - East Asian ideograph - - - 274A38 - 70C2 - E78382 - East Asian ideograph - - - 274A42 - 7237 - E788B7 - East Asian ideograph - - - 274A45 - 5C14 - E5B094 - East Asian ideograph - - - 274A46 - 5899 - E5A299 - East Asian ideograph - - - 274A4C - 724D - E7898D - East Asian ideograph - - - 274A53 - 5B83 - E5AE83 - East Asian ideograph - - - 274A5A - 7275 - E789B5 - East Asian ideograph - - - 274A5E - 8366 - E88DA6 - East Asian ideograph - - - 274A61 - 728A - E78A8A - East Asian ideograph - - - 274A62 - 727A - E789BA - East Asian ideograph - - - 274A68 - 72B6 - E78AB6 - East Asian ideograph - - - 274A70 - 72ED - E78BAD - East Asian ideograph - - - 274A72 - 72C8 - E78B88 - East Asian ideograph - - - 274A79 - 72B9 - E78AB9 - East Asian ideograph - - - 274A7E - 72F1 - E78BB1 - East Asian ideograph - - - 274B22 - 72EF - E78BAF - East Asian ideograph - - - 274B23 - 72EE - E78BAE - East Asian ideograph - - - 274B27 - 72EC - E78BAC - East Asian ideograph - - - 274B28 - 72DE - E78B9E - East Asian ideograph - - - 274B29 - 83B7 - E88EB7 - East Asian ideograph - - - 274B2A - 72B7 - E78AB7 - East Asian ideograph - - - 274B2B - 517D - E585BD - East Asian ideograph - - - 274B2C - 730E - E78C8E - East Asian ideograph - - - 274B2D - 736D - E78DAD - East Asian ideograph - - - 274B2E - 732E - E78CAE - East Asian ideograph - - - 274B2F - 7321 - E78CA1 - East Asian ideograph - - - 274B47 - 73B0 - E78EB0 - East Asian ideograph - - - 274B57 - 73F2 - E78FB2 - East Asian ideograph - - - 274B5E - 739B - E78E9B - East Asian ideograph - - - 274B5F - 7410 - E79090 - East Asian ideograph - - - 274B64 - 7391 - E78E91 - East Asian ideograph - - - 274B67 - 73AF - E78EAF - East Asian ideograph - - - 274B68 - 7477 - E791B7 - East Asian ideograph - - - 274B69 - 73BA - E78EBA - East Asian ideograph - - - 274B6B - 73D1 - E78F91 - East Asian ideograph - - - 274B74 - 74EF - E793AF - East Asian ideograph - - - 274B7A - 4EA7 - E4BAA7 - East Asian ideograph - - - 274C2D - 4EA9 - E4BAA9 - East Asian ideograph - - - 274C31 - 7544 - E79584 - East Asian ideograph - - - 274C33 - 6BD5 - E6AF95 - East Asian ideograph - - - 274C34 - 5F02 - E5BC82 - East Asian ideograph - - - 274C36 - 753B - E794BB - East Asian ideograph - - - 274C39 - 5F53 - E5BD93 - East Asian ideograph - - - 274C3B - 7574 - E795B4 - East Asian ideograph - - - 274C3C - 8FED - E8BFAD - East Asian ideograph - - - 274C56 - 75C9 - E79789 - East Asian ideograph - - - 274C60 - 75A1 - E796A1 - East Asian ideograph - - - 274C61 - 759F - E7969F - East Asian ideograph - - - 274C62 - 75EA - E797AA - East Asian ideograph - - - 274C63 - 75AF - E796AF - East Asian ideograph - - - 274C6A - 75AE - E796AE - East Asian ideograph - - - 274C6D - 75E8 - E797A8 - East Asian ideograph - - - 274C6E - 7597 - E79697 - East Asian ideograph - - - 274C71 - 75A0 - E796A0 - East Asian ideograph - - - 274C73 - 75D2 - E79792 - East Asian ideograph - - - 274C75 - 765E - E7999E - East Asian ideograph - - - 274C76 - 763E - E798BE - East Asian ideograph - - - 274C77 - 7663 - E799A3 - East Asian ideograph - - - 274C78 - 762B - E798AB - East Asian ideograph - - - 274C79 - 766B - E799AB - East Asian ideograph - - - 274C7B - 53D1 - E58F91 - East Asian ideograph - - - 274D29 - 7691 - E79A91 - East Asian ideograph - - - 274D2D - 76B1 - E79AB1 - East Asian ideograph - - - 274D3A - 76CF - E79B8F - East Asian ideograph - - - 274D3C - 5C3D - E5B0BD - East Asian ideograph - - - 274D3D - 76D1 - E79B91 - East Asian ideograph - - - 274D3E - 76D8 - E79B98 - East Asian ideograph - - - 274D3F - 5362 - E58DA2 - East Asian ideograph - - - 274D56 - 4F17 - E4BC97 - East Asian ideograph - - - 274D57 - 56F0 - E59BB0 - East Asian ideograph - - - 274D5D - 7750 - E79D90 - East Asian ideograph - - - 274D73 - 4E86 - E4BA86 - East Asian ideograph - - - 274D7C - 77A9 - E79EA9 - East Asian ideograph - - - 274E27 - 77EB - E79FAB - East Asian ideograph - - - 274E3B - 781A - E7A09A - East Asian ideograph - - - 274E3E - 7815 - E7A095 - East Asian ideograph - - - 274E45 - 7855 - E7A195 - East Asian ideograph - - - 274E49 - 786E - E7A1AE - East Asian ideograph - - - 274E4C - 7801 - E7A081 - East Asian ideograph - - - 274E53 - 7816 - E7A096 - East Asian ideograph - - - 274E58 - 77F6 - E79FB6 - East Asian ideograph - - - 274E59 - 7840 - E7A180 - East Asian ideograph - - - 274E5A - 788D - E7A28D - East Asian ideograph - - - 274E5B - 77FF - E79FBF - East Asian ideograph - - - 274E5C - 77FE - E79FBE - East Asian ideograph - - - 274E5D - 783A - E7A0BA - East Asian ideograph - - - 274E5E - 783E - E7A0BE - East Asian ideograph - - - 274E6F - 53EA - E58FAA - East Asian ideograph (duplicate simplified) - - - 274E77 - 7978 - E7A5B8 - East Asian ideograph - - - 274E78 - 796F - E7A5AF - East Asian ideograph - - - 274E7B - 7985 - E7A685 - East Asian ideograph - - - 274E7C - 793C - E7A4BC - East Asian ideograph - - - 274E7D - 7977 - E7A5B7 - East Asian ideograph - - - 274F22 - 4E07 - E4B887 - East Asian ideograph - - - 274F25 - 53B6 - E58EB6 - East Asian ideograph - - - 274F36 - 5E0C - E5B88C - East Asian ideograph - - - 274F3C - 79F0 - E7A7B0 - East Asian ideograph - - - 274F3D - 79CD - E7A78D - East Asian ideograph - - - 274F40 - 8C37 - E8B0B7 - East Asian ideograph - - - 274F44 - 79EF - E7A7AF - East Asian ideograph - - - 274F46 - 7A23 - E7A8A3 - East Asian ideograph - - - 274F49 - 7A51 - E7A991 - East Asian ideograph - - - 274F4A - 79FD - E7A7BD - East Asian ideograph - - - 274F4B - 83B7 - E88EB7 - East Asian ideograph (duplicate simplified) - - - 274F4C - 7A33 - E7A8B3 - East Asian ideograph - - - 274F5C - 6D3C - E6B4BC - East Asian ideograph - - - 274F5D - 7A9D - E7AA9D - East Asian ideograph - - - 274F5F - 7A77 - E7A9B7 - East Asian ideograph - - - 274F60 - 7AA5 - E7AAA5 - East Asian ideograph - - - 274F61 - 7A8D - E7AA8D - East Asian ideograph - - - 274F62 - 7A9C - E7AA9C - East Asian ideograph - - - 274F63 - 7AA6 - E7AAA6 - East Asian ideograph - - - 274F64 - 7A83 - E7AA83 - East Asian ideograph - - - 274F6B - 7ADE - E7AB9E - East Asian ideograph - - - 274F70 - 5DF4 - E5B7B4 - East Asian ideograph (duplicate simplified) - - - 274F79 - 7B14 - E7AC94 - East Asian ideograph - - - 275021 - 7B0B - E7AC8B - East Asian ideograph - - - 275023 - 8345 - E88D85 - East Asian ideograph - - - 27502A - 94B3 - E992B3 - East Asian ideograph - - - 27502B - 7B3A - E7ACBA - East Asian ideograph - - - 275030 - 8303 - E88C83 - East Asian ideograph - - - 275033 - 8282 - E88A82 - East Asian ideograph - - - 275038 - 7BAC - E7AEAC - East Asian ideograph - - - 275039 - 7B03 - E7AC83 - East Asian ideograph - - - 27503A - 7B51 - E7AD91 - East Asian ideograph - - - 27503C - 7B5B - E7AD9B - East Asian ideograph - - - 27503E - 7BD3 - E7AF93 - East Asian ideograph - - - 275041 - 7B80 - E7AE80 - East Asian ideograph - - - 275042 - 7BAB - E7AEAB - East Asian ideograph - - - 275045 - 7BAA - E7AEAA - East Asian ideograph - - - 275046 - 7BD1 - E7AF91 - East Asian ideograph - - - 275048 - 5E18 - E5B898 - East Asian ideograph - - - 27504B - 7B7E - E7ADBE - East Asian ideograph - - - 27504C - 7BEE - E7AFAE - East Asian ideograph - - - 27504D - 7B79 - E7ADB9 - East Asian ideograph - - - 275050 - 7B3C - E7ACBC - East Asian ideograph - - - 275051 - 7C41 - E7B181 - East Asian ideograph - - - 275052 - 7B7E - E7ADBE - East Asian ideograph (duplicate simplified) - - - 275053 - 7BF1 - E7AFB1 - East Asian ideograph - - - 275054 - 7BA9 - E7AEA9 - East Asian ideograph - - - 275055 - 5401 - E59081 - East Asian ideograph - - - 275060 - 7C8B - E7B28B - East Asian ideograph - - - 275062 - 80E1 - E883A1 - East Asian ideograph (duplicate simplified) - - - 275068 - 7CAA - E7B2AA - East Asian ideograph - - - 27506B - 7CAE - E7B2AE - East Asian ideograph - - - 27506F - 7EA0 - E7BAA0 - East Asian ideograph - - - 275070 - 7EAA - E7BAAA - East Asian ideograph - - - 275071 - 7EA3 - E7BAA3 - East Asian ideograph - - - 275072 - 7EA2 - E7BAA2 - East Asian ideograph - - - 275073 - 7EAB - E7BAAB - East Asian ideograph - - - 275074 - 7EA6 - E7BAA6 - East Asian ideograph - - - 275075 - 7EA5 - E7BAA5 - East Asian ideograph - - - 275076 - 7EBA - E7BABA - East Asian ideograph - - - 275077 - 7EB9 - E7BAB9 - East Asian ideograph - - - 27507A - 7EAD - E7BAAD - East Asian ideograph - - - 27507C - 7EB0 - E7BAB0 - East Asian ideograph - - - 27507D - 7EAF - E7BAAF - East Asian ideograph - - - 27507E - 7EBD - E7BABD - East Asian ideograph - - - 275121 - 7EB1 - E7BAB1 - East Asian ideograph - - - 275122 - 7EB3 - E7BAB3 - East Asian ideograph - - - 275123 - 7EA7 - E7BAA7 - East Asian ideograph - - - 275124 - 7EB8 - E7BAB8 - East Asian ideograph - - - 275125 - 7EB7 - E7BAB7 - East Asian ideograph - - - 275126 - 7ECA - E7BB8A - East Asian ideograph - - - 275128 - 7ECB - E7BB8B - East Asian ideograph - - - 275129 - 624E - E6898E - East Asian ideograph - - - 27512A - 7ECD - E7BB8D - East Asian ideograph - - - 27512B - 7EC4 - E7BB84 - East Asian ideograph - - - 27512C - 7EC6 - E7BB86 - East Asian ideograph - - - 27512D - 7EC5 - E7BB85 - East Asian ideograph - - - 27512F - 7ECC - E7BB8C - East Asian ideograph - - - 275130 - 7EC8 - E7BB88 - East Asian ideograph - - - 275131 - 7EDF - E7BB9F - East Asian ideograph - - - 275132 - 7EDE - E7BB9E - East Asian ideograph - - - 275133 - 7ED2 - E7BB92 - East Asian ideograph - - - 275134 - 7ED3 - E7BB93 - East Asian ideograph - - - 275136 - 7EDA - E7BB9A - East Asian ideograph - - - 275137 - 7EDD - E7BB9D - East Asian ideograph - - - 275138 - 7EDC - E7BB9C - East Asian ideograph - - - 275139 - 7ED9 - E7BB99 - East Asian ideograph - - - 27513B - 4E1D - E4B89D - East Asian ideograph - - - 27513C - 7ECF - E7BB8F - East Asian ideograph - - - 27513D - 6346 - E68D86 - East Asian ideograph - - - 27513E - 7EE2 - E7BBA2 - East Asian ideograph - - - 27513F - 7EE5 - E7BBA5 - East Asian ideograph - - - 275140 - 7ED1 - E7BB91 - East Asian ideograph - - - 275141 - 7EFC - E7BBBC - East Asian ideograph - - - 275142 - 7EFD - E7BBBD - East Asian ideograph - - - 275143 - 7EFE - E7BBBE - East Asian ideograph - - - 275144 - 7D27 - E7B4A7 - East Asian ideograph - - - 275145 - 7EEB - E7BBAB - East Asian ideograph - - - 275146 - 7F00 - E7BC80 - East Asian ideograph - - - 275148 - 7F51 - E7BD91 - East Asian ideograph - - - 275149 - 7EB2 - E7BAB2 - East Asian ideograph - - - 27514A - 7EF0 - E7BBB0 - East Asian ideograph - - - 27514C - 7EFF - E7BBBF - East Asian ideograph - - - 27514D - 7EF8 - E7BBB8 - East Asian ideograph - - - 27514E - 7EF4 - E7BBB4 - East Asian ideograph - - - 27514F - 7EF5 - E7BBB5 - East Asian ideograph - - - 275150 - 7EB6 - E7BAB6 - East Asian ideograph - - - 275151 - 7F01 - E7BC81 - East Asian ideograph - - - 275152 - 7F14 - E7BC94 - East Asian ideograph - - - 275153 - 7EAC - E7BAAC - East Asian ideograph - - - 275154 - 7EC3 - E7BB83 - East Asian ideograph - - - 275155 - 7EEA - E7BBAA - East Asian ideograph - - - 275156 - 7F04 - E7BC84 - East Asian ideograph - - - 275157 - 7F05 - E7BC85 - East Asian ideograph - - - 275158 - 7F09 - E7BC89 - East Asian ideograph - - - 275159 - 7F13 - E7BC93 - East Asian ideograph - - - 27515A - 7F18 - E7BC98 - East Asian ideograph - - - 27515B - 7F16 - E7BC96 - East Asian ideograph - - - 27515C - 7EBF - E7BABF - East Asian ideograph - - - 27515D - 7F0D - E7BC8D - East Asian ideograph - - - 27515E - 7F0E - E7BC8E - East Asian ideograph - - - 27515F - 7F23 - E7BCA3 - East Asian ideograph - - - 275160 - 7F22 - E7BCA2 - East Asian ideograph - - - 275161 - 8426 - E890A6 - East Asian ideograph - - - 275162 - 7F1A - E7BC9A - East Asian ideograph - - - 275163 - 81F4 - E887B4 - East Asian ideograph - - - 275164 - 53BF - E58EBF - East Asian ideograph (variant of EACC 455164) - - - 275165 - 7F29 - E7BCA9 - East Asian ideograph - - - 275166 - 7EE9 - E7BBA9 - East Asian ideograph - - - 275167 - 7F2A - E7BCAA - East Asian ideograph - - - 275168 - 7F15 - E7BC95 - East Asian ideograph - - - 275169 - 7F27 - E7BCA7 - East Asian ideograph - - - 27516C - 7F1D - E7BC9D - East Asian ideograph - - - 27516D - 603B - E680BB - East Asian ideograph - - - 27516E - 7EB5 - E7BAB5 - East Asian ideograph - - - 27516F - 7F2B - E7BCAB - East Asian ideograph - - - 275170 - 7F2E - E7BCAE - East Asian ideograph - - - 275171 - 7EC7 - E7BB87 - East Asian ideograph - - - 275172 - 7EE3 - E7BBA3 - East Asian ideograph - - - 275173 - 7ED5 - E7BB95 - East Asian ideograph - - - 275174 - 7F2D - E7BCAD - East Asian ideograph - - - 275175 - 7CFB - E7B3BB - East Asian ideograph (duplicate simplified) - - - 275176 - 7EF3 - E7BBB3 - East Asian ideograph - - - 275177 - 8327 - E88CA7 - East Asian ideograph - - - 275178 - 7ECE - E7BB8E - East Asian ideograph - - - 275179 - 7ED8 - E7BB98 - East Asian ideograph - - - 27517A - 8FAB - E8BEAB - East Asian ideograph - - - 27517B - 7F24 - E7BCA4 - East Asian ideograph - - - 27517D - 7EE7 - E7BBA7 - East Asian ideograph - - - 27517E - 7F20 - E7BCA0 - East Asian ideograph - - - 275221 - 7EED - E7BBAD - East Asian ideograph - - - 275222 - 7F28 - E7BCA8 - East Asian ideograph - - - 275223 - 7EA4 - E7BAA4 - East Asian ideograph - - - 275224 - 7F06 - E7BC86 - East Asian ideograph - - - 275233 - 7F5A - E7BD9A - East Asian ideograph - - - 275234 - 9A82 - E9AA82 - East Asian ideograph - - - 275235 - 7F62 - E7BDA2 - East Asian ideograph - - - 275237 - 7F57 - E7BD97 - East Asian ideograph - - - 275238 - 7F81 - E7BE81 - East Asian ideograph - - - 275242 - 4E49 - E4B989 - East Asian ideograph - - - 27524D - 4E60 - E4B9A0 - East Asian ideograph - - - 275251 - 7FC6 - E7BF86 - East Asian ideograph - - - 275258 - 7FD8 - E7BF98 - East Asian ideograph - - - 27526F - 5723 - E59CA3 - East Asian ideograph - - - 275271 - 95FB - E997BB - East Asian ideograph - - - 275274 - 58F0 - E5A3B0 - East Asian ideograph - - - 275275 - 8038 - E880B8 - East Asian ideograph - - - 275276 - 806A - E881AA - East Asian ideograph - - - 275277 - 8054 - E88194 - East Asian ideograph - - - 275278 - 804C - E8818C - East Asian ideograph - - - 275279 - 8042 - E88182 - East Asian ideograph - - - 27527A - 804B - E8818B - East Asian ideograph - - - 27527B - 542C - E590AC - East Asian ideograph - - - 275321 - 8083 - E88283 - East Asian ideograph - - - 275344 - 80C1 - E88381 - East Asian ideograph - - - 27534A - 8090 - E88290 - East Asian ideograph - - - 27534D - 8109 - E88489 - East Asian ideograph - - - 275358 - 80BE - E882BE - East Asian ideograph - - - 275359 - 80C0 - E88380 - East Asian ideograph - - - 27535E - 80A0 - E882A0 - East Asian ideograph - - - 275362 - 80BF - E882BF - East Asian ideograph - - - 275365 - 8111 - E88491 - East Asian ideograph - - - 27536C - 80F6 - E883B6 - East Asian ideograph - - - 27536E - 80A4 - E882A4 - East Asian ideograph - - - 275371 - 817B - E885BB - East Asian ideograph - - - 275378 - 8113 - E88493 - East Asian ideograph - - - 275379 - 80C6 - E88386 - East Asian ideograph - - - 27537A - 8138 - E884B8 - East Asian ideograph - - - 27537B - 810D - E8848D - East Asian ideograph - - - 27537C - 8110 - E88490 - East Asian ideograph - - - 27537D - 8191 - E88691 - East Asian ideograph - - - 27537E - 814A - E8858A - East Asian ideograph - - - 275421 - 80EA - E883AA - East Asian ideograph - - - 275422 - 810F - E8848F - East Asian ideograph (duplicate simplified) - - - 275425 - 4E34 - E4B8B4 - East Asian ideograph - - - 27542B - 53F0 - E58FB0 - East Asian ideograph - - - 275432 - 4E0E - E4B88E - East Asian ideograph - - - 275433 - 5174 - E585B4 - East Asian ideograph - - - 275434 - 4E3E - E4B8BE - East Asian ideograph - - - 275435 - 65E7 - E697A7 - East Asian ideograph - - - 27544A - 8231 - E888B1 - East Asian ideograph - - - 27544B - 8230 - E888B0 - East Asian ideograph - - - 27544E - 8270 - E889B0 - East Asian ideograph - - - 275458 - 5DF4 - E5B7B4 - East Asian ideograph (duplicate simplified) - - - 27545C - 520D - E5888D - East Asian ideograph - - - 275528 - 835A - E88D9A - East Asian ideograph - - - 275529 - 830E - E88C8E - East Asian ideograph - - - 27552A - 82CB - E88B8B - East Asian ideograph - - - 27552D - 5E84 - E5BA84 - East Asian ideograph - - - 27553C - 534E - E58D8E - East Asian ideograph - - - 275541 - 83B1 - E88EB1 - East Asian ideograph - - - 27554D - 82C7 - E88B87 - East Asian ideograph - - - 27554F - 53F6 - E58FB6 - East Asian ideograph - - - 275551 - 80E1 - E883A1 - East Asian ideograph (duplicate simplified) - - - 275553 - 8364 - E88DA4 - East Asian ideograph - - - 275555 - 83B4 - E88EB4 - East Asian ideograph - - - 27555D - 5E2D - E5B8AD - East Asian ideograph - - - 275563 - 836A - E88DAA - East Asian ideograph - - - 275564 - 82CE - E88B8E - East Asian ideograph - - - 275567 - 82CD - E88B8D - East Asian ideograph - - - 275568 - 8298 - E88A98 - East Asian ideograph - - - 27556C - 83B2 - E88EB2 - East Asian ideograph - - - 27556E - 836B - E88DAB - East Asian ideograph - - - 275571 - 848B - E8928B - East Asian ideograph - - - 275573 - 535C - E58D9C - East Asian ideograph - - - 275576 - 8361 - E88DA1 - East Asian ideograph - - - 27557C - 829C - E88A9C - East Asian ideograph - - - 275622 - 8427 - E890A7 - East Asian ideograph - - - 275624 - 59DC - E5A79C - East Asian ideograph - - - 275626 - 8537 - E894B7 - East Asian ideograph - - - 275629 - 84DD - E8939D - East Asian ideograph - - - 27562A - 8428 - E890A8 - East Asian ideograph - - - 27562E - 501F - E5809F - East Asian ideograph - - - 275631 - 827A - E889BA - East Asian ideograph - - - 275632 - 85AE - E896AE - East Asian ideograph - - - 275635 - 836F - E88DAF - East Asian ideograph - - - 275637 - 853C - E894BC - East Asian ideograph - - - 275639 - 853A - E894BA - East Asian ideograph - - - 27563A - 82A6 - E88AA6 - East Asian ideograph - - - 27563B - 82F9 - E88BB9 - East Asian ideograph - - - 27563C - 82CF - E88B8F - East Asian ideograph - - - 27563D - 8574 - E895B4 - East Asian ideograph - - - 27563E - 5170 - E585B0 - East Asian ideograph - - - 275640 - 85D3 - E89793 - East Asian ideograph - - - 275642 - 841D - E8909D - East Asian ideograph - - - 275644 - 4E47 - E4B987 - East Asian ideograph - - - 275647 - 5904 - E5A484 - East Asian ideograph - - - 275648 - 864F - E8998F - East Asian ideograph - - - 27564A - 53F7 - E58FB7 - East Asian ideograph - - - 27564C - 4E8F - E4BA8F - East Asian ideograph - - - 27565A - 65E6 - E697A6 - East Asian ideograph - - - 275676 - 8680 - E89A80 - East Asian ideograph - - - 275679 - 80E1 - E883A1 - East Asian ideograph (duplicate simplified) - - - 27567A - 867E - E899BE - East Asian ideograph - - - 275724 - 8424 - E890A4 - East Asian ideograph - - - 275725 - 8682 - E89A82 - East Asian ideograph - - - 27572C - 877C - E89DBC - East Asian ideograph - - - 275732 - 86F2 - E89BB2 - East Asian ideograph - - - 275733 - 866B - E899AB - East Asian ideograph - - - 275734 - 8749 - E89D89 - East Asian ideograph - - - 275735 - 8681 - E89A81 - East Asian ideograph - - - 275736 - 8747 - E89D87 - East Asian ideograph - - - 27573C - 86CE - E89B8E - East Asian ideograph - - - 27573E - 8721 - E89CA1 - East Asian ideograph - - - 27573F - 86CA - E89B8A - East Asian ideograph - - - 275741 - 8695 - E89A95 - East Asian ideograph - - - 275742 - 86EE - E89BAE - East Asian ideograph - - - 275746 - 672E - E69CAE - East Asian ideograph - - - 275747 - 4E8D - E4BA8D - East Asian ideograph - - - 275749 - 536B - E58DAB - East Asian ideograph - - - 27574A - 51B2 - E586B2 - East Asian ideograph (duplicate simplified) - - - 275762 - 8865 - E8A1A5 - East Asian ideograph - - - 275763 - 91CC - E9878C - East Asian ideograph - - - 275765 - 88C5 - E8A385 - East Asian ideograph - - - 27576C - 5236 - E588B6 - East Asian ideograph - - - 275771 - 8934 - E8A4B4 - East Asian ideograph - - - 275773 - 88E4 - E8A3A4 - East Asian ideograph - - - 275777 - 4EB5 - E4BAB5 - East Asian ideograph - - - 275779 - 891B - E8A49B - East Asian ideograph - - - 27577C - 88C6 - E8A386 - East Asian ideograph - - - 27577D - 8884 - E8A284 - East Asian ideograph - - - 275821 - 889C - E8A29C - East Asian ideograph - - - 275822 - 886C - E8A1AC - East Asian ideograph - - - 275823 - 88AD - E8A2AD - East Asian ideograph - - - 275828 - 89C1 - E8A781 - East Asian ideograph - - - 275829 - 89C4 - E8A784 - East Asian ideograph - - - 27582A - 89C5 - E8A785 - East Asian ideograph - - - 27582B - 89C6 - E8A786 - East Asian ideograph - - - 27582C - 4EB2 - E4BAB2 - East Asian ideograph - - - 27582D - 89CE - E8A78E - East Asian ideograph - - - 27582E - 89CA - E8A78A - East Asian ideograph - - - 27582F - 89D0 - E8A790 - East Asian ideograph - - - 275830 - 89C9 - E8A789 - East Asian ideograph - - - 275831 - 89C8 - E8A788 - East Asian ideograph - - - 275832 - 89C2 - E8A782 - East Asian ideograph - - - 275835 - 89DE - E8A79E - East Asian ideograph - - - 275838 - 8BA1 - E8AEA1 - East Asian ideograph - - - 275839 - 8BA2 - E8AEA2 - East Asian ideograph - - - 27583A - 8BA3 - E8AEA3 - East Asian ideograph - - - 27583B - 8BA6 - E8AEA6 - East Asian ideograph - - - 27583C - 8BB0 - E8AEB0 - East Asian ideograph - - - 27583D - 8BA8 - E8AEA8 - East Asian ideograph - - - 27583E - 8BA7 - E8AEA7 - East Asian ideograph - - - 27583F - 8BAA - E8AEAA - East Asian ideograph - - - 275840 - 8BAF - E8AEAF - East Asian ideograph - - - 275841 - 8BAB - E8AEAB - East Asian ideograph - - - 275843 - 8BAD - E8AEAD - East Asian ideograph - - - 275844 - 8BBF - E8AEBF - East Asian ideograph - - - 275845 - 8BC0 - E8AF80 - East Asian ideograph - - - 275846 - 8BB6 - E8AEB6 - East Asian ideograph - - - 275847 - 8BB7 - E8AEB7 - East Asian ideograph - - - 275848 - 8BB8 - E8AEB8 - East Asian ideograph - - - 275849 - 8BBE - E8AEBE - East Asian ideograph - - - 27584A - 8BB9 - E8AEB9 - East Asian ideograph - - - 27584B - 8BBC - E8AEBC - East Asian ideograph - - - 27584C - 6CE8 - E6B3A8 - East Asian ideograph - - - 27584E - 8BC4 - E8AF84 - East Asian ideograph - - - 27584F - 8BCD - E8AF8D - East Asian ideograph - - - 275851 - 8BC2 - E8AF82 - East Asian ideograph - - - 275852 - 8BCF - E8AF8F - East Asian ideograph - - - 275853 - 8BC5 - E8AF85 - East Asian ideograph - - - 275854 - 8BC8 - E8AF88 - East Asian ideograph - - - 275855 - 8BCB - E8AF8B - East Asian ideograph - - - 275856 - 8BC9 - E8AF89 - East Asian ideograph - - - 275857 - 8BCA - E8AF8A - East Asian ideograph - - - 275858 - 8BE7 - E8AFA7 - East Asian ideograph - - - 275859 - 8BE5 - E8AFA5 - East Asian ideograph - - - 27585A - 8BE6 - E8AFA6 - East Asian ideograph - - - 27585B - 8BD5 - E8AF95 - East Asian ideograph - - - 27585C - 8BD7 - E8AF97 - East Asian ideograph - - - 27585D - 8BD8 - E8AF98 - East Asian ideograph - - - 27585E - 8BE3 - E8AFA3 - East Asian ideograph - - - 27585F - 8BD9 - E8AF99 - East Asian ideograph - - - 275860 - 8BDA - E8AF9A - East Asian ideograph - - - 275861 - 5938 - E5A4B8 - East Asian ideograph - - - 275862 - 8BDB - E8AF9B - East Asian ideograph - - - 275863 - 8BE1 - E8AFA1 - East Asian ideograph - - - 275865 - 8BE2 - E8AFA2 - East Asian ideograph - - - 275866 - 8BDD - E8AF9D - East Asian ideograph - - - 275867 - 8BE0 - E8AFA0 - East Asian ideograph - - - 275868 - 8BDF - E8AF9F - East Asian ideograph - - - 275869 - 8BF4 - E8AFB4 - East Asian ideograph - - - 27586A - 8BF5 - E8AFB5 - East Asian ideograph - - - 27586B - 8BEB - E8AFAB - East Asian ideograph - - - 27586C - 8BED - E8AFAD - East Asian ideograph - - - 27586D - 5FD7 - E5BF97 - East Asian ideograph - - - 27586F - 8BEC - E8AFAC - East Asian ideograph - - - 275870 - 8BA4 - E8AEA4 - East Asian ideograph - - - 275871 - 8BEF - E8AFAF - East Asian ideograph - - - 275872 - 8BF2 - E8AFB2 - East Asian ideograph - - - 275873 - 8BF0 - E8AFB0 - East Asian ideograph - - - 275874 - 8BF1 - E8AFB1 - East Asian ideograph - - - 275875 - 8BF3 - E8AFB3 - East Asian ideograph - - - 275876 - 8C0A - E8B08A - East Asian ideograph - - - 275877 - 8C06 - E8B086 - East Asian ideograph - - - 275878 - 8C05 - E8B085 - East Asian ideograph - - - 275879 - 8C08 - E8B088 - East Asian ideograph - - - 27587A - 8BF7 - E8AFB7 - East Asian ideograph - - - 27587B - 8BF8 - E8AFB8 - East Asian ideograph - - - 27587C - 8BFE - E8AFBE - East Asian ideograph - - - 27587D - 8C03 - E8B083 - East Asian ideograph - - - 27587E - 8BFF - E8AFBF - East Asian ideograph - - - 275921 - 8C04 - E8B084 - East Asian ideograph - - - 275922 - 8C01 - E8B081 - East Asian ideograph - - - 275923 - 8BDE - E8AF9E - East Asian ideograph - - - 275924 - 8BBA - E8AEBA - East Asian ideograph - - - 275925 - 8C1B - E8B09B - East Asian ideograph - - - 275926 - 8C1A - E8B09A - East Asian ideograph - - - 275927 - 8C0F - E8B08F - East Asian ideograph - - - 275928 - 8BB3 - E8AEB3 - East Asian ideograph - - - 275929 - 8C10 - E8B090 - East Asian ideograph - - - 27592A - 8C0D - E8B08D - East Asian ideograph - - - 27592B - 8C0B - E8B08B - East Asian ideograph - - - 27592C - 8C12 - E8B092 - East Asian ideograph - - - 27592D - 8C13 - E8B093 - East Asian ideograph - - - 27592E - 8BFA - E8AFBA - East Asian ideograph - - - 27592F - 8BBD - E8AEBD - East Asian ideograph - - - 275930 - 8C15 - E8B095 - East Asian ideograph - - - 275931 - 8C24 - E8B0A4 - East Asian ideograph - - - 275932 - 8C26 - E8B0A6 - East Asian ideograph - - - 275933 - 8C1C - E8B09C - East Asian ideograph - - - 275934 - 8BB2 - E8AEB2 - East Asian ideograph - - - 275935 - 8C0E - E8B08E - East Asian ideograph - - - 275936 - 8C23 - E8B0A3 - East Asian ideograph - - - 275937 - 8A8A - E8AA8A - East Asian ideograph - - - 275938 - 8C22 - E8B0A2 - East Asian ideograph - - - 275939 - 8C28 - E8B0A8 - East Asian ideograph - - - 27593A - 8C2C - E8B0AC - East Asian ideograph - - - 27593B - 8C1F - E8B09F - East Asian ideograph - - - 27593C - 8BC6 - E8AF86 - East Asian ideograph - - - 27593D - 8C31 - E8B0B1 - East Asian ideograph - - - 27593E - 8C32 - E8B0B2 - East Asian ideograph - - - 27593F - 8BC1 - E8AF81 - East Asian ideograph - - - 275940 - 8C2D - E8B0AD - East Asian ideograph - - - 275942 - 8BA5 - E8AEA5 - East Asian ideograph - - - 275943 - 8BAE - E8AEAE - East Asian ideograph - - - 275946 - 8BD1 - E8AF91 - East Asian ideograph - - - 275947 - 8C34 - E8B0B4 - East Asian ideograph - - - 275948 - 62A4 - E68AA4 - East Asian ideograph - - - 275949 - 8A89 - E8AA89 - East Asian ideograph - - - 27594A - 8BFB - E8AFBB - East Asian ideograph - - - 27594B - 53D8 - E58F98 - East Asian ideograph - - - 27594C - 8BA9 - E8AEA9 - East Asian ideograph - - - 27594D - 8C36 - E8B0B6 - East Asian ideograph - - - 27594E - 8C17 - E8B097 - East Asian ideograph - - - 275954 - 5C82 - E5B282 - East Asian ideograph - - - 275957 - 7AD6 - E7AB96 - East Asian ideograph - - - 275958 - 4E30 - E4B8B0 - East Asian ideograph - - - 27595E - 4E88 - E4BA88 - East Asian ideograph - - - 275966 - 7683 - E79A83 - East Asian ideograph - - - 275968 - 8D1D - E8B49D - East Asian ideograph - - - 275969 - 8D1E - E8B49E - East Asian ideograph - - - 27596A - 8D1F - E8B49F - East Asian ideograph - - - 27596B - 8D21 - E8B4A1 - East Asian ideograph - - - 27596C - 8D22 - E8B4A2 - East Asian ideograph - - - 27596D - 8D23 - E8B4A3 - East Asian ideograph - - - 27596E - 8D2F - E8B4AF - East Asian ideograph - - - 27596F - 8D27 - E8B4A7 - East Asian ideograph - - - 275970 - 8D2A - E8B4AA - East Asian ideograph - - - 275971 - 8D2B - E8B4AB - East Asian ideograph - - - 275972 - 8D29 - E8B4A9 - East Asian ideograph - - - 275975 - 8D39 - E8B4B9 - East Asian ideograph - - - 275976 - 8D32 - E8B4B2 - East Asian ideograph - - - 275977 - 8D3A - E8B4BA - East Asian ideograph - - - 275978 - 8D35 - E8B4B5 - East Asian ideograph - - - 275979 - 8D34 - E8B4B4 - East Asian ideograph - - - 27597A - 4E70 - E4B9B0 - East Asian ideograph - - - 27597B - 8D2C - E8B4AC - East Asian ideograph - - - 27597C - 8D3B - E8B4BB - East Asian ideograph - - - 27597D - 8D37 - E8B4B7 - East Asian ideograph - - - 27597E - 8D38 - E8B4B8 - East Asian ideograph - - - 275A21 - 8D45 - E8B585 - East Asian ideograph - - - 275A22 - 8D44 - E8B584 - East Asian ideograph - - - 275A23 - 8D3C - E8B4BC - East Asian ideograph - - - 275A24 - 8D3E - E8B4BE - East Asian ideograph - - - 275A25 - 8D3F - E8B4BF - East Asian ideograph - - - 275A26 - 8D40 - E8B580 - East Asian ideograph - - - 275A27 - 8D41 - E8B581 - East Asian ideograph - - - 275A28 - 8D42 - E8B582 - East Asian ideograph - - - 275A29 - 5BBE - E5AEBE - East Asian ideograph - - - 275A2A - 8D48 - E8B588 - East Asian ideograph - - - 275A2B - 8D4A - E8B58A - East Asian ideograph - - - 275A2C - 8D54 - E8B594 - East Asian ideograph - - - 275A2D - 8D4B - E8B58B - East Asian ideograph - - - 275A2F - 5356 - E58D96 - East Asian ideograph - - - 275A30 - 8D24 - E8B4A4 - East Asian ideograph - - - 275A31 - 8D31 - E8B4B1 - East Asian ideograph - - - 275A32 - 8D4F - E8B58F - East Asian ideograph - - - 275A33 - 8D50 - E8B590 - East Asian ideograph - - - 275A34 - 8D28 - E8B4A8 - East Asian ideograph - - - 275A35 - 8D4C - E8B58C - East Asian ideograph - - - 275A36 - 8D56 - E8B596 - East Asian ideograph - - - 275A37 - 8D5B - E8B59B - East Asian ideograph - - - 275A38 - 8D5A - E8B59A - East Asian ideograph - - - 275A39 - 8D58 - E8B598 - East Asian ideograph - - - 275A3A - 8D2D - E8B4AD - East Asian ideograph - - - 275A3B - 8D60 - E8B5A0 - East Asian ideograph - - - 275A3C - 8D5D - E8B59D - East Asian ideograph - - - 275A3D - 8D5E - E8B59E - East Asian ideograph - - - 275A3E - 8D62 - E8B5A2 - East Asian ideograph - - - 275A3F - 8D61 - E8B5A1 - East Asian ideograph - - - 275A40 - 8D43 - E8B583 - East Asian ideograph - - - 275A41 - 8D4E - E8B58E - East Asian ideograph - - - 275A42 - 8D63 - E8B5A3 - East Asian ideograph - - - 275A4F - 8D75 - E8B5B5 - East Asian ideograph - - - 275A50 - 8D76 - E8B5B6 - East Asian ideograph - - - 275A53 - 8D8B - E8B68B - East Asian ideograph - - - 275A68 - 8DF5 - E8B7B5 - East Asian ideograph - - - 275A71 - 8E0A - E8B88A - East Asian ideograph - - - 275A78 - 8E52 - E8B992 - East Asian ideograph - - - 275A7E - 8DF7 - E8B7B7 - East Asian ideograph - - - 275B26 - 8DB8 - E8B6B8 - East Asian ideograph - - - 275B28 - 8E0C - E8B88C - East Asian ideograph - - - 275B29 - 8DC3 - E8B783 - East Asian ideograph - - - 275B2A - 8E2F - E8B8AF - East Asian ideograph - - - 275B2B - 8E51 - E8B991 - East Asian ideograph - - - 275B2C - 8E8F - E8BA8F - East Asian ideograph - - - 275B31 - 8EAF - E8BAAF - East Asian ideograph - - - 275B32 - 8F66 - E8BDA6 - East Asian ideograph - - - 275B33 - 8F67 - E8BDA7 - East Asian ideograph - - - 275B34 - 519B - E5869B - East Asian ideograph - - - 275B35 - 8F68 - E8BDA8 - East Asian ideograph - - - 275B36 - 8F69 - E8BDA9 - East Asian ideograph - - - 275B37 - 8F6B - E8BDAB - East Asian ideograph - - - 275B38 - 8F6F - E8BDAF - East Asian ideograph - - - 275B39 - 8F6D - E8BDAD - East Asian ideograph - - - 275B3A - 8F72 - E8BDB2 - East Asian ideograph - - - 275B3B - 8F74 - E8BDB4 - East Asian ideograph - - - 275B3C - 8F76 - E8BDB6 - East Asian ideograph - - - 275B3D - 8F83 - E8BE83 - East Asian ideograph - - - 275B3E - 8F7C - E8BDBC - East Asian ideograph - - - 275B3F - 8F7D - E8BDBD - East Asian ideograph - - - 275B40 - 8F7E - E8BDBE - East Asian ideograph - - - 275B41 - 8F85 - E8BE85 - East Asian ideograph - - - 275B42 - 8F84 - E8BE84 - East Asian ideograph - - - 275B43 - 8F7B - E8BDBB - East Asian ideograph - - - 275B45 - 8F87 - E8BE87 - East Asian ideograph - - - 275B46 - 8F86 - E8BE86 - East Asian ideograph - - - 275B47 - 8F8D - E8BE8D - East Asian ideograph - - - 275B48 - 8F89 - E8BE89 - East Asian ideograph - - - 275B49 - 8F88 - E8BE88 - East Asian ideograph - - - 275B4A - 8F6E - E8BDAE - East Asian ideograph - - - 275B4B - 8F8E - E8BE8E - East Asian ideograph - - - 275B4C - 8F90 - E8BE90 - East Asian ideograph - - - 275B4D - 8F91 - E8BE91 - East Asian ideograph - - - 275B4E - 8F93 - E8BE93 - East Asian ideograph - - - 275B4F - 8F96 - E8BE96 - East Asian ideograph - - - 275B50 - 8F97 - E8BE97 - East Asian ideograph - - - 275B51 - 8F95 - E8BE95 - East Asian ideograph - - - 275B52 - 6BC2 - E6AF82 - East Asian ideograph - - - 275B53 - 8206 - E88886 - East Asian ideograph - - - 275B54 - 8F99 - E8BE99 - East Asian ideograph - - - 275B55 - 8F6C - E8BDAC - East Asian ideograph - - - 275B56 - 8F9A - E8BE9A - East Asian ideograph - - - 275B57 - 8F7F - E8BDBF - East Asian ideograph - - - 275B58 - 8F70 - E8BDB0 - East Asian ideograph - - - 275B59 - 8F94 - E8BE94 - East Asian ideograph - - - 275B5F - 529E - E58A9E - East Asian ideograph - - - 275B60 - 8F9E - E8BE9E - East Asian ideograph - - - 275B61 - 8FA9 - E8BEA9 - East Asian ideograph - - - 275B64 - 519C - E5869C - East Asian ideograph - - - 275B6D - 8FF0 - E8BFB0 - East Asian ideograph - - - 275B7D - 8FD9 - E8BF99 - East Asian ideograph - - - 275B7E - 8FDE - E8BF9E - East Asian ideograph - - - 275C33 - 8FDB - E8BF9B - East Asian ideograph - - - 275C34 - 8FD0 - E8BF90 - East Asian ideograph - - - 275C39 - 8FBE - E8BEBE - East Asian ideograph - - - 275C3A - 8FDD - E8BF9D - East Asian ideograph - - - 275C3C - 8FC2 - E8BF82 - East Asian ideograph - - - 275C3E - 8FC7 - E8BF87 - East Asian ideograph - - - 275C44 - 8FDC - E8BF9C - East Asian ideograph - - - 275C45 - 900A - E9808A - East Asian ideograph - - - 275C48 - 9012 - E98092 - East Asian ideograph - - - 275C49 - 9002 - E98082 - East Asian ideograph - - - 275C4F - 9009 - E98089 - East Asian ideograph - - - 275C50 - 8FDF - E8BF9F - East Asian ideograph - - - 275C51 - 8FC1 - E8BF81 - East Asian ideograph - - - 275C52 - 8FBD - E8BEBD - East Asian ideograph - - - 275C53 - 9057 - E98197 - East Asian ideograph - - - 275C56 - 8FC8 - E8BF88 - East Asian ideograph - - - 275C57 - 8FD8 - E8BF98 - East Asian ideograph - - - 275C5A - 8FE9 - E8BFA9 - East Asian ideograph (variant of EACC 2D5C5A) - - - 275C5B - 8FB9 - E8BEB9 - East Asian ideograph - - - 275C5C - 9026 - E980A6 - East Asian ideograph - - - 275C5D - 903B - E980BB - East Asian ideograph - - - 275C6B - 5369 - E58DA9 - East Asian ideograph - - - 275C6D - 90AE - E982AE - East Asian ideograph - - - 275C70 - 4E61 - E4B9A1 - East Asian ideograph - - - 275C71 - 90B9 - E982B9 - East Asian ideograph - - - 275C73 - 90D1 - E98391 - East Asian ideograph - - - 275C74 - 90BB - E982BB - East Asian ideograph - - - 275C75 - 9093 - E98293 - East Asian ideograph - - - 275D2A - 9154 - E98594 - East Asian ideograph - - - 275D2F - 915D - E9859D - East Asian ideograph - - - 275D30 - 4E11 - E4B891 - East Asian ideograph - - - 275D31 - 533B - E58CBB - East Asian ideograph - - - 275D32 - 9171 - E985B1 - East Asian ideograph - - - 275D34 - 917F - E985BF - East Asian ideograph - - - 275D35 - 8845 - E8A185 - East Asian ideograph - - - 275D38 - 91CA - E9878A - East Asian ideograph - - - 275D3D - 5398 - E58E98 - East Asian ideograph - - - 275D3F - 9488 - E99288 - East Asian ideograph - - - 275D40 - 9489 - E99289 - East Asian ideograph - - - 275D41 - 948A - E9928A - East Asian ideograph - - - 275D43 - 9497 - E99297 - East Asian ideograph - - - 275D45 - 9493 - E99293 - East Asian ideograph - - - 275D46 - 948F - E9928F - East Asian ideograph - - - 275D47 - 9499 - E99299 - East Asian ideograph - - - 275D48 - 949D - E9929D - East Asian ideograph - - - 275D49 - 94AE - E992AE - East Asian ideograph - - - 275D4A - 94A0 - E992A0 - East Asian ideograph - - - 275D4B - 949E - E9929E - East Asian ideograph - - - 275D4C - 94A7 - E992A7 - East Asian ideograph - - - 275D4D - 94A4 - E992A4 - East Asian ideograph - - - 275D4F - 94B4 - E992B4 - East Asian ideograph - - - 275D50 - 94B9 - E992B9 - East Asian ideograph - - - 275D51 - 94B8 - E992B8 - East Asian ideograph - - - 275D52 - 94C0 - E99380 - East Asian ideograph - - - 275D53 - 94BE - E992BE - East Asian ideograph - - - 275D55 - 94C5 - E99385 - East Asian ideograph - - - 275D56 - 94A9 - E992A9 - East Asian ideograph - - - 275D57 - 94C2 - E99382 - East Asian ideograph - - - 275D58 - 94C3 - E99383 - East Asian ideograph - - - 275D59 - 94F0 - E993B0 - East Asian ideograph - - - 275D5A - 94F6 - E993B6 - East Asian ideograph - - - 275D5B - 94D0 - E99390 - East Asian ideograph - - - 275D5C - 94DC - E9939C - East Asian ideograph - - - 275D5D - 94ED - E993AD - East Asian ideograph - - - 275D5E - 94E2 - E993A2 - East Asian ideograph - - - 275D5F - 94EC - E993AC - East Asian ideograph - - - 275D60 - 94E8 - E993A8 - East Asian ideograph - - - 275D61 - 8854 - E8A194 - East Asian ideograph - - - 275D62 - 950C - E9948C - East Asian ideograph - - - 275D63 - 9511 - E99491 - East Asian ideograph - - - 275D64 - 9510 - E99490 - East Asian ideograph - - - 275D65 - 94FA - E993BA - East Asian ideograph - - - 275D66 - 9500 - E99480 - East Asian ideograph - - - 275D67 - 94DD - E9939D - East Asian ideograph - - - 275D68 - 9504 - E99484 - East Asian ideograph - - - 275D69 - 9509 - E99489 - East Asian ideograph - - - 275D6A - 950B - E9948B - East Asian ideograph - - - 275D6B - 952D - E994AD - East Asian ideograph - - - 275D6D - 952F - E994AF - East Asian ideograph - - - 275D6E - 9530 - E994B0 - East Asian ideograph - - - 275D6F - 9519 - E99499 - East Asian ideograph - - - 275D70 - 94B1 - E992B1 - East Asian ideograph - - - 275D71 - 94A2 - E992A2 - East Asian ideograph - - - 275D72 - 9521 - E994A1 - East Asian ideograph - - - 275D73 - 94EE - E993AE - East Asian ideograph - - - 275D74 - 5F55 - E5BD95 - East Asian ideograph - - - 275D75 - 9525 - E994A5 - East Asian ideograph - - - 275D76 - 9526 - E994A6 - East Asian ideograph - - - 275D77 - 9540 - E99580 - East Asian ideograph - - - 275D78 - 9541 - E99581 - East Asian ideograph - - - 275D79 - 952E - E994AE - East Asian ideograph - - - 275D7A - 9532 - E994B2 - East Asian ideograph - - - 275D7C - 9505 - E99485 - East Asian ideograph - - - 275D7D - 951A - E9949A - East Asian ideograph - - - 275D7E - 953E - E994BE - East Asian ideograph - - - 275E21 - 949F - E9929F - East Asian ideograph - - - 275E22 - 9524 - E994A4 - East Asian ideograph - - - 275E23 - 9539 - E994B9 - East Asian ideograph - - - 275E24 - 953B - E994BB - East Asian ideograph - - - 275E25 - 9551 - E99591 - East Asian ideograph - - - 275E27 - 9547 - E99587 - East Asian ideograph - - - 275E28 - 9501 - E99481 - East Asian ideograph - - - 275E29 - 94A8 - E992A8 - East Asian ideograph - - - 275E2A - 954D - E9958D - East Asian ideograph - - - 275E2B - 955C - E9959C - East Asian ideograph - - - 275E2C - 955D - E9959D - East Asian ideograph - - - 275E2E - 955E - E9959E - East Asian ideograph - - - 275E2F - 94F2 - E993B2 - East Asian ideograph - - - 275E30 - 94FF - E993BF - East Asian ideograph - - - 275E31 - 94FE - E993BE - East Asian ideograph - - - 275E32 - 9556 - E99596 - East Asian ideograph - - - 275E33 - 9557 - E99597 - East Asian ideograph - - - 275E34 - 9542 - E99582 - East Asian ideograph - - - 275E35 - 9558 - E99598 - East Asian ideograph - - - 275E36 - 9559 - E99599 - East Asian ideograph - - - 275E37 - 9535 - E994B5 - East Asian ideograph - - - 275E39 - 94D9 - E99399 - East Asian ideograph - - - 275E3A - 9570 - E995B0 - East Asian ideograph - - - 275E3B - 9508 - E99488 - East Asian ideograph - - - 275E3C - 956D - E995AD - East Asian ideograph - - - 275E3D - 94C1 - E99381 - East Asian ideograph - - - 275E3E - 94DB - E9939B - East Asian ideograph - - - 275E3F - 94CE - E9938E - East Asian ideograph - - - 275E40 - 956F - E995AF - East Asian ideograph - - - 275E43 - 94F8 - E993B8 - East Asian ideograph - - - 275E44 - 9573 - E995B3 - East Asian ideograph - - - 275E45 - 94C4 - E99384 - East Asian ideograph - - - 275E46 - 9576 - E995B6 - East Asian ideograph - - - 275E47 - 94A5 - E992A5 - East Asian ideograph - - - 275E48 - 92AE - E98AAE - East Asian ideograph - - - 275E49 - 9523 - E994A3 - East Asian ideograph - - - 275E4A - 94BB - E992BB - East Asian ideograph - - - 275E4B - 51FF - E587BF - East Asian ideograph - - - 275E4C - 957F - E995BF - East Asian ideograph - - - 275E4D - 95E8 - E997A8 - East Asian ideograph - - - 275E4E - 95E9 - E997A9 - East Asian ideograph - - - 275E4F - 95EA - E997AA - East Asian ideograph - - - 275E50 - 95ED - E997AD - East Asian ideograph - - - 275E51 - 95F5 - E997B5 - East Asian ideograph - - - 275E52 - 95F0 - E997B0 - East Asian ideograph - - - 275E53 - 5F00 - E5BC80 - East Asian ideograph - - - 275E54 - 95F2 - E997B2 - East Asian ideograph - - - 275E55 - 95F4 - E997B4 - East Asian ideograph - - - 275E57 - 95F8 - E997B8 - East Asian ideograph - - - 275E58 - 9602 - E99882 - East Asian ideograph - - - 275E59 - 95FA - E997BA - East Asian ideograph - - - 275E5A - 95FD - E997BD - East Asian ideograph - - - 275E5B - 9601 - E99881 - East Asian ideograph - - - 275E5C - 9600 - E99880 - East Asian ideograph - - - 275E5D - 5408 - E59088 - East Asian ideograph - - - 275E5E - 9605 - E99885 - East Asian ideograph - - - 275E5F - 95FE - E997BE - East Asian ideograph - - - 275E60 - 960E - E9988E - East Asian ideograph - - - 275E61 - 9614 - E99894 - East Asian ideograph - - - 275E62 - 9615 - E99895 - East Asian ideograph - - - 275E63 - 9611 - E99891 - East Asian ideograph - - - 275E64 - 95F1 - E997B1 - East Asian ideograph - - - 275E65 - 677F - E69DBF - East Asian ideograph - - - 275E67 - 95EF - E997AF - East Asian ideograph - - - 275E68 - 9617 - E99897 - East Asian ideograph - - - 275E69 - 5173 - E585B3 - East Asian ideograph - - - 275E6A - 9610 - E99890 - East Asian ideograph - - - 275E6B - 8F9F - E8BE9F - East Asian ideograph (duplicate simplified) - - - 275E7B - 9635 - E998B5 - East Asian ideograph - - - 275F23 - 9648 - E99988 - East Asian ideograph - - - 275F24 - 9646 - E99986 - East Asian ideograph - - - 275F2A - 9634 - E998B4 - East Asian ideograph - - - 275F2B - 961F - E9989F - East Asian ideograph - - - 275F2C - 9636 - E998B6 - East Asian ideograph - - - 275F2E - 9633 - E998B3 - East Asian ideograph - - - 275F37 - 9645 - E99985 - East Asian ideograph - - - 275F39 - 968F - E99A8F - East Asian ideograph - - - 275F3A - 9669 - E999A9 - East Asian ideograph - - - 275F3B - 9690 - E99A90 - East Asian ideograph - - - 275F3C - 9647 - E99987 - East Asian ideograph - - - 275F3D - 96B6 - E99AB6 - East Asian ideograph - - - 275F3E - 53EA - E58FAA - East Asian ideograph (duplicate simplified) - - - 275F4A - 867D - E899BD - East Asian ideograph - - - 275F4B - 6742 - E69D82 - East Asian ideograph - - - 275F4C - 9E21 - E9B8A1 - East Asian ideograph - - - 275F4D - 96CF - E99B8F - East Asian ideograph - - - 275F4E - 53CC - E58F8C - East Asian ideograph - - - 275F4F - 79BB - E7A6BB - East Asian ideograph - - - 275F50 - 96BE - E99ABE - East Asian ideograph - - - 275F54 - 4E91 - E4BA91 - East Asian ideograph - - - 275F55 - 7535 - E794B5 - East Asian ideograph - - - 275F67 - 96FE - E99BBE - East Asian ideograph - - - 275F6B - 9701 - E99C81 - East Asian ideograph - - - 275F6D - 972D - E99CAD - East Asian ideograph - - - 275F6E - 96F3 - E99BB3 - East Asian ideograph - - - 275F6F - 7075 - E781B5 - East Asian ideograph - - - 275F79 - 9765 - E99DA5 - East Asian ideograph - - - 276023 - 5DE9 - E5B7A9 - East Asian ideograph - - - 276029 - 9791 - E99E91 - East Asian ideograph - - - 27602C - 97E6 - E99FA6 - East Asian ideograph - - - 27602D - 97E7 - E99FA7 - East Asian ideograph - - - 27602E - 97E9 - E99FA9 - East Asian ideograph - - - 27602F - 97EC - E99FAC - East Asian ideograph - - - 276030 - 827D - E889BD - East Asian ideograph - - - 276036 - 54CD - E5938D - East Asian ideograph - - - 276037 - 9875 - E9A1B5 - East Asian ideograph - - - 276038 - 9876 - E9A1B6 - East Asian ideograph - - - 276039 - 9877 - E9A1B7 - East Asian ideograph - - - 27603A - 9879 - E9A1B9 - East Asian ideograph - - - 27603B - 987A - E9A1BA - East Asian ideograph - - - 27603C - 987B - E9A1BB - East Asian ideograph - - - 27603D - 9884 - E9A284 - East Asian ideograph - - - 27603E - 987C - E9A1BC - East Asian ideograph - - - 27603F - 987D - E9A1BD - East Asian ideograph - - - 276040 - 987F - E9A1BF - East Asian ideograph - - - 276041 - 9881 - E9A281 - East Asian ideograph - - - 276042 - 9882 - E9A282 - East Asian ideograph - - - 276043 - 9887 - E9A287 - East Asian ideograph - - - 276044 - 9886 - E9A286 - East Asian ideograph - - - 276045 - 9889 - E9A289 - East Asian ideograph - - - 276046 - 5934 - E5A4B4 - East Asian ideograph - - - 276047 - 988A - E9A28A - East Asian ideograph - - - 276048 - 9888 - E9A288 - East Asian ideograph - - - 276049 - 9891 - E9A291 - East Asian ideograph - - - 27604A - 9893 - E9A293 - East Asian ideograph - - - 27604B - 9894 - E9A294 - East Asian ideograph - - - 27604C - 9890 - E9A290 - East Asian ideograph - - - 27604D - 9897 - E9A297 - East Asian ideograph - - - 27604E - 989C - E9A29C - East Asian ideograph - - - 27604F - 989D - E9A29D - East Asian ideograph - - - 276050 - 9898 - E9A298 - East Asian ideograph - - - 276051 - 989A - E9A29A - East Asian ideograph - - - 276052 - 989B - E9A29B - East Asian ideograph - - - 276053 - 7C7B - E7B1BB - East Asian ideograph - - - 276054 - 98A0 - E9A2A0 - East Asian ideograph - - - 276055 - 613F - E684BF - East Asian ideograph - - - 276056 - 987E - E9A1BE - East Asian ideograph - - - 276057 - 98A4 - E9A2A4 - East Asian ideograph - - - 276058 - 663E - E698BE - East Asian ideograph - - - 276059 - 9885 - E9A285 - East Asian ideograph - - - 27605A - 98A6 - E9A2A6 - East Asian ideograph - - - 27605B - 98CE - E9A38E - East Asian ideograph - - - 27605C - 98D2 - E9A392 - East Asian ideograph - - - 27605D - 53F0 - E58FB0 - East Asian ideograph (duplicate simplified) - - - 27605E - 522E - E588AE - East Asian ideograph - - - 27605F - 98D3 - E9A393 - East Asian ideograph - - - 276061 - 98D5 - E9A395 - East Asian ideograph - - - 276062 - 98D8 - E9A398 - East Asian ideograph - - - 276063 - 98DE - E9A39E - East Asian ideograph - - - 276065 - 9965 - E9A5A5 - East Asian ideograph - - - 276067 - 9968 - E9A5A8 - East Asian ideograph - - - 276068 - 996C - E9A5AC - East Asian ideograph - - - 276069 - 996A - E9A5AA - East Asian ideograph - - - 27606A - 996E - E9A5AE - East Asian ideograph - - - 27606B - 996D - E9A5AD - East Asian ideograph - - - 27606C - 9972 - E9A5B2 - East Asian ideograph - - - 27606D - 9974 - E9A5B4 - East Asian ideograph - - - 27606E - 9971 - E9A5B1 - East Asian ideograph - - - 27606F - 9970 - E9A5B0 - East Asian ideograph - - - 276070 - 997A - E9A5BA - East Asian ideograph - - - 276071 - 517B - E585BB - East Asian ideograph - - - 276072 - 9975 - E9A5B5 - East Asian ideograph - - - 276073 - 9977 - E9A5B7 - East Asian ideograph - - - 276075 - 9981 - E9A681 - East Asian ideograph - - - 276076 - 4F59 - E4BD99 - East Asian ideograph - - - 276077 - 997F - E9A5BF - East Asian ideograph - - - 276078 - 997C - E9A5BC - East Asian ideograph - - - 276079 - 9986 - E9A686 - East Asian ideograph - - - 27607A - 996F - E9A5AF - East Asian ideograph - - - 27607B - 9984 - E9A684 - East Asian ideograph - - - 27607C - 9985 - E9A685 - East Asian ideograph - - - 27607E - 998F - E9A68F - East Asian ideograph - - - 276121 - 998A - E9A68A - East Asian ideograph - - - 276123 - 9992 - E9A692 - East Asian ideograph - - - 276124 - 9976 - E9A5B6 - East Asian ideograph - - - 276126 - 990D - E9A48D - East Asian ideograph - - - 276127 - 998B - E9A68B - East Asian ideograph - - - 27612C - 9A6C - E9A9AC - East Asian ideograph - - - 27612D - 51AF - E586AF - East Asian ideograph - - - 27612E - 9A6D - E9A9AD - East Asian ideograph - - - 27612F - 9A70 - E9A9B0 - East Asian ideograph - - - 276130 - 9A6E - E9A9AE - East Asian ideograph - - - 276131 - 9A6F - E9A9AF - East Asian ideograph - - - 276132 - 9A73 - E9A9B3 - East Asian ideograph - - - 276133 - 9A7B - E9A9BB - East Asian ideograph - - - 276134 - 9A7C - E9A9BC - East Asian ideograph - - - 276135 - 9A7E - E9A9BE - East Asian ideograph - - - 276136 - 9A77 - E9A9B7 - East Asian ideograph - - - 276137 - 9A76 - E9A9B6 - East Asian ideograph - - - 276138 - 9A79 - E9A9B9 - East Asian ideograph - - - 276139 - 9A78 - E9A9B8 - East Asian ideograph - - - 27613A - 9A7D - E9A9BD - East Asian ideograph - - - 27613B - 9A87 - E9AA87 - East Asian ideograph - - - 27613C - 9A86 - E9AA86 - East Asian ideograph - - - 27613D - 9A8B - E9AA8B - East Asian ideograph - - - 27613E - 9A8F - E9AA8F - East Asian ideograph - - - 27613F - 9A88 - E9AA88 - East Asian ideograph - - - 276140 - 9A91 - E9AA91 - East Asian ideograph - - - 276141 - 9A97 - E9AA97 - East Asian ideograph - - - 276142 - 9A9B - E9AA9B - East Asian ideograph - - - 276143 - 9A9E - E9AA9E - East Asian ideograph - - - 276144 - 817E - E885BE - East Asian ideograph - - - 276145 - 9A9A - E9AA9A - East Asian ideograph - - - 276146 - 9AA0 - E9AAA0 - East Asian ideograph - - - 276147 - 9A71 - E9A9B1 - East Asian ideograph - - - 276148 - 84E6 - E893A6 - East Asian ideograph - - - 276149 - 9AA1 - E9AAA1 - East Asian ideograph - - - 27614A - 9A84 - E9AA84 - East Asian ideograph - - - 27614B - 60CA - E6838A - East Asian ideograph - - - 27614C - 9A7F - E9A9BF - East Asian ideograph - - - 27614D - 9A8C - E9AA8C - East Asian ideograph - - - 27614E - 9AA4 - E9AAA4 - East Asian ideograph - - - 27614F - 9A74 - E9A9B4 - East Asian ideograph - - - 276150 - 9AA5 - E9AAA5 - East Asian ideograph - - - 276151 - 9A8A - E9AA8A - East Asian ideograph - - - 276153 - 80AE - E882AE - East Asian ideograph - - - 276158 - 9AC5 - E9AB85 - East Asian ideograph - - - 27615A - 4F53 - E4BD93 - East Asian ideograph - - - 27615B - 810F - E8848F - East Asian ideograph - - - 27615F - 53D1 - E58F91 - East Asian ideograph (duplicate simplified) - - - 276163 - 677E - E69DBE - East Asian ideograph (duplicate simplified) - - - 276164 - 80E1 - E883A1 - East Asian ideograph (duplicate simplified) - - - 276165 - 987B - E9A1BB - East Asian ideograph (duplicate simplified) - - - 276166 - 9B13 - E9AC93 - East Asian ideograph - - - 276167 - 6597 - E69697 - East Asian ideograph - - - 276168 - 95F9 - E997B9 - East Asian ideograph - - - 27616A - 90C1 - E98381 - East Asian ideograph - - - 276173 - 9B47 - E9AD87 - East Asian ideograph - - - 276174 - 9C7C - E9B1BC - East Asian ideograph - - - 276175 - 9C7F - E9B1BF - East Asian ideograph - - - 276176 - 9C81 - E9B281 - East Asian ideograph - - - 276177 - 9C8D - E9B28D - East Asian ideograph - - - 276178 - 9C9B - E9B29B - East Asian ideograph - - - 276179 - 9C9C - E9B29C - East Asian ideograph - - - 27617A - 9C94 - E9B294 - East Asian ideograph - - - 27617B - 9CA8 - E9B2A8 - East Asian ideograph - - - 27617C - 9CA4 - E9B2A4 - East Asian ideograph - - - 27617D - 9CB8 - E9B2B8 - East Asian ideograph - - - 27617E - 9CB3 - E9B2B3 - East Asian ideograph - - - 276221 - 9CC3 - E9B383 - East Asian ideograph - - - 276222 - 9CC5 - E9B385 - East Asian ideograph - - - 276223 - 9CAB - E9B2AB - East Asian ideograph - - - 276224 - 9CCD - E9B38D - East Asian ideograph - - - 276225 - 9CCF - E9B38F - East Asian ideograph - - - 276226 - 9CA2 - E9B2A2 - East Asian ideograph - - - 276227 - 9CD4 - E9B394 - East Asian ideograph - - - 276228 - 9CD7 - E9B397 - East Asian ideograph - - - 276229 - 9CDD - E9B39D - East Asian ideograph - - - 27622A - 9CDE - E9B39E - East Asian ideograph - - - 27622B - 9CDC - E9B39C - East Asian ideograph - - - 27622C - 9CD6 - E9B396 - East Asian ideograph - - - 27622E - 9C88 - E9B288 - East Asian ideograph - - - 27622F - 9E1F - E9B89F - East Asian ideograph - - - 276230 - 9E20 - E9B8A0 - East Asian ideograph - - - 276231 - 9E22 - E9B8A2 - East Asian ideograph - - - 276232 - 9E23 - E9B8A3 - East Asian ideograph - - - 276233 - 51E4 - E587A4 - East Asian ideograph - - - 276234 - 9E29 - E9B8A9 - East Asian ideograph - - - 276235 - 9E26 - E9B8A6 - East Asian ideograph - - - 276236 - 9E35 - E9B8B5 - East Asian ideograph - - - 276237 - 9E2A - E9B8AA - East Asian ideograph - - - 276238 - 9E2D - E9B8AD - East Asian ideograph - - - 276239 - 9E2F - E9B8AF - East Asian ideograph - - - 27623A - 9E33 - E9B8B3 - East Asian ideograph - - - 27623C - 9E3F - E9B8BF - East Asian ideograph - - - 27623D - 9E3D - E9B8BD - East Asian ideograph - - - 27623E - 9E49 - E9B989 - East Asian ideograph - - - 27623F - 9E43 - E9B983 - East Asian ideograph - - - 276240 - 9E44 - E9B984 - East Asian ideograph - - - 276241 - 9E45 - E9B985 - East Asian ideograph - - - 276242 - 9E51 - E9B991 - East Asian ideograph - - - 276243 - 9E4A - E9B98A - East Asian ideograph - - - 276244 - 9E4C - E9B98C - East Asian ideograph - - - 276245 - 9E4F - E9B98F - East Asian ideograph - - - 276246 - 9E64 - E9B9A4 - East Asian ideograph - - - 276247 - 83BA - E88EBA - East Asian ideograph - - - 276248 - 9E5E - E9B99E - East Asian ideograph - - - 276249 - 9E67 - E9B9A7 - East Asian ideograph - - - 27624A - 9E25 - E9B8A5 - East Asian ideograph - - - 27624B - 9E36 - E9B8B6 - East Asian ideograph - - - 27624C - 9E70 - E9B9B0 - East Asian ideograph - - - 27624D - 9E6D - E9B9AD - East Asian ideograph - - - 27624E - 9E66 - E9B9A6 - East Asian ideograph - - - 27624F - 9E3E - E9B8BE - East Asian ideograph - - - 276250 - 54B8 - E592B8 - East Asian ideograph - - - 276251 - 76D0 - E79B90 - East Asian ideograph - - - 276252 - 7877 - E7A1B7 - East Asian ideograph - - - 276256 - 4E3D - E4B8BD - East Asian ideograph - - - 27625B - 9EA6 - E9BAA6 - East Asian ideograph - - - 27625C - 9EB8 - E9BAB8 - East Asian ideograph - - - 27625E - 9762 - E99DA2 - East Asian ideograph - - - 276260 - 4E48 - E4B988 - East Asian ideograph - - - 27626A - 70B9 - E782B9 - East Asian ideograph - - - 27626F - 515A - E5859A - East Asian ideograph - - - 276272 - 9EE9 - E9BBA9 - East Asian ideograph - - - 276276 - 51AC - E586AC - East Asian ideograph - - - 27627D - 9F50 - E9BD90 - East Asian ideograph - - - 27627E - 658E - E6968E - East Asian ideograph - - - 276321 - 9F7F - E9BDBF - East Asian ideograph - - - 276322 - 9F83 - E9BE83 - East Asian ideograph - - - 276324 - 9F84 - E9BE84 - East Asian ideograph - - - 276325 - 9F88 - E9BE88 - East Asian ideograph - - - 276326 - 9F87 - E9BE87 - East Asian ideograph - - - 276327 - 9F89 - E9BE89 - East Asian ideograph - - - 276328 - 9F8A - E9BE8A - East Asian ideograph - - - 276329 - 9F8C - E9BE8C - East Asian ideograph - - - 27632A - 9F8B - E9BE8B - East Asian ideograph - - - 27632B - 9F99 - E9BE99 - East Asian ideograph - - - 27632C - 9F9A - E9BE9A - East Asian ideograph - - - 27632D - 9F9F - E9BE9F - East Asian ideograph - - - 276649 - 4F1C - E4BC9C - East Asian ideograph - - - 276775 - 4F65 - E4BDA5 - East Asian ideograph - - - 27677C - 4F1B - E4BC9B - East Asian ideograph - - - 276822 - 507B - E581BB - East Asian ideograph - - - 276842 - 507E - E581BE - East Asian ideograph - - - 276871 - 4FAA - E4BEAA - East Asian ideograph - - - 276944 - 50A9 - E582A9 - East Asian ideograph - - - 276948 - 50A5 - E582A5 - East Asian ideograph - - - 276B3E - 522D - E588AD - East Asian ideograph - - - 276B5B - 5250 - E58990 - East Asian ideograph - - - 276B5F - 672D - E69CAD - East Asian ideograph - - - 276B79 - 523F - E588BF - East Asian ideograph - - - 276B7A - 523D - E588BD - East Asian ideograph - - - 276D2E - 5326 - E58CA6 - East Asian ideograph - - - 276D6D - 538D - E58E8D - East Asian ideograph - - - 276E2A - 53A3 - E58EA3 - East Asian ideograph - - - 276F69 - 5459 - E59199 - East Asian ideograph - - - 277030 - 5457 - E59197 - East Asian ideograph - - - 277169 - 5522 - E594A2 - East Asian ideograph - - - 277234 - 551B - E5949B - East Asian ideograph - - - 277239 - 54D4 - E59394 - East Asian ideograph - - - 277255 - 54D3 - E59393 - East Asian ideograph - - - 277258 - 6076 - E681B6 - East Asian ideograph (duplicate simplified) - - - 277267 - 5452 - E59192 - East Asian ideograph - - - 277272 - 54D2 - E59392 - East Asian ideograph - - - 27727A - 54D5 - E59395 - East Asian ideograph - - - 27727E - 54D9 - E59399 - East Asian ideograph - - - 277328 - 54DC - E5939C - East Asian ideograph - - - 277345 - 556E - E595AE - East Asian ideograph - - - 27734C - 5456 - E59196 - East Asian ideograph - - - 27735A - 55BE - E596BE - East Asian ideograph - - - 277360 - 5181 - E58681 - East Asian ideograph - - - 27742E - 56F5 - E59BB5 - East Asian ideograph - - - 277638 - 57AD - E59EAD - East Asian ideograph - - - 27767A - 57DA - E59F9A - East Asian ideograph - - - 277742 - 57D8 - E59F98 - East Asian ideograph - - - 277745 - 57D9 - E59F99 - East Asian ideograph - - - 277748 - 57B2 - E59EB2 - East Asian ideograph - - - 27785A - 5785 - E59E85 - East Asian ideograph - - - 27785E - 5786 - E59E86 - East Asian ideograph - - - 277954 - 5956 - E5A596 - East Asian ideograph - - - 277B3C - 5A05 - E5A885 - East Asian ideograph - - - 277C24 - 5A32 - E5A8B2 - East Asian ideograph - - - 277C36 - 59AB - E5A6AB - East Asian ideograph - - - 277D2B - 5A06 - E5A886 - East Asian ideograph - - - 277D40 - 5AF1 - E5ABB1 - East Asian ideograph - - - 277D48 - 5AD2 - E5AB92 - East Asian ideograph - - - 277D74 - 5A08 - E5A888 - East Asian ideograph - - - 28232B - 5C66 - E5B1A6 - East Asian ideograph - - - 282441 - 5C98 - E5B298 - East Asian ideograph - - - 282458 - 5D03 - E5B483 - East Asian ideograph - - - 28255A - 5D5D - E5B59D - East Asian ideograph - - - 282569 - 5D02 - E5B482 - East Asian ideograph - - - 282577 - 5CE4 - E5B3A4 - East Asian ideograph - - - 282626 - 5CC4 - E5B384 - East Asian ideograph - - - 282632 - 5D58 - E5B598 - East Asian ideograph - - - 282647 - 5CBF - E5B2BF - East Asian ideograph - - - 282659 - 5DEF - E5B7AF - East Asian ideograph - - - 282736 - 5E0F - E5B88F - East Asian ideograph - - - 282747 - 5E3B - E5B8BB - East Asian ideograph - - - 28275F - 5E31 - E5B8B1 - East Asian ideograph - - - 282868 - 5E91 - E5BA91 - East Asian ideograph - - - 282951 - 5F2A - E5BCAA - East Asian ideograph - - - 282D34 - 607D - E681BD - East Asian ideograph - - - 282D5E - 607A - E681BA - East Asian ideograph - - - 282D74 - 6004 - E68084 - East Asian ideograph - - - 282D77 - 60AD - E682AD - East Asian ideograph - - - 282D79 - 60AB - E682AB - East Asian ideograph - - - 282E4C - 6126 - E684A6 - East Asian ideograph - - - 282E52 - 6003 - E68083 - East Asian ideograph - - - 282E5C - 603F - E680BF - East Asian ideograph - - - 282E79 - 6079 - E681B9 - East Asian ideograph - - - 282E7E - 603C - E680BC - East Asian ideograph - - - 282F43 - 6206 - E68886 - East Asian ideograph - - - 282F47 - 620B - E6888B - East Asian ideograph - - - 282F66 - 6217 - E68897 - East Asian ideograph - - - 28336F - 629F - E68A9F - East Asian ideograph - - - 28337B - 62A0 - E68AA0 - East Asian ideograph - - - 28342C - 63BA - E68EBA - East Asian ideograph - - - 28342E - 63BC - E68EBC - East Asian ideograph - - - 283457 - 63B8 - E68EB8 - East Asian ideograph - - - 283462 - 6322 - E68CA2 - East Asian ideograph - - - 283466 - 63FF - E68FBF - East Asian ideograph - - - 28352A - 6448 - E69188 - East Asian ideograph - - - 283542 - 64B7 - E692B7 - East Asian ideograph - - - 283546 - 6445 - E69185 - East Asian ideograph - - - 28355B - 6484 - E69284 - East Asian ideograph - - - 283561 - 64BA - E692BA - East Asian ideograph - - - 28356D - 6512 - E69492 - East Asian ideograph - - - 283671 - 6593 - E69693 - East Asian ideograph - - - 283955 - 6619 - E69899 - East Asian ideograph - - - 28395C - 6654 - E69994 - East Asian ideograph - - - 283B22 - 4E2B - E4B8AB - East Asian ideograph - - - 283B7D - 53F0 - E58FB0 - East Asian ideograph (duplicate simplified) - - - 283D30 - 67A7 - E69EA7 - East Asian ideograph - - - 283D6E - 67A8 - E69EA8 - East Asian ideograph - - - 283F30 - 6966 - E6A5A6 - East Asian ideograph - - - 283F5C - 6769 - E69DA9 - East Asian ideograph - - - 284027 - 6864 - E6A1A4 - East Asian ideograph - - - 284056 - 6920 - E6A4A0 - East Asian ideograph - - - 28405E - 67FD - E69FBD - East Asian ideograph - - - 284140 - 6861 - E6A1A1 - East Asian ideograph - - - 28422B - 6A2F - E6A8AF - East Asian ideograph - - - 284257 - 68BC - E6A2BC - East Asian ideograph - - - 284333 - 680E - E6A08E - East Asian ideograph - - - 284335 - 6A7C - E6A9BC - East Asian ideograph - - - 284337 - 6987 - E6A687 - East Asian ideograph - - - 284339 - 680A - E6A08A - East Asian ideograph - - - 28433A - 69E0 - E6A7A0 - East Asian ideograph - - - 284340 - 67A5 - E69EA5 - East Asian ideograph - - - 284345 - 680C - E6A08C - East Asian ideograph - - - 284350 - 68C2 - E6A382 - East Asian ideograph - - - 284359 - 6989 - E6A689 - East Asian ideograph - - - 284366 - 6924 - E6A4A4 - East Asian ideograph - - - 284539 - 6B9A - E6AE9A - East Asian ideograph - - - 284642 - 6BF5 - E6AFB5 - East Asian ideograph - - - 28464C - 6BE1 - E6AFA1 - East Asian ideograph - - - 284651 - 6C07 - E6B087 - East Asian ideograph - - - 284668 - 6C29 - E6B0A9 - East Asian ideograph - - - 284934 - 6D43 - E6B583 - East Asian ideograph - - - 284971 - 6D9E - E6B69E - East Asian ideograph - - - 284B28 - 6D48 - E6B588 - East Asian ideograph - - - 284B43 - 8365 - E88DA5 - East Asian ideograph - - - 284C2E - 6D52 - E6B592 - East Asian ideograph - - - 284C41 - 6CA4 - E6B2A4 - East Asian ideograph - - - 284C62 - 988D - E9A28D - East Asian ideograph - - - 284D27 - 6D9D - E6B69D - East Asian ideograph - - - 284D2B - 6D54 - E6B594 - East Asian ideograph - - - 284D49 - 6DA0 - E6B6A0 - East Asian ideograph - - - 284D58 - 6CA9 - E6B2A9 - East Asian ideograph - - - 284D59 - 6ED7 - E6BB97 - East Asian ideograph - - - 284E30 - 6E11 - E6B891 - East Asian ideograph - - - 284E3E - 6CF6 - E6B3B6 - East Asian ideograph - - - 284E41 - 6F4B - E6BD8B - East Asian ideograph - - - 284E42 - 6D4D - E6B58D - East Asian ideograph - - - 284E62 - 6F4D - E6BD8D - East Asian ideograph - - - 284E66 - 6EE2 - E6BBA2 - East Asian ideograph - - - 284F26 - 6CF7 - E6B3B7 - East Asian ideograph - - - 284F39 - 6CF8 - E6B3B8 - East Asian ideograph - - - 284F5D - 6CA3 - E6B2A3 - East Asian ideograph - - - 284F61 - 6EE0 - E6BBA0 - East Asian ideograph - - - 284F6B - 6F13 - E6BC93 - East Asian ideograph - - - 284F7D - 704F - E7818F - East Asian ideograph - - - 285029 - 6EDF - E6BB9F - East Asian ideograph - - - 285150 - 70C3 - E78383 - East Asian ideograph - - - 285252 - 709C - E7829C - East Asian ideograph - - - 285323 - 8367 - E88DA7 - East Asian ideograph - - - 28533C - 709D - E7829D - East Asian ideograph - - - 285424 - 70E8 - E783A8 - East Asian ideograph - - - 28544F - 70EC - E783AC - East Asian ideograph - - - 28575E - 72B8 - E78AB8 - East Asian ideograph - - - 28575F - 72F2 - E78BB2 - East Asian ideograph - - - 28582B - 7303 - E78C83 - East Asian ideograph - - - 285836 - 7315 - E78C95 - East Asian ideograph - - - 285A47 - 73AE - E78EAE - East Asian ideograph - - - 285B21 - 740F - E7908F - East Asian ideograph - - - 285C3A - 748E - E7928E - East Asian ideograph - - - 285C40 - 74D2 - E79392 - East Asian ideograph - - - 285D6B - 7572 - E795B2 - East Asian ideograph - - - 285E7A - 75D6 - E79796 - East Asian ideograph - - - 285F48 - 7617 - E79897 - East Asian ideograph - - - 285F5E - 7618 - E79898 - East Asian ideograph - - - 285F6F - 7605 - E79885 - East Asian ideograph - - - 28602B - 762A - E798AA - East Asian ideograph - - - 286032 - 75AC - E796AC - East Asian ideograph - - - 286037 - 763F - E798BF - East Asian ideograph - - - 28603A - 75C8 - E79788 - East Asian ideograph - - - 286222 - 7726 - E79CA6 - East Asian ideograph - - - 286272 - 770D - E79C8D - East Asian ideograph - - - 28632C - 7751 - E79D91 - East Asian ideograph - - - 28645A - 7817 - E7A097 - East Asian ideograph - - - 286460 - 7856 - E7A196 - East Asian ideograph - - - 286540 - 7800 - E7A080 - East Asian ideograph - - - 28656A - 789B - E7A29B - East Asian ideograph - - - 286577 - 789C - E7A29C - East Asian ideograph - - - 286622 - 7857 - E7A197 - East Asian ideograph - - - 286655 - 783B - E7A0BB - East Asian ideograph - - - 286A3C - 7AAD - E7AAAD - East Asian ideograph - - - 286B7C - 7B15 - E7AC95 - East Asian ideograph - - - 286C58 - 7BA7 - E7AEA7 - East Asian ideograph - - - 286D47 - 7BA6 - E7AEA6 - East Asian ideograph - - - 286D54 - 7B5A - E7AD9A - East Asian ideograph - - - 286E56 - 7BA8 - E7AEA8 - East Asian ideograph - - - 286E68 - 7B3E - E7ACBE - East Asian ideograph - - - 286E69 - 7C16 - E7B096 - East Asian ideograph - - - 287022 - 7CC1 - E7B381 - East Asian ideograph - - - 28702E - 56E2 - E59BA2 - East Asian ideograph (duplicate simplified) - - - 287030 - 7C9D - E7B29D - East Asian ideograph - - - 287035 - 7C74 - E7B1B4 - East Asian ideograph - - - 287042 - 7EA1 - E7BAA1 - East Asian ideograph - - - 287045 - 7EA8 - E7BAA8 - East Asian ideograph - - - 28704A - 7EBE - E7BABE - East Asian ideograph - - - 287061 - 7EC0 - E7BB80 - East Asian ideograph - - - 287062 - 7EC1 - E7BB81 - East Asian ideograph - - - 287065 - 7EC2 - E7BB82 - East Asian ideograph - - - 28706A - 7ED0 - E7BB90 - East Asian ideograph - - - 287130 - 7EDB - E7BB9B - East Asian ideograph - - - 287134 - 7ED7 - E7BB97 - East Asian ideograph - - - 287139 - 7EE8 - E7BBA8 - East Asian ideograph - - - 287144 - 7EE0 - E7BBA0 - East Asian ideograph - - - 28714D - 7EE1 - E7BBA1 - East Asian ideograph - - - 287161 - 7EFB - E7BBBB - East Asian ideograph - - - 287167 - 7EEF - E7BBAF - East Asian ideograph - - - 287174 - 7EF2 - E7BBB2 - East Asian ideograph - - - 287178 - 7EF6 - E7BBB6 - East Asian ideograph - - - 28717D - 7EFA - E7BBBA - East Asian ideograph - - - 287229 - 7F17 - E7BC97 - East Asian ideograph - - - 28722A - 7F02 - E7BC82 - East Asian ideograph - - - 287231 - 7F03 - E7BC83 - East Asian ideograph - - - 287236 - 7F07 - E7BC87 - East Asian ideograph - - - 28723C - 7F08 - E7BC88 - East Asian ideograph - - - 28723E - 7F0C - E7BC8C - East Asian ideograph - - - 287247 - 7F11 - E7BC91 - East Asian ideograph - - - 287248 - 7F0F - E7BC8F - East Asian ideograph - - - 287251 - 7F1F - E7BC9F - East Asian ideograph - - - 287253 - 7F12 - E7BC92 - East Asian ideograph - - - 28725D - 7F1C - E7BC9C - East Asian ideograph - - - 28725E - 7F19 - E7BC99 - East Asian ideograph - - - 28725F - 7F1B - E7BC9B - East Asian ideograph - - - 287269 - 7EC9 - E7BB89 - East Asian ideograph - - - 287271 - 7EA4 - E7BAA4 - East Asian ideograph (duplicate simplified) - - - 287272 - 7F21 - E7BCA1 - East Asian ideograph - - - 287275 - 7D77 - E7B5B7 - East Asian ideograph - - - 287279 - 7F25 - E7BCA5 - East Asian ideograph - - - 287321 - 7F26 - E7BCA6 - East Asian ideograph - - - 28732D - 7F2F - E7BCAF - East Asian ideograph - - - 287349 - 7F30 - E7BCB0 - East Asian ideograph - - - 28734E - 7F32 - E7BCB2 - East Asian ideograph - - - 287351 - 7F33 - E7BCB3 - East Asian ideograph - - - 287352 - 7F34 - E7BCB4 - East Asian ideograph - - - 287359 - 7F31 - E7BCB1 - East Asian ideograph - - - 28735D - 7EA9 - E7BAA9 - East Asian ideograph - - - 287360 - 7F2C - E7BCAC - East Asian ideograph - - - 28736D - 624D - E6898D - East Asian ideograph - - - 287374 - 7F35 - E7BCB5 - East Asian ideograph - - - 28742E - 7F42 - E7BD82 - East Asian ideograph - - - 287431 - 575B - E59D9B - East Asian ideograph (duplicate simplified) - - - 287472 - 7F74 - E7BDB4 - East Asian ideograph - - - 287531 - 7F9F - E7BE9F - East Asian ideograph - - - 287655 - 8027 - E880A7 - East Asian ideograph - - - 287739 - 8069 - E881A9 - East Asian ideograph - - - 28773F - 804D - E8818D - East Asian ideograph - - - 287855 - 80EB - E883AB - East Asian ideograph - - - 28786E - 80E8 - E883A8 - East Asian ideograph - - - 287941 - 8136 - E884B6 - East Asian ideograph - - - 287A56 - 8114 - E88494 - East Asian ideograph - - - 287E61 - 82CC - E88B8C - East Asian ideograph - - - 29233C - 836D - E88DAD - East Asian ideograph - - - 29233D - 836E - E88DAE - East Asian ideograph - - - 292375 - 83B3 - E88EB3 - East Asian ideograph - - - 292433 - 8298 - E88A98 - East Asian ideograph (duplicate simplified) - - - 29243A - 83BC - E88EBC - East Asian ideograph - - - 29247D - 835C - E88D9C - East Asian ideograph - - - 292524 - 848C - E8928C - East Asian ideograph - - - 29252D - 8311 - E88C91 - East Asian ideograph - - - 292535 - 82C1 - E88B81 - East Asian ideograph - - - 292546 - 8368 - E88DA8 - East Asian ideograph - - - 29254B - 835B - E88D9B - East Asian ideograph - - - 29255A - 8487 - E89287 - East Asian ideograph - - - 292564 - 8489 - E89289 - East Asian ideograph - - - 292567 - 836C - E88DAC - East Asian ideograph - - - 292571 - 835E - E88D9E - East Asian ideograph - - - 292574 - 83B8 - E88EB8 - East Asian ideograph - - - 292577 - 8297 - E88A97 - East Asian ideograph - - - 292633 - 84E3 - E893A3 - East Asian ideograph - - - 292651 - 84DF - E8939F - East Asian ideograph - - - 292657 - 835F - E88D9F - East Asian ideograph - - - 292658 - 83B6 - E88EB6 - East Asian ideograph - - - 292661 - 8360 - E88DA0 - East Asian ideograph - - - 292668 - 8369 - E88DA9 - East Asian ideograph - - - 292752 - 830F - E88C8F - East Asian ideograph - - - 292765 - 82C8 - E88B88 - East Asian ideograph - - - 292768 - 8572 - E895B2 - East Asian ideograph - - - 29282A - 8539 - E894B9 - East Asian ideograph - - - 292840 - 84E0 - E893A0 - East Asian ideograph - - - 292A2F - 86F1 - E89BB1 - East Asian ideograph - - - 292A34 - 86AC - E89AAC - East Asian ideograph - - - 292B55 - 86F3 - E89BB3 - East Asian ideograph - - - 292B6E - 86F0 - E89BB0 - East Asian ideograph - - - 292C4C - 866E - E899AE - East Asian ideograph - - - 292C55 - 86CF - E89B8F - East Asian ideograph - - - 292C5D - 867F - E899BF - East Asian ideograph - - - 292C61 - 86F4 - E89BB4 - East Asian ideograph - - - 292C64 - 877E - E89DBE - East Asian ideograph - - - 292D51 - 8511 - E89491 - East Asian ideograph - - - 292F60 - 88E2 - E8A3A2 - East Asian ideograph - - - 292F72 - 88E5 - E8A3A5 - East Asian ideograph - - - 29302D - 88E3 - E8A3A3 - East Asian ideograph - - - 293032 - 7962 - E7A5A2 - East Asian ideograph - - - 293066 - 89C7 - E8A787 - East Asian ideograph - - - 29306F - 89CB - E8A78B - East Asian ideograph - - - 29307D - 89CF - E8A78F - East Asian ideograph - - - 29312B - 89D1 - E8A791 - East Asian ideograph - - - 293132 - 89CC - E8A78C - East Asian ideograph - - - 293160 - 89EF - E8A7AF - East Asian ideograph - - - 29322A - 8BB5 - E8AEB5 - East Asian ideograph - - - 29323B - 8BCE - E8AF8E - East Asian ideograph - - - 29323C - 8BD2 - E8AF92 - East Asian ideograph - - - 29324F - 8BD6 - E8AF96 - East Asian ideograph - - - 293250 - 8BD3 - E8AF93 - East Asian ideograph - - - 293256 - 8BE9 - E8AFA9 - East Asian ideograph - - - 29325D - 8BD4 - E8AF94 - East Asian ideograph - - - 29325E - 8BDC - E8AF9C - East Asian ideograph - - - 293271 - 8BEE - E8AFAE - East Asian ideograph - - - 29327E - 8C07 - E8B087 - East Asian ideograph - - - 293325 - 8BF9 - E8AFB9 - East Asian ideograph - - - 29332C - 8BFC - E8AFBC - East Asian ideograph - - - 293336 - 8BE4 - E8AFA4 - East Asian ideograph - - - 293338 - 8BFD - E8AFBD - East Asian ideograph - - - 29333B - 8C00 - E8B080 - East Asian ideograph - - - 293340 - 8C02 - E8B082 - East Asian ideograph - - - 293344 - 8C19 - E8B099 - East Asian ideograph - - - 293345 - 8BE8 - E8AFA8 - East Asian ideograph - - - 29334E - 8C0C - E8B08C - East Asian ideograph - - - 293357 - 8C14 - E8B094 - East Asian ideograph - - - 293359 - 8C11 - E8B091 - East Asian ideograph - - - 29335D - 8C16 - E8B096 - East Asian ideograph - - - 293362 - 8C1D - E8B09D - East Asian ideograph - - - 293373 - 8C21 - E8B0A1 - East Asian ideograph - - - 29337A - 8BCC - E8AF8C - East Asian ideograph - - - 29337D - 8C27 - E8B0A7 - East Asian ideograph - - - 293430 - 8BB4 - E8AEB4 - East Asian ideograph - - - 293438 - 8C29 - E8B0A9 - East Asian ideograph - - - 29344D - 8C2E - E8B0AE - East Asian ideograph - - - 293459 - 8C2F - E8B0AF - East Asian ideograph - - - 293468 - 8C35 - E8B0B5 - East Asian ideograph - - - 29352D - 8C30 - E8B0B0 - East Asian ideograph - - - 293537 - 8C20 - E8B0A0 - East Asian ideograph - - - 293539 - 8C33 - E8B0B3 - East Asian ideograph - - - 29364E - 8D33 - E8B4B3 - East Asian ideograph - - - 293651 - 8D36 - E8B4B6 - East Asian ideograph - - - 29365F - 8D47 - E8B587 - East Asian ideograph - - - 29366A - 8D53 - E8B593 - East Asian ideograph - - - 29366B - 8D55 - E8B595 - East Asian ideograph - - - 293670 - 8D49 - E8B589 - East Asian ideograph - - - 29367E - 8D59 - E8B599 - East Asian ideograph - - - 293725 - 8D3D - E8B4BD - East Asian ideograph - - - 293726 - 8D5C - E8B59C - East Asian ideograph - - - 29373A - 8D46 - E8B586 - East Asian ideograph - - - 293866 - 8DB1 - E8B6B1 - East Asian ideograph - - - 293A2E - 8DC4 - E8B784 - East Asian ideograph - - - 293A40 - 8DF8 - E8B7B8 - East Asian ideograph - - - 293A46 - 8E70 - E8B9B0 - East Asian ideograph - - - 293A57 - 8DFB - E8B7BB - East Asian ideograph - - - 293A5E - 8DF9 - E8B7B9 - East Asian ideograph - - - 293A5F - 8DDE - E8B79E - East Asian ideograph - - - 293A60 - 8E2C - E8B8AC - East Asian ideograph - - - 293A6B - 8E7F - E8B9BF - East Asian ideograph - - - 293A70 - 8E9C - E8BA9C - East Asian ideograph - - - 293B3E - 8F71 - E8BDB1 - East Asian ideograph - - - 293B3F - 8F7A - E8BDBA - East Asian ideograph - - - 293B42 - 8F75 - E8BDB5 - East Asian ideograph - - - 293B47 - 8F77 - E8BDB7 - East Asian ideograph - - - 293B4F - 8F78 - E8BDB8 - East Asian ideograph - - - 293B59 - 8F82 - E8BE82 - East Asian ideograph - - - 293B5B - 8F81 - E8BE81 - East Asian ideograph - - - 293B6B - 8F8B - E8BE8B - East Asian ideograph - - - 293B6D - 8F8A - E8BE8A - East Asian ideograph - - - 293B7A - 8F8F - E8BE8F - East Asian ideograph - - - 293C30 - 8F98 - E8BE98 - East Asian ideograph - - - 293C57 - 8F79 - E8BDB9 - East Asian ideograph - - - 293C5A - 8F73 - E8BDB3 - East Asian ideograph - - - 293D4E - 8FF8 - E8BFB8 - East Asian ideograph - - - 293F23 - 90CF - E9838F - East Asian ideograph - - - 293F4C - 90D3 - E98393 - East Asian ideograph - - - 293F5A - 90E7 - E983A7 - East Asian ideograph - - - 293F5C - 90AC - E982AC - East Asian ideograph - - - 294021 - 90F8 - E983B8 - East Asian ideograph - - - 29402B - 90BA - E982BA - East Asian ideograph - - - 29402C - 90D0 - E98390 - East Asian ideograph - - - 294031 - 909D - E9829D - East Asian ideograph - - - 294040 - 90E6 - E983A6 - East Asian ideograph - - - 29415C - 917E - E985BE - East Asian ideograph - - - 29415D - 917D - E985BD - East Asian ideograph - - - 294161 - 9487 - E99287 - East Asian ideograph - - - 294162 - 9486 - E99286 - East Asian ideograph - - - 294163 - 948C - E9928C - East Asian ideograph - - - 294164 - 948B - E9928B - East Asian ideograph - - - 29416A - 948D - E9928D - East Asian ideograph - - - 29416B - 948E - E9928E - East Asian ideograph - - - 294179 - 9492 - E99292 - East Asian ideograph - - - 294221 - 9495 - E99295 - East Asian ideograph - - - 294222 - 9490 - E99290 - East Asian ideograph - - - 294223 - 94AD - E992AD - East Asian ideograph - - - 294224 - 94AA - E992AA - East Asian ideograph - - - 294225 - 94AB - E992AB - East Asian ideograph - - - 294228 - 94AC - E992AC - East Asian ideograph - - - 294231 - 94AF - E992AF - East Asian ideograph - - - 294237 - 949B - E9929B - East Asian ideograph - - - 29424B - 94A3 - E992A3 - East Asian ideograph - - - 294251 - 94C8 - E99388 - East Asian ideograph - - - 294252 - 94C9 - E99389 - East Asian ideograph - - - 294254 - 94CB - E9938B - East Asian ideograph - - - 294255 - 94CA - E9938A - East Asian ideograph - - - 294258 - 94B0 - E992B0 - East Asian ideograph - - - 29425C - 94CC - E9938C - East Asian ideograph - - - 29425F - 94B6 - E992B6 - East Asian ideograph - - - 294260 - 94B7 - E992B7 - East Asian ideograph - - - 294261 - 94B2 - E992B2 - East Asian ideograph - - - 294264 - 94BA - E992BA - East Asian ideograph - - - 29426D - 94CD - E9938D - East Asian ideograph - - - 29426F - 94BD - E992BD - East Asian ideograph - - - 294274 - 94BF - E992BF - East Asian ideograph - - - 29432B - 94C6 - E99386 - East Asian ideograph - - - 29432F - 94F3 - E993B3 - East Asian ideograph - - - 294331 - 94F1 - E993B1 - East Asian ideograph - - - 294335 - 94F5 - E993B5 - East Asian ideograph - - - 294340 - 94D6 - E99396 - East Asian ideograph - - - 294343 - 94D2 - E99392 - East Asian ideograph - - - 294346 - 94D1 - E99391 - East Asian ideograph - - - 294349 - 94D5 - E99395 - East Asian ideograph - - - 29434F - 94DE - E9939E - East Asian ideograph - - - 294350 - 94DF - E9939F - East Asian ideograph - - - 294355 - 94EB - E993AB - East Asian ideograph - - - 294358 - 94EF - E993AF - East Asian ideograph - - - 294359 - 94E5 - E993A5 - East Asian ideograph - - - 29435B - 94E3 - E993A3 - East Asian ideograph - - - 294362 - 94EA - E993AA - East Asian ideograph - - - 294364 - 94F7 - E993B7 - East Asian ideograph - - - 29436A - 9512 - E99492 - East Asian ideograph - - - 29436C - 950D - E9948D - East Asian ideograph - - - 294371 - 94FD - E993BD - East Asian ideograph - - - 294372 - 9513 - E99493 - East Asian ideograph - - - 294375 - 9514 - E99494 - East Asian ideograph - - - 29437D - 94D8 - E99398 - East Asian ideograph - - - 294427 - 94D7 - E99397 - East Asian ideograph - - - 29442B - 9503 - E99483 - East Asian ideograph - - - 29442D - 94A1 - E992A1 - East Asian ideograph - - - 29442E - 9502 - E99482 - East Asian ideograph - - - 294435 - 950A - E9948A - East Asian ideograph - - - 29443E - 94E4 - E993A4 - East Asian ideograph - - - 294440 - 9506 - E99486 - East Asian ideograph - - - 294441 - 9507 - E99487 - East Asian ideograph - - - 29444D - 952B - E994AB - East Asian ideograph - - - 294457 - 9529 - E994A9 - East Asian ideograph - - - 294458 - 952C - E994AC - East Asian ideograph - - - 29445B - 9516 - E99496 - East Asian ideograph - - - 294466 - 9515 - E99495 - East Asian ideograph - - - 294469 - 94FC - E993BC - East Asian ideograph - - - 29446D - 951B - E9949B - East Asian ideograph - - - 294471 - 951D - E9949D - East Asian ideograph - - - 294472 - 951E - E9949E - East Asian ideograph - - - 294474 - 951F - E9949F - East Asian ideograph - - - 294475 - 9494 - E99294 - East Asian ideograph - - - 294478 - 9522 - E994A2 - East Asian ideograph - - - 294531 - 9528 - E994A8 - East Asian ideograph - - - 294532 - 9531 - E994B1 - East Asian ideograph - - - 29454D - 9534 - E994B4 - East Asian ideograph - - - 29454E - 9545 - E99585 - East Asian ideograph - - - 294551 - 9517 - E99497 - East Asian ideograph - - - 29455E - 94E1 - E993A1 - East Asian ideograph - - - 294564 - 9536 - E994B6 - East Asian ideograph - - - 294567 - 9537 - E994B7 - East Asian ideograph - - - 294568 - 9518 - E99498 - East Asian ideograph - - - 29456F - 9538 - E994B8 - East Asian ideograph - - - 29457A - 9550 - E99590 - East Asian ideograph - - - 294621 - 9553 - E99593 - East Asian ideograph - - - 294628 - 9552 - E99592 - East Asian ideograph - - - 294629 - 84E5 - E893A5 - East Asian ideograph - - - 29462D - 9549 - E99589 - East Asian ideograph - - - 294642 - 94E0 - E993A0 - East Asian ideograph - - - 294647 - 954F - E9958F - East Asian ideograph - - - 29464A - 953C - E994BC - East Asian ideograph - - - 294656 - 955B - E9959B - East Asian ideograph - - - 29465A - 955F - E9959F - East Asian ideograph - - - 294662 - 956A - E995AA - East Asian ideograph - - - 294666 - 933E - E98CBE - East Asian ideograph - - - 29467C - 9546 - E99586 - East Asian ideograph - - - 29472F - 94E9 - E993A9 - East Asian ideograph - - - 294732 - 94F4 - E993B4 - East Asian ideograph - - - 294734 - 9566 - E995A6 - East Asian ideograph - - - 29473C - 9568 - E995A8 - East Asian ideograph - - - 29473E - 94F9 - E993B9 - East Asian ideograph - - - 29474D - 956B - E995AB - East Asian ideograph - - - 294750 - 950E - E9948E - East Asian ideograph - - - 294751 - 950F - E9948F - East Asian ideograph - - - 294758 - 9561 - E995A1 - East Asian ideograph - - - 29475E - 9562 - E995A2 - East Asian ideograph - - - 294760 - 9563 - E995A3 - East Asian ideograph - - - 294767 - 94E7 - E993A7 - East Asian ideograph - - - 294769 - 9564 - E995A4 - East Asian ideograph - - - 294774 - 9571 - E995B1 - East Asian ideograph - - - 29483E - 9554 - E99594 - East Asian ideograph - - - 29483F - 9572 - E995B2 - East Asian ideograph - - - 29484A - 956C - E995AC - East Asian ideograph - - - 29485C - 9565 - E995A5 - East Asian ideograph - - - 294869 - 9567 - E995A7 - East Asian ideograph - - - 29486F - 9569 - E995A9 - East Asian ideograph - - - 294871 - 954A - E9958A - East Asian ideograph - - - 294936 - 95F3 - E997B3 - East Asian ideograph - - - 294942 - 9606 - E99886 - East Asian ideograph - - - 294944 - 9603 - E99883 - East Asian ideograph - - - 294948 - 960F - E9988F - East Asian ideograph - - - 294949 - 9608 - E99888 - East Asian ideograph - - - 29494D - 9609 - E99889 - East Asian ideograph - - - 29494F - 960A - E9988A - East Asian ideograph - - - 294950 - 960C - E9988C - East Asian ideograph - - - 294952 - 960D - E9988D - East Asian ideograph - - - 29495A - 9612 - E99892 - East Asian ideograph - - - 294960 - 9619 - E99899 - East Asian ideograph - - - 294969 - 961A - E9989A - East Asian ideograph - - - 29496F - 95FC - E997BC - East Asian ideograph - - - 294A44 - 9655 - E99995 - East Asian ideograph - - - 294A46 - 9649 - E99989 - East Asian ideograph - - - 294C76 - 9753 - E99D93 - East Asian ideograph - - - 294E43 - 97AF - E99EAF - East Asian ideograph - - - 294E54 - 97EA - E99FAA - East Asian ideograph - - - 294E5C - 97EB - E99FAB - East Asian ideograph - - - 294E79 - 9878 - E9A1B8 - East Asian ideograph - - - 294E7B - 9883 - E9A283 - East Asian ideograph - - - 294F23 - 9880 - E9A280 - East Asian ideograph - - - 294F2C - 988F - E9A28F - East Asian ideograph - - - 294F6B - 98A1 - E9A2A1 - East Asian ideograph - - - 294F77 - 989F - E9A29F - East Asian ideograph - - - 295021 - 98A2 - E9A2A2 - East Asian ideograph - - - 295029 - 98A5 - E9A2A5 - East Asian ideograph - - - 295030 - 989E - E9A29E - East Asian ideograph - - - 295031 - 98A7 - E9A2A7 - East Asian ideograph - - - 295053 - 98D9 - E9A399 - East Asian ideograph - - - 29506C - 996B - E9A5AB - East Asian ideograph - - - 295132 - 997D - E9A5BD - East Asian ideograph - - - 295153 - 9967 - E9A5A7 - East Asian ideograph - - - 295166 - 9969 - E9A5A9 - East Asian ideograph - - - 29516A - 9990 - E9A690 - East Asian ideograph - - - 29516D - 9991 - E9A691 - East Asian ideograph - - - 295170 - 998D - E9A68D - East Asian ideograph - - - 295172 - 9994 - E9A694 - East Asian ideograph - - - 295175 - 9993 - E9A693 - East Asian ideograph - - - 295222 - 98E8 - E9A3A8 - East Asian ideograph - - - 295263 - 9A75 - E9A9B5 - East Asian ideograph - - - 295269 - 9A80 - E9AA80 - East Asian ideograph - - - 29533D - 9A90 - E9AA90 - East Asian ideograph - - - 295340 - 9A92 - E9AA92 - East Asian ideograph - - - 295347 - 9A93 - E9AA93 - East Asian ideograph - - - 29535A - 9A9F - E9AA9F - East Asian ideograph - - - 295360 - 9A98 - E9AA98 - East Asian ideograph - - - 295369 - 9A7A - E9A9BA - East Asian ideograph - - - 29536A - 9A9D - E9AA9D - East Asian ideograph - - - 295370 - 9A9C - E9AA9C - East Asian ideograph - - - 295379 - 9A96 - E9AA96 - East Asian ideograph - - - 29537A - 9AA2 - E9AAA2 - East Asian ideograph - - - 295421 - 9AA3 - E9AAA3 - East Asian ideograph - - - 295422 - 9A81 - E9AA81 - East Asian ideograph - - - 295427 - 9A85 - E9AA85 - East Asian ideograph - - - 295433 - 9AA7 - E9AAA7 - East Asian ideograph - - - 29546D - 9ACB - E9AB8B - East Asian ideograph - - - 29556C - 960B - E9988B - East Asian ideograph - - - 295574 - 9604 - E99884 - East Asian ideograph - - - 29563C - 9B49 - E9AD89 - East Asian ideograph - - - 29565D - 9C82 - E9B282 - East Asian ideograph - - - 295721 - 9C86 - E9B286 - East Asian ideograph - - - 295729 - 9C87 - E9B287 - East Asian ideograph - - - 29572B - 9C90 - E9B290 - East Asian ideograph - - - 295731 - 9C8B - E9B28B - East Asian ideograph - - - 295739 - 9C9E - E9B29E - East Asian ideograph - - - 29573C - 9C91 - E9B291 - East Asian ideograph - - - 29573D - 9C92 - E9B292 - East Asian ideograph - - - 295742 - 9C95 - E9B295 - East Asian ideograph - - - 295756 - 9CA9 - E9B2A9 - East Asian ideograph - - - 29575F - 9CA0 - E9B2A0 - East Asian ideograph - - - 29576E - 9CA7 - E9B2A7 - East Asian ideograph - - - 29577A - 9CAD - E9B2AD - East Asian ideograph - - - 29577C - 9CB0 - E9B2B0 - East Asian ideograph - - - 295822 - 9CAE - E9B2AE - East Asian ideograph - - - 295825 - 9CBA - E9B2BA - East Asian ideograph - - - 295827 - 9CB2 - E9B2B2 - East Asian ideograph - - - 295828 - 9CB4 - E9B2B4 - East Asian ideograph - - - 29582C - 9CB1 - E9B2B1 - East Asian ideograph - - - 29582D - 9CB7 - E9B2B7 - East Asian ideograph - - - 29582F - 9CB5 - E9B2B5 - East Asian ideograph - - - 295831 - 9CB6 - E9B2B6 - East Asian ideograph - - - 295834 - 9CBB - E9B2BB - East Asian ideograph - - - 29583E - 9CCA - E9B38A - East Asian ideograph - - - 29584B - 9CBD - E9B2BD - East Asian ideograph - - - 295854 - 9CC4 - E9B384 - East Asian ideograph - - - 295859 - 9CC6 - E9B386 - East Asian ideograph - - - 29585C - 9CC7 - E9B387 - East Asian ideograph - - - 29586A - 9CCB - E9B38B - East Asian ideograph - - - 29586E - 9CA5 - E9B2A5 - East Asian ideograph - - - 295871 - 9CCE - E9B38E - East Asian ideograph - - - 295921 - 9CD9 - E9B399 - East Asian ideograph - - - 295925 - 9CCC - E9B38C - East Asian ideograph - - - 295928 - 9CD5 - E9B395 - East Asian ideograph - - - 295929 - 9CA3 - E9B2A3 - East Asian ideograph - - - 29592A - 9CD3 - E9B393 - East Asian ideograph - - - 295932 - 9CD8 - E9B398 - East Asian ideograph - - - 295938 - 9CDF - E9B39F - East Asian ideograph - - - 29593A - 9C85 - E9B285 - East Asian ideograph - - - 29593B - 9C9F - E9B29F - East Asian ideograph - - - 295940 - 9CBC - E9B2BC - East Asian ideograph - - - 29594F - 9CE2 - E9B3A2 - East Asian ideograph - - - 295955 - 9C8E - E9B28E - East Asian ideograph - - - 295958 - 9C9A - E9B29A - East Asian ideograph - - - 29596B - 9CA1 - E9B2A1 - East Asian ideograph - - - 295A28 - 9E28 - E9B8A8 - East Asian ideograph - - - 295A44 - 9E32 - E9B8B2 - East Asian ideograph - - - 295A48 - 9E31 - E9B8B1 - East Asian ideograph - - - 295A59 - 9E38 - E9B8B8 - East Asian ideograph - - - 295A65 - 9E39 - E9B8B9 - East Asian ideograph - - - 295A68 - 9E3A - E9B8BA - East Asian ideograph - - - 295A70 - 9E48 - E9B988 - East Asian ideograph - - - 295A75 - 9E41 - E9B981 - East Asian ideograph - - - 295B2A - 9E46 - E9B986 - East Asian ideograph - - - 295B35 - 9E2B - E9B8AB - East Asian ideograph - - - 295B52 - 9E4E - E9B98E - East Asian ideograph - - - 295B59 - 9E5C - E9B99C - East Asian ideograph - - - 295B5C - 9E5B - E9B99B - East Asian ideograph - - - 295B60 - 9E55 - E9B995 - East Asian ideograph - - - 295B6B - 9E57 - E9B997 - East Asian ideograph - - - 295B6C - 9E4B - E9B98B - East Asian ideograph - - - 295B77 - 9E63 - E9B9A3 - East Asian ideograph - - - 295B79 - 9E5A - E9B99A - East Asian ideograph - - - 295C28 - 9E58 - E9B998 - East Asian ideograph - - - 295C3E - 9E37 - E9B8B7 - East Asian ideograph - - - 295C47 - 9E68 - E9B9A8 - East Asian ideograph - - - 295C49 - 9E47 - E9B987 - East Asian ideograph - - - 295C57 - 9E6B - E9B9AB - East Asian ideograph - - - 295C5B - 9E6C - E9B9AC - East Asian ideograph - - - 295C65 - 9E69 - E9B9A9 - East Asian ideograph - - - 295C6C - 9E6A - E9B9AA - East Asian ideograph - - - 295D29 - 9E71 - E9B9B1 - East Asian ideograph - - - 295D36 - 9E2C - E9B8AC - East Asian ideograph - - - 295D3A - 9E73 - E9B9B3 - East Asian ideograph - - - 295D3B - 9E42 - E9B982 - East Asian ideograph - - - 295D3C - 5364 - E58DA4 - East Asian ideograph - - - 295D42 - 9E7E - E9B9BE - East Asian ideograph - - - 295E6A - 9EEA - E9BBAA - East Asian ideograph - - - 295E7A - 9EFE - E9BBBE - East Asian ideograph - - - 295E7C - 9F0B - E9BC8B - East Asian ideograph - - - 295F2B - 9F0D - E9BC8D - East Asian ideograph - - - 295F7B - 9F51 - E9BD91 - East Asian ideograph - - - 295F7C - 9F80 - E9BE80 - East Asian ideograph - - - 296028 - 9F86 - E9BE86 - East Asian ideograph - - - 29602B - 9F85 - E9BE85 - East Asian ideograph - - - 296062 - 9F9B - E9BE9B - East Asian ideograph - - - 2D3021 - 5F0C - E5BC8C - East Asian ideograph - - - 2D302D - 4E17 - E4B897 - East Asian ideograph - - - 2D3032 - 7ADD - E7AB9D - East Asian ideograph - - - 2D3045 - 4E57 - E4B997 - East Asian ideograph - - - 2D3051 - 5F0D - E5BC8D - East Asian ideograph - - - 2D3053 - 4E3C - E4B8BC - East Asian ideograph - - - 2D3058 - 4E9C - E4BA9C - East Asian ideograph - - - 2D305B - 4EBE - E4BABE - East Asian ideograph - - - 2D3061 - 4EB0 - E4BAB0 - East Asian ideograph - - - 2D306C - 8B8E - E8AE8E - East Asian ideograph - - - 2D3132 - 4ECF - E4BB8F - East Asian ideograph - - - 2D313A - 62BB - E68ABB - East Asian ideograph - - - 2D3140 - 4F32 - E4BCB2 - East Asian ideograph - - - 2D3147 - 5002 - E58082 - East Asian ideograph - - - 2D314C - 5008 - E58088 - East Asian ideograph - - - 2D315F - 4FA3 - E4BEA3 - East Asian ideograph - - - 2D3164 - 7AE2 - E7ABA2 - East Asian ideograph - - - 2D3165 - 349E - E3929E - East Asian ideograph (Unicode CJK Extension A) - - - 2D3177 - 5E78 - E5B9B8 - East Asian ideograph - - - 2D3224 - 7B87 - E7AE87 - East Asian ideograph - - - 2D3251 - 510C - E5848C - East Asian ideograph - - - 2D3253 - 50E3 - E583A3 - East Asian ideograph - - - 2D325F - 50BB - E582BB - East Asian ideograph (variant of EACC 4B325F) - - - 2D3261 - 5039 - E580B9 - East Asian ideograph - - - 2D3263 - 4FAD - E4BEAD - East Asian ideograph - - - 2D3272 - 706E - E781AE - East Asian ideograph - - - 2D3279 - 514E - E5858E - East Asian ideograph - - - 2D3324 - 634C - E68D8C - East Asian ideograph - - - 2D332A - 4E0C - E4B88C - East Asian ideograph - - - 2D3332 - 5190 - E58690 - East Asian ideograph - - - 2D334F - 5202 - E58882 - East Asian ideograph - - - 2D3356 - 5211 - E58891 - East Asian ideograph - - - 2D335F - 52B5 - E58AB5 - East Asian ideograph - - - 2D3366 - 5234 - E588B4 - East Asian ideograph - - - 2D336B - 5C05 - E5B085 - East Asian ideograph - - - 2D3372 - 5265 - E589A5 - East Asian ideograph - - - 2D3377 - 8CF8 - E8B3B8 - East Asian ideograph - - - 2D3421 - 5294 - E58A94 - East Asian ideograph - - - 2D3428 - 5226 - E588A6 - East Asian ideograph - - - 2D342E - 8274 - E889B4 - East Asian ideograph - - - 2D3436 - 52F3 - E58BB3 - East Asian ideograph - - - 2D343C - 52A2 - E58AA2 - East Asian ideograph - - - 2D343D - 52E7 - E58BA7 - East Asian ideograph - - - 2D3453 - 758B - E7968B - East Asian ideograph - - - 2D3457 - 62FE - E68BBE - East Asian ideograph - - - 2D3458 - 4EDF - E4BB9F - East Asian ideograph - - - 2D345B - 6607 - E69887 - East Asian ideograph - - - 2D345D - 5349 - E58D89 - East Asian ideograph - - - 2D3464 - 613D - E684BD - East Asian ideograph - - - 2D346A - 5918 - E5A498 - East Asian ideograph - - - 2D346E - 5373 - E58DB3 - East Asian ideograph - - - 2D3473 - 5374 - E58DB4 - East Asian ideograph - - - 2D3539 - 52FE - E58BBE - East Asian ideograph - - - 2D353C - 6B62 - E6ADA2 - East Asian ideograph - - - 2D3543 - 4EDD - E4BB9D - East Asian ideograph - - - 2D3547 - 55AB - E596AB - East Asian ideograph - - - 2D3556 - 7343 - E78D83 - East Asian ideograph - - - 2D355C - 5434 - E590B4 - East Asian ideograph - - - 2D356A - 8A36 - E8A8B6 - East Asian ideograph - - - 2D3571 - 546A - E591AA - East Asian ideograph - - - 2D3622 - 8AEE - E8ABAE - East Asian ideograph - - - 2D362A - 95A7 - E996A7 - East Asian ideograph - - - 2D3632 - 8A7B - E8A9BB - East Asian ideograph - - - 2D3642 - 6B38 - E6ACB8 - East Asian ideograph - - - 2D3644 - 5557 - E59597 - East Asian ideograph - - - 2D3661 - 6199 - E68699 - East Asian ideograph - - - 2D3730 - 751E - E7949E - East Asian ideograph - - - 2D3748 - 8B5F - E8AD9F - East Asian ideograph - - - 2D3749 - 5650 - E59990 - East Asian ideograph - - - 2D3758 - 54BD - E592BD - East Asian ideograph - - - 2D3765 - 8086 - E88286 - East Asian ideograph - - - 2D3768 - 56EC - E59BAC - East Asian ideograph - - - 2D376F - 5700 - E59C80 - East Asian ideograph - - - 2D377C - 962C - E998AC - East Asian ideograph - - - 2D3821 - 962F - E998AF - East Asian ideograph - - - 2D3830 - 573B - E59CBB - East Asian ideograph - - - 2D383F - 575A - E59D9A - East Asian ideograph - - - 2D384A - 5872 - E5A1B2 - East Asian ideograph - - - 2D3852 - 51A2 - E586A2 - East Asian ideograph - - - 2D3854 - 5896 - E5A296 - East Asian ideograph - - - 2D386E - 58CA - E5A38A - East Asian ideograph - - - 2D3876 - 58F7 - E5A3B7 - East Asian ideograph - - - 2D3877 - 5900 - E5A480 - East Asian ideograph - - - 2D3921 - 591F - E5A49F - East Asian ideograph - - - 2D3929 - 6B80 - E6AE80 - East Asian ideograph - - - 2D392F - 7287 - E78A87 - East Asian ideograph - - - 2D3931 - 67F0 - E69FB0 - East Asian ideograph - - - 2D3932 - 7AD2 - E7AB92 - East Asian ideograph - - - 2D3944 - 511E - E5849E - East Asian ideograph - - - 2D394D - 59AC - E5A6AC - East Asian ideograph - - - 2D3954 - 7385 - E78E85 - East Asian ideograph - - - 2D3956 - 59D9 - E5A799 - East Asian ideograph - - - 2D396E - 4F84 - E4BE84 - East Asian ideograph - - - 2D3970 - 5A63 - E5A9A3 - East Asian ideograph - - - 2D3974 - 5B43 - E5AD83 - East Asian ideograph - - - 2D397B - 5A31 - E5A8B1 - East Asian ideograph - - - 2D3A26 - 5A3F - E5A8BF - East Asian ideograph - - - 2D3A2F - 58FB - E5A3BB - East Asian ideograph - - - 2D3A41 - 5AFA - E5ABBA - East Asian ideograph - - - 2D3A47 - 5ACB - E5AB8B - East Asian ideograph - - - 2D3A60 - 6588 - E69688 - East Asian ideograph - - - 2D3B27 - 51A8 - E586A8 - East Asian ideograph - - - 2D3B2A - 5EBD - E5BABD - East Asian ideograph - - - 2D3B33 - 8A67 - E8A9A7 - East Asian ideograph - - - 2D3B3F - 5C02 - E5B082 - East Asian ideograph - - - 2D3B40 - 5C06 - E5B086 - East Asian ideograph (variant of EACC 273B40) - - - 2D3B52 - 6EBA - E6BABA - East Asian ideograph - - - 2D3B54 - 5C4A - E5B18A - East Asian ideograph - - - 2D3B6E - 5D17 - E5B497 - East Asian ideograph - - - 2D3B77 - 5CE9 - E5B3A9 - East Asian ideograph - - - 2D3B78 - 5CEF - E5B3AF - East Asian ideograph - - - 2D3B79 - 5D8B - E5B68B - East Asian ideograph - - - 2D3B7B - 5D08 - E5B488 - East Asian ideograph - - - 2D3C21 - 57FC - E59FBC - East Asian ideograph - - - 2D3C22 - 5D10 - E5B490 - East Asian ideograph - - - 2D3C26 - 5D18 - E5B498 - East Asian ideograph - - - 2D3C36 - 5DE3 - E5B7A3 - East Asian ideograph - - - 2D3C38 - 9245 - E98985 - East Asian ideograph - - - 2D3C49 - 83F7 - E88FB7 - East Asian ideograph - - - 2D3C5F - 6A66 - E6A9A6 - East Asian ideograph - - - 2D3C61 - 5E47 - E5B987 - East Asian ideograph - - - 2D3C65 - 79CA - E7A78A - East Asian ideograph - - - 2D3C6A - 51FC - E587BC - East Asian ideograph - - - 2D3C6D - 8298 - E88A98 - East Asian ideograph (duplicate simplified) - - - 2D3C6E - 7240 - E78980 - East Asian ideograph - - - 2D3C70 - 576B - E59DAB - East Asian ideograph - - - 2D3C7C - 83F4 - E88FB4 - East Asian ideograph - - - 2D3C7D - 53A2 - E58EA2 - East Asian ideograph - - - 2D3C7E - 53A0 - E58EA0 - East Asian ideograph - - - 2D3D29 - 53AE - E58EAE - East Asian ideograph - - - 2D3D2B - 5EBF - E5BABF - East Asian ideograph - - - 2D3D2D - 5396 - E58E96 - East Asian ideograph - - - 2D3D2F - 539B - E58E9B - East Asian ideograph - - - 2D3D34 - 5EFE - E5BBBE - East Asian ideograph - - - 2D3D48 - 5F4A - E5BD8A - East Asian ideograph - - - 2D3D4E - 7BF2 - E7AFB2 - East Asian ideograph - - - 2D3D50 - 5F5C - E5BD9C - East Asian ideograph - - - 2D3D5E - 9AF4 - E9ABB4 - East Asian ideograph - - - 2D3D67 - 9015 - E98095 - East Asian ideograph - - - 2D3D6C - 5F93 - E5BE93 - East Asian ideograph - - - 2D3D75 - 60EA - E683AA - East Asian ideograph - - - 2D3D76 - 5FB4 - E5BEB4 - East Asian ideograph - - - 2D3E2B - 6060 - E681A0 - East Asian ideograph - - - 2D3E3C - 803B - E880BB - East Asian ideograph - - - 2D3E40 - 6052 - E68192 - East Asian ideograph - - - 2D3E60 - 6075 - E681B5 - East Asian ideograph - - - 2D3F24 - 661A - E6989A - East Asian ideograph - - - 2D3F27 - 6120 - E684A0 - East Asian ideograph - - - 2D3F2A - 5ABF - E5AABF - East Asian ideograph - - - 2D3F31 - 6159 - E68599 - East Asian ideograph - - - 2D3F3A - 6185 - E68685 - East Asian ideograph - - - 2D3F54 - 61D0 - E68790 - East Asian ideograph - - - 2D3F67 - 621E - E6889E - East Asian ideograph - - - 2D3F6E - 6226 - E688A6 - East Asian ideograph - - - 2D3F6F - 622F - E688AF - East Asian ideograph - - - 2D3F76 - 78A5 - E7A2A5 - East Asian ideograph - - - 2D4029 - 5214 - E58894 - East Asian ideograph - - - 2D4031 - 64A6 - E692A6 - East Asian ideograph - - - 2D4039 - 67C6 - E69F86 - East Asian ideograph - - - 2D403F - 6255 - E68995 - East Asian ideograph - - - 2D4049 - 67B4 - E69EB4 - East Asian ideograph - - - 2D404C - 6283 - E68A83 - East Asian ideograph - - - 2D404F - 6294 - E68A94 - East Asian ideograph - - - 2D4066 - 63CE - E68F8E - East Asian ideograph - - - 2D4067 - 62CF - E68B8F - East Asian ideograph - - - 2D4122 - 6485 - E69285 - East Asian ideograph - - - 2D4132 - 642F - E690AF - East Asian ideograph - - - 2D4141 - 63B2 - E68EB2 - East Asian ideograph - - - 2D4147 - 6271 - E689B1 - East Asian ideograph - - - 2D4150 - 6428 - E690A8 - East Asian ideograph - - - 2D4152 - 6447 - E69187 - East Asian ideograph - - - 2D4153 - 64E3 - E693A3 - East Asian ideograph - - - 2D4154 - 635C - E68D9C - East Asian ideograph - - - 2D416E - 6534 - E694B4 - East Asian ideograph - - - 2D4171 - 62CA - E68B8A - East Asian ideograph - - - 2D4176 - 6483 - E69283 - East Asian ideograph - - - 2D4228 - 5117 - E58497 - East Asian ideograph - - - 2D4249 - 53D9 - E58F99 - East Asian ideograph - - - 2D424F - 555F - E5959F - East Asian ideograph - - - 2D4272 - 65E3 - E697A3 - East Asian ideograph - - - 2D4277 - 65EE - E697AE - East Asian ideograph - - - 2D4327 - 6630 - E698B0 - East Asian ideograph - - - 2D4329 - 668E - E69A8E - East Asian ideograph - - - 2D432E - 66EC - E69BAC - East Asian ideograph - - - 2D433B - 6662 - E699A2 - East Asian ideograph - - - 2D433E - 667B - E699BB - East Asian ideograph - - - 2D4343 - 6636 - E698B6 - East Asian ideograph - - - 2D4348 - 6681 - E69A81 - East Asian ideograph - - - 2D4349 - 66A6 - E69AA6 - East Asian ideograph - - - 2D435F - 6716 - E69C96 - East Asian ideograph - - - 2D4362 - 6722 - E69CA2 - East Asian ideograph - - - 2D4364 - 671E - E69C9E - East Asian ideograph - - - 2D4370 - 6736 - E69CB6 - East Asian ideograph - - - 2D4425 - 686E - E6A1AE - East Asian ideograph - - - 2D442D - 6780 - E69E80 - East Asian ideograph - - - 2D4437 - 67FE - E69FBE - East Asian ideograph - - - 2D443A - 6942 - E6A582 - East Asian ideograph - - - 2D4440 - 6822 - E6A0A2 - East Asian ideograph - - - 2D4444 - 69C5 - E6A785 - East Asian ideograph - - - 2D444B - 6852 - E6A192 - East Asian ideograph - - - 2D4450 - 8308 - E88C88 - East Asian ideograph - - - 2D4461 - 6746 - E69D86 - East Asian ideograph - - - 2D4466 - 6973 - E6A5B3 - East Asian ideograph - - - 2D446B - 6936 - E6A4B6 - East Asian ideograph - - - 2D4472 - 68CA - E6A38A - East Asian ideograph - - - 2D4474 - 690D - E6A48D - East Asian ideograph (variant of EACC 214474) - - - 2D447D - 684C - E6A18C - East Asian ideograph - - - 2D4539 - 6406 - E69086 - East Asian ideograph - - - 2D453A - 6760 - E69DA0 - East Asian ideograph - - - 2D4543 - 6901 - E6A481 - East Asian ideograph - - - 2D454E - 697D - E6A5BD - East Asian ideograph - - - 2D4550 - 58AB - E5A2AB - East Asian ideograph - - - 2D4562 - 681D - E6A09D - East Asian ideograph - - - 2D4564 - 68B9 - E6A2B9 - East Asian ideograph - - - 2D4569 - 6AC9 - E6AB89 - East Asian ideograph - - - 2D4574 - 5FFB - E5BFBB - East Asian ideograph - - - 2D4621 - 61FD - E687BD - East Asian ideograph - - - 2D462C - 6B7A - E6ADBA - East Asian ideograph - - - 2D4647 - 6BD8 - E6AF98 - East Asian ideograph - - - 2D466D - 51B3 - E586B3 - East Asian ideograph - - - 2D4674 - 51B2 - E586B2 - East Asian ideograph - - - 2D467C - 6CB2 - E6B2B2 - East Asian ideograph - - - 2D4729 - 6D29 - E6B4A9 - East Asian ideograph - - - 2D4730 - 51B5 - E586B5 - East Asian ideograph - - - 2D4735 - 6C4E - E6B18E - East Asian ideograph - - - 2D4738 - 6FFC - E6BFBC - East Asian ideograph - - - 2D4746 - 6C79 - E6B1B9 - East Asian ideograph - - - 2D4756 - 6F94 - E6BE94 - East Asian ideograph - - - 2D475B - 51C9 - E58789 - East Asian ideograph - - - 2D475F - 51C4 - E58784 - East Asian ideograph - - - 2D4768 - 6D45 - E6B585 - East Asian ideograph (variant of EACC 274768) - - - 2D4829 - 51CF - E5878F - East Asian ideograph - - - 2D482F - 6E07 - E6B887 - East Asian ideograph - - - 2D4844 - 6FD5 - E6BF95 - East Asian ideograph - - - 2D4845 - 6E29 - E6B8A9 - East Asian ideograph - - - 2D4850 - 6EDA - E6BB9A - East Asian ideograph - - - 2D4853 - 7001 - E78081 - East Asian ideograph - - - 2D485C - 6F44 - E6BD84 - East Asian ideograph - - - 2D486B - 6F82 - E6BE82 - East Asian ideograph - - - 2D486E - 6F97 - E6BE97 - East Asian ideograph - - - 2D4874 - 6F5C - E6BD9C - East Asian ideograph - - - 2D493A - 702C - E780AC - East Asian ideograph - - - 2D4947 - 7AC8 - E7AB88 - East Asian ideograph - - - 2D4954 - 70F1 - E783B1 - East Asian ideograph - - - 2D4956 - 70B0 - E782B0 - East Asian ideograph - - - 2D496B - 70DF - E7839F - East Asian ideograph - - - 2D4971 - 70A4 - E782A4 - East Asian ideograph - - - 2D4A26 - 713C - E784BC - East Asian ideograph - - - 2D4A28 - 8B8C - E8AE8C - East Asian ideograph - - - 2D4A34 - 718F - E7868F - East Asian ideograph - - - 2D4A3B - 4E89 - E4BA89 - East Asian ideograph - - - 2D4A45 - 5C12 - E5B092 - East Asian ideograph - - - 2D4A46 - 58BB - E5A2BB - East Asian ideograph - - - 2D4A58 - 7F9D - E7BE9D - East Asian ideograph - - - 2D4A5B - 7282 - E78A82 - East Asian ideograph - - - 2D4A60 - 6C02 - E6B082 - East Asian ideograph - - - 2D4B22 - 736A - E78DAA - East Asian ideograph - - - 2D4B35 - 73C9 - E78F89 - East Asian ideograph - - - 2D4B3F - 73CE - E78F8E - East Asian ideograph - - - 2D4B43 - 746F - E791AF - East Asian ideograph - - - 2D4B45 - 6BEC - E6AFAC - East Asian ideograph - - - 2D4B5B - 78AF - E7A2AF - East Asian ideograph - - - 2D4B71 - 7F3E - E7BCBE - East Asian ideograph - - - 2D4B72 - 7506 - E79486 - East Asian ideograph - - - 2D4C2C - 583A - E5A0BA - East Asian ideograph - - - 2D4C2D - 756E - E795AE - East Asian ideograph - - - 2D4C35 - 7567 - E795A7 - East Asian ideograph - - - 2D4C3C - 53E0 - E58FA0 - East Asian ideograph - - - 2D4C3E - 758E - E7968E - East Asian ideograph - - - 2D4C5D - 7661 - E799A1 - East Asian ideograph - - - 2D4C7E - 4F70 - E4BDB0 - East Asian ideograph - - - 2D4D21 - 7681 - E79A81 - East Asian ideograph - - - 2D4D34 - 76C7 - E79B87 - East Asian ideograph - - - 2D4D38 - 76D7 - E79B97 - East Asian ideograph - - - 2D4D4F - 771F - E79C9F - East Asian ideograph - - - 2D4D5F - 7741 - E79D81 - East Asian ideograph - - - 2D4D65 - 53E1 - E58FA1 - East Asian ideograph - - - 2D4D6D - 7792 - E79E92 - East Asian ideograph - - - 2D4D71 - 7719 - E79C99 - East Asian ideograph - - - 2D4E24 - 6998 - E6A698 - East Asian ideograph - - - 2D4E33 - 78AA - E7A2AA - East Asian ideograph - - - 2D4E5B - 945B - E9919B - East Asian ideograph - - - 2D4E79 - 5FA1 - E5BEA1 - East Asian ideograph - - - 2D4F29 - 9F9D - E9BE9D - East Asian ideograph - - - 2D4F37 - 7980 - E7A680 - East Asian ideograph - - - 2D4F3E - 7A3E - E7A8BE - East Asian ideograph - - - 2D4F41 - 4E69 - E4B9A9 - East Asian ideograph - - - 2D4F45 - 9834 - E9A0B4 - East Asian ideograph - - - 2D4F48 - 7A42 - E7A982 - East Asian ideograph - - - 2D4F5E - 7AB0 - E7AAB0 - East Asian ideograph - - - 2D4F6B - 7AF8 - E7ABB8 - East Asian ideograph - - - 2D4F7C - 7B5E - E7AD9E - East Asian ideograph - - - 2D502B - 693E - E6A4BE - East Asian ideograph - - - 2D502D - 7B5D - E7AD9D - East Asian ideograph - - - 2D5036 - 84D1 - E89391 - East Asian ideograph - - - 2D504F - 7C58 - E7B198 - East Asian ideograph - - - 2D506F - 7CFA - E7B3BA - East Asian ideograph - - - 2D5124 - 5E0B - E5B88B - East Asian ideograph - - - 2D5129 - 7D25 - E7B4A5 - East Asian ideograph - - - 2D514A - 6DD6 - E6B796 - East Asian ideograph - - - 2D514D - 7D2C - E7B4AC - East Asian ideograph - - - 2D516A - 7DB3 - E7B6B3 - East Asian ideograph - - - 2D5179 - 7E62 - E7B9A2 - East Asian ideograph - - - 2D517D - 7D99 - E7B699 - East Asian ideograph - - - 2D5228 - 9262 - E989A2 - East Asian ideograph - - - 2D522B - 9475 - E991B5 - East Asian ideograph - - - 2D5232 - 8FA0 - E8BEA0 - East Asian ideograph - - - 2D5233 - 7F78 - E7BDB8 - East Asian ideograph - - - 2D5238 - 898A - E8A68A - East Asian ideograph - - - 2D5240 - 7FA1 - E7BEA1 - East Asian ideograph - - - 2D5241 - 7FA3 - E7BEA3 - East Asian ideograph - - - 2D524A - 7FC4 - E7BF84 - East Asian ideograph - - - 2D5259 - 98DC - E9A39C - East Asian ideograph - - - 2D525D - 6537 - E694B7 - East Asian ideograph - - - 2D5265 - 79D0 - E7A790 - East Asian ideograph - - - 2D5267 - 79CF - E7A78F - East Asian ideograph - - - 2D526B - 7085 - E78285 - East Asian ideograph - - - 2D526C - 8EAD - E8BAAD - East Asian ideograph - - - 2D527B - 8074 - E881B4 - East Asian ideograph - - - 2D5321 - 7C9B - E7B29B - East Asian ideograph - - - 2D5323 - 5B8D - E5AE8D - East Asian ideograph - - - 2D532C - 6BD3 - E6AF93 - East Asian ideograph - - - 2D5340 - 812C - E884AC - East Asian ideograph - - - 2D5344 - 8107 - E88487 - East Asian ideograph - - - 2D534B - 80F7 - E883B7 - East Asian ideograph - - - 2D535E - 8193 - E88693 - East Asian ideograph - - - 2D5361 - 811A - E8849A - East Asian ideograph - - - 2D537E - 81C8 - E88788 - East Asian ideograph - - - 2D5421 - 9AD7 - E9AB97 - East Asian ideograph - - - 2D5424 - 5367 - E58DA7 - East Asian ideograph - - - 2D5434 - 64E7 - E693A7 - East Asian ideograph - - - 2D5440 - 6841 - E6A181 - East Asian ideograph - - - 2D5446 - 8229 - E888A9 - East Asian ideograph - - - 2D5447 - 824A - E8898A - East Asian ideograph - - - 2D5461 - 8306 - E88C86 - East Asian ideograph - - - 2D5468 - 6959 - E6A599 - East Asian ideograph - - - 2D546F - 83C0 - E88F80 - East Asian ideograph - - - 2D5476 - 8318 - E88C98 - East Asian ideograph - - - 2D5529 - 830E - E88C8E - East Asian ideograph (variant of EACC 275529) - - - 2D552D - 8358 - E88D98 - East Asian ideograph - - - 2D552E - 82FA - E88BBA - East Asian ideograph (variant of EACC 227C68) - - - 2D5547 - 837D - E88DBD - East Asian ideograph - - - 2D5550 - 585F - E5A19F - East Asian ideograph - - - 2D5554 - 855A - E8959A - East Asian ideograph - - - 2D555A - 8386 - E88E86 - East Asian ideograph - - - 2D555B - 8385 - E88E85 - East Asian ideograph - - - 2D5561 - 76D6 - E79B96 - East Asian ideograph - - - 2D5573 - 83D4 - E88F94 - East Asian ideograph - - - 2D562E - 8024 - E880A4 - East Asian ideograph - - - 2D5635 - 846F - E891AF - East Asian ideograph - - - 2D563C - 8613 - E89893 - East Asian ideograph - - - 2D563F - 6A97 - E6AA97 - East Asian ideograph - - - 2D5664 - 9F04 - E9BC84 - East Asian ideograph - - - 2D5675 - 9F05 - E9BC85 - East Asian ideograph - - - 2D567B - 8717 - E89C97 - East Asian ideograph - - - 2D572B - 8797 - E89E97 - East Asian ideograph - - - 2D572D - 8748 - E89D88 - East Asian ideograph - - - 2D5730 - 87C7 - E89F87 - East Asian ideograph - - - 2D573B - 60F7 - E683B7 - East Asian ideograph - - - 2D5749 - 885E - E8A19E - East Asian ideograph - - - 2D5758 - 890E - E8A48E - East Asian ideograph - - - 2D575B - 886E - E8A1AE - East Asian ideograph - - - 2D5760 - 5E2C - E5B8AC - East Asian ideograph - - - 2D5763 - 88E1 - E8A3A1 - East Asian ideograph - - - 2D5773 - 7D5D - E7B59D - East Asian ideograph - - - 2D5831 - 89A7 - E8A6A7 - East Asian ideograph - - - 2D5833 - 752A - E794AA - East Asian ideograph - - - 2D5836 - 89E6 - E8A7A6 - East Asian ideograph - - - 2D584D - 548F - E5928F - East Asian ideograph - - - 2D5856 - 612C - E684AC - East Asian ideograph - - - 2D5927 - 8ACC - E8AB8C - East Asian ideograph - - - 2D592C - 8B01 - E8AC81 - East Asian ideograph - - - 2D593D - 8AE9 - E8ABA9 - East Asian ideograph - - - 2D5941 - 5629 - E598A9 - East Asian ideograph - - - 2D594C - 8B72 - E8ADB2 - East Asian ideograph - - - 2D594F - 8B83 - E8AE83 - East Asian ideograph - - - 2D5957 - 7AEA - E7ABAA - East Asian ideograph - - - 2D5959 - 8277 - E889B7 - East Asian ideograph - - - 2D595F - 732A - E78CAA - East Asian ideograph - - - 2D5960 - 72B2 - E78AB2 - East Asian ideograph - - - 2D5963 - 8C98 - E8B298 - East Asian ideograph - - - 2D5965 - 72F8 - E78BB8 - East Asian ideograph - - - 2D5A34 - 8CAD - E8B2AD - East Asian ideograph - - - 2D5A3D - 8CDB - E8B39B - East Asian ideograph - - - 2D5A48 - 8D71 - E8B5B1 - East Asian ideograph - - - 2D5A4E - 8D82 - E8B682 - East Asian ideograph - - - 2D5A5F - 8E5F - E8B99F - East Asian ideograph - - - 2D5A63 - 8DE5 - E8B7A5 - East Asian ideograph - - - 2D5A7E - 8E7B - E8B9BB - East Asian ideograph - - - 2D5B2F - 8EB1 - E8BAB1 - East Asian ideograph - - - 2D5B42 - 8F19 - E8BC99 - East Asian ideograph - - - 2D5B43 - 8EFD - E8BBBD - East Asian ideograph - - - 2D5B5D - 8FA2 - E8BEA2 - East Asian ideograph - - - 2D5B5E - 8FA7 - E8BEA7 - East Asian ideograph - - - 2D5B69 - 5EF5 - E5BBB5 - East Asian ideograph - - - 2D5B7A - 8FEF - E8BFAF - East Asian ideograph - - - 2D5C2F - 8FE8 - E8BFA8 - East Asian ideograph - - - 2D5C3F - 5FA7 - E5BEA7 - East Asian ideograph - - - 2D5C40 - 5FA8 - E5BEA8 - East Asian ideograph - - - 2D5C48 - 9013 - E98093 - East Asian ideograph - - - 2D5C5A - 8FE9 - E8BFA9 - East Asian ideograph - - - 2D5C5B - 9089 - E98289 - East Asian ideograph - - - 2D5C74 - 96A3 - E99AA3 - East Asian ideograph - - - 2D5D23 - 9167 - E985A7 - East Asian ideograph - - - 2D5D2F - 9196 - E98696 - East Asian ideograph - - - 2D5D56 - 920E - E9888E - East Asian ideograph - - - 2D5D65 - 8216 - E88896 - East Asian ideograph - - - 2D5D68 - 8021 - E880A1 - East Asian ideograph - - - 2D5E21 - 9418 - E99098 - East Asian ideograph - - - 2D5E24 - 7145 - E78585 - East Asian ideograph - - - 2D5E26 - 7194 - E78694 - East Asian ideograph - - - 2D5E28 - 93C1 - E98F81 - East Asian ideograph - - - 2D5E3B - 92B9 - E98AB9 - East Asian ideograph - - - 2D5E43 - 92F3 - E98BB3 - East Asian ideograph - - - 2D5E4A - 945A - E9919A - East Asian ideograph - - - 2D5E50 - 9587 - E99687 - East Asian ideograph - - - 2D5E61 - 6FF6 - E6BFB6 - East Asian ideograph - - - 2D5F28 - 9665 - E999A5 - East Asian ideograph - - - 2D5F2C - 5826 - E5A0A6 - East Asian ideograph - - - 2D5F2D - 964F - E9998F - East Asian ideograph - - - 2D5F2E - 661C - E6989C - East Asian ideograph - - - 2D5F35 - 78D2 - E7A392 - East Asian ideograph - - - 2D5F3B - 96A0 - E99AA0 - East Asian ideograph - - - 2D5F43 - 9CEB - E9B3AB - East Asian ideograph - - - 2D5F46 - 96BD - E99ABD - East Asian ideograph - - - 2D5F4B - 96D1 - E99B91 - East Asian ideograph - - - 2D5F4C - 9DC4 - E9B784 - East Asian ideograph - - - 2D5F63 - 873A - E89CBA - East Asian ideograph - - - 2D5F73 - 975A - E99D9A - East Asian ideograph (unrelated variant of EACC 234C76) - - - 2D6021 - 978C - E99E8C - East Asian ideograph - - - 2D602D - 976D - E99DAD - East Asian ideograph - - - 2D6030 - 97EE - E99FAE - East Asian ideograph - - - 2D6056 - 980B - E9A08B - East Asian ideograph - - - 2D6078 - 9920 - E9A4A0 - East Asian ideograph - - - 2D6079 - 8218 - E88898 - East Asian ideograph - - - 2D6132 - 99EE - E9A7AE - East Asian ideograph - - - 2D6134 - 99DE - E9A79E - East Asian ideograph - - - 2D6147 - 99C8 - E9A788 - East Asian ideograph - - - 2D6159 - 9AC4 - E9AB84 - East Asian ideograph - - - 2D615A - 8EC6 - E8BB86 - East Asian ideograph - - - 2D6162 - 9A0C - E9A88C - East Asian ideograph - - - 2D616A - 6B1D - E6AC9D - East Asian ideograph - - - 2D6222 - 9C0C - E9B08C - East Asian ideograph - - - 2D6229 - 9C53 - E9B193 - East Asian ideograph - - - 2D622C - 9F08 - E9BC88 - East Asian ideograph - - - 2D6235 - 9D76 - E9B5B6 - East Asian ideograph - - - 2D6241 - 9D5E - E9B59E - East Asian ideograph - - - 2D6251 - 5869 - E5A1A9 - East Asian ideograph - - - 2D6252 - 78B1 - E7A2B1 - East Asian ideograph - - - 2D625F - 83FB - E88FBB - East Asian ideograph - - - 2D6260 - 5E85 - E5BA85 - East Asian ideograph - - - 2D6262 - 9EC4 - E9BB84 - East Asian ideograph - - - 2D6275 - 76B7 - E79AB7 - East Asian ideograph - - - 2D627E - 658B - E6968B - East Asian ideograph - - - 2D632B - 5C28 - E5B0A8 - East Asian ideograph - - - 2D632D - 4E80 - E4BA80 - East Asian ideograph - - - 2D6B33 - 5231 - E588B1 - East Asian ideograph - - - 2D6B5F - 5273 - E589B3 - East Asian ideograph - - - 2D6F7D - 8123 - E884A3 - East Asian ideograph - - - 2D7143 - 55E2 - E597A2 - East Asian ideograph - - - 2D7164 - 55D4 - E59794 - East Asian ideograph (variant of EACC 217164) - - - 2D7345 - 56D3 - E59B93 - East Asian ideograph - - - 2D753A - 9654 - E99994 - East Asian ideograph - - - 2D7552 - 579B - E59E9B - East Asian ideograph - - - 2D7A44 - 598D - E5A68D - East Asian ideograph - - - 2D7E6A - 51A4 - E586A4 - East Asian ideograph - - - 2E257B - 5D1F - E5B49F - East Asian ideograph - - - 2E284C - 5ECF - E5BB8F - East Asian ideograph - - - 2E2968 - 5F51 - E5BD91 - East Asian ideograph - - - 2E2B5B - 605A - E6819A - East Asian ideograph - - - 2E2B74 - 609B - E6829B - East Asian ideograph - - - 2E2D79 - 6128 - E684A8 - East Asian ideograph - - - 2E2F7A - 6738 - E69CB8 - East Asian ideograph - - - 2E2F7C - 634D - E68D8D - East Asian ideograph - - - 2E3028 - 640B - E6908B - East Asian ideograph - - - 2E313A - 6332 - E68CB2 - East Asian ideograph - - - 2E3144 - 651F - E6949F - East Asian ideograph - - - 2E3172 - 5261 - E589A1 - East Asian ideograph - - - 2E3328 - 6528 - E694A8 - East Asian ideograph - - - 2E337B - 630E - E68C8E - East Asian ideograph - - - 2E363F - 52C5 - E58B85 - East Asian ideograph - - - 2E3645 - 69E3 - E6A7A3 - East Asian ideograph - - - 2E3654 - 657F - E695BF - East Asian ideograph - - - 2E3729 - 65B5 - E696B5 - East Asian ideograph - - - 2E3870 - 714A - E7858A - East Asian ideograph - - - 2E3936 - 66CD - E69B8D - East Asian ideograph - - - 2E3A26 - 661D - E6989D - East Asian ideograph - - - 2E3A33 - 80AD - E882AD - East Asian ideograph - - - 2E3B22 - 690F - E6A48F - East Asian ideograph - - - 2E3D62 - 684A - E6A18A - East Asian ideograph - - - 2E3D73 - 7A1C - E7A89C - East Asian ideograph - - - 2E3E3F - 7BA0 - E7AEA0 - East Asian ideograph - - - 2E3F2D - 69B2 - E6A6B2 - East Asian ideograph - - - 2E403D - 6AC1 - E6AB81 - East Asian ideograph - - - 2E4174 - 6AA9 - E6AAA9 - East Asian ideograph - - - 2E4670 - 6CD0 - E6B390 - East Asian ideograph - - - 2E4731 - 6C73 - E6B1B3 - East Asian ideograph - - - 2E4739 - 6C67 - E6B1A7 - East Asian ideograph (variant of EACC 224739) - - - 2E4747 - 6D64 - E6B5A4 - East Asian ideograph - - - 2E4873 - 6FA3 - E6BEA3 - East Asian ideograph - - - 2E492F - 6CD9 - E6B399 - East Asian ideograph - - - 2E493B - 6E7C - E6B9BC - East Asian ideograph - - - 2E4A6B - 6EA6 - E6BAA6 - East Asian ideograph - - - 2E4C35 - 6DE5 - E6B7A5 - East Asian ideograph - - - 2E4C7B - 6E86 - E6BA86 - East Asian ideograph - - - 2E4D3D - 6D38 - E6B4B8 - East Asian ideograph - - - 2E4E41 - 7032 - E780B2 - East Asian ideograph - - - 2E4E56 - 9800 - E9A080 - East Asian ideograph - - - 2E4E5D - 6DE0 - E6B7A0 - East Asian ideograph - - - 2E4E72 - 6F74 - E6BDB4 - East Asian ideograph - - - 2E506D - 70B1 - E782B1 - East Asian ideograph - - - 2E525D - 715B - E7859B - East Asian ideograph - - - 2E5452 - 71FE - E787BE - East Asian ideograph - - - 2E5A40 - 73B3 - E78EB3 - East Asian ideograph - - - 2E5A78 - 74A2 - E792A2 - East Asian ideograph - - - 2E5F6F - 75B8 - E796B8 - East Asian ideograph - - - 2E604A - 7690 - E79A90 - East Asian ideograph - - - 2E6060 - 76A1 - E79AA1 - East Asian ideograph - - - 2E624F - 772D - E79CAD - East Asian ideograph - - - 2E625F - 77C1 - E79F81 - East Asian ideograph - - - 2E684E - 8020 - E880A0 - East Asian ideograph - - - 2E686F - 7A19 - E7A899 - East Asian ideograph - - - 2E6B54 - 7B04 - E7AC84 - East Asian ideograph - - - 2E6C26 - 7BE0 - E7AFA0 - East Asian ideograph - - - 2E6C27 - 7B2E - E7ACAE - East Asian ideograph - - - 2E6C3E - 7B59 - E7AD99 - East Asian ideograph - - - 2E6C46 - 7BE6 - E7AFA6 - East Asian ideograph - - - 2E6F35 - 6CD4 - E6B394 - East Asian ideograph - - - 2E6F43 - 9908 - E9A488 - East Asian ideograph - - - 2E7062 - 7D4F - E7B58F - East Asian ideograph - - - 2E715A - 7E27 - E7B8A7 - East Asian ideograph - - - 2E717C - 7D63 - E7B5A3 - East Asian ideograph - - - 2E7328 - 5FAD - E5BEAD - East Asian ideograph - - - 2E735D - 7D56 - E7B596 - East Asian ideograph - - - 2E7374 - 7E89 - E7BA89 - East Asian ideograph - - - 2E742E - 7516 - E79496 - East Asian ideograph - - - 2E7431 - 7F48 - E7BD88 - East Asian ideograph - - - 2E7450 - 7F82 - E7BE82 - East Asian ideograph - - - 2E7451 - 7F58 - E7BD98 - East Asian ideograph - - - 2E765F - 8037 - E880B7 - East Asian ideograph - - - 2E7C2E - 831C - E88C9C - East Asian ideograph - - - 2E7D24 - 83F0 - E88FB0 - East Asian ideograph - - - 2F252D - 6A22 - E6A8A2 - East Asian ideograph - - - 2F252E - 8507 - E89487 - East Asian ideograph - - - 2F2A5A - 868B - E89A8B - East Asian ideograph (unrelated variant of EACC 23293D) - - - 2F2A64 - 87B5 - E89EB5 - East Asian ideograph - - - 2F2A73 - 87CA - E89F8A - East Asian ideograph - - - 2F2D79 - 88B5 - E8A2B5 - East Asian ideograph - - - 2F2F5D - 7E48 - E7B988 - East Asian ideograph - - - 2F312B - 89BB - E8A6BB - East Asian ideograph - - - 2F3143 - 89F5 - E8A7B5 - East Asian ideograph (unrelated variant of EACC 23315E) - - - 2F317D - 8A7E - E8A9BE - East Asian ideograph - - - 2F3363 - 8B1A - E8AC9A - East Asian ideograph - - - 2F3639 - 8C7C - E8B1BC - East Asian ideograph - - - 2F3833 - 8D91 - E8B691 - East Asian ideograph - - - 2F386F - 8DD7 - E8B797 - East Asian ideograph - - - 2F3A5E - 8E6E - E8B9AE - East Asian ideograph - - - 2F3B63 - 5E32 - E5B8B2 - East Asian ideograph - - - 2F3C2D - 8F3C - E8BCBC - East Asian ideograph - - - 2F3D5D - 900E - E9808E - East Asian ideograph - - - 2F4053 - 914F - E9858F - East Asian ideograph - - - 2F4231 - 8019 - E88099 - East Asian ideograph (unrelated variant of EACC 215266) - - - 2F445F - 941A - E9909A - East Asian ideograph - - - 2F4A2E - 90B4 - E982B4 - East Asian ideograph - - - 2F4A4A - 5F8F - E5BE8F - East Asian ideograph - - - 2F5158 - 7CC7 - E7B387 - East Asian ideograph - - - 2F5476 - 9AE1 - E9ABA1 - East Asian ideograph - - - 2F575F - 9ABE - E9AABE - East Asian ideograph - - - 2F585C - 9C51 - E9B191 - East Asian ideograph (unrelated variant of EACC 235945) - - - 2F5870 - 9C1B - E9B09B - East Asian ideograph - - - 2F5973 - 9CEC - E9B3AC - East Asian ideograph - - - 2F5A48 - 9D44 - E9B584 - East Asian ideograph - - - 2F5D3C - 6EF7 - E6BBB7 - East Asian ideograph - - - 2F5D49 - 9EA4 - E9BAA4 - East Asian ideograph - - - 2F5D5C - 730A - E78C8A - East Asian ideograph - - - 2F5E42 - 9EC9 - E9BB89 - East Asian ideograph - - - 2F5E66 - 9B12 - E9AC92 - East Asian ideograph - - - 2F5E7D - 6641 - E69981 - East Asian ideograph - - - 2F5F45 - 86A1 - E89AA1 - East Asian ideograph - - - 333021 - 58F9 - E5A3B9 - East Asian ideograph - - - 33303A - 8FFA - E8BFBA - East Asian ideograph - - - 33304C - 4E79 - E4B9B9 - East Asian ideograph - - - 333051 - 8CB3 - E8B2B3 - East Asian ideograph - - - 333060 - 4EAF - E4BAAF - East Asian ideograph - - - 333066 - 5FC8 - E5BF88 - East Asian ideograph - - - 33306C - 8B90 - E8AE90 - East Asian ideograph - - - 333078 - 5F77 - E5BDB7 - East Asian ideograph - - - 33314C - 5FA0 - E5BEA0 - East Asian ideograph - - - 333240 - 4FFB - E4BFBB - East Asian ideograph - - - 333251 - 5FBA - E5BEBA - East Asian ideograph - - - 33325D - 4FA1 - E4BEA1 - East Asian ideograph - - - 33327A - 5150 - E58590 - East Asian ideograph - - - 333323 - 4E21 - E4B8A1 - East Asian ideograph - - - 33332A - 4E93 - E4BA93 - East Asian ideograph - - - 333330 - 518A - E5868A - East Asian ideograph - - - 33333C - 6C37 - E6B0B7 - East Asian ideograph - - - 333344 - 51DB - E5879B - East Asian ideograph - - - 33334E - 51FE - E587BE - East Asian ideograph - - - 333377 - 5270 - E589B0 - East Asian ideograph - - - 33337B - 52E6 - E58BA6 - East Asian ideograph - - - 333421 - 91FC - E987BC - East Asian ideograph - - - 333423 - 5264 - E589A4 - East Asian ideograph - - - 333428 - 523C - E588BC - East Asian ideograph - - - 333475 - 9628 - E998A8 - East Asian ideograph - - - 33347D - 53C1 - E58F81 - East Asian ideograph - - - 333529 - 53DC - E58F9C - East Asian ideograph - - - 33354E - 608B - E6828B - East Asian ideograph - - - 333556 - 9A03 - E9A883 - East Asian ideograph - - - 33355C - 5449 - E59189 - East Asian ideograph - - - 333564 - 5415 - E59095 - East Asian ideograph - - - 333573 - 8656 - E89996 - East Asian ideograph - - - 333623 - 9F69 - E9BDA9 - East Asian ideograph - - - 33362A - 9B28 - E9ACA8 - East Asian ideograph - - - 333642 - 8A92 - E8AA92 - East Asian ideograph - - - 33365A - 5405 - E59085 - East Asian ideograph - - - 333768 - 8FF4 - E8BFB4 - East Asian ideograph - - - 33386E - 576F - E59DAF - East Asian ideograph - - - 33392F - 9029 - E980A9 - East Asian ideograph - - - 333944 - 5B2D - E5ACAD - East Asian ideograph - - - 333963 - 59C9 - E5A789 - East Asian ideograph - - - 333C21 - 7895 - E7A295 - East Asian ideograph - - - 333C52 - 8CEC - E8B3AC - East Asian ideograph - - - 333D28 - 53A8 - E58EA8 - East Asian ideograph - - - 333D2A - 5E83 - E5BA83 - East Asian ideograph - - - 333D2F - 5E81 - E5BA81 - East Asian ideograph - - - 333D42 - 7D43 - E7B583 - East Asian ideograph - - - 333D48 - 5F3A - E5BCBA - East Asian ideograph - - - 333D4C - 7030 - E780B0 - East Asian ideograph - - - 333D54 - 4EFD - E4BBBD - East Asian ideograph - - - 333D75 - 5FB3 - E5BEB3 - East Asian ideograph - - - 333E7D - 7652 - E79992 - East Asian ideograph - - - 333F22 - 6168 - E685A8 - East Asian ideograph (variant of EACC 213F22) - - - 333F24 - 7718 - E79C98 - East Asian ideograph - - - 333F3F - 51F4 - E587B4 - East Asian ideograph - - - 333F55 - 5B3E - E5ACBE - East Asian ideograph - - - 333F58 - 61F4 - E687B4 - East Asian ideograph - - - 333F5B - 6133 - E684B3 - East Asian ideograph - - - 334045 - 629B - E68A9B - East Asian ideograph - - - 334050 - 62D5 - E68B95 - East Asian ideograph - - - 334131 - 6425 - E690A5 - East Asian ideograph - - - 33417E - 629E - E68A9E - East Asian ideograph - - - 33422A - 62E1 - E68BA1 - East Asian ideograph - - - 33423D - 53CE - E58F8E - East Asian ideograph - - - 334243 - 52B9 - E58AB9 - East Asian ideograph - - - 334244 - 6559 - E69599 - East Asian ideograph - - - 334256 - 6B5B - E6AD9B - East Asian ideograph - - - 334260 - 89D4 - E8A794 - East Asian ideograph - - - 334277 - 65EF - E697AF - East Asian ideograph - - - 33432F - 664B - E6998B - East Asian ideograph - - - 33433E - 95C7 - E99787 - East Asian ideograph - - - 334342 - 7156 - E78596 - East Asian ideograph - - - 334357 - 6702 - E69C82 - East Asian ideograph - - - 334369 - 5932 - E5A4B2 - East Asian ideograph - - - 334425 - 76C3 - E79B83 - East Asian ideograph - - - 334449 - 6144 - E68584 - East Asian ideograph - - - 334527 - 6918 - E6A498 - East Asian ideograph - - - 334550 - 7F47 - E7BD87 - East Asian ideograph - - - 33456D - 826A - E889AA - East Asian ideograph - - - 334621 - 8B99 - E8AE99 - East Asian ideograph - - - 334633 - 6B8B - E6AE8B - East Asian ideograph (variant of EACC 274633) - - - 33463C - 6BBB - E6AEBB - East Asian ideograph - - - 334665 - 6C61 - E6B1A1 - East Asian ideograph - - - 334674 - 76C5 - E79B85 - East Asian ideograph - - - 33467A - 6CA1 - E6B2A1 - East Asian ideograph - - - 334729 - 6E2B - E6B8AB - East Asian ideograph - - - 334730 - 6E5F - E6B99F - East Asian ideograph - - - 334740 - 6D1A - E6B49A - East Asian ideograph - - - 33474A - 6D1F - E6B49F - East Asian ideograph - - - 334755 - 6FEC - E6BFAC - East Asian ideograph - - - 33475E - 6FB9 - E6BEB9 - East Asian ideograph - - - 33475F - 60BD - E682BD - East Asian ideograph - - - 33476F - 6D44 - E6B584 - East Asian ideograph - - - 334770 - 5A6C - E5A9AC - East Asian ideograph - - - 33477B - 904A - E9818A - East Asian ideograph - - - 33483B - 6CDD - E6B39D - East Asian ideograph - - - 33485E - 67D2 - E69F92 - East Asian ideograph - - - 33492E - 6F81 - E6BE81 - East Asian ideograph - - - 33494A - 70D6 - E78396 - East Asian ideograph - - - 334968 - 7133 - E784B3 - East Asian ideograph - - - 33496A - 934A - E98D8A - East Asian ideograph - - - 334A28 - 91BC - E986BC - East Asian ideograph - - - 334A58 - 89DD - E8A79D - East Asian ideograph - - - 334C2C - 754D - E7958D - East Asian ideograph - - - 334C36 - 753B - E794BB - East Asian ideograph (variant of EACC 274C36) - - - 334C37 - 8E6F - E8B9AF - East Asian ideograph - - - 334C3E - 8E08 - E8B888 - East Asian ideograph - - - 334C7B - 767A - E799BA - East Asian ideograph - - - 334E37 - 784E - E7A18E - East Asian ideograph - - - 334E73 - 79A5 - E7A6A5 - East Asian ideograph - - - 334F37 - 5EE9 - E5BBA9 - East Asian ideograph - - - 334F3A - 7A49 - E7A989 - East Asian ideograph - - - 334F59 - 7A93 - E7AA93 - East Asian ideograph - - - 334F5E - 7A91 - E7AA91 - East Asian ideograph - - - 334F71 - 54B2 - E592B2 - East Asian ideograph - - - 33502A - 9257 - E98997 - East Asian ideograph - - - 33502B - 724B - E7898B - East Asian ideograph - - - 335065 - 7A45 - E7A985 - East Asian ideograph - - - 33512E - 7E8D - E7BA8D - East Asian ideograph - - - 33513C - 7D4C - E7B58C - East Asian ideograph - - - 335147 - 7EEE - E7BBAE - East Asian ideograph - - - 33514C - 7DD1 - E7B791 - East Asian ideograph - - - 33515C - 7DAB - E7B6AB - East Asian ideograph - - - 33516B - 7DD0 - E7B790 - East Asian ideograph - - - 33516D - 6374 - E68DB4 - East Asian ideograph - - - 335172 - 7D89 - E7B689 - East Asian ideograph - - - 335223 - 7E8E - E7BA8E - East Asian ideograph - - - 335228 - 94B5 - E992B5 - East Asian ideograph - - - 335230 - 7F6E - E7BDAE - East Asian ideograph (variant of EACC 215230) - - - 335234 - 99E1 - E9A7A1 - East Asian ideograph - - - 335238 - 8989 - E8A689 - East Asian ideograph - - - 33523F - 8B71 - E8ADB1 - East Asian ideograph - - - 335259 - 7E59 - E7B999 - East Asian ideograph - - - 33525B - 71FF - E787BF - East Asian ideograph - - - 335276 - 8061 - E881A1 - East Asian ideograph - - - 335333 - 80BB - E882BB - East Asian ideograph - - - 335347 - 81D9 - E88799 - East Asian ideograph - - - 33537D - 9AD5 - E9AB95 - East Asian ideograph - - - 335445 - 67C1 - E69F81 - East Asian ideograph - - - 335446 - 8221 - E888A1 - East Asian ideograph - - - 335461 - 6CD6 - E6B396 - East Asian ideograph - - - 335561 - 8462 - E891A2 - East Asian ideograph - - - 335568 - 8406 - E89086 - East Asian ideograph - - - 335577 - 8602 - E89882 - East Asian ideograph - - - 335635 - 85AC - E896AC - East Asian ideograph - - - 335652 - 87C1 - E89F81 - East Asian ideograph - - - 33567C - 8671 - E899B1 - East Asian ideograph - - - 33572E - 880E - E8A08E - East Asian ideograph - - - 335738 - 880F - E8A08F - East Asian ideograph - - - 335760 - 88E0 - E8A3A0 - East Asian ideograph - - - 335772 - 8943 - E8A583 - East Asian ideograph - - - 335773 - 88B4 - E8A2B4 - East Asian ideograph - - - 335821 - 97C8 - E99F88 - East Asian ideograph - - - 335830 - 658D - E6968D - East Asian ideograph - - - 335834 - 89E7 - E8A7A7 - East Asian ideograph - - - 335941 - 54D7 - E59397 - East Asian ideograph - - - 335958 - 8C4A - E8B18A - East Asian ideograph - - - 335A7B - 8E28 - E8B8A8 - East Asian ideograph - - - 335B70 - 5EF8 - E5BBB8 - East Asian ideograph - - - 335D23 - 8A76 - E8A9B6 - East Asian ideograph - - - 335D3B - 57DC - E59F9C - East Asian ideograph - - - 335E21 - 9221 - E988A1 - East Asian ideograph - - - 335E2F - 5257 - E58997 - East Asian ideograph - - - 335E3D - 9244 - E98984 - East Asian ideograph - - - 335E42 - 9452 - E99192 - East Asian ideograph - - - 335F34 - 90C4 - E98384 - East Asian ideograph - - - 335F3D - 96B7 - E99AB7 - East Asian ideograph - - - 335F43 - 9D08 - E9B488 - East Asian ideograph - - - 335F49 - 9D70 - E9B5B0 - East Asian ideograph - - - 335F73 - 9759 - E99D99 - East Asian ideograph - - - 336054 - 985B - E9A19B - East Asian ideograph - - - 336058 - 9855 - E9A195 - East Asian ideograph - - - 336062 - 98C3 - E9A383 - East Asian ideograph - - - 33615A - 8EB0 - E8BAB0 - East Asian ideograph - - - 336162 - 9A23 - E9A8A3 - East Asian ideograph - - - 336179 - 9C7B - E9B1BB - East Asian ideograph - - - 33625E - 9EAA - E9BAAA - East Asian ideograph - - - 33625F - 8534 - E894B4 - East Asian ideograph - - - 336275 - 76BC - E79ABC - East Asian ideograph - - - 33627D - 6589 - E69689 - East Asian ideograph - - - 336321 - 6B6F - E6ADAF - East Asian ideograph - - - 33632B - 7ADC - E7AB9C - East Asian ideograph - - - 336B33 - 524F - E5898F - East Asian ideograph - - - 336C6B - 6031 - E680B1 - East Asian ideograph - - - 337345 - 9F67 - E9BDA7 - East Asian ideograph - - - 342453 - 5CBD - E5B2BD - East Asian ideograph - - - 343875 - 5FDE - E5BF9E - East Asian ideograph - - - 343A5B - 572C - E59CAC - East Asian ideograph - - - 343E38 - 7BDA - E7AF9A - East Asian ideograph - - - 344138 - 8022 - E880A2 - East Asian ideograph - - - 344177 - 8264 - E889A4 - East Asian ideograph - - - 34492F - 6D34 - E6B4B4 - East Asian ideograph - - - 345175 - 7162 - E785A2 - East Asian ideograph - - - 345452 - 7118 - E78498 - East Asian ideograph - - - 345D6B - 756D - E795AD - East Asian ideograph - - - 345E3B - 80AC - E882AC - East Asian ideograph - - - 345E47 - 75FE - E797BE - East Asian ideograph - - - 346126 - 6900 - E6A480 - East Asian ideograph - - - 346622 - 589D - E5A29D - East Asian ideograph - - - 34682A - 7C7C - E7B1BC - East Asian ideograph - - - 34715A - 7E1A - E7B89A - East Asian ideograph - - - 347431 - 58DC - E5A39C - East Asian ideograph - - - 34782A - 90C5 - E98385 - East Asian ideograph - - - 347D24 - 83C7 - E88F87 - East Asian ideograph - - - 35344D - 8B5B - E8AD9B - East Asian ideograph - - - 35347B - 8B2D - E8ACAD - East Asian ideograph - - - 354156 - 91BE - E986BE - East Asian ideograph - - - 355053 - 98C8 - E9A388 - East Asian ideograph - - - 355739 - 9C76 - E9B1B6 - East Asian ideograph - - - 355D5C - 8C8E - E8B28E - East Asian ideograph - - - 355E76 - 82BE - E88ABE - East Asian ideograph - - - 39302D - 534B - E58D8B - East Asian ideograph - - - 39303A - 5EFC - E5BBBC - East Asian ideograph - - - 39304C - 4E81 - E4BA81 - East Asian ideograph - - - 393052 - 65BC - E696BC - East Asian ideograph - - - 393054 - 4F0D - E4BC8D - East Asian ideograph - - - 393078 - 9AE3 - E9ABA3 - East Asian ideograph - - - 393246 - 4F1D - E4BC9D - East Asian ideograph - - - 393428 - 5227 - E588A7 - East Asian ideograph - - - 393439 - 61C3 - E68783 - East Asian ideograph - - - 39345B - 965E - E9999E - East Asian ideograph - - - 393460 - 604A - E6818A - East Asian ideograph - - - 393573 - 5611 - E59891 - East Asian ideograph - - - 393577 - 9FA2 - E9BEA2 - East Asian ideograph - - - 39365A - 8AE0 - E8ABA0 - East Asian ideograph - - - 39365E - 559E - E5969E - East Asian ideograph - - - 393770 - 56F2 - E59BB2 - East Asian ideograph - - - 393944 - 59B3 - E5A6B3 - East Asian ideograph - - - 393B39 - 5BF3 - E5AFB3 - East Asian ideograph - - - 393B6E - 5C97 - E5B297 - East Asian ideograph - - - 393B78 - 5CC4 - E5B384 - East Asian ideograph (duplicate simplified) - - - 393C52 - 8D26 - E8B4A6 - East Asian ideograph - - - 393D6F - 8907 - E8A487 - East Asian ideograph - - - 393E47 - 8CC9 - E8B389 - East Asian ideograph - - - 393E4C - 6142 - E68582 - East Asian ideograph - - - 393E61 - 60AA - E682AA - East Asian ideograph - - - 393E7D - 7609 - E79889 - East Asian ideograph - - - 394022 - 6443 - E69183 - East Asian ideograph - - - 394042 - 646D - E691AD - East Asian ideograph - - - 39417C - 62E0 - E68BA0 - East Asian ideograph - - - 394243 - 4FF2 - E4BFB2 - East Asian ideograph - - - 39424F - 5554 - E59594 - East Asian ideograph - - - 394330 - 6644 - E69984 - East Asian ideograph - - - 394444 - 8988 - E8A688 - East Asian ideograph - - - 39447D - 6AC2 - E6AB82 - East Asian ideograph - - - 39456D - 826B - E889AB - East Asian ideograph - - - 394634 - 6B96 - E6AE96 - East Asian ideograph (variant of EACC 214634) - - - 394735 - 6C3E - E6B0BE - East Asian ideograph - - - 39476F - 51C0 - E58780 - East Asian ideograph - - - 39483B - 9061 - E981A1 - East Asian ideograph - - - 394928 - 6D5C - E6B59C - East Asian ideograph - - - 394944 - 6B12 - E6AC92 - East Asian ideograph - - - 394956 - 792E - E7A4AE - East Asian ideograph - - - 394A60 - 9AE6 - E9ABA6 - East Asian ideograph - - - 394C2D - 7546 - E79586 - East Asian ideograph - - - 395050 - 7BED - E7AFAD - East Asian ideograph - - - 39505B - 9B3B - E9ACBB - East Asian ideograph - - - 395063 - 9939 - E9A4B9 - East Asian ideograph - - - 395179 - 7D75 - E7B5B5 - East Asian ideograph - - - 395230 - 5BD8 - E5AF98 - East Asian ideograph - - - 39525B - 66DC - E69B9C - East Asian ideograph - - - 39526B - 7094 - E78294 - East Asian ideograph - - - 395477 - 85A6 - E896A6 - East Asian ideograph - - - 39553C - 5D0B - E5B48B - East Asian ideograph - - - 395564 - 6726 - E69CA6 - East Asian ideograph - - - 395568 - 83DD - E88F9D - East Asian ideograph - - - 395577 - 854B - E8958B - East Asian ideograph - - - 39563C - 56CC - E59B8C - East Asian ideograph - - - 395643 - 4E55 - E4B995 - East Asian ideograph - - - 395652 - 87A1 - E89EA1 - East Asian ideograph - - - 395773 - 7DAF - E7B6AF - East Asian ideograph - - - 395821 - 97E4 - E99FA4 - East Asian ideograph - - - 395829 - 69FB - E6A7BB - East Asian ideograph - - - 39593F - 8A3C - E8A8BC - East Asian ideograph - - - 395A2F - 58F2 - E5A3B2 - East Asian ideograph - - - 395A36 - 983C - E9A0BC - East Asian ideograph - - - 395D23 - 91BB - E986BB - East Asian ideograph - - - 395E2F - 5277 - E589B7 - East Asian ideograph - - - 395E3D - 9295 - E98A95 - East Asian ideograph - - - 395E42 - 9274 - E989B4 - East Asian ideograph - - - 395E6F - 7A7D - E7A9BD - East Asian ideograph - - - 395E71 - 5742 - E59D82 - East Asian ideograph - - - 395F49 - 5F6B - E5BDAB - East Asian ideograph - - - 395F68 - 8987 - E8A687 - East Asian ideograph - - - 396074 - 55B0 - E596B0 - East Asian ideograph - - - 396167 - 9B2A - E9ACAA - East Asian ideograph - - - 396179 - 5C20 - E5B0A0 - East Asian ideograph - - - 396223 - 9BFD - E9AFBD - East Asian ideograph (variant of EACC 216223) - - - 396B2F - 521F - E5889F - East Asian ideograph - - - 396B33 - 5259 - E58999 - East Asian ideograph - - - 396C6B - 60A4 - E682A4 - East Asian ideograph - - - 3A284C - 53A9 - E58EA9 - East Asian ideograph (variant of EACC 4C284C) - - - 3A2F7C - 64C0 - E69380 - East Asian ideograph - - - 3A3B7D - 67B1 - E69EB1 - East Asian ideograph - - - 3A4034 - 6855 - E6A195 - East Asian ideograph - - - 3A6A7C - 7BEA - E7AFAA - East Asian ideograph - - - 3A787D - 80FC - E883BC - East Asian ideograph - - - 3A7970 - 81D5 - E88795 - East Asian ideograph - - - 3B2D44 - 8842 - E8A182 - East Asian ideograph - - - 3B3922 - 8DB5 - E8B6B5 - East Asian ideograph - - - 3F304C - 5E79 - E5B9B9 - East Asian ideograph - - - 3F3078 - 5023 - E580A3 - East Asian ideograph - - - 3F347D - 84E1 - E893A1 - East Asian ideograph - - - 3F3573 - 8B3C - E8ACBC - East Asian ideograph - - - 3F377B - 784E - E7A18E - East Asian ideograph (Version J extension) - - - 3F3D6F - 8986 - E8A686 - East Asian ideograph - - - 3F3E47 - 5379 - E58DB9 - East Asian ideograph - - - 3F3F24 - 614E - E6858E - East Asian ideograph - - - 3F404F - 638A - E68E8A - East Asian ideograph - - - 3F424F - 542F - E590AF - East Asian ideograph (variant of EACC 27424F) - - - 3F4472 - 7881 - E7A281 - East Asian ideograph - - - 3F456D - 8263 - E889A3 - East Asian ideograph - - - 3F4621 - 9A69 - E9A9A9 - East Asian ideograph - - - 3F4629 - 4E97 - E4BA97 - East Asian ideograph - - - 3F462B - 5E30 - E5B8B0 - East Asian ideograph - - - 3F476F - 51C8 - E58788 - East Asian ideograph - - - 3F4926 - 6E08 - E6B888 - East Asian ideograph - - - 3F4956 - 7832 - E7A0B2 - East Asian ideograph - - - 3F4A28 - 9DF0 - E9B7B0 - East Asian ideograph - - - 3F4A60 - 7266 - E789A6 - East Asian ideograph - - - 3F4C3C - 7582 - E79682 - East Asian ideograph - - - 3F516D - 6403 - E69083 - East Asian ideograph - - - 3F5564 - 61DE - E6879E - East Asian ideograph - - - 3F5631 - 517F - E585BF - East Asian ideograph - - - 3F5959 - 8276 - E889B6 - East Asian ideograph - - - 3F5E60 - 9586 - E99686 - East Asian ideograph - - - 3F5F34 - 9699 - E99A99 - East Asian ideograph - - - 3F5F35 - 6B9E - E6AE9E - East Asian ideograph - - - 3F5F49 - 7431 - E790B1 - East Asian ideograph - - - 3F614C - 99C5 - E9A785 - East Asian ideograph - - - 3F6179 - 5C1F - E5B09F - East Asian ideograph - - - 45304C - 69A6 - E6A6A6 - East Asian ideograph - - - 453051 - 8D30 - E8B4B0 - East Asian ideograph - - - 453336 - 5B82 - E5AE82 - East Asian ideograph - - - 453421 - 5271 - E589B1 - East Asian ideograph - - - 453666 - 5AD0 - E5AB90 - East Asian ideograph - - - 453755 - 56AE - E59AAE - East Asian ideograph - - - 453768 - 5EFB - E5BBBB - East Asian ideograph - - - 453D53 - 5F66 - E5BDA6 - East Asian ideograph - - - 453F6D - 52E0 - E58BA0 - East Asian ideograph - - - 454146 - 63DB - E68F9B - East Asian ideograph - - - 45456D - 6A10 - E6A890 - East Asian ideograph - - - 45462B - 7688 - E79A88 - East Asian ideograph - - - 45465B - 6C2F - E6B0AF - East Asian ideograph - - - 454738 - 6CFA - E6B3BA - East Asian ideograph - - - 454774 - 6E15 - E6B895 - East Asian ideograph - - - 454B7A - 7523 - E794A3 - East Asian ideograph - - - 454C3C - 7589 - E79689 - East Asian ideograph - - - 454E43 - 788C - E7A28C - East Asian ideograph (variant of EACC 214E43) - - - 454E75 - 7984 - E7A684 - East Asian ideograph - - - 454F45 - 9896 - E9A296 - East Asian ideograph - - - 455122 - 7D0D - E7B48D - East Asian ideograph - - - 455164 - 53BF - E58EBF - East Asian ideograph - - - 455564 - 6FDB - E6BF9B - East Asian ideograph (Version J extension) - - - 45564B - 865E - E8999E - East Asian ideograph (variant of EACC 21564B) - - - 455746 - 672F - E69CAF - East Asian ideograph - - - 455837 - 8BA0 - E8AEA0 - East Asian ideograph - - - 455847 - 8A25 - E8A8A5 - East Asian ideograph (variant of EACC 215847) - - - 455D3E - 9485 - E99285 - East Asian ideograph - - - 455E21 - 953A - E994BA - East Asian ideograph - - - 455E60 - 95EB - E997AB - East Asian ideograph (Version J extension) - - - 455F35 - 9668 - E999A8 - East Asian ideograph (Version J extension) - - - 456036 - 97FF - E99FBF - East Asian ideograph - - - 45604E - 984F - E9A18F - East Asian ideograph - - - 456064 - 9963 - E9A5A3 - East Asian ideograph - - - 45606B - 98F0 - E9A3B0 - East Asian ideograph - - - 456076 - 9980 - E9A680 - East Asian ideograph - - - 456260 - 5E7A - E5B9BA - East Asian ideograph - - - 456324 - 9F61 - E9BDA1 - East Asian ideograph - - - 46284C - 5ED0 - E5BB90 - East Asian ideograph - - - 466074 - 76B2 - E79AB2 - East Asian ideograph - - - 472C4D - 8801 - E8A081 - East Asian ideograph (variant of EACC 232C4D) - - - 473422 - 8C2A - E8B0AA - East Asian ideograph - - - 47347B - 8C2B - E8B0AB - East Asian ideograph - - - 473539 - 8B9E - E8AE9E - East Asian ideograph - - - 47366F - 8D4D - E8B58D - East Asian ideograph - - - 474236 - 949A - E9929A - East Asian ideograph - - - 474270 - 94BC - E992BC - East Asian ideograph - - - 474931 - 95F6 - E997B6 - East Asian ideograph - - - 474E5C - 97DE - E99F9E - East Asian ideograph (variant of EACC 234E5C) - - - 475222 - 9957 - E9A597 - East Asian ideograph - - - 47577A - 9BD6 - E9AF96 - East Asian ideograph (variant of EACC 23577A) - - - 47594E - 9C3A - E9B0BA - East Asian ideograph - - - 4B3021 - 58F1 - E5A3B1 - East Asian ideograph - - - 4B3050 - 4E8A - E4BA8A - East Asian ideograph - - - 4B3051 - 5F10 - E5BC90 - East Asian ideograph - - - 4B3052 - 6275 - E689B5 - East Asian ideograph - - - 4B3057 - 4E99 - E4BA99 - East Asian ideograph - - - 4B306C - 96E0 - E99BA0 - East Asian ideograph - - - 4B306E - 4EE4 - E4BBA4 - East Asian ideograph (variant of EACC 21306E) - - - 4B3072 - 4EED - E4BBAD - East Asian ideograph - - - 4B312D - 4F2B - E4BCAB - East Asian ideograph - - - 4B3130 - 4FAB - E4BEAB - East Asian ideograph - - - 4B3144 - 4F36 - E4BCB6 - East Asian ideograph (variant of EACC 213144) - - - 4B314C - 5F95 - E5BE95 - East Asian ideograph - - - 4B316A - 723C - E788BC - East Asian ideograph - - - 4B3178 - 5029 - E580A9 - East Asian ideograph (variant of EACC 213178) - - - 4B317C - 5024 - E580A4 - East Asian ideograph - - - 4B3231 - 4EEE - E4BBAE - East Asian ideograph - - - 4B3248 - 50B2 - E582B2 - East Asian ideograph - - - 4B324E - 50E7 - E583A7 - East Asian ideograph (variant of EACC 21324E) - - - 4B325F - 50BB - E582BB - East Asian ideograph - - - 4B3321 - 5185 - E58685 - East Asian ideograph - - - 4B3322 - 5168 - E585A8 - East Asian ideograph (variant of EACC 213322) - - - 4B3324 - 634C - E68D8C - East Asian ideograph (variant of EACC 2D3324) - - - 4B333E - 51B7 - E586B7 - East Asian ideograph (variant of EACC 21333E) - - - 4B3351 - 5204 - E58884 - East Asian ideograph - - - 4B3354 - 82C5 - E88B85 - East Asian ideograph - - - 4B3355 - 520B - E5888B - East Asian ideograph - - - 4B335B - 522B - E588AB - East Asian ideograph - - - 4B3421 - 5263 - E589A3 - East Asian ideograph - - - 4B3435 - 52B4 - E58AB4 - East Asian ideograph - - - 4B3436 - 52F2 - E58BB2 - East Asian ideograph - - - 4B346B - 5DF5 - E5B7B5 - East Asian ideograph - - - 4B3474 - 537F - E58DBF - East Asian ideograph (variant of EACC 213474) - - - 4B356A - 55EC - E597AC - East Asian ideograph - - - 4B357B - 54CC - E5938C - East Asian ideograph - - - 4B3622 - 8C18 - E8B098 - East Asian ideograph - - - 4B3642 - 8BF6 - E8AFB6 - East Asian ideograph - - - 4B3666 - 5A1A - E5A89A - East Asian ideograph - - - 4B3668 - 5358 - E58D98 - East Asian ideograph - - - 4B372C - 5606 - E59886 - East Asian ideograph - - - 4B372F - 5C1C - E5B09C - East Asian ideograph - - - 4B3749 - 5668 - E599A8 - East Asian ideograph (variant of EACC 213749) - - - 4B374C - 5662 - E599A2 - East Asian ideograph - - - 4B3758 - 56A5 - E59AA5 - East Asian ideograph (variant of EACC 213758) - - - 4B375A - 53B3 - E58EB3 - East Asian ideograph - - - 4B3768 - 56D8 - E59B98 - East Asian ideograph - - - 4B376F - 56FD - E59BBD - East Asian ideograph - - - 4B3772 - 5186 - E58686 - East Asian ideograph - - - 4B3773 - 56E3 - E59BA3 - East Asian ideograph - - - 4B3774 - 56F3 - E59BB3 - East Asian ideograph - - - 4B382E - 57C0 - E59F80 - East Asian ideograph - - - 4B3850 - 5861 - E5A1A1 - East Asian ideograph (variant of EACC 213850) - - - 4B3853 - 586D - E5A1AD - East Asian ideograph - - - 4B385E - 5897 - E5A297 - East Asian ideograph - - - 4B3864 - 58C7 - E5A387 - East Asian ideograph - - - 4B3869 - 5727 - E59CA7 - East Asian ideograph - - - 4B386C - 5841 - E5A181 - East Asian ideograph - - - 4B3870 - 58CC - E5A38C - East Asian ideograph - - - 4B3871 - 57BB - E59EBB - East Asian ideograph - - - 4B387D - 591B - E5A49B - East Asian ideograph - - - 4B3938 - 5942 - E5A582 - East Asian ideograph - - - 4B393A - 5F09 - E5BC89 - East Asian ideograph - - - 4B393E - 5965 - E5A5A5 - East Asian ideograph - - - 4B393F - 5333 - E58CB3 - East Asian ideograph - - - 4B3974 - 5B22 - E5ACA2 - East Asian ideograph - - - 4B397B - 5A2F - E5A8AF - East Asian ideograph - - - 4B3A2F - 805F - E8819F - East Asian ideograph - - - 4B3A47 - 88CA - E8A38A - East Asian ideograph - - - 4B3A49 - 5B37 - E5ACB7 - East Asian ideograph - - - 4B3B22 - 51A6 - E586A6 - East Asian ideograph - - - 4B3B31 - 5B9F - E5AE9F - East Asian ideograph - - - 4B3B37 - 51A9 - E586A9 - East Asian ideograph - - - 4B3B43 - 5BFE - E5AFBE - East Asian ideograph - - - 4B3B52 - 8132 - E884B2 - East Asian ideograph - - - 4B3B61 - 5C64 - E5B1A4 - East Asian ideograph - - - 4B3B67 - 6B67 - E6ADA7 - East Asian ideograph - - - 4B3B79 - 5D8C - E5B68C - East Asian ideograph - - - 4B3B7E - 5D15 - E5B495 - East Asian ideograph - - - 4B3C21 - 5D5C - E5B59C - East Asian ideograph - - - 4B3C23 - 5CE5 - E5B3A5 - East Asian ideograph - - - 4B3C2B - 67C3 - E69F83 - East Asian ideograph (Version J extension) - - - 4B3C2F - 5DBA - E5B6BA - East Asian ideograph - - - 4B3C32 - 5DD3 - E5B793 - East Asian ideograph - - - 4B3C33 - 5DCC - E5B78C - East Asian ideograph - - - 4B3C38 - 949C - E9929C - East Asian ideograph - - - 4B3C53 - 5E2F - E5B8AF - East Asian ideograph - - - 4B3C5E - 5E64 - E5B9A4 - East Asian ideograph - - - 4B3D24 - 53A6 - E58EA6 - East Asian ideograph - - - 4B3D27 - 5EC3 - E5BB83 - East Asian ideograph - - - 4B3D2A - 5EE3 - E5BBA3 - East Asian ideograph - - - 4B3D2C - 53B0 - E58EB0 - East Asian ideograph - - - 4B3D2F - 5EF0 - E5BBB0 - East Asian ideograph - - - 4B3D4B - 5F3E - E5BCBE - East Asian ideograph - - - 4B3D4C - 5F25 - E5BCA5 - East Asian ideograph (variant of EACC 273D4C) - - - 4B3D5C - 5F83 - E5BE83 - East Asian ideograph - - - 4B3D67 - 5F84 - E5BE84 - East Asian ideograph (variant of EACC 273D67) - - - 4B3E2A - 6035 - E680B5 - East Asian ideograph - - - 4B3E40 - 6046 - E68186 - East Asian ideograph - - - 4B3E5B - 60C5 - E68385 - East Asian ideograph - - - 4B3E7E - 60A9 - E682A9 - East Asian ideograph - - - 4B3F40 - 618E - E6868E - East Asian ideograph (variant of EACC 213F40) - - - 4B3F4A - 5FDC - E5BF9C - East Asian ideograph - - - 4B3F4B - 601C - E6809C - East Asian ideograph (variant of EACC 273F4B) - - - 4B3F50 - 61CA - E6878A - East Asian ideograph (variant of EACC 213F50) - - - 4B3F51 - 61D1 - E68791 - East Asian ideograph - - - 4B3F53 - 61F2 - E687B2 - East Asian ideograph - - - 4B3F74 - 623B - E688BB - East Asian ideograph - - - 4B403D - 62DD - E68B9D - East Asian ideograph - - - 4B4046 - 629C - E68A9C - East Asian ideograph - - - 4B4049 - 62D0 - E68B90 - East Asian ideograph - - - 4B4053 - 627A - E689BA - East Asian ideograph - - - 4B4066 - 62F4 - E68BB4 - East Asian ideograph - - - 4B412A - 6323 - E68CA3 - East Asian ideograph - - - 4B4135 - 6368 - E68DA8 - East Asian ideograph - - - 4B4146 - 6362 - E68DA2 - East Asian ideograph - - - 4B4147 - 633F - E68CBF - East Asian ideograph - - - 4B4235 - 6442 - E69182 - East Asian ideograph - - - 4B4236 - 643A - E690BA - East Asian ideograph - - - 4B423A - 64B9 - E692B9 - East Asian ideograph - - - 4B4339 - 6674 - E699B4 - East Asian ideograph - - - 4B4347 - 66A8 - E69AA8 - East Asian ideograph - - - 4B434D - 663F - E698BF - East Asian ideograph - - - 4B4352 - 66F5 - E69BB5 - East Asian ideograph - - - 4B4358 - 66FD - E69BBD - East Asian ideograph - - - 4B442D - 67A9 - E69EA9 - East Asian ideograph - - - 4B4444 - 8988 - E8A688 - East Asian ideograph (Version J extension) - - - 4B4456 - 6813 - E6A093 - East Asian ideograph - - - 4B4476 - 685F - E6A19F - East Asian ideograph - - - 4B4534 - 6994 - E6A694 - East Asian ideograph (variant of EACC 214534) - - - 4B4537 - 6804 - E6A084 - East Asian ideograph - - - 4B4544 - 69D8 - E6A798 - East Asian ideograph - - - 4B4545 - 6982 - E6A682 - East Asian ideograph - - - 4B4553 - 6955 - E6A595 - East Asian ideograph - - - 4B4556 - 6A2A - E6A8AA - East Asian ideograph - - - 4B4559 - 9792 - E99E92 - East Asian ideograph - - - 4B4561 - 691C - E6A49C - East Asian ideograph - - - 4B4569 - 6A71 - E6A9B1 - East Asian ideograph - - - 4B456C - 6ADB - E6AB9B - East Asian ideograph (variant of EACC 21456C) - - - 4B456D - 823B - E888BB - East Asian ideograph - - - 4B456F - 685C - E6A19C - East Asian ideograph - - - 4B4570 - 6A29 - E6A8A9 - East Asian ideograph - - - 4B4621 - 6B53 - E6AD93 - East Asian ideograph - - - 4B462A - 6B74 - E6ADB4 - East Asian ideograph - - - 4B462E - 6B81 - E6AE81 - East Asian ideograph - - - 4B4638 - 6BB1 - E6AEB1 - East Asian ideograph - - - 4B4655 - 6C17 - E6B097 - East Asian ideograph - - - 4B465A - 6C32 - E6B0B2 - East Asian ideograph - - - 4B4676 - 6C89 - E6B289 - East Asian ideograph - - - 4B4741 - 51BD - E586BD - East Asian ideograph - - - 4B4759 - 6D99 - E6B699 - East Asian ideograph - - - 4B4761 - 6E05 - E6B885 - East Asian ideograph - - - 4B4767 - 6DB5 - E6B6B5 - East Asian ideograph (variant of EACC 214767) - - - 4B476C - 51C5 - E58785 - East Asian ideograph - - - 4B4835 - 6DA3 - E6B6A3 - East Asian ideograph - - - 4B4846 - 78C6 - E7A386 - East Asian ideograph - - - 4B484A - 6E13 - E6B893 - East Asian ideograph - - - 4B484B - 51D6 - E58796 - East Asian ideograph - - - 4B484C - 6F91 - E6BE91 - East Asian ideograph - - - 4B4857 - 6F22 - E6BCA2 - East Asian ideograph - - - 4B4858 - 6E80 - E6BA80 - East Asian ideograph - - - 4B485F - 6EDE - E6BB9E - East Asian ideograph (variant of EACC 27485F) - - - 4B4866 - 6E89 - E6BA89 - East Asian ideograph - - - 4B4874 - 6FF3 - E6BFB3 - East Asian ideograph - - - 4B4921 - 6CA2 - E6B2A2 - East Asian ideograph - - - 4B4925 - 6FB3 - E6BEB3 - East Asian ideograph (variant of EACC 214925) - - - 4B492B - 6FEB - E6BFAB - East Asian ideograph - - - 4B492E - 6E0B - E6B88B - East Asian ideograph - - - 4B4931 - 6E16 - E6B896 - East Asian ideograph - - - 4B4937 - 56A0 - E59AA0 - East Asian ideograph - - - 4B4940 - 6F45 - E6BD85 - East Asian ideograph - - - 4B4947 - 7AC3 - E7AB83 - East Asian ideograph - - - 4B496A - 932C - E98CAC - East Asian ideograph - - - 4B496B - 83F8 - E88FB8 - East Asian ideograph - - - 4B4973 - 7115 - E78495 - East Asian ideograph - - - 4B4975 - 6427 - E690A7 - East Asian ideograph - - - 4B4977 - 7188 - E78688 - East Asian ideograph - - - 4B4A2E - 55B6 - E596B6 - East Asian ideograph - - - 4B4A38 - 71D7 - E78797 - East Asian ideograph - - - 4B4A3E - 7235 - E788B5 - East Asian ideograph - - - 4B4A45 - 5C13 - E5B093 - East Asian ideograph - - - 4B4A62 - 72A0 - E78AA0 - East Asian ideograph - - - 4B4A74 - 731C - E78C9C - East Asian ideograph (variant of EACC 214A74) - - - 4B4A78 - 72F0 - E78BB0 - East Asian ideograph - - - 4B4B2B - 7363 - E78DA3 - East Asian ideograph - - - 4B4B2C - 731F - E78C9F - East Asian ideograph - - - 4B4B3E - 73B2 - E78EB2 - East Asian ideograph (variant of EACC 214B3E) - - - 4B4B63 - 749C - E7929C - East Asian ideograph - - - 4B4B71 - 7F3E - E7BCBE - East Asian ideograph (variant of EACC 2D4B71) - - - 4B4B77 - 4EC0 - E4BB80 - East Asian ideograph - - - 4B4C36 - 7575 - E795B5 - East Asian ideograph - - - 4B4C3C - 7573 - E795B3 - East Asian ideograph - - - 4B4C51 - 75CA - E7978A - East Asian ideograph - - - 4B4C5B - 75F3 - E797B3 - East Asian ideograph - - - 4B4C67 - 761F - E7989F - East Asian ideograph (variant of EACC 214C67) - - - 4B4C79 - 7672 - E799B2 - East Asian ideograph - - - 4B4D41 - 862F - E898AF - East Asian ideograph - - - 4B4D45 - 76F4 - E79BB4 - East Asian ideograph (variant of EACC 214D45) - - - 4B4D56 - 8846 - E8A186 - East Asian ideograph - - - 4B4D59 - 775B - E79D9B - East Asian ideograph (variant of EACC 214D59) - - - 4B4D73 - 66B8 - E69AB8 - East Asian ideograph - - - 4B4D7B - 77D7 - E79F97 - East Asian ideograph (variant of EACC 214D7B) - - - 4B4E21 - 7B36 - E7ACB6 - East Asian ideograph - - - 4B4E37 - 7814 - E7A094 - East Asian ideograph - - - 4B4E39 - 5CFA - E5B3BA - East Asian ideograph - - - 4B4E56 - 78FA - E7A3BA - East Asian ideograph - - - 4B4E5B - 783F - E7A0BF - East Asian ideograph - - - 4B4E67 - 79D8 - E7A798 - East Asian ideograph - - - 4B4E7B - 7985 - E7A685 - East Asian ideograph (variant of EACC 274E7B) - - - 4B4F29 - 7A50 - E7A990 - East Asian ideograph - - - 4B4F3C - 79F0 - E7A7B0 - East Asian ideograph (variant of EACC 274F3C) - - - 4B4F43 - 7A32 - E7A8B2 - East Asian ideograph - - - 4B4F4C - 7A4F - E7A98F - East Asian ideograph - - - 4B4F7B - 7B7A - E7ADBA - East Asian ideograph - - - 4B5036 - 7C14 - E7B094 - East Asian ideograph - - - 4B503B - 7C12 - E7B092 - East Asian ideograph - - - 4B5044 - 7C27 - E7B0A7 - East Asian ideograph (variant of EACC 215044) - - - 4B5052 - 7C56 - E7B196 - East Asian ideograph - - - 4B5061 - 7CBE - E7B2BE - East Asian ideograph - - - 4B506C - 7CAB - E7B2AB - East Asian ideograph - - - 4B513B - 7CF8 - E7B3B8 - East Asian ideograph - - - 4B5154 - 7DF4 - E7B7B4 - East Asian ideograph - - - 4B515A - 7E01 - E7B881 - East Asian ideograph - - - 4B5164 - 770C - E79C8C - East Asian ideograph - - - 4B516A - 7EF7 - E7BBB7 - East Asian ideograph - - - 4B516D - 7DCF - E7B78F - East Asian ideograph - - - 4B516E - 7E26 - E7B8A6 - East Asian ideograph - - - 4B5176 - 7E04 - E7B884 - East Asian ideograph - - - 4B5179 - 7F0B - E7BC8B - East Asian ideograph - - - 4B517E - 7E92 - E7BA92 - East Asian ideograph - - - 4B5221 - 7D9A - E7B69A - East Asian ideograph - - - 4B5223 - 7E4A - E7B98A - East Asian ideograph - - - 4B5227 - 6B20 - E6ACA0 - East Asian ideograph - - - 4B522B - 7F36 - E7BCB6 - East Asian ideograph - - - 4B5238 - 7F87 - E7BE87 - East Asian ideograph - - - 4B523E - 7F9A - E7BE9A - East Asian ideograph (variant of EACC 21523E) - - - 4B5247 - 7FAE - E7BEAE - East Asian ideograph - - - 4B524E - 7FCE - E7BF8E - East Asian ideograph - - - 4B525A - 7FFA - E7BFBA - East Asian ideograph - - - 4B525B - 66DC - E69B9C - East Asian ideograph (variant of EACC 39525B) - - - 4B525C - 8002 - E88082 - East Asian ideograph - - - 4B526E - 8046 - E88186 - East Asian ideograph (variant of EACC 21526E) - - - 4B5277 - 8068 - E881A8 - East Asian ideograph - - - 4B527C - 8080 - E88280 - East Asian ideograph - - - 4B533B - 695C - E6A59C - East Asian ideograph - - - 4B5361 - 89D2 - E8A792 - East Asian ideograph (duplicate simplified) - - - 4B5365 - 8133 - E884B3 - East Asian ideograph - - - 4B537D - 9ACC - E9AB8C - East Asian ideograph - - - 4B5422 - 81D3 - E88793 - East Asian ideograph - - - 4B5428 - 81ED - E887AD - East Asian ideograph (variant of EACC 215428) - - - 4B5434 - 6319 - E68C99 - East Asian ideograph - - - 4B5437 - 820E - E8888E - East Asian ideograph - - - 4B546D - 82D3 - E88B93 - East Asian ideograph (variant of EACC 21546D) - - - 4B5521 - 8332 - E88CB2 - East Asian ideograph - - - 4B552C - 8392 - E88E92 - East Asian ideograph - - - 4B553A - 83C1 - E88F81 - East Asian ideograph (variant of EACC 21553A) - - - 4B553F - 83BD - E88EBD - East Asian ideograph (variant of EACC 21553F) - - - 4B5542 - 8420 - E890A0 - East Asian ideograph - - - 4B5564 - 77C7 - E79F87 - East Asian ideograph - - - 4B5629 - 85CD - E8978D - East Asian ideograph - - - 4B562B - 8535 - E894B5 - East Asian ideograph - - - 4B5631 - 82B8 - E88AB8 - East Asian ideograph - - - 4B5632 - 7C54 - E7B194 - East Asian ideograph - - - 4B563A - 82A6 - E88AA6 - East Asian ideograph (variant of EACC 27563A) - - - 4B563F - 6A98 - E6AA98 - East Asian ideograph - - - 4B5647 - 51E6 - E587A6 - East Asian ideograph - - - 4B566A - 8708 - E89C88 - East Asian ideograph (variant of EACC 21566A) - - - 4B5671 - 873B - E89CBB - East Asian ideograph (variant of EACC 215671) - - - 4B5724 - 86CD - E89B8D - East Asian ideograph - - - 4B5736 - 877F - E89DBF - East Asian ideograph - - - 4B5740 - 8827 - E8A0A7 - East Asian ideograph - - - 4B5746 - 8853 - E8A193 - East Asian ideograph - - - 4B576C - 523E - E588BE - East Asian ideograph - - - 4B576F - 8910 - E8A490 - East Asian ideograph (variant of EACC 21576F) - - - 4B5773 - 7ED4 - E7BB94 - East Asian ideograph - - - 4B577E - 7E7F - E7B9BF - East Asian ideograph - - - 4B5824 - 897E - E8A5BE - East Asian ideograph - - - 4B5826 - 8983 - E8A683 - East Asian ideograph (variant of EACC 215826) - - - 4B5830 - 899A - E8A69A - East Asian ideograph - - - 4B5832 - 89B3 - E8A6B3 - East Asian ideograph - - - 4B5861 - 4F89 - E4BE89 - East Asian ideograph - - - 4B5871 - 8AA4 - E8AAA4 - East Asian ideograph - - - 4B587A - 8ACB - E8AB8B - East Asian ideograph - - - 4B5936 - 8B20 - E8ACA0 - East Asian ideograph - - - 4B5946 - 8A33 - E8A8B3 - East Asian ideograph - - - 4B594A - 8AAD - E8AAAD - East Asian ideograph - - - 4B594B - 5909 - E5A489 - East Asian ideograph - - - 4B5959 - 8273 - E889B3 - East Asian ideograph - - - 4B5963 - 734F - E78D8F - East Asian ideograph - - - 4B5964 - 72E2 - E78BA2 - East Asian ideograph - - - 4B5973 - 8D2E - E8B4AE - East Asian ideograph - - - 4B5A23 - 621D - E6889D - East Asian ideograph - - - 4B5A31 - 8CCE - E8B38E - East Asian ideograph - - - 4B5A3B - 8D08 - E8B488 - East Asian ideograph - - - 4B5A68 - 8DF5 - E8B7B5 - East Asian ideograph (variant of EACC 275A68) - - - 4B5A7E - 5C69 - E5B1A9 - East Asian ideograph - - - 4B5B29 - 8E8D - E8BA8D - East Asian ideograph - - - 4B5B46 - 8F0C - E8BC8C - East Asian ideograph - - - 4B5B52 - 8F42 - E8BD82 - East Asian ideograph - - - 4B5B55 - 8EE2 - E8BBA2 - East Asian ideograph - - - 4B5B58 - 8EE3 - E8BBA3 - East Asian ideograph - - - 4B5B5E - 5F01 - E5BC81 - East Asian ideograph - - - 4B5C32 - 9038 - E980B8 - East Asian ideograph - - - 4B5C39 - 9039 - E980B9 - East Asian ideograph - - - 4B5C47 - 9059 - E98199 - East Asian ideograph - - - 4B5C50 - 9045 - E98185 - East Asian ideograph - - - 4B5C54 - 8F9F - E8BE9F - East Asian ideograph (duplicate simplified) - - - 4B5C5B - 8FBA - E8BEBA - East Asian ideograph - - - 4B5C5E - 961D - E9989D - East Asian ideograph - - - 4B5C72 - 9119 - E98499 - East Asian ideograph (variant of EACC 215C72) - - - 4B5C77 - 9139 - E984B9 - East Asian ideograph - - - 4B5D2B - 9162 - E985A2 - East Asian ideograph - - - 4B5D34 - 91B8 - E986B8 - East Asian ideograph - - - 4B5D36 - 91C6 - E98786 - East Asian ideograph - - - 4B5D38 - 91C8 - E98788 - East Asian ideograph - - - 4B5D42 - 91E1 - E987A1 - East Asian ideograph - - - 4B5D58 - 9234 - E988B4 - East Asian ideograph - - - 4B5D65 - 8217 - E88897 - East Asian ideograph - - - 4B5D70 - 92AD - E98AAD - East Asian ideograph - - - 4B5E27 - 93AD - E98EAD - East Asian ideograph - - - 4B5E3D - 9421 - E990A1 - East Asian ideograph - - - 4B5E3F - 922C - E988AC - East Asian ideograph - - - 4B5E5D - 95D4 - E99794 - East Asian ideograph - - - 4B5E69 - 95A2 - E996A2 - East Asian ideograph - - - 4B5E6C - 961D - E9989D - East Asian ideograph (duplicate simplified) - - - 4B5F30 - 9686 - E99A86 - East Asian ideograph (variant of EACC 215F30) - - - 4B5F35 - 6B92 - E6AE92 - East Asian ideograph - - - 4B5F3A - 967A - E999BA - East Asian ideograph - - - 4B5F49 - 51CB - E5878B - East Asian ideograph - - - 4B5F4C - 9D8F - E9B68F - East Asian ideograph - - - 4B5F50 - 96E3 - E99BA3 - East Asian ideograph - - - 4B5F58 - 96F6 - E99BB6 - East Asian ideograph (variant of EACC 215F58 - - - 4B5F62 - 7668 - E799A8 - East Asian ideograph - - - 4B5F6F - 970A - E99C8A - East Asian ideograph - - - 4B5F70 - 9752 - E99D92 - East Asian ideograph - - - 4B5F71 - 9756 - E99D96 - East Asian ideograph - - - 4B5F72 - 975B - E99D9B - East Asian ideograph - - - 4B5F73 - 975C - E99D9C - East Asian ideograph (variant of EACC 215F73) - - - 4B602D - 9771 - E99DB1 - East Asian ideograph - - - 4B6044 - 9818 - E9A098 - East Asian ideograph - - - 4B6048 - 981A - E9A09A - East Asian ideograph - - - 4B6053 - 985E - E9A19E - East Asian ideograph - - - 4B606F - 991D - E9A49D - East Asian ideograph - - - 4B6122 - 994B - E9A58B - East Asian ideograph - - - 4B6130 - 99C4 - E9A784 - East Asian ideograph - - - 4B613F - 9A08 - E9A888 - East Asian ideograph - - - 4B6145 - 9A12 - E9A892 - East Asian ideograph - - - 4B6147 - 99C6 - E9A786 - East Asian ideograph - - - 4B614D - 9A13 - E9A893 - East Asian ideograph - - - 4B6159 - 81B8 - E886B8 - East Asian ideograph - - - 4B615F - 9AEA - E9ABAA - East Asian ideograph - - - 4B6167 - 95D8 - E99798 - East Asian ideograph - - - 4B6168 - 9599 - E99699 - East Asian ideograph - - - 4B623B - 9D12 - E9B492 - East Asian ideograph - - - 4B6247 - 9D2C - E9B4AC - East Asian ideograph - - - 4B624F - 9D49 - E9B589 - East Asian ideograph - - - 4B6258 - 68BA - E6A2BA - East Asian ideograph - - - 4B625C - 9EB8 - E9BAB8 - East Asian ideograph (variant of EACC 27625C) - - - 4B6260 - 9EBD - E9BABD - East Asian ideograph - - - 4B6266 - 9ED2 - E9BB92 - East Asian ideograph - - - 4B6268 - 9ED9 - E9BB99 - East Asian ideograph - - - 4B6278 - 9F21 - E9BCA1 - East Asian ideograph - - - 4B6324 - 9F62 - E9BDA2 - East Asian ideograph - - - 4B6455 - 4EB6 - E4BAB6 - East Asian ideograph - - - 4B6637 - 4FE3 - E4BFA3 - East Asian ideograph - - - 4B682E - 4EC2 - E4BB82 - East Asian ideograph - - - 4B6A22 - 7F83 - E7BE83 - East Asian ideograph - - - 4B6A26 - 6C8D - E6B28D - East Asian ideograph - - - 4B7421 - 56F9 - E59BB9 - East Asian ideograph (variant of EACC 217421) - - - 4B7577 - 57D3 - E59F93 - East Asian ideograph - - - 4B763D - 57F4 - E59FB4 - East Asian ideograph (variant of EACC 21763D) - - - 4B7874 - 590A - E5A48A - East Asian ideograph - - - 4B7954 - 5968 - E5A5A8 - East Asian ideograph - - - 4B7E6A - 5BC3 - E5AF83 - East Asian ideograph (variant of EACC 217E6A) - - - 4C2330 - 5C53 - E5B193 - East Asian ideograph - - - 4C233F - 5C76 - E5B1B6 - East Asian ideograph - - - 4C2532 - 5D5B - E5B59B - East Asian ideograph - - - 4C2539 - 5D73 - E5B5B3 - East Asian ideograph - - - 4C284C - 53A9 - E58EA9 - East Asian ideograph - - - 4C2867 - 5EDB - E5BB9B - East Asian ideograph - - - 4C2962 - 5F4D - E5BD8D - East Asian ideograph (variant of EACC 222962) - - - 4C2F61 - 622C - E688AC - East Asian ideograph - - - 4C3474 - 631D - E68C9D - East Asian ideograph - - - 4C354A - 64B8 - E692B8 - East Asian ideograph - - - 4C3744 - 65D9 - E69799 - East Asian ideograph - - - 4C3A33 - 80AD - E882AD - East Asian ideograph (variant of EACC 2E3A33) - - - 4C3A55 - 6741 - E69D81 - East Asian ideograph - - - 4C3A5B - 6859 - E6A199 - East Asian ideograph - - - 4C3B22 - 6860 - E6A1A0 - East Asian ideograph - - - 4C3B31 - 6798 - E69E98 - East Asian ideograph - - - 4C3B60 - 6764 - E69DA4 - East Asian ideograph - - - 4C3F68 - 69C7 - E6A787 - East Asian ideograph - - - 4C3F7A - 6922 - E6A4A2 - East Asian ideograph - - - 4C4146 - 8538 - E894B8 - East Asian ideograph - - - 4C4177 - 8223 - E888A3 - East Asian ideograph - - - 4C4333 - 6AAA - E6AAAA - East Asian ideograph - - - 4C4339 - 69DE - E6A79E - East Asian ideograph - - - 4C433F - 6A65 - E6A9A5 - East Asian ideograph - - - 4C4345 - 67A6 - E69EA6 - East Asian ideograph - - - 4C4359 - 6B05 - E6AC85 - East Asian ideograph - - - 4C4446 - 6B4E - E6AD8E - East Asian ideograph - - - 4C476E - 6CAD - E6B2AD - East Asian ideograph - - - 4C4C35 - 6E0C - E6B88C - East Asian ideograph - - - 4C4D3D - 6F62 - E6BDA2 - East Asian ideograph - - - 4C4D63 - 6F99 - E6BE99 - East Asian ideograph - - - 4C4F24 - 6F46 - E6BD86 - East Asian ideograph - - - 4C4F26 - 6EDD - E6BB9D - East Asian ideograph - - - 4C4F2B - 701E - E7809E - East Asian ideograph - - - 4C5175 - 8315 - E88C95 - East Asian ideograph - - - 4C523A - 717A - E785BA - East Asian ideograph - - - 4C5447 - 71E0 - E787A0 - East Asian ideograph (variant of EACC 225447) - - - 4C5541 - 4E2C - E4B8AC - East Asian ideograph - - - 4C5638 - 729F - E78A9F - East Asian ideograph - - - 4C5C3A - 73F1 - E78FB1 - East Asian ideograph - - - 4C5C61 - 74F4 - E793B4 - East Asian ideograph (variant of EACC 225C61) - - - 4C5F58 - 7640 - E79980 - East Asian ideograph - - - 4C5F69 - 75EB - E797AB - East Asian ideograph - - - 4C6022 - 7596 - E79696 - East Asian ideograph - - - 4C6074 - 76B9 - E79AB9 - East Asian ideograph - - - 4C6266 - 778B - E79E8B - East Asian ideograph - - - 4C6376 - 7839 - E7A0B9 - East Asian ideograph - - - 4C6564 - 78D9 - E7A399 - East Asian ideograph - - - 4C6565 - 78B9 - E7A2B9 - East Asian ideograph - - - 4C6775 - 7962 - E7A5A2 - East Asian ideograph (unrelated variant of EACC 293032) - - - 4C683E - 79EB - E7A7AB - East Asian ideograph - - - 4C695C - 7A06 - E7A886 - East Asian ideograph - - - 4C695F - 7A63 - E7A9A3 - East Asian ideograph - - - 4C6B62 - 7B4C - E7AD8C - East Asian ideograph (variant of EACC 226B62) - - - 4C6C46 - 7B9F - E7AE9F - East Asian ideograph - - - 4C6E42 - 7C31 - E7B0B1 - East Asian ideograph - - - 4C6F43 - 7CCD - E7B38D - East Asian ideograph - - - 4C6F7B - 7CE8 - E7B3A8 - East Asian ideograph - - - 4C715A - 7EE6 - E7BBA6 - East Asian ideograph - - - 4C725D - 7A39 - E7A8B9 - East Asian ideograph - - - 4C7265 - 7DFC - E7B7BC - East Asian ideograph - - - 4C7328 - 5FAD - E5BEAD - East Asian ideograph (variant of EACC 2E7328) - - - 4C735D - 7D4B - E7B58B - East Asian ideograph - - - 4C794E - 80B7 - E882B7 - East Asian ideograph - - - 4C7959 - 817D - E885BD - East Asian ideograph - - - 4C796B - 815F - E8859F - East Asian ideograph - - - 4C7C45 - 82AE - E88AAE - East Asian ideograph - - - 4C7D4D - 8343 - E88D83 - East Asian ideograph - - - 4C7D6A - 8323 - E88CA3 - East Asian ideograph - - - 4D222A - 83B5 - E88EB5 - East Asian ideograph - - - 4D2925 - 8770 - E89DB0 - East Asian ideograph - - - 4D2962 - 86C9 - E89B89 - East Asian ideograph (variant of EACC 232962) - - - 4D2C3C - 87E5 - E89FA5 - East Asian ideograph - - - 4D2D75 - 8872 - E8A1B2 - East Asian ideograph (variant of EACC 232D75) - - - 4D2F5D - 8941 - E8A581 - East Asian ideograph (variant of EACC 232F5D) - - - 4D2F73 - 7E5D - E7B99D - East Asian ideograph - - - 4D2F7A - 891D - E8A49D - East Asian ideograph - - - 4D3032 - 88AE - E8A2AE - East Asian ideograph - - - 4D3359 - 56AF - E59AAF - East Asian ideograph - - - 4D3363 - 8C25 - E8B0A5 - East Asian ideograph - - - 4D386F - 544B - E5918B - East Asian ideograph - - - 4D3C6C - 8FB6 - E8BEB6 - East Asian ideograph - - - 4D4134 - 919B - E9869B - East Asian ideograph - - - 4D4176 - 91DB - E9879B - East Asian ideograph - - - 4D445B - 9306 - E98C86 - East Asian ideograph (variant of EACC 23445B) - - - 4D446B - 954E - E9958E - East Asian ideograph - - - 4D472C - 952A - E994AA - East Asian ideograph - - - 4D4754 - 9544 - E99584 - East Asian ideograph - - - 4D477B - 943E - E990BE - East Asian ideograph - - - 4D4832 - 953F - E994BF - East Asian ideograph - - - 4D4835 - 954C - E9958C - East Asian ideograph - - - 4D4862 - 9229 - E988A9 - East Asian ideograph - - - 4D4A6C - 9667 - E999A7 - East Asian ideograph - - - 4D4D61 - 7EF1 - E7BBB1 - East Asian ideograph - - - 4D4F39 - 988C - E9A28C - East Asian ideograph - - - 4D503A - 98D1 - E9A391 - East Asian ideograph - - - 4D5053 - 98DA - E9A39A - East Asian ideograph - - - 4D5154 - 9942 - E9A582 - East Asian ideograph - - - 4D5574 - 9B2E - E9ACAE - East Asian ideograph - - - 4D5858 - 9BE3 - E9AFA3 - East Asian ideograph - - - 4D5875 - 9CD0 - E9B390 - East Asian ideograph - - - 4D5934 - 9CA6 - E9B2A6 - East Asian ideograph - - - 4D594E - 9BF5 - E9AFB5 - East Asian ideograph - - - 4D5973 - 51EB - E587AB - East Asian ideograph - - - 4D5A6C - 9D46 - E9B586 - East Asian ideograph - - - 4D5B35 - 9DAB - E9B6AB - East Asian ideograph - - - 4D5B7E - 9DC6 - E9B786 - East Asian ideograph - - - 4D5C6B - 9D50 - E9B590 - East Asian ideograph - - - 4D5D49 - 9E81 - E9BA81 - East Asian ideograph - - - 4D5F70 - 9F44 - E9BD84 - East Asian ideograph - - - 4D5F7B - 97F2 - E99FB2 - East Asian ideograph - - - 4D6047 - 816D - E885AD - East Asian ideograph - - - 513051 - 8CAE - E8B2AE - East Asian ideograph - - - 513057 - 4E98 - E4BA98 - East Asian ideograph - - - 513421 - 91D6 - E98796 - East Asian ideograph - - - 51356A - 8BC3 - E8AF83 - East Asian ideograph - - - 51384D - 51C3 - E58783 - East Asian ideograph - - - 513A47 - 8885 - E8A285 - East Asian ideograph - - - 513B52 - 6C3D - E6B0BD - East Asian ideograph - - - 513D67 - 8FF3 - E8BFB3 - East Asian ideograph - - - 51456D - 822E - E888AE - East Asian ideograph - - - 51496B - 852B - E894AB - East Asian ideograph - - - 514E5B - 9271 - E989B1 - East Asian ideograph - - - 51513B - 7E9F - E7BA9F - East Asian ideograph - - - 51563F - 8616 - E89896 - East Asian ideograph - - - 515E5D - 9616 - E99896 - East Asian ideograph - - - 516122 - 9988 - E9A688 - East Asian ideograph - - - 516A26 - 51B4 - E586B4 - East Asian ideograph - - - 517954 - 734E - E78D8E - East Asian ideograph - - - 52735D - 7E8A - E7BA8A - East Asian ideograph (variant of EACC 22735D) - - - 693729 - 7C82 - E7B282 - East Asian ideograph - - - 693C32 - 9D2B - E9B4AB - East Asian ideograph - - - 693C36 - 96EB - E99BAB - East Asian ideograph - - - 694664 - 51EA - E587AA - East Asian ideograph - - - 694677 - 5302 - E58C82 - East Asian ideograph - - - 694823 - 7872 - E7A1B2 - East Asian ideograph - - - 69482B - 7560 - E795A0 - East Asian ideograph - - - 694838 - 567A - E599BA - East Asian ideograph - - - 694B7B - 9EBF - E9BABF - East Asian ideograph - - - 694C5D - 6762 - E69DA2 - East Asian ideograph - - - 694C68 - 5301 - E58C81 - East Asian ideograph - - - 694C7A - 9453 - E99193 - East Asian ideograph - - - 695130 - 5116 - E58496 - East Asian ideograph - - - 69515E - 51E9 - E587A9 - East Asian ideograph - - - 69525D - 53FA - E58FBA - East Asian ideograph - - - 695326 - 54D8 - E59398 - East Asian ideograph - - - 69533B - 555D - E5959D - East Asian ideograph - - - 695375 - 56CE - E59B8E - East Asian ideograph - - - 695429 - 5726 - E59CA6 - East Asian ideograph - - - 69542A - 5737 - E59CB7 - East Asian ideograph - - - 695438 - 57B3 - E59EB3 - East Asian ideograph - - - 69543A - 57AA - E59EAA - East Asian ideograph - - - 69543B - 57B0 - E59EB0 - East Asian ideograph - - - 695442 - 57D6 - E59F96 - East Asian ideograph - - - 69544B - 5870 - E5A1B0 - East Asian ideograph - - - 695451 - 58B9 - E5A2B9 - East Asian ideograph - - - 695457 - 58B8 - E5A2B8 - East Asian ideograph - - - 69545C - 58D7 - E5A397 - East Asian ideograph - - - 69545F - 58E5 - E5A3A5 - East Asian ideograph - - - 69554E - 5B36 - E5ACB6 - East Asian ideograph - - - 695626 - 4E62 - E4B9A2 - East Asian ideograph - - - 69562C - 599B - E5A69B - East Asian ideograph - - - 69562E - 5CBB - E5B2BB - East Asian ideograph - - - 695630 - 5CBC - E5B2BC - East Asian ideograph - - - 695632 - 5CC5 - E5B385 - East Asian ideograph - - - 695633 - 5CBE - E5B2BE - East Asian ideograph - - - 69564E - 5D76 - E5B5B6 - East Asian ideograph - - - 695657 - 5D90 - E5B690 - East Asian ideograph - - - 695737 - 5F16 - E5BC96 - East Asian ideograph - - - 69573B - 5F41 - E5BD81 - East Asian ideograph - - - 69576A - 603A - E680BA - East Asian ideograph - - - 69594B - 6327 - E68CA7 - East Asian ideograph - - - 69595E - 63B5 - E68EB5 - East Asian ideograph - - - 695A31 - 64F6 - E693B6 - East Asian ideograph - - - 695A73 - 6683 - E69A83 - East Asian ideograph - - - 695A7E - 66BC - E69ABC - East Asian ideograph - - - 695B37 - 6737 - E69CB7 - East Asian ideograph - - - 695B7B - 6926 - E6A4A6 - East Asian ideograph - - - 695C29 - 6925 - E6A4A5 - East Asian ideograph - - - 695C2D - 6928 - E6A4A8 - East Asian ideograph - - - 695C30 - 6923 - E6A4A3 - East Asian ideograph - - - 695C31 - 6921 - E6A4A1 - East Asian ideograph - - - 695C39 - 697E - E6A5BE - East Asian ideograph - - - 695C43 - 6981 - E6A681 - East Asian ideograph - - - 695C4F - 69DD - E6A79D - East Asian ideograph - - - 695C53 - 6A2E - E6A8AE - East Asian ideograph - - - 695C71 - 6A78 - E6A9B8 - East Asian ideograph - - - 695D36 - 6B1F - E6AC9F - East Asian ideograph - - - 695E63 - 6E82 - E6BA82 - East Asian ideograph - - - 695F70 - 7195 - E78695 - East Asian ideograph - - - 696126 - 74F2 - E793B2 - East Asian ideograph - - - 696136 - 753C - E794BC - East Asian ideograph - - - 69613A - 7549 - E79589 - East Asian ideograph - - - 69613E - 7569 - E795A9 - East Asian ideograph - - - 69626D - 7874 - E7A1B4 - East Asian ideograph - - - 696273 - 78B5 - E7A2B5 - East Asian ideograph - - - 696325 - 7907 - E7A487 - East Asian ideograph - - - 69634E - 7A43 - E7A983 - East Asian ideograph - - - 696373 - 7B02 - E7AC82 - East Asian ideograph - - - 696449 - 7C13 - E7B093 - East Asian ideograph - - - 69644C - 7C17 - E7B097 - East Asian ideograph - - - 69644E - 7BF6 - E7AFB6 - East Asian ideograph - - - 696464 - 7C90 - E7B290 - East Asian ideograph - - - 696466 - 7CAD - E7B2AD - East Asian ideograph - - - 696471 - 7CC0 - E7B380 - East Asian ideograph - - - 696474 - 7CD8 - E7B398 - East Asian ideograph - - - 69654F - 7E05 - E7B885 - East Asian ideograph - - - 69656D - 7E83 - E7BA83 - East Asian ideograph - - - 69656E - 7DD5 - E7B795 - East Asian ideograph - - - 696576 - 7E90 - E7BA90 - East Asian ideograph - - - 696733 - 81A4 - E886A4 - East Asian ideograph - - - 69675C - 825D - E8899D - East Asian ideograph - - - 69684D - 8422 - E890A2 - East Asian ideograph - - - 696868 - 84D9 - E89399 - East Asian ideograph - - - 696946 - 8630 - E898B0 - East Asian ideograph - - - 69695B - 86AB - E89AAB - East Asian ideograph - - - 696962 - 86EF - E89BAF - East Asian ideograph - - - 696A2C - 87D0 - E89F90 - East Asian ideograph - - - 696A5E - 88B0 - E8A2B0 - East Asian ideograph - - - 696A61 - 88C3 - E8A383 - East Asian ideograph - - - 696A6D - 8904 - E8A484 - East Asian ideograph - - - 696B27 - 8977 - E8A5B7 - East Asian ideograph - - - 696B5C - 8ADA - E8AB9A - East Asian ideograph - - - 696D3F - 8EBE - E8BABE - East Asian ideograph - - - 696D40 - 8EC5 - E8BB85 - East Asian ideograph - - - 696D41 - 8EC8 - E8BB88 - East Asian ideograph - - - 696D5A - 8F4C - E8BD8C - East Asian ideograph - - - 696D7A - 9027 - E980A7 - East Asian ideograph - - - 696E28 - 9056 - E98196 - East Asian ideograph - - - 696E5C - 91DF - E9879F - East Asian ideograph - - - 696F27 - 933B - E98CBB - East Asian ideograph - - - 696F5B - 958A - E9968A - East Asian ideograph - - - 696F5D - 9596 - E99696 - East Asian ideograph - - - 697023 - 9666 - E999A6 - East Asian ideograph - - - 697058 - 9779 - E99DB9 - East Asian ideograph - - - 69705D - 9786 - E99E86 - East Asian ideograph - - - 697060 - 9790 - E99E90 - East Asian ideograph - - - 697124 - 98AA - E9A2AA - East Asian ideograph - - - 697152 - 99F2 - E9A7B2 - East Asian ideograph - - - 697174 - 9ADE - E9AB9E - East Asian ideograph - - - 69717D - 9AF1 - E9ABB1 - East Asian ideograph - - - 69717E - 9AF7 - E9ABB7 - East Asian ideograph - - - 69723B - 9B96 - E9AE96 - East Asian ideograph - - - 697240 - 9BB4 - E9AEB4 - East Asian ideograph - - - 697245 - 9BCF - E9AF8F - East Asian ideograph - - - 697246 - 9BD1 - E9AF91 - East Asian ideograph - - - 69724E - 9BF2 - E9AFB2 - East Asian ideograph - - - 697260 - 9C30 - E9B0B0 - East Asian ideograph - - - 697265 - 9C5A - E9B19A - East Asian ideograph - - - 69727E - 9D48 - E9B588 - East Asian ideograph - - - 697323 - 9D64 - E9B5A4 - East Asian ideograph - - - 704C2A - 915E - E9859E - East Asian ideograph - - - 70586F - 4EEB - E4BBAB - East Asian ideograph - - - 705B71 - 57B4 - E59EB4 - East Asian ideograph - - - 705C43 - 82CA - E88B8A - East Asian ideograph - - - 705C50 - 82C4 - E88B84 - East Asian ideograph - - - 705D46 - 841C - E8909C - East Asian ideograph - - - 705D5C - 8488 - E89288 - East Asian ideograph - - - 705F30 - 7519 - E79499 - East Asian ideograph - - - 705F39 - 5416 - E59096 - East Asian ideograph - - - 705F50 - 549D - E5929D - East Asian ideograph - - - 705F51 - 54D0 - E59390 - East Asian ideograph - - - 705F54 - 54B4 - E592B4 - East Asian ideograph - - - 705F5B - 54A3 - E592A3 - East Asian ideograph - - - 705F61 - 54DA - E5939A - East Asian ideograph - - - 70602D - 55B9 - E596B9 - East Asian ideograph - - - 70603A - 55EA - E597AA - East Asian ideograph - - - 70604C - 55F5 - E597B5 - East Asian ideograph - - - 706054 - 5623 - E598A3 - East Asian ideograph - - - 706058 - 562D - E598AD - East Asian ideograph - - - 706067 - 567B - E599BB - East Asian ideograph - - - 706131 - 5C9C - E5B29C - East Asian ideograph - - - 70622A - 7339 - E78CB9 - East Asian ideograph - - - 706247 - 9987 - E9A687 - East Asian ideograph - - - 70624E - 9995 - E9A695 - East Asian ideograph - - - 706340 - 61B7 - E686B7 - East Asian ideograph - - - 706640 - 80EC - E883AC - East Asian ideograph - - - 706B42 - 80BC - E882BC - East Asian ideograph - - - 706B44 - 80BD - E882BD - East Asian ideograph - - - 706B4C - 80E9 - E883A9 - East Asian ideograph - - - 706B5B - 810E - E8848E - East Asian ideograph - - - 706B5F - 8112 - E88492 - East Asian ideograph - - - 706B6A - 8159 - E88599 - East Asian ideograph - - - 706C42 - 70BB - E782BB - East Asian ideograph - - - 706C43 - 70C0 - E78380 - East Asian ideograph - - - 706D3B - 7818 - E7A098 - East Asian ideograph - - - 706D3F - 781C - E7A09C - East Asian ideograph - - - 706D45 - 783C - E7A0BC - East Asian ideograph - - - 70727D - 87A8 - E89EA8 - East Asian ideograph - - - 707360 - 7B7B - E7ADBB - East Asian ideograph - - - 70736E - 7BA2 - E7AEA2 - East Asian ideograph - - - 707438 - 823E - E888BE - East Asian ideograph - - - 707523 - 9170 - E985B0 - East Asian ideograph - - - 70755D - 8E3A - E8B8BA - East Asian ideograph - - - 70775D - 9B0F - E9AC8F - East Asian ideograph - - - 707771 - 9EE2 - E9BBA2 - East Asian ideograph (Version J extension) - - - - -

    This table contains 172 mappings of character encodings for - Japanese Hiragana and Katakana from the East Asian Coded Character set - (ANSI/NISO Z39.64, or "EACC") to character encodings in the Universal - Character Set (UCS, ISO-IEC 10646)/Unicode. Character codes are given in - hexadecimal notation. Each character is presented on a separate row.

    -

    The first column contains the MARC-8 EACC 24-bit code (in hex), the - second column contains the corresponding UCS/Unicode 16-bit code (in hex), - the third column contains the UTF-8 code (in hex) for the UCS character, - the fourth column contains a representation of the character (where possible), the fifth - column contains a character name or description.

    -
    - - 69213C - 30FC - E383BC - Vowel elongation mark for kana - - - 692421 - 3041 - E38181 - Hiragana letter small A - - - 692422 - 3042 - E38182 - Hiragana letter A - - - 692423 - 3043 - E38183 - Hiragana letter small I - - - 692424 - 3044 - E38184 - Hiragana letter I - - - 692425 - 3045 - E38185 - Hiragana letter small U - - - 692426 - 3046 - E38186 - Hiragana letter U - - - 692427 - 3047 - E38187 - Hiragana letter small E - - - 692428 - 3048 - E38188 - Hiragana letter E - - - 692429 - 3049 - E38189 - Hiragana letter small O - - - 69242A - 304A - E3818A - Hiragana letter O - - - 69242B - 304B - E3818B - Hiragana letter KA - - - 69242C - 304C - E3818C - Hiragana letter GA - - - 69242D - 304D - E3818D - Hiragana letter KI - - - 69242E - 304E - E3818E - Hiragana letter GI - - - 69242F - 304F - E3818F - Hiragana letter KU - - - 692430 - 3050 - E38190 - Hiragana letter GU - - - 692431 - 3051 - E38191 - Hiragana letter KE - - - 692432 - 3052 - E38192 - Hiragana letter GE - - - 692433 - 3053 - E38193 - Hiragana letter KO - - - 692434 - 3054 - E38194 - Hiragana letter GO - - - 692435 - 3055 - E38195 - Hiragana letter SA - - - 692436 - 3056 - E38196 - Hiragana letter ZA - - - 692437 - 3057 - E38197 - Hiragana letter SI - - - 692438 - 3058 - E38198 - Hiragana letter ZI - - - 692439 - 3059 - E38199 - Hiragana letter SU - - - 69243A - 305A - E3819A - Hiragana letter ZU - - - 69243B - 305B - E3819B - Hiragana letter SE - - - 69243C - 305C - E3819C - Hiragana letter ZE - - - 69243D - 305D - E3819D - Hiragana letter SO - - - 69243E - 305E - E3819E - Hiragana letter ZO - - - 69243F - 305F - E3819F - Hiragana letter TA - - - 692440 - 3060 - E381A0 - Hiragana letter DA - - - 692441 - 3061 - E381A1 - Hiragana letter TI - - - 692442 - 3062 - E381A2 - Hiragana letter DI - - - 692443 - 3063 - E381A3 - Hiragana letter small TU - - - 692444 - 3064 - E381A4 - Hiragana letter TU - - - 692445 - 3065 - E381A5 - Hiragana letter DU - - - 692446 - 3066 - E381A6 - Hiragana letter TE - - - 692447 - 3067 - E381A7 - Hiragana letter DE - - - 692448 - 3068 - E381A8 - Hiragana letter TO - - - 692449 - 3069 - E381A9 - Hiragana letter DO - - - 69244A - 306A - E381AA - Hiragana letter NA - - - 69244B - 306B - E381AB - Hiragana letter NI - - - 69244C - 306C - E381AC - Hiragana letter NU - - - 69244D - 306D - E381AD - Hiragana letter NE - - - 69244E - 306E - E381AE - Hiragana letter NO - - - 69244F - 306F - E381AF - Hiragana letter HA - - - 692450 - 3070 - E381B0 - Hiragana letter BA - - - 692451 - 3071 - E381B1 - Hiragana letter PA - - - 692452 - 3072 - E381B2 - Hiragana letter HI - - - 692453 - 3073 - E381B3 - Hiragana letter BI - - - 692454 - 3074 - E381B4 - Hiragana letter PI - - - 692455 - 3075 - E381B5 - Hiragana letter HU - - - 692456 - 3076 - E381B6 - Hiragana letter BU - - - 692457 - 3077 - E381B7 - Hiragana letter PU - - - 692458 - 3078 - E381B8 - Hiragana letter HE - - - 692459 - 3079 - E381B9 - Hiragana letter BE - - - 69245A - 307A - E381BA - Hiragana letter PE - - - 69245B - 307B - E381BB - Hiragana letter HO - - - 69245C - 307C - E381BC - Hiragana letter BO - - - 69245D - 307D - E381BD - Hiragana letter PO - - - 69245E - 307E - E381BE - Hiragana letter MA - - - 69245F - 307F - E381BF - Hiragana letter MI - - - 692460 - 3080 - E38280 - Hiragana letter MU - - - 692461 - 3081 - E38281 - Hiragana letter ME - - - 692462 - 3082 - E38282 - Hiragana letter MO - - - 692463 - 3083 - E38283 - Hiragana letter small YA - - - 692464 - 3084 - E38284 - Hiragana letter YA - - - 692465 - 3085 - E38285 - Hiragana letter small YU - - - 692466 - 3086 - E38286 - Hiragana letter YU - - - 692467 - 3087 - E38287 - Hiragana letter small YO - - - 692468 - 3088 - E38288 - Hiragana letter YO - - - 692469 - 3089 - E38289 - Hiragana letter RA - - - 69246A - 308A - E3828A - Hiragana letter RI - - - 69246B - 308B - E3828B - Hiragana letter RU - - - 69246C - 308C - E3828C - Hiragana letter RE - - - 69246D - 308D - E3828D - Hiragana letter RO - - - 69246E - 308E - E3828E - Hiragana letter small WA - - - 69246F - 308F - E3828F - Hiragana letter WA - - - 692470 - 3090 - E38290 - Hiragana letter WI - - - 692471 - 3091 - E38291 - Hiragana letter WE - - - 692472 - 3092 - E38292 - Hiragana letter WO - - - 692473 - 3093 - E38293 - Hiragana letter N - - - 692521 - 30A1 - E382A1 - Katakana letter small A - - - 692522 - 30A2 - E382A2 - Katakana letter A - - - 692523 - 30A3 - E382A3 - Katakana letter small I - - - 692524 - 30A4 - E382A4 - Katakana letter I - - - 692525 - 30A5 - E382A5 - Katakana letter small U - - - 692526 - 30A6 - E382A6 - Katakana letter U - - - 692527 - 30A7 - E382A7 - Katakana letter small E - - - 692528 - 30A8 - E382A8 - Katakana letter E - - - 692529 - 30A9 - E382A9 - Katakana letter small O - - - 69252A - 30AA - E382AA - Katakana letter O - - - 69252B - 30AB - E382AB - Katakana letter KA - - - 69252C - 30AC - E382AC - Katakana letter GA - - - 69252D - 30AD - E382AD - Katakana letter KI - - - 69252E - 30AE - E382AE - Katakana letter GI - - - 69252F - 30AF - E382AF - Katakana letter KU - - - 692530 - 30B0 - E382B0 - Katakana letter GU - - - 692531 - 30B1 - E382B1 - Katakana letter KE - - - 692532 - 30B2 - E382B2 - Katakana letter GE - - - 692533 - 30B3 - E382B3 - Katakana letter KO - - - 692534 - 30B4 - E382B4 - Katakana letter GO - - - 692535 - 30B5 - E382B5 - Katakana letter SA - - - 692536 - 30B6 - E382B6 - Katakana letter ZA - - - 692537 - 30B7 - E382B7 - Katakana letter SI - - - 692538 - 30B8 - E382B8 - Katakana letter ZI - - - 692539 - 30B9 - E382B9 - Katakana letter SU - - - 69253A - 30BA - E382BA - Katakana letter ZU - - - 69253B - 30BB - E382BB - Katakana letter SE - - - 69253C - 30BC - E382BC - Katakana letter ZE - - - 69253D - 30BD - E382BD - Katakana letter SO - - - 69253E - 30BE - E382BE - Katakana letter ZO - - - 69253F - 30BF - E382BF - Katakana letter TA - - - 692540 - 30C0 - E38380 - Katakana letter DA - - - 692541 - 30C1 - E38381 - Katakana letter TI - - - 692542 - 30C2 - E38382 - Katakana letter DI - - - 692543 - 30C3 - E38383 - Katakana letter small TU - - - 692544 - 30C4 - E38384 - Katakana letter TU - - - 692545 - 30C5 - E38385 - Katakana letter DU - - - 692546 - 30C6 - E38386 - Katakana letter TE - - - 692547 - 30C7 - E38387 - Katakana letter DE - - - 692548 - 30C8 - E38388 - Katakana letter TO - - - 692549 - 30C9 - E38389 - Katakana letter DO - - - 69254A - 30CA - E3838A - Katakana letter NA - - - 69254B - 30CB - E3838B - Katakana letter NI - - - 69254C - 30CC - E3838C - Katakana letter NU - - - 69254D - 30CD - E3838D - Katakana letter NE - - - 69254E - 30CE - E3838E - Katakana letter NO - - - 69254F - 30CF - E3838F - Katakana letter HA - - - 692550 - 30D0 - E38390 - Katakana letter BA - - - 692551 - 30D1 - E38391 - Katakana letter PA - - - 692552 - 30D2 - E38392 - Katakana letter HI - - - 692553 - 30D3 - E38393 - Katakana letter BI - - - 692554 - 30D4 - E38394 - Katakana letter PI - - - 692555 - 30D5 - E38395 - Katakana letter HU - - - 692556 - 30D6 - E38396 - Katakana letter BU - - - 692557 - 30D7 - E38397 - Katakana letter PU - - - 692558 - 30D8 - E38398 - Katakana letter HE - - - 692559 - 30D9 - E38399 - Katakana letter BE - - - 69255A - 30DA - E3839A - Katakana letter PE - - - 69255B - 30DB - E3839B - Katakana letter HO - - - 69255C - 30DC - E3839C - Katakana letter BO - - - 69255D - 30DD - E3839D - Katakana letter PO - - - 69255E - 30DE - E3839E - Katakana letter MA - - - 69255F - 30DF - E3839F - Katakana letter MI - - - 692560 - 30E0 - E383A0 - Katakana letter MU - - - 692561 - 30E1 - E383A1 - Katakana letter ME - - - 692562 - 30E2 - E383A2 - Katakana letter MO - - - 692563 - 30E3 - E383A3 - Katakana letter small YA - - - 692564 - 30E4 - E383A4 - Katakana letter YA - - - 692565 - 30E5 - E383A5 - Katakana letter small YU - - - 692566 - 30E6 - E383A6 - Katakana letter YU - - - 692567 - 30E7 - E383A7 - Katakana letter small YO - - - 692568 - 30E8 - E383A8 - Katakana letter YO - - - 692569 - 30E9 - E383A9 - Katakana letter RA - - - 69256A - 30EA - E383AA - Katakana letter RI - - - 69256B - 30EB - E383AB - Katakana letter RU - - - 69256C - 30EC - E383AC - Katakana letter RE - - - 69256D - 30ED - E383AD - Katakana letter RO - - - 69256E - 30EE - E383AE - Katakana letter small WA - - - 69256F - 30EF - E383AF - Katakana letter WA - - - 692570 - 30F0 - E383B0 - Katakana letter WI - - - 692571 - 30F1 - E383B1 - Katakana letter WE - - - 692572 - 30F2 - E383B2 - Katakana letter WO - - - 692573 - 30F3 - E383B3 - Katakana letter N - - - 692574 - 30F4 - E383B4 - Katakana letter VU - - - 692575 - 30F5 - E383B5 - Katakana letter small KA - - - 692576 - 30F6 - E383B6 - Katakana letter small KE - - - 692577 - 309B - E3829B - Katakana-hiragana voiced sound mark - - - 692578 - 309C - E3829C - Katakana-hiragana semi-voiced sound mark - -
    - - -

    This table contains 2,028 mappings of character encodings for - Korean hangul from the East Asian Coded Character set (ANSI/NISO Z39.64, - or "EACC") to character encodings in the Universal Character Set (UCS, - ISO-IEC 10646)/Unicode. Character codes are given in hexadecimal notation. - Each character is presented on a separate row.

    -

    The first column contains the MARC-8 EACC 24-bit code (in hex), the - second column contains the corresponding UCS/Unicode 16-bit code (in hex), - the third column contains the UTF-8 code (in hex) for the UCS character, - the fourth column contains a representation of the character (where - possible), the fifth column contains a character - name or description. Most East Asian ideographs are not given unique - names in the MARC-8 or UCS/Unicode.

    -

    For some characters alternate encodings - in UCS/Unicode and UTF-8 are given. When that occurs the alternate - UCS/Unicode 16-bit code column and - alternate UTF-8 code column follow the character name. - The alternative UCS/Unicode character - codes are provided for cases where MARC-8 characters were mapped to - UCS/Unicode characters in the Private Use Area (PUA). The alternative - character code is a defined Unicode character which should be - supported by applications that claim to support the full repertoire of - defined Unicode characters.

    The characters in this table are sorted in - EACC character code order.

    -
    - - 6F2457 - 3131 - E384B1 - Korean hangul - - - 6F2458 - 3134 - E384B4 - Korean hangul - - - 6F2459 - 3137 - E384B7 - Korean hangul - - - 6F245A - 3139 - E384B9 - Korean hangul - - - 6F245B - 3141 - E38581 - Korean hangul - - - 6F245C - 3142 - E38582 - Korean hangul - - - 6F245D - 3145 - E38585 - Korean hangul - - - 6F245E - 3147 - E38587 - Korean hangul - - - 6F245F - 3148 - E38588 - Korean hangul - - - 6F2460 - 314A - E3858A - Korean hangul - - - 6F2461 - 314B - E3858B - Korean hangul - - - 6F2462 - 314C - E3858C - Korean hangul - - - 6F2463 - 314D - E3858D - Korean hangul - - - 6F2464 - 314E - E3858E - Korean hangul - - - 6F2465 - 3132 - E384B2 - Korean hangul - - - 6F2469 - 3138 - E384B8 - Korean hangul - - - 6F246E - 3143 - E38583 - Korean hangul - - - 6F2470 - 3146 - E38586 - Korean hangul - - - 6F2471 - 3149 - E38589 - Korean hangul - - - 6F2472 - 314F - E3858F - Korean hangul - - - 6F2473 - 3150 - E38590 - Korean hangul - - - 6F2474 - 3151 - E38591 - Korean hangul - - - 6F2476 - 3153 - E38593 - Korean hangul - - - 6F2477 - 3154 - E38594 - Korean hangul - - - 6F2478 - 3155 - E38595 - Korean hangul - - - 6F247A - 3157 - E38597 - Korean hangul - - - 6F247B - 3158 - E38598 - Korean hangul - - - 6F247E - 315B - E3859B - Korean hangul - - - 6F2521 - 315C - E3859C - Korean hangul - - - 6F2525 - 3160 - E385A0 - Korean hangul - - - 6F2526 - 3161 - E385A1 - Korean hangul - - - 6F2527 - 3162 - E385A2 - Korean hangul - - - 6F2528 - 3163 - E385A3 - Korean hangul - - - 6F485F - AC00 - EAB080 - Korean hangul - - - 6F4860 - AC01 - EAB081 - Korean hangul - - - 6F4861 - AC02 - EAB082 - Korean hangul - - - 6F4862 - AC04 - EAB084 - Korean hangul - - - 6F4863 - AC07 - EAB087 - Korean hangul - - - 6F4864 - AC08 - EAB088 - Korean hangul - - - 6F4865 - AC09 - EAB089 - Korean hangul - - - 6F4866 - AC10 - EAB090 - Korean hangul - - - 6F4867 - AC11 - EAB091 - Korean hangul - - - 6F4868 - AC12 - EAB092 - Korean hangul - - - 6F4869 - AC13 - EAB093 - Korean hangul - - - 6F486A - AC14 - EAB094 - Korean hangul - - - 6F486B - AC15 - EAB095 - Korean hangul - - - 6F486C - AC16 - EAB096 - Korean hangul - - - 6F486D - AC17 - EAB097 - Korean hangul - - - 6F486E - AC19 - EAB099 - Korean hangul - - - 6F486F - AC1A - EAB09A - Korean hangul - - - 6F4870 - AC1B - EAB09B - Korean hangul - - - 6F4871 - AC1C - EAB09C - Korean hangul - - - 6F4872 - AC1D - EAB09D - Korean hangul - - - 6F4873 - AC20 - EAB0A0 - Korean hangul - - - 6F4875 - AC24 - EAB0A4 - Korean hangul - - - 6F4876 - AC2C - EAB0AC - Korean hangul - - - 6F4877 - AC2D - EAB0AD - Korean hangul - - - 6F4878 - AC2F - EAB0AF - Korean hangul - - - 6F4879 - AC30 - EAB0B0 - Korean hangul - - - 6F487A - AC31 - EAB0B1 - Korean hangul - - - 6F487B - AC38 - EAB0B8 - Korean hangul - - - 6F487C - AC39 - EAB0B9 - Korean hangul - - - 6F487D - AC40 - EAB180 - Korean hangul - - - 6F487E - AC54 - EAB194 - Korean hangul - - - 6F4921 - AC70 - EAB1B0 - Korean hangul - - - 6F4922 - AC71 - EAB1B1 - Korean hangul - - - 6F4924 - AC74 - EAB1B4 - Korean hangul - - - 6F4925 - AC77 - EAB1B7 - Korean hangul - - - 6F4926 - AC78 - EAB1B8 - Korean hangul - - - 6F4927 - AC79 - EAB1B9 - Korean hangul - - - 6F4929 - AC80 - EAB280 - Korean hangul - - - 6F492A - AC81 - EAB281 - Korean hangul - - - 6F492B - AC83 - EAB283 - Korean hangul - - - 6F492C - AC84 - EAB284 - Korean hangul - - - 6F492D - AC85 - EAB285 - Korean hangul - - - 6F492E - AC86 - EAB286 - Korean hangul - - - 6F4930 - AC89 - EAB289 - Korean hangul - - - 6F4931 - AC8A - EAB28A - Korean hangul - - - 6F4932 - AC8B - EAB28B - Korean hangul - - - 6F4933 - AC8C - EAB28C - Korean hangul - - - 6F4934 - AC90 - EAB290 - Korean hangul - - - 6F4935 - AC94 - EAB294 - Korean hangul - - - 6F4936 - AC9C - EAB29C - Korean hangul - - - 6F4937 - AC9F - EAB29F - Korean hangul - - - 6F4938 - ACA0 - EAB2A0 - Korean hangul - - - 6F4939 - ACA1 - EAB2A1 - Korean hangul - - - 6F493A - ACA8 - EAB2A8 - Korean hangul - - - 6F493B - ACA9 - EAB2A9 - Korean hangul - - - 6F493C - ACAA - EAB2AA - Korean hangul - - - 6F493D - ACAC - EAB2AC - Korean hangul - - - 6F493E - ACAF - EAB2AF - Korean hangul - - - 6F493F - ACB0 - EAB2B0 - Korean hangul - - - 6F4940 - ACB8 - EAB2B8 - Korean hangul - - - 6F4941 - ACB9 - EAB2B9 - Korean hangul - - - 6F4943 - ACBC - EAB2BC - Korean hangul - - - 6F4944 - ACBD - EAB2BD - Korean hangul - - - 6F4945 - ACC1 - EAB381 - Korean hangul - - - 6F4947 - ACC4 - EAB384 - Korean hangul - - - 6F4949 - ACD7 - EAB397 - Korean hangul - - - 6F494A - ACE0 - EAB3A0 - Korean hangul - - - 6F494B - ACE1 - EAB3A1 - Korean hangul - - - 6F494C - ACE4 - EAB3A4 - Korean hangul - - - 6F494D - ACE7 - EAB3A7 - Korean hangul - - - 6F494E - ACE8 - EAB3A8 - Korean hangul - - - 6F494F - ACEA - EAB3AA - Korean hangul - - - 6F4950 - ACEC - EAB3AC - Korean hangul - - - 6F4951 - ACEF - EAB3AF - Korean hangul - - - 6F4952 - ACF0 - EAB3B0 - Korean hangul - - - 6F4953 - ACF1 - EAB3B1 - Korean hangul - - - 6F4954 - ACF3 - EAB3B3 - Korean hangul - - - 6F4955 - ACF5 - EAB3B5 - Korean hangul - - - 6F4956 - ACF6 - EAB3B6 - Korean hangul - - - 6F4957 - ACFA - EAB3BA - Korean hangul - - - 6F4958 - ACFC - EAB3BC - Korean hangul - - - 6F4959 - ACFD - EAB3BD - Korean hangul - - - 6F495A - AD00 - EAB480 - Korean hangul - - - 6F495B - AD04 - EAB484 - Korean hangul - - - 6F495C - AD0C - EAB48C - Korean hangul - - - 6F495D - AD0D - EAB48D - Korean hangul - - - 6F495E - AD0F - EAB48F - Korean hangul - - - 6F495F - AD11 - EAB491 - Korean hangul - - - 6F4960 - AD18 - EAB498 - Korean hangul - - - 6F4961 - AD19 - EAB499 - Korean hangul - - - 6F4962 - AD1C - EAB49C - Korean hangul - - - 6F4963 - AD20 - EAB4A0 - Korean hangul - - - 6F4964 - AD28 - EAB4A8 - Korean hangul - - - 6F4965 - AD29 - EAB4A9 - Korean hangul - - - 6F4966 - AD2D - EAB4AD - Korean hangul - - - 6F4967 - AD34 - EAB4B4 - Korean hangul - - - 6F4968 - AD38 - EAB4B8 - Korean hangul - - - 6F4969 - AD3C - EAB4BC - Korean hangul - - - 6F496A - AD44 - EAB584 - Korean hangul - - - 6F496C - AD49 - EAB589 - Korean hangul - - - 6F496D - AD50 - EAB590 - Korean hangul - - - 6F496E - AD6C - EAB5AC - Korean hangul - - - 6F496F - AD6D - EAB5AD - Korean hangul - - - 6F4970 - AD70 - EAB5B0 - Korean hangul - - - 6F4971 - AD73 - EAB5B3 - Korean hangul - - - 6F4972 - AD74 - EAB5B4 - Korean hangul - - - 6F4973 - AD75 - EAB5B5 - Korean hangul - - - 6F4974 - AD76 - EAB5B6 - Korean hangul - - - 6F4975 - AD7C - EAB5BC - Korean hangul - - - 6F4976 - AD7D - EAB5BD - Korean hangul - - - 6F4977 - AD7F - EAB5BF - Korean hangul - - - 6F4978 - AD81 - EAB681 - Korean hangul - - - 6F4979 - AD82 - EAB682 - Korean hangul - - - 6F497A - AD88 - EAB688 - Korean hangul - - - 6F497B - AD8C - EAB68C - Korean hangul - - - 6F497C - AD90 - EAB690 - Korean hangul - - - 6F497E - ADA4 - EAB6A4 - Korean hangul - - - 6F4A22 - ADC0 - EAB780 - Korean hangul - - - 6F4A23 - ADC4 - EAB784 - Korean hangul - - - 6F4A24 - ADC8 - EAB788 - Korean hangul - - - 6F4A25 - ADD0 - EAB790 - Korean hangul - - - 6F4A26 - ADD1 - EAB791 - Korean hangul - - - 6F4A27 - ADD3 - EAB793 - Korean hangul - - - 6F4A28 - ADDC - EAB79C - Korean hangul - - - 6F4A29 - ADE0 - EAB7A0 - Korean hangul - - - 6F4A2A - ADE4 - EAB7A4 - Korean hangul - - - 6F4A2B - ADEC - EAB7AC - Korean hangul - - - 6F4A2C - ADF8 - EAB7B8 - Korean hangul - - - 6F4A2D - ADF9 - EAB7B9 - Korean hangul - - - 6F4A2E - ADFC - EAB7BC - Korean hangul - - - 6F4A2F - ADFF - EAB7BF - Korean hangul - - - 6F4A30 - AE00 - EAB880 - Korean hangul - - - 6F4A31 - AE01 - EAB881 - Korean hangul - - - 6F4A32 - AE08 - EAB888 - Korean hangul - - - 6F4A33 - AE09 - EAB889 - Korean hangul - - - 6F4A34 - AE0B - EAB88B - Korean hangul - - - 6F4A35 - AE0D - EAB88D - Korean hangul - - - 6F4A36 - AE30 - EAB8B0 - Korean hangul - - - 6F4A37 - AE31 - EAB8B1 - Korean hangul - - - 6F4A38 - AE34 - EAB8B4 - Korean hangul - - - 6F4A39 - AE37 - EAB8B7 - Korean hangul - - - 6F4A3A - AE38 - EAB8B8 - Korean hangul - - - 6F4A3B - AE40 - EAB980 - Korean hangul - - - 6F4A3C - AE41 - EAB981 - Korean hangul - - - 6F4A3D - AE43 - EAB983 - Korean hangul - - - 6F4A3E - AE44 - EAB984 - Korean hangul - - - 6F4A3F - AE45 - EAB985 - Korean hangul - - - 6F4A40 - AE4A - EAB98A - Korean hangul - - - 6F4A43 - AE4C - EAB98C - Korean hangul - - - 6F4A44 - AE4D - EAB98D - Korean hangul - - - 6F4A45 - AE4E - EAB98E - Korean hangul - - - 6F4A46 - AE50 - EAB990 - Korean hangul - - - 6F4A47 - AE54 - EAB994 - Korean hangul - - - 6F4A48 - AE5C - EAB99C - Korean hangul - - - 6F4A49 - AE5D - EAB99D - Korean hangul - - - 6F4A4A - AE60 - EAB9A0 - Korean hangul - - - 6F4A4B - AE61 - EAB9A1 - Korean hangul - - - 6F4A4C - AE62 - EAB9A2 - Korean hangul - - - 6F4A4D - AE65 - EAB9A5 - Korean hangul - - - 6F4A4E - AE68 - EAB9A8 - Korean hangul - - - 6F4A4F - AE69 - EAB9A9 - Korean hangul - - - 6F4A50 - AE6C - EAB9AC - Korean hangul - - - 6F4A51 - AE70 - EAB9B0 - Korean hangul - - - 6F4A52 - AE78 - EAB9B8 - Korean hangul - - - 6F4A53 - AE79 - EAB9B9 - Korean hangul - - - 6F4A54 - AE7B - EAB9BB - Korean hangul - - - 6F4A55 - AE7C - EAB9BC - Korean hangul - - - 6F4A56 - AE7D - EAB9BD - Korean hangul - - - 6F4A57 - AE84 - EABA84 - Korean hangul - - - 6F4A58 - AE85 - EABA85 - Korean hangul - - - 6F4A59 - AEBC - EABABC - Korean hangul - - - 6F4A5A - AEBD - EABABD - Korean hangul - - - 6F4A5B - AEBE - EABABE - Korean hangul - - - 6F4A5C - AEC0 - EABB80 - Korean hangul - - - 6F4A5D - AEC4 - EABB84 - Korean hangul - - - 6F4A5E - AECC - EABB8C - Korean hangul - - - 6F4A5F - AECD - EABB8D - Korean hangul - - - 6F4A60 - AECF - EABB8F - Korean hangul - - - 6F4A61 - AED0 - EABB90 - Korean hangul - - - 6F4A62 - AED1 - EABB91 - Korean hangul - - - 6F4A63 - AED8 - EABB98 - Korean hangul - - - 6F4A64 - AEDC - EABB9C - Korean hangul - - - 6F4A65 - AEF4 - EABBB4 - Korean hangul - - - 6F4A66 - AF0D - EABC8D - Korean hangul - - - 6F4A67 - AF2C - EABCAC - Korean hangul - - - 6F4A68 - AF2D - EABCAD - Korean hangul - - - 6F4A69 - AF30 - EABCB0 - Korean hangul - - - 6F4A6A - AF34 - EABCB4 - Korean hangul - - - 6F4A6B - AF3C - EABCBC - Korean hangul - - - 6F4A6C - AF3D - EABCBD - Korean hangul - - - 6F4A6D - AF3F - EABCBF - Korean hangul - - - 6F4A6E - AF41 - EABD81 - Korean hangul - - - 6F4A6F - AF42 - EABD82 - Korean hangul - - - 6F4A70 - AF43 - EABD83 - Korean hangul - - - 6F4A71 - AF48 - EABD88 - Korean hangul - - - 6F4A72 - AF49 - EABD89 - Korean hangul - - - 6F4A73 - AF4C - EABD8C - Korean hangul - - - 6F4A74 - AF58 - EABD98 - Korean hangul - - - 6F4A75 - AF5C - EABD9C - Korean hangul - - - 6F4A76 - AF5D - EABD9D - Korean hangul - - - 6F4A77 - AF64 - EABDA4 - Korean hangul - - - 6F4A78 - AF65 - EABDA5 - Korean hangul - - - 6F4A79 - AF79 - EABDB9 - Korean hangul - - - 6F4A7A - AF80 - EABE80 - Korean hangul - - - 6F4A7B - AF84 - EABE84 - Korean hangul - - - 6F4A7C - AF88 - EABE88 - Korean hangul - - - 6F4A7D - AF90 - EABE90 - Korean hangul - - - 6F4A7E - AF95 - EABE95 - Korean hangul - - - 6F4B21 - AF9C - EABE9C - Korean hangul - - - 6F4B22 - AFB8 - EABEB8 - Korean hangul - - - 6F4B23 - AFB9 - EABEB9 - Korean hangul - - - 6F4B24 - AFBC - EABEBC - Korean hangul - - - 6F4B25 - AFC0 - EABF80 - Korean hangul - - - 6F4B26 - AFC7 - EABF87 - Korean hangul - - - 6F4B27 - AFC8 - EABF88 - Korean hangul - - - 6F4B28 - AFC9 - EABF89 - Korean hangul - - - 6F4B29 - AFCB - EABF8B - Korean hangul - - - 6F4B2A - AFCD - EABF8D - Korean hangul - - - 6F4B2B - AFCE - EABF8E - Korean hangul - - - 6F4B2C - AFD4 - EABF94 - Korean hangul - - - 6F4B2D - AFD8 - EABF98 - Korean hangul - - - 6F4B2E - AFE9 - EABFA9 - Korean hangul - - - 6F4B2F - AFF0 - EABFB0 - Korean hangul - - - 6F4B30 - B000 - EB8080 - Korean hangul - - - 6F4B32 - B00C - EB808C - Korean hangul - - - 6F4B33 - B00D - EB808D - Korean hangul - - - 6F4B34 - B010 - EB8090 - Korean hangul - - - 6F4B35 - B014 - EB8094 - Korean hangul - - - 6F4B36 - B01C - EB809C - Korean hangul - - - 6F4B37 - B01D - EB809D - Korean hangul - - - 6F4B38 - B028 - EB80A8 - Korean hangul - - - 6F4B39 - B044 - EB8184 - Korean hangul - - - 6F4B3A - B045 - EB8185 - Korean hangul - - - 6F4B3B - B048 - EB8188 - Korean hangul - - - 6F4B3C - B04A - EB818A - Korean hangul - - - 6F4B3D - B04C - EB818C - Korean hangul - - - 6F4B3E - B053 - EB8193 - Korean hangul - - - 6F4B3F - B054 - EB8194 - Korean hangul - - - 6F4B40 - B055 - EB8195 - Korean hangul - - - 6F4B41 - B057 - EB8197 - Korean hangul - - - 6F4B42 - B059 - EB8199 - Korean hangul - - - 6F4B43 - B05D - EB819D - Korean hangul - - - 6F4B44 - B07C - EB81BC - Korean hangul - - - 6F4B45 - B07D - EB81BD - Korean hangul - - - 6F4B46 - B080 - EB8280 - Korean hangul - - - 6F4B47 - B084 - EB8284 - Korean hangul - - - 6F4B48 - B08C - EB828C - Korean hangul - - - 6F4B49 - B08D - EB828D - Korean hangul - - - 6F4B4A - B08F - EB828F - Korean hangul - - - 6F4B4B - B090 - EB8290 - Korean hangul - - - 6F4B4C - B091 - EB8291 - Korean hangul - - - 6F4B4F - B098 - EB8298 - Korean hangul - - - 6F4B50 - B099 - EB8299 - Korean hangul - - - 6F4B51 - B09A - EB829A - Korean hangul - - - 6F4B52 - B09C - EB829C - Korean hangul - - - 6F4B53 - B09F - EB829F - Korean hangul - - - 6F4B54 - B0A0 - EB82A0 - Korean hangul - - - 6F4B55 - B0A1 - EB82A1 - Korean hangul - - - 6F4B56 - B0A8 - EB82A8 - Korean hangul - - - 6F4B57 - B0A9 - EB82A9 - Korean hangul - - - 6F4B58 - B0AB - EB82AB - Korean hangul - - - 6F4B59 - B0AC - EB82AC - Korean hangul - - - 6F4B5A - B0AD - EB82AD - Korean hangul - - - 6F4B5B - B0AE - EB82AE - Korean hangul - - - 6F4B5C - B0AF - EB82AF - Korean hangul - - - 6F4B5D - B0B1 - EB82B1 - Korean hangul - - - 6F4B5E - B0B3 - EB82B3 - Korean hangul - - - 6F4B5F - B0B4 - EB82B4 - Korean hangul - - - 6F4B60 - B0B5 - EB82B5 - Korean hangul - - - 6F4B61 - B0B8 - EB82B8 - Korean hangul - - - 6F4B62 - B0BB - EB82BB - Korean hangul - - - 6F4B63 - B0BC - EB82BC - Korean hangul - - - 6F4B64 - B0C4 - EB8384 - Korean hangul - - - 6F4B65 - B0C5 - EB8385 - Korean hangul - - - 6F4B66 - B0C7 - EB8387 - Korean hangul - - - 6F4B67 - B0C8 - EB8388 - Korean hangul - - - 6F4B68 - B0C9 - EB8389 - Korean hangul - - - 6F4B69 - B0D0 - EB8390 - Korean hangul - - - 6F4B6A - B0D1 - EB8391 - Korean hangul - - - 6F4B6B - B0E0 - EB83A0 - Korean hangul - - - 6F4B6C - B0E5 - EB83A5 - Korean hangul - - - 6F4B6D - B0EC - EB83AC - Korean hangul - - - 6F4B6E - B108 - EB8488 - Korean hangul - - - 6F4B6F - B109 - EB8489 - Korean hangul - - - 6F4B71 - B10B - EB848B - Korean hangul - - - 6F4B72 - B10C - EB848C - Korean hangul - - - 6F4B73 - B10F - EB848F - Korean hangul - - - 6F4B74 - B110 - EB8490 - Korean hangul - - - 6F4B75 - B113 - EB8493 - Korean hangul - - - 6F4B76 - B118 - EB8498 - Korean hangul - - - 6F4B77 - B119 - EB8499 - Korean hangul - - - 6F4B78 - B11B - EB849B - Korean hangul - - - 6F4B79 - B11C - EB849C - Korean hangul - - - 6F4B7A - B11D - EB849D - Korean hangul - - - 6F4B7B - B11E - EB849E - Korean hangul - - - 6F4B7C - B123 - EB84A3 - Korean hangul - - - 6F4B7D - B124 - EB84A4 - Korean hangul - - - 6F4B7E - B125 - EB84A5 - Korean hangul - - - 6F4C21 - B128 - EB84A8 - Korean hangul - - - 6F4C22 - B12C - EB84AC - Korean hangul - - - 6F4C23 - B134 - EB84B4 - Korean hangul - - - 6F4C24 - B135 - EB84B5 - Korean hangul - - - 6F4C25 - B137 - EB84B7 - Korean hangul - - - 6F4C26 - B140 - EB8580 - Korean hangul - - - 6F4C27 - B141 - EB8581 - Korean hangul - - - 6F4C28 - B144 - EB8584 - Korean hangul - - - 6F4C29 - B150 - EB8590 - Korean hangul - - - 6F4C2A - B151 - EB8591 - Korean hangul - - - 6F4C2B - B153 - EB8593 - Korean hangul - - - 6F4C2C - B154 - EB8594 - Korean hangul - - - 6F4C2D - B155 - EB8595 - Korean hangul - - - 6F4C2E - B158 - EB8598 - Korean hangul - - - 6F4C2F - B15C - EB859C - Korean hangul - - - 6F4C30 - B178 - EB85B8 - Korean hangul - - - 6F4C31 - B179 - EB85B9 - Korean hangul - - - 6F4C32 - B17A - EB85BA - Korean hangul - - - 6F4C33 - B17C - EB85BC - Korean hangul - - - 6F4C34 - B180 - EB8680 - Korean hangul - - - 6F4C35 - B188 - EB8688 - Korean hangul - - - 6F4C36 - B189 - EB8689 - Korean hangul - - - 6F4C37 - B18B - EB868B - Korean hangul - - - 6F4C38 - B18D - EB868D - Korean hangul - - - 6F4C39 - B192 - EB8692 - Korean hangul - - - 6F4C3A - B193 - EB8693 - Korean hangul - - - 6F4C3B - B194 - EB8694 - Korean hangul - - - 6F4C3C - B1A8 - EB86A8 - Korean hangul - - - 6F4C3D - B1CC - EB878C - Korean hangul - - - 6F4C3E - B1D0 - EB8790 - Korean hangul - - - 6F4C3F - B1D4 - EB8794 - Korean hangul - - - 6F4C40 - B1DC - EB879C - Korean hangul - - - 6F4C41 - B1E8 - EB87A8 - Korean hangul - - - 6F4C42 - B1FD - EB87BD - Korean hangul - - - 6F4C43 - B204 - EB8884 - Korean hangul - - - 6F4C44 - B205 - EB8885 - Korean hangul - - - 6F4C45 - B208 - EB8888 - Korean hangul - - - 6F4C46 - B20B - EB888B - Korean hangul - - - 6F4C47 - B20C - EB888C - Korean hangul - - - 6F4C48 - B213 - EB8893 - Korean hangul - - - 6F4C49 - B214 - EB8894 - Korean hangul - - - 6F4C4A - B215 - EB8895 - Korean hangul - - - 6F4C4B - B217 - EB8897 - Korean hangul - - - 6F4C4C - B220 - EB88A0 - Korean hangul - - - 6F4C4D - B233 - EB88B3 - Korean hangul - - - 6F4C4E - B234 - EB88B4 - Korean hangul - - - 6F4C4F - B258 - EB8998 - Korean hangul - - - 6F4C50 - B25C - EB899C - Korean hangul - - - 6F4C51 - B260 - EB89A0 - Korean hangul - - - 6F4C52 - B268 - EB89A8 - Korean hangul - - - 6F4C53 - B269 - EB89A9 - Korean hangul - - - 6F4C54 - B274 - EB89B4 - Korean hangul - - - 6F4C55 - B284 - EB8A84 - Korean hangul - - - 6F4C56 - B289 - EB8A89 - Korean hangul - - - 6F4C57 - B290 - EB8A90 - Korean hangul - - - 6F4C58 - B291 - EB8A91 - Korean hangul - - - 6F4C59 - B294 - EB8A94 - Korean hangul - - - 6F4C5A - B298 - EB8A98 - Korean hangul - - - 6F4C5B - B299 - EB8A99 - Korean hangul - - - 6F4C5C - B2A0 - EB8AA0 - Korean hangul - - - 6F4C5D - B2A1 - EB8AA1 - Korean hangul - - - 6F4C5E - B2A5 - EB8AA5 - Korean hangul - - - 6F4C5F - B2A6 - EB8AA6 - Korean hangul - - - 6F4C60 - B2AA - EB8AAA - Korean hangul - - - 6F4C61 - B2AC - EB8AAC - Korean hangul - - - 6F4C62 - B2C8 - EB8B88 - Korean hangul - - - 6F4C63 - B2C9 - EB8B89 - Korean hangul - - - 6F4C64 - B2CC - EB8B8C - Korean hangul - - - 6F4C65 - B2D0 - EB8B90 - Korean hangul - - - 6F4C66 - B2D8 - EB8B98 - Korean hangul - - - 6F4C67 - B2D9 - EB8B99 - Korean hangul - - - 6F4C68 - B2DB - EB8B9B - Korean hangul - - - 6F4C69 - B2DD - EB8B9D - Korean hangul - - - 6F4C6A - B2E2 - EB8BA2 - Korean hangul - - - 6F4C6D - B2E4 - EB8BA4 - Korean hangul - - - 6F4C6E - B2E5 - EB8BA5 - Korean hangul - - - 6F4C6F - B2E6 - EB8BA6 - Korean hangul - - - 6F4C70 - B2E8 - EB8BA8 - Korean hangul - - - 6F4C71 - B2EB - EB8BAB - Korean hangul - - - 6F4C72 - B2EC - EB8BAC - Korean hangul - - - 6F4C73 - B2ED - EB8BAD - Korean hangul - - - 6F4C74 - B2EE - EB8BAE - Korean hangul - - - 6F4C75 - B2F3 - EB8BB3 - Korean hangul - - - 6F4C76 - B2F4 - EB8BB4 - Korean hangul - - - 6F4C77 - B2F5 - EB8BB5 - Korean hangul - - - 6F4C78 - B2F7 - EB8BB7 - Korean hangul - - - 6F4C79 - B2F9 - EB8BB9 - Korean hangul - - - 6F4C7A - B2FA - EB8BBA - Korean hangul - - - 6F4C7B - B2FB - EB8BBB - Korean hangul - - - 6F4C7C - B2FF - EB8BBF - Korean hangul - - - 6F4C7D - B300 - EB8C80 - Korean hangul - - - 6F4C7E - B301 - EB8C81 - Korean hangul - - - 6F4D21 - B304 - EB8C84 - Korean hangul - - - 6F4D22 - B308 - EB8C88 - Korean hangul - - - 6F4D23 - B310 - EB8C90 - Korean hangul - - - 6F4D24 - B311 - EB8C91 - Korean hangul - - - 6F4D25 - B313 - EB8C93 - Korean hangul - - - 6F4D26 - B314 - EB8C94 - Korean hangul - - - 6F4D27 - B315 - EB8C95 - Korean hangul - - - 6F4D28 - B354 - EB8D94 - Korean hangul - - - 6F4D29 - B355 - EB8D95 - Korean hangul - - - 6F4D2A - B358 - EB8D98 - Korean hangul - - - 6F4D2B - B35B - EB8D9B - Korean hangul - - - 6F4D2C - B35C - EB8D9C - Korean hangul - - - 6F4D2D - B35F - EB8D9F - Korean hangul - - - 6F4D2E - B364 - EB8DA4 - Korean hangul - - - 6F4D2F - B365 - EB8DA5 - Korean hangul - - - 6F4D30 - B367 - EB8DA7 - Korean hangul - - - 6F4D31 - B368 - EB8DA8 - Korean hangul - - - 6F4D32 - B369 - EB8DA9 - Korean hangul - - - 6F4D33 - B36A - EB8DAA - Korean hangul - - - 6F4D34 - B36B - EB8DAB - Korean hangul - - - 6F4D35 - B36E - EB8DAE - Korean hangul - - - 6F4D36 - B370 - EB8DB0 - Korean hangul - - - 6F4D37 - B371 - EB8DB1 - Korean hangul - - - 6F4D38 - B374 - EB8DB4 - Korean hangul - - - 6F4D39 - B378 - EB8DB8 - Korean hangul - - - 6F4D3A - B380 - EB8E80 - Korean hangul - - - 6F4D3B - B383 - EB8E83 - Korean hangul - - - 6F4D3C - B385 - EB8E85 - Korean hangul - - - 6F4D3D - B38C - EB8E8C - Korean hangul - - - 6F4D3E - B3C4 - EB8F84 - Korean hangul - - - 6F4D3F - B3C5 - EB8F85 - Korean hangul - - - 6F4D40 - B3C8 - EB8F88 - Korean hangul - - - 6F4D41 - B3CB - EB8F8B - Korean hangul - - - 6F4D42 - B3CC - EB8F8C - Korean hangul - - - 6F4D43 - B3D0 - EB8F90 - Korean hangul - - - 6F4D44 - B3D4 - EB8F94 - Korean hangul - - - 6F4D45 - B3D5 - EB8F95 - Korean hangul - - - 6F4D46 - B3D7 - EB8F97 - Korean hangul - - - 6F4D47 - B3D9 - EB8F99 - Korean hangul - - - 6F4D48 - B3DB - EB8F9B - Korean hangul - - - 6F4D49 - B3FC - EB8FBC - Korean hangul - - - 6F4D4A - B400 - EB9080 - Korean hangul - - - 6F4D4B - B410 - EB9090 - Korean hangul - - - 6F4D4C - B418 - EB9098 - Korean hangul - - - 6F4D4D - B41C - EB909C - Korean hangul - - - 6F4D4E - B420 - EB90A0 - Korean hangul - - - 6F4D4F - B428 - EB90A8 - Korean hangul - - - 6F4D50 - B429 - EB90A9 - Korean hangul - - - 6F4D51 - B42B - EB90AB - Korean hangul - - - 6F4D52 - B42C - EB90AC - Korean hangul - - - 6F4D53 - B450 - EB9190 - Korean hangul - - - 6F4D54 - B451 - EB9191 - Korean hangul - - - 6F4D55 - B454 - EB9194 - Korean hangul - - - 6F4D56 - B458 - EB9198 - Korean hangul - - - 6F4D57 - B460 - EB91A0 - Korean hangul - - - 6F4D58 - B461 - EB91A1 - Korean hangul - - - 6F4D59 - B463 - EB91A3 - Korean hangul - - - 6F4D5A - B465 - EB91A5 - Korean hangul - - - 6F4D5B - B46C - EB91AC - Korean hangul - - - 6F4D5C - B480 - EB9280 - Korean hangul - - - 6F4D5D - B488 - EB9288 - Korean hangul - - - 6F4D5E - B4A4 - EB92A4 - Korean hangul - - - 6F4D5F - B4B7 - EB92B7 - Korean hangul - - - 6F4D60 - B4C0 - EB9380 - Korean hangul - - - 6F4D61 - B4D0 - EB9390 - Korean hangul - - - 6F4D62 - B4DC - EB939C - Korean hangul - - - 6F4D63 - B4DD - EB939D - Korean hangul - - - 6F4D64 - B4E0 - EB93A0 - Korean hangul - - - 6F4D65 - B4E3 - EB93A3 - Korean hangul - - - 6F4D66 - B4E4 - EB93A4 - Korean hangul - - - 6F4D67 - B4EC - EB93AC - Korean hangul - - - 6F4D68 - B4ED - EB93AD - Korean hangul - - - 6F4D69 - B4EF - EB93AF - Korean hangul - - - 6F4D6A - B4F1 - EB93B1 - Korean hangul - - - 6F4D6B - B514 - EB9494 - Korean hangul - - - 6F4D6C - B515 - EB9495 - Korean hangul - - - 6F4D6D - B518 - EB9498 - Korean hangul - - - 6F4D6E - B51B - EB949B - Korean hangul - - - 6F4D6F - B51C - EB949C - Korean hangul - - - 6F4D70 - B524 - EB94A4 - Korean hangul - - - 6F4D71 - B525 - EB94A5 - Korean hangul - - - 6F4D72 - B527 - EB94A7 - Korean hangul - - - 6F4D73 - B528 - EB94A8 - Korean hangul - - - 6F4D74 - B529 - EB94A9 - Korean hangul - - - 6F4D75 - B52A - EB94AA - Korean hangul - - - 6F4D78 - B530 - EB94B0 - Korean hangul - - - 6F4D79 - B531 - EB94B1 - Korean hangul - - - 6F4D7A - B532 - EB94B2 - Korean hangul - - - 6F4D7B - B534 - EB94B4 - Korean hangul - - - 6F4D7C - B537 - EB94B7 - Korean hangul - - - 6F4D7D - B538 - EB94B8 - Korean hangul - - - 6F4E21 - B540 - EB9580 - Korean hangul - - - 6F4E22 - B541 - EB9581 - Korean hangul - - - 6F4E23 - B543 - EB9583 - Korean hangul - - - 6F4E24 - B544 - EB9584 - Korean hangul - - - 6F4E25 - B545 - EB9585 - Korean hangul - - - 6F4E26 - B54B - EB958B - Korean hangul - - - 6F4E27 - B54C - EB958C - Korean hangul - - - 6F4E28 - B54D - EB958D - Korean hangul - - - 6F4E29 - B550 - EB9590 - Korean hangul - - - 6F4E2A - B554 - EB9594 - Korean hangul - - - 6F4E2B - B55C - EB959C - Korean hangul - - - 6F4E2C - B55D - EB959D - Korean hangul - - - 6F4E2D - B55F - EB959F - Korean hangul - - - 6F4E2E - B560 - EB95A0 - Korean hangul - - - 6F4E2F - B561 - EB95A1 - Korean hangul - - - 6F4E30 - B5A0 - EB96A0 - Korean hangul - - - 6F4E31 - B5A1 - EB96A1 - Korean hangul - - - 6F4E32 - B5A4 - EB96A4 - Korean hangul - - - 6F4E33 - B5A8 - EB96A8 - Korean hangul - - - 6F4E34 - B5AB - EB96AB - Korean hangul - - - 6F4E35 - B5B0 - EB96B0 - Korean hangul - - - 6F4E36 - B5B1 - EB96B1 - Korean hangul - - - 6F4E37 - B5B3 - EB96B3 - Korean hangul - - - 6F4E38 - B5B4 - EB96B4 - Korean hangul - - - 6F4E39 - B5B5 - EB96B5 - Korean hangul - - - 6F4E3A - B5BB - EB96BB - Korean hangul - - - 6F4E3B - B5BC - EB96BC - Korean hangul - - - 6F4E3C - B5C0 - EB9780 - Korean hangul - - - 6F4E3D - B5C4 - EB9784 - Korean hangul - - - 6F4E3E - B5CC - EB978C - Korean hangul - - - 6F4E3F - B5CF - EB978F - Korean hangul - - - 6F4E40 - B5D1 - EB9791 - Korean hangul - - - 6F4E41 - B610 - EB9890 - Korean hangul - - - 6F4E42 - B611 - EB9891 - Korean hangul - - - 6F4E43 - B614 - EB9894 - Korean hangul - - - 6F4E44 - B618 - EB9898 - Korean hangul - - - 6F4E45 - B625 - EB98A5 - Korean hangul - - - 6F4E46 - B664 - EB99A4 - Korean hangul - - - 6F4E47 - B69C - EB9A9C - Korean hangul - - - 6F4E48 - B69D - EB9A9D - Korean hangul - - - 6F4E49 - B6A4 - EB9AA4 - Korean hangul - - - 6F4E4A - B6AB - EB9AAB - Korean hangul - - - 6F4E4B - B6AC - EB9AAC - Korean hangul - - - 6F4E4C - B6B1 - EB9AB1 - Korean hangul - - - 6F4E4D - B6F0 - EB9BB0 - Korean hangul - - - 6F4E4E - B6F4 - EB9BB4 - Korean hangul - - - 6F4E4F - B6F8 - EB9BB8 - Korean hangul - - - 6F4E50 - B700 - EB9C80 - Korean hangul - - - 6F4E51 - B701 - EB9C81 - Korean hangul - - - 6F4E52 - B728 - EB9CA8 - Korean hangul - - - 6F4E53 - B729 - EB9CA9 - Korean hangul - - - 6F4E54 - B72C - EB9CAC - Korean hangul - - - 6F4E55 - B72F - EB9CAF - Korean hangul - - - 6F4E56 - B730 - EB9CB0 - Korean hangul - - - 6F4E57 - B738 - EB9CB8 - Korean hangul - - - 6F4E58 - B739 - EB9CB9 - Korean hangul - - - 6F4E59 - B73B - EB9CBB - Korean hangul - - - 6F4E5A - B744 - EB9D84 - Korean hangul - - - 6F4E5B - B748 - EB9D88 - Korean hangul - - - 6F4E5C - B760 - EB9DA0 - Korean hangul - - - 6F4E5D - B764 - EB9DA4 - Korean hangul - - - 6F4E5E - B768 - EB9DA8 - Korean hangul - - - 6F4E5F - B770 - EB9DB0 - Korean hangul - - - 6F4E60 - B771 - EB9DB1 - Korean hangul - - - 6F4E61 - B775 - EB9DB5 - Korean hangul - - - 6F4E64 - B77C - EB9DBC - Korean hangul - - - 6F4E65 - B77D - EB9DBD - Korean hangul - - - 6F4E66 - B780 - EB9E80 - Korean hangul - - - 6F4E67 - B784 - EB9E84 - Korean hangul - - - 6F4E68 - B78C - EB9E8C - Korean hangul - - - 6F4E69 - B78D - EB9E8D - Korean hangul - - - 6F4E6A - B78F - EB9E8F - Korean hangul - - - 6F4E6B - B790 - EB9E90 - Korean hangul - - - 6F4E6C - B791 - EB9E91 - Korean hangul - - - 6F4E6D - B797 - EB9E97 - Korean hangul - - - 6F4E6E - B798 - EB9E98 - Korean hangul - - - 6F4E6F - B799 - EB9E99 - Korean hangul - - - 6F4E70 - B79C - EB9E9C - Korean hangul - - - 6F4E71 - B7A0 - EB9EA0 - Korean hangul - - - 6F4E72 - B7A8 - EB9EA8 - Korean hangul - - - 6F4E73 - B7A9 - EB9EA9 - Korean hangul - - - 6F4E74 - B7AB - EB9EAB - Korean hangul - - - 6F4E75 - B7AC - EB9EAC - Korean hangul - - - 6F4E76 - B7AD - EB9EAD - Korean hangul - - - 6F4E77 - B7B4 - EB9EB4 - Korean hangul - - - 6F4E78 - B7B5 - EB9EB5 - Korean hangul - - - 6F4E79 - B7C9 - EB9F89 - Korean hangul - - - 6F4E7A - B7EC - EB9FAC - Korean hangul - - - 6F4E7B - B7ED - EB9FAD - Korean hangul - - - 6F4E7C - B7F0 - EB9FB0 - Korean hangul - - - 6F4E7D - B7F4 - EB9FB4 - Korean hangul - - - 6F4E7E - B7FC - EB9FBC - Korean hangul - - - 6F4F21 - B7FD - EB9FBD - Korean hangul - - - 6F4F22 - B7FF - EB9FBF - Korean hangul - - - 6F4F23 - B800 - EBA080 - Korean hangul - - - 6F4F24 - B801 - EBA081 - Korean hangul - - - 6F4F25 - B807 - EBA087 - Korean hangul - - - 6F4F26 - B808 - EBA088 - Korean hangul - - - 6F4F27 - B809 - EBA089 - Korean hangul - - - 6F4F28 - B80C - EBA08C - Korean hangul - - - 6F4F29 - B810 - EBA090 - Korean hangul - - - 6F4F2A - B818 - EBA098 - Korean hangul - - - 6F4F2B - B819 - EBA099 - Korean hangul - - - 6F4F2C - B81B - EBA09B - Korean hangul - - - 6F4F2D - B81D - EBA09D - Korean hangul - - - 6F4F2E - B824 - EBA0A4 - Korean hangul - - - 6F4F2F - B825 - EBA0A5 - Korean hangul - - - 6F4F30 - B828 - EBA0A8 - Korean hangul - - - 6F4F31 - B82C - EBA0AC - Korean hangul - - - 6F4F32 - B834 - EBA0B4 - Korean hangul - - - 6F4F33 - B835 - EBA0B5 - Korean hangul - - - 6F4F34 - B837 - EBA0B7 - Korean hangul - - - 6F4F35 - B838 - EBA0B8 - Korean hangul - - - 6F4F36 - B839 - EBA0B9 - Korean hangul - - - 6F4F37 - B840 - EBA180 - Korean hangul - - - 6F4F38 - B85C - EBA19C - Korean hangul - - - 6F4F39 - B85D - EBA19D - Korean hangul - - - 6F4F3A - B860 - EBA1A0 - Korean hangul - - - 6F4F3B - B864 - EBA1A4 - Korean hangul - - - 6F4F3C - B86C - EBA1AC - Korean hangul - - - 6F4F3D - B86D - EBA1AD - Korean hangul - - - 6F4F3E - B86F - EBA1AF - Korean hangul - - - 6F4F3F - B871 - EBA1B1 - Korean hangul - - - 6F4F40 - B8B0 - EBA2B0 - Korean hangul - - - 6F4F41 - B8CC - EBA38C - Korean hangul - - - 6F4F42 - B8E1 - EBA3A1 - Korean hangul - - - 6F4F43 - B8E8 - EBA3A8 - Korean hangul - - - 6F4F44 - B8E9 - EBA3A9 - Korean hangul - - - 6F4F45 - B8EC - EBA3AC - Korean hangul - - - 6F4F46 - B8F0 - EBA3B0 - Korean hangul - - - 6F4F47 - B8F8 - EBA3B8 - Korean hangul - - - 6F4F48 - B8F9 - EBA3B9 - Korean hangul - - - 6F4F49 - B8FB - EBA3BB - Korean hangul - - - 6F4F4A - B8FD - EBA3BD - Korean hangul - - - 6F4F4B - B904 - EBA484 - Korean hangul - - - 6F4F4C - B93C - EBA4BC - Korean hangul - - - 6F4F4D - B958 - EBA598 - Korean hangul - - - 6F4F4E - B959 - EBA599 - Korean hangul - - - 6F4F4F - B95C - EBA59C - Korean hangul - - - 6F4F50 - B960 - EBA5A0 - Korean hangul - - - 6F4F51 - B968 - EBA5A8 - Korean hangul - - - 6F4F52 - B96D - EBA5AD - Korean hangul - - - 6F4F53 - B974 - EBA5B4 - Korean hangul - - - 6F4F54 - B975 - EBA5B5 - Korean hangul - - - 6F4F55 - B978 - EBA5B8 - Korean hangul - - - 6F4F56 - B97C - EBA5BC - Korean hangul - - - 6F4F57 - B984 - EBA684 - Korean hangul - - - 6F4F58 - B985 - EBA685 - Korean hangul - - - 6F4F59 - B987 - EBA687 - Korean hangul - - - 6F4F5A - B989 - EBA689 - Korean hangul - - - 6F4F5B - B98E - EBA68E - Korean hangul - - - 6F4F5C - B9AC - EBA6AC - Korean hangul - - - 6F4F5D - B9AD - EBA6AD - Korean hangul - - - 6F4F5E - B9B0 - EBA6B0 - Korean hangul - - - 6F4F5F - B9B4 - EBA6B4 - Korean hangul - - - 6F4F60 - B9BC - EBA6BC - Korean hangul - - - 6F4F61 - B9BD - EBA6BD - Korean hangul - - - 6F4F62 - B9BF - EBA6BF - Korean hangul - - - 6F4F63 - B9C1 - EBA781 - Korean hangul - - - 6F4F66 - B9C8 - EBA788 - Korean hangul - - - 6F4F67 - B9C9 - EBA789 - Korean hangul - - - 6F4F68 - B9CC - EBA78C - Korean hangul - - - 6F4F69 - B9CE - EBA78E - Korean hangul - - - 6F4F6A - B9CF - EBA78F - Korean hangul - - - 6F4F6B - B9D0 - EBA790 - Korean hangul - - - 6F4F6C - B9D1 - EBA791 - Korean hangul - - - 6F4F6D - B9D8 - EBA798 - Korean hangul - - - 6F4F6E - B9D9 - EBA799 - Korean hangul - - - 6F4F6F - B9DB - EBA79B - Korean hangul - - - 6F4F70 - B9DD - EBA79D - Korean hangul - - - 6F4F71 - B9DE - EBA79E - Korean hangul - - - 6F4F72 - B9E1 - EBA7A1 - Korean hangul - - - 6F4F73 - B9E3 - EBA7A3 - Korean hangul - - - 6F4F74 - B9E4 - EBA7A4 - Korean hangul - - - 6F4F75 - B9E5 - EBA7A5 - Korean hangul - - - 6F4F76 - B9E8 - EBA7A8 - Korean hangul - - - 6F4F77 - B9EC - EBA7AC - Korean hangul - - - 6F4F78 - B9F4 - EBA7B4 - Korean hangul - - - 6F4F79 - B9F5 - EBA7B5 - Korean hangul - - - 6F4F7A - B9F7 - EBA7B7 - Korean hangul - - - 6F4F7B - B9F8 - EBA7B8 - Korean hangul - - - 6F4F7C - B9F9 - EBA7B9 - Korean hangul - - - 6F4F7D - B9FA - EBA7BA - Korean hangul - - - 6F4F7E - BA00 - EBA880 - Korean hangul - - - 6F5021 - BA38 - EBA8B8 - Korean hangul - - - 6F5022 - BA39 - EBA8B9 - Korean hangul - - - 6F5023 - BA3C - EBA8BC - Korean hangul - - - 6F5024 - BA40 - EBA980 - Korean hangul - - - 6F5025 - BA48 - EBA988 - Korean hangul - - - 6F5026 - BA49 - EBA989 - Korean hangul - - - 6F5027 - BA4B - EBA98B - Korean hangul - - - 6F5028 - BA4D - EBA98D - Korean hangul - - - 6F5029 - BA4E - EBA98E - Korean hangul - - - 6F502A - BA53 - EBA993 - Korean hangul - - - 6F502B - BA54 - EBA994 - Korean hangul - - - 6F502C - BA55 - EBA995 - Korean hangul - - - 6F502D - BA58 - EBA998 - Korean hangul - - - 6F502E - BA5C - EBA99C - Korean hangul - - - 6F502F - BA64 - EBA9A4 - Korean hangul - - - 6F5030 - BA65 - EBA9A5 - Korean hangul - - - 6F5031 - BA67 - EBA9A7 - Korean hangul - - - 6F5032 - BA70 - EBA9B0 - Korean hangul - - - 6F5033 - BA71 - EBA9B1 - Korean hangul - - - 6F5034 - BA74 - EBA9B4 - Korean hangul - - - 6F5035 - BA78 - EBA9B8 - Korean hangul - - - 6F5036 - BA83 - EBAA83 - Korean hangul - - - 6F5037 - BA84 - EBAA84 - Korean hangul - - - 6F5038 - BA85 - EBAA85 - Korean hangul - - - 6F5039 - BA87 - EBAA87 - Korean hangul - - - 6F503A - BAA8 - EBAAA8 - Korean hangul - - - 6F503B - BAA9 - EBAAA9 - Korean hangul - - - 6F503C - BAAB - EBAAAB - Korean hangul - - - 6F503D - BAAC - EBAAAC - Korean hangul - - - 6F503E - BAB0 - EBAAB0 - Korean hangul - - - 6F503F - BAB8 - EBAAB8 - Korean hangul - - - 6F5040 - BAB9 - EBAAB9 - Korean hangul - - - 6F5041 - BABB - EBAABB - Korean hangul - - - 6F5042 - BABD - EBAABD - Korean hangul - - - 6F5043 - BAC3 - EBAB83 - Korean hangul - - - 6F5044 - BAFC - EBABBC - Korean hangul - - - 6F5045 - BB0F - EBAC8F - Korean hangul - - - 6F5046 - BB18 - EBAC98 - Korean hangul - - - 6F5047 - BB34 - EBACB4 - Korean hangul - - - 6F5048 - BB35 - EBACB5 - Korean hangul - - - 6F5049 - BB36 - EBACB6 - Korean hangul - - - 6F504A - BB38 - EBACB8 - Korean hangul - - - 6F504B - BB3B - EBACBB - Korean hangul - - - 6F504C - BB3C - EBACBC - Korean hangul - - - 6F504D - BB3D - EBACBD - Korean hangul - - - 6F504E - BB44 - EBAD84 - Korean hangul - - - 6F504F - BB47 - EBAD87 - Korean hangul - - - 6F5050 - BB49 - EBAD89 - Korean hangul - - - 6F5051 - BB4D - EBAD8D - Korean hangul - - - 6F5052 - BB4F - EBAD8F - Korean hangul - - - 6F5053 - BB50 - EBAD90 - Korean hangul - - - 6F5054 - BB54 - EBAD94 - Korean hangul - - - 6F5055 - BB58 - EBAD98 - Korean hangul - - - 6F5056 - BB61 - EBADA1 - Korean hangul - - - 6F5057 - BB63 - EBADA3 - Korean hangul - - - 6F5058 - BB88 - EBAE88 - Korean hangul - - - 6F5059 - BB8C - EBAE8C - Korean hangul - - - 6F505A - BBA4 - EBAEA4 - Korean hangul - - - 6F505B - BBC0 - EBAF80 - Korean hangul - - - 6F505C - BBC4 - EBAF84 - Korean hangul - - - 6F505D - BBC8 - EBAF88 - Korean hangul - - - 6F505E - BBD0 - EBAF90 - Korean hangul - - - 6F505F - BBF8 - EBAFB8 - Korean hangul - - - 6F5060 - BBF9 - EBAFB9 - Korean hangul - - - 6F5061 - BBFC - EBAFBC - Korean hangul - - - 6F5062 - BBFF - EBAFBF - Korean hangul - - - 6F5063 - BC00 - EBB080 - Korean hangul - - - 6F5064 - BC08 - EBB088 - Korean hangul - - - 6F5065 - BC09 - EBB089 - Korean hangul - - - 6F5066 - BC0B - EBB08B - Korean hangul - - - 6F5068 - BC0D - EBB08D - Korean hangul - - - 6F5069 - BC0F - EBB08F - Korean hangul - - - 6F506A - BC11 - EBB091 - Korean hangul - - - 6F506B - BBB4 - EBAEB4 - Korean hangul - - - 6F506D - BC14 - EBB094 - Korean hangul - - - 6F506E - BC15 - EBB095 - Korean hangul - - - 6F506F - BC16 - EBB096 - Korean hangul - - - 6F5070 - BC18 - EBB098 - Korean hangul - - - 6F5071 - BC1B - EBB09B - Korean hangul - - - 6F5072 - BC1C - EBB09C - Korean hangul - - - 6F5073 - BC1D - EBB09D - Korean hangul - - - 6F5074 - BC1F - EBB09F - Korean hangul - - - 6F5075 - BC24 - EBB0A4 - Korean hangul - - - 6F5076 - BC25 - EBB0A5 - Korean hangul - - - 6F5077 - BC27 - EBB0A7 - Korean hangul - - - 6F5078 - BC29 - EBB0A9 - Korean hangul - - - 6F5079 - BC2D - EBB0AD - Korean hangul - - - 6F507A - BC30 - EBB0B0 - Korean hangul - - - 6F507B - BC31 - EBB0B1 - Korean hangul - - - 6F507C - BC34 - EBB0B4 - Korean hangul - - - 6F507D - BC37 - EBB0B7 - Korean hangul - - - 6F507E - BC38 - EBB0B8 - Korean hangul - - - 6F5121 - BC40 - EBB180 - Korean hangul - - - 6F5122 - BC41 - EBB181 - Korean hangul - - - 6F5123 - BC43 - EBB183 - Korean hangul - - - 6F5124 - BC44 - EBB184 - Korean hangul - - - 6F5125 - BC45 - EBB185 - Korean hangul - - - 6F5126 - BC84 - EBB284 - Korean hangul - - - 6F5127 - BC85 - EBB285 - Korean hangul - - - 6F5128 - BC88 - EBB288 - Korean hangul - - - 6F5129 - BC8B - EBB28B - Korean hangul - - - 6F512A - BC8C - EBB28C - Korean hangul - - - 6F512B - BC94 - EBB294 - Korean hangul - - - 6F512C - BC95 - EBB295 - Korean hangul - - - 6F512D - BC97 - EBB297 - Korean hangul - - - 6F512E - BC98 - EBB298 - Korean hangul - - - 6F512F - BC99 - EBB299 - Korean hangul - - - 6F5130 - BC9A - EBB29A - Korean hangul - - - 6F5131 - BCA0 - EBB2A0 - Korean hangul - - - 6F5132 - BCA1 - EBB2A1 - Korean hangul - - - 6F5133 - BCA4 - EBB2A4 - Korean hangul - - - 6F5134 - BCA7 - EBB2A7 - Korean hangul - - - 6F5135 - BCA8 - EBB2A8 - Korean hangul - - - 6F5136 - BCB0 - EBB2B0 - Korean hangul - - - 6F5137 - BCB1 - EBB2B1 - Korean hangul - - - 6F5138 - BCB3 - EBB2B3 - Korean hangul - - - 6F5139 - BCB5 - EBB2B5 - Korean hangul - - - 6F513A - BCBC - EBB2BC - Korean hangul - - - 6F513B - BCBD - EBB2BD - Korean hangul - - - 6F513C - BCC0 - EBB380 - Korean hangul - - - 6F513D - BCC4 - EBB384 - Korean hangul - - - 6F513E - BCCC - EBB38C - Korean hangul - - - 6F513F - BCCD - EBB38D - Korean hangul - - - 6F5140 - BCCF - EBB38F - Korean hangul - - - 6F5141 - BCD0 - EBB390 - Korean hangul - - - 6F5142 - BCD1 - EBB391 - Korean hangul - - - 6F5143 - BCD2 - EBB392 - Korean hangul - - - 6F5144 - BCD5 - EBB395 - Korean hangul - - - 6F5145 - BCF4 - EBB3B4 - Korean hangul - - - 6F5146 - BCF5 - EBB3B5 - Korean hangul - - - 6F5147 - BCF6 - EBB3B6 - Korean hangul - - - 6F5148 - BCF8 - EBB3B8 - Korean hangul - - - 6F5149 - BCFC - EBB3BC - Korean hangul - - - 6F514A - BD04 - EBB484 - Korean hangul - - - 6F514B - BD05 - EBB485 - Korean hangul - - - 6F514C - BD07 - EBB487 - Korean hangul - - - 6F514D - BD09 - EBB489 - Korean hangul - - - 6F514E - BD10 - EBB490 - Korean hangul - - - 6F514F - BD14 - EBB494 - Korean hangul - - - 6F5150 - BD24 - EBB4A4 - Korean hangul - - - 6F5151 - BD48 - EBB588 - Korean hangul - - - 6F5152 - BD49 - EBB589 - Korean hangul - - - 6F5153 - BD4C - EBB58C - Korean hangul - - - 6F5154 - BD50 - EBB590 - Korean hangul - - - 6F5155 - BD58 - EBB598 - Korean hangul - - - 6F5156 - BD59 - EBB599 - Korean hangul - - - 6F5157 - BD64 - EBB5A4 - Korean hangul - - - 6F5158 - BD80 - EBB680 - Korean hangul - - - 6F5159 - BD81 - EBB681 - Korean hangul - - - 6F515A - BD84 - EBB684 - Korean hangul - - - 6F515B - BD87 - EBB687 - Korean hangul - - - 6F515C - BD88 - EBB688 - Korean hangul - - - 6F515D - BD89 - EBB689 - Korean hangul - - - 6F515E - BD90 - EBB690 - Korean hangul - - - 6F515F - BD91 - EBB691 - Korean hangul - - - 6F5160 - BD93 - EBB693 - Korean hangul - - - 6F5161 - BD95 - EBB695 - Korean hangul - - - 6F5162 - BD99 - EBB699 - Korean hangul - - - 6F5163 - BD9C - EBB69C - Korean hangul - - - 6F5164 - BDD4 - EBB794 - Korean hangul - - - 6F5165 - BDF0 - EBB7B0 - Korean hangul - - - 6F5166 - BE0C - EBB88C - Korean hangul - - - 6F5167 - BE0D - EBB88D - Korean hangul - - - 6F5168 - BE10 - EBB890 - Korean hangul - - - 6F5169 - BE14 - EBB894 - Korean hangul - - - 6F516A - BE1C - EBB89C - Korean hangul - - - 6F516B - BE1D - EBB89D - Korean hangul - - - 6F516C - BE1F - EBB89F - Korean hangul - - - 6F516D - BE44 - EBB984 - Korean hangul - - - 6F516E - BE45 - EBB985 - Korean hangul - - - 6F516F - BE48 - EBB988 - Korean hangul - - - 6F5170 - BE4B - EBB98B - Korean hangul - - - 6F5171 - BE4C - EBB98C - Korean hangul - - - 6F5172 - BE4E - EBB98E - Korean hangul - - - 6F5173 - BE54 - EBB994 - Korean hangul - - - 6F5174 - BE55 - EBB995 - Korean hangul - - - 6F5175 - BE57 - EBB997 - Korean hangul - - - 6F5176 - BE59 - EBB999 - Korean hangul - - - 6F5177 - BE5A - EBB99A - Korean hangul - - - 6F5178 - BE5B - EBB99B - Korean hangul - - - 6F517B - BE60 - EBB9A0 - Korean hangul - - - 6F517C - BE61 - EBB9A1 - Korean hangul - - - 6F517D - BE64 - EBB9A4 - Korean hangul - - - 6F517E - BE68 - EBB9A8 - Korean hangul - - - 6F5221 - BE70 - EBB9B0 - Korean hangul - - - 6F5222 - BE71 - EBB9B1 - Korean hangul - - - 6F5223 - BE73 - EBB9B3 - Korean hangul - - - 6F5224 - BE74 - EBB9B4 - Korean hangul - - - 6F5225 - BE75 - EBB9B5 - Korean hangul - - - 6F5226 - BE7B - EBB9BB - Korean hangul - - - 6F5227 - BE7C - EBB9BC - Korean hangul - - - 6F5228 - BE7D - EBB9BD - Korean hangul - - - 6F5229 - BE80 - EBBA80 - Korean hangul - - - 6F522A - BE84 - EBBA84 - Korean hangul - - - 6F522B - BE8C - EBBA8C - Korean hangul - - - 6F522C - BE8F - EBBA8F - Korean hangul - - - 6F522D - BE90 - EBBA90 - Korean hangul - - - 6F522E - BE91 - EBBA91 - Korean hangul - - - 6F522F - BE98 - EBBA98 - Korean hangul - - - 6F5230 - BEA8 - EBBAA8 - Korean hangul - - - 6F5231 - BED0 - EBBB90 - Korean hangul - - - 6F5232 - BED1 - EBBB91 - Korean hangul - - - 6F5233 - BED4 - EBBB94 - Korean hangul - - - 6F5234 - BED7 - EBBB97 - Korean hangul - - - 6F5235 - BED8 - EBBB98 - Korean hangul - - - 6F5236 - BEE0 - EBBBA0 - Korean hangul - - - 6F5237 - BEE3 - EBBBA3 - Korean hangul - - - 6F5238 - BEE4 - EBBBA4 - Korean hangul - - - 6F5239 - BEE5 - EBBBA5 - Korean hangul - - - 6F523A - BEEC - EBBBAC - Korean hangul - - - 6F523B - BF08 - EBBC88 - Korean hangul - - - 6F523C - BF09 - EBBC89 - Korean hangul - - - 6F523D - BF18 - EBBC98 - Korean hangul - - - 6F523E - BF1D - EBBC9D - Korean hangul - - - 6F523F - BF40 - EBBD80 - Korean hangul - - - 6F5240 - BF41 - EBBD81 - Korean hangul - - - 6F5241 - BF44 - EBBD84 - Korean hangul - - - 6F5242 - BF48 - EBBD88 - Korean hangul - - - 6F5243 - BF50 - EBBD90 - Korean hangul - - - 6F5244 - BF51 - EBBD91 - Korean hangul - - - 6F5245 - BF55 - EBBD95 - Korean hangul - - - 6F5246 - BFB0 - EBBEB0 - Korean hangul - - - 6F5247 - BFC0 - EBBF80 - Korean hangul - - - 6F5248 - BFC5 - EBBF85 - Korean hangul - - - 6F5249 - BFCC - EBBF8C - Korean hangul - - - 6F524A - BFCD - EBBF8D - Korean hangul - - - 6F524B - BFD0 - EBBF90 - Korean hangul - - - 6F524C - BFD4 - EBBF94 - Korean hangul - - - 6F524D - BFDC - EBBF9C - Korean hangul - - - 6F524E - BFDD - EBBF9D - Korean hangul - - - 6F524F - BFE1 - EBBFA1 - Korean hangul - - - 6F5250 - C058 - EC8198 - Korean hangul - - - 6F5251 - C059 - EC8199 - Korean hangul - - - 6F5252 - C05C - EC819C - Korean hangul - - - 6F5253 - C060 - EC81A0 - Korean hangul - - - 6F5254 - C068 - EC81A8 - Korean hangul - - - 6F5255 - C069 - EC81A9 - Korean hangul - - - 6F5256 - C090 - EC8290 - Korean hangul - - - 6F5257 - C091 - EC8291 - Korean hangul - - - 6F5258 - C094 - EC8294 - Korean hangul - - - 6F5259 - C098 - EC8298 - Korean hangul - - - 6F525A - C0A0 - EC82A0 - Korean hangul - - - 6F525B - C0A3 - EC82A3 - Korean hangul - - - 6F525C - C0A5 - EC82A5 - Korean hangul - - - 6F525F - C0AC - EC82AC - Korean hangul - - - 6F5260 - C0AD - EC82AD - Korean hangul - - - 6F5261 - C0AE - EC82AE - Korean hangul - - - 6F5262 - C0AF - EC82AF - Korean hangul - - - 6F5263 - C0B0 - EC82B0 - Korean hangul - - - 6F5264 - C0B3 - EC82B3 - Korean hangul - - - 6F5265 - C0B4 - EC82B4 - Korean hangul - - - 6F5266 - C0B5 - EC82B5 - Korean hangul - - - 6F5267 - C0B6 - EC82B6 - Korean hangul - - - 6F5268 - C0BC - EC82BC - Korean hangul - - - 6F5269 - C0BD - EC82BD - Korean hangul - - - 6F526A - C0BF - EC82BF - Korean hangul - - - 6F526B - C0C0 - EC8380 - Korean hangul - - - 6F526C - C0C1 - EC8381 - Korean hangul - - - 6F526D - C0C5 - EC8385 - Korean hangul - - - 6F526E - C0C8 - EC8388 - Korean hangul - - - 6F526F - C0C9 - EC8389 - Korean hangul - - - 6F5270 - C0CC - EC838C - Korean hangul - - - 6F5271 - C0CF - EC838F - Korean hangul - - - 6F5272 - C0D0 - EC8390 - Korean hangul - - - 6F5273 - C0D8 - EC8398 - Korean hangul - - - 6F5274 - C0D9 - EC8399 - Korean hangul - - - 6F5275 - C0DB - EC839B - Korean hangul - - - 6F5276 - C0DC - EC839C - Korean hangul - - - 6F5277 - C0DD - EC839D - Korean hangul - - - 6F5278 - C0E4 - EC83A4 - Korean hangul - - - 6F5279 - C0E5 - EC83A5 - Korean hangul - - - 6F527A - C0E8 - EC83A8 - Korean hangul - - - 6F527B - C0EC - EC83AC - Korean hangul - - - 6F527C - C0F4 - EC83B4 - Korean hangul - - - 6F527D - C0F7 - EC83B7 - Korean hangul - - - 6F527E - C0F9 - EC83B9 - Korean hangul - - - 6F5321 - C11C - EC849C - Korean hangul - - - 6F5322 - C11D - EC849D - Korean hangul - - - 6F5323 - C11E - EC849E - Korean hangul - - - 6F5324 - C120 - EC84A0 - Korean hangul - - - 6F5325 - C123 - EC84A3 - Korean hangul - - - 6F5326 - C124 - EC84A4 - Korean hangul - - - 6F5327 - C125 - EC84A5 - Korean hangul - - - 6F5328 - C126 - EC84A6 - Korean hangul - - - 6F5329 - C127 - EC84A7 - Korean hangul - - - 6F532A - C12A - EC84AA - Korean hangul - - - 6F532B - C12C - EC84AC - Korean hangul - - - 6F532C - C12D - EC84AD - Korean hangul - - - 6F532D - C12F - EC84AF - Korean hangul - - - 6F532E - C130 - EC84B0 - Korean hangul - - - 6F532F - C131 - EC84B1 - Korean hangul - - - 6F5330 - C136 - EC84B6 - Korean hangul - - - 6F5331 - C138 - EC84B8 - Korean hangul - - - 6F5332 - C139 - EC84B9 - Korean hangul - - - 6F5333 - C13C - EC84BC - Korean hangul - - - 6F5334 - C140 - EC8580 - Korean hangul - - - 6F5335 - C148 - EC8588 - Korean hangul - - - 6F5336 - C149 - EC8589 - Korean hangul - - - 6F5337 - C14B - EC858B - Korean hangul - - - 6F5338 - C14D - EC858D - Korean hangul - - - 6F5339 - C151 - EC8591 - Korean hangul - - - 6F533A - C154 - EC8594 - Korean hangul - - - 6F533B - C158 - EC8598 - Korean hangul - - - 6F533C - C167 - EC85A7 - Korean hangul - - - 6F533D - C168 - EC85A8 - Korean hangul - - - 6F533E - C170 - EC85B0 - Korean hangul - - - 6F533F - C18C - EC868C - Korean hangul - - - 6F5340 - C18D - EC868D - Korean hangul - - - 6F5341 - C18E - EC868E - Korean hangul - - - 6F5342 - C190 - EC8690 - Korean hangul - - - 6F5343 - C194 - EC8694 - Korean hangul - - - 6F5344 - C19C - EC869C - Korean hangul - - - 6F5345 - C19D - EC869D - Korean hangul - - - 6F5346 - C19F - EC869F - Korean hangul - - - 6F5347 - C1A1 - EC86A1 - Korean hangul - - - 6F5348 - C1A5 - EC86A5 - Korean hangul - - - 6F5349 - C1A8 - EC86A8 - Korean hangul - - - 6F534A - C1A9 - EC86A9 - Korean hangul - - - 6F534B - C1B0 - EC86B0 - Korean hangul - - - 6F534C - C1C4 - EC8784 - Korean hangul - - - 6F534D - C1C8 - EC8788 - Korean hangul - - - 6F534E - C1D7 - EC8797 - Korean hangul - - - 6F534F - C1E0 - EC87A0 - Korean hangul - - - 6F5350 - C1E4 - EC87A4 - Korean hangul - - - 6F5351 - C1E8 - EC87A8 - Korean hangul - - - 6F5352 - C1F0 - EC87B0 - Korean hangul - - - 6F5353 - C1F1 - EC87B1 - Korean hangul - - - 6F5354 - C1F3 - EC87B3 - Korean hangul - - - 6F5355 - C1FC - EC87BC - Korean hangul - - - 6F5356 - C1FD - EC87BD - Korean hangul - - - 6F5357 - C200 - EC8880 - Korean hangul - - - 6F5358 - C204 - EC8884 - Korean hangul - - - 6F5359 - C20D - EC888D - Korean hangul - - - 6F535B - C218 - EC8898 - Korean hangul - - - 6F535C - C219 - EC8899 - Korean hangul - - - 6F535D - C21C - EC889C - Korean hangul - - - 6F535E - C21F - EC889F - Korean hangul - - - 6F535F - C220 - EC88A0 - Korean hangul - - - 6F5360 - C228 - EC88A8 - Korean hangul - - - 6F5361 - C229 - EC88A9 - Korean hangul - - - 6F5362 - C22B - EC88AB - Korean hangul - - - 6F5363 - C22D - EC88AD - Korean hangul - - - 6F5364 - C22F - EC88AF - Korean hangul - - - 6F5365 - C231 - EC88B1 - Korean hangul - - - 6F5366 - C232 - EC88B2 - Korean hangul - - - 6F5367 - C234 - EC88B4 - Korean hangul - - - 6F5368 - C250 - EC8990 - Korean hangul - - - 6F5369 - C258 - EC8998 - Korean hangul - - - 6F536A - C26C - EC89AC - Korean hangul - - - 6F536B - C270 - EC89B0 - Korean hangul - - - 6F536C - C274 - EC89B4 - Korean hangul - - - 6F536D - C27C - EC89BC - Korean hangul - - - 6F536E - C27D - EC89BD - Korean hangul - - - 6F536F - C27F - EC89BF - Korean hangul - - - 6F5370 - C281 - EC8A81 - Korean hangul - - - 6F5371 - C288 - EC8A88 - Korean hangul - - - 6F5372 - C289 - EC8A89 - Korean hangul - - - 6F5373 - C290 - EC8A90 - Korean hangul - - - 6F5374 - C298 - EC8A98 - Korean hangul - - - 6F5375 - C29B - EC8A9B - Korean hangul - - - 6F5376 - C29D - EC8A9D - Korean hangul - - - 6F5377 - C2A4 - EC8AA4 - Korean hangul - - - 6F5378 - C2A5 - EC8AA5 - Korean hangul - - - 6F5379 - C2A8 - EC8AA8 - Korean hangul - - - 6F537A - C2AC - EC8AAC - Korean hangul - - - 6F537B - C2AD - EC8AAD - Korean hangul - - - 6F537D - C2B4 - EC8AB4 - Korean hangul - - - 6F537E - C2B5 - EC8AB5 - Korean hangul - - - 6F5421 - C2B7 - EC8AB7 - Korean hangul - - - 6F5422 - C2B9 - EC8AB9 - Korean hangul - - - 6F5423 - C2DC - EC8B9C - Korean hangul - - - 6F5424 - C2DD - EC8B9D - Korean hangul - - - 6F5425 - C2E0 - EC8BA0 - Korean hangul - - - 6F5426 - C2E3 - EC8BA3 - Korean hangul - - - 6F5427 - C2E4 - EC8BA4 - Korean hangul - - - 6F5428 - C2EB - EC8BAB - Korean hangul - - - 6F5429 - C2EC - EC8BAC - Korean hangul - - - 6F542A - C2ED - EC8BAD - Korean hangul - - - 6F542B - C2EF - EC8BAF - Korean hangul - - - 6F542C - C2F1 - EC8BB1 - Korean hangul - - - 6F542D - C2F6 - EC8BB6 - Korean hangul - - - 6F5430 - C2F8 - EC8BB8 - Korean hangul - - - 6F5431 - C2F9 - EC8BB9 - Korean hangul - - - 6F5432 - C2FC - EC8BBC - Korean hangul - - - 6F5433 - C300 - EC8C80 - Korean hangul - - - 6F5434 - C308 - EC8C88 - Korean hangul - - - 6F5435 - C309 - EC8C89 - Korean hangul - - - 6F5436 - C30B - EC8C8B - Korean hangul - - - 6F5437 - C30C - EC8C8C - Korean hangul - - - 6F5438 - C30D - EC8C8D - Korean hangul - - - 6F5439 - C313 - EC8C93 - Korean hangul - - - 6F543A - C314 - EC8C94 - Korean hangul - - - 6F543B - C315 - EC8C95 - Korean hangul - - - 6F543C - C318 - EC8C98 - Korean hangul - - - 6F543D - C31C - EC8C9C - Korean hangul - - - 6F543E - C324 - EC8CA4 - Korean hangul - - - 6F543F - C327 - EC8CA7 - Korean hangul - - - 6F5440 - C328 - EC8CA8 - Korean hangul - - - 6F5441 - C329 - EC8CA9 - Korean hangul - - - 6F5442 - C330 - EC8CB0 - Korean hangul - - - 6F5443 - C343 - EC8D83 - Korean hangul - - - 6F5444 - C345 - EC8D85 - Korean hangul - - - 6F5445 - C368 - EC8DA8 - Korean hangul - - - 6F5446 - C369 - EC8DA9 - Korean hangul - - - 6F5447 - C36C - EC8DAC - Korean hangul - - - 6F5448 - C370 - EC8DB0 - Korean hangul - - - 6F5449 - C372 - EC8DB2 - Korean hangul - - - 6F544A - C378 - EC8DB8 - Korean hangul - - - 6F544B - C379 - EC8DB9 - Korean hangul - - - 6F544C - C37C - EC8DBC - Korean hangul - - - 6F544D - C37D - EC8DBD - Korean hangul - - - 6F544E - C384 - EC8E84 - Korean hangul - - - 6F544F - C388 - EC8E88 - Korean hangul - - - 6F5450 - C399 - EC8E99 - Korean hangul - - - 6F5451 - C3D8 - EC8F98 - Korean hangul - - - 6F5452 - C3D9 - EC8F99 - Korean hangul - - - 6F5453 - C3DC - EC8F9C - Korean hangul - - - 6F5454 - C3DF - EC8F9F - Korean hangul - - - 6F5455 - C3E0 - EC8FA0 - Korean hangul - - - 6F5456 - C3E8 - EC8FA8 - Korean hangul - - - 6F5457 - C3ED - EC8FAD - Korean hangul - - - 6F5458 - C3F4 - EC8FB4 - Korean hangul - - - 6F5459 - C3F5 - EC8FB5 - Korean hangul - - - 6F545A - C410 - EC9090 - Korean hangul - - - 6F545B - C42C - EC90AC - Korean hangul - - - 6F545C - C430 - EC90B0 - Korean hangul - - - 6F545D - C434 - EC90B4 - Korean hangul - - - 6F545E - C43C - EC90BC - Korean hangul - - - 6F545F - C43F - EC90BF - Korean hangul - - - 6F5460 - C464 - EC91A4 - Korean hangul - - - 6F5461 - C465 - EC91A5 - Korean hangul - - - 6F5462 - C468 - EC91A8 - Korean hangul - - - 6F5463 - C46C - EC91AC - Korean hangul - - - 6F5464 - C474 - EC91B4 - Korean hangul - - - 6F5465 - C479 - EC91B9 - Korean hangul - - - 6F5466 - C480 - EC9280 - Korean hangul - - - 6F5467 - C494 - EC9294 - Korean hangul - - - 6F5468 - C4D4 - EC9394 - Korean hangul - - - 6F5469 - C4D5 - EC9395 - Korean hangul - - - 6F546A - C4F0 - EC93B0 - Korean hangul - - - 6F546B - C4F1 - EC93B1 - Korean hangul - - - 6F546C - C4F4 - EC93B4 - Korean hangul - - - 6F546D - C4F8 - EC93B8 - Korean hangul - - - 6F546E - C500 - EC9480 - Korean hangul - - - 6F546F - C501 - EC9481 - Korean hangul - - - 6F5470 - C50C - EC948C - Korean hangul - - - 6F5471 - C510 - EC9490 - Korean hangul - - - 6F5472 - C528 - EC94A8 - Korean hangul - - - 6F5473 - C529 - EC94A9 - Korean hangul - - - 6F5474 - C52C - EC94AC - Korean hangul - - - 6F5475 - C530 - EC94B0 - Korean hangul - - - 6F5476 - C538 - EC94B8 - Korean hangul - - - 6F5477 - C539 - EC94B9 - Korean hangul - - - 6F5478 - C53B - EC94BB - Korean hangul - - - 6F5479 - C53D - EC94BD - Korean hangul - - - 6F547C - C544 - EC9584 - Korean hangul - - - 6F547D - C545 - EC9585 - Korean hangul - - - 6F547E - C548 - EC9588 - Korean hangul - - - 6F5521 - C549 - EC9589 - Korean hangul - - - 6F5522 - C54A - EC958A - Korean hangul - - - 6F5523 - C54C - EC958C - Korean hangul - - - 6F5524 - C54E - EC958E - Korean hangul - - - 6F5525 - C553 - EC9593 - Korean hangul - - - 6F5526 - C554 - EC9594 - Korean hangul - - - 6F5527 - C555 - EC9595 - Korean hangul - - - 6F5528 - C557 - EC9597 - Korean hangul - - - 6F5529 - C558 - EC9598 - Korean hangul - - - 6F552A - C559 - EC9599 - Korean hangul - - - 6F552B - C55E - EC959E - Korean hangul - - - 6F552C - C55F - EC959F - Korean hangul - - - 6F552D - C560 - EC95A0 - Korean hangul - - - 6F552E - C561 - EC95A1 - Korean hangul - - - 6F552F - C564 - EC95A4 - Korean hangul - - - 6F5530 - C568 - EC95A8 - Korean hangul - - - 6F5531 - C570 - EC95B0 - Korean hangul - - - 6F5532 - C571 - EC95B1 - Korean hangul - - - 6F5533 - C573 - EC95B3 - Korean hangul - - - 6F5534 - C574 - EC95B4 - Korean hangul - - - 6F5535 - C575 - EC95B5 - Korean hangul - - - 6F5536 - C57C - EC95BC - Korean hangul - - - 6F5537 - C57D - EC95BD - Korean hangul - - - 6F5538 - C580 - EC9680 - Korean hangul - - - 6F5539 - C584 - EC9684 - Korean hangul - - - 6F553A - C587 - EC9687 - Korean hangul - - - 6F553B - C58C - EC968C - Korean hangul - - - 6F553C - C58D - EC968D - Korean hangul - - - 6F553D - C58F - EC968F - Korean hangul - - - 6F553E - C590 - EC9690 - Korean hangul - - - 6F553F - C591 - EC9691 - Korean hangul - - - 6F5540 - C595 - EC9695 - Korean hangul - - - 6F5541 - C597 - EC9697 - Korean hangul - - - 6F5542 - C598 - EC9698 - Korean hangul - - - 6F5543 - C59C - EC969C - Korean hangul - - - 6F5544 - C5B4 - EC96B4 - Korean hangul - - - 6F5545 - C5B5 - EC96B5 - Korean hangul - - - 6F5546 - C5B6 - EC96B6 - Korean hangul - - - 6F5547 - C5B8 - EC96B8 - Korean hangul - - - 6F5548 - C5B9 - EC96B9 - Korean hangul - - - 6F5549 - C5BA - EC96BA - Korean hangul - - - 6F554A - C5BB - EC96BB - Korean hangul - - - 6F554B - C5BC - EC96BC - Korean hangul - - - 6F554C - C5BD - EC96BD - Korean hangul - - - 6F554D - C5C4 - EC9784 - Korean hangul - - - 6F554E - C5C5 - EC9785 - Korean hangul - - - 6F554F - C5C6 - EC9786 - Korean hangul - - - 6F5550 - C5C7 - EC9787 - Korean hangul - - - 6F5551 - C5C8 - EC9788 - Korean hangul - - - 6F5552 - C5C9 - EC9789 - Korean hangul - - - 6F5553 - C5CA - EC978A - Korean hangul - - - 6F5554 - C5CC - EC978C - Korean hangul - - - 6F5555 - C5CE - EC978E - Korean hangul - - - 6F5556 - C5D0 - EC9790 - Korean hangul - - - 6F5557 - C5D1 - EC9791 - Korean hangul - - - 6F5558 - C5D4 - EC9794 - Korean hangul - - - 6F5559 - C5D8 - EC9798 - Korean hangul - - - 6F555A - C5E0 - EC97A0 - Korean hangul - - - 6F555B - C5E1 - EC97A1 - Korean hangul - - - 6F555C - C5E3 - EC97A3 - Korean hangul - - - 6F555D - C5E5 - EC97A5 - Korean hangul - - - 6F555E - C5EC - EC97AC - Korean hangul - - - 6F555F - C5ED - EC97AD - Korean hangul - - - 6F5560 - C5EE - EC97AE - Korean hangul - - - 6F5561 - C5F0 - EC97B0 - Korean hangul - - - 6F5562 - C5F4 - EC97B4 - Korean hangul - - - 6F5563 - C5F6 - EC97B6 - Korean hangul - - - 6F5564 - C5F7 - EC97B7 - Korean hangul - - - 6F5565 - C5FC - EC97BC - Korean hangul - - - 6F5566 - C5FD - EC97BD - Korean hangul - - - 6F5567 - C5FE - EC97BE - Korean hangul - - - 6F5568 - C5FF - EC97BF - Korean hangul - - - 6F5569 - C600 - EC9880 - Korean hangul - - - 6F556A - C601 - EC9881 - Korean hangul - - - 6F556B - C606 - EC9886 - Korean hangul - - - 6F556C - C607 - EC9887 - Korean hangul - - - 6F556D - C608 - EC9888 - Korean hangul - - - 6F556E - C60C - EC988C - Korean hangul - - - 6F556F - C610 - EC9890 - Korean hangul - - - 6F5570 - C61B - EC989B - Korean hangul - - - 6F5571 - C624 - EC98A4 - Korean hangul - - - 6F5572 - C625 - EC98A5 - Korean hangul - - - 6F5573 - C628 - EC98A8 - Korean hangul - - - 6F5574 - C62C - EC98AC - Korean hangul - - - 6F5575 - C62D - EC98AD - Korean hangul - - - 6F5576 - C62E - EC98AE - Korean hangul - - - 6F5577 - C633 - EC98B3 - Korean hangul - - - 6F5578 - C634 - EC98B4 - Korean hangul - - - 6F5579 - C635 - EC98B5 - Korean hangul - - - 6F557A - C637 - EC98B7 - Korean hangul - - - 6F557B - C639 - EC98B9 - Korean hangul - - - 6F557C - C63A - EC98BA - Korean hangul - - - 6F557D - C63B - EC98BB - Korean hangul - - - 6F557E - C640 - EC9980 - Korean hangul - - - 6F5621 - C641 - EC9981 - Korean hangul - - - 6F5622 - C644 - EC9984 - Korean hangul - - - 6F5623 - C648 - EC9988 - Korean hangul - - - 6F5624 - C650 - EC9990 - Korean hangul - - - 6F5625 - C651 - EC9991 - Korean hangul - - - 6F5626 - C653 - EC9993 - Korean hangul - - - 6F5627 - C654 - EC9994 - Korean hangul - - - 6F5629 - C65C - EC999C - Korean hangul - - - 6F562A - C65D - EC999D - Korean hangul - - - 6F562B - C660 - EC99A0 - Korean hangul - - - 6F562C - C671 - EC99B1 - Korean hangul - - - 6F562D - C678 - EC99B8 - Korean hangul - - - 6F562E - C679 - EC99B9 - Korean hangul - - - 6F562F - C67C - EC99BC - Korean hangul - - - 6F5630 - C680 - EC9A80 - Korean hangul - - - 6F5631 - C688 - EC9A88 - Korean hangul - - - 6F5632 - C68B - EC9A8B - Korean hangul - - - 6F5633 - C68D - EC9A8D - Korean hangul - - - 6F5634 - C694 - EC9A94 - Korean hangul - - - 6F5635 - C695 - EC9A95 - Korean hangul - - - 6F5636 - C698 - EC9A98 - Korean hangul - - - 6F5637 - C6A5 - EC9AA5 - Korean hangul - - - 6F5638 - C6A7 - EC9AA7 - Korean hangul - - - 6F5639 - C6A9 - EC9AA9 - Korean hangul - - - 6F563A - C6B0 - EC9AB0 - Korean hangul - - - 6F563B - C6B1 - EC9AB1 - Korean hangul - - - 6F563C - C6B4 - EC9AB4 - Korean hangul - - - 6F563D - C6B7 - EC9AB7 - Korean hangul - - - 6F563E - C6B8 - EC9AB8 - Korean hangul - - - 6F563F - C6B9 - EC9AB9 - Korean hangul - - - 6F5640 - C6BA - EC9ABA - Korean hangul - - - 6F5641 - C6C0 - EC9B80 - Korean hangul - - - 6F5642 - C6C1 - EC9B81 - Korean hangul - - - 6F5643 - C6C3 - EC9B83 - Korean hangul - - - 6F5644 - C6C5 - EC9B85 - Korean hangul - - - 6F5645 - C6CC - EC9B8C - Korean hangul - - - 6F5646 - C6CD - EC9B8D - Korean hangul - - - 6F5647 - C6D0 - EC9B90 - Korean hangul - - - 6F5648 - C6D4 - EC9B94 - Korean hangul - - - 6F5649 - C6DC - EC9B9C - Korean hangul - - - 6F564A - C6DD - EC9B9D - Korean hangul - - - 6F564B - C6DF - EC9B9F - Korean hangul - - - 6F564C - C6E0 - EC9BA0 - Korean hangul - - - 6F564D - C6E1 - EC9BA1 - Korean hangul - - - 6F564E - C6E8 - EC9BA8 - Korean hangul - - - 6F564F - C6E9 - EC9BA9 - Korean hangul - - - 6F5650 - C6EC - EC9BAC - Korean hangul - - - 6F5651 - C6F0 - EC9BB0 - Korean hangul - - - 6F5652 - C6F8 - EC9BB8 - Korean hangul - - - 6F5653 - C704 - EC9C84 - Korean hangul - - - 6F5654 - C705 - EC9C85 - Korean hangul - - - 6F5655 - C708 - EC9C88 - Korean hangul - - - 6F5656 - C70C - EC9C8C - Korean hangul - - - 6F5657 - C714 - EC9C94 - Korean hangul - - - 6F5658 - C717 - EC9C97 - Korean hangul - - - 6F5659 - C719 - EC9C99 - Korean hangul - - - 6F565A - C720 - EC9CA0 - Korean hangul - - - 6F565B - C721 - EC9CA1 - Korean hangul - - - 6F565C - C724 - EC9CA4 - Korean hangul - - - 6F565D - C728 - EC9CA8 - Korean hangul - - - 6F565E - C730 - EC9CB0 - Korean hangul - - - 6F565F - C735 - EC9CB5 - Korean hangul - - - 6F5660 - C737 - EC9CB7 - Korean hangul - - - 6F5661 - C73C - EC9CBC - Korean hangul - - - 6F5662 - C73D - EC9CBD - Korean hangul - - - 6F5663 - C740 - EC9D80 - Korean hangul - - - 6F5664 - C744 - EC9D84 - Korean hangul - - - 6F5665 - C74A - EC9D8A - Korean hangul - - - 6F5666 - C74C - EC9D8C - Korean hangul - - - 6F5667 - C74D - EC9D8D - Korean hangul - - - 6F5668 - C751 - EC9D91 - Korean hangul - - - 6F5669 - C758 - EC9D98 - Korean hangul - - - 6F566A - C774 - EC9DB4 - Korean hangul - - - 6F566B - C775 - EC9DB5 - Korean hangul - - - 6F566C - C778 - EC9DB8 - Korean hangul - - - 6F566D - C77C - EC9DBC - Korean hangul - - - 6F566E - C77D - EC9DBD - Korean hangul - - - 6F566F - C783 - EC9E83 - Korean hangul - - - 6F5670 - C784 - EC9E84 - Korean hangul - - - 6F5671 - C785 - EC9E85 - Korean hangul - - - 6F5672 - C787 - EC9E87 - Korean hangul - - - 6F5673 - C788 - EC9E88 - Korean hangul - - - 6F5674 - C789 - EC9E89 - Korean hangul - - - 6F5675 - C78A - EC9E8A - Korean hangul - - - 6F5676 - C78E - EC9E8E - Korean hangul - - - 6F5677 - C655 - EC9995 - Korean hangul - - - 6F5679 - C790 - EC9E90 - Korean hangul - - - 6F567A - C791 - EC9E91 - Korean hangul - - - 6F567B - C794 - EC9E94 - Korean hangul - - - 6F567C - C796 - EC9E96 - Korean hangul - - - 6F567D - C798 - EC9E98 - Korean hangul - - - 6F567E - C7A0 - EC9EA0 - Korean hangul - - - 6F5721 - C7A1 - EC9EA1 - Korean hangul - - - 6F5722 - C7A3 - EC9EA3 - Korean hangul - - - 6F5723 - C7A4 - EC9EA4 - Korean hangul - - - 6F5724 - C7A5 - EC9EA5 - Korean hangul - - - 6F5725 - C7A6 - EC9EA6 - Korean hangul - - - 6F5726 - C7A7 - EC9EA7 - Korean hangul - - - 6F5727 - C7AC - EC9EAC - Korean hangul - - - 6F5728 - C7AD - EC9EAD - Korean hangul - - - 6F5729 - C7B0 - EC9EB0 - Korean hangul - - - 6F572A - C7B4 - EC9EB4 - Korean hangul - - - 6F572B - C7BC - EC9EBC - Korean hangul - - - 6F572C - C7BD - EC9EBD - Korean hangul - - - 6F572D - C7BF - EC9EBF - Korean hangul - - - 6F572E - C7C0 - EC9F80 - Korean hangul - - - 6F572F - C7C1 - EC9F81 - Korean hangul - - - 6F5730 - C7C8 - EC9F88 - Korean hangul - - - 6F5731 - C7C9 - EC9F89 - Korean hangul - - - 6F5732 - C7CC - EC9F8C - Korean hangul - - - 6F5733 - C7D8 - EC9F98 - Korean hangul - - - 6F5734 - C800 - ECA080 - Korean hangul - - - 6F5735 - C801 - ECA081 - Korean hangul - - - 6F5736 - C804 - ECA084 - Korean hangul - - - 6F5737 - C808 - ECA088 - Korean hangul - - - 6F5738 - C80A - ECA08A - Korean hangul - - - 6F5739 - C810 - ECA090 - Korean hangul - - - 6F573A - C811 - ECA091 - Korean hangul - - - 6F573B - C813 - ECA093 - Korean hangul - - - 6F573C - C814 - ECA094 - Korean hangul - - - 6F573D - C815 - ECA095 - Korean hangul - - - 6F573E - C816 - ECA096 - Korean hangul - - - 6F573F - C81C - ECA09C - Korean hangul - - - 6F5740 - C81D - ECA09D - Korean hangul - - - 6F5741 - C820 - ECA0A0 - Korean hangul - - - 6F5742 - C824 - ECA0A4 - Korean hangul - - - 6F5743 - C82C - ECA0AC - Korean hangul - - - 6F5744 - C82D - ECA0AD - Korean hangul - - - 6F5745 - C82F - ECA0AF - Korean hangul - - - 6F5746 - C838 - ECA0B8 - Korean hangul - - - 6F5747 - C83C - ECA0BC - Korean hangul - - - 6F5748 - C84C - ECA18C - Korean hangul - - - 6F5749 - C870 - ECA1B0 - Korean hangul - - - 6F574A - C871 - ECA1B1 - Korean hangul - - - 6F574B - C874 - ECA1B4 - Korean hangul - - - 6F574C - C878 - ECA1B8 - Korean hangul - - - 6F574D - C87A - ECA1BA - Korean hangul - - - 6F574E - C880 - ECA280 - Korean hangul - - - 6F574F - C881 - ECA281 - Korean hangul - - - 6F5750 - C885 - ECA285 - Korean hangul - - - 6F5751 - C886 - ECA286 - Korean hangul - - - 6F5752 - C887 - ECA287 - Korean hangul - - - 6F5753 - C88B - ECA28B - Korean hangul - - - 6F5754 - C88C - ECA28C - Korean hangul - - - 6F5755 - C88D - ECA28D - Korean hangul - - - 6F5756 - C890 - ECA290 - Korean hangul - - - 6F5757 - C894 - ECA294 - Korean hangul - - - 6F5758 - C89C - ECA29C - Korean hangul - - - 6F5759 - C89D - ECA29D - Korean hangul - - - 6F575A - C89F - ECA29F - Korean hangul - - - 6F575B - C8A0 - ECA2A0 - Korean hangul - - - 6F575D - C8A8 - ECA2A8 - Korean hangul - - - 6F575E - C8AC - ECA2AC - Korean hangul - - - 6F575F - C8B0 - ECA2B0 - Korean hangul - - - 6F5760 - C8B8 - ECA2B8 - Korean hangul - - - 6F5761 - C8C4 - ECA384 - Korean hangul - - - 6F5762 - C8C8 - ECA388 - Korean hangul - - - 6F5763 - C8CC - ECA38C - Korean hangul - - - 6F5764 - C8D4 - ECA394 - Korean hangul - - - 6F5765 - C8D5 - ECA395 - Korean hangul - - - 6F5766 - C8D7 - ECA397 - Korean hangul - - - 6F5767 - C8E0 - ECA3A0 - Korean hangul - - - 6F5768 - C8E4 - ECA3A4 - Korean hangul - - - 6F5769 - C8F0 - ECA3B0 - Korean hangul - - - 6F576A - C8F1 - ECA3B1 - Korean hangul - - - 6F576B - C8F5 - ECA3B5 - Korean hangul - - - 6F576C - C8FC - ECA3BC - Korean hangul - - - 6F576D - C8FD - ECA3BD - Korean hangul - - - 6F576E - C900 - ECA480 - Korean hangul - - - 6F576F - C904 - ECA484 - Korean hangul - - - 6F5770 - C906 - ECA486 - Korean hangul - - - 6F5771 - C90C - ECA48C - Korean hangul - - - 6F5772 - C90D - ECA48D - Korean hangul - - - 6F5773 - C90F - ECA48F - Korean hangul - - - 6F5774 - C911 - ECA491 - Korean hangul - - - 6F5775 - C918 - ECA498 - Korean hangul - - - 6F5776 - C92C - ECA4AC - Korean hangul - - - 6F5777 - C950 - ECA590 - Korean hangul - - - 6F5779 - C954 - ECA594 - Korean hangul - - - 6F577A - C958 - ECA598 - Korean hangul - - - 6F577B - C960 - ECA5A0 - Korean hangul - - - 6F577C - C961 - ECA5A1 - Korean hangul - - - 6F577D - C96C - ECA5AC - Korean hangul - - - 6F577E - C970 - ECA5B0 - Korean hangul - - - 6F5821 - C974 - ECA5B4 - Korean hangul - - - 6F5822 - C988 - ECA688 - Korean hangul - - - 6F5823 - C989 - ECA689 - Korean hangul - - - 6F5824 - C98C - ECA68C - Korean hangul - - - 6F5825 - C990 - ECA690 - Korean hangul - - - 6F5826 - C998 - ECA698 - Korean hangul - - - 6F5827 - C999 - ECA699 - Korean hangul - - - 6F5828 - C99D - ECA69D - Korean hangul - - - 6F5829 - C9C0 - ECA780 - Korean hangul - - - 6F582A - C9C1 - ECA781 - Korean hangul - - - 6F582B - C9C4 - ECA784 - Korean hangul - - - 6F582C - C9C7 - ECA787 - Korean hangul - - - 6F582D - C9C8 - ECA788 - Korean hangul - - - 6F582E - C9CA - ECA78A - Korean hangul - - - 6F582F - C9D0 - ECA790 - Korean hangul - - - 6F5830 - C9D1 - ECA791 - Korean hangul - - - 6F5831 - C9D3 - ECA793 - Korean hangul - - - 6F5832 - C9D5 - ECA795 - Korean hangul - - - 6F5833 - C9D6 - ECA796 - Korean hangul - - - 6F5834 - C9D9 - ECA799 - Korean hangul - - - 6F5835 - C9DA - ECA79A - Korean hangul - - - 6F5838 - C9DC - ECA79C - Korean hangul - - - 6F5839 - C9DD - ECA79D - Korean hangul - - - 6F583A - C9E0 - ECA7A0 - Korean hangul - - - 6F583B - C9E2 - ECA7A2 - Korean hangul - - - 6F583C - C9E4 - ECA7A4 - Korean hangul - - - 6F583E - C9E7 - ECA7A7 - Korean hangul - - - 6F583F - C9EC - ECA7AC - Korean hangul - - - 6F5840 - C9ED - ECA7AD - Korean hangul - - - 6F5841 - C9EF - ECA7AF - Korean hangul - - - 6F5842 - C9F0 - ECA7B0 - Korean hangul - - - 6F5843 - C9F1 - ECA7B1 - Korean hangul - - - 6F5844 - C9F8 - ECA7B8 - Korean hangul - - - 6F5845 - C9F9 - ECA7B9 - Korean hangul - - - 6F5846 - C9FC - ECA7BC - Korean hangul - - - 6F5847 - CA00 - ECA880 - Korean hangul - - - 6F5848 - CA08 - ECA888 - Korean hangul - - - 6F5849 - CA09 - ECA889 - Korean hangul - - - 6F584A - CA0B - ECA88B - Korean hangul - - - 6F584B - CA0C - ECA88C - Korean hangul - - - 6F584C - CA0D - ECA88D - Korean hangul - - - 6F584D - CA18 - ECA898 - Korean hangul - - - 6F584E - CA4C - ECA98C - Korean hangul - - - 6F584F - CA4D - ECA98D - Korean hangul - - - 6F5850 - CA50 - ECA990 - Korean hangul - - - 6F5851 - CA54 - ECA994 - Korean hangul - - - 6F5852 - CA5C - ECA99C - Korean hangul - - - 6F5853 - CA5D - ECA99D - Korean hangul - - - 6F5854 - CA61 - ECA9A1 - Korean hangul - - - 6F5855 - CA84 - ECAA84 - Korean hangul - - - 6F5856 - CA98 - ECAA98 - Korean hangul - - - 6F5857 - CABC - ECAABC - Korean hangul - - - 6F5858 - CABD - ECAABD - Korean hangul - - - 6F5859 - CAC0 - ECAB80 - Korean hangul - - - 6F585A - CAC4 - ECAB84 - Korean hangul - - - 6F585B - CACC - ECAB8C - Korean hangul - - - 6F585C - CACD - ECAB8D - Korean hangul - - - 6F585D - CAD1 - ECAB91 - Korean hangul - - - 6F585E - CAD2 - ECAB92 - Korean hangul - - - 6F585F - CAD3 - ECAB93 - Korean hangul - - - 6F5860 - CAD8 - ECAB98 - Korean hangul - - - 6F5861 - CAD9 - ECAB99 - Korean hangul - - - 6F5862 - CB10 - ECAC90 - Korean hangul - - - 6F5863 - CB14 - ECAC94 - Korean hangul - - - 6F5864 - CB18 - ECAC98 - Korean hangul - - - 6F5865 - CB20 - ECACA0 - Korean hangul - - - 6F5866 - CB21 - ECACA1 - Korean hangul - - - 6F5867 - CB41 - ECAD81 - Korean hangul - - - 6F5868 - CB48 - ECAD88 - Korean hangul - - - 6F5869 - CB49 - ECAD89 - Korean hangul - - - 6F586A - CB50 - ECAD90 - Korean hangul - - - 6F586B - CB58 - ECAD98 - Korean hangul - - - 6F586C - CB59 - ECAD99 - Korean hangul - - - 6F586D - CB5D - ECAD9D - Korean hangul - - - 6F586E - CB64 - ECADA4 - Korean hangul - - - 6F586F - CBB8 - ECAEB8 - Korean hangul - - - 6F5870 - CBD4 - ECAF94 - Korean hangul - - - 6F5871 - CBE4 - ECAFA4 - Korean hangul - - - 6F5872 - CBE7 - ECAFA7 - Korean hangul - - - 6F5873 - CC0C - ECB08C - Korean hangul - - - 6F5874 - CC0D - ECB08D - Korean hangul - - - 6F5875 - CC10 - ECB090 - Korean hangul - - - 6F5876 - CC14 - ECB094 - Korean hangul - - - 6F5877 - CC1C - ECB09C - Korean hangul - - - 6F5878 - CC1D - ECB09D - Korean hangul - - - 6F5879 - CC21 - ECB0A1 - Korean hangul - - - 6F587A - CC22 - ECB0A2 - Korean hangul - - - 6F587B - CC27 - ECB0A7 - Korean hangul - - - 6F587E - CC28 - ECB0A8 - Korean hangul - - - 6F5921 - CC29 - ECB0A9 - Korean hangul - - - 6F5922 - CC2C - ECB0AC - Korean hangul - - - 6F5923 - CC2E - ECB0AE - Korean hangul - - - 6F5924 - CC2F - ECB0AF - Korean hangul - - - 6F5925 - CC30 - ECB0B0 - Korean hangul - - - 6F5926 - CC38 - ECB0B8 - Korean hangul - - - 6F5927 - CC39 - ECB0B9 - Korean hangul - - - 6F5928 - CC3B - ECB0BB - Korean hangul - - - 6F5929 - CC3C - ECB0BC - Korean hangul - - - 6F592A - CC3D - ECB0BD - Korean hangul - - - 6F592B - CC3E - ECB0BE - Korean hangul - - - 6F592C - CC3F - ECB0BF - Korean hangul - - - 6F592D - CC44 - ECB184 - Korean hangul - - - 6F592E - CC45 - ECB185 - Korean hangul - - - 6F592F - CC48 - ECB188 - Korean hangul - - - 6F5930 - CC4C - ECB18C - Korean hangul - - - 6F5931 - CC54 - ECB194 - Korean hangul - - - 6F5932 - CC55 - ECB195 - Korean hangul - - - 6F5933 - CC58 - ECB198 - Korean hangul - - - 6F5934 - CC59 - ECB199 - Korean hangul - - - 6F5935 - CC60 - ECB1A0 - Korean hangul - - - 6F5936 - CC64 - ECB1A4 - Korean hangul - - - 6F5937 - CC70 - ECB1B0 - Korean hangul - - - 6F5938 - CC71 - ECB1B1 - Korean hangul - - - 6F5939 - CC98 - ECB298 - Korean hangul - - - 6F593A - CC99 - ECB299 - Korean hangul - - - 6F593B - CC9C - ECB29C - Korean hangul - - - 6F593C - CCA0 - ECB2A0 - Korean hangul - - - 6F593D - CCA8 - ECB2A8 - Korean hangul - - - 6F593E - CCA9 - ECB2A9 - Korean hangul - - - 6F593F - CCAB - ECB2AB - Korean hangul - - - 6F5940 - CCAD - ECB2AD - Korean hangul - - - 6F5941 - CCB4 - ECB2B4 - Korean hangul - - - 6F5942 - CCB5 - ECB2B5 - Korean hangul - - - 6F5943 - CCB8 - ECB2B8 - Korean hangul - - - 6F5944 - CCBC - ECB2BC - Korean hangul - - - 6F5945 - CCC7 - ECB387 - Korean hangul - - - 6F5946 - CCD0 - ECB390 - Korean hangul - - - 6F5947 - CCE4 - ECB3A4 - Korean hangul - - - 6F5948 - CD08 - ECB488 - Korean hangul - - - 6F5949 - CD09 - ECB489 - Korean hangul - - - 6F594A - CD0C - ECB48C - Korean hangul - - - 6F594B - CD10 - ECB490 - Korean hangul - - - 6F594C - CD18 - ECB498 - Korean hangul - - - 6F594D - CD19 - ECB499 - Korean hangul - - - 6F594E - CD1B - ECB49B - Korean hangul - - - 6F594F - CD1D - ECB49D - Korean hangul - - - 6F5950 - CD2C - ECB4AC - Korean hangul - - - 6F5951 - CD5C - ECB59C - Korean hangul - - - 6F5952 - CD78 - ECB5B8 - Korean hangul - - - 6F5953 - CD94 - ECB694 - Korean hangul - - - 6F5954 - CD95 - ECB695 - Korean hangul - - - 6F5955 - CD98 - ECB698 - Korean hangul - - - 6F5956 - CD9C - ECB69C - Korean hangul - - - 6F5957 - CDA4 - ECB6A4 - Korean hangul - - - 6F5958 - CDA5 - ECB6A5 - Korean hangul - - - 6F5959 - CDA7 - ECB6A7 - Korean hangul - - - 6F595A - CDA9 - ECB6A9 - Korean hangul - - - 6F595B - CDB0 - ECB6B0 - Korean hangul - - - 6F595C - CDC4 - ECB784 - Korean hangul - - - 6F595D - CDCC - ECB78C - Korean hangul - - - 6F595E - CDE8 - ECB7A8 - Korean hangul - - - 6F595F - CE04 - ECB884 - Korean hangul - - - 6F5960 - CE20 - ECB8A0 - Korean hangul - - - 6F5961 - CE21 - ECB8A1 - Korean hangul - - - 6F5962 - CE30 - ECB8B0 - Korean hangul - - - 6F5963 - CE35 - ECB8B5 - Korean hangul - - - 6F5964 - CE58 - ECB998 - Korean hangul - - - 6F5965 - CE59 - ECB999 - Korean hangul - - - 6F5966 - CE5C - ECB99C - Korean hangul - - - 6F5967 - CE60 - ECB9A0 - Korean hangul - - - 6F5968 - CE61 - ECB9A1 - Korean hangul - - - 6F5969 - CE68 - ECB9A8 - Korean hangul - - - 6F596A - CE69 - ECB9A9 - Korean hangul - - - 6F596B - CE6B - ECB9AB - Korean hangul - - - 6F596C - CE6D - ECB9AD - Korean hangul - - - 6F596F - CE74 - ECB9B4 - Korean hangul - - - 6F5970 - CE75 - ECB9B5 - Korean hangul - - - 6F5971 - CE78 - ECB9B8 - Korean hangul - - - 6F5972 - CE7C - ECB9BC - Korean hangul - - - 6F5973 - CE84 - ECBA84 - Korean hangul - - - 6F5974 - CE85 - ECBA85 - Korean hangul - - - 6F5975 - CE87 - ECBA87 - Korean hangul - - - 6F5976 - CE89 - ECBA89 - Korean hangul - - - 6F5977 - CE90 - ECBA90 - Korean hangul - - - 6F5978 - CE91 - ECBA91 - Korean hangul - - - 6F5979 - CE94 - ECBA94 - Korean hangul - - - 6F597A - CE98 - ECBA98 - Korean hangul - - - 6F597B - CEA0 - ECBAA0 - Korean hangul - - - 6F597C - CEA1 - ECBAA1 - Korean hangul - - - 6F597D - CEA3 - ECBAA3 - Korean hangul - - - 6F5A21 - CEA5 - ECBAA5 - Korean hangul - - - 6F5A22 - CEAC - ECBAAC - Korean hangul - - - 6F5A23 - CEAD - ECBAAD - Korean hangul - - - 6F5A24 - CEE4 - ECBBA4 - Korean hangul - - - 6F5A26 - CEE8 - ECBBA8 - Korean hangul - - - 6F5A27 - CEEC - ECBBAC - Korean hangul - - - 6F5A28 - CEF4 - ECBBB4 - Korean hangul - - - 6F5A29 - CEF5 - ECBBB5 - Korean hangul - - - 6F5A2A - CEF7 - ECBBB7 - Korean hangul - - - 6F5A2C - CEF9 - ECBBB9 - Korean hangul - - - 6F5A2E - CF00 - ECBC80 - Korean hangul - - - 6F5A2F - CF01 - ECBC81 - Korean hangul - - - 6F5A30 - CF04 - ECBC84 - Korean hangul - - - 6F5A31 - CF08 - ECBC88 - Korean hangul - - - 6F5A32 - CF10 - ECBC90 - Korean hangul - - - 6F5A33 - CF11 - ECBC91 - Korean hangul - - - 6F5A34 - CF13 - ECBC93 - Korean hangul - - - 6F5A35 - CF15 - ECBC95 - Korean hangul - - - 6F5A36 - CF1C - ECBC9C - Korean hangul - - - 6F5A37 - CF20 - ECBCA0 - Korean hangul - - - 6F5A38 - CF24 - ECBCA4 - Korean hangul - - - 6F5A39 - CF2C - ECBCAC - Korean hangul - - - 6F5A3A - CF2D - ECBCAD - Korean hangul - - - 6F5A3B - CF2F - ECBCAF - Korean hangul - - - 6F5A3C - CF30 - ECBCB0 - Korean hangul - - - 6F5A3D - CF54 - ECBD94 - Korean hangul - - - 6F5A3E - CF55 - ECBD95 - Korean hangul - - - 6F5A3F - CF58 - ECBD98 - Korean hangul - - - 6F5A40 - CF5C - ECBD9C - Korean hangul - - - 6F5A41 - CF64 - ECBDA4 - Korean hangul - - - 6F5A42 - CF65 - ECBDA5 - Korean hangul - - - 6F5A43 - CF67 - ECBDA7 - Korean hangul - - - 6F5A44 - CF69 - ECBDA9 - Korean hangul - - - 6F5A45 - CF70 - ECBDB0 - Korean hangul - - - 6F5A46 - CF71 - ECBDB1 - Korean hangul - - - 6F5A47 - CF74 - ECBDB4 - Korean hangul - - - 6F5A48 - CF78 - ECBDB8 - Korean hangul - - - 6F5A49 - CF80 - ECBE80 - Korean hangul - - - 6F5A4A - CF85 - ECBE85 - Korean hangul - - - 6F5A4B - CF8C - ECBE8C - Korean hangul - - - 6F5A4C - CF8D - ECBE8D - Korean hangul - - - 6F5A4D - CFA1 - ECBEA1 - Korean hangul - - - 6F5A4F - CFB0 - ECBEB0 - Korean hangul - - - 6F5A50 - CFC4 - ECBF84 - Korean hangul - - - 6F5A51 - CFE0 - ECBFA0 - Korean hangul - - - 6F5A52 - CFE1 - ECBFA1 - Korean hangul - - - 6F5A53 - CFE4 - ECBFA4 - Korean hangul - - - 6F5A54 - CFE8 - ECBFA8 - Korean hangul - - - 6F5A55 - CFF0 - ECBFB0 - Korean hangul - - - 6F5A56 - CFF3 - ECBFB3 - Korean hangul - - - 6F5A57 - CFF5 - ECBFB5 - Korean hangul - - - 6F5A58 - CFFC - ECBFBC - Korean hangul - - - 6F5A5A - D018 - ED8098 - Korean hangul - - - 6F5A5B - D02D - ED80AD - Korean hangul - - - 6F5A5C - D034 - ED80B4 - Korean hangul - - - 6F5A5D - D035 - ED80B5 - Korean hangul - - - 6F5A5E - D038 - ED80B8 - Korean hangul - - - 6F5A5F - D050 - ED8190 - Korean hangul - - - 6F5A60 - D06C - ED81AC - Korean hangul - - - 6F5A61 - D070 - ED81B0 - Korean hangul - - - 6F5A62 - D074 - ED81B4 - Korean hangul - - - 6F5A63 - D07C - ED81BC - Korean hangul - - - 6F5A64 - D07D - ED81BD - Korean hangul - - - 6F5A65 - D081 - ED8281 - Korean hangul - - - 6F5A66 - D0A4 - ED82A4 - Korean hangul - - - 6F5A67 - D0A5 - ED82A5 - Korean hangul - - - 6F5A68 - D0A8 - ED82A8 - Korean hangul - - - 6F5A69 - D0AC - ED82AC - Korean hangul - - - 6F5A6A - D0B4 - ED82B4 - Korean hangul - - - 6F5A6B - D0B5 - ED82B5 - Korean hangul - - - 6F5A6C - D0B7 - ED82B7 - Korean hangul - - - 6F5A6D - D0B9 - ED82B9 - Korean hangul - - - 6F5A70 - D0C0 - ED8380 - Korean hangul - - - 6F5A71 - D0C1 - ED8381 - Korean hangul - - - 6F5A72 - D0C4 - ED8384 - Korean hangul - - - 6F5A73 - D0C8 - ED8388 - Korean hangul - - - 6F5A74 - D0C9 - ED8389 - Korean hangul - - - 6F5A75 - D0D0 - ED8390 - Korean hangul - - - 6F5A76 - D0D1 - ED8391 - Korean hangul - - - 6F5A77 - D0D3 - ED8393 - Korean hangul - - - 6F5A78 - D0D4 - ED8394 - Korean hangul - - - 6F5A79 - D0D5 - ED8395 - Korean hangul - - - 6F5A7A - D0DC - ED839C - Korean hangul - - - 6F5A7B - D0DD - ED839D - Korean hangul - - - 6F5A7C - D0E0 - ED83A0 - Korean hangul - - - 6F5A7D - D0E4 - ED83A4 - Korean hangul - - - 6F5A7E - D0EC - ED83AC - Korean hangul - - - 6F5B21 - D0ED - ED83AD - Korean hangul - - - 6F5B22 - D0EF - ED83AF - Korean hangul - - - 6F5B23 - D0F0 - ED83B0 - Korean hangul - - - 6F5B24 - D0F1 - ED83B1 - Korean hangul - - - 6F5B25 - D130 - ED84B0 - Korean hangul - - - 6F5B26 - D131 - ED84B1 - Korean hangul - - - 6F5B27 - D134 - ED84B4 - Korean hangul - - - 6F5B28 - D138 - ED84B8 - Korean hangul - - - 6F5B29 - D140 - ED8580 - Korean hangul - - - 6F5B2A - D141 - ED8581 - Korean hangul - - - 6F5B2B - D143 - ED8583 - Korean hangul - - - 6F5B2C - D144 - ED8584 - Korean hangul - - - 6F5B2D - D145 - ED8585 - Korean hangul - - - 6F5B2E - D14C - ED858C - Korean hangul - - - 6F5B2F - D14D - ED858D - Korean hangul - - - 6F5B30 - D150 - ED8590 - Korean hangul - - - 6F5B31 - D154 - ED8594 - Korean hangul - - - 6F5B32 - D15C - ED859C - Korean hangul - - - 6F5B33 - D15D - ED859D - Korean hangul - - - 6F5B34 - D15F - ED859F - Korean hangul - - - 6F5B35 - D160 - ED85A0 - Korean hangul - - - 6F5B36 - D161 - ED85A1 - Korean hangul - - - 6F5B37 - D168 - ED85A8 - Korean hangul - - - 6F5B38 - D1A0 - ED86A0 - Korean hangul - - - 6F5B39 - D1A1 - ED86A1 - Korean hangul - - - 6F5B3A - D1A4 - ED86A4 - Korean hangul - - - 6F5B3B - D1A8 - ED86A8 - Korean hangul - - - 6F5B3C - D1B0 - ED86B0 - Korean hangul - - - 6F5B3D - D1B1 - ED86B1 - Korean hangul - - - 6F5B3E - D1B3 - ED86B3 - Korean hangul - - - 6F5B3F - D1B5 - ED86B5 - Korean hangul - - - 6F5B40 - D1D8 - ED8798 - Korean hangul - - - 6F5B41 - D1F4 - ED87B4 - Korean hangul - - - 6F5B43 - D22C - ED88AC - Korean hangul - - - 6F5B44 - D22D - ED88AD - Korean hangul - - - 6F5B45 - D230 - ED88B0 - Korean hangul - - - 6F5B46 - D234 - ED88B4 - Korean hangul - - - 6F5B47 - D23C - ED88BC - Korean hangul - - - 6F5B48 - D23D - ED88BD - Korean hangul - - - 6F5B49 - D23F - ED88BF - Korean hangul - - - 6F5B4A - D241 - ED8981 - Korean hangul - - - 6F5B4B - D264 - ED89A4 - Korean hangul - - - 6F5B4C - D277 - ED89B7 - Korean hangul - - - 6F5B4D - D280 - ED8A80 - Korean hangul - - - 6F5B4E - D284 - ED8A84 - Korean hangul - - - 6F5B4F - D288 - ED8A88 - Korean hangul - - - 6F5B50 - D290 - ED8A90 - Korean hangul - - - 6F5B51 - D291 - ED8A91 - Korean hangul - - - 6F5B52 - D293 - ED8A93 - Korean hangul - - - 6F5B53 - D295 - ED8A95 - Korean hangul - - - 6F5B54 - D29C - ED8A9C - Korean hangul - - - 6F5B57 - D2AC - ED8AAC - Korean hangul - - - 6F5B59 - D2B8 - ED8AB8 - Korean hangul - - - 6F5B5A - D2B9 - ED8AB9 - Korean hangul - - - 6F5B5B - D2BC - ED8ABC - Korean hangul - - - 6F5B5C - D2BF - ED8ABF - Korean hangul - - - 6F5B5D - D2C0 - ED8B80 - Korean hangul - - - 6F5B5E - D2C8 - ED8B88 - Korean hangul - - - 6F5B5F - D2C9 - ED8B89 - Korean hangul - - - 6F5B60 - D2CB - ED8B8B - Korean hangul - - - 6F5B61 - D2D4 - ED8B94 - Korean hangul - - - 6F5B62 - D1F8 - ED87B8 - Korean hangul - - - 6F5B63 - D2F0 - ED8BB0 - Korean hangul - - - 6F5B64 - D2F1 - ED8BB1 - Korean hangul - - - 6F5B65 - D2F4 - ED8BB4 - Korean hangul - - - 6F5B66 - D2F8 - ED8BB8 - Korean hangul - - - 6F5B67 - D300 - ED8C80 - Korean hangul - - - 6F5B68 - D301 - ED8C81 - Korean hangul - - - 6F5B69 - D305 - ED8C85 - Korean hangul - - - 6F5B6C - D30C - ED8C8C - Korean hangul - - - 6F5B6D - D30D - ED8C8D - Korean hangul - - - 6F5B6E - D30E - ED8C8E - Korean hangul - - - 6F5B6F - D310 - ED8C90 - Korean hangul - - - 6F5B70 - D314 - ED8C94 - Korean hangul - - - 6F5B71 - D31C - ED8C9C - Korean hangul - - - 6F5B72 - D31D - ED8C9D - Korean hangul - - - 6F5B73 - D31F - ED8C9F - Korean hangul - - - 6F5B74 - D320 - ED8CA0 - Korean hangul - - - 6F5B75 - D321 - ED8CA1 - Korean hangul - - - 6F5B76 - D325 - ED8CA5 - Korean hangul - - - 6F5B77 - D328 - ED8CA8 - Korean hangul - - - 6F5B78 - D329 - ED8CA9 - Korean hangul - - - 6F5B79 - D32C - ED8CAC - Korean hangul - - - 6F5B7A - D330 - ED8CB0 - Korean hangul - - - 6F5B7B - D338 - ED8CB8 - Korean hangul - - - 6F5B7C - D339 - ED8CB9 - Korean hangul - - - 6F5B7D - D33B - ED8CBB - Korean hangul - - - 6F5B7E - D33C - ED8CBC - Korean hangul - - - 6F5C21 - D33D - ED8CBD - Korean hangul - - - 6F5C23 - D37C - ED8DBC - Korean hangul - - - 6F5C24 - D37D - ED8DBD - Korean hangul - - - 6F5C25 - D380 - ED8E80 - Korean hangul - - - 6F5C26 - D384 - ED8E84 - Korean hangul - - - 6F5C27 - D38C - ED8E8C - Korean hangul - - - 6F5C28 - D38D - ED8E8D - Korean hangul - - - 6F5C29 - D38F - ED8E8F - Korean hangul - - - 6F5C2A - D390 - ED8E90 - Korean hangul - - - 6F5C2B - D391 - ED8E91 - Korean hangul - - - 6F5C2C - D398 - ED8E98 - Korean hangul - - - 6F5C2D - D399 - ED8E99 - Korean hangul - - - 6F5C2E - D39C - ED8E9C - Korean hangul - - - 6F5C2F - D3A0 - ED8EA0 - Korean hangul - - - 6F5C30 - D3A8 - ED8EA8 - Korean hangul - - - 6F5C31 - D3A9 - ED8EA9 - Korean hangul - - - 6F5C32 - D3AB - ED8EAB - Korean hangul - - - 6F5C33 - D3AD - ED8EAD - Korean hangul - - - 6F5C34 - D3B4 - ED8EB4 - Korean hangul - - - 6F5C35 - D3B5 - ED8EB5 - Korean hangul - - - 6F5C36 - D3B8 - ED8EB8 - Korean hangul - - - 6F5C37 - D3BC - ED8EBC - Korean hangul - - - 6F5C38 - D3C4 - ED8F84 - Korean hangul - - - 6F5C39 - D3C5 - ED8F85 - Korean hangul - - - 6F5C3A - D3C8 - ED8F88 - Korean hangul - - - 6F5C3B - D3C9 - ED8F89 - Korean hangul - - - 6F5C3C - D3D0 - ED8F90 - Korean hangul - - - 6F5C3D - D3EC - ED8FAC - Korean hangul - - - 6F5C3E - D3ED - ED8FAD - Korean hangul - - - 6F5C3F - D3F0 - ED8FB0 - Korean hangul - - - 6F5C40 - D3F4 - ED8FB4 - Korean hangul - - - 6F5C41 - D3FC - ED8FBC - Korean hangul - - - 6F5C42 - D3FD - ED8FBD - Korean hangul - - - 6F5C43 - D3FF - ED8FBF - Korean hangul - - - 6F5C44 - D401 - ED9081 - Korean hangul - - - 6F5C45 - D440 - ED9180 - Korean hangul - - - 6F5C46 - D444 - ED9184 - Korean hangul - - - 6F5C47 - D45C - ED919C - Korean hangul - - - 6F5C48 - D46F - ED91AF - Korean hangul - - - 6F5C49 - D478 - ED91B8 - Korean hangul - - - 6F5C4A - D479 - ED91B9 - Korean hangul - - - 6F5C4B - D47C - ED91BC - Korean hangul - - - 6F5C4C - D480 - ED9280 - Korean hangul - - - 6F5C4D - D488 - ED9288 - Korean hangul - - - 6F5C4E - D489 - ED9289 - Korean hangul - - - 6F5C4F - D48B - ED928B - Korean hangul - - - 6F5C50 - D48D - ED928D - Korean hangul - - - 6F5C51 - D4CC - ED938C - Korean hangul - - - 6F5C52 - D4E8 - ED93A8 - Korean hangul - - - 6F5C53 - D504 - ED9484 - Korean hangul - - - 6F5C55 - D508 - ED9488 - Korean hangul - - - 6F5C56 - D50C - ED948C - Korean hangul - - - 6F5C57 - D514 - ED9494 - Korean hangul - - - 6F5C58 - D515 - ED9495 - Korean hangul - - - 6F5C59 - D53C - ED94BC - Korean hangul - - - 6F5C5A - D53D - ED94BD - Korean hangul - - - 6F5C5B - D540 - ED9580 - Korean hangul - - - 6F5C5C - D544 - ED9584 - Korean hangul - - - 6F5C5D - D54C - ED958C - Korean hangul - - - 6F5C5E - D54D - ED958D - Korean hangul - - - 6F5C5F - D54F - ED958F - Korean hangul - - - 6F5C60 - D551 - ED9591 - Korean hangul - - - 6F5C63 - D558 - ED9598 - Korean hangul - - - 6F5C64 - D559 - ED9599 - Korean hangul - - - 6F5C65 - D55C - ED959C - Korean hangul - - - 6F5C66 - D560 - ED95A0 - Korean hangul - - - 6F5C67 - D565 - ED95A5 - Korean hangul - - - 6F5C68 - D568 - ED95A8 - Korean hangul - - - 6F5C69 - D569 - ED95A9 - Korean hangul - - - 6F5C6A - D56B - ED95AB - Korean hangul - - - 6F5C6B - D56C - ED95AC - Korean hangul - - - 6F5C6C - D56D - ED95AD - Korean hangul - - - 6F5C6D - D571 - ED95B1 - Korean hangul - - - 6F5C6E - D574 - ED95B4 - Korean hangul - - - 6F5C6F - D575 - ED95B5 - Korean hangul - - - 6F5C70 - D578 - ED95B8 - Korean hangul - - - 6F5C71 - D57C - ED95BC - Korean hangul - - - 6F5C72 - D584 - ED9684 - Korean hangul - - - 6F5C73 - D585 - ED9685 - Korean hangul - - - 6F5C74 - D587 - ED9687 - Korean hangul - - - 6F5C75 - D588 - ED9688 - Korean hangul - - - 6F5C76 - D589 - ED9689 - Korean hangul - - - 6F5C77 - D590 - ED9690 - Korean hangul - - - 6F5C78 - D5A5 - ED96A5 - Korean hangul - - - 6F5C79 - D5C8 - ED9788 - Korean hangul - - - 6F5C7A - D5C9 - ED9789 - Korean hangul - - - 6F5C7B - D5CC - ED978C - Korean hangul - - - 6F5C7C - D5D0 - ED9790 - Korean hangul - - - 6F5C7D - D5D2 - ED9792 - Korean hangul - - - 6F5C7E - D5D8 - ED9798 - Korean hangul - - - 6F5D21 - D5D9 - ED9799 - Korean hangul - - - 6F5D22 - D5DB - ED979B - Korean hangul - - - 6F5D23 - D5DD - ED979D - Korean hangul - - - 6F5D24 - D5E4 - ED97A4 - Korean hangul - - - 6F5D25 - D5E5 - ED97A5 - Korean hangul - - - 6F5D26 - D5E8 - ED97A8 - Korean hangul - - - 6F5D27 - D5EC - ED97AC - Korean hangul - - - 6F5D28 - D5F4 - ED97B4 - Korean hangul - - - 6F5D29 - D5F5 - ED97B5 - Korean hangul - - - 6F5D2A - D5F7 - ED97B7 - Korean hangul - - - 6F5D2B - D5F9 - ED97B9 - Korean hangul - - - 6F5D2C - D600 - ED9880 - Korean hangul - - - 6F5D2D - D601 - ED9881 - Korean hangul - - - 6F5D2E - D604 - ED9884 - Korean hangul - - - 6F5D2F - D608 - ED9888 - Korean hangul - - - 6F5D30 - D610 - ED9890 - Korean hangul - - - 6F5D31 - D611 - ED9891 - Korean hangul - - - 6F5D32 - D613 - ED9893 - Korean hangul - - - 6F5D33 - D614 - ED9894 - Korean hangul - - - 6F5D34 - D615 - ED9895 - Korean hangul - - - 6F5D35 - D61C - ED989C - Korean hangul - - - 6F5D36 - D638 - ED98B8 - Korean hangul - - - 6F5D37 - D639 - ED98B9 - Korean hangul - - - 6F5D38 - D63C - ED98BC - Korean hangul - - - 6F5D39 - D640 - ED9980 - Korean hangul - - - 6F5D3A - D648 - ED9988 - Korean hangul - - - 6F5D3B - D649 - ED9989 - Korean hangul - - - 6F5D3C - D64B - ED998B - Korean hangul - - - 6F5D3D - D64D - ED998D - Korean hangul - - - 6F5D3F - D654 - ED9994 - Korean hangul - - - 6F5D40 - D655 - ED9995 - Korean hangul - - - 6F5D41 - D658 - ED9998 - Korean hangul - - - 6F5D42 - D65C - ED999C - Korean hangul - - - 6F5D44 - D667 - ED99A7 - Korean hangul - - - 6F5D45 - D669 - ED99A9 - Korean hangul - - - 6F5D46 - D670 - ED99B0 - Korean hangul - - - 6F5D47 - D671 - ED99B1 - Korean hangul - - - 6F5D48 - D683 - ED9A83 - Korean hangul - - - 6F5D4A - D68C - ED9A8C - Korean hangul - - - 6F5D4B - D68D - ED9A8D - Korean hangul - - - 6F5D4C - D69F - ED9A9F - Korean hangul - - - 6F5D4D - D6A1 - ED9AA1 - Korean hangul - - - 6F5D4E - D6A8 - ED9AA8 - Korean hangul - - - 6F5D4F - D6C4 - ED9B84 - Korean hangul - - - 6F5D50 - D6C5 - ED9B85 - Korean hangul - - - 6F5D51 - D6C8 - ED9B88 - Korean hangul - - - 6F5D52 - D6CC - ED9B8C - Korean hangul - - - 6F5D53 - D6D1 - ED9B91 - Korean hangul - - - 6F5D54 - D6D4 - ED9B94 - Korean hangul - - - 6F5D55 - D6D7 - ED9B97 - Korean hangul - - - 6F5D56 - D6E0 - ED9BA0 - Korean hangul - - - 6F5D57 - D6E4 - ED9BA4 - Korean hangul - - - 6F5D58 - D6E8 - ED9BA8 - Korean hangul - - - 6F5D59 - D6F0 - ED9BB0 - Korean hangul - - - 6F5D5A - D6FC - ED9BBC - Korean hangul - - - 6F5D5C - D700 - ED9C80 - Korean hangul - - - 6F5D5D - D711 - ED9C91 - Korean hangul - - - 6F5D5E - D718 - ED9C98 - Korean hangul - - - 6F5D5F - D719 - ED9C99 - Korean hangul - - - 6F5D60 - D71C - ED9C9C - Korean hangul - - - 6F5D61 - D720 - ED9CA0 - Korean hangul - - - 6F5D62 - D728 - ED9CA8 - Korean hangul - - - 6F5D63 - D729 - ED9CA9 - Korean hangul - - - 6F5D65 - D72D - ED9CAD - Korean hangul - - - 6F5D66 - D734 - ED9CB4 - Korean hangul - - - 6F5D67 - D73C - ED9CBC - Korean hangul - - - 6F5D68 - D744 - ED9D84 - Korean hangul - - - 6F5D69 - D749 - ED9D89 - Korean hangul - - - 6F5D6A - D750 - ED9D90 - Korean hangul - - - 6F5D6B - D751 - ED9D91 - Korean hangul - - - 6F5D6C - D754 - ED9D94 - Korean hangul - - - 6F5D6D - D757 - ED9D97 - Korean hangul - - - 6F5D6E - D758 - ED9D98 - Korean hangul - - - 6F5D6F - D759 - ED9D99 - Korean hangul - - - 6F5D70 - D760 - ED9DA0 - Korean hangul - - - 6F5D71 - D761 - ED9DA1 - Korean hangul - - - 6F5D72 - D763 - ED9DA3 - Korean hangul - - - 6F5D73 - D765 - ED9DA5 - Korean hangul - - - 6F5D74 - D769 - ED9DA9 - Korean hangul - - - 6F5D75 - D76C - ED9DAC - Korean hangul - - - 6F5D76 - D770 - ED9DB0 - Korean hangul - - - 6F5D77 - D774 - ED9DB4 - Korean hangul - - - 6F5D78 - D788 - ED9E88 - Korean hangul - - - 6F5D79 - D789 - ED9E89 - Korean hangul - - - 6F5D7A - D78C - ED9E8C - Korean hangul - - - 6F5D7B - D790 - ED9E90 - Korean hangul - - - 6F5D7C - D798 - ED9E98 - Korean hangul - - - 6F5D7D - D799 - ED9E99 - Korean hangul - - - 6F5D7E - D79B - ED9E9B - Korean hangul - - - 6F5E21 - D79D - ED9E9D - Korean hangul - - - 6F7621 - 3181 - E38681 - Korean hangul - - - 6F7622 - 3186 - E38686 - Korean hangul - - - 6F7623 - 317F - E385BF - Korean hangul - - - 6F7624 - E8B0 - EEA2B0 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7625 - 318D - E3868D - Korean hangul (ancient) - - - 6F7640 - E8B2 - EEA2B2 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7641 - E8B3 - EEA2B3 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7642 - E8B4 - EEA2B4 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7643 - E8B5 - EEA2B5 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7644 - E8B6 - EEA2B6 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7645 - E8B7 - EEA2B7 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7646 - E8B8 - EEA2B8 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7647 - E8B9 - EEA2B9 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7648 - E8BA - EEA2BA - Korean hangul (ancient) - 3013 - E38093 - - - 6F7649 - E8BB - EEA2BB - Korean hangul (ancient) - 3013 - E38093 - - - 6F764A - E8BC - EEA2BC - Korean hangul (ancient) - 3013 - E38093 - - - 6F764B - E8BD - EEA2BD - Korean hangul (ancient) - 3013 - E38093 - - - 6F764C - E8BE - EEA2BE - Korean hangul (ancient) - 3013 - E38093 - - - 6F764D - E8BF - EEA2BF - Korean hangul (ancient) - 3013 - E38093 - - - 6F764E - E8C0 - EEA380 - Korean hangul (ancient) - 3013 - E38093 - - - 6F764F - E8C1 - EEA381 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7650 - E8C2 - EEA382 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7651 - E8C3 - EEA383 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7652 - E8C4 - EEA384 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7653 - E8C5 - EEA385 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7654 - E8C6 - EEA386 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7655 - E8C7 - EEA387 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7656 - E8C8 - EEA388 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7657 - E8C9 - EEA389 - Korean hangul (ancient) - 3013 - E38093 - - - 6F7721 - AD35 - EAB4B5 - Korean hangul - - - 6F7722 - AD7B - EAB5BB - Korean hangul - - - 6F7723 - E8CA - EEA38A - Korean hangul - 3013 - E38093 - - - 6F7724 - AD89 - EAB689 - Korean hangul - - - 6F7725 - AD9D - EAB69D - Korean hangul - - - 6F7726 - ADB9 - EAB6B9 - Korean hangul - - - 6F7727 - ADD5 - EAB795 - Korean hangul - - - 6F7728 - AE07 - EAB887 - Korean hangul - - - 6F7729 - AE0E - EAB88E - Korean hangul - - - 6F772A - AE0F - EAB88F - Korean hangul - - - 6F772B - AE11 - EAB891 - Korean hangul - - - 6F772C - AE14 - EAB894 - Korean hangul - - - 6F772D - AE5F - EAB99F - Korean hangul - - - 6F772E - AEED - EABBAD - Korean hangul - - - 6F772F - AF09 - EABC89 - Korean hangul - - - 6F7730 - AF50 - EABD90 - Korean hangul - - - 6F7731 - AFBF - EABEBF - Korean hangul - - - 6F7732 - B060 - EB81A0 - Korean hangul - - - 6F7733 - B9C4 - EBA784 - Korean hangul - - - 6F7734 - C54D - EC958D - Korean hangul - - - 6F7735 - C54F - EC958F - Korean hangul - - - 6F7736 - C552 - EC9592 - Korean hangul - - - 6F7737 - C5AB - EC96AB - Korean hangul - - - 6F7738 - C5B1 - EC96B1 - Korean hangul - - - 6F7739 - C61C - EC989C - Korean hangul - - - 6F773A - C61D - EC989D - Korean hangul - - - 6F773B - C6FD - EC9BBD - Korean hangul - - - 6F773C - C717 - EC9C97 - Korean hangul (unified with EACC 6F5658) - - - 6F773D - C733 - EC9CB3 - Korean hangul - - - 6F773E - CB4C - ECAD8C - Korean hangul - -
    - - -

    This table contains 25 mappings of character encodings for East - Asian punctuation marks from the East Asian Coded Character set (ANSI/NISO - Z39.64, or "EACC") to character encodings in the Universal Character Set - (UCS, ISO-IEC 10646)/Unicode. Character codes are given in hexadecimal - notation. Each character is presented on a separate row.

    -

    The first column contains the MARC-8 EACC 24-bit code (in hex), the - second column contains the corresponding UCS/Unicode 16-bit (in hex) code, - the third column contains the UTF-8 code (in hex) for the UCS character, - the fourth column contains a representation of the character (where possible), the fifth column - contains a character name or description.

    -

    NOTE: The character IDEOGRAPHIC NUMBER ZERO (EACC 212F30, UCS/Unicode - 3007) is not included in this - table. It is listed in the mapping table for East Asian - Ideographs.

    -
    - - 212321 - 3000 - E38080 - Ideographic space per ANSI Z39.64 - - - 212320 - 3000 - E38080 - Ideographic space in some implementations - - - 212328 - FF08 - EFBC88 - Ideographic left parenthesis - - - 212329 - FF09 - EFBC89 - Ideographic right parenthesis - - - 21232D - FF0D - EFBC8D - Ideographic hyphen minus - - - 212A46 - 3013 - E38093 - Ideographic geta symbol - - - 212B25 - 300C - E3808C - Ideographic left corner bracket - - - 212B26 - 300D - E3808D - Ideographic right corner bracket - - - 212B31 - FF3B - EFBCBB - Ideographic left square bracket - - - 212B32 - FF3D - EFBCBD - Ideographic right square bracket - - - 212B33 - 3002 - E38082 - Ideographic full stop - - - 212B34 - FF0E - EFBC8E - Ideographic variant full stop - - - 212B35 - 3001 - E38081 - Ideographic comma - - - 212B38 - FF0C - EFBC8C - Ideographic variant comma - - - 212B39 - FF1B - EFBC9B - Ideographic semicolon - - - 212B3A - FF1A - EFBC9A - Ideographic colon - - - 212B3B - FF1F - EFBC9F - Ideographic question mark - - - 212B3D - FF01 - EFBC81 - Ideographic exclamation point - - - 212B59 - FF0F - EFBC8F - Ideographic solidus - - - 692126 - 30FB - E383BB - Ideographic centered point - - - 692139 - 3005 - E38085 - Ideographic iteration mark - - - 692152 - 3008 - E38088 - Ideographic less than sign - - - 692153 - 3009 - E38089 - Ideographic greater than sign - - - 692154 - 300A - E3808A - Ideographic left double angle bracket - - - 692155 - 300B - E3808B - Ideographic right double angle bracket - -
    - - -

    This table contains 35 mappings of encodings for component input - method characters from the East Asian Coded Character set (ANSI/NISO - Z39.64, or "EACC") to character encodings in the Private Use Area (PUA) of - the Universal Character Set (UCS, ISO-IEC 10646)/Unicode. Character codes - are given in hexadecimal notation. Each character is presented on a - separate row.

    -

    The first column contains the MARC-8 EACC 24-bit code (in hex), the - second column contains the corresponding UCS/Unicode 16-bit code (in hex), - the third column contains the UTF-8 code (in hex) for the UCS character, - the fourth column contains a representation of the character (where possible), - the fifth column contains a character - name or description. Most East Asian ideographs are not given unique - names in the MARC-8 or UCS/Unicode.

    -

    For some characters alternate encodings - in UCS/Unicode and UTF-8 are given. When that occurs the alternate - UCS/Unicode 16-bit code column and - alternate UTF-8 code column follow the character name. - The alternative UCS/Unicode character - codes are provided for cases where MARC-8 characters were mapped to - UCS/Unicode characters in the Private Use Area (PUA). The alternative - character code is a defined Unicode character which should be - supported by applications that claim to support the full repertoire of - defined Unicode characters.

    The characters in this table are sorted in - EACC character code order.

    - - -
    - - 212A21 - E8D0 - EEA390 - EACC component character - 3013 - E38093 - - - 212A22 - E8D1 - EEA391 - EACC component character - 3013 - E38093 - - - 212A23 - E8D2 - EEA392 - EACC component character - 3013 - E38093 - - - 212A24 - E8D3 - EEA393 - EACC component character - 3013 - E38093 - - - 212A25 - E8D4 - EEA394 - EACC component character - 3013 - E38093 - - - 212A26 - E8D5 - EEA395 - EACC component character - 3013 - E38093 - - - 212A28 - E8D6 - EEA396 - EACC component character - 3013 - E38093 - - - 212A29 - E8D7 - EEA397 - EACC component character - 3013 - E38093 - - - 212A2A - E8D8 - EEA398 - EACC component character - 3013 - E38093 - - - 212A2B - E8D9 - EEA399 - EACC component character - 3013 - E38093 - - - 212A2C - E8DA - EEA39A - EACC component character - 3013 - E38093 - - - 212A2D - E8DB - EEA39B - EACC component character - 3013 - E38093 - - - 212A2E - E8DC - EEA39C - EACC component character - 3013 - E38093 - - - 212A2F - E8DD - EEA39D - EACC component character - 3013 - E38093 - - - 212A30 - E8DE - EEA39E - EACC component character - 3013 - E38093 - - - 212A32 - E8DF - EEA39F - EACC component character - 3013 - E38093 - - - 212A33 - E8E0 - EEA3A0 - EACC component character - 3013 - E38093 - - - 212A34 - E8E1 - EEA3A1 - EACC component character - 3013 - E38093 - - - 212A35 - E8E2 - EEA3A2 - EACC component character - 3013 - E38093 - - - 212A36 - E8E3 - EEA3A3 - EACC component character - 3013 - E38093 - - - 212A37 - E8E4 - EEA3A4 - EACC component character - 3013 - E38093 - - - 212A38 - E8E5 - EEA3A5 - EACC component character - 3013 - E38093 - - - 212A39 - E8E6 - EEA3A6 - EACC component character - 3013 - E38093 - - - 212A3A - E8E7 - EEA3A7 - EACC component character - 3013 - E38093 - - - 212A3B - E8E8 - EEA3A8 - EACC component character - 3013 - E38093 - - - 212A3C - E8E9 - EEA3A9 - EACC component character - 3013 - E38093 - - - 212A3D - E8EA - EEA3AA - EACC component character - 3013 - E38093 - - - 212A3E - E8EB - EEA3AB - EACC component character - 3013 - E38093 - - - 212A3F - E8EC - EEA3AC - EACC component character - 3013 - E38093 - - - 212A40 - E8ED - EEA3AD - EACC component character - 3013 - E38093 - - - 212A41 - E8EE - EEA3AE - EACC component character - 3013 - E38093 - - - 212A42 - E8EF - EEA3AF - EACC component character - 3013 - E38093 - - - 212A43 - E8F0 - EEA3B0 - EACC component character - 3013 - E38093 - - - 212A44 - E8F1 - EEA3B1 - EACC component character - 3013 - E38093 - - - 212A45 - E8F2 - EEA3B2 - EACC component character - 3013 - E38093 - -
    - - - diff --git a/dependencies/yaz_3.0.14/src/comstack.c b/dependencies/yaz_3.0.14/src/comstack.c deleted file mode 100644 index e8a1461..0000000 --- a/dependencies/yaz_3.0.14/src/comstack.c +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: comstack.c,v 1.18 2007/01/11 10:30:41 adam Exp $ - */ - -/** - * \file comstack.c - * \brief Implements Generic COMSTACK functions - */ - -#include -#include -#include - -#include -#include -#include -#include -#include - -#ifdef WIN32 -#define strncasecmp _strnicmp -#endif - -static const char *cs_errlist[] = -{ - "No error or unspecified error", - "System (lower-layer) error", - "Operation out of state", - "No data (operation would block)", - "New data while half of old buffer is on the line (flow control)", - "Permission denied", - "SSL error", - "Too large incoming buffer" -}; - -const char *cs_errmsg(int n) -{ - static char buf[250]; - - if (n < CSNONE || n > CSLASTERROR) { - sprintf(buf, "unknown comstack error %d", n); - return buf; - } - if (n == CSYSERR) { - sprintf(buf, "%s: %s", cs_errlist[n], strerror(errno)); - return buf; - } - return cs_errlist[n]; -} - -const char *cs_strerror(COMSTACK h) -{ - return cs_errmsg(h->cerrno); -} - -void cs_get_host_args(const char *type_and_host, const char **args) -{ - - *args = ""; - if (*type_and_host && strncmp(type_and_host, "unix:", 5)) - { - const char *cp; - cp = strstr(type_and_host, "://"); - if (cp) - cp = cp+3; - else - cp = type_and_host; - cp = strchr(cp, '/'); - if (cp) - *args = cp+1; - } -} - -COMSTACK cs_create_host(const char *type_and_host, int blocking, void **vp) -{ - enum oid_proto proto = PROTO_Z3950; - const char *host = 0; - COMSTACK cs; - CS_TYPE t; - - if (strncmp (type_and_host, "tcp:", 4) == 0) - { - t = tcpip_type; - host = type_and_host + 4; - } - else if (strncmp (type_and_host, "ssl:", 4) == 0) - { -#if HAVE_OPENSSL_SSL_H - t = ssl_type; - host = type_and_host + 4; -#else - return 0; -#endif - } - else if (strncmp (type_and_host, "unix:", 5) == 0) - { -#ifndef WIN32 - t = unix_type; - host = type_and_host + 5; -#else - return 0; -#endif - } - else if (strncmp(type_and_host, "http:", 5) == 0) - { - t = tcpip_type; - host = type_and_host + 5; - while (host[0] == '/') - host++; - proto = PROTO_HTTP; - } - else if (strncmp(type_and_host, "https:", 6) == 0) - { -#if HAVE_OPENSSL_SSL_H - t = ssl_type; - host = type_and_host + 6; - while (host[0] == '/') - host++; - proto = PROTO_HTTP; -#else - return 0; -#endif - } - else - { - t = tcpip_type; - host = type_and_host; - } - cs = cs_create (t, blocking, proto); - if (!cs) - return 0; - - if (!(*vp = cs_straddr(cs, host))) - { - cs_close (cs); - return 0; - } - return cs; -} - -int cs_look (COMSTACK cs) -{ - return cs->event; -} - -static int skip_crlf(const char *buf, int len, int *i) -{ - if (*i < len) - { - if (buf[*i] == '\r' && *i < len-1 && buf[*i + 1] == '\n') - { - (*i) += 2; - return 1; - } - else if (buf[*i] == '\n') - { - (*i)++; - return 1; - } - } - return 0; -} - -#define CHUNK_DEBUG 0 - -int cs_complete_http(const char *buf, int len) -{ - /* deal with HTTP request/response */ - int i = 2, content_len = 0, chunked = 0; - - if (len < 6) - return 0; - - /* if dealing with HTTP responses - then default - content length is unlimited (socket close) */ - if (!memcmp(buf, "HTTP/", 5)) - content_len = -1; - -#if 0 - printf("len = %d\n", len); - fwrite (buf, 1, len, stdout); - printf("----------\n"); -#endif - while (i <= len-2) - { - if (i > 8192) - { - return i; /* do not allow more than 8K HTTP header */ - } - if (skip_crlf(buf, len, &i)) - { - if (skip_crlf(buf, len, &i)) - { - /* inside content */ - if (chunked) - { - /* inside chunked body .. */ - while(1) - { - int chunk_len = 0; -#if CHUNK_DEBUG - if (i < len-2) - { - printf ("\n<<<"); - int j; - for (j = i; j <= i+3; j++) - printf ("%c", buf[j]); - printf (">>>\n"); - } -#endif - /* read chunk length */ - while (1) - if (i >= len-2) { -#if CHUNK_DEBUG - printf ("returning incomplete read at 1\n"); - printf ("i=%d len=%d\n", i, len); -#endif - return 0; - } else if (isdigit(buf[i])) - chunk_len = chunk_len * 16 + - (buf[i++] - '0'); - else if (isupper(buf[i])) - chunk_len = chunk_len * 16 + - (buf[i++] - ('A'-10)); - else if (islower(buf[i])) - chunk_len = chunk_len * 16 + - (buf[i++] - ('a'-10)); - else - break; - if (chunk_len == 0) - break; - if (chunk_len < 0) - return i; - - while (1) - { - if (i >= len -1) - return 0; - if (skip_crlf(buf, len, &i)) - break; - i++; - } - /* got CRLF */ -#if CHUNK_DEBUG - printf ("chunk_len=%d\n", chunk_len); -#endif - i += chunk_len; - if (i >= len-2) - return 0; - if (!skip_crlf(buf, len, &i)) - return 0; - } - /* consider trailing headers .. */ - while (i < len) - { - if (skip_crlf(buf, len, &i)) - { - if (skip_crlf(buf, len, &i)) - return i; - } - else - i++; - } -#if CHUNK_DEBUG - printf ("returning incomplete read at 2\n"); - printf ("i=%d len=%d\n", i, len); -#endif - return 0; - } - else - { /* not chunked ; inside body */ - if (content_len == -1) - return 0; /* no content length */ - else if (len >= i + content_len) - { - return i + content_len; - } - } - break; - } - else if (i < len - 20 && - !strncasecmp((const char *) buf+i, "Transfer-Encoding:", 18)) - { - i+=18; - while (buf[i] == ' ') - i++; - if (i < len - 8) - if (!strncasecmp((const char *) buf+i, "chunked", 7)) - chunked = 1; - } - else if (i < len - 17 && - !strncasecmp((const char *)buf+i, "Content-Length:", 15)) - { - i+= 15; - while (buf[i] == ' ') - i++; - content_len = 0; - while (i <= len-4 && isdigit(buf[i])) - content_len = content_len*10 + (buf[i++] - '0'); - if (content_len < 0) /* prevent negative offsets */ - content_len = 0; - } - else - i++; - } - else - i++; - } - return 0; -} - -int cs_complete_auto(const unsigned char *buf, int len) -{ - if (len > 5 && buf[0] >= 0x20 && buf[0] < 0x7f - && buf[1] >= 0x20 && buf[1] < 0x7f - && buf[2] >= 0x20 && buf[2] < 0x7f) - { - int r = cs_complete_http((const char *) buf, len); - return r; - } - return completeBER(buf, len); -} - -void cs_set_max_recv_bytes(COMSTACK cs, int max_recv_bytes) -{ - cs->max_recv_bytes = max_recv_bytes; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/copy_types.c b/dependencies/yaz_3.0.14/src/copy_types.c deleted file mode 100644 index f0f8c55..0000000 --- a/dependencies/yaz_3.0.14/src/copy_types.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * All rights reserved. - * - * $Id: copy_types.c,v 1.1 2007/04/30 08:29:07 adam Exp $ - */ - -/** \file copy_types.c - \brief Copies various Z39.50 types - */ - -#include - -Z_RPNQuery *yaz_copy_z_RPNQuery(Z_RPNQuery *q, ODR out) -{ - Z_RPNQuery *q1 = 0; - ODR enc = odr_createmem(ODR_ENCODE); - ODR dec = odr_createmem(ODR_DECODE); - if (!z_RPNQuery(enc, &q, 0, 0)) - return 0; - else - { - int len; - char *buf = odr_getbuf(enc, &len, 0); - if (buf) - { - odr_setbuf(dec, buf, len, 0); - z_RPNQuery(dec, &q1, 0, 0); - nmem_transfer(out->mem, dec->mem); - } - } - odr_destroy(enc); - odr_destroy(dec); - return q1; -} - -Z_Query *yaz_copy_Z_Query(Z_Query *q, ODR out) -{ - Z_Query *q1 = 0; - ODR enc = odr_createmem(ODR_ENCODE); - ODR dec = odr_createmem(ODR_DECODE); - if (!z_Query(enc, &q, 0, 0)) - return 0; - else - { - int len; - char *buf = odr_getbuf(enc, &len, 0); - if (buf) - { - odr_setbuf(dec, buf, len, 0); - z_Query(dec, &q1, 0, 0); - nmem_transfer(out->mem, dec->mem); - } - } - odr_destroy(enc); - odr_destroy(dec); - return q1; -} - - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cql.c b/dependencies/yaz_3.0.14/src/cql.c deleted file mode 100644 index 05de719..0000000 --- a/dependencies/yaz_3.0.14/src/cql.c +++ /dev/null @@ -1,1957 +0,0 @@ -/* A Bison parser, made by GNU Bison 2.3. */ - -/* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -/* C LALR(1) parser skeleton written by Richard Stallman, by - simplifying the original so-called "semantic" parser. */ - -/* All symbols defined below should begin with yy or YY, to avoid - infringing on user name space. This should be done even for local - variables, as they might otherwise be expanded by user macros. - There are some unavoidable exceptions within include files to - define necessary library symbols; they are noted "INFRINGES ON - USER NAME SPACE" below. */ - -/* Identify Bison output. */ -#define YYBISON 1 - -/* Bison version. */ -#define YYBISON_VERSION "2.3" - -/* Skeleton name. */ -#define YYSKELETON_NAME "yacc.c" - -/* Pure parsers. */ -#define YYPURE 1 - -/* Using locations. */ -#define YYLSP_NEEDED 0 - -/* Substitute the variable and function names. */ -#define yyparse cql_parse -#define yylex cql_lex -#define yyerror cql_error -#define yylval cql_lval -#define yychar cql_char -#define yydebug cql_debug -#define yynerrs cql_nerrs - - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - TERM = 258, - AND = 259, - OR = 260, - NOT = 261, - PROX = 262, - GE = 263, - LE = 264, - NE = 265 - }; -#endif -/* Tokens. */ -#define TERM 258 -#define AND 259 -#define OR 260 -#define NOT 261 -#define PROX 262 -#define GE 263 -#define LE 264 -#define NE 265 - - - - -/* Copy the first part of user declarations. */ -#line 11 "cql.y" - -/** - * \file cql.c - * \brief Implements CQL parser. - * - * This is a YACC parser, but since it must be reentrant, Bison is required. - * The original source file is cql.y. - */ -#include -#include -#include -#include -#include -#include -#include - - /** Node in the LALR parse tree. */ - typedef struct { - /** Inhereted attribute: relation */ - struct cql_node *rel; - /** Synthesized attribute: CQL node */ - struct cql_node *cql; - /** string buffer with token */ - char *buf; - /** length of token */ - size_t len; - /** size of buffer (len <= size) */ - size_t size; - } token; - - struct cql_parser { - int (*getbyte)(void *client_data); - void (*ungetbyte)(int b, void *client_data); - void *client_data; - int last_error; - int last_pos; - struct cql_node *top; - NMEM nmem; - }; - -#define YYSTYPE token - -#define YYPARSE_PARAM parm -#define YYLEX_PARAM parm - - int yylex(YYSTYPE *lval, void *vp); - int yyerror(char *s); - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef int YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 -#endif - - - -/* Copy the second part of user declarations. */ - - -/* Line 216 of yacc.c. */ -#line 183 "cql.c" - -#ifdef short -# undef short -#endif - -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; -#endif - -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -typedef signed char yytype_int8; -#else -typedef short int yytype_int8; -#endif - -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; -#else -typedef unsigned short int yytype_uint16; -#endif - -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; -#else -typedef short int yytype_int16; -#endif - -#ifndef YYSIZE_T -# ifdef __SIZE_TYPE__ -# define YYSIZE_T __SIZE_TYPE__ -# elif defined size_t -# define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# else -# define YYSIZE_T unsigned int -# endif -#endif - -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) - -#ifndef YY_ -# if YYENABLE_NLS -# if ENABLE_NLS -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) -# endif -# endif -# ifndef YY_ -# define YY_(msgid) msgid -# endif -#endif - -/* Suppress unused-variable warnings by "using" E. */ -#if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) -#else -# define YYUSE(e) /* empty */ -#endif - -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) -#else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) -#else -static int -YYID (i) - int i; -#endif -{ - return i; -} -#endif - -#if ! defined yyoverflow || YYERROR_VERBOSE - -/* The parser invokes alloca or malloc; define the necessary symbols. */ - -# ifdef YYSTACK_USE_ALLOCA -# if YYSTACK_USE_ALLOCA -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# elif defined __BUILTIN_VA_ARG_INCR -# include /* INFRINGES ON USER NAME SPACE */ -# elif defined _AIX -# define YYSTACK_ALLOC __alloca -# elif defined _MSC_VER -# include /* INFRINGES ON USER NAME SPACE */ -# define alloca _alloca -# else -# define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# endif -# endif -# endif - -# ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) -# ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - invoke alloca (N) if N exceeds 4096. Use a slightly smaller number - to allow for a few compiler-allocated temporary stack slots. */ -# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ -# endif -# else -# define YYSTACK_ALLOC YYMALLOC -# define YYSTACK_FREE YYFREE -# ifndef YYSTACK_ALLOC_MAXIMUM -# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM -# endif -# if (defined __cplusplus && ! defined _STDLIB_H \ - && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) -# include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 -# endif -# endif -# ifndef YYMALLOC -# define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# ifndef YYFREE -# define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -void free (void *); /* INFRINGES ON USER NAME SPACE */ -# endif -# endif -# endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - - -#if (! defined yyoverflow \ - && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - -/* A type that is properly aligned for any stack member. */ -union yyalloc -{ - yytype_int16 yyss; - YYSTYPE yyvs; - }; - -/* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) - -/* The size of an array large to enough to hold all stacks, each with - N elements. */ -# define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif - -/* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) - -#endif - -/* YYFINAL -- State number of the termination state. */ -#define YYFINAL 3 -/* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 75 - -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 17 -/* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 17 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 43 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 56 - -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 -#define YYMAXUTOK 265 - -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint8 yytranslate[] = -{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 11, 12, 2, 2, 2, 2, 2, 15, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 16, 14, 13, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10 -}; - -#if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint8 yyprhs[] = -{ - 0, 0, 3, 4, 7, 9, 12, 14, 15, 21, - 22, 27, 29, 30, 36, 37, 44, 45, 50, 52, - 54, 56, 58, 62, 68, 69, 71, 73, 75, 77, - 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, - 99, 101, 103, 105 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int8 yyrhs[] = -{ - 18, 0, -1, -1, 19, 20, -1, 21, -1, 21, - 1, -1, 23, -1, -1, 21, 28, 29, 22, 23, - -1, -1, 11, 24, 21, 12, -1, 33, -1, -1, - 32, 31, 29, 25, 23, -1, -1, 13, 33, 14, - 33, 26, 21, -1, -1, 13, 33, 27, 21, -1, - 4, -1, 5, -1, 6, -1, 7, -1, 29, 15, - 33, -1, 29, 15, 33, 30, 33, -1, -1, 14, - -1, 13, -1, 16, -1, 8, -1, 9, -1, 10, - -1, 14, -1, 13, -1, 16, -1, 8, -1, 9, - -1, 10, -1, 3, -1, 33, -1, 3, -1, 4, - -1, 5, -1, 6, -1, 7, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint8 yyrline[] = -{ - 0, 66, 66, 66, 76, 77, 84, 86, 86, 101, - 101, 108, 114, 114, 121, 121, 127, 127, 138, 138, - 138, 138, 140, 149, 158, 164, 165, 166, 167, 168, - 169, 173, 174, 175, 176, 177, 178, 179, 183, 186, - 187, 188, 189, 190 -}; -#endif - -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE -/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ -static const char *const yytname[] = -{ - "$end", "error", "$undefined", "TERM", "AND", "OR", "NOT", "PROX", "GE", - "LE", "NE", "'('", "')'", "'>'", "'='", "'/'", "'<'", "$accept", "top", - "@1", "cqlQuery1", "cqlQuery", "@2", "searchClause", "@3", "@4", "@5", - "@6", "boolean", "modifiers", "mrelation", "relation", "index", - "searchTerm", 0 -}; -#endif - -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = -{ - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 40, 41, 62, 61, 47, 60 -}; -# endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 17, 19, 18, 20, 20, 21, 22, 21, 24, - 23, 23, 25, 23, 26, 23, 27, 23, 28, 28, - 28, 28, 29, 29, 29, 30, 30, 30, 30, 30, - 30, 31, 31, 31, 31, 31, 31, 31, 32, 33, - 33, 33, 33, 33 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 0, 2, 1, 2, 1, 0, 5, 0, - 4, 1, 0, 5, 0, 6, 0, 4, 1, 1, - 1, 1, 3, 5, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1 -}; - -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint8 yydefact[] = -{ - 2, 0, 0, 1, 39, 40, 41, 42, 43, 9, - 0, 3, 0, 6, 0, 11, 0, 16, 5, 18, - 19, 20, 21, 24, 37, 34, 35, 36, 32, 31, - 33, 24, 0, 0, 0, 7, 12, 10, 14, 17, - 0, 0, 0, 0, 22, 8, 13, 15, 28, 29, - 30, 26, 25, 27, 0, 23 -}; - -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int8 yydefgoto[] = -{ - -1, 1, 2, 11, 12, 41, 13, 16, 42, 43, - 34, 23, 35, 54, 31, 14, 15 -}; - -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -39 -static const yytype_int8 yypact[] = -{ - -39, 5, 28, -39, -39, -39, -39, -39, -39, -39, - 64, -39, 59, -39, -1, 8, 28, -8, -39, -39, - -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, - -39, -39, 50, 64, 28, -5, -5, -39, -39, 68, - 64, 28, 28, 28, 37, -39, -39, 68, -39, -39, - -39, -39, -39, -39, 64, -39 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int8 yypgoto[] = -{ - -39, -39, -39, -39, -15, -39, -38, -39, -39, -39, - -39, -39, -17, -39, -39, -39, -10 -}; - -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -39 -static const yytype_int8 yytable[] = -{ - 17, 32, 24, 45, 46, 3, 33, 25, 26, 27, - 40, -38, 28, 29, 36, 30, -38, -38, -38, 39, - 0, -38, -38, 38, -38, 0, 0, 0, 47, 0, - 44, 4, 5, 6, 7, 8, 0, 0, 0, 9, - 0, 10, 0, 0, 55, 48, 49, 50, 0, 0, - 51, 52, 0, 53, 19, 20, 21, 22, 0, -4, - 18, 0, 37, 19, 20, 21, 22, 4, 5, 6, - 7, 8, 19, 20, 21, 22 -}; - -static const yytype_int8 yycheck[] = -{ - 10, 16, 3, 41, 42, 0, 14, 8, 9, 10, - 15, 3, 13, 14, 31, 16, 8, 9, 10, 34, - -1, 13, 14, 33, 16, -1, -1, -1, 43, -1, - 40, 3, 4, 5, 6, 7, -1, -1, -1, 11, - -1, 13, -1, -1, 54, 8, 9, 10, -1, -1, - 13, 14, -1, 16, 4, 5, 6, 7, -1, 0, - 1, -1, 12, 4, 5, 6, 7, 3, 4, 5, - 6, 7, 4, 5, 6, 7 -}; - -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint8 yystos[] = -{ - 0, 18, 19, 0, 3, 4, 5, 6, 7, 11, - 13, 20, 21, 23, 32, 33, 24, 33, 1, 4, - 5, 6, 7, 28, 3, 8, 9, 10, 13, 14, - 16, 31, 21, 14, 27, 29, 29, 12, 33, 21, - 15, 22, 25, 26, 33, 23, 23, 21, 8, 9, - 10, 13, 14, 16, 30, 33 -}; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - - -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ - -#define YYFAIL goto yyerrlab - -#define YYRECOVERING() (!!yyerrstatus) - -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) - - -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) -#else -# define YYLEX yylex (&yylval) -#endif - -/* Enable debugging if requested. */ -#if YYDEBUG - -# ifndef YYFPRINTF -# include /* INFRINGES ON USER NAME SPACE */ -# define YYFPRINTF fprintf -# endif - -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) - -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (!yyvaluep) - return; -# ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); -# endif - switch (yytype) - { - default: - break; - } -} - - -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif -{ - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -} - -/*------------------------------------------------------------------. -| yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (included). | -`------------------------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) -#else -static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; -#endif -{ - YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); - YYFPRINTF (stderr, "\n"); -} - -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) - - -/*------------------------------------------------. -| Report that the YYRULE is going to be reduced. | -`------------------------------------------------*/ - -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif -{ - int yynrhs = yyr2[yyrule]; - int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - fprintf (stderr, "\n"); - } -} - -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) - -/* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -int yydebug; -#else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) -# define YY_STACK_PRINT(Bottom, Top) -# define YY_REDUCE_PRINT(Rule) -#endif /* !YYDEBUG */ - - -/* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH -# define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only - if the built-in stack extension method is used). - - Do not make this value too large; the results are undefined if - YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) - evaluated with infinite-precision integer arithmetic. */ - -#ifndef YYMAXDEPTH -# define YYMAXDEPTH 10000 -#endif - - - -#if YYERROR_VERBOSE - -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif - -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif -{ - char *yyd = yydest; - const char *yys = yysrc; - - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; - - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; - } -} -#endif /* YYERROR_VERBOSE */ - - -/*-----------------------------------------------. -| Release the memory associated to this symbol. | -`-----------------------------------------------*/ - -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif -{ - YYUSE (yyvaluep); - - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - - switch (yytype) - { - - default: - break; - } -} - - -/* Prevent warnings from -Wmissing-prototypes. */ - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - - - - - - -/*----------. -| yyparse. | -`----------*/ - -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void) -#else -int -yyparse () - -#endif -#endif -{ - /* The look-ahead symbol. */ -int yychar; - -/* The semantic value of the look-ahead symbol. */ -YYSTYPE yylval; - -/* Number of syntax errors so far. */ -int yynerrs; - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; - - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - - - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss; - yyvsp = yyvs; - - goto yysetstate; - -/*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | -`------------------------------------------------------------*/ - yynewstate: - /* In all cases, when you get here, the value and location stacks - have just been pushed. So pushing a state here evens the stacks. */ - yyssp++; - - yysetstate: - *yyssp = yystate; - - if (yyss + yystacksize - 1 <= yyssp) - { - /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; - -#ifdef yyoverflow - { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; - } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; - - { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - -# undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); - } -# endif -#endif /* no yyoverflow */ - - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) - YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - - goto yybackup; - -/*-----------. -| yybackup. | -`-----------*/ -yybackup: - - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ - - /* First try to decide what to do without reference to look-ahead token. */ - yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) - goto yydefault; - - /* Not known => get a look-ahead token if don't already have one. */ - - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; - } - - if (yychar <= YYEOF) - { - yychar = yytoken = YYEOF; - YYDPRINTF ((stderr, "Now at end of input.\n")); - } - else - { - yytoken = YYTRANSLATE (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); - } - - /* If the proper action on seeing token YYTOKEN is to reduce or to - detect an error, take that action. */ - yyn += yytoken; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) - goto yydefault; - yyn = yytable[yyn]; - if (yyn <= 0) - { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - - if (yyn == YYFINAL) - YYACCEPT; - - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - - /* Shift the look-ahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - yystate = yyn; - *++yyvsp = yylval; - - goto yynewstate; - - -/*-----------------------------------------------------------. -| yydefault -- do the default action for the current state. | -`-----------------------------------------------------------*/ -yydefault: - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - goto yyreduce; - - -/*-----------------------------. -| yyreduce -- Do a reduction. | -`-----------------------------*/ -yyreduce: - /* yyn is the number of a rule to reduce with. */ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison - users should not rely upon it. Assigning to YYVAL - unconditionally makes the parser a bit smaller, and it avoids a - GCC warning that YYVAL may be used uninitialized. */ - yyval = yyvsp[1-yylen]; - - - YY_REDUCE_PRINT (yyn); - switch (yyn) - { - case 2: -#line 66 "cql.y" - { - (yyval).rel = cql_node_mk_sc(((CQL_parser) parm)->nmem, - "cql.serverChoice", "scr", 0); - ((CQL_parser) parm)->top = 0; -} - break; - - case 3: -#line 70 "cql.y" - { - cql_node_destroy((yyval).rel); - ((CQL_parser) parm)->top = (yyvsp[(2) - (2)]).cql; -} - break; - - case 5: -#line 77 "cql.y" - { - cql_node_destroy((yyvsp[(1) - (2)]).cql); - (yyval).cql = 0; -} - break; - - case 7: -#line 86 "cql.y" - { - (yyval).rel = (yyvsp[(0) - (3)]).rel; - } - break; - - case 8: -#line 88 "cql.y" - { - struct cql_node *cn = cql_node_mk_boolean(((CQL_parser) parm)->nmem, - (yyvsp[(2) - (5)]).buf); - - cn->u.boolean.modifiers = (yyvsp[(3) - (5)]).cql; - cn->u.boolean.left = (yyvsp[(1) - (5)]).cql; - cn->u.boolean.right = (yyvsp[(5) - (5)]).cql; - - (yyval).cql = cn; - } - break; - - case 9: -#line 101 "cql.y" - { - (yyval).rel = (yyvsp[(0) - (1)]).rel; - - } - break; - - case 10: -#line 104 "cql.y" - { - (yyval).cql = (yyvsp[(3) - (4)]).cql; - } - break; - - case 11: -#line 108 "cql.y" - { - struct cql_node *st = cql_node_dup (((CQL_parser) parm)->nmem, (yyvsp[(0) - (1)]).rel); - st->u.st.term = nmem_strdup(((CQL_parser)parm)->nmem, (yyvsp[(1) - (1)]).buf); - (yyval).cql = st; - } - break; - - case 12: -#line 114 "cql.y" - { - (yyval).rel = cql_node_mk_sc(((CQL_parser) parm)->nmem, (yyvsp[(1) - (3)]).buf, (yyvsp[(2) - (3)]).buf, 0); - (yyval).rel->u.st.modifiers = (yyvsp[(3) - (3)]).cql; - } - break; - - case 13: -#line 117 "cql.y" - { - (yyval).cql = (yyvsp[(5) - (5)]).cql; - cql_node_destroy((yyvsp[(4) - (5)]).rel); - } - break; - - case 14: -#line 121 "cql.y" - { - (yyval).rel = (yyvsp[(0) - (4)]).rel; - } - break; - - case 15: -#line 123 "cql.y" - { - (yyval).cql = cql_apply_prefix(((CQL_parser) parm)->nmem, - (yyvsp[(6) - (6)]).cql, (yyvsp[(2) - (6)]).buf, (yyvsp[(4) - (6)]).buf); - } - break; - - case 16: -#line 127 "cql.y" - { - (yyval).rel = (yyvsp[(0) - (2)]).rel; - } - break; - - case 17: -#line 129 "cql.y" - { - (yyval).cql = cql_apply_prefix(((CQL_parser) parm)->nmem, - (yyvsp[(4) - (4)]).cql, 0, (yyvsp[(2) - (4)]).buf); - } - break; - - case 22: -#line 141 "cql.y" - { - struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem, - (yyvsp[(3) - (3)]).buf, 0, 0); - - mod->u.st.modifiers = (yyvsp[(1) - (3)]).cql; - (yyval).cql = mod; -} - break; - - case 23: -#line 150 "cql.y" - { - struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem, - (yyvsp[(3) - (5)]).buf, (yyvsp[(4) - (5)]).buf, (yyvsp[(5) - (5)]).buf); - - mod->u.st.modifiers = (yyvsp[(1) - (5)]).cql; - (yyval).cql = mod; -} - break; - - case 24: -#line 158 "cql.y" - { - (yyval).cql = 0; -} - break; - - -/* Line 1267 of yacc.c. */ -#line 1569 "cql.c" - default: break; - } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - - *++yyvsp = yyval; - - - /* Now `shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; - - goto yynewstate; - - -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ -yyerrlab: - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { - ++yynerrs; -#if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } -#endif - } - - - - if (yyerrstatus == 3) - { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ - - if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } - else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } - } - - /* Else will try to reuse look-ahead token after shifting the error - token. */ - goto yyerrlab1; - - -/*---------------------------------------------------. -| yyerrorlab -- error raised explicitly by YYERROR. | -`---------------------------------------------------*/ -yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; - YY_STACK_PRINT (yyss, yyssp); - yystate = *yyssp; - goto yyerrlab1; - - -/*-------------------------------------------------------------. -| yyerrlab1 -- common code for both syntax error and YYERROR. | -`-------------------------------------------------------------*/ -yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) - YYABORT; - - - yydestruct ("Error: popping", - yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - - if (yyn == YYFINAL) - YYACCEPT; - - *++yyvsp = yylval; - - - /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); - - yystate = yyn; - goto yynewstate; - - -/*-------------------------------------. -| yyacceptlab -- YYACCEPT comes here. | -`-------------------------------------*/ -yyacceptlab: - yyresult = 0; - goto yyreturn; - -/*-----------------------------------. -| yyabortlab -- YYABORT comes here. | -`-----------------------------------*/ -yyabortlab: - yyresult = 1; - goto yyreturn; - -#ifndef yyoverflow -/*-------------------------------------------------. -| yyexhaustedlab -- memory exhaustion comes here. | -`-------------------------------------------------*/ -yyexhaustedlab: - yyerror (YY_("memory exhausted")); - yyresult = 2; - /* Fall through. */ -#endif - -yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); - YYPOPSTACK (1); - } -#ifndef yyoverflow - if (yyss != yyssa) - YYSTACK_FREE (yyss); -#endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); -} - - -#line 193 "cql.y" - - -int yyerror(char *s) -{ - return 0; -} - -/** - * putb is a utility that puts one character to the string - * in current lexical token. This routine deallocates as - * necessary using NMEM. - */ - -static void putb(YYSTYPE *lval, CQL_parser cp, int c) -{ - if (lval->len+1 >= lval->size) - { - char *nb = (char *) - nmem_malloc(cp->nmem, (lval->size = lval->len * 2 + 20)); - memcpy (nb, lval->buf, lval->len); - lval->buf = nb; - } - if (c) - lval->buf[lval->len++] = c; - lval->buf[lval->len] = '\0'; -} - - -/** - * yylex returns next token for Bison to be read. In this - * case one of the CQL terminals are returned. - */ -int yylex(YYSTYPE *lval, void *vp) -{ - CQL_parser cp = (CQL_parser) vp; - int c; - lval->cql = 0; - lval->rel = 0; - lval->len = 0; - lval->size = 10; - lval->buf = (char *) nmem_malloc(cp->nmem, lval->size); - lval->buf[0] = '\0'; - do - { - c = cp->getbyte(cp->client_data); - if (c == 0) - return 0; - if (c == '\n') - return 0; - } while (isspace(c)); - if (strchr("()=>') - { - c1 = cp->getbyte(cp->client_data); - if (c1 == '=') - { - putb(lval, cp, c1); - return GE; - } - else - cp->ungetbyte(c1, cp->client_data); - } - else if (c == '<') - { - c1 = cp->getbyte(cp->client_data); - if (c1 == '=') - { - putb(lval, cp, c1); - return LE; - } - else if (c1 == '>') - { - putb(lval, cp, c1); - return NE; - } - else - cp->ungetbyte(c1, cp->client_data); - } - return c; - } - if (c == '"') - { - while ((c = cp->getbyte(cp->client_data)) != 0 && c != '"') - { - if (c == '\\') - c = cp->getbyte(cp->client_data); - putb(lval, cp, c); - } - putb(lval, cp, 0); - } - else - { - while (c != 0 && !strchr(" \n()=<>/", c)) - { - if (c == '\\') - c = cp->getbyte(cp->client_data); - putb(lval, cp, c); - c = cp->getbyte(cp->client_data); - } -#if YYDEBUG - printf ("got %s\n", lval->buf); -#endif - if (c != 0) - cp->ungetbyte(c, cp->client_data); - if (!cql_strcmp(lval->buf, "and")) - { - lval->buf = "and"; - return AND; - } - if (!cql_strcmp(lval->buf, "or")) - { - lval->buf = "or"; - return OR; - } - if (!cql_strcmp(lval->buf, "not")) - { - lval->buf = "not"; - return NOT; - } - if (!cql_strcmp(lval->buf, "prox")) - { - lval->buf = "prox"; - return PROX; - } - } - return TERM; -} - - -int cql_parser_stream(CQL_parser cp, - int (*getbyte)(void *client_data), - void (*ungetbyte)(int b, void *client_data), - void *client_data) -{ - nmem_reset(cp->nmem); - cp->getbyte = getbyte; - cp->ungetbyte = ungetbyte; - cp->client_data = client_data; - if (cp->top) - cql_node_destroy(cp->top); - cql_parse(cp); - if (cp->top) - return 0; - return -1; -} - -CQL_parser cql_parser_create(void) -{ - CQL_parser cp = (CQL_parser) xmalloc (sizeof(*cp)); - - cp->top = 0; - cp->getbyte = 0; - cp->ungetbyte = 0; - cp->client_data = 0; - cp->last_error = 0; - cp->last_pos = 0; - cp->nmem = nmem_create(); - return cp; -} - -void cql_parser_destroy(CQL_parser cp) -{ - cql_node_destroy(cp->top); - nmem_destroy(cp->nmem); - xfree (cp); -} - -struct cql_node *cql_parser_result(CQL_parser cp) -{ - return cp->top; -} - diff --git a/dependencies/yaz_3.0.14/src/cql.y b/dependencies/yaz_3.0.14/src/cql.y deleted file mode 100644 index c23559a..0000000 --- a/dependencies/yaz_3.0.14/src/cql.y +++ /dev/null @@ -1,366 +0,0 @@ -/* $Id: cql.y,v 1.14 2007/06/28 07:58:07 adam Exp $ - Copyright (C) 2002-2006 - Index Data ApS - -This file is part of the YAZ toolkit. - -See the file LICENSE. - - bison parser for CQL grammar. -*/ -%{ -/** - * \file cql.c - * \brief Implements CQL parser. - * - * This is a YACC parser, but since it must be reentrant, Bison is required. - * The original source file is cql.y. - */ -#include -#include -#include -#include -#include -#include -#include - - /** Node in the LALR parse tree. */ - typedef struct { - /** Inhereted attribute: relation */ - struct cql_node *rel; - /** Synthesized attribute: CQL node */ - struct cql_node *cql; - /** string buffer with token */ - char *buf; - /** length of token */ - size_t len; - /** size of buffer (len <= size) */ - size_t size; - } token; - - struct cql_parser { - int (*getbyte)(void *client_data); - void (*ungetbyte)(int b, void *client_data); - void *client_data; - int last_error; - int last_pos; - struct cql_node *top; - NMEM nmem; - }; - -#define YYSTYPE token - -#define YYPARSE_PARAM parm -#define YYLEX_PARAM parm - - int yylex(YYSTYPE *lval, void *vp); - int yyerror(char *s); -%} - -%pure_parser -%token TERM AND OR NOT PROX GE LE NE -%expect 9 - -%% - -top: { - $$.rel = cql_node_mk_sc(((CQL_parser) parm)->nmem, - "cql.serverChoice", "scr", 0); - ((CQL_parser) parm)->top = 0; -} cqlQuery1 { - cql_node_destroy($$.rel); - ((CQL_parser) parm)->top = $2.cql; -} -; - -cqlQuery1: cqlQuery -| cqlQuery error { - cql_node_destroy($1.cql); - $$.cql = 0; -} -; - -cqlQuery: - searchClause -| - cqlQuery boolean modifiers { - $$.rel = $0.rel; - } searchClause { - struct cql_node *cn = cql_node_mk_boolean(((CQL_parser) parm)->nmem, - $2.buf); - - cn->u.boolean.modifiers = $3.cql; - cn->u.boolean.left = $1.cql; - cn->u.boolean.right = $5.cql; - - $$.cql = cn; - } -; - -searchClause: - '(' { - $$.rel = $0.rel; - - } cqlQuery ')' { - $$.cql = $3.cql; - } -| - searchTerm { - struct cql_node *st = cql_node_dup (((CQL_parser) parm)->nmem, $0.rel); - st->u.st.term = nmem_strdup(((CQL_parser)parm)->nmem, $1.buf); - $$.cql = st; - } -| - index relation modifiers { - $$.rel = cql_node_mk_sc(((CQL_parser) parm)->nmem, $1.buf, $2.buf, 0); - $$.rel->u.st.modifiers = $3.cql; - } searchClause { - $$.cql = $5.cql; - cql_node_destroy($4.rel); - } -| '>' searchTerm '=' searchTerm { - $$.rel = $0.rel; - } cqlQuery { - $$.cql = cql_apply_prefix(((CQL_parser) parm)->nmem, - $6.cql, $2.buf, $4.buf); - } -| '>' searchTerm { - $$.rel = $0.rel; - } cqlQuery { - $$.cql = cql_apply_prefix(((CQL_parser) parm)->nmem, - $4.cql, 0, $2.buf); - } -; - -/* unary NOT search TERM here .. */ - -boolean: - AND | OR | NOT | PROX ; - -modifiers: modifiers '/' searchTerm -{ - struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem, - $3.buf, 0, 0); - - mod->u.st.modifiers = $1.cql; - $$.cql = mod; -} -| -modifiers '/' searchTerm mrelation searchTerm -{ - struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem, - $3.buf, $4.buf, $5.buf); - - mod->u.st.modifiers = $1.cql; - $$.cql = mod; -} -| -{ - $$.cql = 0; -} -; - -mrelation: - '=' -| '>' -| '<' -| GE -| LE -| NE -; - -relation: - '=' -| '>' -| '<' -| GE -| LE -| NE -| TERM -; - -index: - searchTerm; - -searchTerm: - TERM -| AND -| OR -| NOT -| PROX -; - -%% - -int yyerror(char *s) -{ - return 0; -} - -/** - * putb is a utility that puts one character to the string - * in current lexical token. This routine deallocates as - * necessary using NMEM. - */ - -static void putb(YYSTYPE *lval, CQL_parser cp, int c) -{ - if (lval->len+1 >= lval->size) - { - char *nb = (char *) - nmem_malloc(cp->nmem, (lval->size = lval->len * 2 + 20)); - memcpy (nb, lval->buf, lval->len); - lval->buf = nb; - } - if (c) - lval->buf[lval->len++] = c; - lval->buf[lval->len] = '\0'; -} - - -/** - * yylex returns next token for Bison to be read. In this - * case one of the CQL terminals are returned. - */ -int yylex(YYSTYPE *lval, void *vp) -{ - CQL_parser cp = (CQL_parser) vp; - int c; - lval->cql = 0; - lval->rel = 0; - lval->len = 0; - lval->size = 10; - lval->buf = (char *) nmem_malloc(cp->nmem, lval->size); - lval->buf[0] = '\0'; - do - { - c = cp->getbyte(cp->client_data); - if (c == 0) - return 0; - if (c == '\n') - return 0; - } while (isspace(c)); - if (strchr("()=>') - { - c1 = cp->getbyte(cp->client_data); - if (c1 == '=') - { - putb(lval, cp, c1); - return GE; - } - else - cp->ungetbyte(c1, cp->client_data); - } - else if (c == '<') - { - c1 = cp->getbyte(cp->client_data); - if (c1 == '=') - { - putb(lval, cp, c1); - return LE; - } - else if (c1 == '>') - { - putb(lval, cp, c1); - return NE; - } - else - cp->ungetbyte(c1, cp->client_data); - } - return c; - } - if (c == '"') - { - while ((c = cp->getbyte(cp->client_data)) != 0 && c != '"') - { - if (c == '\\') - c = cp->getbyte(cp->client_data); - putb(lval, cp, c); - } - putb(lval, cp, 0); - } - else - { - while (c != 0 && !strchr(" \n()=<>/", c)) - { - if (c == '\\') - c = cp->getbyte(cp->client_data); - putb(lval, cp, c); - c = cp->getbyte(cp->client_data); - } -#if YYDEBUG - printf ("got %s\n", lval->buf); -#endif - if (c != 0) - cp->ungetbyte(c, cp->client_data); - if (!cql_strcmp(lval->buf, "and")) - { - lval->buf = "and"; - return AND; - } - if (!cql_strcmp(lval->buf, "or")) - { - lval->buf = "or"; - return OR; - } - if (!cql_strcmp(lval->buf, "not")) - { - lval->buf = "not"; - return NOT; - } - if (!cql_strcmp(lval->buf, "prox")) - { - lval->buf = "prox"; - return PROX; - } - } - return TERM; -} - - -int cql_parser_stream(CQL_parser cp, - int (*getbyte)(void *client_data), - void (*ungetbyte)(int b, void *client_data), - void *client_data) -{ - nmem_reset(cp->nmem); - cp->getbyte = getbyte; - cp->ungetbyte = ungetbyte; - cp->client_data = client_data; - if (cp->top) - cql_node_destroy(cp->top); - cql_parse(cp); - if (cp->top) - return 0; - return -1; -} - -CQL_parser cql_parser_create(void) -{ - CQL_parser cp = (CQL_parser) xmalloc (sizeof(*cp)); - - cp->top = 0; - cp->getbyte = 0; - cp->ungetbyte = 0; - cp->client_data = 0; - cp->last_error = 0; - cp->last_pos = 0; - cp->nmem = nmem_create(); - return cp; -} - -void cql_parser_destroy(CQL_parser cp) -{ - cql_node_destroy(cp->top); - nmem_destroy(cp->nmem); - xfree (cp); -} - -struct cql_node *cql_parser_result(CQL_parser cp) -{ - return cp->top; -} diff --git a/dependencies/yaz_3.0.14/src/cqlstdio.c b/dependencies/yaz_3.0.14/src/cqlstdio.c deleted file mode 100644 index 5272d6b..0000000 --- a/dependencies/yaz_3.0.14/src/cqlstdio.c +++ /dev/null @@ -1,49 +0,0 @@ -/* $Id: cqlstdio.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - Copyright (C) 1995-2007, Index Data ApS - Index Data Aps - -This file is part of the YAZ toolkit. - -See the file LICENSE for details. -*/ - -/** - * \file cqlstdio.c - * \brief Implements query stream reading using FILE handle. - */ - -#include - -int getbyte_stream(void *client_data) -{ - FILE *f = (FILE*) client_data; - - int c = fgetc(f); - if (c == EOF) - return 0; - return c; -} - -void ungetbyte_stream (int c, void *client_data) -{ - FILE *f = (FILE*) client_data; - - if (c == 0) - c = EOF; - ungetc(c, f); -} - -int cql_parser_stdio(CQL_parser cp, FILE *f) -{ - return cql_parser_stream(cp, getbyte_stream, ungetbyte_stream, f); -} - - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cqlstrer.c b/dependencies/yaz_3.0.14/src/cqlstrer.c deleted file mode 100644 index 76e6eae..0000000 --- a/dependencies/yaz_3.0.14/src/cqlstrer.c +++ /dev/null @@ -1,74 +0,0 @@ -/* $Id: cqlstrer.c,v 1.7 2007/01/03 08:42:15 adam Exp $ - Copyright (C) 1995-2007, Index Data ApS - Index Data Aps - -This file is part of the YAZ toolkit. - -See the file LICENSE details. -*/ - -/** - * \file cqlstrer.c - * \brief Implements CQL error code map to description string. - */ - -#include - -/* - * The error-messages associated with these codes are taken from - * the SRW diagnostic specifications at - * http://www.loc.gov/standards/sru/diagnostics-list.html - */ -const char *cql_strerror(int code) { - static char buf[80]; - switch (code) { - case 10: return "Illegal query"; - case 11: return "Unsupported query type (XCQL vs CQL)"; - case 12: return "Too many characters in query"; - case 13: return "Unbalanced or illegal use of parentheses"; - case 14: return "Unbalanced or illegal use of quotes"; - case 15: return "Illegal or unsupported context set"; - case 16: return "Illegal or unsupported index"; - case 17: return "Illegal or unsupported combination of index and context set"; - case 18: return "Illegal or unsupported combination of indexes"; - case 19: return "Illegal or unsupported relation"; - case 20: return "Illegal or unsupported relation modifier"; - case 21: return "Illegal or unsupported combination of relation modifers"; - case 22: return "Illegal or unsupported combination of relation and index"; - case 23: return "Too many characters in term"; - case 24: return "Illegal combination of relation and term"; - case 25: return "Special characters not quoted in term"; - case 26: return "Non special character escaped in term"; - case 27: return "Empty term unsupported"; - case 28: return "Masking character not supported"; - case 29: return "Masked words too short"; - case 30: return "Too many masking characters in term"; - case 31: return "Anchoring character not supported"; - case 32: return "Anchoring character in illegal or unsupported position"; - case 33: return "Combination of proximity/adjacency and masking characters not supported"; - case 34: return "Combination of proximity/adjacency and anchoring characters not supported"; - case 35: return "Terms only exclusion (stop) words"; - case 36: return "Term in invalid format for index or relation"; - case 37: return "Illegal or unsupported boolean operator"; - case 38: return "Too many boolean operators in query"; - case 39: return "Proximity not supported"; - case 40: return "Illegal or unsupported proximity relation"; - case 41: return "Illegal or unsupported proximity distance"; - case 42: return "Illegal or unsupported proximity unit"; - case 43: return "Illegal or unsupported proximity ordering"; - case 44: return "Illegal or unsupported combination of proximity modifiers"; - case 45: return "Context set name (prefix) assigned to multiple identifiers"; - default: break; - } - - sprintf(buf, "Unknown CQL error #%d", code); - return buf; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cqlstring.c b/dependencies/yaz_3.0.14/src/cqlstring.c deleted file mode 100644 index 7a4076c..0000000 --- a/dependencies/yaz_3.0.14/src/cqlstring.c +++ /dev/null @@ -1,54 +0,0 @@ -/* $Id: cqlstring.c,v 1.6 2007/01/03 08:42:15 adam Exp $ - Copyright (C) 1995-2007, Index Data ApS - Index Data Aps - -This file is part of the YAZ toolkit. - -See the file LICENSE for details. -*/ - -/** - * \file cqlstring.c - * \brief Implements query stream reader that reads from a C string. - */ - -#include - -struct cql_buf_info { - const char *str; - int off; -}; - -static int getbuf(void *vp) -{ - struct cql_buf_info *bi = (struct cql_buf_info *) vp; - if (bi->str[bi->off] == 0) - return 0; - return bi->str[bi->off++]; -} - -static void ungetbuf(int b, void *vp) -{ - struct cql_buf_info *bi = (struct cql_buf_info *) vp; - if (b) - (bi->off--); -} - -int cql_parser_string(CQL_parser cp, const char *str) -{ - struct cql_buf_info b; - - b.str = str; - b.off = 0; - - return cql_parser_stream(cp, getbuf, ungetbuf, &b); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cqltransform.c b/dependencies/yaz_3.0.14/src/cqltransform.c deleted file mode 100644 index 3bf97cb..0000000 --- a/dependencies/yaz_3.0.14/src/cqltransform.c +++ /dev/null @@ -1,692 +0,0 @@ -/* $Id: cqltransform.c,v 1.28 2007/03/29 11:14:11 mike Exp $ - Copyright (C) 1995-2007, Index Data ApS - Index Data Aps - -This file is part of the YAZ toolkit. - -See the file LICENSE. -*/ - -/** - * \file cqltransform.c - * \brief Implements CQL transform (CQL to RPN conversion). - * - * Evaluation order of rules: - * - * always - * relation - * structure - * position - * truncation - * index - * relationModifier - */ - -#include -#include -#include -#include -#include -#include - -struct cql_prop_entry { - char *pattern; - char *value; - struct cql_prop_entry *next; -}; - -struct cql_transform_t_ { - struct cql_prop_entry *entry; - int error; - char *addinfo; -}; - -cql_transform_t cql_transform_open_FILE(FILE *f) -{ - char line[1024]; - cql_transform_t ct = (cql_transform_t) xmalloc (sizeof(*ct)); - struct cql_prop_entry **pp = &ct->entry; - - ct->error = 0; - ct->addinfo = 0; - while (fgets(line, sizeof(line)-1, f)) - { - const char *cp_value_start; - const char *cp_value_end; - const char *cp_pattern_start; - const char *cp_pattern_end; - const char *cp = line; - - while (*cp && strchr(" \t", *cp)) - cp++; - cp_pattern_start = cp; - - while (*cp && !strchr(" \t\r\n=#", *cp)) - cp++; - cp_pattern_end = cp; - if (cp == cp_pattern_start) - continue; - while (*cp && strchr(" \t", *cp)) - cp++; - if (*cp != '=') - { - *pp = 0; - cql_transform_close(ct); - return 0; - } - cp++; - while (*cp && strchr(" \t\r\n", *cp)) - cp++; - cp_value_start = cp; - cp_value_end = strchr(cp, '#'); - if (!cp_value_end) - cp_value_end = strlen(line) + line; - - if (cp_value_end != cp_value_start && - strchr(" \t\r\n", cp_value_end[-1])) - cp_value_end--; - *pp = (struct cql_prop_entry *) xmalloc (sizeof(**pp)); - (*pp)->pattern = (char *) xmalloc(cp_pattern_end-cp_pattern_start + 1); - memcpy ((*pp)->pattern, cp_pattern_start, - cp_pattern_end-cp_pattern_start); - (*pp)->pattern[cp_pattern_end-cp_pattern_start] = '\0'; - - (*pp)->value = (char *) xmalloc (cp_value_end-cp_value_start + 1); - if (cp_value_start != cp_value_end) - memcpy ((*pp)->value, cp_value_start, cp_value_end-cp_value_start); - (*pp)->value[cp_value_end - cp_value_start] = '\0'; - pp = &(*pp)->next; - } - *pp = 0; - return ct; -} - -void cql_transform_close(cql_transform_t ct) -{ - struct cql_prop_entry *pe; - if (!ct) - return; - pe = ct->entry; - while (pe) - { - struct cql_prop_entry *pe_next = pe->next; - xfree (pe->pattern); - xfree (pe->value); - xfree (pe); - pe = pe_next; - } - if (ct->addinfo) - xfree (ct->addinfo); - xfree (ct); -} - -cql_transform_t cql_transform_open_fname(const char *fname) -{ - cql_transform_t ct; - FILE *f = fopen(fname, "r"); - if (!f) - return 0; - ct = cql_transform_open_FILE(f); - fclose(f); - return ct; -} - -static const char *cql_lookup_property(cql_transform_t ct, - const char *pat1, const char *pat2, - const char *pat3) -{ - char pattern[120]; - struct cql_prop_entry *e; - - if (pat1 && pat2 && pat3) - sprintf (pattern, "%.39s.%.39s.%.39s", pat1, pat2, pat3); - else if (pat1 && pat2) - sprintf (pattern, "%.39s.%.39s", pat1, pat2); - else if (pat1 && pat3) - sprintf (pattern, "%.39s.%.39s", pat1, pat3); - else if (pat1) - sprintf (pattern, "%.39s", pat1); - else - return 0; - - for (e = ct->entry; e; e = e->next) - { - if (!cql_strcmp(e->pattern, pattern)) - return e->value; - } - return 0; -} - -int cql_pr_attr_uri(cql_transform_t ct, const char *category, - const char *uri, const char *val, const char *default_val, - void (*pr)(const char *buf, void *client_data), - void *client_data, - int errcode) -{ - const char *res = 0; - const char *eval = val ? val : default_val; - const char *prefix = 0; - - if (uri) - { - struct cql_prop_entry *e; - - for (e = ct->entry; e; e = e->next) - if (!memcmp(e->pattern, "set.", 4) && e->value && - !strcmp(e->value, uri)) - { - prefix = e->pattern+4; - break; - } - /* must have a prefix now - if not it's an error */ - } - - if (!uri || prefix) - { - if (!res) - res = cql_lookup_property(ct, category, prefix, eval); - if (!res) - res = cql_lookup_property(ct, category, prefix, "*"); - } - if (res) - { - char buf[64]; - - const char *cp0 = res, *cp1; - while ((cp1 = strchr(cp0, '='))) - { - int i; - while (*cp1 && *cp1 != ' ') - cp1++; - if (cp1 - cp0 >= sizeof(buf)) - break; - memcpy (buf, cp0, cp1 - cp0); - buf[cp1-cp0] = 0; - (*pr)("@attr ", client_data); - - for (i = 0; buf[i]; i++) - { - if (buf[i] == '*') - (*pr)(eval, client_data); - else - { - char tmp[2]; - tmp[0] = buf[i]; - tmp[1] = '\0'; - (*pr)(tmp, client_data); - } - } - (*pr)(" ", client_data); - cp0 = cp1; - while (*cp0 == ' ') - cp0++; - } - return 1; - } - /* error ... */ - if (errcode && !ct->error) - { - ct->error = errcode; - if (val) - ct->addinfo = xstrdup(val); - else - ct->addinfo = 0; - } - return 0; -} - -int cql_pr_attr(cql_transform_t ct, const char *category, - const char *val, const char *default_val, - void (*pr)(const char *buf, void *client_data), - void *client_data, - int errcode) -{ - return cql_pr_attr_uri(ct, category, 0 /* uri */, - val, default_val, pr, client_data, errcode); -} - - -static void cql_pr_int (int val, - void (*pr)(const char *buf, void *client_data), - void *client_data) -{ - char buf[21]; /* enough characters to 2^64 */ - sprintf(buf, "%d", val); - (*pr)(buf, client_data); - (*pr)(" ", client_data); -} - - -static int cql_pr_prox(cql_transform_t ct, struct cql_node *mods, - void (*pr)(const char *buf, void *client_data), - void *client_data) -{ - int exclusion = 0; - int distance; /* to be filled in later depending on unit */ - int distance_defined = 0; - int ordered = 0; - int proxrel = 2; /* less than or equal */ - int unit = 2; /* word */ - - while (mods != 0) { - char *name = mods->u.st.index; - char *term = mods->u.st.term; - char *relation = mods->u.st.relation; - - if (!strcmp(name, "distance")) { - distance = strtol(term, (char**) 0, 0); - distance_defined = 1; - if (!strcmp(relation, "=")) { - proxrel = 3; - } else if (!strcmp(relation, ">")) { - proxrel = 5; - } else if (!strcmp(relation, "<")) { - proxrel = 1; - } else if (!strcmp(relation, ">=")) { - proxrel = 4; - } else if (!strcmp(relation, "<=")) { - proxrel = 2; - } else if (!strcmp(relation, "<>")) { - proxrel = 6; - } else { - ct->error = 40; /* Unsupported proximity relation */ - ct->addinfo = xstrdup(relation); - return 0; - } - } else if (!strcmp(name, "ordered")) { - ordered = 1; - } else if (!strcmp(name, "unordered")) { - ordered = 0; - } else if (!strcmp(name, "unit")) { - if (!strcmp(term, "word")) { - unit = 2; - } else if (!strcmp(term, "sentence")) { - unit = 3; - } else if (!strcmp(term, "paragraph")) { - unit = 4; - } else if (!strcmp(term, "element")) { - unit = 8; - } else { - ct->error = 42; /* Unsupported proximity unit */ - ct->addinfo = xstrdup(term); - return 0; - } - } else { - ct->error = 46; /* Unsupported boolean modifier */ - ct->addinfo = xstrdup(name); - return 0; - } - - mods = mods->u.st.modifiers; - } - - if (!distance_defined) - distance = (unit == 2) ? 1 : 0; - - cql_pr_int(exclusion, pr, client_data); - cql_pr_int(distance, pr, client_data); - cql_pr_int(ordered, pr, client_data); - cql_pr_int(proxrel, pr, client_data); - (*pr)("k ", client_data); - cql_pr_int(unit, pr, client_data); - - return 1; -} - -/* Returns location of first wildcard character in the `length' - * characters starting at `term', or a null pointer of there are - * none -- like memchr(). - */ -static const char *wcchar(const char *term, int length) -{ - const char *best = 0; - const char *current; - char *whichp; - - for (whichp = "*?"; *whichp != '\0'; whichp++) { - current = (const char *) memchr(term, *whichp, length); - if (current != 0 && (best == 0 || current < best)) - best = current; - } - - return best; -} - - -/* ### checks for CQL relation-name rather than Type-1 attribute */ -static int has_modifier(struct cql_node *cn, const char *name) { - struct cql_node *mod; - for (mod = cn->u.st.modifiers; mod != 0; mod = mod->u.st.modifiers) { - if (!strcmp(mod->u.st.index, name)) - return 1; - } - - return 0; -} - - -void emit_term(cql_transform_t ct, - struct cql_node *cn, - const char *term, int length, - void (*pr)(const char *buf, void *client_data), - void *client_data) -{ - int i; - const char *ns = cn->u.st.index_uri; - int process_term = !has_modifier(cn, "regexp"); - - assert(cn->which == CQL_NODE_ST); - - if (process_term && length > 0) - { - if (length > 1 && term[0] == '^' && term[length-1] == '^') - { - cql_pr_attr(ct, "position", "firstAndLast", 0, - pr, client_data, 32); - term++; - length -= 2; - } - else if (term[0] == '^') - { - cql_pr_attr(ct, "position", "first", 0, - pr, client_data, 32); - term++; - length--; - } - else if (term[length-1] == '^') - { - cql_pr_attr(ct, "position", "last", 0, - pr, client_data, 32); - length--; - } - else - { - cql_pr_attr(ct, "position", "any", 0, - pr, client_data, 32); - } - } - - if (process_term && length > 0) - { - /* Check for well-known globbing patterns that represent - * simple truncation attributes as expected by, for example, - * Bath-compliant server. If we find such a pattern but - * there's no mapping for it, that's fine: we just use a - * general pattern-matching attribute. - */ - if (length > 1 && term[0] == '*' && term[length-1] == '*' && - wcchar(term+1, length-2) == 0 && - cql_pr_attr(ct, "truncation", "both", 0, - pr, client_data, 0)) { - term++; - length -= 2; - } - else if (term[0] == '*' && - wcchar(term+1, length-1) == 0 && - cql_pr_attr(ct, "truncation", "left", 0, - pr, client_data, 0)) { - term++; - length--; - } - else if (term[length-1] == '*' && - wcchar(term, length-1) == 0 && - cql_pr_attr(ct, "truncation", "right", 0, - pr, client_data, 0)) { - length--; - } - else if (wcchar(term, length)) - { - /* We have one or more wildcard characters, but not in a - * way that can be dealt with using only the standard - * left-, right- and both-truncation attributes. We need - * to translate the pattern into a Z39.58-type pattern, - * which has been supported in BIB-1 since 1996. If - * there's no configuration element for "truncation.z3958" - * we indicate this as error 28 "Masking character not - * supported". - */ - int i; - char *mem; - cql_pr_attr(ct, "truncation", "z3958", 0, - pr, client_data, 28); - mem = (char *) xmalloc(length+1); - for (i = 0; i < length; i++) { - if (term[i] == '*') mem[i] = '?'; - else if (term[i] == '?') mem[i] = '#'; - else mem[i] = term[i]; - } - mem[length] = '\0'; - term = mem; - } - else { - /* No masking characters. Use "truncation.none" if given. */ - cql_pr_attr(ct, "truncation", "none", 0, - pr, client_data, 0); - } - } - if (ns) { - cql_pr_attr_uri(ct, "index", ns, - cn->u.st.index, "serverChoice", - pr, client_data, 16); - } - if (cn->u.st.modifiers) - { - struct cql_node *mod = cn->u.st.modifiers; - for (; mod; mod = mod->u.st.modifiers) - { - cql_pr_attr(ct, "relationModifier", mod->u.st.index, 0, - pr, client_data, 20); - } - } - - (*pr)("\"", client_data); - for (i = 0; iu.st.term; - const char *cp1; - const char *last_term = 0; - int last_length = 0; - while(cp0) - { - while (*cp0 == ' ') - cp0++; - cp1 = strchr(cp0, ' '); - if (last_term) - { - (*pr)("@", client_data); - (*pr)(op, client_data); - (*pr)(" ", client_data); - emit_term(ct, cn, last_term, last_length, pr, client_data); - } - last_term = cp0; - if (cp1) - last_length = cp1 - cp0; - else - last_length = strlen(cp0); - cp0 = cp1; - } - if (last_term) - emit_term(ct, cn, last_term, last_length, pr, client_data); -} - -void cql_transform_r(cql_transform_t ct, - struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data) -{ - const char *ns; - struct cql_node *mods; - - if (!cn) - return; - switch (cn->which) - { - case CQL_NODE_ST: - ns = cn->u.st.index_uri; - if (ns) - { - if (!strcmp(ns, cql_uri()) - && cn->u.st.index && !cql_strcmp(cn->u.st.index, "resultSet")) - { - (*pr)("@set \"", client_data); - (*pr)(cn->u.st.term, client_data); - (*pr)("\" ", client_data); - return ; - } - } - else - { - if (!ct->error) - { - ct->error = 15; - ct->addinfo = 0; - } - } - cql_pr_attr(ct, "always", 0, 0, pr, client_data, 0); - if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "=")) - cql_pr_attr(ct, "relation", "eq", "scr", - pr, client_data, 19); - else if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "<=")) - cql_pr_attr(ct, "relation", "le", "scr", - pr, client_data, 19); - else if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, ">=")) - cql_pr_attr(ct, "relation", "ge", "scr", - pr, client_data, 19); - else - cql_pr_attr(ct, "relation", cn->u.st.relation, "eq", - pr, client_data, 19); - cql_pr_attr(ct, "structure", cn->u.st.relation, 0, - pr, client_data, 24); - if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "all")) - { - emit_wordlist(ct, cn, pr, client_data, "and"); - } - else if (cn->u.st.relation && !cql_strcmp(cn->u.st.relation, "any")) - { - emit_wordlist(ct, cn, pr, client_data, "or"); - } - else - { - emit_term(ct, cn, cn->u.st.term, strlen(cn->u.st.term), - pr, client_data); - } - break; - case CQL_NODE_BOOL: - (*pr)("@", client_data); - (*pr)(cn->u.boolean.value, client_data); - (*pr)(" ", client_data); - mods = cn->u.boolean.modifiers; - if (!strcmp(cn->u.boolean.value, "prox")) { - if (!cql_pr_prox(ct, mods, pr, client_data)) - return; - } else if (mods) { - /* Boolean modifiers other than on proximity not supported */ - ct->error = 46; /* SRW diag: "Unsupported boolean modifier" */ - ct->addinfo = xstrdup(mods->u.st.index); - return; - } - - cql_transform_r(ct, cn->u.boolean.left, pr, client_data); - cql_transform_r(ct, cn->u.boolean.right, pr, client_data); - break; - - default: - fprintf(stderr, "Fatal: impossible CQL node-type %d\n", cn->which); - abort(); - } -} - -int cql_transform(cql_transform_t ct, - struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data) -{ - struct cql_prop_entry *e; - NMEM nmem = nmem_create(); - - ct->error = 0; - if (ct->addinfo) - xfree (ct->addinfo); - ct->addinfo = 0; - - for (e = ct->entry; e ; e = e->next) - { - if (!cql_strncmp(e->pattern, "set.", 4)) - cql_apply_prefix(nmem, cn, e->pattern+4, e->value); - else if (!cql_strcmp(e->pattern, "set")) - cql_apply_prefix(nmem, cn, 0, e->value); - } - cql_transform_r (ct, cn, pr, client_data); - nmem_destroy(nmem); - return ct->error; -} - - -int cql_transform_FILE(cql_transform_t ct, struct cql_node *cn, FILE *f) -{ - return cql_transform(ct, cn, cql_fputs, f); -} - -int cql_transform_buf(cql_transform_t ct, struct cql_node *cn, - char *out, int max) -{ - struct cql_buf_write_info info; - int r; - - info.off = 0; - info.max = max; - info.buf = out; - r = cql_transform(ct, cn, cql_buf_write_handler, &info); - if (info.off < 0) { - /* Attempt to write past end of buffer. For some reason, this - SRW diagnostic is deprecated, but it's so perfect for our - purposes that it would be stupid not to use it. */ - char numbuf[30]; - ct->error = YAZ_SRW_TOO_MANY_CHARS_IN_QUERY; - sprintf(numbuf, "%ld", (long) info.max); - ct->addinfo = xstrdup(numbuf); - return -1; - } - if (info.off >= 0) - info.buf[info.off] = '\0'; - return r; -} - -int cql_transform_error(cql_transform_t ct, const char **addinfo) -{ - *addinfo = ct->addinfo; - return ct->error; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/cqlutil.c b/dependencies/yaz_3.0.14/src/cqlutil.c deleted file mode 100644 index 68589ec..0000000 --- a/dependencies/yaz_3.0.14/src/cqlutil.c +++ /dev/null @@ -1,193 +0,0 @@ -/* $Id: cqlutil.c,v 1.11 2007/01/03 08:42:15 adam Exp $ - Copyright (C) 1995-2007, Index Data ApS - Index Data Aps - -This file is part of the YAZ toolkit. - -See the file LICENSE for details. -*/ - -/** - * \file cqlutil.c - * \brief Implements CQL tree node utilities. - */ - -#include -#include - -#include - -void cql_fputs(const char *buf, void *client_data) -{ - FILE *f = (FILE *) client_data; - fputs(buf, f); -} - -struct cql_node *cql_node_dup (NMEM nmem, struct cql_node *cp) -{ - struct cql_node *cn = 0; - - if (!cp) - return 0; - switch (cp->which) - { - case CQL_NODE_ST: - cn = cql_node_mk_sc(nmem, cp->u.st.index, - cp->u.st.relation, - cp->u.st.term); - cn->u.st.modifiers = cql_node_dup(nmem, cp->u.st.modifiers); - cn->u.st.index_uri = cp->u.st.index_uri ? - nmem_strdup(nmem, cp->u.st.index_uri) : 0; - cn->u.st.relation_uri = cp->u.st.relation_uri ? - nmem_strdup(nmem, cp->u.st.relation_uri) : 0; - break; - case CQL_NODE_BOOL: - cn = cql_node_mk_boolean(nmem, cp->u.boolean.value); - cn->u.boolean.left = cql_node_dup(nmem, cp->u.boolean.left); - cn->u.boolean.right = cql_node_dup(nmem, cp->u.boolean.right); - } - return cn; -} - -struct cql_node *cql_node_mk_sc(NMEM nmem, - const char *index, - const char *relation, - const char *term) -{ - struct cql_node *p = (struct cql_node *) nmem_malloc(nmem, sizeof(*p)); - p->which = CQL_NODE_ST; - p->u.st.index = 0; - if (index) - p->u.st.index = nmem_strdup(nmem, index); - p->u.st.index_uri = 0; - p->u.st.term = 0; - if (term) - p->u.st.term = nmem_strdup(nmem, term); - p->u.st.relation = 0; - if (relation) - p->u.st.relation = nmem_strdup(nmem, relation); - p->u.st.relation_uri = 0; - p->u.st.modifiers = 0; - return p; -} - -struct cql_node *cql_node_mk_boolean(NMEM nmem, const char *op) -{ - struct cql_node *p = (struct cql_node *) nmem_malloc(nmem, sizeof(*p)); - p->which = CQL_NODE_BOOL; - p->u.boolean.value = 0; - if (op) - p->u.boolean.value = nmem_strdup(nmem, op); - p->u.boolean.left = 0; - p->u.boolean.right = 0; - p->u.boolean.modifiers = 0; - return p; -} - -const char *cql_uri(void) -{ - return "info:srw/cql-context-set/1/cql-v1.1"; -} - -struct cql_node *cql_apply_prefix(NMEM nmem, - struct cql_node *n, const char *prefix, - const char *uri) -{ - if (n->which == CQL_NODE_ST) - { - if (!n->u.st.index_uri && n->u.st.index) - { /* not yet resolved.. */ - const char *cp = strchr(n->u.st.index, '.'); - if (prefix && cp && - strlen(prefix) == (size_t) (cp - n->u.st.index) && - !cql_strncmp(n->u.st.index, prefix, strlen(prefix))) - { - char *nval = nmem_strdup(nmem, cp+1); - n->u.st.index_uri = nmem_strdup(nmem, uri); - n->u.st.index = nval; - } - else if (!prefix && !cp) - { - n->u.st.index_uri = nmem_strdup(nmem, uri); - } - } - if (!n->u.st.relation_uri && n->u.st.relation) - { - const char *cp = strchr(n->u.st.relation, '.'); - if (prefix && cp && - strlen(prefix) == (size_t)(cp - n->u.st.relation) && - !cql_strncmp(n->u.st.relation, prefix, strlen(prefix))) - { - char *nval = nmem_strdup(nmem, cp+1); - n->u.st.relation_uri = nmem_strdup(nmem, uri); - n->u.st.relation = nval; - } - } - } - else if (n->which == CQL_NODE_BOOL) - { - cql_apply_prefix(nmem, n->u.boolean.left, prefix, uri); - cql_apply_prefix(nmem, n->u.boolean.right, prefix, uri); - } - return n; -} - -void cql_node_destroy(struct cql_node *cn) -{ - if (!cn) - return; - switch (cn->which) - { - case CQL_NODE_ST: - cql_node_destroy(cn->u.st.modifiers); - break; - case CQL_NODE_BOOL: - cql_node_destroy(cn->u.boolean.left); - cql_node_destroy(cn->u.boolean.right); - cql_node_destroy(cn->u.boolean.modifiers); - } -} - -int cql_strcmp(const char *s1, const char *s2) -{ - while (*s1 && *s2) - { - int c1 = *s1++; - int c2 = *s2++; - if (c1 >= 'A' && c1 <= 'Z') - c1 = c1 + ('a' - 'A'); - if (c2 >= 'A' && c2 <= 'Z') - c2 = c2 + ('a' - 'A'); - if (c1 != c2) - return c1 - c2; - } - return *s1 - *s2; -} - -int cql_strncmp(const char *s1, const char *s2, size_t n) -{ - while (*s1 && *s2 && n) - { - int c1 = *s1++; - int c2 = *s2++; - if (c1 >= 'A' && c1 <= 'Z') - c1 = c1 + ('a' - 'A'); - if (c2 >= 'A' && c2 <= 'Z') - c2 = c2 + ('a' - 'A'); - if (c1 != c2) - return c1 - c2; - --n; - } - if (!n) - return 0; - return *s1 - *s2; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/csvtobib1.tcl b/dependencies/yaz_3.0.14/src/csvtobib1.tcl deleted file mode 100644 index bd25ad9..0000000 --- a/dependencies/yaz_3.0.14/src/csvtobib1.tcl +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# the next line restats using tclsh \ -exec tclsh "$0" "$@" -# -# This file is part of the YAZ toolkit -# Copyright (c) Index Data 1996-2007 -# See the file LICENSE for details. -# -# $Id: csvtobib1.tcl,v 1.4 2007/01/03 08:42:15 adam Exp $ -# -# Converts a CSV file with Bib-1 diagnostics to C+H file for easy -# maintenance -# -# $Id: csvtobib1.tcl,v 1.4 2007/01/03 08:42:15 adam Exp $ - -source [lindex $argv 0]/csvtodiag.tcl - -csvtodiag [list [lindex $argv 0]/bib1.csv diagbib1.c [lindex $argv 0]/../include/yaz/diagbib1.h] bib1 diagbib1_str diff --git a/dependencies/yaz_3.0.14/src/csvtodiag.tcl b/dependencies/yaz_3.0.14/src/csvtodiag.tcl deleted file mode 100644 index 8cc35b3..0000000 --- a/dependencies/yaz_3.0.14/src/csvtodiag.tcl +++ /dev/null @@ -1,93 +0,0 @@ -# This file is part of the YAZ toolkit -# Copyright (c) Index Data 1996-2007 -# See the file LICENSE for details. -# -# $Id: csvtodiag.tcl,v 1.4 2007/01/03 08:42:15 adam Exp $ -# -# Converts a CSV file with diagnostics to C+H file for easy -# maintenance - -proc csvtodiag {ifiles name alias} { - set uname [string toupper $name] - set funcproto "const char *yaz_diag_${name}_str(int code)" - if {[string length $alias]} { - set funcalias "const char *${alias}(int code)" - } - set csv [open [lindex $ifiles 0] r] - set cfile [open [lindex $ifiles 1] w] - set hfile [open [lindex $ifiles 2] w] - set lineno 0 - puts $cfile "/** \\file [lindex $ifiles 1]" - puts $hfile "/** \\file [lindex $ifiles 2]" - set preamble " \\brief Diagnostics: Generated by csvtodiag.tcl from [lindex $ifiles 0] */" - puts $cfile $preamble - puts $cfile " -#include \"diag-entry.h\" -\#include \"[lindex $ifiles 2]\" -struct yaz_diag_entry yaz_diag_${name}_tab\[\] = \{ -" - puts $hfile $preamble - puts $hfile " -\#include - -\#ifndef YAZ_DIAG_${name}_H -\#define YAZ_DIAG_${name}_H -YAZ_BEGIN_CDECL -YAZ_EXPORT $funcproto;" - - if {[info exists funcalias]} { - puts $hfile "YAZ_EXPORT $funcalias;" -} - while {1} { - incr lineno - set cnt [gets $csv line] - if {$cnt < 0} { - break - } - if {[regexp {([0-9]+)[^\"]*"([^\"]*)"} $line s code msg]} { - puts $cfile "\{$code, \"$msg\"\}," - - set m [string toupper $msg] - regsub -all {DUPLICATE} $m {DUP} m - regsub -all {SECURITY CHALLENGE} $m {SEC_CHAL} m - regsub -all {COULD NOT} $m {COULDNT} m - regsub -all {COULD NOT} $m {COULDNT} m - regsub -all {NOT SUPPORTED} $m {UNSUPP} m - regsub -all {UNSUPPORTED} $m {UNSUPP} m - regsub -all {COMBINATION} $m {COMBI} m - regsub -all {PROXIMITY} $m {PROX} m - regsub -all {CHARACTERS} $m {CHARS} m - regsub -all {CHARACTER} $m {CHAR} m - regsub -all {[-/,:;."' \{\}()]} $m _ m - set m [string map {___ _ __ _} $m] - if {[string length $m] > 55} { - set m [string range $m 0 55] - set p [string last _ $m] - if {$p > 30} { - set m [string range $m 0 $p] - } - } - puts $hfile "\#define YAZ_${uname}_${m} $code" - } - } - puts $cfile "\{0, 0\}\}\;" - puts $cfile $funcproto - puts $cfile "\{" - puts $cfile " return yaz_diag_to_str(yaz_diag_${name}_tab, code);" - puts $cfile "\}" - - if {[info exists funcalias]} { - puts $cfile $funcalias - puts $cfile "\{" - puts $cfile " return yaz_diag_to_str(yaz_diag_${name}_tab, code);" - puts $cfile "\}" - } - puts $hfile " -YAZ_END_CDECL -\#endif -" - close $csv - close $cfile - close $hfile -} - diff --git a/dependencies/yaz_3.0.14/src/csvtosru_update.tcl b/dependencies/yaz_3.0.14/src/csvtosru_update.tcl deleted file mode 100644 index 07b255a..0000000 --- a/dependencies/yaz_3.0.14/src/csvtosru_update.tcl +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# the next line restats using tclsh \ -exec tclsh "$0" "$@" -# -# This file is part of the YAZ toolkit -# Copyright (c) Index Data 1996-2007 -# See the file LICENSE for details. -# -# $Id: csvtosru_update.tcl,v 1.2 2007/01/03 08:42:15 adam Exp $ -# -# Converts a CSV file with SRU update diagnostics to C+H file for easy -# maintenance -# -# $Id: csvtosru_update.tcl,v 1.2 2007/01/03 08:42:15 adam Exp $ - -source [lindex $argv 0]/csvtodiag.tcl - -csvtodiag [list [lindex $argv 0]/sru_update.csv diagsru_update.c [lindex $argv 0]/../include/yaz/diagsru_update.h] sru_update {} diff --git a/dependencies/yaz_3.0.14/src/csvtosrw.tcl b/dependencies/yaz_3.0.14/src/csvtosrw.tcl deleted file mode 100644 index 00efa49..0000000 --- a/dependencies/yaz_3.0.14/src/csvtosrw.tcl +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# the next line restats using tclsh \ -exec tclsh "$0" "$@" -# -# This file is part of the YAZ toolkit -# Copyright (c) Index Data 1996-2007 -# See the file LICENSE for details. -# -# $Id: csvtosrw.tcl,v 1.4 2007/01/03 08:42:15 adam Exp $ -# -# Converts a CSV file with SRW diagnostics to C+H file for easy -# maintenance -# -# $Id: csvtosrw.tcl,v 1.4 2007/01/03 08:42:15 adam Exp $ - -source [lindex $argv 0]/csvtodiag.tcl - -csvtodiag [list [lindex $argv 0]/srw.csv diagsrw.c [lindex $argv 0]/../include/yaz/diagsrw.h] srw {} diff --git a/dependencies/yaz_3.0.14/src/datetime.asn b/dependencies/yaz_3.0.14/src/datetime.asn deleted file mode 100644 index cab9eb0..0000000 --- a/dependencies/yaz_3.0.14/src/datetime.asn +++ /dev/null @@ -1,81 +0,0 @@ -UserInfoFormat-dateTime -{Z39-50-userInfoFormat dateTime (6)} DEFINITIONS ::= -BEGIN -IMPORTS IntUnit FROM Z39-50-APDU-1995; - -DateTime ::= SEQUENCE{ - date [1] Z3950Date OPTIONAL, - time [2] Z3950Time OPTIONAL - -- one or the other, or both - } - -Z3950Date ::= SEQUENCE{ - year [1] IMPLICIT INTEGER, - -- For "positive" years, i.e. 1 AD or later, supply - -- the absolute year, e.g. If the year is 1995, supply - -- the integer 1995; the value 95 would indicate the - -- year 0095. - -- For "negative" years, e.g. 1 BC or earlier, -1 - -- represents 1 BC, -2 represents 2 BC, etc. Zero is - -- invalid, because there was no year zero. - partOfYear [2] CHOICE{ -- may be omitted if only year is significant - monthAndDay [1] IMPLICIT SEQUENCE{ - month [2] IMPLICIT INTEGER, - -- value 1-12 - day [3] IMPLICIT INTEGER OPTIONAL - -- may be omitted if only year and month - -- are significant. Value 1-31. - }, - julianDay [2] IMPLICIT INTEGER, -- Value 1 - 366. - weekNumber [3] IMPLICIT INTEGER, -- Value 1 - 53. - quarter [4] CHOICE{ - first [1] IMPLICIT NULL, - second [2] IMPLICIT NULL, - third [3] IMPLICIT NULL, - fourth [4] IMPLICIT NULL}, - season [5] CHOICE{ - winter [1] IMPLICIT NULL, - spring [2] IMPLICIT NULL, - summer [3] IMPLICIT NULL, - autumn [4] IMPLICIT NULL} - } OPTIONAL, - flags [3] IMPLICIT SEQUENCE{ - circa [1] IMPLICIT NULL OPTIONAL, - -- if this flag is set then the date is "approximate". - era [2] CHOICE{ - -- If era occurs, partOfYear should not occur. - decade [1] IMPLICIT NULL, - -- year must be multiple of 10. - -- For example, 1900 refers to - -- the decade covering the years - -- 1900 through 1909. - century [2] IMPLICIT NULL, - -- year must be multiple of 100. - millennium [3] IMPLICIT NULL - -- year must be multiple of 1000. - } OPTIONAL - } OPTIONAL - } - - -Z3950Time ::= SEQUENCE{ - hour [1] IMPLICIT INTEGER, - -- Value 0-23. - minute [2] IMPLICIT INTEGER OPTIONAL, - -- value 0-59. May be omitted when hour only is - -- significant (in which case second and - -- partOfSecond must also be omitted). - second [3] IMPLICIT INTEGER OPTIONAL, - -- value 0-59. May be omitted when only hour, or - -- hour and minute, is significant (in which case - -- partOfSecond must also be omitted). - partOfSecond [4] IMPLICIT IntUnit OPTIONAL, - -- Use Unit System = 'si', Unit type = 'time'; - -- Unit = 'second', with appropriate value and - -- scale factor. - zone [5] CHOICE{ - local [1] IMPLICIT NULL, - utc [2] IMPLICIT NULL, - utcOffset [3] IMPLICIT INTEGER -- in minutes - }} -END diff --git a/dependencies/yaz_3.0.14/src/diag-entry.c b/dependencies/yaz_3.0.14/src/diag-entry.c deleted file mode 100644 index 3235776..0000000 --- a/dependencies/yaz_3.0.14/src/diag-entry.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: diag-entry.c,v 1.4 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file diag-entry.c - * \brief Diagnostic table lookup - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include "diag-entry.h" - -const char *yaz_diag_to_str(struct yaz_diag_entry *tab, int code) -{ - int i; - for (i=0; tab[i].msg; i++) - if (tab[i].code == code) - return tab[i].msg; - return "Unknown error"; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/diag-entry.h b/dependencies/yaz_3.0.14/src/diag-entry.h deleted file mode 100644 index 4ae29f6..0000000 --- a/dependencies/yaz_3.0.14/src/diag-entry.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: diag-entry.h,v 1.4 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file diag-entry.h - * \brief Diagnostic table lookup header - */ - -struct yaz_diag_entry { - int code; - char *msg; -}; - -const char *yaz_diag_to_str(struct yaz_diag_entry *tab, int code); -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/diagbib1.c b/dependencies/yaz_3.0.14/src/diagbib1.c deleted file mode 100644 index cb05809..0000000 --- a/dependencies/yaz_3.0.14/src/diagbib1.c +++ /dev/null @@ -1,190 +0,0 @@ -/** \file diagbib1.c - \brief Diagnostics: Generated by csvtodiag.tcl from ./bib1.csv */ - -#include "diag-entry.h" -#include "./../include/yaz/diagbib1.h" -struct yaz_diag_entry yaz_diag_bib1_tab[] = { - -{1, "Permanent system error"}, -{2, "Temporary system error"}, -{3, "Unsupported search"}, -{4, "Terms only exclusion (stop) words"}, -{5, "Too many argument words"}, -{6, "Too many boolean operators"}, -{7, "Too many truncated words"}, -{8, "Too many incomplete subfields"}, -{9, "Truncated words too short"}, -{10, "Invalid format for record number (search term)"}, -{11, "Too many characters in search statement"}, -{12, "Too many records retrieved"}, -{13, "Present request out of range"}, -{14, "System error in presenting records"}, -{15, "Record no authorized to be sent intersystem"}, -{16, "Record exceeds Preferred-message-size"}, -{17, "Record exceeds Maximum-record-size"}, -{18, "Result set not supported as a search term"}, -{19, "Only single result set as search term supported"}, -{20, "Only ANDing of a single result set as search term supported"}, -{21, "Result set exists and replace indicator off"}, -{22, "Result set naming not supported"}, -{23, "Combination of specified databases not supported"}, -{24, "Element set names not supported"}, -{25, "Specified element set name not valid for specified database"}, -{26, "Only a single element set name supported"}, -{27, "Result set no longer exists - unilaterally deleted by target"}, -{28, "Result set is in use"}, -{29, "One of the specified databases is locked"}, -{30, "Specified result set does not exist"}, -{31, "Resources exhausted - no results available"}, -{32, "Resources exhausted - unpredictable partial results available"}, -{33, "Resources exhausted - valid subset of results available"}, -{100, "Unspecified error"}, -{101, "Access-control failure"}, -{102, "Security challenge required but could not be issued - request terminated"}, -{103, "Security challenge required but could not be issued - record not included"}, -{104, "Security challenge failed - record not included"}, -{105, "Terminated by negative continue response"}, -{106, "No abstract syntaxes agreed to for this record"}, -{107, "Query type not supported"}, -{108, "Malformed query"}, -{109, "Database unavailable"}, -{110, "Operator unsupported"}, -{111, "Too many databases specified"}, -{112, "Too many result sets created"}, -{113, "Unsupported attribute type"}, -{114, "Unsupported Use attribute"}, -{115, "Unsupported value for Use attribute"}, -{116, "Use attribute required but not supplied"}, -{117, "Unsupported Relation attribute"}, -{118, "Unsupported Structure attribute"}, -{119, "Unsupported Position attribute"}, -{120, "Unsupported Truncation attribute"}, -{121, "Unsupported Attribute Set"}, -{122, "Unsupported Completeness attribute"}, -{123, "Unsupported attribute combination"}, -{124, "Unsupported coded value for term"}, -{125, "Malformed search term"}, -{126, "Illegal term value for attribute"}, -{127, "Unparsable format for un-normalized value"}, -{128, "Illegal result set name"}, -{129, "Proximity search of sets not supported"}, -{130, "Illegal result set in proximity search"}, -{131, "Unsupported proximity relation"}, -{132, "Unsupported proximity unit code"}, -{201, "Proximity not supported with this attribute combination"}, -{202, "Unsupported distance for proximity"}, -{203, "Ordered flag not supported for proximity"}, -{205, "Only zero step size supported for Scan"}, -{206, "Specified step size not supported for Scan"}, -{207, "Cannot sort according to sequence"}, -{208, "No result set name supplied on Sort"}, -{209, "Generic sort not supported (database-specific sort only supported)"}, -{210, "Database specific sort not supported"}, -{211, "Too many sort keys"}, -{212, "Duplicate sort keys"}, -{213, "Unsupported missing data action"}, -{214, "Illegal sort relation"}, -{215, "Illegal case value"}, -{216, "Illegal missing data action"}, -{217, "Segmentation: Cannot guarantee records will fit in specified segments"}, -{218, "ES: Package name already in use"}, -{219, "ES: no such package, on modify/delete"}, -{220, "ES: quota exceeded"}, -{221, "ES: extended service type not supported"}, -{222, "ES: permission denied on ES - id not authorized"}, -{223, "ES: permission denied on ES - cannot modify or delete"}, -{224, "ES: immediate execution failed"}, -{225, "ES: immediate execution not supported for this service"}, -{226, "ES: immediate execution not supported for these parameters"}, -{227, "No data available in requested record syntax"}, -{228, "Scan: malformed scan"}, -{229, "Term type not supported"}, -{230, "Sort: too many input results"}, -{231, "Sort: incompatible record formats"}, -{232, "Scan: term list not supported"}, -{233, "Scan: unsupported value of position-in-response"}, -{234, "Too many index terms processed"}, -{235, "Database does not exist"}, -{236, "Access to specified database denied"}, -{237, "Sort: illegal sort"}, -{238, "Record not available in requested syntax"}, -{239, "Record syntax not supported"}, -{240, "Scan: Resources exhausted looking for satisfying terms"}, -{241, "Scan: Beginning or end of term list"}, -{242, "Segmentation: max-segment-size too small to segment record"}, -{243, "Present: additional-ranges parameter not supported"}, -{244, "Present: comp-spec parameter not supported"}, -{245, "Type-1 query: restriction ('resultAttr') operand not supported"}, -{246, "Type-1 query: 'complex' attributeValue not supported"}, -{247, "Type-1 query: 'attributeSet' as part of AttributeElement not supported"}, -{1001, "Malformed APDU"}, -{1002, "ES: EXTERNAL form of Item Order request not supported"}, -{1003, "ES: Result set item form of Item Order request not supported"}, -{1004, "ES: Extended services not supported unless access control is in effect"}, -{1005, "Response records in Search response not supported"}, -{1006, "Response records in Search response not possible for specified database (or database combination)"}, -{1007, "No Explain server. Addinfo: pointers to servers that have a surrogate Explain database for this server"}, -{1008, "ES: missing mandatory parameter for specified function. Addinfo: parameter"}, -{1009, "ES: Item Order, unsupported OID in itemRequest. Addinfo: OID"}, -{1010, "Init/AC: Bad Userid"}, -{1011, "Init/AC: Bad Userid and/or Password"}, -{1012, "Init/AC: No searches remaining (pre-purchased searches exhausted)"}, -{1013, "Init/AC: Incorrect interface type (specified id valid only when used with a particular access method or client)"}, -{1014, "Init/AC: Authentication System error"}, -{1015, "Init/AC: Maximum number of simultaneous sessions for Userid"}, -{1016, "Init/AC: Blocked network address"}, -{1017, "Init/AC: No databases available for specified userId"}, -{1018, "Init/AC: System temporarily out of resources"}, -{1019, "Init/AC: System not available due to maintenance"}, -{1020, "Init/AC: System temporarily unavailable (Addinfo: when it's expected back up)"}, -{1021, "Init/AC: Account has expired"}, -{1022, "Init/AC: Password has expired so a new one must be supplied"}, -{1023, "Init/AC: Password has been changed by an administrator so a new one must be supplied"}, -{1024, "Unsupported Attribute"}, -{1025, "Service not supported for this database"}, -{1026, "Record cannot be opened because it is locked"}, -{1027, "SQL error"}, -{1028, "Record deleted"}, -{1029, "Scan: too many terms requested. Addinfo: max terms supported"}, -{1040, "ES: Invalid function"}, -{1041, "ES: Error in retention time"}, -{1042, "ES: Permissions data not understood"}, -{1043, "ES: Invalid OID for task specific parameters"}, -{1044, "ES: Invalid action"}, -{1045, "ES: Unknown schema"}, -{1046, "ES: Too many records in package"}, -{1047, "ES: Invalid wait action"}, -{1048, "ES: Cannot create task package -- exceeds maximum permissable size"}, -{1049, "ES: Cannot return task package -- exceeds maximum permissable size"}, -{1050, "ES: Extended services request too large"}, -{1051, "Scan: Attribute set id required -- not supplied"}, -{1052, "ES: Cannot process task package record -- exceeds maximum permissible record size for ES"}, -{1053, "ES: Cannot return task package record -- exceeds maximum permissible record size for ES response"}, -{1054, "Init: Required negotiation record not included"}, -{1055, "Init: negotiation option required"}, -{1056, "Attribute not supported for database"}, -{1057, "ES: Unsupported value of task package parameter"}, -{1058, "Duplicate Detection: Cannot dedup on requested record portion"}, -{1059, "Duplicate Detection: Requested detection criterion not supported"}, -{1060, "Duplicate Detection: Requested level of match not supported"}, -{1061, "Duplicate Detection: Requested regular expression not supported"}, -{1062, "Duplicate Detection: Cannot do clustering"}, -{1063, "Duplicate Detection: Retention criterion not supported"}, -{1064, "Duplicate Detection: Requested number (or percentage) of entries "}, -{1065, "Duplicate Detection: Requested sort criterion not supported"}, -{1066, "CompSpec: Unknown schema, or schema not supported."}, -{1067, "Encapsulation: Encapsulated sequence of PDUs not supported"}, -{1068, "Encapsulation: Base operation (and encapsulated PDUs) not executed based on pre-screening analysis"}, -{1069, "No syntaxes available for this request"}, -{1070, "user not authorized to receive record(s) in requested syntax"}, -{1071, "preferredRecordSyntax not supplied"}, -{1072, "Query term includes characters that do not translate into the target character set"}, -{0, 0}}; -const char *yaz_diag_bib1_str(int code) -{ - return yaz_diag_to_str(yaz_diag_bib1_tab, code); -} -const char *diagbib1_str(int code) -{ - return yaz_diag_to_str(yaz_diag_bib1_tab, code); -} diff --git a/dependencies/yaz_3.0.14/src/diagsru_update.c b/dependencies/yaz_3.0.14/src/diagsru_update.c deleted file mode 100644 index 5e8cbe2..0000000 --- a/dependencies/yaz_3.0.14/src/diagsru_update.c +++ /dev/null @@ -1,62 +0,0 @@ -/** \file diagsru_update.c - \brief Diagnostics: Generated by csvtodiag.tcl from ./sru_update.csv */ - -#include "diag-entry.h" -#include "./../include/yaz/diagsru_update.h" -struct yaz_diag_entry yaz_diag_sru_update_tab[] = { - -{1, "Invalid component: record rejected"}, -{2, "Invalid component: component rejected"}, -{3, "Invalid component: warning only"}, -{4, "Invalid component: default value applied"}, -{5, "Invalid component: data corrected by server"}, -{6, "Invalid repetition of component: record rejected"}, -{7, "Invalid repetition of component: component rejected"}, -{8, "Invalid repetition of component: warning only"}, -{9, "Missing mandatory element: record rejected"}, -{10, "Missing mandatory element: warning only"}, -{11, "Missing mandatory element: default value applied"}, -{12, "Invalid data structure: record rejected"}, -{13, "Invalid data structure: component rejected"}, -{14, "Invalid data structure: warning only"}, -{15, "Invalid data structure: default value applied"}, -{16, "Invalid data structure: data corrected by server"}, -{17, "Incorrect element length: record rejected"}, -{18, "Incorrect element length : component rejected"}, -{19, "Incorrect element length : warning only"}, -{20, "Incorrect element length : default value applied"}, -{21, "Incorrect element length : data corrected by server"}, -{22, "Invalid record identifier : record rejected"}, -{23, "Invalid record identifier : warning only"}, -{24, "Invalid record identifier : default applied"}, -{25, "Invalid record identifier : data corrected by server"}, -{26, "Invalid component identifier : record rejected"}, -{27, "Invalid component identifier: component rejected"}, -{28, "Invalid component identifier: warning only"}, -{29, "Invalid component identifier: data corrected by server"}, -{30, "Record schema unacceptable: record rejected"}, -{31, "Record schema unacceptable: component rejected"}, -{32, "Record schema unrecognised: warning only"}, -{33, "Record schema unacceptable: record converted"}, -{50, "Record not found (replacement or delete)"}, -{51, "Component not found (replacement or delete)"}, -{52, "Record protected or locked by another user"}, -{53, "Cannot delete or replace record or component, authorization failure"}, -{54, "Cannot delete or replace record or component without locking first"}, -{55, "Cannot process update, incorrect or invalid version"}, -{56, "Linked records exist, cannot delete record"}, -{57, "Record or component not found, replacement request processed as an insert"}, -{58, "Suspect duplicate: record or component insert rejected"}, -{59, "Suspect duplicate: warning only"}, -{60, "Incoming record matches with database record, records merged"}, -{61, "Unspecified database error"}, -{62, "Cannot process or store record, insufficent space"}, -{63, " 'record' is ignored, while Both 'recordIdentifier' and 'record' were included on a 'delete' action."}, -{64, "'recordIdentifier' is ignored, while Both 'recordIdentifier' and 'record' were included on a 'delete' action."}, -{65, "Not processed (replace or delete). Record identifier retrieved ore than one record"}, -{100, "Invalid action"}, -{0, 0}}; -const char *yaz_diag_sru_update_str(int code) -{ - return yaz_diag_to_str(yaz_diag_sru_update_tab, code); -} diff --git a/dependencies/yaz_3.0.14/src/diagsrw.c b/dependencies/yaz_3.0.14/src/diagsrw.c deleted file mode 100644 index 78496c7..0000000 --- a/dependencies/yaz_3.0.14/src/diagsrw.c +++ /dev/null @@ -1,106 +0,0 @@ -/** \file diagsrw.c - \brief Diagnostics: Generated by csvtodiag.tcl from ./srw.csv */ - -#include "diag-entry.h" -#include "./../include/yaz/diagsrw.h" -struct yaz_diag_entry yaz_diag_srw_tab[] = { - -{1, "Permanent system error"}, -{2, "System temporarily unavailable"}, -{3, "Authentication error"}, -{4, "Unsupported operation"}, -{5, "Unsupported version"}, -{6, "Unsupported parameter value"}, -{7, "Mandatory parameter not supplied"}, -{8, "Unsupported parameter"}, -{10, "Query syntax error"}, -{11, "Unsupported query type"}, -{12, "Too many characters in query"}, -{13, "Invalid or unsupported use of parentheses"}, -{14, "Invalid or unsupported use of quotes"}, -{15, "Unsupported context set"}, -{16, "Unsupported index"}, -{17, "Unsupported combination of index and context set"}, -{18, "Unsupported combination of indexes"}, -{19, "Unsupported relation"}, -{20, "Unsupported relation modifier"}, -{21, "Unsupported combination of relation modifers"}, -{22, "Unsupported combination of relation and index"}, -{23, "Too many characters in term"}, -{24, "Unsupported combination of relation and term"}, -{25, "Special characters not quoted in term"}, -{26, "Non special character escaped in term"}, -{27, "Empty term unsupported"}, -{28, "Masking character not supported"}, -{29, "Masked words too short"}, -{30, "Too many masking characters in term"}, -{31, "Anchoring character not supported"}, -{32, "Anchoring character in unsupported position"}, -{33, "Combination of proximity/adjacency and masking characters not supported"}, -{34, "Combination of proximity/adjacency and anchoring characters not supported"}, -{35, "Term contains only stopwords"}, -{36, "Term in invalid format for index or relation"}, -{37, "Unsupported boolean operator"}, -{38, "Too many boolean operators in query"}, -{39, "Proximity not supported"}, -{40, "Unsupported proximity relation"}, -{41, "Unsupported proximity distance"}, -{42, "Unsupported proximity unit"}, -{43, "Unsupported proximity ordering"}, -{44, "Unsupported combination of proximity modifiers"}, -{45, "Prefix assigned to multiple identifiers"}, -{46, "Unsupported boolean modifier"}, -{47, "Cannot process query; reason unknown"}, -{48, "Query feature unsupported"}, -{49, "Masking character in unsupported position"}, -{50, "Result sets not supported"}, -{51, "Result set does not exist"}, -{52, "Result set temporarily unavailable"}, -{53, "Result sets only supported for retrieval"}, -{54, "Retrieval may only occur from an existing result set"}, -{55, "Combination of result sets with search terms not supported"}, -{56, "Only combination of single result set with search terms supported"}, -{57, "Result set created but no records available"}, -{58, "Result set created with unpredictable partial results available"}, -{59, "Result set created with valid partial results available"}, -{60, "Result set not created: too many matching records"}, -{61, "First record position out of range"}, -{62, "Negative number of records requested"}, -{63, "System error in retrieving records"}, -{64, "Record temporarily unavailable"}, -{65, "Record does not exist"}, -{66, "Unknown schema for retrieval"}, -{67, "Record not available in this schema"}, -{68, "Not authorised to send record"}, -{69, "Not authorised to send record in this schema"}, -{70, "Record too large to send"}, -{71, "Unsupported record packing"}, -{72, "XPath retrieval unsupported"}, -{73, "XPath expression contains unsupported feature"}, -{74, "Unable to evaluate XPath expression"}, -{80, "Sort not supported"}, -{81, "Unsupported sort type"}, -{82, "Unsupported sort sequence"}, -{83, "Too many records to sort"}, -{84, "Too many sort keys to sort"}, -{85, "Duplicate sort keys"}, -{86, "Cannot sort: incompatible record formats"}, -{87, "Unsupported schema for sort"}, -{88, "Unsupported path for sort"}, -{89, "Path unsupported for schema"}, -{90, "Unsupported direction value"}, -{91, "Unsupported case value"}, -{92, "Unsupported missing value action"}, -{93, "Sort ended due to missing value"}, -{100, "Explain not supported"}, -{101, "Explain request type not supported (SOAP vs GET)"}, -{102, "Explain record temporarily unavailable"}, -{110, "Stylesheets not supported"}, -{111, "Unsupported stylesheet"}, -{120, "Response position out of range"}, -{121, "Too many terms requested"}, -{0, 0}}; -const char *yaz_diag_srw_str(int code) -{ - return yaz_diag_to_str(yaz_diag_srw_tab, code); -} diff --git a/dependencies/yaz_3.0.14/src/dumpber.c b/dependencies/yaz_3.0.14/src/dumpber.c deleted file mode 100644 index 85b4baa..0000000 --- a/dependencies/yaz_3.0.14/src/dumpber.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: dumpber.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file dumpber.c - * \brief Implements BER dumping - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" - -static int do_dumpBER(FILE *f, const char *buf, int len, int level, int offset) -{ - int res, ll, zclass, tag, cons, lenlen, taglen; - const char *b = buf, *bp = buf; - - if (!len) - return 0; - if (!buf[0] && !buf[1]) - return 0; - if ((res = ber_dectag((unsigned char*)b, &zclass, &tag, &cons, len)) <= 0) - return 0; - if (res > len) - { - fprintf(stderr, "Unexpected end of buffer\n"); - return 0; - } - fprintf(f, "%5d: %*s", offset, level * 4, ""); - if (zclass == ODR_UNIVERSAL) - { - static char *nl[] = - { - "[Univ 0]", "BOOLEAN", "INTEGER", "BIT STRING", "OCTET STRING", - "NULL", "OID", "OBJECT DESCIPTOR", "EXTERNAL", "REAL", - "ENUM", "[UNIV 11]", "[UNIV 12]", "[UNIV 13]", "[UNIV 14]", - "[UNIV 15]", "SEQUENCE", "SET", "NUMERICSTRING", "PRINTABLESTRING", - "[UNIV 20]", "[UNIV 21]", "[UNIV 22]", "[UNIV 23]", "[UNIV 24]", - "GRAPHICSTRING", "VISIBLESTRING", "GENERALSTRING", "[UNIV 28]" - }; - - if (tag >= 0 && tag < 28) - fprintf(f, "%s", nl[tag]); - else - fprintf(f, "[UNIV %d]", tag); - } - else if (zclass == ODR_CONTEXT) - fprintf(f, "[%d]", tag); - else - fprintf(f, "[%d:%d]", zclass, tag); - b += res; - taglen = res; - len -= res; - bp = b; - if ((res = ber_declen((unsigned char*)b, &ll, len)) <= 0) - { - fprintf(f, "\n%*sBad length\n", level*4+5, ""); - return 0; - } - lenlen = res; - b += res; - len -= res; - if (ll >= 0) - fprintf(f, " len=%d", ll); - else - fprintf(f, " len=?"); - fprintf(f, " tl=%d, ll=%d cons=%d\n", taglen, lenlen, cons); - if (!cons) - { - if (ll < 0 || ll > len) - { - fprintf(f, "%*sBad length on primitive type. ll=%d len=%d\n", - level*4+5, "", ll, len); - return 0; - } - return ll + (b - buf); - } - if (ll >= 0) - { - if (ll > len) - { - fprintf(f, "%*sBad length of constructed type ll=%d len=%d.\n", - level*4+5, "", ll, len); - return 0; - } - len = ll; - } - /* constructed - cycle through children */ - while ((ll == -1 && len >= 2) || (ll >= 0 && len)) - { - if (ll == -1 && *b == 0 && *(b + 1) == 0) - break; - if (!(res = do_dumpBER(f, b, len, level + 1, offset + (b - buf)))) - { - fprintf(f, "%*sDump of content element failed.\n", level*4+5, ""); - return 0; - } - b += res; - len -= res; - if (len < 0) - { - fprintf(f, "%*sBad length\n", level*4+5, ""); - return 0; - } - } - if (ll == -1) - { - if (len < 2) - { - fprintf(f, "%*sBuffer too short in indefinite length.\n", - level*4+5, ""); - return 0; - } - return (b - buf) + 2; - } - return b - buf; -} - -int odr_dumpBER(FILE *f, const char *buf, int len) -{ - return do_dumpBER(f, buf, len, 0, 0); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/elementset.c b/dependencies/yaz_3.0.14/src/elementset.c deleted file mode 100644 index 7ac4d99..0000000 --- a/dependencies/yaz_3.0.14/src/elementset.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: elementset.c,v 1.4 2007/05/06 20:12:20 adam Exp $ - */ -/** - * \file elementset.c - * \brief Z39.50 element set utilities - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include - -const char *yaz_get_esn(Z_RecordComposition *comp) -{ - if (comp && comp->which == Z_RecordComp_complex) - { - if (comp->u.complex->generic - && comp->u.complex->generic->elementSpec - && (comp->u.complex->generic->elementSpec->which == - Z_ElementSpec_elementSetName)) - return comp->u.complex->generic->elementSpec->u.elementSetName; - } - else if (comp && comp->which == Z_RecordComp_simple && - comp->u.simple->which == Z_ElementSetNames_generic) - return comp->u.simple->u.generic; - return 0; -} - -void yaz_set_esn(Z_RecordComposition **comp_p, const char *esn, NMEM nmem) -{ - Z_RecordComposition *comp = (Z_RecordComposition *) - nmem_malloc(nmem, sizeof(*comp)); - - comp->which = Z_RecordComp_simple; - comp->u.simple = (Z_ElementSetNames *) - nmem_malloc(nmem, sizeof(*comp->u.simple)); - comp->u.simple->which = Z_ElementSetNames_generic; - comp->u.simple->u.generic = nmem_strdup(nmem, esn); - *comp_p = comp; -} - - - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/esadmin.asn b/dependencies/yaz_3.0.14/src/esadmin.asn deleted file mode 100644 index 9ec766b..0000000 --- a/dependencies/yaz_3.0.14/src/esadmin.asn +++ /dev/null @@ -1,49 +0,0 @@ -ESFormat-Admin -{Z39-50-extendedService Index-Data(81) AdminES (1)} DEFINITIONS ::= - -- oid is 1.2.840.10003.9.81.1 -BEGIN -IMPORTS DiagRec, InternationalString, Segment -FROM Z39-50-APDU-1995; -Admin ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] OriginPartToKeep, - notToKeep [2] OriginPartNotToKeep}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] - OriginPartToKeep, - targetPart [2] TargetPart}} - -OriginPartToKeep ::= SEQUENCE{ -action [1] CHOICE{ - reIndex [1] NULL, - truncate [2] NULL, - drop [3] NULL, - create [4] NULL, - import [5] ImportParameters, - refresh [6] NULL, -- Review internal representation of records against source files on disk to - -- see if they have been updated. - commit [7] NULL, - shutdown [8] NULL, - start [9] NULL}, -databaseName [2] IMPLICIT InternationalString OPTIONAL} - -OriginPartNotToKeep ::= CHOICE{ -records [1] Segment, -recordsWillFollow [0] NULL} - -TargetPart ::= SEQUENCE{ - updateStatus [1] IMPLICIT INTEGER{ - success (1), - partial (2), - failure (3)}, - globalDiagnostics [2] IMPLICIT SEQUENCE OF - DiagRec OPTIONAL - } - --- Auxiliary definitions for Admin - -ImportParameters ::= SEQUENCE{ - recordType [1] IMPLICIT InternationalString -} - -END diff --git a/dependencies/yaz_3.0.14/src/esupdate.asn b/dependencies/yaz_3.0.14/src/esupdate.asn deleted file mode 100644 index e6628a1..0000000 --- a/dependencies/yaz_3.0.14/src/esupdate.asn +++ /dev/null @@ -1,103 +0,0 @@ -ESFormat-Update -{Z39-50-extendedService Update (5) revisions (1) revision-1 (1)} DEFINITIONS ::= - -- oid is 1.2.840.10003.9.5.1.1 -BEGIN -IMPORTS DiagRec, InternationalString -FROM Z39-50-APDU-1995; -Update ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] OriginPartToKeep, - notToKeep [2] OriginPartNotToKeep}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] - OriginPartToKeep, - targetPart [2] TargetPart}} - -OriginPartToKeep ::= SEQUENCE{ -action [1] IMPLICIT INTEGER{ - recordInsert (1), - recordReplace (2), - recordDelete (3), - elementUpdate (4), - specialUpdate (5)}, - databaseName [2] IMPLICIT InternationalString, - schema [3] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - elementSetName [4] IMPLICIT InternationalString OPTIONAL, - actionQualifier [5] IMPLICIT EXTERNAL OPTIONAL} - -OriginPartNotToKeep ::= SuppliedRecords - -TargetPart ::= SEQUENCE{ - updateStatus [1] IMPLICIT INTEGER{ - success (1), - partial (2), - failure (3)}, - globalDiagnostics [2] IMPLICIT SEQUENCE OF - DiagRec OPTIONAL, - -- These are non-surrogate - -- diagnosticsrelating to the task, - -- not to individual records. - taskPackageRecords [3] IMPLICIT SEQUENCE OF -TaskPackageRecordStructure - -- There should be a - -- TaskPackageRecordStructure - -- for every record supplied. - -- The target should create - -- such a structure for every - -- record immediately upon - -- creating the task package - -- to include correlation - -- information and status. - -- The record itself would not - -- be included until processing - -- for that record is complete. - } - --- Auxiliary definitions for Update -SuppliedRecords ::= SEQUENCE OF SEQUENCE{ - recordId [1] CHOICE{ - number [1] IMPLICIT INTEGER, - string [2] IMPLICIT InternationalString, - opaque [3] IMPLICIT OCTET STRING} OPTIONAL, - supplementalId [2] CHOICE{ - timeStamp [1] IMPLICIT GeneralizedTime, - versionNumber [2] IMPLICIT InternationalString, - previousVersion [3] IMPLICIT EXTERNAL} OPTIONAL, - correlationInfo [3] IMPLICIT CorrelationInfo OPTIONAL, - record [4] IMPLICIT EXTERNAL} - -CorrelationInfo ::= SEQUENCE{ - -- origin may supply one or both for any record: - note [1] IMPLICIT InternationalString OPTIONAL, - id [2] IMPLICIT INTEGER OPTIONAL} - -TaskPackageRecordStructure ::= SEQUENCE{ - recordOrSurDiag [1] CHOICE { - record [1] IMPLICIT EXTERNAL, - -- Choose 'record' if - -- recordStatus is 'success', and - -- elementSetName was supplied. - - surrogateDiagnostics [2] IMPLICIT - SEQUENCE OF DiagRec - -- Choose 'SurrogateDiagnostics', if - -- RecordStatus is failure. - } OPTIONAL, - -- The parameter recordOrSurDiag - -- will thus be omitted only if - -- 'elementSetName' was omitted and - -- recordStatus is 'success'; or - --if record status is 'queued' - -- or in 'process'. - correlationInfo [2] IMPLICIT - CorrelationInfo OPTIONAL, - -- This should be included - -- if it was supplied by the origin. - recordStatus [3] IMPLICIT INTEGER{ - success (1), - queued (2), - inProcess (3), - failure (4)}, - supplementalDiagnostics [4] IMPLICIT - SEQUENCE OF DiagRec OPTIONAL} -END diff --git a/dependencies/yaz_3.0.14/src/eventl.c b/dependencies/yaz_3.0.14/src/eventl.c deleted file mode 100644 index aea3993..0000000 --- a/dependencies/yaz_3.0.14/src/eventl.c +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: eventl.c,v 1.11 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file eventl.c - * \brief Implements event loop handling for GFS. - * - * This source implements the main event loop for the Generic Frontend - * Server. It uses select(2). - */ - -#include -#include -#include -#include -#include - -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_TIME_H -#include -#endif -#ifdef WIN32 -#include -#endif -#if HAVE_UNISTD_H -#include -#endif -#if HAVE_SYS_SELECT_H -#include -#endif - -#include -#include -#include -#include -#include "eventl.h" -#include "session.h" -#include - -#if YAZ_GNU_THREADS -#include -#define YAZ_EV_SELECT pth_select -#endif - -#ifndef YAZ_EV_SELECT -#define YAZ_EV_SELECT select -#endif - -static int log_level=0; -static int log_level_initialized=0; - -IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags, int chan_id) -{ - IOCHAN new_iochan; - - if (!log_level_initialized) - { - log_level=yaz_log_module_level("eventl"); - log_level_initialized=1; - } - - if (!(new_iochan = (IOCHAN)xmalloc(sizeof(*new_iochan)))) - return 0; - new_iochan->destroyed = 0; - new_iochan->fd = fd; - new_iochan->flags = flags; - new_iochan->fun = cb; - new_iochan->force_event = 0; - new_iochan->last_event = new_iochan->max_idle = 0; - new_iochan->next = NULL; - new_iochan->chan_id = chan_id; - return new_iochan; -} - -int iochan_is_alive(IOCHAN chan) -{ - static struct timeval to; - fd_set in, out, except; - int res, max; - - to.tv_sec = 0; - to.tv_usec = 0; - - FD_ZERO(&in); - FD_ZERO(&out); - FD_ZERO(&except); - - FD_SET(chan->fd, &in); - - max = chan->fd + 1; - - res = YAZ_EV_SELECT(max + 1, &in, 0, 0, &to); - if (res == 0) - return 1; - if (!ir_read(chan, EVENT_INPUT)) - return 0; - return 1; -} - -int event_loop(IOCHAN *iochans) -{ - do /* loop as long as there are active associations to process */ - { - IOCHAN p, nextp; - fd_set in, out, except; - int res, max; - static struct timeval to; - time_t now = time(0); - - if (statserv_must_terminate()) - { - for (p = *iochans; p; p = p->next) - p->force_event = EVENT_TIMEOUT; - } - FD_ZERO(&in); - FD_ZERO(&out); - FD_ZERO(&except); - to.tv_sec = 3600; - to.tv_usec = 0; - max = 0; - for (p = *iochans; p; p = p->next) - { - time_t w, ftime; - yaz_log(log_level, "fd=%d flags=%d force_event=%d", - p->fd, p->flags, p->force_event); - if (p->force_event) - to.tv_sec = 0; /* polling select */ - if (p->flags & EVENT_INPUT) - FD_SET(p->fd, &in); - if (p->flags & EVENT_OUTPUT) - FD_SET(p->fd, &out); - if (p->flags & EVENT_EXCEPT) - FD_SET(p->fd, &except); - if (p->fd > max) - max = p->fd; - if (p->max_idle && p->last_event) - { - ftime = p->last_event + p->max_idle; - if (ftime < now) - w = p->max_idle; - else - w = ftime - now; - if (w < to.tv_sec) - to.tv_sec = w; - } - } - yaz_log(log_level, "select start %ld", (long) to.tv_sec); - res = YAZ_EV_SELECT(max + 1, &in, &out, &except, &to); - yaz_log(log_level, "select end"); - if (res < 0) - { - if (yaz_errno() == EINTR) - { - if (statserv_must_terminate()) - { - for (p = *iochans; p; p = p->next) - p->force_event = EVENT_TIMEOUT; - } - continue; - } - else - { - /* Destroy the first member in the chain, and try again */ - association *assoc = (association *)iochan_getdata(*iochans); - COMSTACK conn = assoc->client_link; - - cs_close(conn); - destroy_association(assoc); - iochan_destroy(*iochans); - yaz_log(log_level, "error select, destroying iochan %p", - *iochans); - } - } - now = time(0); - for (p = *iochans; p; p = p->next) - { - int force_event = p->force_event; - - p->force_event = 0; - if (!p->destroyed && (FD_ISSET(p->fd, &in) || - force_event == EVENT_INPUT)) - { - p->last_event = now; - (*p->fun)(p, EVENT_INPUT); - } - if (!p->destroyed && (FD_ISSET(p->fd, &out) || - force_event == EVENT_OUTPUT)) - { - p->last_event = now; - (*p->fun)(p, EVENT_OUTPUT); - } - if (!p->destroyed && (FD_ISSET(p->fd, &except) || - force_event == EVENT_EXCEPT)) - { - p->last_event = now; - (*p->fun)(p, EVENT_EXCEPT); - } - if (!p->destroyed && ((p->max_idle && now - p->last_event >= - p->max_idle) || force_event == EVENT_TIMEOUT)) - { - p->last_event = now; - (*p->fun)(p, EVENT_TIMEOUT); - } - } - for (p = *iochans; p; p = nextp) - { - nextp = p->next; - - if (p->destroyed) - { - IOCHAN tmp = p, pr; - - /* We need to inform the threadlist that this channel has been destroyed */ - statserv_remove(p); - - /* Now reset the pointers */ - if (p == *iochans) - *iochans = p->next; - else - { - for (pr = *iochans; pr; pr = pr->next) - if (pr->next == p) - break; - assert(pr); /* grave error if it weren't there */ - pr->next = p->next; - } - if (nextp == p) - nextp = p->next; - xfree(tmp); - } - } - } - while (*iochans); - return 0; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/eventl.h b/dependencies/yaz_3.0.14/src/eventl.h deleted file mode 100644 index 5b064fa..0000000 --- a/dependencies/yaz_3.0.14/src/eventl.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 1995-2005, Index Data ApS - * See the file LICENSE for details. - * - * $Id: eventl.h,v 1.8 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file eventl.h - * \brief Definitions for event loop handling for GFS. - * - * This "private" header defines various functions for the - * main event loop in GFS. - */ - -#ifndef EVENTL_H -#define EVENTL_H - -#include - -struct iochan; - -typedef void (*IOC_CALLBACK)(struct iochan *i, int event); - -typedef struct iochan -{ - int fd; - int flags; -#define EVENT_INPUT 0x01 -#define EVENT_OUTPUT 0x02 -#define EVENT_EXCEPT 0x04 -#define EVENT_TIMEOUT 0x08 -int force_event; - IOC_CALLBACK fun; - void *data; - int destroyed; - time_t last_event; - time_t max_idle; - - struct iochan *next; - int chan_id; /* listening port (0 if none ) */ -} *IOCHAN; - -#define iochan_destroy(i) (void)((i)->destroyed = 1) -#define iochan_getfd(i) ((i)->fd) -#define iochan_setfd(i, f) ((i)->fd = (f)) -#define iochan_getdata(i) ((i)->data) -#define iochan_setdata(i, d) ((i)->data = d) -#define iochan_getflags(i) ((i)->flags) -#define iochan_setflags(i, d) ((i)->flags = d) -#define iochan_setflag(i, d) ((i)->flags |= d) -#define iochan_clearflag(i, d) ((i)->flags &= ~(d)) -#define iochan_getflag(i, d) ((i)->flags & d ? 1 : 0) -#define iochan_getfun(i) ((i)->fun) -#define iochan_setfun(i, d) ((i)->fun = d) -#define iochan_setevent(i, e) ((i)->force_event = (e)) -#define iochan_getnext(i) ((i)->next) -#define iochan_settimeout(i, t) ((i)->max_idle = (t), (i)->last_event = time(0)) - -IOCHAN iochan_create(int fd, IOC_CALLBACK cb, int flags, int port); -int iochan_is_alive(IOCHAN chan); -int event_loop(IOCHAN *iochans); -void statserv_remove (IOCHAN pIOChannel); -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/grs1disp.c b/dependencies/yaz_3.0.14/src/grs1disp.c deleted file mode 100644 index e4b1444..0000000 --- a/dependencies/yaz_3.0.14/src/grs1disp.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: grs1disp.c,v 1.8 2007/05/08 08:22:36 adam Exp $ - */ - -/** - * \file grs1disp.c - * \brief Implements display of GRS-1 records - */ - -#include -#include -#include -#include - -#include -#include - -static void display_variant(WRBUF w, Z_Variant *v, int level) -{ - int i; - - for (i = 0; i < v->num_triples; i++) - { - printf("%*sclass=%d,type=%d", level * 4, "", *v->triples[i]->zclass, - *v->triples[i]->type); - if (v->triples[i]->which == Z_Triple_internationalString) - printf(",value=%s\n", v->triples[i]->value.internationalString); - else - printf("\n"); - } -} - -static void display_grs1(WRBUF w, Z_GenericRecord *r, int level) -{ - int i; - - if (!r) - { - return; - } - for (i = 0; i < r->num_elements; i++) - { - Z_TaggedElement *t; - - wrbuf_printf(w, "%*s", level * 4, ""); - t = r->elements[i]; - wrbuf_printf(w, "("); - if (t->tagType) - wrbuf_printf(w, "%d,", *t->tagType); - else - wrbuf_printf(w, "?,"); - if (t->tagValue->which == Z_StringOrNumeric_numeric) - wrbuf_printf(w, "%d) ", *t->tagValue->u.numeric); - else - wrbuf_printf(w, "%s) ", t->tagValue->u.string); - if (t->content->which == Z_ElementData_subtree) - { - if (!t->content->u.subtree) - printf (" (no subtree)\n"); - else - { - wrbuf_printf(w, "\n"); - display_grs1(w, t->content->u.subtree, level+1); - } - } - else if (t->content->which == Z_ElementData_string) - { - wrbuf_puts(w, t->content->u.string); - wrbuf_puts(w, "\n"); - } - else if (t->content->which == Z_ElementData_numeric) - { - wrbuf_printf(w, "%d\n", *t->content->u.numeric); - } - else if (t->content->which == Z_ElementData_oid) - { - Odr_oid *ip = t->content->u.oid; - - if (ip) - { - char oid_name_str[OID_STR_MAX]; - oid_class oclass; - const char *oid_name - = yaz_oid_to_string_buf(ip, &oclass, oid_name_str); - - if (oid_name) - wrbuf_printf(w, "OID: %s\n", oid_name); - } - } - else if (t->content->which == Z_ElementData_noDataRequested) - wrbuf_printf(w, "[No data requested]\n"); - else if (t->content->which == Z_ElementData_elementEmpty) - wrbuf_printf(w, "[Element empty]\n"); - else if (t->content->which == Z_ElementData_elementNotThere) - wrbuf_printf(w, "[Element not there]\n"); - else if (t->content->which == Z_ElementData_date) - wrbuf_printf(w, "Date: %s\n", t->content->u.date); - else if (t->content->which == Z_ElementData_ext) - { - printf ("External\n"); - /* we cannot print externals here. Srry */ - } - else - wrbuf_printf(w, "? type = %d\n",t->content->which); - if (t->appliedVariant) - display_variant(w, t->appliedVariant, level+1); - if (t->metaData && t->metaData->supportedVariants) - { - int c; - - wrbuf_printf(w, "%*s---- variant list\n", (level+1)*4, ""); - for (c = 0; c < t->metaData->num_supportedVariants; c++) - { - wrbuf_printf(w, "%*svariant #%d\n", (level+1)*4, "", c); - display_variant(w, t->metaData->supportedVariants[c], level+2); - } - } - } -} - -void yaz_display_grs1(WRBUF wrbuf, Z_GenericRecord *r, int flags) -{ - display_grs1 (wrbuf, r, 0); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/http.c b/dependencies/yaz_3.0.14/src/http.c deleted file mode 100644 index 1248ef3..0000000 --- a/dependencies/yaz_3.0.14/src/http.c +++ /dev/null @@ -1,552 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: http.c,v 1.3 2007/09/06 17:11:59 mike Exp $ - */ - -/** - * \file http.c - * \brief Implements HTTP decoding - */ - -#include -#include -#include -#include -#include - -#ifdef WIN32 -#define strncasecmp _strnicmp -#define strcasecmp _stricmp -#endif - - -/* - * This function's counterpart, yaz_base64decode(), is in srwutil.c. - * I feel bad that they're not together, but each function is only - * needed in one place, and those places are not together. Maybe one - * day we'll move them into a new httputil.c, and declare them in a - * corresponding httputil.h - */ -static void yaz_base64encode(const char *in, char *out) -{ - static char encoding[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - unsigned char buf[3]; - long n; - - while (*in != 0) { - char *pad = 0; - buf[0] = in[0]; - buf[1] = in[1]; - if (in[1] == 0) { - buf[2] = 0; - pad = "=="; - } else { - buf[2] = in[2]; - if (in[2] == 0) - pad = "="; - } - - /* Treat three eight-bit numbers as on 24-bit number */ - n = (buf[0] << 16) + (buf[1] << 8) + buf[2]; - - /* Write the six-bit chunks out as four encoded characters */ - *out++ = encoding[(n >> 18) & 63]; - *out++ = encoding[(n >> 12) & 63]; - if (in[1] != 0) - *out++ = encoding[(n >> 6) & 63]; - if (in[1] != 0 && in[2] != 0) - *out++ = encoding[n & 63]; - - if (pad != 0) { - while (*pad != 0) - *out++ = *pad++; - break; - } - in += 3; - } - - *out++ = 0; -} - - -static int decode_headers_content(ODR o, int off, Z_HTTP_Header **headers, - char **content_buf, int *content_len) -{ - int i = off; - int chunked = 0; - - *headers = 0; - while (i < o->size-1 && o->buf[i] == '\n') - { - int po; - i++; - if (o->buf[i] == '\r' && i < o->size-1 && o->buf[i+1] == '\n') - { - i++; - break; - } - if (o->buf[i] == '\n') - break; - for (po = i; ; i++) - { - if (i == o->size) - { - o->error = OHTTP; - return 0; - } - else if (o->buf[i] == ':') - break; - } - *headers = (Z_HTTP_Header *) odr_malloc(o, sizeof(**headers)); - (*headers)->name = (char*) odr_malloc(o, i - po + 1); - memcpy ((*headers)->name, o->buf + po, i - po); - (*headers)->name[i - po] = '\0'; - i++; - while (i < o->size-1 && o->buf[i] == ' ') - i++; - for (po = i; i < o->size-1 && !strchr("\r\n", o->buf[i]); i++) - ; - - (*headers)->value = (char*) odr_malloc(o, i - po + 1); - memcpy ((*headers)->value, o->buf + po, i - po); - (*headers)->value[i - po] = '\0'; - - if (!strcasecmp((*headers)->name, "Transfer-Encoding") - && - !strcasecmp((*headers)->value, "chunked")) - chunked = 1; - headers = &(*headers)->next; - if (i < o->size-1 && o->buf[i] == '\r') - i++; - } - *headers = 0; - if (o->buf[i] != '\n') - { - o->error = OHTTP; - return 0; - } - i++; - - if (chunked) - { - int off = 0; - - /* we know buffer will be smaller than o->size - i*/ - *content_buf = (char*) odr_malloc(o, o->size - i); - - while (1) - { - /* chunk length .. */ - int chunk_len = 0; - for (; i < o->size-2; i++) - if (isdigit(o->buf[i])) - chunk_len = chunk_len * 16 + - (o->buf[i] - '0'); - else if (isupper(o->buf[i])) - chunk_len = chunk_len * 16 + - (o->buf[i] - ('A'-10)); - else if (islower(o->buf[i])) - chunk_len = chunk_len * 16 + - (o->buf[i] - ('a'-10)); - else - break; - /* chunk extension ... */ - while (o->buf[i] != '\r' && o->buf[i+1] != '\n') - { - if (i >= o->size-2) - { - o->error = OHTTP; - return 0; - } - i++; - } - i += 2; /* skip CRLF */ - if (chunk_len == 0) - break; - if (chunk_len < 0 || off + chunk_len > o->size) - { - o->error = OHTTP; - return 0; - } - /* copy chunk .. */ - memcpy (*content_buf + off, o->buf + i, chunk_len); - i += chunk_len + 2; /* skip chunk+CRLF */ - off += chunk_len; - } - if (!off) - *content_buf = 0; - *content_len = off; - } - else - { - if (i > o->size) - { - o->error = OHTTP; - return 0; - } - else if (i == o->size) - { - *content_buf = 0; - *content_len = 0; - } - else - { - *content_len = o->size - i; - *content_buf = (char*) odr_malloc(o, *content_len + 1); - memcpy(*content_buf, o->buf + i, *content_len); - (*content_buf)[*content_len] = '\0'; - } - } - return 1; -} - -void z_HTTP_header_add_content_type(ODR o, Z_HTTP_Header **hp, - const char *content_type, - const char *charset) -{ - const char *l = "Content-Type"; - if (charset) - { - char *ctype = (char *) - odr_malloc(o, strlen(content_type)+strlen(charset) + 15); - sprintf(ctype, "%s; charset=%s", content_type, charset); - z_HTTP_header_add(o, hp, l, ctype); - } - else - z_HTTP_header_add(o, hp, l, content_type); - -} - -/* - * HTTP Basic authentication is described at: - * http://tools.ietf.org/html/rfc1945#section-11.1 - */ -void z_HTTP_header_add_basic_auth(ODR o, Z_HTTP_Header **hp, - const char *username, const char *password) -{ - char *tmp, *buf; - int len; - - if (username == 0) - return; - - len = strlen(username) + strlen(password); - tmp = odr_malloc(o, len+2); - sprintf(tmp, "%s:%s", username, password); - buf = odr_malloc(o, (len+1) * 8/6 + 12); - strcpy(buf, "Basic "); - yaz_base64encode(tmp, &buf[strlen(buf)]); - z_HTTP_header_add(o, hp, "Authorization", buf); -} - - -void z_HTTP_header_add(ODR o, Z_HTTP_Header **hp, const char *n, - const char *v) -{ - while (*hp) - hp = &(*hp)->next; - *hp = (Z_HTTP_Header *) odr_malloc(o, sizeof(**hp)); - (*hp)->name = odr_strdup(o, n); - (*hp)->value = odr_strdup(o, v); - (*hp)->next = 0; -} - -const char *z_HTTP_header_lookup(const Z_HTTP_Header *hp, const char *n) -{ - for (; hp; hp = hp->next) - if (!yaz_matchstr(hp->name, n)) - return hp->value; - return 0; -} - - -Z_GDU *z_get_HTTP_Request(ODR o) -{ - Z_GDU *p = (Z_GDU *) odr_malloc(o, sizeof(*p)); - Z_HTTP_Request *hreq; - - p->which = Z_GDU_HTTP_Request; - p->u.HTTP_Request = (Z_HTTP_Request *) odr_malloc(o, sizeof(*hreq)); - hreq = p->u.HTTP_Request; - hreq->headers = 0; - hreq->content_len = 0; - hreq->content_buf = 0; - hreq->version = "1.1"; - hreq->method = "POST"; - hreq->path = "/"; - z_HTTP_header_add(o, &hreq->headers, "User-Agent", "YAZ/" YAZ_VERSION); - return p; -} - - -Z_GDU *z_get_HTTP_Request_host_path(ODR odr, - const char *host, - const char *path) -{ - Z_GDU *p = z_get_HTTP_Request(odr); - - p->u.HTTP_Request->path = odr_strdup(odr, path); - - if (host) - { - const char *cp0 = strstr(host, "://"); - const char *cp1 = 0; - if (cp0) - cp0 = cp0+3; - else - cp0 = host; - - cp1 = strchr(cp0, '/'); - if (!cp1) - cp1 = cp0+strlen(cp0); - - if (cp0 && cp1) - { - char *h = (char*) odr_malloc(odr, cp1 - cp0 + 1); - memcpy (h, cp0, cp1 - cp0); - h[cp1-cp0] = '\0'; - z_HTTP_header_add(odr, &p->u.HTTP_Request->headers, - "Host", h); - } - } - return p; -} - - -Z_GDU *z_get_HTTP_Response(ODR o, int code) -{ - Z_GDU *p = (Z_GDU *) odr_malloc(o, sizeof(*p)); - Z_HTTP_Response *hres; - - p->which = Z_GDU_HTTP_Response; - p->u.HTTP_Response = (Z_HTTP_Response *) odr_malloc(o, sizeof(*hres)); - hres = p->u.HTTP_Response; - hres->headers = 0; - hres->content_len = 0; - hres->content_buf = 0; - hres->code = code; - hres->version = "1.1"; - z_HTTP_header_add(o, &hres->headers, "Server", - "YAZ/" YAZ_VERSION); - if (code != 200) - { - hres->content_buf = (char*) odr_malloc(o, 400); - sprintf (hres->content_buf, - "\n" - "\n" - " \n" - " YAZ " YAZ_VERSION "\n" - " \n" - " \n" - "

    YAZ " - YAZ_VERSION "

    \n" - "

    Error: %d

    \n" - "

    Description: %.50s

    \n" - " \n" - "\n", - code, z_HTTP_errmsg(code)); - hres->content_len = strlen(hres->content_buf); - z_HTTP_header_add(o, &hres->headers, "Content-Type", "text/html"); - } - return p; -} - -const char *z_HTTP_errmsg(int code) -{ - if (code == 200) - return "OK"; - else if (code == 400) - return "Bad Request"; - else if (code == 404) - return "Not Found"; - else if (code == 405) - return "Method Not Allowed"; - else if (code == 500) - return "Internal Error"; - else - return "Unknown Error"; -} - -int yaz_decode_http_response(ODR o, Z_HTTP_Response **hr_p) -{ - int i, po; - Z_HTTP_Response *hr = (Z_HTTP_Response *) odr_malloc(o, sizeof(*hr)); - - *hr_p = hr; - hr->content_buf = 0; - hr->content_len = 0; - - po = i = 5; - while (i < o->size-2 && !strchr(" \r\n", o->buf[i])) - i++; - hr->version = (char *) odr_malloc(o, i - po + 1); - if (i - po) - memcpy(hr->version, o->buf + po, i - po); - hr->version[i-po] = 0; - if (o->buf[i] != ' ') - { - o->error = OHTTP; - return 0; - } - i++; - hr->code = 0; - while (i < o->size-2 && o->buf[i] >= '0' && o->buf[i] <= '9') - { - hr->code = hr->code*10 + (o->buf[i] - '0'); - i++; - } - while (i < o->size-1 && o->buf[i] != '\n') - i++; - return decode_headers_content(o, i, &hr->headers, - &hr->content_buf, &hr->content_len); -} - -int yaz_decode_http_request(ODR o, Z_HTTP_Request **hr_p) -{ - int i, po; - Z_HTTP_Request *hr = (Z_HTTP_Request *) odr_malloc(o, sizeof(*hr)); - - *hr_p = hr; - - /* method .. */ - for (i = 0; o->buf[i] != ' '; i++) - if (i >= o->size-5 || i > 30) - { - o->error = OHTTP; - return 0; - } - hr->method = (char *) odr_malloc(o, i+1); - memcpy (hr->method, o->buf, i); - hr->method[i] = '\0'; - /* path */ - po = i+1; - for (i = po; o->buf[i] != ' '; i++) - if (i >= o->size-5) - { - o->error = OHTTP; - return 0; - } - hr->path = (char *) odr_malloc(o, i - po + 1); - memcpy (hr->path, o->buf+po, i - po); - hr->path[i - po] = '\0'; - /* HTTP version */ - i++; - if (i > o->size-5 || memcmp(o->buf+i, "HTTP/", 5)) - { - o->error = OHTTP; - return 0; - } - i+= 5; - po = i; - while (i < o->size && !strchr("\r\n", o->buf[i])) - i++; - hr->version = (char *) odr_malloc(o, i - po + 1); - memcpy(hr->version, o->buf + po, i - po); - hr->version[i - po] = '\0'; - /* headers */ - if (i < o->size-1 && o->buf[i] == '\r') - i++; - if (o->buf[i] != '\n') - { - o->error = OHTTP; - return 0; - } - return decode_headers_content(o, i, &hr->headers, - &hr->content_buf, &hr->content_len); -} - -int yaz_encode_http_response(ODR o, Z_HTTP_Response *hr) -{ - char sbuf[80]; - Z_HTTP_Header *h; - int top0 = o->top; - - sprintf(sbuf, "HTTP/%s %d %s\r\n", hr->version, - hr->code, - z_HTTP_errmsg(hr->code)); - odr_write(o, (unsigned char *) sbuf, strlen(sbuf)); - /* apply Content-Length if not already applied */ - if (!z_HTTP_header_lookup(hr->headers, - "Content-Length")) - { - char lstr[60]; - sprintf(lstr, "Content-Length: %d\r\n", - hr->content_len); - odr_write(o, (unsigned char *) lstr, strlen(lstr)); - } - for (h = hr->headers; h; h = h->next) - { - odr_write(o, (unsigned char *) h->name, strlen(h->name)); - odr_write(o, (unsigned char *) ": ", 2); - odr_write(o, (unsigned char *) h->value, strlen(h->value)); - odr_write(o, (unsigned char *) "\r\n", 2); - } - odr_write(o, (unsigned char *) "\r\n", 2); - if (hr->content_buf) - odr_write(o, (unsigned char *) - hr->content_buf, - hr->content_len); - if (o->direction == ODR_PRINT) - { - odr_printf(o, "-- HTTP response:\n%.*s\n", o->top - top0, - o->buf + top0); - odr_printf(o, "-- \n"); - } - return 1; -} - -int yaz_encode_http_request(ODR o, Z_HTTP_Request *hr) -{ - Z_HTTP_Header *h; - int top0 = o->top; - - odr_write(o, (unsigned char *) hr->method, - strlen(hr->method)); - odr_write(o, (unsigned char *) " ", 1); - odr_write(o, (unsigned char *) hr->path, - strlen(hr->path)); - odr_write(o, (unsigned char *) " HTTP/", 6); - odr_write(o, (unsigned char *) hr->version, - strlen(hr->version)); - odr_write(o, (unsigned char *) "\r\n", 2); - if (hr->content_len && - !z_HTTP_header_lookup(hr->headers, - "Content-Length")) - { - char lstr[60]; - sprintf(lstr, "Content-Length: %d\r\n", - hr->content_len); - odr_write(o, (unsigned char *) lstr, strlen(lstr)); - } - for (h = hr->headers; h; h = h->next) - { - odr_write(o, (unsigned char *) h->name, strlen(h->name)); - odr_write(o, (unsigned char *) ": ", 2); - odr_write(o, (unsigned char *) h->value, strlen(h->value)); - odr_write(o, (unsigned char *) "\r\n", 2); - } - odr_write(o, (unsigned char *) "\r\n", 2); - if (hr->content_buf) - odr_write(o, (unsigned char *) - hr->content_buf, - hr->content_len); - if (o->direction == ODR_PRINT) - { - odr_printf(o, "-- HTTP request:\n%.*s\n", o->top - top0, - o->buf + top0); - odr_printf(o, "-- \n"); - } - return 1; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ill-core.c b/dependencies/yaz_3.0.14/src/ill-core.c deleted file mode 100644 index dba79c7..0000000 --- a/dependencies/yaz_3.0.14/src/ill-core.c +++ /dev/null @@ -1,1790 +0,0 @@ -/** \file ill-core.c - \brief ASN.1 Module ISO-10161-ILL-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int ill_APDU (ODR o, ILL_APDU **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, ILL_APDU_ILL_Request, - (Odr_fun) ill_Request, "illRequest"}, - {-1, -1, -1, ILL_APDU_Forward_Notification, - (Odr_fun) ill_Forward_Notification, "Forward_Notification"}, - {-1, -1, -1, ILL_APDU_Shipped, - (Odr_fun) ill_Shipped, "Shipped"}, - {-1, -1, -1, ILL_APDU_ILL_Answer, - (Odr_fun) ill_Answer, "illAnswer"}, - {-1, -1, -1, ILL_APDU_Conditional_Reply, - (Odr_fun) ill_Conditional_Reply, "Conditional_Reply"}, - {-1, -1, -1, ILL_APDU_Cancel, - (Odr_fun) ill_Cancel, "Cancel"}, - {-1, -1, -1, ILL_APDU_Cancel_Reply, - (Odr_fun) ill_Cancel_Reply, "Cancel_Reply"}, - {-1, -1, -1, ILL_APDU_Received, - (Odr_fun) ill_Received, "Received"}, - {-1, -1, -1, ILL_APDU_Recall, - (Odr_fun) ill_Recall, "Recall"}, - {-1, -1, -1, ILL_APDU_Returned, - (Odr_fun) ill_Returned, "Returned"}, - {-1, -1, -1, ILL_APDU_Checked_In, - (Odr_fun) ill_Checked_In, "Checked_In"}, - {-1, -1, -1, ILL_APDU_Overdue, - (Odr_fun) ill_Overdue, "Overdue"}, - {-1, -1, -1, ILL_APDU_Renew, - (Odr_fun) ill_Renew, "Renew"}, - {-1, -1, -1, ILL_APDU_Renew_Answer, - (Odr_fun) ill_Renew_Answer, "Renew_Answer"}, - {-1, -1, -1, ILL_APDU_Lost, - (Odr_fun) ill_Lost, "Lost"}, - {-1, -1, -1, ILL_APDU_Damaged, - (Odr_fun) ill_Damaged, "Damaged"}, - {-1, -1, -1, ILL_APDU_Message, - (Odr_fun) ill_Message, "Message"}, - {-1, -1, -1, ILL_APDU_Status_Query, - (Odr_fun) ill_Status_Query, "Status_Query"}, - {-1, -1, -1, ILL_APDU_Status_Or_Error_Report, - (Odr_fun) ill_Status_Or_Error_Report, "Status_Or_Error_Report"}, - {-1, -1, -1, ILL_APDU_Expired, - (Odr_fun) ill_Expired, "Expired"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Request (ODR o, ILL_Request **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 1, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Request *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_Transaction_Type, - &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") && - odr_implicit_tag (o, ill_Delivery_Address, - &(*p)->delivery_address, ODR_CONTEXT, 6, 1, "delivery_address") && - ill_Delivery_Service(o, &(*p)->delivery_service, 1, "delivery_service") && - odr_implicit_tag (o, ill_Delivery_Address, - &(*p)->billing_address, ODR_CONTEXT, 8, 1, "billing_address") && - odr_implicit_settag (o, ODR_CONTEXT, 9) && - odr_sequence_of(o, (Odr_fun) ill_Service_Type, &(*p)->iLL_service_type, - &(*p)->num_iLL_service_type, "iLL_service_type") && - odr_explicit_tag (o, odr_external, - &(*p)->responder_specific_service, ODR_CONTEXT, 10, 1, "responder_specific_service") && - odr_implicit_tag (o, ill_Requester_Optional_Messages_Type, - &(*p)->requester_optional_messages, ODR_CONTEXT, 11, 0, "requester_optional_messages") && - odr_implicit_tag (o, ill_Search_Type, - &(*p)->search_type, ODR_CONTEXT, 12, 1, "search_type") && - odr_implicit_settag (o, ODR_CONTEXT, 13) && - (odr_sequence_of(o, (Odr_fun) ill_Supply_Medium_Info_Type, &(*p)->supply_medium_info_type, - &(*p)->num_supply_medium_info_type, "supply_medium_info_type") || odr_ok(o)) && - odr_implicit_tag (o, ill_Place_On_Hold_Type, - &(*p)->place_on_hold, ODR_CONTEXT, 14, 0, "place_on_hold") && - odr_implicit_tag (o, ill_Client_Id, - &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") && - odr_implicit_tag (o, ill_Item_Id, - &(*p)->item_id, ODR_CONTEXT, 16, 0, "item_id") && - odr_implicit_tag (o, ill_Supplemental_Item_Description, - &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && - odr_implicit_tag (o, ill_Cost_Info_Type, - &(*p)->cost_info_type, ODR_CONTEXT, 18, 1, "cost_info_type") && - odr_explicit_tag (o, ill_String, - &(*p)->copyright_compliance, ODR_CONTEXT, 19, 1, "copyright_compliance") && - odr_implicit_tag (o, ill_Third_Party_Info_Type, - &(*p)->third_party_info_type, ODR_CONTEXT, 20, 1, "third_party_info_type") && - odr_implicit_tag (o, odr_bool, - &(*p)->retry_flag, ODR_CONTEXT, 21, 0, "retry_flag") && - odr_implicit_tag (o, odr_bool, - &(*p)->forward_flag, ODR_CONTEXT, 22, 0, "forward_flag") && - odr_explicit_tag (o, ill_String, - &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && - odr_explicit_tag (o, ill_String, - &(*p)->forward_note, ODR_CONTEXT, 47, 1, "forward_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->iLL_request_extensions, - &(*p)->num_iLL_request_extensions, "iLL_request_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Forward_Notification (ODR o, ILL_Forward_Notification **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 2, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Forward_Notification *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 0, "responder_id") && - odr_implicit_tag (o, ill_System_Address, - &(*p)->responder_address, ODR_CONTEXT, 24, 1, "responder_address") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->intermediary_id, ODR_CONTEXT, 25, 0, "intermediary_id") && - odr_explicit_tag (o, ill_String, - &(*p)->notification_note, ODR_CONTEXT, 48, 1, "notification_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->forward_notification_extensions, - &(*p)->num_forward_notification_extensions, "forward_notification_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Shipped (ODR o, ILL_Shipped **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 3, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Shipped *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_System_Address, - &(*p)->responder_address, ODR_CONTEXT, 24, 1, "responder_address") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->intermediary_id, ODR_CONTEXT, 25, 1, "intermediary_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->supplier_id, ODR_CONTEXT, 26, 1, "supplier_id") && - odr_implicit_tag (o, ill_Client_Id, - &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") && - odr_implicit_tag (o, ill_Transaction_Type, - &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") && - odr_implicit_tag (o, ill_Supplemental_Item_Description, - &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && - odr_implicit_tag (o, ill_Shipped_Service_Type, - &(*p)->shipped_service_type, ODR_CONTEXT, 27, 0, "shipped_service_type") && - odr_implicit_tag (o, ill_Responder_Optional_Messages_Type, - &(*p)->responder_optional_messages, ODR_CONTEXT, 28, 1, "responder_optional_messages") && - odr_implicit_tag (o, ill_Supply_Details, - &(*p)->supply_details, ODR_CONTEXT, 29, 0, "supply_details") && - odr_implicit_tag (o, ill_Postal_Address, - &(*p)->return_to_address, ODR_CONTEXT, 30, 1, "return_to_address") && - odr_explicit_tag (o, ill_String, - &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->shipped_extensions, - &(*p)->num_shipped_extensions, "shipped_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Answer (ODR o, ILL_Answer **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Answer_conditional_results, - (Odr_fun) ill_Conditional_Results, "conditional_results"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, ILL_Answer_retry_results, - (Odr_fun) ill_Retry_Results, "retry_results"}, - {ODR_EXPLICIT, ODR_CONTEXT, 3, ILL_Answer_unfilled_results, - (Odr_fun) ill_Unfilled_Results, "unfilled_results"}, - {ODR_EXPLICIT, ODR_CONTEXT, 4, ILL_Answer_locations_results, - (Odr_fun) ill_Locations_Results, "locations_results"}, - {ODR_EXPLICIT, ODR_CONTEXT, 5, ILL_Answer_will_supply_results, - (Odr_fun) ill_Will_Supply_Results, "will_supply_results"}, - {ODR_EXPLICIT, ODR_CONTEXT, 6, ILL_Answer_hold_placed_results, - (Odr_fun) ill_Hold_Placed_Results, "hold_placed_results"}, - {ODR_EXPLICIT, ODR_CONTEXT, 7, ILL_Answer_estimate_results, - (Odr_fun) ill_Estimate_Results, "estimate_results"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 4, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Answer *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_Transaction_Results, - &(*p)->transaction_results, ODR_CONTEXT, 31, 0, "transaction_results") && - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 32, "results_explanation") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_explicit_tag (o, odr_external, - &(*p)->responder_specific_results, ODR_CONTEXT, 33, 1, "responder_specific_results") && - odr_implicit_tag (o, ill_Supplemental_Item_Description, - &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && - odr_implicit_tag (o, ill_Send_To_List_Type, - &(*p)->send_to_list, ODR_CONTEXT, 23, 1, "send_to_list") && - odr_implicit_tag (o, ill_Already_Tried_List_Type, - &(*p)->already_tried_list, ODR_CONTEXT, 34, 1, "already_tried_list") && - odr_implicit_tag (o, ill_Responder_Optional_Messages_Type, - &(*p)->responder_optional_messages, ODR_CONTEXT, 28, 1, "responder_optional_messages") && - odr_explicit_tag (o, ill_String, - &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->ill_answer_extensions, - &(*p)->num_ill_answer_extensions, "ill_answer_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Conditional_Reply (ODR o, ILL_Conditional_Reply **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 5, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Conditional_Reply *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, odr_bool, - &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") && - odr_explicit_tag (o, ill_String, - &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->conditional_reply_extensions, - &(*p)->num_conditional_reply_extensions, "conditional_reply_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Cancel (ODR o, ILL_Cancel **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 6, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Cancel *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_explicit_tag (o, ill_String, - &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->cancel_extensions, - &(*p)->num_cancel_extensions, "cancel_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Cancel_Reply (ODR o, ILL_Cancel_Reply **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 7, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Cancel_Reply *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, odr_bool, - &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") && - odr_explicit_tag (o, ill_String, - &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->cancel_reply_extensions, - &(*p)->num_cancel_reply_extensions, "cancel_reply_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Received (ODR o, ILL_Received **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 8, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Received *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->supplier_id, ODR_CONTEXT, 26, 1, "supplier_id") && - odr_implicit_tag (o, ill_Supplemental_Item_Description, - &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_received, ODR_CONTEXT, 36, 0, "date_received") && - odr_implicit_tag (o, ill_Shipped_Service_Type, - &(*p)->shipped_service_type, ODR_CONTEXT, 27, 0, "shipped_service_type") && - odr_explicit_tag (o, ill_String, - &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->received_extensions, - &(*p)->num_received_extensions, "received_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Recall (ODR o, ILL_Recall **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 9, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Recall *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_explicit_tag (o, ill_String, - &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->recall_extensions, - &(*p)->num_recall_extensions, "recall_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Returned (ODR o, ILL_Returned **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 10, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Returned *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_Supplemental_Item_Description, - &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_returned, ODR_CONTEXT, 37, 0, "date_returned") && - odr_explicit_tag (o, ill_Transportation_Mode, - &(*p)->returned_via, ODR_CONTEXT, 38, 1, "returned_via") && - odr_implicit_tag (o, ill_Amount, - &(*p)->insured_for, ODR_CONTEXT, 39, 1, "insured_for") && - odr_explicit_tag (o, ill_String, - &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->returned_extensions, - &(*p)->num_returned_extensions, "returned_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Checked_In (ODR o, ILL_Checked_In **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 11, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Checked_In *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_checked_in, ODR_CONTEXT, 40, 0, "date_checked_in") && - odr_explicit_tag (o, ill_String, - &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->checked_in_extensions, - &(*p)->num_checked_in_extensions, "checked_in_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Overdue_ExtensionS (ODR o, ILL_Overdue_ExtensionS **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) ill_Extension, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Overdue (ODR o, ILL_Overdue **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 12, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Overdue *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_Date_Due, - &(*p)->date_due, ODR_CONTEXT, 41, 0, "date_due") && - odr_explicit_tag (o, ill_String, - &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && - odr_explicit_tag (o, ill_Overdue_ExtensionS, - &(*p)->overdue_extensions, ODR_CONTEXT, 49, 1, "overdue_extensions") && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Renew (ODR o, ILL_Renew **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 13, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Renew *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->desired_due_date, ODR_CONTEXT, 42, 1, "desired_due_date") && - odr_explicit_tag (o, ill_String, - &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->renew_extensions, - &(*p)->num_renew_extensions, "renew_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Renew_Answer (ODR o, ILL_Renew_Answer **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 14, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Renew_Answer *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, odr_bool, - &(*p)->answer, ODR_CONTEXT, 35, 0, "answer") && - odr_implicit_tag (o, ill_Date_Due, - &(*p)->date_due, ODR_CONTEXT, 41, 1, "date_due") && - odr_explicit_tag (o, ill_String, - &(*p)->responder_note, ODR_CONTEXT, 46, 1, "responder_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->renew_answer_extensions, - &(*p)->num_renew_answer_extensions, "renew_answer_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Lost (ODR o, ILL_Lost **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 15, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Lost *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_explicit_tag (o, ill_String, - &(*p)->note, ODR_CONTEXT, 46, 1, "note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->lost_extensions, - &(*p)->num_lost_extensions, "lost_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Damaged (ODR o, ILL_Damaged **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 16, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Damaged *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_Damaged_Details, - &(*p)->damaged_details, ODR_CONTEXT, 5, 1, "damaged_details") && - odr_explicit_tag (o, ill_String, - &(*p)->note, ODR_CONTEXT, 46, 1, "note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->damaged_extensions, - &(*p)->num_damaged_extensions, "damaged_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Message (ODR o, ILL_Message **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 17, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Message *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_explicit_tag (o, ill_String, - &(*p)->note, ODR_CONTEXT, 46, 0, "note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->message_extensions, - &(*p)->num_message_extensions, "message_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Status_Query (ODR o, ILL_Status_Query **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 18, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Status_Query *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_explicit_tag (o, ill_String, - &(*p)->note, ODR_CONTEXT, 46, 1, "note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->status_query_extensions, - &(*p)->num_status_query_extensions, "status_query_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Status_Or_Error_Report (ODR o, ILL_Status_Or_Error_Report **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 19, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Status_Or_Error_Report *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_Reason_No_Report, - &(*p)->reason_no_report, ODR_CONTEXT, 43, 1, "reason_no_report") && - odr_implicit_tag (o, ill_Status_Report, - &(*p)->status_report, ODR_CONTEXT, 44, 1, "status_report") && - odr_implicit_tag (o, ill_Error_Report, - &(*p)->error_report, ODR_CONTEXT, 45, 1, "error_report") && - odr_explicit_tag (o, ill_String, - &(*p)->note, ODR_CONTEXT, 46, 1, "note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->status_or_error_report_extensions, - &(*p)->num_status_or_error_report_extensions, "status_or_error_report_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Expired (ODR o, ILL_Expired **p, int opt, const char *name) -{ - if (!odr_constructed_begin (o, p, ODR_APPLICATION, 20, name)) - return odr_missing(o, opt, name); - if (o->direction == ODR_DECODE) - *p = (ILL_Expired *) odr_malloc (o, sizeof(**p)); - if (!odr_sequence_begin (o, p, sizeof(**p), 0)) - { - if(o->direction == ODR_DECODE) - *p = 0; - return 0; - } - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 0, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 0, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->expired_extensions, - &(*p)->num_expired_extensions, "expired_extensions") || odr_ok(o)) && - odr_sequence_end (o) && - odr_constructed_end (o); -} - -int ill_Account_Number (ODR o, ILL_Account_Number **p, int opt, const char *name) -{ - return ill_String (o, p, opt, name); -} - -int ill_Already_Forwarded (ODR o, ILL_Already_Forwarded **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 0, 0, "responder_id") && - odr_implicit_tag (o, ill_System_Address, - &(*p)->responder_address, ODR_CONTEXT, 1, 1, "responder_address") && - odr_sequence_end (o); -} - -int ill_Already_Tried_List_Type (ODR o, ILL_Already_Tried_List_Type **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) ill_System_Id, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Amount (ODR o, ILL_Amount **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_visiblestring, - &(*p)->currency_code, ODR_CONTEXT, 0, 1, "currency_code") && - odr_implicit_tag (o, ill_AmountString, - &(*p)->monetary_value, ODR_CONTEXT, 1, 0, "monetary_value") && - odr_sequence_end (o); -} - -int ill_AmountString (ODR o, ILL_AmountString **p, int opt, const char *name) -{ - return odr_visiblestring (o, p, opt, name); -} - -int ill_Client_Id (ODR o, ILL_Client_Id **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_String, - &(*p)->client_name, ODR_CONTEXT, 0, 1, "client_name") && - odr_explicit_tag (o, ill_String, - &(*p)->client_status, ODR_CONTEXT, 1, 1, "client_status") && - odr_explicit_tag (o, ill_String, - &(*p)->client_identifier, ODR_CONTEXT, 2, 1, "client_identifier") && - odr_sequence_end (o); -} - -int ill_Conditional_Results (ODR o, ILL_Conditional_Results **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_enum, - &(*p)->conditions, ODR_CONTEXT, 0, 0, "conditions") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_for_reply, ODR_CONTEXT, 1, 1, "date_for_reply") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, - &(*p)->num_locations, "locations") || odr_ok(o)) && - ill_Delivery_Service(o, &(*p)->proposed_delivery_service, 1, "proposed_delivery_service") && - odr_sequence_end (o); -} - -int ill_Cost_Info_Type (ODR o, ILL_Cost_Info_Type **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_Account_Number, - &(*p)->account_number, ODR_CONTEXT, 0, 1, "account_number") && - odr_implicit_tag (o, ill_Amount, - &(*p)->maximum_cost, ODR_CONTEXT, 1, 1, "maximum_cost") && - odr_implicit_tag (o, odr_bool, - &(*p)->reciprocal_agreement, ODR_CONTEXT, 2, 0, "reciprocal_agreement") && - odr_implicit_tag (o, odr_bool, - &(*p)->will_pay_fee, ODR_CONTEXT, 3, 0, "will_pay_fee") && - odr_implicit_tag (o, odr_bool, - &(*p)->payment_provided, ODR_CONTEXT, 4, 0, "payment_provided") && - odr_sequence_end (o); -} - -int ill_Current_State (ODR o, ILL_Current_State **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Damaged_DetailsSpecific_units (ODR o, ILL_Damaged_DetailsSpecific_units **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) odr_integer, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Damaged_Details (ODR o, ILL_Damaged_Details **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Damaged_Details_complete_document, - (Odr_fun) odr_null, "complete_document"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, ILL_Damaged_Details_specific_units, - (Odr_fun) ill_Damaged_DetailsSpecific_units, "specific_units"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->document_type_id, ODR_CONTEXT, 0, 1, "document_type_id") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_sequence_end (o); -} - -int ill_Date_Due (ODR o, ILL_Date_Due **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_due_field, ODR_CONTEXT, 0, 0, "date_due_field") && - odr_implicit_tag (o, odr_bool, - &(*p)->renewable, ODR_CONTEXT, 1, 0, "renewable") && - odr_sequence_end (o); -} - -int ill_Delivery_Address (ODR o, ILL_Delivery_Address **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_Postal_Address, - &(*p)->postal_address, ODR_CONTEXT, 0, 1, "postal_address") && - odr_implicit_tag (o, ill_System_Address, - &(*p)->electronic_address, ODR_CONTEXT, 1, 1, "electronic_address") && - odr_sequence_end (o); -} - -int ill_Delivery_ServiceElectronic_delivery (ODR o, ILL_Delivery_ServiceElectronic_delivery **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) ill_Electronic_Delivery_Service, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Delivery_Service (ODR o, ILL_Delivery_Service **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 7, ILL_Delivery_Service_physical_delivery, - (Odr_fun) ill_Transportation_Mode, "physical_delivery"}, - {ODR_IMPLICIT, ODR_CONTEXT, 50, ILL_Delivery_Service_electronic_delivery, - (Odr_fun) ill_Delivery_ServiceElectronic_delivery, "electronic_delivery"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Electronic_Delivery_Service_0 (ODR o, ILL_Electronic_Delivery_Service_0 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->e_delivery_mode, ODR_CONTEXT, 0, 0, "e_delivery_mode") && - odr_explicit_tag (o, odr_any, - &(*p)->e_delivery_parameters, ODR_CONTEXT, 1, 0, "e_delivery_parameters") && - odr_sequence_end (o); -} - -int ill_Electronic_Delivery_Service_1 (ODR o, ILL_Electronic_Delivery_Service_1 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->document_type_id, ODR_CONTEXT, 2, 0, "document_type_id") && - odr_explicit_tag (o, odr_any, - &(*p)->document_type_parameters, ODR_CONTEXT, 3, 0, "document_type_parameters") && - odr_sequence_end (o); -} - -int ill_Electronic_Delivery_Service (ODR o, ILL_Electronic_Delivery_Service **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_Electronic_Delivery_Service_e_delivery_address, - (Odr_fun) ill_System_Address, "e_delivery_address"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Electronic_Delivery_Service_e_delivery_id, - (Odr_fun) ill_System_Id, "e_delivery_id"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_Electronic_Delivery_Service_0, - &(*p)->e_delivery_service, ODR_CONTEXT, 0, 1, "e_delivery_service") && - odr_implicit_tag (o, ill_Electronic_Delivery_Service_1, - &(*p)->document_type, ODR_CONTEXT, 1, 1, "document_type") && - odr_explicit_tag (o, ill_String, - &(*p)->e_delivery_description, ODR_CONTEXT, 4, 1, "e_delivery_description") && - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "e_delivery_details") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_explicit_tag (o, ill_String, - &(*p)->name_or_code, ODR_CONTEXT, 6, 1, "name_or_code") && - odr_implicit_tag (o, ill_ISO_Time, - &(*p)->delivery_time, ODR_CONTEXT, 7, 1, "delivery_time") && - odr_sequence_end (o); -} - -int ill_Error_Report (ODR o, ILL_Error_Report **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_String, - &(*p)->correlation_information, ODR_CONTEXT, 0, 0, "correlation_information") && - odr_implicit_tag (o, ill_Report_Source, - &(*p)->report_source, ODR_CONTEXT, 1, 0, "report_source") && - odr_explicit_tag (o, ill_User_Error_Report, - &(*p)->user_error_report, ODR_CONTEXT, 2, 1, "user_error_report") && - odr_explicit_tag (o, ill_Provider_Error_Report, - &(*p)->provider_error_report, ODR_CONTEXT, 3, 1, "provider_error_report") && - odr_sequence_end (o); -} - -int ill_Estimate_Results (ODR o, ILL_Estimate_Results **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_String, - &(*p)->cost_estimate, ODR_CONTEXT, 0, 0, "cost_estimate") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, - &(*p)->num_locations, "locations") || odr_ok(o)) && - odr_sequence_end (o); -} - -int ill_Extension (ODR o, ILL_Extension **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->identifier, ODR_CONTEXT, 0, 0, "identifier") && - odr_implicit_tag (o, odr_bool, - &(*p)->critical, ODR_CONTEXT, 1, 0, "critical") && - odr_explicit_tag (o, odr_any, - &(*p)->item, ODR_CONTEXT, 2, 0, "item") && - odr_sequence_end (o); -} - -int ill_General_Problem (ODR o, ILL_General_Problem **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_History_Report (ODR o, ILL_History_Report **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_requested, ODR_CONTEXT, 0, 1, "date_requested") && - odr_explicit_tag (o, ill_String, - &(*p)->author, ODR_CONTEXT, 1, 1, "author") && - odr_explicit_tag (o, ill_String, - &(*p)->title, ODR_CONTEXT, 2, 1, "title") && - odr_explicit_tag (o, ill_String, - &(*p)->author_of_article, ODR_CONTEXT, 3, 1, "author_of_article") && - odr_explicit_tag (o, ill_String, - &(*p)->title_of_article, ODR_CONTEXT, 4, 1, "title_of_article") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_of_last_transition, ODR_CONTEXT, 5, 0, "date_of_last_transition") && - odr_implicit_tag (o, odr_enum, - &(*p)->most_recent_service, ODR_CONTEXT, 6, 0, "most_recent_service") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_of_most_recent_service, ODR_CONTEXT, 7, 0, "date_of_most_recent_service") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->initiator_of_most_recent_service, ODR_CONTEXT, 8, 0, "initiator_of_most_recent_service") && - odr_implicit_tag (o, ill_Shipped_Service_Type, - &(*p)->shipped_service_type, ODR_CONTEXT, 9, 1, "shipped_service_type") && - odr_implicit_tag (o, ill_Transaction_Results, - &(*p)->transaction_results, ODR_CONTEXT, 10, 1, "transaction_results") && - odr_explicit_tag (o, ill_String, - &(*p)->most_recent_service_note, ODR_CONTEXT, 11, 1, "most_recent_service_note") && - odr_sequence_end (o); -} - -int ill_Hold_Placed_Results (ODR o, ILL_Hold_Placed_Results **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->estimated_date_available, ODR_CONTEXT, 0, 0, "estimated_date_available") && - odr_implicit_tag (o, ill_Medium_Type, - &(*p)->hold_placed_medium_type, ODR_CONTEXT, 1, 1, "hold_placed_medium_type") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, - &(*p)->num_locations, "locations") || odr_ok(o)) && - odr_sequence_end (o); -} - -int ill_APDU_Type (ODR o, ILL_APDU_Type **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Service_Type (ODR o, ILL_Service_Type **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_String (ODR o, ILL_String **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, ILL_String_GeneralString, - (Odr_fun) odr_generalstring, "GeneralString"}, - {-1, -1, -1, ILL_String_EDIFACTString, - (Odr_fun) ill_EDIFACTString, "EDIFACTString"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Intermediary_Problem (ODR o, ILL_Intermediary_Problem **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_ISO_Date (ODR o, ILL_ISO_Date **p, int opt, const char *name) -{ - return odr_visiblestring (o, p, opt, name); -} - -int ill_ISO_Time (ODR o, ILL_ISO_Time **p, int opt, const char *name) -{ - return odr_visiblestring (o, p, opt, name); -} - -int ill_Item_Id (ODR o, ILL_Item_Id **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_enum, - &(*p)->item_type, ODR_CONTEXT, 0, 1, "item_type") && - odr_implicit_tag (o, ill_Medium_Type, - &(*p)->held_medium_type, ODR_CONTEXT, 1, 1, "held_medium_type") && - odr_explicit_tag (o, ill_String, - &(*p)->call_number, ODR_CONTEXT, 2, 1, "call_number") && - odr_explicit_tag (o, ill_String, - &(*p)->author, ODR_CONTEXT, 3, 1, "author") && - odr_explicit_tag (o, ill_String, - &(*p)->title, ODR_CONTEXT, 4, 1, "title") && - odr_explicit_tag (o, ill_String, - &(*p)->sub_title, ODR_CONTEXT, 5, 1, "sub_title") && - odr_explicit_tag (o, ill_String, - &(*p)->sponsoring_body, ODR_CONTEXT, 6, 1, "sponsoring_body") && - odr_explicit_tag (o, ill_String, - &(*p)->place_of_publication, ODR_CONTEXT, 7, 1, "place_of_publication") && - odr_explicit_tag (o, ill_String, - &(*p)->publisher, ODR_CONTEXT, 8, 1, "publisher") && - odr_explicit_tag (o, ill_String, - &(*p)->series_title_number, ODR_CONTEXT, 9, 1, "series_title_number") && - odr_explicit_tag (o, ill_String, - &(*p)->volume_issue, ODR_CONTEXT, 10, 1, "volume_issue") && - odr_explicit_tag (o, ill_String, - &(*p)->edition, ODR_CONTEXT, 11, 1, "edition") && - odr_explicit_tag (o, ill_String, - &(*p)->publication_date, ODR_CONTEXT, 12, 1, "publication_date") && - odr_explicit_tag (o, ill_String, - &(*p)->publication_date_of_component, ODR_CONTEXT, 13, 1, "publication_date_of_component") && - odr_explicit_tag (o, ill_String, - &(*p)->author_of_article, ODR_CONTEXT, 14, 1, "author_of_article") && - odr_explicit_tag (o, ill_String, - &(*p)->title_of_article, ODR_CONTEXT, 15, 1, "title_of_article") && - odr_explicit_tag (o, ill_String, - &(*p)->pagination, ODR_CONTEXT, 16, 1, "pagination") && - odr_explicit_tag (o, odr_external, - &(*p)->national_bibliography_no, ODR_CONTEXT, 17, 1, "national_bibliography_no") && - odr_explicit_tag (o, ill_String, - &(*p)->iSBN, ODR_CONTEXT, 18, 1, "iSBN") && - odr_explicit_tag (o, ill_String, - &(*p)->iSSN, ODR_CONTEXT, 19, 1, "iSSN") && - odr_explicit_tag (o, odr_external, - &(*p)->system_no, ODR_CONTEXT, 20, 1, "system_no") && - odr_explicit_tag (o, ill_String, - &(*p)->additional_no_letters, ODR_CONTEXT, 21, 1, "additional_no_letters") && - odr_explicit_tag (o, ill_String, - &(*p)->verification_reference_source, ODR_CONTEXT, 22, 1, "verification_reference_source") && - odr_sequence_end (o); -} - -int ill_Location_Info (ODR o, ILL_Location_Info **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_System_Id, - &(*p)->location_id, ODR_CONTEXT, 0, 0, "location_id") && - odr_implicit_tag (o, ill_System_Address, - &(*p)->location_address, ODR_CONTEXT, 1, 1, "location_address") && - odr_explicit_tag (o, ill_String, - &(*p)->location_note, ODR_CONTEXT, 2, 1, "location_note") && - odr_sequence_end (o); -} - -int ill_Locations_Results (ODR o, ILL_Locations_Results **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_Reason_Locs_Provided, - &(*p)->reason_locs_provided, ODR_CONTEXT, 0, 1, "reason_locs_provided") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, - &(*p)->num_locations, "locations") && - odr_sequence_end (o); -} - -int ill_Medium_Type (ODR o, ILL_Medium_Type **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Name_Of_Person_Or_Institution (ODR o, ILL_Name_Of_Person_Or_Institution **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 0, ILL_Name_Of_Person_Or_Institution_name_of_person, - (Odr_fun) ill_String, "name_of_person"}, - {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Name_Of_Person_Or_Institution_name_of_institution, - (Odr_fun) ill_String, "name_of_institution"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Person_Or_Institution_Symbol (ODR o, ILL_Person_Or_Institution_Symbol **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 0, ILL_Person_Or_Institution_Symbol_person_symbol, - (Odr_fun) ill_String, "person_symbol"}, - {ODR_EXPLICIT, ODR_CONTEXT, 1, ILL_Person_Or_Institution_Symbol_institution_symbol, - (Odr_fun) ill_String, "institution_symbol"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Place_On_Hold_Type (ODR o, ILL_Place_On_Hold_Type **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Postal_Address (ODR o, ILL_Postal_Address **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_Name_Of_Person_Or_Institution, - &(*p)->name_of_person_or_institution, ODR_CONTEXT, 0, 1, "name_of_person_or_institution") && - odr_explicit_tag (o, ill_String, - &(*p)->extended_postal_delivery_address, ODR_CONTEXT, 1, 1, "extended_postal_delivery_address") && - odr_explicit_tag (o, ill_String, - &(*p)->street_and_number, ODR_CONTEXT, 2, 1, "street_and_number") && - odr_explicit_tag (o, ill_String, - &(*p)->post_office_box, ODR_CONTEXT, 3, 1, "post_office_box") && - odr_explicit_tag (o, ill_String, - &(*p)->city, ODR_CONTEXT, 4, 1, "city") && - odr_explicit_tag (o, ill_String, - &(*p)->region, ODR_CONTEXT, 5, 1, "region") && - odr_explicit_tag (o, ill_String, - &(*p)->country, ODR_CONTEXT, 6, 1, "country") && - odr_explicit_tag (o, ill_String, - &(*p)->postal_code, ODR_CONTEXT, 7, 1, "postal_code") && - odr_sequence_end (o); -} - -int ill_Provider_Error_Report (ODR o, ILL_Provider_Error_Report **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_Provider_Error_Report_general_problem, - (Odr_fun) ill_General_Problem, "general_problem"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_Provider_Error_Report_transaction_id_problem, - (Odr_fun) ill_Transaction_Id_Problem, "transaction_id_problem"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, ILL_Provider_Error_Report_state_transition_prohibited, - (Odr_fun) ill_State_Transition_Prohibited, "state_transition_prohibited"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Reason_Locs_Provided (ODR o, ILL_Reason_Locs_Provided **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Reason_No_Report (ODR o, ILL_Reason_No_Report **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Reason_Unfilled (ODR o, ILL_Reason_Unfilled **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Report_Source (ODR o, ILL_Report_Source **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Requester_Optional_Messages_Type (ODR o, ILL_Requester_Optional_Messages_Type **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->can_send_RECEIVED, ODR_CONTEXT, 0, 0, "can_send_RECEIVED") && - odr_implicit_tag (o, odr_bool, - &(*p)->can_send_RETURNED, ODR_CONTEXT, 1, 0, "can_send_RETURNED") && - odr_implicit_tag (o, odr_enum, - &(*p)->requester_SHIPPED, ODR_CONTEXT, 2, 0, "requester_SHIPPED") && - odr_implicit_tag (o, odr_enum, - &(*p)->requester_CHECKED_IN, ODR_CONTEXT, 3, 0, "requester_CHECKED_IN") && - odr_sequence_end (o); -} - -int ill_Responder_Optional_Messages_Type (ODR o, ILL_Responder_Optional_Messages_Type **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->can_send_SHIPPED, ODR_CONTEXT, 0, 0, "can_send_SHIPPED") && - odr_implicit_tag (o, odr_bool, - &(*p)->can_send_CHECKED_IN, ODR_CONTEXT, 1, 0, "can_send_CHECKED_IN") && - odr_implicit_tag (o, odr_enum, - &(*p)->responder_RECEIVED, ODR_CONTEXT, 2, 0, "responder_RECEIVED") && - odr_implicit_tag (o, odr_enum, - &(*p)->responder_RETURNED, ODR_CONTEXT, 3, 0, "responder_RETURNED") && - odr_sequence_end (o); -} - -int ill_Retry_Results (ODR o, ILL_Retry_Results **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_enum, - &(*p)->reason_not_available, ODR_CONTEXT, 0, 1, "reason_not_available") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->retry_date, ODR_CONTEXT, 1, 1, "retry_date") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, - &(*p)->num_locations, "locations") || odr_ok(o)) && - odr_sequence_end (o); -} - -int ill_Search_Type (ODR o, ILL_Search_Type **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_String, - &(*p)->level_of_service, ODR_CONTEXT, 0, 1, "level_of_service") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->need_before_date, ODR_CONTEXT, 1, 1, "need_before_date") && - odr_implicit_tag (o, odr_enum, - &(*p)->expiry_flag, ODR_CONTEXT, 2, 0, "expiry_flag") && - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->expiry_date, ODR_CONTEXT, 3, 1, "expiry_date") && - odr_sequence_end (o); -} - -int ill_Security_Problem (ODR o, ILL_Security_Problem **p, int opt, const char *name) -{ - return ill_String (o, p, opt, name); -} - -int ill_Send_To_List_Type_s (ODR o, ILL_Send_To_List_Type_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_System_Id, - &(*p)->system_id, ODR_CONTEXT, 0, 0, "system_id") && - odr_explicit_tag (o, ill_Account_Number, - &(*p)->account_number, ODR_CONTEXT, 1, 1, "account_number") && - odr_implicit_tag (o, ill_System_Address, - &(*p)->system_address, ODR_CONTEXT, 2, 1, "system_address") && - odr_sequence_end (o); -} - -int ill_Send_To_List_Type (ODR o, ILL_Send_To_List_Type **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) ill_Send_To_List_Type_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Service_Date_this (ODR o, ILL_Service_Date_this **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date, ODR_CONTEXT, 0, 0, "date") && - odr_implicit_tag (o, ill_ISO_Time, - &(*p)->time, ODR_CONTEXT, 1, 1, "time") && - odr_sequence_end (o); -} - -int ill_Service_Date_original (ODR o, ILL_Service_Date_original **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date, ODR_CONTEXT, 0, 0, "date") && - odr_implicit_tag (o, ill_ISO_Time, - &(*p)->time, ODR_CONTEXT, 1, 1, "time") && - odr_sequence_end (o); -} - -int ill_Service_Date_Time (ODR o, ILL_Service_Date_Time **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_Service_Date_this, - &(*p)->date_time_of_this_service, ODR_CONTEXT, 0, 0, "date_time_of_this_service") && - odr_implicit_tag (o, ill_Service_Date_original, - &(*p)->date_time_of_original_service, ODR_CONTEXT, 1, 1, "date_time_of_original_service") && - odr_sequence_end (o); -} - -int ill_Shipped_Service_Type (ODR o, ILL_Shipped_Service_Type **p, int opt, const char *name) -{ - return ill_Service_Type (o, p, opt, name); -} - -int ill_State_Transition_Prohibited (ODR o, ILL_State_Transition_Prohibited **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_APDU_Type, - &(*p)->aPDU_type, ODR_CONTEXT, 0, 0, "aPDU_type") && - odr_implicit_tag (o, ill_Current_State, - &(*p)->current_state, ODR_CONTEXT, 1, 0, "current_state") && - odr_sequence_end (o); -} - -int ill_Status_Report (ODR o, ILL_Status_Report **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_History_Report, - &(*p)->user_status_report, ODR_CONTEXT, 0, 0, "user_status_report") && - odr_implicit_tag (o, ill_Current_State, - &(*p)->provider_status_report, ODR_CONTEXT, 1, 0, "provider_status_report") && - odr_sequence_end (o); -} - -int ill_Supplemental_Item_Description (ODR o, ILL_Supplemental_Item_Description **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) odr_external, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Supply_Details (ODR o, ILL_Supply_Details **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 5, ILL_Supply_Details_physical_delivery, - (Odr_fun) ill_Transportation_Mode, "physical_delivery"}, - {ODR_IMPLICIT, ODR_CONTEXT, 50, ILL_Supply_Details_electronic_delivery, - (Odr_fun) ill_Electronic_Delivery_Service, "electronic_delivery"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_ISO_Date, - &(*p)->date_shipped, ODR_CONTEXT, 0, 1, "date_shipped") && - odr_implicit_tag (o, ill_Date_Due, - &(*p)->date_due, ODR_CONTEXT, 1, 1, "date_due") && - odr_implicit_tag (o, odr_integer, - &(*p)->chargeable_units, ODR_CONTEXT, 2, 1, "chargeable_units") && - odr_implicit_tag (o, ill_Amount, - &(*p)->cost, ODR_CONTEXT, 3, 1, "cost") && - odr_implicit_tag (o, odr_enum, - &(*p)->shipped_conditions, ODR_CONTEXT, 4, 1, "shipped_conditions") && - (odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) || odr_ok(o)) && - odr_implicit_tag (o, ill_Amount, - &(*p)->insured_for, ODR_CONTEXT, 6, 1, "insured_for") && - odr_implicit_tag (o, ill_Amount, - &(*p)->return_insurance_require, ODR_CONTEXT, 7, 1, "return_insurance_require") && - odr_implicit_settag (o, ODR_CONTEXT, 8) && - (odr_sequence_of(o, (Odr_fun) ill_Units_Per_Medium_Type, &(*p)->no_of_units_per_medium, - &(*p)->num_no_of_units_per_medium, "no_of_units_per_medium") || odr_ok(o)) && - odr_sequence_end (o); -} - -int ill_Supply_Medium_Info_Type (ODR o, ILL_Supply_Medium_Info_Type **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_Supply_Medium_Type, - &(*p)->supply_medium_type, ODR_CONTEXT, 0, 0, "supply_medium_type") && - odr_explicit_tag (o, ill_String, - &(*p)->medium_characteristics, ODR_CONTEXT, 1, 1, "medium_characteristics") && - odr_sequence_end (o); -} - -int ill_Supply_Medium_Type (ODR o, ILL_Supply_Medium_Type **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_System_Address (ODR o, ILL_System_Address **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_String, - &(*p)->telecom_service_identifier, ODR_CONTEXT, 0, 1, "telecom_service_identifier") && - odr_explicit_tag (o, ill_String, - &(*p)->telecom_service_address, ODR_CONTEXT, 1, 1, "telecom_service_address") && - odr_sequence_end (o); -} - -int ill_System_Id (ODR o, ILL_System_Id **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_Person_Or_Institution_Symbol, - &(*p)->person_or_institution_symbol, ODR_CONTEXT, 0, 1, "person_or_institution_symbol") && - odr_explicit_tag (o, ill_Name_Of_Person_Or_Institution, - &(*p)->name_of_person_or_institution, ODR_CONTEXT, 1, 1, "name_of_person_or_institution") && - odr_sequence_end (o); -} - -int ill_Third_Party_Info_Type (ODR o, ILL_Third_Party_Info_Type **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->permission_to_forward, ODR_CONTEXT, 0, 0, "permission_to_forward") && - odr_implicit_tag (o, odr_bool, - &(*p)->permission_to_chain, ODR_CONTEXT, 1, 0, "permission_to_chain") && - odr_implicit_tag (o, odr_bool, - &(*p)->permission_to_partition, ODR_CONTEXT, 2, 0, "permission_to_partition") && - odr_implicit_tag (o, odr_bool, - &(*p)->permission_to_change_send_to_list, ODR_CONTEXT, 3, 0, "permission_to_change_send_to_list") && - odr_implicit_tag (o, ill_System_Address, - &(*p)->initial_requester_address, ODR_CONTEXT, 4, 1, "initial_requester_address") && - odr_implicit_tag (o, odr_enum, - &(*p)->preference, ODR_CONTEXT, 5, 0, "preference") && - odr_implicit_tag (o, ill_Send_To_List_Type, - &(*p)->send_to_list, ODR_CONTEXT, 6, 1, "send_to_list") && - odr_implicit_tag (o, ill_Already_Tried_List_Type, - &(*p)->already_tried_list, ODR_CONTEXT, 7, 1, "already_tried_list") && - odr_sequence_end (o); -} - -int ill_Transaction_Id (ODR o, ILL_Transaction_Id **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_System_Id, - &(*p)->initial_requester_id, ODR_CONTEXT, 0, 1, "initial_requester_id") && - odr_explicit_tag (o, ill_String, - &(*p)->transaction_group_qualifier, ODR_CONTEXT, 1, 0, "transaction_group_qualifier") && - odr_explicit_tag (o, ill_String, - &(*p)->transaction_qualifier, ODR_CONTEXT, 2, 0, "transaction_qualifier") && - odr_explicit_tag (o, ill_String, - &(*p)->sub_transaction_qualifier, ODR_CONTEXT, 3, 1, "sub_transaction_qualifier") && - odr_sequence_end (o); -} - -int ill_Transaction_Id_Problem (ODR o, ILL_Transaction_Id_Problem **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Transaction_Results (ODR o, ILL_Transaction_Results **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Transaction_Type (ODR o, ILL_Transaction_Type **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Transportation_Mode (ODR o, ILL_Transportation_Mode **p, int opt, const char *name) -{ - return ill_String (o, p, opt, name); -} - -int ill_Unable_To_Perform (ODR o, ILL_Unable_To_Perform **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_Unfilled_Results (ODR o, ILL_Unfilled_Results **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, ill_Reason_Unfilled, - &(*p)->reason_unfilled, ODR_CONTEXT, 0, 0, "reason_unfilled") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, - &(*p)->num_locations, "locations") || odr_ok(o)) && - odr_sequence_end (o); -} - -int ill_Units_Per_Medium_Type (ODR o, ILL_Units_Per_Medium_Type **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_Supply_Medium_Type, - &(*p)->medium, ODR_CONTEXT, 0, 0, "medium") && - odr_explicit_tag (o, odr_integer, - &(*p)->no_of_units, ODR_CONTEXT, 1, 0, "no_of_units") && - odr_sequence_end (o); -} - -int ill_User_Error_Report (ODR o, ILL_User_Error_Report **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, ILL_User_Error_Report_already_forwarded, - (Odr_fun) ill_Already_Forwarded, "already_forwarded"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, ILL_User_Error_Report_intermediary_problem, - (Odr_fun) ill_Intermediary_Problem, "intermediary_problem"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, ILL_User_Error_Report_security_problem, - (Odr_fun) ill_Security_Problem, "security_problem"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, ILL_User_Error_Report_unable_to_perform, - (Odr_fun) ill_Unable_To_Perform, "unable_to_perform"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_Will_Supply_Results (ODR o, ILL_Will_Supply_Results **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, odr_enum, - &(*p)->reason_will_supply, ODR_CONTEXT, 0, 0, "reason_will_supply") && - odr_explicit_tag (o, ill_ISO_Date, - &(*p)->supply_date, ODR_CONTEXT, 1, 1, "supply_date") && - odr_explicit_tag (o, ill_Postal_Address, - &(*p)->return_to_address, ODR_CONTEXT, 2, 1, "return_to_address") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) ill_Location_Info, &(*p)->locations, - &(*p)->num_locations, "locations") || odr_ok(o)) && - odr_explicit_tag (o, ill_Electronic_Delivery_Service, - &(*p)->electronic_delivery_service, ODR_CONTEXT, 4, 1, "electronic_delivery_service") && - odr_sequence_end (o); -} - -int ill_EDIFACTString (ODR o, ILL_EDIFACTString **p, int opt, const char *name) -{ - return odr_visiblestring (o, p, opt, name); -} - - diff --git a/dependencies/yaz_3.0.14/src/ill-get.c b/dependencies/yaz_3.0.14/src/ill-get.c deleted file mode 100644 index c699aa3..0000000 --- a/dependencies/yaz_3.0.14/src/ill-get.c +++ /dev/null @@ -1,675 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: ill-get.c,v 1.6 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file ill-get.c - * \brief Implements ILL package creator utilities - */ - -#include -#include - -bool_t *ill_get_bool (struct ill_get_ctl *gc, const char *name, - const char *sub, int val) -{ - ODR o = gc->odr; - char element[128]; - const char *v; - bool_t *r = (bool_t *) odr_malloc (o, sizeof(*r)); - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - - v = (gc->f)(gc->clientData, element); - if (v) - val = atoi(v); - else if (val < 0) - return 0; - *r = val; - return r; -} - -int *ill_get_int (struct ill_get_ctl *gc, const char *name, - const char *sub, int val) -{ - ODR o = gc->odr; - char element[128]; - const char *v; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - v = (gc->f)(gc->clientData, element); - if (v) - val = atoi(v); - return odr_intdup(o, val); -} - -int *ill_get_enumerated (struct ill_get_ctl *gc, const char *name, - const char *sub, int val) -{ - return ill_get_int(gc, name, sub, val); -} - -ILL_String *ill_get_ILL_String_x (struct ill_get_ctl *gc, const char *name, - const char *sub, const char *vdefault) -{ - ILL_String *r = (ILL_String *) odr_malloc (gc->odr, sizeof(*r)); - char element[128]; - const char *v; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - v = (gc->f)(gc->clientData, element); - if (!v) - v = vdefault; - if (!v) - return 0; - r->which = ILL_String_GeneralString; - r->u.GeneralString = odr_strdup (gc->odr, v); - return r; -} - -ILL_String *ill_get_ILL_String(struct ill_get_ctl *gc, const char *name, - const char *sub) -{ - return ill_get_ILL_String_x (gc, name, sub, 0); -} - -ILL_ISO_Date *ill_get_ILL_ISO_Date (struct ill_get_ctl *gc, const char *name, - const char *sub, const char *val) -{ - char element[128]; - const char *v; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - v = (gc->f)(gc->clientData, element); - if (!v) - v = val; - if (!v) - return 0; - return odr_strdup (gc->odr, v); -} - -ILL_ISO_Time *ill_get_ILL_ISO_Time (struct ill_get_ctl *gc, const char *name, - const char *sub, const char *val) -{ - char element[128]; - const char *v; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - v = (gc->f)(gc->clientData, element); - if (!v) - v = val; - if (!v) - return 0; - return odr_strdup (gc->odr, v); -} - -ILL_Person_Or_Institution_Symbol *ill_get_Person_Or_Insitution_Symbol ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - char element[128]; - ODR o = gc->odr; - ILL_Person_Or_Institution_Symbol *p = - (ILL_Person_Or_Institution_Symbol *) odr_malloc (o, sizeof(*p)); - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - p->which = ILL_Person_Or_Institution_Symbol_person_symbol; - if ((p->u.person_symbol = ill_get_ILL_String (gc, element, "person"))) - return p; - - p->which = ILL_Person_Or_Institution_Symbol_institution_symbol; - if ((p->u.institution_symbol = - ill_get_ILL_String (gc, element, "institution"))) - return p; - return 0; -} - -static ILL_Name_Of_Person_Or_Institution *ill_get_Name_Of_Person_Or_Institution( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - char element[128]; - ODR o = gc->odr; - ILL_Name_Of_Person_Or_Institution *p = - (ILL_Name_Of_Person_Or_Institution *) odr_malloc (o, sizeof(*p)); - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - p->which = ILL_Name_Of_Person_Or_Institution_name_of_person; - if ((p->u.name_of_person = - ill_get_ILL_String (gc, element, "name-of-person"))) - return p; - - p->which = ILL_Name_Of_Person_Or_Institution_name_of_institution; - if ((p->u.name_of_institution = - ill_get_ILL_String (gc, element, "name-of-institution"))) - return p; - return 0; -} - -ILL_System_Id *ill_get_System_Id(struct ill_get_ctl *gc, - const char *name, const char *sub) -{ - ODR o = gc->odr; - char element[128]; - ILL_System_Id *p; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - p = (ILL_System_Id *) odr_malloc (o, sizeof(*p)); - p->person_or_institution_symbol = ill_get_Person_Or_Insitution_Symbol ( - gc, element, "person-or-institution-symbol"); - p->name_of_person_or_institution = ill_get_Name_Of_Person_Or_Institution ( - gc, element, "name-of-person-or-institution"); - return p; -} - -ILL_Transaction_Id *ill_get_Transaction_Id (struct ill_get_ctl *gc, - const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Transaction_Id *r = (ILL_Transaction_Id *) odr_malloc (o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->initial_requester_id = - ill_get_System_Id (gc, element, "initial-requester-id"); - r->transaction_group_qualifier = - ill_get_ILL_String_x (gc, element, "transaction-group-qualifier", ""); - r->transaction_qualifier = - ill_get_ILL_String_x (gc, element, "transaction-qualifier", ""); - r->sub_transaction_qualifier = - ill_get_ILL_String (gc, element, "sub-transaction-qualifier"); - return r; -} - - -ILL_Service_Date_this *ill_get_Service_Date_this ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Service_Date_this *r = - (ILL_Service_Date_this *) odr_malloc (o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->date = ill_get_ILL_ISO_Date (gc, element, "date", "20000101"); - r->time = ill_get_ILL_ISO_Time (gc, element, "time", 0); - return r; -} - -ILL_Service_Date_original *ill_get_Service_Date_original ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Service_Date_original *r = - (ILL_Service_Date_original *) odr_malloc (o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->date = ill_get_ILL_ISO_Date (gc, element, "date", 0); - r->time = ill_get_ILL_ISO_Time (gc, element, "time", 0); - if (!r->date && !r->time) - return 0; - return r; -} - -ILL_Service_Date_Time *ill_get_Service_Date_Time ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Service_Date_Time *r = - (ILL_Service_Date_Time *) odr_malloc (o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->date_time_of_this_service = ill_get_Service_Date_this ( - gc, element, "this"); - r->date_time_of_original_service = ill_get_Service_Date_original ( - gc, element, "original"); - return r; -} - -ILL_Requester_Optional_Messages_Type *ill_get_Requester_Optional_Messages_Type ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Requester_Optional_Messages_Type *r = - (ILL_Requester_Optional_Messages_Type *) odr_malloc (o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->can_send_RECEIVED = ill_get_bool (gc, element, "can-send-RECEIVED", 0); - r->can_send_RETURNED = ill_get_bool (gc, element, "can-send-RETURNED", 0); - r->requester_SHIPPED = - ill_get_enumerated (gc, element, "requester-SHIPPED", 1); - r->requester_CHECKED_IN = - ill_get_enumerated (gc, element, "requester-CHECKED-IN", 1); - return r; -} - -ILL_Item_Id *ill_get_Item_Id ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Item_Id *r = (ILL_Item_Id *) odr_malloc (o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->item_type = ill_get_enumerated (gc, element, "item-type", - ILL_Item_Id_monograph); - r->held_medium_type = 0; - r->call_number = ill_get_ILL_String(gc, element, "call-number"); - r->author = ill_get_ILL_String(gc, element, "author"); - r->title = ill_get_ILL_String(gc, element, "title"); - r->sub_title = ill_get_ILL_String(gc, element, "sub-title"); - r->sponsoring_body = ill_get_ILL_String(gc, element, "sponsoring-body"); - r->place_of_publication = - ill_get_ILL_String(gc, element, "place-of-publication"); - r->publisher = ill_get_ILL_String(gc, element, "publisher"); - r->series_title_number = - ill_get_ILL_String(gc, element, "series-title-number"); - r->volume_issue = ill_get_ILL_String(gc, element, "volume-issue"); - r->edition = ill_get_ILL_String(gc, element, "edition"); - r->publication_date = ill_get_ILL_String(gc, element, "publication-date"); - r->publication_date_of_component = - ill_get_ILL_String(gc, element, "publication-date-of-component"); - r->author_of_article = ill_get_ILL_String(gc, element, - "author-of-article"); - r->title_of_article = ill_get_ILL_String(gc, element, "title-of-article"); - r->pagination = ill_get_ILL_String(gc, element, "pagination"); - r->national_bibliography_no = 0; - r->iSBN = ill_get_ILL_String(gc, element, "ISBN"); - r->iSSN = ill_get_ILL_String(gc, element, "ISSN"); - r->system_no = 0; - r->additional_no_letters = - ill_get_ILL_String(gc, element, "additional-no-letters"); - r->verification_reference_source = - ill_get_ILL_String(gc, element, "verification-reference-source"); - return r; -} - - -ILL_Client_Id *ill_get_Client_Id ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - char element[128]; - ODR o = gc->odr; - ILL_Client_Id *r = (ILL_Client_Id *) odr_malloc(o, sizeof(*r)); - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->client_name = ill_get_ILL_String (gc, element, "client-name"); - r->client_status = ill_get_ILL_String (gc, element, "client-status"); - r->client_identifier = ill_get_ILL_String (gc, element, - "client-identifier"); - return r; -} - -ILL_Postal_Address *ill_get_Postal_Address ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Postal_Address *r = - (ILL_Postal_Address *) odr_malloc(o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->name_of_person_or_institution = - ill_get_Name_Of_Person_Or_Institution ( - gc, element, "name-of-person-or-institution"); - r->extended_postal_delivery_address = - ill_get_ILL_String ( - gc, element, "extended-postal-delivery-address"); - r->street_and_number = - ill_get_ILL_String (gc, element, "street-and-number"); - r->post_office_box = - ill_get_ILL_String (gc, element, "post-office-box"); - r->city = ill_get_ILL_String (gc, element, "city"); - r->region = ill_get_ILL_String (gc, element, "region"); - r->country = ill_get_ILL_String (gc, element, "country"); - r->postal_code = ill_get_ILL_String (gc, element, "postal-code"); - return r; -} - -ILL_System_Address *ill_get_System_Address ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_System_Address *r = - (ILL_System_Address *) odr_malloc(o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->telecom_service_identifier = - ill_get_ILL_String (gc, element, "telecom-service-identifier"); - r->telecom_service_address = - ill_get_ILL_String (gc, element, "telecom-service-addreess"); - return r; -} - -ILL_Delivery_Address *ill_get_Delivery_Address ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Delivery_Address *r = - (ILL_Delivery_Address *) odr_malloc(o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->postal_address = - ill_get_Postal_Address (gc, element, "postal-address"); - r->electronic_address = - ill_get_System_Address (gc, element, "electronic-address"); - return r; -} - -ILL_Search_Type *ill_get_Search_Type ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Search_Type *r = (ILL_Search_Type *) odr_malloc(o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->level_of_service = ill_get_ILL_String (gc, element, "level-of-service"); - r->need_before_date = ill_get_ILL_ISO_Date (gc, element, - "need-before-date", 0); - r->expiry_date = ill_get_ILL_ISO_Date (gc, element, "expiry-date", 0); - r->expiry_flag = ill_get_enumerated (gc, element, "expiry-flag", 3); - - return r; -} - -ILL_Request *ill_get_ILLRequest ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Request *r = (ILL_Request *) odr_malloc(o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->protocol_version_num = - ill_get_enumerated (gc, element, "protocol-version-num", - ILL_Request_version_2); - - r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id"); - r->service_date_time = - ill_get_Service_Date_Time (gc, element, "service-date-time"); - r->requester_id = ill_get_System_Id (gc, element, "requester-id"); - r->responder_id = ill_get_System_Id (gc, element, "responder-id"); - r->transaction_type = - ill_get_enumerated(gc, element, "transaction-type", 1); - - r->delivery_address = - ill_get_Delivery_Address (gc, element, "delivery-address"); - r->delivery_service = 0; /* TODO */ - /* ill_get_Delivery_Service (gc, element, "delivery-service"); */ - r->billing_address = - ill_get_Delivery_Address (gc, element, "billing-address"); - - r->num_iLL_service_type = 1; - r->iLL_service_type = (ILL_Service_Type **) - odr_malloc (o, sizeof(*r->iLL_service_type)); - *r->iLL_service_type = - ill_get_enumerated (gc, element, "ill-service-type", - ILL_Service_Type_copy_non_returnable); - - r->responder_specific_service = 0; - r->requester_optional_messages = - ill_get_Requester_Optional_Messages_Type ( - gc, element,"requester-optional-messages"); - r->search_type = ill_get_Search_Type(gc, element, "search-type"); - r->num_supply_medium_info_type = 0; - r->supply_medium_info_type = 0; - - r->place_on_hold = ill_get_enumerated ( - gc, element, "place-on-hold", - ILL_Place_On_Hold_Type_according_to_responder_policy); - r->client_id = ill_get_Client_Id (gc, element, "client-id"); - - r->item_id = ill_get_Item_Id (gc, element, "item-id"); - r->supplemental_item_description = 0; - r->cost_info_type = 0; - r->copyright_compliance = - ill_get_ILL_String(gc, element, "copyright-complicance"); - r->third_party_info_type = 0; - r->retry_flag = ill_get_bool (gc, element, "retry-flag", 0); - r->forward_flag = ill_get_bool (gc, element, "forward-flag", 0); - r->requester_note = ill_get_ILL_String(gc, element, "requester-note"); - r->forward_note = ill_get_ILL_String(gc, element, "forward-note"); - r->num_iLL_request_extensions = 0; - r->iLL_request_extensions = 0; - return r; -} - -ILL_ItemRequest *ill_get_ItemRequest ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_ItemRequest *r = (ILL_ItemRequest *)odr_malloc(o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->protocol_version_num = - ill_get_enumerated (gc, element, "protocol-version-num", - ILL_Request_version_2); - - r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id"); - r->service_date_time = - ill_get_Service_Date_Time (gc, element, "service-date-time"); - r->requester_id = ill_get_System_Id (gc, element, "requester-id"); - r->responder_id = ill_get_System_Id (gc, element, "responder-id"); - r->transaction_type = - ill_get_enumerated(gc, element, "transaction-type", 1); - - r->delivery_address = - ill_get_Delivery_Address (gc, element, "delivery-address"); - r->delivery_service = 0; /* TODO */ - /* ill_get_Delivery_Service (gc, element, "delivery-service"); */ - r->billing_address = - ill_get_Delivery_Address (gc, element, "billing-address"); - - r->num_iLL_service_type = 1; - r->iLL_service_type = (ILL_Service_Type **) - odr_malloc (o, sizeof(*r->iLL_service_type)); - *r->iLL_service_type = - ill_get_enumerated (gc, element, "ill-service-type", - ILL_Service_Type_copy_non_returnable); - - r->responder_specific_service = 0; - r->requester_optional_messages = - ill_get_Requester_Optional_Messages_Type ( - gc, element,"requester-optional-messages"); - r->search_type = ill_get_Search_Type(gc, element, "search-type"); - r->num_supply_medium_info_type = 0; - r->supply_medium_info_type = 0; - - r->place_on_hold = ill_get_enumerated ( - gc, element, "place-on-hold", - ILL_Place_On_Hold_Type_according_to_responder_policy); - r->client_id = ill_get_Client_Id (gc, element, "client-id"); - - r->item_id = ill_get_Item_Id (gc, element, "item-id"); - r->supplemental_item_description = 0; - r->cost_info_type = 0; - r->copyright_compliance = - ill_get_ILL_String(gc, element, "copyright-complicance"); - r->third_party_info_type = 0; - r->retry_flag = ill_get_bool (gc, element, "retry-flag", 0); - r->forward_flag = ill_get_bool (gc, element, "forward-flag", 0); - r->requester_note = ill_get_ILL_String(gc, element, "requester-note"); - r->forward_note = ill_get_ILL_String(gc, element, "forward-note"); - r->num_iLL_request_extensions = 0; - r->iLL_request_extensions = 0; - return r; -} - -ILL_Cancel *ill_get_Cancel ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_Cancel *r = (ILL_Cancel *)odr_malloc(o, sizeof(*r)); - char element[128]; - - strcpy(element, name); - if (sub) - { - strcat (element, ","); - strcat (element, sub); - } - r->protocol_version_num = - ill_get_enumerated (gc, element, "protocol-version-num", - ILL_Request_version_2); - - r->transaction_id = ill_get_Transaction_Id (gc, element, "transaction-id"); - r->service_date_time = - ill_get_Service_Date_Time (gc, element, "service-date-time"); - r->requester_id = ill_get_System_Id (gc, element, "requester-id"); - r->responder_id = ill_get_System_Id (gc, element, "responder-id"); - r->requester_note = ill_get_ILL_String(gc, element, "requester-note"); - - r->num_cancel_extensions = 0; - r->cancel_extensions = 0; - return r; -} - -ILL_APDU *ill_get_APDU ( - struct ill_get_ctl *gc, const char *name, const char *sub) -{ - ODR o = gc->odr; - ILL_APDU *r = (ILL_APDU *)odr_malloc(o, sizeof(*r)); - char element[128]; - const char *v; - - strcpy (element, name); - strcat (element, ",which"); - - v = (gc->f)(gc->clientData, element); - if (!v) - v = "request"; - if (!strcmp (v, "request")) - { - r->which = ILL_APDU_ILL_Request; - r->u.illRequest = ill_get_ILLRequest(gc, name, sub); - } - else if (!strcmp (v, "cancel")) - { - r->which = ILL_APDU_Cancel; - r->u.Cancel = ill_get_Cancel(gc, name, sub); - } - else - return 0; - return r; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/ill.tcl b/dependencies/yaz_3.0.14/src/ill.tcl deleted file mode 100644 index ed73cb3..0000000 --- a/dependencies/yaz_3.0.14/src/ill.tcl +++ /dev/null @@ -1,68 +0,0 @@ -# Config File for ILL -# $Id: ill.tcl,v 1.3 2007/05/03 08:34:52 heikki Exp $ -# ---------------------------------------------------------- -# Prefix Specifications -# -# 1: C function prefix -# 2: C type prefix -# 3: C preprocessor prefix - -# Default prefix -set default-prefix {ill_ ILL_ ILL_} - -# ---------------------------------------------------------- -set m ISO-10161-ILL-1 - -# Filename -set filename($m) ill-core - -# Header initialization code -set init($m,h) " -" - -# Header body code -set body($m,h) " -#ifdef __cplusplus -extern \"C\" \{ -#endif - -#ifdef __cplusplus -\} -#endif -" - -# C body code -set body($m,c) " -" - -# Some mappings - that map ill_ILL_ to ill_ -set map($m,ILL-APDU) APDU -set map($m,ILL-Request) Request -set map($m,ILL-Answer) Answer -set map($m,ILL-String) String -set map($m,ILL-APDU-Type) APDU_Type -set map($m,ILL-Service-Type) Service_Type -set map($m,Service_Date_Time_0) Service_Date_this -set map($m,Service_Date_Time_1) Service_Date_original -set map($m,Overdue_0) Overdue_ExtensionS -set membermap($m,APDU,ILL-Request) {APDU_ILL_Request illRequest} -set membermap($m,APDU,ILL-Answer) {APDU_ILL_Answer illAnswer} - -# ---------------------------------------------------------- -set m OCLCILLRequestExtension -# Filename -set filename($m) oclc-ill-req-ext - -# ---------------------------------------------------------- -set m Z39.50-extendedService-ItemOrder-ItemRequest-1 -# Filename -set filename($m) item-req - -# Mappings of a few basic types -proc asnBasicPrintableString {} { - return {odr_visiblestring char} -} - -proc asnBasicANY {} { - return {odr_any Odr_any} -} diff --git a/dependencies/yaz_3.0.14/src/ill9702.asn b/dependencies/yaz_3.0.14/src/ill9702.asn deleted file mode 100644 index e947489..0000000 --- a/dependencies/yaz_3.0.14/src/ill9702.asn +++ /dev/null @@ -1,1165 +0,0 @@ --- use of parameters and types is to be consistent with their definitions in clause 3 - -ISO-10161-ILL-1 DEFINITIONS EXPLICIT TAGS ::= - -BEGIN --- ISO-10161-ILL-1 refers to the ILL ISO standard 10161 version 1 --- and version 2 as specified in ISO standard 10161 Amendment 1 - -ILL-APDU ::= CHOICE { - ILL-Request, - Forward-Notification, - Shipped, - ILL-Answer, - Conditional-Reply, - Cancel, - Cancel-Reply, - Received, - Recall, - Returned, - Checked-In, - Overdue, - Renew, - Renew-Answer, - Lost, - Damaged, - Message, - Status-Query, - Status-Or-Error-Report, - Expired - } - --- The tagging scheme used in the APDU definitions is as follows: --- each named type that is a component type of an APDU definition is assigned a different tag --- that is unique within the set of APDU definitions. Where these component types themselves --- have structure, the tagging within such type definitions has only local scope. - -ILL-Request ::= [APPLICATION 1] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - transaction-type [5] IMPLICIT Transaction-Type DEFAULT 1, - delivery-address [6] IMPLICIT Delivery-Address OPTIONAL, - delivery-service Delivery-Service OPTIONAL, - billing-address [8] IMPLICIT Delivery-Address OPTIONAL, - iLL-service-type [9] IMPLICIT SEQUENCE SIZE (1..5) OF - ILL-Service-Type, - -- this sequence is a list, in order of preference - responder-specific-service [10] EXTERNAL OPTIONAL, - -- use direct reference style - requester-optional-messages [11] IMPLICIT Requester-Optional-Messages-Type, - search-type [12] IMPLICIT Search-Type OPTIONAL, - supply-medium-info-type [13] IMPLICIT SEQUENCE SIZE (1..7) OF - Supply-Medium-Info-Type OPTIONAL, - -- this sequence is a list, in order of preference, - -- with a maximum number of 7 entries - place-on-hold [14] IMPLICIT Place-On-Hold-Type DEFAULT 3, - client-id [15] IMPLICIT Client-Id OPTIONAL, - item-id [16] IMPLICIT Item-Id, - supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, - cost-info-type [18] IMPLICIT Cost-Info-Type OPTIONAL, - copyright-compliance [19] ILL-String OPTIONAL, - third-party-info-type [20] IMPLICIT Third-Party-Info-Type OPTIONAL, - -- mandatory when initiating a FORWARD service or an - -- ILL-REQUEST service for a partitioned ILL sub- - -- transaction or when initiating an ILL-REQUEST service for - -- an ILL sub-transaction if the received ILL-REQUEST - -- included an "already-tried-list";optional otherwise - retry-flag [21] IMPLICIT BOOLEAN DEFAULT FALSE, - forward-flag [22] IMPLICIT BOOLEAN DEFAULT FALSE, - requester-note [46] ILL-String OPTIONAL, - forward-note [47] ILL-String OPTIONAL, - iLL-request-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Forward-Notification ::= [APPLICATION 2] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id, - -- mandatory in this APDU - responder-address [24] IMPLICIT System-Address OPTIONAL, - intermediary-id [25] IMPLICIT System-Id, - notification-note [48] ILL-String OPTIONAL, - forward-notification-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Shipped ::= [APPLICATION 3] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-address [24] IMPLICIT System-Address OPTIONAL, - intermediary-id [25] IMPLICIT System-Id OPTIONAL, - supplier-id [26] IMPLICIT System-Id OPTIONAL, - client-id [15] IMPLICIT Client-Id OPTIONAL, - transaction-type [5] IMPLICIT Transaction-Type DEFAULT 1, - supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, - shipped-service-type [27] IMPLICIT Shipped-Service-Type, - responder-optional-messages [28] IMPLICIT Responder-Optional-Messages-Type - OPTIONAL, - supply-details [29] IMPLICIT Supply-Details, - return-to-address [30] IMPLICIT Postal-Address OPTIONAL, - responder-note [46] ILL-String OPTIONAL, - shipped-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -ILL-Answer ::= [APPLICATION 4] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - transaction-results [31] IMPLICIT Transaction-Results, - results-explanation [32] CHOICE { - conditional-results [1] Conditional-Results, - -- chosen if transaction-results=CONDITIONAL - retry-results [2] Retry-Results, - -- chosen if transaction-results=RETRY - unfilled-results [3] Unfilled-Results, - --chosen if transaction-results=UNFILLED - locations-results [4] Locations-Results, - -- chosen if transaction-results=LOCATIONS-PROVIDED - will-supply-results [5] Will-Supply-Results, - -- chosen if transaction-results=WILL-SUPPLY - hold-placed-results [6] Hold-Placed-Results, - -- chosen if transaction-results=HOLD-PLACED - estimate-results [7] Estimate-Results - -- chosen if transaction-results=ESTIMATE - } OPTIONAL, - -- optional if transaction-results equals RETRY, UNFILLED, - -- WILL-SUPPLY or HOLD-PLACED; - -- required if transaction-results equals CONDITIONAL, - -- LOCATIONS-PROVIDED or ESTIMATE - responder-specific-results [33] EXTERNAL OPTIONAL, - -- this type is mandatory if results-explanation - -- chosen for any result - -- has the value "responder-specific". - supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, - send-to-list [23] IMPLICIT Send-To-List-Type OPTIONAL, - already-tried-list [34] IMPLICIT Already-Tried-List-Type OPTIONAL, - responder-optional-messages [28] IMPLICIT Responder-Optional-Messages-Type - OPTIONAL, - responder-note [46] ILL-String OPTIONAL, - ill-answer-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Conditional-Reply ::= [APPLICATION 5] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - answer [35] IMPLICIT BOOLEAN, - requester-note [46] ILL-String OPTIONAL, - conditional-reply-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Cancel ::= [APPLICATION 6] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - requester-note [46] ILL-String OPTIONAL, - cancel-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Cancel-Reply ::= [APPLICATION 7] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - answer [35] IMPLICIT BOOLEAN, - responder-note [46] ILL-String OPTIONAL, - cancel-reply-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Received ::= [APPLICATION 8] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - supplier-id [26] IMPLICIT System-Id OPTIONAL, - supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, - date-received [36] IMPLICIT ISO-Date, - shipped-service-type [27] IMPLICIT Shipped-Service-Type, - requester-note [46] ILL-String OPTIONAL, - received-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Recall ::= [APPLICATION 9] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-note [46] ILL-String OPTIONAL, - recall-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Returned ::= [APPLICATION 10] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, - date-returned [37] IMPLICIT ISO-Date, - returned-via [38] Transportation-Mode OPTIONAL, - insured-for [39] IMPLICIT Amount OPTIONAL, - requester-note [46] ILL-String OPTIONAL, - returned-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Checked-In ::= [APPLICATION 11] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - date-checked-in [40] IMPLICIT ISO-Date, - responder-note [46] ILL-String OPTIONAL, - checked-in-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Overdue ::= [APPLICATION 12] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - date-due [41] IMPLICIT Date-Due, - responder-note [46] ILL-String OPTIONAL, - overdue-extensions [49] SEQUENCE OF Extension OPTIONAL - } - -Renew ::= [APPLICATION 13] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - desired-due-date [42] IMPLICIT ISO-Date OPTIONAL, - requester-note [46] ILL-String OPTIONAL, - renew-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Renew-Answer ::= [APPLICATION 14] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - answer [35] IMPLICIT BOOLEAN, - date-due [41] IMPLICIT Date-Due OPTIONAL, - responder-note [46] ILL-String OPTIONAL, - renew-answer-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Lost ::= [APPLICATION 15] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - note [46] ILL-String OPTIONAL, - lost-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Damaged ::= [APPLICATION 16] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - damaged-details [5] IMPLICIT Damaged-Details OPTIONAL, - -- this parameter may only be present in APDU's with a - -- protocol-version-num value of 2 or greater - note [46] ILL-String OPTIONAL, - damaged-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Message ::= [APPLICATION 17] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - note [46] ILL-String, - message-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Status-Query ::= [APPLICATION 18] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - note [46] ILL-String OPTIONAL, - status-query-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Status-Or-Error-Report ::= [APPLICATION 19] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - reason-no-report [43] IMPLICIT Reason-No-Report OPTIONAL, - -- mandatory if no report is present; - -- not present otherwise - status-report [44] IMPLICIT Status-Report OPTIONAL, - error-report [45] IMPLICIT Error-Report OPTIONAL, - note [46] ILL-String OPTIONAL, - status-or-error-report-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Expired ::= [APPLICATION 20] SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id, - service-date-time [2] IMPLICIT Service-Date-Time, - requester-id [3] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - responder-id [4] IMPLICIT System-Id OPTIONAL, - -- mandatory when using store-and-forward communications - -- optional when using connection-oriented communications - expired-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } - -Account-Number ::= ILL-String - -Already-Forwarded ::= SEQUENCE { - responder-id [0] IMPLICIT System-Id, - responder-address [1] IMPLICIT System-Address OPTIONAL - } - -Already-Tried-List-Type ::= SEQUENCE OF System-Id - -Amount ::= SEQUENCE { - currency-code [0] IMPLICIT PrintableString (SIZE (3)) OPTIONAL, - -- values defined in ISO 4217-1981 - monetary-value [1] IMPLICIT AmountString (SIZE (1..10)) - } - -AmountString ::= PrintableString (FROM ("1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"0"|" "|"."|",")) - -Client-Id ::= SEQUENCE { - client-name [0] ILL-String OPTIONAL, - client-status [1] ILL-String OPTIONAL, - client-identifier [2] ILL-String OPTIONAL - } - -Conditional-Results ::= SEQUENCE { - conditions [0] IMPLICIT ENUMERATED { - cost-exceeds-limit (13), - charges (14), - prepayment-required (15), - lacks-copyright-compliance (16), - library-use-only (22), - no-reproduction (23), - client-signature-required (24), - special-collections-supervision-required (25), - other (27), - responder-specific (28), - proposed-delivery-service (30) - }, - date-for-reply [1] IMPLICIT ISO-Date OPTIONAL, - locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL, - proposed-delivery-service Delivery-Service OPTIONAL - -- this parameter specifies a proposed delivery service the - -- acceptance of which is a condition of supply. It may be a - -- physical service or an electronic service. This parameter - -- may only be present in APDUs with a - -- protocol-version-num value of 2 or greater - } - -Cost-Info-Type ::= SEQUENCE { - account-number [0] Account-Number OPTIONAL, - maximum-cost [1] IMPLICIT Amount OPTIONAL, - reciprocal-agreement [2] IMPLICIT BOOLEAN DEFAULT FALSE, - will-pay-fee [3] IMPLICIT BOOLEAN DEFAULT FALSE, - payment-provided [4] IMPLICIT BOOLEAN DEFAULT FALSE - } - -Current-State ::= ENUMERATED { - nOT-SUPPLIED (1), - pENDING (2), - iN-PROCESS (3), - fORWARD (4), - cONDITIONAL (5), - cANCEL-PENDING (6), - cANCELLED (7), - sHIPPED (8), - rECEIVED (9), - rENEW-PENDING (10), - nOT-RECEIVED-OVERDUE (11), - rENEW-OVERDUE (12), - oVERDUE (13), - rETURNED (14), - cHECKED-IN (15), - rECALL (16), - lOST (17), - uNKNOWN (18) - } - -Damaged-Details ::= SEQUENCE { - document-type-id [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - -- identifies an OSI document type registered in accordance - -- with ISO 9834-2, for use in an automated environment - damaged-portion CHOICE { - complete-document [1] IMPLICIT NULL, - specific-units [2] IMPLICIT SEQUENCE - OF INTEGER - -- the nature and extent of a "unit" is implicit in the - -- value of document-type-id if one is supplied - } - } - -Date-Due ::= SEQUENCE { - date-due-field [0] IMPLICIT ISO-Date, - renewable [1] IMPLICIT BOOLEAN DEFAULT TRUE - } - -Delivery-Address ::= SEQUENCE { - postal-address [0] IMPLICIT Postal-Address OPTIONAL, - electronic-address [1] IMPLICIT System-Address OPTIONAL - } - -Delivery-Service ::= CHOICE { - physical-delivery [7] Transportation-Mode, - electronic-delivery [50] IMPLICIT SEQUENCE OF Electronic-Delivery-Service - -- electronic-delivery may only be present in APDUs - -- with a protocol-version-num value of 2 or greater - } - -Electronic-Delivery-Service ::= SEQUENCE { - -- the first four parameters are intended to be used in an automated - -- environment - e-delivery-service [0] IMPLICIT SEQUENCE { - -- identifies the kind of electronic delivery service, e.g. - -- MOTIS IPM,FTAM, etc., using the assigned object - -- identifier for the standard e.g. {joint-iso-ccitt mhs-motis - -- ipms} - e-delivery-mode [0] IMPLICIT OBJECT IDENTIFIER, - e-delivery-parameters [1] ANY DEFINED BY e-delivery-mode - } OPTIONAL, - document-type [1] IMPLICIT SEQUENCE { - document-type-id [2] IMPLICIT OBJECT IDENTIFIER, - -- identifies an OSI document type registered in accordance - -- with ISO 9834-2 - document-type-parameters [3] ANY DEFINED BY document-type-id - -- any parameters relating to the registered document type - } OPTIONAL, - e-delivery-description [4] ILL-String OPTIONAL, - -- holds a human readable name or description of the - -- required electronic delivery service and document type; - -- this may also be used to identify an electronic delivery - -- service for which there is no object identifier. - -- This parameter may be present instead of, or in addition - -- to, the previous 4 parameters - e-delivery-details [5] CHOICE { - e-delivery-address [0] IMPLICIT System-Address, - e-delivery-id [1] IMPLICIT System-Id - }, - name-or-code [6] ILL-String OPTIONAL, - -- holds a human-readable identifier or correlation - -- information for the document as shipped, e.g. a directory - -- and/or file name or message-id - delivery-time [7] IMPLICIT ISO-Time OPTIONAL - -- holds the requester's preferred delivery time or - -- the responder's proposed or actual delivery time - } - -Error-Report ::= SEQUENCE { - correlation-information [0] ILL-String, - report-source [1] IMPLICIT Report-Source, - user-error-report [2] User-Error-Report OPTIONAL, - -- mandatory if report-source is "user"; not present otherwise - provider-error-report [3] Provider-Error-Report OPTIONAL - -- mandatory if report-source is "provider"; not - -- present otherwise - } - -Estimate-Results ::= SEQUENCE { - cost-estimate [0] ILL-String, - locations [1] IMPLICIT SEQUENCE OF Location-Info OPTIONAL - } - -Extension ::= SEQUENCE { - identifier [0] IMPLICIT INTEGER, - critical [1] IMPLICIT BOOLEAN DEFAULT FALSE, - item [2] ANY DEFINED BY identifier - } - -General-Problem ::= ENUMERATED { - unrecognized-APDU (1), - mistyped-APDU (2), - badly-structured-APDU (3), - protocol-version-not-supported (4), - other (5) - } - -History-Report ::= SEQUENCE { - date-requested [0] IMPLICIT ISO-Date OPTIONAL, - author [1] ILL-String OPTIONAL, - title [2] ILL-String OPTIONAL, - author-of-article [3] ILL-String OPTIONAL, - title-of-article [4] ILL-String OPTIONAL, - date-of-last-transition [5] IMPLICIT ISO-Date, - most-recent-service [6] IMPLICIT ENUMERATED { - iLL-REQUEST (1), - fORWARD (21), - fORWARD-NOTIFICATION (2), - sHIPPED (3), - iLL-ANSWER (4), - cONDITIONAL-REPLY (5), - cANCEL (6), - cANCEL-REPLY (7), - rECEIVED (8), - rECALL (9), - rETURNED (10), - cHECKED-IN (11), - rENEW-ANSWER (14), - lOST (15), - dAMAGED (16), - mESSAGE (17), - sTATUS-QUERY (18), - sTATUS-OR-ERROR-REPORT (19), - eXPIRED (20) - }, - date-of-most-recent-service [7] IMPLICIT ISO-Date, - initiator-of-most-recent-service [8] IMPLICIT System-Id, - shipped-service-type [9] IMPLICIT Shipped-Service-Type OPTIONAL, - -- If the information is available, i.e. if a SHIPPED or - -- RECEIVED APDU has been sent or received, then the - -- value in this parameter shall be supplied. - -- Value must contain the most current information, e.g. if a - -- requester has received a SHIPPED APDU and then - -- invokes a RECEIVED.request, then the value from the - -- RECEIVED.request is used - transaction-results [10] IMPLICIT Transaction-Results OPTIONAL, - -- If the information is available, i.e. if an ILL-ANWSER - -- APDU has been sent or received, then the value in this - -- parameter shall be supplied. - most-recent-service-note [11] ILL-String OPTIONAL - -- If the information is available, i.e. if a note has been - -- supplied in the most recent service primitive, then the - -- value in this parameter shall be supplied. - } - -Hold-Placed-Results ::= SEQUENCE { - estimated-date-available [0] IMPLICIT ISO-Date, - hold-placed-medium-type [1] IMPLICIT Medium-Type OPTIONAL, - locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL - } - -ILL-APDU-Type ::= ENUMERATED { - iLL-REQUEST (1), - fORWARD-NOTIFICATION (2), - sHIPPED (3), - iLL-ANSWER (4), - cONDITIONAL-REPLY (5), - cANCEL (6), - cANCEL-REPLY (7), - rECEIVED (8), - rECALL (9), - rETURNED (10), - cHECKED-IN (11), - oVERDUE (12), - rENEW (13), - rENEW-ANSWER (14), - lOST (15), - dAMAGED (16), - mESSAGE (17), - sTATUS-QUERY (18), - sTATUS-OR-ERROR-REPORT (19), - eXPIRED (20) - } - -ILL-Service-Type ::= ENUMERATED { - loan (1), - copy-non-returnable (2), - locations (3), - estimate (4), - responder-specific (5) - } - -ILL-String ::= CHOICE { - GeneralString, - -- may contain any ISO registered G (graphic) and C - -- (control) character set - EDIFACTString - } - -- may not include leading or trailing spaces - -- may not consist only of space (" ") or non-printing - -- characters - -Intermediary-Problem ::= ENUMERATED { - cannot-send-onward (1) - } - -ISO-Date ::= VisibleString - -- conforms to ISO 8601 - -- length = 8 - -- fixed - -- YYYYMMDD - -ISO-Time ::= VisibleString - -- conforms to ISO 8601 - -- length = 6, - -- fixed - -- HHMMSS - -- local time of person or institution invoking service - -Item-Id ::= SEQUENCE { - item-type [0] IMPLICIT ENUMERATED { - monograph (1), - serial (2), - other (3) - } OPTIONAL, - held-medium-type [1] IMPLICIT Medium-Type OPTIONAL, - call-number [2] ILL-String OPTIONAL, - author [3] ILL-String OPTIONAL, - title [4] ILL-String OPTIONAL, - sub-title [5] ILL-String OPTIONAL, - sponsoring-body [6] ILL-String OPTIONAL, - place-of-publication [7] ILL-String OPTIONAL, - publisher [8] ILL-String OPTIONAL, - series-title-number [9] ILL-String OPTIONAL, - volume-issue [10] ILL-String OPTIONAL, - edition [11] ILL-String OPTIONAL, - publication-date [12] ILL-String OPTIONAL, - publication-date-of-component [13] ILL-String OPTIONAL, - author-of-article [14] ILL-String OPTIONAL, - title-of-article [15] ILL-String OPTIONAL, - pagination [16] ILL-String OPTIONAL, - national-bibliography-no [17] EXTERNAL OPTIONAL, - iSBN [18] ILL-String (SIZE (10)) OPTIONAL, - -- must conform to ISO 2108-1978 - iSSN [19] ILL-String (SIZE (8)) OPTIONAL, - -- must conform to ISO 3297-1986 - system-no [20] EXTERNAL OPTIONAL, - additional-no-letters [21] ILL-String OPTIONAL, - verification-reference-source [22] ILL-String OPTIONAL - } - -Location-Info ::= SEQUENCE { - location-id [0] IMPLICIT System-Id, - location-address [1] IMPLICIT System-Address OPTIONAL, - location-note [2] ILL-String OPTIONAL - } - -Locations-Results ::= SEQUENCE { - reason-locs-provided [0] IMPLICIT Reason-Locs-Provided OPTIONAL, - locations [1] IMPLICIT SEQUENCE OF Location-Info - } - -Medium-Type ::= ENUMERATED { - printed (1), - microform (3), - film-or-video-recording (4), - audio-recording (5), - machine-readable (6), - other (7) - } - -Name-Of-Person-Or-Institution ::= CHOICE { - name-of-person [0] ILL-String, - name-of-institution [1] ILL-String - } - -Person-Or-Institution-Symbol ::= CHOICE { - person-symbol [0] ILL-String, - institution-symbol [1] ILL-String - } - -Place-On-Hold-Type ::= ENUMERATED { - yes (1), - no (2), - according-to-responder-policy (3) - } - -Postal-Address ::= SEQUENCE { - name-of-person-or-institution [0] Name-Of-Person-Or-Institution OPTIONAL, - extended-postal-delivery-address [1] ILL-String OPTIONAL, - street-and-number [2] ILL-String OPTIONAL, - post-office-box [3] ILL-String OPTIONAL, - city [4] ILL-String OPTIONAL, - region [5] ILL-String OPTIONAL, - country [6] ILL-String OPTIONAL, - postal-code [7] ILL-String OPTIONAL - } - -Provider-Error-Report ::= CHOICE { - general-problem [0] IMPLICIT General-Problem, - transaction-id-problem [1] IMPLICIT Transaction-Id-Problem, - state-transition-prohibited [2] IMPLICIT State-Transition-Prohibited - } - -Reason-Locs-Provided ::= ENUMERATED { - in-use-on-loan (1), - in-process (2), - lost (3), - non-circulating (4), - not-owned (5), - on-order (6), - volume-issue-not-yet-available (7), - at-bindery (8), - lacking (9), - not-on-shelf (10), - on-reserve (11), - poor-condition (12), - cost-exceeds-limit (13), - on-hold (19), - other (27), - responder-specific (28) - } - -Reason-No-Report ::= ENUMERATED { - temporary (1), - permanent (2) - } - -Reason-Unfilled ::= ENUMERATED { - in-use-on-loan (1), - in-process (2), - lost (3), - non-circulating (4), - not-owned (5), - on-order (6), - volume-issue-not-yet-available (7), - at-bindery (8), - lacking (9), - not-on-shelf (10), - on-reserve (11), - poor-condition (12), - cost-exceeds-limit (13), - charges (14), - prepayment-required (15), - lacks-copyright-compliance (16), - not-found-as-cited (17), - locations-not-found (18), - on-hold (19), - policy-problem (20), - mandatory-messaging-not-supported (21), - expiry-not-supported (22) , - requested-delivery-services-not-supported (23), - preferred-delivery-time-not-possible (24), - other (27), - responder-specific (28) - } - -Report-Source ::= ENUMERATED { - user (1), - provider (2) - } - -Requester-Optional-Messages-Type ::= SEQUENCE { - can-send-RECEIVED [0] IMPLICIT BOOLEAN, - can-send-RETURNED [1] IMPLICIT BOOLEAN, - requester-SHIPPED [2] IMPLICIT ENUMERATED { - requires (1), - desires (2), - neither (3) - }, - requester-CHECKED-IN [3] IMPLICIT ENUMERATED { - requires (1), - desires (2), - neither (3) - } - } - -Responder-Optional-Messages-Type ::= SEQUENCE { - can-send-SHIPPED [0] IMPLICIT BOOLEAN, - can-send-CHECKED-IN [1] IMPLICIT BOOLEAN, - responder-RECEIVED [2] IMPLICIT ENUMERATED { - requires (1), - desires (2), - neither (3) - }, - responder-RETURNED [3] IMPLICIT ENUMERATED { - requires (1), - desires (2), - neither (3) - } - } - -Retry-Results ::= SEQUENCE { - reason-not-available [0] IMPLICIT ENUMERATED { - in-use-on-loan (1), - in-process (2), - on-order (6), - volume-issue-not-yet-available (7), - at-bindery (8), - cost-exceeds-limit (13), - charges (14), - prepayment-required (15), - lacks-copyright-compliance (16), - not-found-as-cited (17), - on-hold (19), - other (27), - responder-specific (28) - } OPTIONAL, - retry-date [1] IMPLICIT ISO-Date OPTIONAL, - locations [2] IMPLICIT SEQUENCE OF Location-Info OPTIONAL - } - -Search-Type ::= SEQUENCE { - level-of-service [0] ILL-String (SIZE (1)) OPTIONAL, - need-before-date [1] IMPLICIT ISO-Date OPTIONAL, - expiry-flag [2] IMPLICIT ENUMERATED { - need-Before-Date (1), - other-Date (2), - no-Expiry (3) - } DEFAULT 3, - -- value of "need-Before-Date" indicates that - -- need-before-date also specifies transaction expiry - -- date - expiry-date [3] IMPLICIT ISO-Date OPTIONAL - -- alternative expiry date can be used only when expiry-flag - -- is set to "Other-Date" - } - -Security-Problem ::= ILL-String - -Send-To-List-Type ::= SEQUENCE OF SEQUENCE { - system-id [0] IMPLICIT System-Id, - account-number [1] Account-Number OPTIONAL, - system-address [2] IMPLICIT System-Address OPTIONAL - } - -Service-Date-Time ::= SEQUENCE { - date-time-of-this-service [0] IMPLICIT SEQUENCE { - date [0] IMPLICIT ISO-Date, - time [1] IMPLICIT ISO-Time OPTIONAL - -- mandatory for 2nd and subsequent services - -- invoked for a given - -- ILL-transaction on the same day - }, - date-time-of-original-service [1] IMPLICIT SEQUENCE { - date [0] IMPLICIT ISO-Date, - time [1] IMPLICIT ISO-Time OPTIONAL - } OPTIONAL - } - -Shipped-Service-Type ::= ILL-Service-Type (loan | copy-non-returnable) - -- subtype of ILL-Service-Type - -State-Transition-Prohibited ::= SEQUENCE { - aPDU-type [0] IMPLICIT ILL-APDU-Type, - current-state [1] IMPLICIT Current-State - } - -Status-Report ::= SEQUENCE { - user-status-report [0] IMPLICIT History-Report, - provider-status-report [1] IMPLICIT Current-State - } - -Supplemental-Item-Description ::= SEQUENCE OF EXTERNAL - -- the syntax of supplementary item description information is defined outside this standard - -Supply-Details ::= SEQUENCE { - date-shipped [0] IMPLICIT ISO-Date OPTIONAL, - date-due [1] IMPLICIT Date-Due OPTIONAL, - chargeable-units [2] IMPLICIT INTEGER (1..9999) OPTIONAL, - cost [3] IMPLICIT Amount OPTIONAL, - shipped-conditions [4] IMPLICIT ENUMERATED { - library-use-only (22), - no-reproduction (23), - client-signature-required (24), - special-collections-supervision-required (25), - other (27) - } OPTIONAL, - shipped-via CHOICE { - physical-delivery [5] Transportation-Mode, - electronic-delivery [50] IMPLICIT - Electronic-Delivery-Service - } OPTIONAL, - -- electronic-delivery may only be present in APDUs with a - -- protocol-version-num value of 2 or greater - insured-for [6] IMPLICIT Amount OPTIONAL, - return-insurance-require [7] IMPLICIT Amount OPTIONAL, - no-of-units-per-medium [8] IMPLICIT SEQUENCE OF Units-Per-Medium-Type - OPTIONAL - } - -Supply-Medium-Info-Type ::= SEQUENCE { - supply-medium-type [0] IMPLICIT Supply-Medium-Type, - medium-characteristics [1] ILL-String OPTIONAL - } - -Supply-Medium-Type ::= ENUMERATED { - printed (1), - photocopy (2), - microform (3), - film-or-video-recording (4), - audio-recording (5), - machine-readable (6), - other (7) - } - -System-Address ::= SEQUENCE { - telecom-service-identifier [0] ILL-String OPTIONAL, - telecom-service-address [1] ILL-String OPTIONAL - } - -System-Id ::= SEQUENCE { - --at least one of the following must be present - person-or-institution-symbol [0] Person-Or-Institution-Symbol OPTIONAL, - name-of-person-or-institution [1] Name-Of-Person-Or-Institution OPTIONAL - } - -Third-Party-Info-Type ::= SEQUENCE { - permission-to-forward [0] IMPLICIT BOOLEAN DEFAULT FALSE, - permission-to-chain [1] IMPLICIT BOOLEAN DEFAULT FALSE, - permission-to-partition [2] IMPLICIT BOOLEAN DEFAULT FALSE, - permission-to-change-send-to-list [3] IMPLICIT BOOLEAN DEFAULT FALSE, - initial-requester-address [4] IMPLICIT System-Address OPTIONAL, - -- mandatory when initiating a FORWARD service or an - -- ILL-REQUEST service for a partitioned ILL - -- sub-transaction; optional otherwise - preference [5] IMPLICIT ENUMERATED { - ordered (1), - unordered (2) - } DEFAULT 2, - send-to-list [6] IMPLICIT Send-To-List-Type OPTIONAL, - already-tried-list [7] IMPLICIT Already-Tried-List-Type OPTIONAL - -- mandatory when initiating a FORWARD service, or when - -- initiating an ILL-REQUEST service for an ILL - -- sub-transaction if the received ILL-REQUEST included an - -- "already-tried-list"; optional otherwise - } - -Transaction-Id ::= SEQUENCE { - initial-requester-id [0] IMPLICIT System-Id OPTIONAL, - -- mandatory for sub-transactions; not called - -- "requester-id" to distinguish id of initial-requester - --from id of requester of sub-transaction if there is one - transaction-group-qualifier [1] ILL-String, - transaction-qualifier [2] ILL-String, - sub-transaction-qualifier [3] ILL-String OPTIONAL - -- mandatory for sub-transactions - } - -Transaction-Id-Problem ::= ENUMERATED { - duplicate-transaction-id (1), - invalid-transaction-id (2), - unknown-transaction-id (3) - } - -Transaction-Results ::= ENUMERATED { - conditional (1), - retry (2), - unfilled (3), - locations-provided (4), - will-supply (5), - hold-placed (6), - estimate (7) - } - -Transaction-Type ::= ENUMERATED { - simple (1), - chained (2), - partitioned (3) - } - -Transportation-Mode ::= ILL-String - -Unable-To-Perform ::= ENUMERATED { - not-available (1), - resource-limitation (2), - other (3) - } - -Unfilled-Results ::= SEQUENCE { - reason-unfilled [0] IMPLICIT Reason-Unfilled, - locations [1] IMPLICIT SEQUENCE OF Location-Info OPTIONAL - } - -Units-Per-Medium-Type ::= SEQUENCE { - medium [0] Supply-Medium-Type, - no-of-units [1] INTEGER (1..9999) - } - -User-Error-Report ::= CHOICE { - already-forwarded [0] IMPLICIT Already-Forwarded, - intermediary-problem [1] IMPLICIT Intermediary-Problem, - security-problem [2] Security-Problem, - unable-to-perform [3] IMPLICIT Unable-To-Perform - } - - -Will-Supply-Results ::= SEQUENCE { - reason-will-supply [0] ENUMERATED { - in-use-on-loan (1), - in-process (2), - on-order (6), - at-bindery (8), - on-hold (19), - being-processed-for-supply (26), - other (27), - responder-specific (28), - electronic-delivery (30) - }, - supply-date [1] ISO-Date OPTIONAL, - return-to-address [2] Postal-Address OPTIONAL, - locations [3] IMPLICIT SEQUENCE OF Location-Info OPTIONAL, - electronic-delivery-service [4] Electronic-Delivery-Service OPTIONAL - -- if present, this must be one of the services proposed by - -- the requester - } - -EDIFACTString ::= VisibleString - (FROM ("A"|"B"|"C"|"D"|"E"|"F"|"G"|"H"| - "I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|"S"|"T"|"U"| - "V"|"W"|"X"|"Y"|"Z"|"a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"| - "i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"| - "v"|"w"|"x"|"y"|"z"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"| - "9"|"0"|" "|"."|","|"-"|"("|")"|"/"|"="|"!"|"""|"%"|"&"| - "*"|";"|"<"|">"|"'"|"+"|":"|"?")) - -END - - diff --git a/dependencies/yaz_3.0.14/src/initopt.c b/dependencies/yaz_3.0.14/src/initopt.c deleted file mode 100644 index 8dbf86b..0000000 --- a/dependencies/yaz_3.0.14/src/initopt.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: initopt.c,v 1.7 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file initopt.c - * \brief Implements Z39.50 Init Options Utility - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include - -static struct { - char *name; - int opt; -} opt_array[] = { - {"search", Z_Options_search}, - {"present", Z_Options_present}, - {"delSet", Z_Options_delSet}, - {"resourceReport", Z_Options_resourceReport}, - {"triggerResourceCtrl", Z_Options_triggerResourceCtrl}, - {"resourceCtrl", Z_Options_resourceCtrl}, - {"accessCtrl", Z_Options_accessCtrl}, - {"scan", Z_Options_scan}, - {"sort", Z_Options_sort}, - {"extendedServices", Z_Options_extendedServices}, - {"level_1Segmentation", Z_Options_level_1Segmentation}, - {"level_2Segmentation", Z_Options_level_2Segmentation}, - {"concurrentOperations", Z_Options_concurrentOperations}, - {"namedResultSets", Z_Options_namedResultSets}, - {"encapsulation", Z_Options_encapsulation}, - {"resultCount", Z_Options_resultCount}, - {"negotiationModel", Z_Options_negotiationModel}, - {"duplicationDetection", Z_Options_duplicateDetection}, - {"queryType104", Z_Options_queryType104}, - {"pQESCorrection", Z_Options_pQESCorrection}, - {"stringSchema", Z_Options_stringSchema}, - {0, 0} -}; - -int yaz_init_opt_encode(Z_Options *opt, const char *opt_str, int *error_pos) -{ - const char *cp = opt_str; - - ODR_MASK_ZERO(opt); - while (*cp) - { - char this_opt[42]; - int i, j; - if (*cp == ' ' || *cp == ',') - { - cp++; - continue; - } - for (i = 0; i < (sizeof(this_opt)-1) && - cp[i] && cp[i] != ' ' && cp[i] != ','; i++) - this_opt[i] = cp[i]; - this_opt[i] = 0; - for (j = 0; opt_array[j].name; j++) - { - if (yaz_matchstr(this_opt, opt_array[j].name) == 0) - { - ODR_MASK_SET(opt, opt_array[j].opt); - break; - } - } - if (!opt_array[j].name) - { - if (error_pos) - { - *error_pos = cp - opt_str; - return -1; - } - } - cp += i; - } - return 0; -} - -void yaz_init_opt_decode(Z_Options *opt, void (*pr)(const char *name, - void *clientData), - void *clientData) -{ - int i; - for (i = 0; opt_array[i].name; i++) - if (ODR_MASK_GET(opt, opt_array[i].opt)) - (*pr)(opt_array[i].name, clientData); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/item-req.asn b/dependencies/yaz_3.0.14/src/item-req.asn deleted file mode 100644 index 612d509..0000000 --- a/dependencies/yaz_3.0.14/src/item-req.asn +++ /dev/null @@ -1,58 +0,0 @@ -Z39.50-extendedService-ItemOrder-ItemRequest-1 DEFINITIONS ::= -BEGIN -IMPORTS - Transaction-Id, - Service-Date-Time, - System-Id, - Transaction-Type, - Delivery-Address, - ILL-Service-Type, - Requester-Optional-Messages-Type, - Search-Type, - Supply-Medium-Info-Type, - Place-On-Hold-Type, - Client-Id, - Item-Id, - Supplemental-Item-Description, - Cost-Info-Type, - ILL-String, - Third-Party-Info-Type, - Extension -FROM ISO-10161-ILL-1; - -ItemRequest ::=SEQUENCE { - protocol-version-num [0] IMPLICIT INTEGER { - version-1 (1), - version-2 (2) - }, - transaction-id [1] IMPLICIT Transaction-Id OPTIONAL, - service-date-time [2] IMPLICIT Service-Date-Time OPTIONAL, - requester-id [3] IMPLICIT System-Id OPTIONAL, - responder-id [4] IMPLICIT System-Id OPTIONAL, - transaction-type [5] IMPLICIT Transaction-Type DEFAULT 1, - delivery-address [6] IMPLICIT Delivery-Address OPTIONAL, - delivery-service Delivery-Service OPTIONAL, - billing-address [8] IMPLICIT Delivery-Address OPTIONAL, - iLL-service-type [9] IMPLICIT SEQUENCE SIZE (1..5) OF - ILL-Service-Type OPTIONAL, - responder-specific-service [10] EXTERNAL OPTIONAL, - -- use direct reference style - requester-optional-messages [11] IMPLICIT Requester-Optional-Messages-Type OPTIONAL, - search-type [12] IMPLICIT Search-Type OPTIONAL, - supply-medium-info-type [13] IMPLICIT SEQUENCE SIZE (1..7) OF - Supply-Medium-Info-Type OPTIONAL, - place-on-hold [14] IMPLICIT Place-On-Hold-Type DEFAULT 3, - client-id [15] IMPLICIT Client-Id OPTIONAL, - item-id [16] IMPLICIT Item-Id OPTIONAL, - supplemental-item-description [17] IMPLICIT Supplemental-Item-Description OPTIONAL, - cost-info-type [18] IMPLICIT Cost-Info-Type OPTIONAL, - copyright-compliance [19] ILL-String OPTIONAL, - third-party-info-type [20] IMPLICIT Third-Party-Info-Type OPTIONAL, - retry-flag [21] IMPLICIT BOOLEAN DEFAULT FALSE, - forward-flag [22] IMPLICIT BOOLEAN DEFAULT FALSE, - requester-note [46] ILL-String OPTIONAL, - forward-note [47] ILL-String OPTIONAL, - iLL-request-extensions [49] IMPLICIT SEQUENCE OF Extension OPTIONAL - } -END - diff --git a/dependencies/yaz_3.0.14/src/item-req.c b/dependencies/yaz_3.0.14/src/item-req.c deleted file mode 100644 index f24d81a..0000000 --- a/dependencies/yaz_3.0.14/src/item-req.c +++ /dev/null @@ -1,69 +0,0 @@ -/** \file item-req.c - \brief ASN.1 Module Z39.50-extendedService-ItemOrder-ItemRequest-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int ill_ItemRequest (ODR o, ILL_ItemRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->protocol_version_num, ODR_CONTEXT, 0, 0, "protocol_version_num") && - odr_implicit_tag (o, ill_Transaction_Id, - &(*p)->transaction_id, ODR_CONTEXT, 1, 1, "transaction_id") && - odr_implicit_tag (o, ill_Service_Date_Time, - &(*p)->service_date_time, ODR_CONTEXT, 2, 1, "service_date_time") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->requester_id, ODR_CONTEXT, 3, 1, "requester_id") && - odr_implicit_tag (o, ill_System_Id, - &(*p)->responder_id, ODR_CONTEXT, 4, 1, "responder_id") && - odr_implicit_tag (o, ill_Transaction_Type, - &(*p)->transaction_type, ODR_CONTEXT, 5, 0, "transaction_type") && - odr_implicit_tag (o, ill_Delivery_Address, - &(*p)->delivery_address, ODR_CONTEXT, 6, 1, "delivery_address") && - ill_Delivery_Service(o, &(*p)->delivery_service, 1, "delivery_service") && - odr_implicit_tag (o, ill_Delivery_Address, - &(*p)->billing_address, ODR_CONTEXT, 8, 1, "billing_address") && - odr_implicit_settag (o, ODR_CONTEXT, 9) && - (odr_sequence_of(o, (Odr_fun) ill_Service_Type, &(*p)->iLL_service_type, - &(*p)->num_iLL_service_type, "iLL_service_type") || odr_ok(o)) && - odr_explicit_tag (o, odr_external, - &(*p)->responder_specific_service, ODR_CONTEXT, 10, 1, "responder_specific_service") && - odr_implicit_tag (o, ill_Requester_Optional_Messages_Type, - &(*p)->requester_optional_messages, ODR_CONTEXT, 11, 1, "requester_optional_messages") && - odr_implicit_tag (o, ill_Search_Type, - &(*p)->search_type, ODR_CONTEXT, 12, 1, "search_type") && - odr_implicit_settag (o, ODR_CONTEXT, 13) && - (odr_sequence_of(o, (Odr_fun) ill_Supply_Medium_Info_Type, &(*p)->supply_medium_info_type, - &(*p)->num_supply_medium_info_type, "supply_medium_info_type") || odr_ok(o)) && - odr_implicit_tag (o, ill_Place_On_Hold_Type, - &(*p)->place_on_hold, ODR_CONTEXT, 14, 0, "place_on_hold") && - odr_implicit_tag (o, ill_Client_Id, - &(*p)->client_id, ODR_CONTEXT, 15, 1, "client_id") && - odr_implicit_tag (o, ill_Item_Id, - &(*p)->item_id, ODR_CONTEXT, 16, 1, "item_id") && - odr_implicit_tag (o, ill_Supplemental_Item_Description, - &(*p)->supplemental_item_description, ODR_CONTEXT, 17, 1, "supplemental_item_description") && - odr_implicit_tag (o, ill_Cost_Info_Type, - &(*p)->cost_info_type, ODR_CONTEXT, 18, 1, "cost_info_type") && - odr_explicit_tag (o, ill_String, - &(*p)->copyright_compliance, ODR_CONTEXT, 19, 1, "copyright_compliance") && - odr_implicit_tag (o, ill_Third_Party_Info_Type, - &(*p)->third_party_info_type, ODR_CONTEXT, 20, 1, "third_party_info_type") && - odr_implicit_tag (o, odr_bool, - &(*p)->retry_flag, ODR_CONTEXT, 21, 0, "retry_flag") && - odr_implicit_tag (o, odr_bool, - &(*p)->forward_flag, ODR_CONTEXT, 22, 0, "forward_flag") && - odr_explicit_tag (o, ill_String, - &(*p)->requester_note, ODR_CONTEXT, 46, 1, "requester_note") && - odr_explicit_tag (o, ill_String, - &(*p)->forward_note, ODR_CONTEXT, 47, 1, "forward_note") && - odr_implicit_settag (o, ODR_CONTEXT, 49) && - (odr_sequence_of(o, (Odr_fun) ill_Extension, &(*p)->iLL_request_extensions, - &(*p)->num_iLL_request_extensions, "iLL_request_extensions") || odr_ok(o)) && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/libxml2_error.c b/dependencies/yaz_3.0.14/src/libxml2_error.c deleted file mode 100644 index 0f0a98b..0000000 --- a/dependencies/yaz_3.0.14/src/libxml2_error.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: libxml2_error.c,v 1.4 2007/02/23 10:15:01 adam Exp $ - */ -/** - * \file libxml2_error.c - * \brief Libxml2 error handling - */ - -#include -#include -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include -#endif - -#if YAZ_HAVE_XSLT -#include -#endif - -static int libxml2_error_level = 0; - -static void proxy_xml_error_handler(void *ctx, const char *fmt, ...) -{ - char buf[1024]; - - va_list ap; - va_start(ap, fmt); - - yaz_vsnprintf(buf, sizeof(buf)-1, fmt, ap); - yaz_log(libxml2_error_level, "%s: %s", (char*) ctx, buf); - - va_end (ap); -} - -int libxml2_error_to_yazlog(int level, const char *lead_msg) -{ - libxml2_error_level = level; -#if YAZ_HAVE_XSLT - xsltSetGenericErrorFunc((void *) "XSLT", proxy_xml_error_handler); -#endif -#if YAZ_HAVE_XML2 - xmlSetGenericErrorFunc((void *) "XML", proxy_xml_error_handler); - return 0; -#else - return -1; -#endif -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/log.c b/dependencies/yaz_3.0.14/src/log.c deleted file mode 100644 index 072bd0d..0000000 --- a/dependencies/yaz_3.0.14/src/log.c +++ /dev/null @@ -1,597 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: log.c,v 1.54 2007/06/05 06:42:26 adam Exp $ - */ - -/** - * \file log.c - * \brief Logging utility - */ - -#if HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define HAS_STRERROR 1 - - -#if HAS_STRERROR - -#else -char *strerror(int n) -{ - extern char *sys_errlist[]; - return sys_errlist[n]; -} - -#endif - - -static int l_level = YLOG_DEFAULT_LEVEL; - -enum l_file_type { use_stderr, use_none, use_file }; -static enum l_file_type yaz_file_type = use_stderr; -static FILE *yaz_global_log_file = NULL; - -static void (*start_hook_func)(int, const char *, void *) = NULL; -static void *start_hook_info; - -static void (*end_hook_func)(int, const char *, void *) = NULL; -static void *end_hook_info; - -static void (*hook_func)(int, const char *, void *) = NULL; -static void *hook_info; - -static char l_prefix[512] = ""; -static char l_prefix2[512] = ""; -static char l_fname[512] = ""; - - -static char l_old_default_format[] = "%H:%M:%S-%d/%m"; -static char l_new_default_format[] = "%Y%m%d-%H%M%S"; -#define TIMEFORMAT_LEN 50 -static char l_custom_format[TIMEFORMAT_LEN] = ""; -static char *l_actual_format = l_old_default_format; - -/** l_max_size tells when to rotate the log. Default is 1 GB - This is almost the same as never, but it saves applications in the - case of 2 or 4 GB file size limits.. - */ -static int l_max_size = 1024*1024*1024; - -#define MAX_MASK_NAMES 35 /* 32 bits plus a few combo names */ -static struct { - int mask; - char *name; -} mask_names[MAX_MASK_NAMES] = -{ - { YLOG_FATAL, "fatal"}, - { YLOG_DEBUG, "debug"}, - { YLOG_WARN, "warn" }, - { YLOG_LOG, "log" }, - { YLOG_ERRNO, ""}, - { YLOG_MALLOC, "malloc"}, - { YLOG_APP, "app" }, - { YLOG_NOTIME, "notime" }, - { YLOG_APP2, "app2" }, - { YLOG_APP3, "app3" }, - { YLOG_ALL, "all" }, - { YLOG_FLUSH, "flush" }, - { YLOG_LOGLVL, "loglevel" }, - { 0, "none" }, - { 0, NULL } - /* the rest will be filled in if the user defines dynamic modules*/ -}; - -static unsigned int next_log_bit = YLOG_LAST_BIT<<1; /* first dynamic bit */ - -static void internal_log_init(void) -{ - static int mutex_init_flag = 0; /* not yet initialized */ - char *env; - - if (mutex_init_flag) - return; - mutex_init_flag = 1; /* here, 'cause nmem_mutex_create may call yaz_log */ - - env = getenv("YAZ_LOG"); - if (env) - l_level = yaz_log_mask_str_x(env, l_level); -} - - -FILE *yaz_log_file(void) -{ - FILE *f = 0; - switch(yaz_file_type) - { - case use_stderr: f = stderr; break; - case use_none: f = 0; break; - case use_file: f = yaz_global_log_file; break; - } - return f; -} - -void yaz_log_close(void) -{ - if (yaz_file_type == use_file && yaz_global_log_file) - { - fclose(yaz_global_log_file); - yaz_global_log_file = 0; - } -} - -void yaz_log_init_file(const char *fname) -{ - internal_log_init(); - - yaz_log_close(); - if (fname) - { - if (*fname == '\0') - yaz_file_type = use_stderr; /* empty name; use stderr */ - else - yaz_file_type = use_file; - strncpy(l_fname, fname, sizeof(l_fname)-1); - l_fname[sizeof(l_fname)-1] = '\0'; - } - else - { - yaz_file_type = use_none; /* NULL name; use no file at all */ - l_fname[0] = '\0'; - } - yaz_log_reopen(); -} - -static void rotate_log(const char *cur_fname) -{ - int i; - -#ifdef WIN32 - /* windows can't rename a file if it is open */ - yaz_log_close(); -#endif - for (i = 0; i<9; i++) - { - char fname_str[FILENAME_MAX]; - struct stat stat_buf; - - yaz_snprintf(fname_str, sizeof(fname_str), "%s.%d", cur_fname, i); - if (stat(fname_str, &stat_buf) != 0) - break; - } - for (; i >= 0; --i) - { - char fname_str[2][FILENAME_MAX]; - - if (i > 0) - yaz_snprintf(fname_str[0], sizeof(fname_str[0]), - "%s.%d", cur_fname, i-1); - else - yaz_snprintf(fname_str[0], sizeof(fname_str[0]), - "%s", cur_fname); - yaz_snprintf(fname_str[1], sizeof(fname_str[1]), - "%s.%d", cur_fname, i); -#ifdef WIN32 - MoveFileEx(fname_str[0], fname_str[1], MOVEFILE_REPLACE_EXISTING); -#else - rename(fname_str[0], fname_str[1]); -#endif - } -} - - -void yaz_log_init_level(int level) -{ - internal_log_init(); - if ( (l_level & YLOG_FLUSH) != (level & YLOG_FLUSH) ) - { - l_level = level; - yaz_log_reopen(); /* make sure we set buffering right */ - } - else - l_level = level; - - if (l_level & YLOG_LOGLVL) - { /* dump the log level bits */ - const char *bittype = "Static "; - int i, sz; - - yaz_log(YLOG_LOGLVL, "Setting log level to %d = 0x%08x", - l_level, l_level); - /* determine size of mask_names (locked) */ - for (sz = 0; mask_names[sz].name; sz++) - ; - /* second pass without lock */ - for (i = 0; i < sz; i++) - if (mask_names[i].mask && *mask_names[i].name) - if (strcmp(mask_names[i].name, "all") != 0) - { - yaz_log(YLOG_LOGLVL, "%s log bit %08x '%s' is %s", - bittype, mask_names[i].mask, mask_names[i].name, - (level & mask_names[i].mask)? "ON": "off"); - if (mask_names[i].mask > YLOG_LAST_BIT) - bittype = "Dynamic"; - } - } -} - -void yaz_log_init_prefix(const char *prefix) -{ - if (prefix && *prefix) - yaz_snprintf(l_prefix, sizeof(l_prefix), "%s ", prefix); - else - *l_prefix = 0; -} - -void yaz_log_init_prefix2(const char *prefix) -{ - if (prefix && *prefix) - yaz_snprintf(l_prefix2, sizeof(l_prefix2), "%s ", prefix); - else - *l_prefix2 = 0; -} - -void yaz_log_init(int level, const char *prefix, const char *fname) -{ - internal_log_init(); - yaz_log_init_level(level); - yaz_log_init_prefix(prefix); - if (fname && *fname) - yaz_log_init_file(fname); -} - -void yaz_log_init_max_size(int mx) -{ - if (mx > 0) - l_max_size = mx; - else - l_max_size = 0; -} - -void yaz_log_set_handler(void (*func)(int, const char *, void *), void *info) -{ - hook_func = func; - hook_info = info; -} - -void log_event_start(void (*func)(int, const char *, void *), void *info) -{ - start_hook_func = func; - start_hook_info = info; -} - -void log_event_end(void (*func)(int, const char *, void *), void *info) -{ - end_hook_func = func; - end_hook_info = info; -} - -static void yaz_log_open_check(struct tm *tm, int force, const char *filemode) -{ - char new_filename[512]; - static char cur_filename[512] = ""; - - if (yaz_file_type != use_file) - return; - - if (l_fname && *l_fname) - { - strftime(new_filename, sizeof(new_filename)-1, l_fname, tm); - if (strcmp(new_filename, cur_filename)) - { - strcpy(cur_filename, new_filename); - force = 1; - } - } - - if (l_max_size > 0 && yaz_global_log_file) - { - long flen = ftell(yaz_global_log_file); - if (flen > l_max_size) - { - rotate_log(cur_filename); - force = 1; - } - } - if (force && *cur_filename) - { - FILE *new_file; -#ifdef WIN32 - yaz_log_close(); -#endif - new_file = fopen(cur_filename, filemode); - if (new_file) - { - yaz_log_close(); - yaz_global_log_file = new_file; - if (l_level & YLOG_FLUSH) - setvbuf(yaz_global_log_file, 0, _IONBF, 0); - } - else - { - /* disable log rotate */ - l_max_size = 0; - } - } -} - -static void yaz_log_do_reopen(const char *filemode) -{ - time_t cur_time = time(0); -#if HAVE_LOCALTIME_R - struct tm tm0, *tm = &tm0; -#else - struct tm *tm; -#endif - -#if HAVE_LOCALTIME_R - localtime_r(&cur_time, tm); -#else - tm = localtime(&cur_time); -#endif - yaz_log_open_check(tm, 1, filemode); -} - - -void yaz_log_reopen() -{ - yaz_log_do_reopen("a"); -} - -void yaz_log_trunc() -{ - yaz_log_do_reopen("w"); -} - -static void yaz_strftime(char *dst, size_t sz, - const char *fmt, const struct tm *tm) -{ - strftime(dst, sz, fmt, tm); -} - -static void yaz_log_to_file(int level, const char *log_message) -{ - FILE *file; - time_t ti = time(0); -#if HAVE_LOCALTIME_R - struct tm tm0, *tm = &tm0; -#else - struct tm *tm; -#endif - - internal_log_init(); - -#if HAVE_LOCALTIME_R - localtime_r(&ti, tm); -#else - tm = localtime(&ti); -#endif - - yaz_log_open_check(tm, 0, "a"); - file = yaz_log_file(); /* file may change in yaz_log_open_check */ - - if (file) - { - char tbuf[TIMEFORMAT_LEN]; - char flags[1024]; - int i; - - *flags = '\0'; - for (i = 0; level && mask_names[i].name; i++) - if ( mask_names[i].mask & level) - { - if (*mask_names[i].name && mask_names[i].mask && - mask_names[i].mask != YLOG_ALL) - { - if (strlen(flags) + strlen(mask_names[i].name) - < sizeof(flags) - 4) - { - strcat(flags, "["); - strcat(flags, mask_names[i].name); - strcat(flags, "]"); - } - level &= ~mask_names[i].mask; - } - } - - tbuf[0] = '\0'; - if (!(l_level & YLOG_NOTIME)) - { - yaz_strftime(tbuf, TIMEFORMAT_LEN-2, l_actual_format, tm); - tbuf[TIMEFORMAT_LEN-2] = '\0'; - } - if (tbuf[0]) - strcat(tbuf, " "); - fprintf(file, "%s%s%s %s%s\n", tbuf, l_prefix, flags, l_prefix2, - log_message); - if (l_level & YLOG_FLUSH) - fflush(file); - } -} - -void yaz_log(int level, const char *fmt, ...) -{ - va_list ap; - char buf[4096]; - FILE *file; - int o_level = level; - - internal_log_init(); - if (!(level & l_level)) - return; - va_start(ap, fmt); - - /* 30 is enough for our 'rest of output' message */ - yaz_vsnprintf(buf, sizeof(buf)-30, fmt, ap); - if (strlen(buf) >= sizeof(buf)-31) - strcat(buf, " [rest of output omitted]"); - - if (o_level & YLOG_ERRNO) - { - int remain = sizeof(buf) - strlen(buf); - if (remain > 100) /* reasonable minimum space for error */ - { - strcat(buf, " ["); - yaz_strerror(buf+strlen(buf), remain-5); /* 5 due to extra [] */ - strcat(buf, "]"); - } - } - va_end (ap); - if (start_hook_func) - (*start_hook_func)(o_level, buf, start_hook_info); - if (hook_func) - (*hook_func)(o_level, buf, hook_info); - file = yaz_log_file(); - if (file) - yaz_log_to_file(level, buf); - if (end_hook_func) - (*end_hook_func)(o_level, buf, end_hook_info); -} - -void yaz_log_time_format(const char *fmt) -{ - if ( !fmt || !*fmt) - { /* no format, default to new */ - l_actual_format = l_new_default_format; - return; - } - if (0==strcmp(fmt, "old")) - { /* force the old format */ - l_actual_format = l_old_default_format; - return; - } - /* else use custom format */ - strncpy(l_custom_format, fmt, TIMEFORMAT_LEN-1); - l_custom_format[TIMEFORMAT_LEN-1] = '\0'; - l_actual_format = l_custom_format; -} - -/** cleans a loglevel name from leading paths and suffixes */ -static char *clean_name(const char *name, int len, char *namebuf, int buflen) -{ - char *p = namebuf; - char *start = namebuf; - if (buflen <= len) - len = buflen-1; - strncpy(namebuf, name, len); - namebuf[len] = '\0'; - while ((p = strchr(start, '/'))) - start = p+1; - if ((p = strrchr(start, '.'))) - *p = '\0'; - return start; -} - -static int define_module_bit(const char *name) -{ - int i; - - for (i = 0; mask_names[i].name; i++) - if (0 == strcmp(mask_names[i].name, name)) - { - return mask_names[i].mask; - } - if ( (i>=MAX_MASK_NAMES) || (next_log_bit & (1<<31) )) - { - yaz_log(YLOG_WARN, "No more log bits left, not logging '%s'", name); - return 0; - } - mask_names[i].mask = next_log_bit; - next_log_bit = next_log_bit<<1; - mask_names[i].name = (char *) malloc(strlen(name)+1); - strcpy(mask_names[i].name, name); - mask_names[i+1].name = NULL; - mask_names[i+1].mask = 0; - return mask_names[i].mask; -} - -int yaz_log_module_level(const char *name) -{ - int i; - char clean[255]; - char *n = clean_name(name, strlen(name), clean, sizeof(clean)); - internal_log_init(); - - for (i = 0; mask_names[i].name; i++) - if (0==strcmp(n, mask_names[i].name)) - { - yaz_log(YLOG_LOGLVL, "returning log bit 0x%x for '%s' %s", - mask_names[i].mask, n, - strcmp(n,name) ? name : ""); - return mask_names[i].mask; - } - yaz_log(YLOG_LOGLVL, "returning NO log bit for '%s' %s", n, - strcmp(n, name) ? name : "" ); - return 0; -} - -int yaz_log_mask_str(const char *str) -{ - internal_log_init(); /* since l_level may be affected */ - return yaz_log_mask_str_x(str, l_level); -} - -int yaz_log_mask_str_x(const char *str, int level) -{ - const char *p; - - internal_log_init(); - while (*str) - { - int negated = 0; - for (p = str; *p && *p != ','; p++) - ; - if (*str=='-') - { - negated = 1; - str++; - } - if (isdigit(*(unsigned char *) str)) - { - level = atoi(str); - } - else - { - char clean[509]; - char *n = clean_name(str, p-str, clean, sizeof(clean)); - int mask = define_module_bit(n); - if (!mask) - level = 0; /* 'none' clears them all */ - else if (negated) - level &= ~mask; - else - level |= mask; - } - if (*p == ',') - p++; - str = p; - } - return level; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ diff --git a/dependencies/yaz_3.0.14/src/logrpn.c b/dependencies/yaz_3.0.14/src/logrpn.c deleted file mode 100644 index e7e9850..0000000 --- a/dependencies/yaz_3.0.14/src/logrpn.c +++ /dev/null @@ -1,406 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * All rights reserved. - * - * $Id: logrpn.c,v 1.18 2007/05/08 08:22:36 adam Exp $ - */ - -/** - * \file logrpn.c - * \brief Implements Z39.50 Query Printing - */ - -#include -#include - -#include -#include -#include - -static const char *relToStr(int v) -{ - const char *str = 0; - switch (v) - { - case 1: str = "Less than"; break; - case 2: str = "Less than or equal"; break; - case 3: str = "Equal"; break; - case 4: str = "Greater or equal"; break; - case 5: str = "Greater than"; break; - case 6: str = "Not equal"; break; - case 100: str = "Phonetic"; break; - case 101: str = "Stem"; break; - case 102: str = "Relevance"; break; - case 103: str = "AlwaysMatches"; break; - } - return str; -} - -static void attrStr (int type, int value, char *str) -{ - const char *rstr; - *str = '\0'; - switch (type) - { - case 1: - sprintf (str, "use"); - break; - case 2: - rstr = relToStr(value); - if (rstr) - sprintf(str, "relation=%s", rstr); - else - sprintf(str, "relation=%d", value); - break; - case 3: - switch (value) - { - case 1: - sprintf(str, "position=First in field"); - break; - case 2: - sprintf(str, "position=First in any subfield"); - break; - case 3: - sprintf(str, "position=Any position in field"); - break; - default: - sprintf(str, "position"); - } - break; - case 4: - switch (value) - { - case 1: - sprintf(str, "structure=Phrase"); - break; - case 2: - sprintf(str, "structure=Word"); - break; - case 3: - sprintf(str, "structure=Key"); - break; - case 4: - sprintf(str, "structure=Year"); - break; - case 5: - sprintf(str, "structure=Date"); - break; - case 6: - sprintf(str, "structure=Word list"); - break; - case 100: - sprintf(str, "structure=Date (un)"); - break; - case 101: - sprintf(str, "structure=Name (norm)"); - break; - case 102: - sprintf(str, "structure=Name (un)"); - break; - case 103: - sprintf(str, "structure=Structure"); - break; - case 104: - sprintf(str, "structure=urx"); - break; - case 105: - sprintf(str, "structure=free-form-text"); - break; - case 106: - sprintf(str, "structure=document-text"); - break; - case 107: - sprintf(str, "structure=local-number"); - break; - case 108: - sprintf(str, "structure=string"); - break; - case 109: - sprintf(str, "structure=numeric string"); - break; - default: - sprintf(str, "structure"); - } - break; - case 5: - switch (value) - { - case 1: - sprintf(str, "truncation=Right"); - break; - case 2: - sprintf(str, "truncation=Left"); - break; - case 3: - sprintf(str, "truncation=Left&right"); - break; - case 100: - sprintf(str, "truncation=Do not truncate"); - break; - case 101: - sprintf(str, "truncation=Process #"); - break; - case 102: - sprintf(str, "truncation=re-1"); - break; - case 103: - sprintf(str, "truncation=re-2"); - break; - case 104: - sprintf(str, "truncation=CCL"); - break; - default: - sprintf(str, "truncation"); - } - break; - case 6: - switch(value) - { - case 1: - sprintf(str, "completeness=Incomplete subfield"); - break; - case 2: - sprintf(str, "completeness=Complete subfield"); - break; - case 3: - sprintf(str, "completeness=Complete field"); - break; - default: - sprintf(str, "completeness"); - } - break; - } - if (*str) - sprintf(str + strlen(str), " (%d=%d)", type, value); - else - sprintf(str, "%d=%d", type, value); -} - -/* - * zlog_attributes: print attributes of term - */ -static void zlog_attributes(Z_AttributesPlusTerm *t, int depth, - const Odr_oid *ast, int loglevel) -{ - int of, i; - char str[80]; - int num_attributes = t->attributes->num_attributes; - - for (of = 0; of < num_attributes; of++) - { - char attset_name_buf[OID_STR_MAX]; - const char *attset_name = 0; - Z_AttributeElement *element; - element = t->attributes->attributes[of]; - if (element->attributeSet) - { - attset_name = yaz_oid_to_string_buf(element->attributeSet, - 0, attset_name_buf); - } - if (!attset_name) - attset_name = ""; - switch (element->which) - { - case Z_AttributeValue_numeric: - attrStr (*element->attributeType, - *element->value.numeric, str); - yaz_log (loglevel, "%*.0s%s %s", depth, "", attset_name, str); - break; - case Z_AttributeValue_complex: - yaz_log (loglevel, "%*.0s%s attributeType=%d complex", - depth, "", attset_name, *element->attributeType); - for (i = 0; ivalue.complex->num_list; i++) - { - if (element->value.complex->list[i]->which == - Z_StringOrNumeric_string) - yaz_log (loglevel, "%*.0s string: '%s'", depth, "", - element->value.complex->list[i]->u.string); - else if (element->value.complex->list[i]->which == - Z_StringOrNumeric_numeric) - yaz_log (loglevel, "%*.0s numeric: '%d'", depth, "", - *element->value.complex->list[i]->u.numeric); - } - break; - default: - yaz_log (loglevel, "%.*s%s attribute unknown", - depth, "", attset_name); - } - } -} - -static char *complex_op_name(Z_Operator *op) -{ - switch (op->which) - { - case Z_Operator_and: - return "and"; - case Z_Operator_or: - return "or"; - case Z_Operator_and_not: - return "not"; - case Z_Operator_prox: - return "prox"; - default: - return "unknown complex operator"; - } -} - -static char *prox_unit_name(Z_ProximityOperator *op) -{ - if (op->which!=Z_ProximityOperator_known) - return "private"; - switch(*op->u.known) - { - case Z_ProxUnit_character: return "character"; - case Z_ProxUnit_word: return "word"; - case Z_ProxUnit_sentence: return "sentence"; - case Z_ProxUnit_paragraph: return "paragraph"; - case Z_ProxUnit_section: return "section"; - case Z_ProxUnit_chapter: return "chapter"; - case Z_ProxUnit_document: return "document"; - case Z_ProxUnit_element: return "element"; - case Z_ProxUnit_subelement: return "subelement"; - case Z_ProxUnit_elementType: return "elementType"; - case Z_ProxUnit_byte: return "byte"; - default: return "unknown"; - } -} - -static void zlog_structure(Z_RPNStructure *zs, int depth, - const Odr_oid *ast, int loglevel) -{ - if (zs->which == Z_RPNStructure_complex) - { - Z_Operator *op = zs->u.complex->roperator; - switch (op->which) - { - case Z_Operator_and: - case Z_Operator_or: - case Z_Operator_and_not: - yaz_log (loglevel, "%*.0s %s", depth, "", complex_op_name(op) ); - break; - case Z_Operator_prox: - yaz_log (loglevel, "%*.0s prox excl=%s dist=%d order=%s " - "rel=%s unit=%s", - depth, "", op->u.prox->exclusion ? - (*op->u.prox->exclusion ? "T" : "F") : "N", - *op->u.prox->distance, - *op->u.prox->ordered ? "T" : "F", - relToStr(*op->u.prox->relationType), - prox_unit_name(op->u.prox) ); - break; - default: - yaz_log (loglevel, "%*.0s unknown complex", depth, ""); - return; - } - zlog_structure (zs->u.complex->s1, depth+2, ast, loglevel); - zlog_structure (zs->u.complex->s2, depth+2, ast, loglevel); - } - else if (zs->which == Z_RPNStructure_simple) - { - if (zs->u.simple->which == Z_Operand_APT) - { - Z_AttributesPlusTerm *zapt = zs->u.simple->u.attributesPlusTerm; - - switch (zapt->term->which) - { - case Z_Term_general: - yaz_log (loglevel, "%*.0s term '%.*s' (general)", depth, "", - zapt->term->u.general->len, - zapt->term->u.general->buf); - break; - case Z_Term_characterString: - yaz_log (loglevel, "%*.0s term '%s' (string)", depth, "", - zapt->term->u.characterString); - break; - case Z_Term_numeric: - yaz_log (loglevel, "%*.0s term '%d' (numeric)", depth, "", - *zapt->term->u.numeric); - break; - case Z_Term_null: - yaz_log (loglevel, "%*.0s term (null)", depth, ""); - break; - default: - yaz_log (loglevel, "%*.0s term (not general)", depth, ""); - } - zlog_attributes(zapt, depth+2, ast, loglevel); - } - else if (zs->u.simple->which == Z_Operand_resultSetId) - { - yaz_log (loglevel, "%*.0s set '%s'", depth, "", - zs->u.simple->u.resultSetId); - } - else - yaz_log (loglevel, "%*.0s unknown simple structure", depth, ""); - } - else - yaz_log (loglevel, "%*.0s unknown structure", depth, ""); -} - -void log_rpn_query_level (int loglevel, Z_RPNQuery *rpn) -{ - zlog_structure(rpn->RPNStructure, 0, rpn->attributeSetId, loglevel); -} - -void log_rpn_query(Z_RPNQuery *rpn) -{ - log_rpn_query_level(YLOG_LOG, rpn); -} - -void log_scan_term_level(int loglevel, - Z_AttributesPlusTerm *zapt, const Odr_oid *ast) -{ - int depth = 0; - if (!loglevel) - return; - if (zapt->term->which == Z_Term_general) - { - yaz_log (loglevel, "%*.0s term '%.*s' (general)", depth, "", - zapt->term->u.general->len, zapt->term->u.general->buf); - } - else - yaz_log (loglevel, "%*.0s term (not general)", depth, ""); - zlog_attributes(zapt, depth+2, ast, loglevel); -} - -void log_scan_term(Z_AttributesPlusTerm *zapt, const Odr_oid *ast) -{ - log_scan_term_level (YLOG_LOG, zapt, ast); -} - -void yaz_log_zquery_level (int loglevel, Z_Query *q) -{ - if (!loglevel) - return; - switch (q->which) - { - case Z_Query_type_1: case Z_Query_type_101: - log_rpn_query_level (loglevel, q->u.type_1); - break; - case Z_Query_type_2: - yaz_log(loglevel, "CCL: %.*s", q->u.type_2->len, q->u.type_2->buf); - break; - case Z_Query_type_100: - yaz_log(loglevel, "Z39.58: %.*s", q->u.type_100->len, - q->u.type_100->buf); - break; - case Z_Query_type_104: - if (q->u.type_104->which == Z_External_CQL) - yaz_log (loglevel, "CQL: %s", q->u.type_104->u.cql); - } -} - -void yaz_log_zquery (Z_Query *q) -{ - yaz_log_zquery_level(YLOG_LOG, q); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/marc8.c b/dependencies/yaz_3.0.14/src/marc8.c deleted file mode 100644 index 9e619a0..0000000 --- a/dependencies/yaz_3.0.14/src/marc8.c +++ /dev/null @@ -1,42250 +0,0 @@ -/** \file marc8.c - \brief Character conversion, generated from ./codetables.xml - - Generated automatically by charconv.tcl -*/ -#include - - struct yaz_iconv_trie_flat { - char from[6]; - unsigned combining : 1; - unsigned to : 24; - }; - struct yaz_iconv_trie_dir { - int ptr : 15; - unsigned combining : 1; - unsigned to : 24; - }; - - struct yaz_iconv_trie { - struct yaz_iconv_trie_flat *flat; - struct yaz_iconv_trie_dir *dir; - }; - - - static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp, - size_t inbytesleft, size_t *no_read, int *combining) - { - struct yaz_iconv_trie *t = (ptr > 0) ? ptrs[ptr-1] : 0; - if (!t || inbytesleft < 1) - return 0; - if (t->dir) - { - size_t ch = inp[0] & 0xff; - unsigned long code = - lookup(ptrs, t->dir[ch].ptr, inp+1, inbytesleft-1, no_read, combining); - if (code) - { - (*no_read)++; - return code; - } - if (t->dir[ch].to) - { - code = t->dir[ch].to; - *combining = t->dir[ch].combining; - *no_read = 1; - return code; - } - } - else - { - struct yaz_iconv_trie_flat *flat = t->flat; - while (flat->to) - { - size_t len = strlen(flat->from); - if (len <= inbytesleft) - { - if (memcmp(flat->from, inp, len) == 0) - { - *no_read = len; - *combining = flat->combining; - return flat->to; - } - } - flat++; - } - } - return 0; - } - -/* TRIE: size 99 */ -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8_42page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x001B} /* ESCAPE (Unlikely to occur in UCS/Unicode) */, - {0, 0, 0}, - {0, 0, 0x001D} /* RECORD TERMINATOR / GROUP SEPARATOR */, - {0, 0, 0x001E} /* FIELD TERMINATOR / RECORD SEPARATOR */, - {0, 0, 0x001F} /* SUBFIELD DELIMITER / UNIT SEPARATOR */, - {0, 0, 0x0020} /* SPACE, BLANK / SPACE */, - {0, 0, 0x0021} /* EXCLAMATION MARK */, - {0, 0, 0x0022} /* QUOTATION MARK */, - {0, 0, 0x0023} /* NUMBER SIGN */, - {0, 0, 0x0024} /* DOLLAR SIGN */, - {0, 0, 0x0025} /* PERCENT SIGN */, - {0, 0, 0x0026} /* AMPERSAND */, - {0, 0, 0x0027} /* APOSTROPHE */, - {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, - {0, 0, 0x0029} /* CLOSING PARENTHESIS / CLOSING PARENTHESIS */, - {0, 0, 0x002A} /* ASTERISK */, - {0, 0, 0x002B} /* PLUS SIGN */, - {0, 0, 0x002C} /* COMMA */, - {0, 0, 0x002D} /* HYPHEN-MINUS */, - {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */, - {0, 0, 0x002F} /* SLASH / SOLIDUS */, - {0, 0, 0x0030} /* DIGIT ZERO */, - {0, 0, 0x0031} /* DIGIT ONE */, - {0, 0, 0x0032} /* DIGIT TWO */, - {0, 0, 0x0033} /* DIGIT THREE */, - {0, 0, 0x0034} /* DIGIT FOUR */, - {0, 0, 0x0035} /* DIGIT FIVE */, - {0, 0, 0x0036} /* DIGIT SIX */, - {0, 0, 0x0037} /* DIGIT SEVEN */, - {0, 0, 0x0038} /* DIGIT EIGHT */, - {0, 0, 0x0039} /* DIGIT NINE */, - {0, 0, 0x003A} /* COLON */, - {0, 0, 0x003B} /* SEMICOLON */, - {0, 0, 0x003C} /* LESS-THAN SIGN */, - {0, 0, 0x003D} /* EQUALS SIGN */, - {0, 0, 0x003E} /* GREATER-THAN SIGN */, - {0, 0, 0x003F} /* QUESTION MARK */, - {0, 0, 0x0040} /* COMMERCIAL AT */, - {0, 0, 0x0041} /* LATIN CAPITAL LETTER A */, - {0, 0, 0x0042} /* LATIN CAPITAL LETTER B */, - {0, 0, 0x0043} /* LATIN CAPITAL LETTER C */, - {0, 0, 0x0044} /* LATIN CAPITAL LETTER D */, - {0, 0, 0x0045} /* LATIN CAPITAL LETTER E */, - {0, 0, 0x0046} /* LATIN CAPITAL LETTER F */, - {0, 0, 0x0047} /* LATIN CAPITAL LETTER G */, - {0, 0, 0x0048} /* LATIN CAPITAL LETTER H */, - {0, 0, 0x0049} /* LATIN CAPITAL LETTER I */, - {0, 0, 0x004A} /* LATIN CAPITAL LETTER J */, - {0, 0, 0x004B} /* LATIN CAPITAL LETTER K */, - {0, 0, 0x004C} /* LATIN CAPITAL LETTER L */, - {0, 0, 0x004D} /* LATIN CAPITAL LETTER M */, - {0, 0, 0x004E} /* LATIN CAPITAL LETTER N */, - {0, 0, 0x004F} /* LATIN CAPITAL LETTER O */, - {0, 0, 0x0050} /* LATIN CAPITAL LETTER P */, - {0, 0, 0x0051} /* LATIN CAPITAL LETTER Q */, - {0, 0, 0x0052} /* LATIN CAPITAL LETTER R */, - {0, 0, 0x0053} /* LATIN CAPITAL LETTER S */, - {0, 0, 0x0054} /* LATIN CAPITAL LETTER T */, - {0, 0, 0x0055} /* LATIN CAPITAL LETTER U */, - {0, 0, 0x0056} /* LATIN CAPITAL LETTER V */, - {0, 0, 0x0057} /* LATIN CAPITAL LETTER W */, - {0, 0, 0x0058} /* LATIN CAPITAL LETTER X */, - {0, 0, 0x0059} /* LATIN CAPITAL LETTER Y */, - {0, 0, 0x005A} /* LATIN CAPITAL LETTER Z */, - {0, 0, 0x005B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, - {0, 0, 0x005C} /* REVERSE SLASH / REVERSE SOLIDUS */, - {0, 0, 0x005D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, - {0, 0, 0x005E} /* SPACING CIRCUMFLEX / CIRCUMFLEX ACCENT */, - {0, 0, 0x005F} /* SPACING UNDERSCORE / LOW LINE */, - {0, 0, 0x0060} /* SPACING GRAVE / GRAVE ACCENT */, - {0, 0, 0x0061} /* LATIN SMALL LETTER A */, - {0, 0, 0x0062} /* LATIN SMALL LETTER B */, - {0, 0, 0x0063} /* LATIN SMALL LETTER C */, - {0, 0, 0x0064} /* LATIN SMALL LETTER D */, - {0, 0, 0x0065} /* LATIN SMALL LETTER E */, - {0, 0, 0x0066} /* LATIN SMALL LETTER F */, - {0, 0, 0x0067} /* LATIN SMALL LETTER G */, - {0, 0, 0x0068} /* LATIN SMALL LETTER H */, - {0, 0, 0x0069} /* LATIN SMALL LETTER I */, - {0, 0, 0x006A} /* LATIN SMALL LETTER J */, - {0, 0, 0x006B} /* LATIN SMALL LETTER K */, - {0, 0, 0x006C} /* LATIN SMALL LETTER L */, - {0, 0, 0x006D} /* LATIN SMALL LETTER M */, - {0, 0, 0x006E} /* LATIN SMALL LETTER N */, - {0, 0, 0x006F} /* LATIN SMALL LETTER O */, - {0, 0, 0x0070} /* LATIN SMALL LETTER P */, - {0, 0, 0x0071} /* LATIN SMALL LETTER Q */, - {0, 0, 0x0072} /* LATIN SMALL LETTER R */, - {0, 0, 0x0073} /* LATIN SMALL LETTER S */, - {0, 0, 0x0074} /* LATIN SMALL LETTER T */, - {0, 0, 0x0075} /* LATIN SMALL LETTER U */, - {0, 0, 0x0076} /* LATIN SMALL LETTER V */, - {0, 0, 0x0077} /* LATIN SMALL LETTER W */, - {0, 0, 0x0078} /* LATIN SMALL LETTER X */, - {0, 0, 0x0079} /* LATIN SMALL LETTER Y */, - {0, 0, 0x007A} /* LATIN SMALL LETTER Z */, - {0, 0, 0x007B} /* OPENING CURLY BRACKET / LEFT CURLY BRACKET */, - {0, 0, 0x007C} /* VERTICAL BAR (FILL) / VERTICAL LINE */, - {0, 0, 0x007D} /* CLOSING CURLY BRACKET / RIGHT CURLY BRACKET */, - {0, 0, 0x007E} /* SPACING TILDE / TILDE */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_42page0 = { - 0, marc8_42page0_dir -}; -struct yaz_iconv_trie *marc8_42ptrs [] = { - &marc8_42page0, -0, }; - -unsigned long yaz_marc8_42_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_42ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 67 */ -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8_45page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x0098} /* NON-SORT BEGIN / START OF STRING */, - {0, 0, 0x009C} /* NON-SORT END / STRING TERMINATOR */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x200D} /* JOINER / ZERO WIDTH JOINER */, - {0, 0, 0x200C} /* NON-JOINER / ZERO WIDTH NON-JOINER */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x0141} /* UPPERCASE POLISH L / LATIN CAPITAL LETTER L WITH STROKE */, - {0, 0, 0x00D8} /* UPPERCASE SCANDINAVIAN O / LATIN CAPITAL LETTER O WITH STROKE */, - {0, 0, 0x0110} /* UPPERCASE D WITH CROSSBAR / LATIN CAPITAL LETTER D WITH STROKE */, - {0, 0, 0x00DE} /* UPPERCASE ICELANDIC THORN / LATIN CAPITAL LETTER THORN (Icelandic) */, - {0, 0, 0x00C6} /* UPPERCASE DIGRAPH AE / LATIN CAPITAL LIGATURE AE */, - {0, 0, 0x0152} /* UPPERCASE DIGRAPH OE / LATIN CAPITAL LIGATURE OE */, - {0, 0, 0x02B9} /* SOFT SIGN, PRIME / MODIFIER LETTER PRIME */, - {0, 0, 0x00B7} /* MIDDLE DOT */, - {0, 0, 0x266D} /* MUSIC FLAT SIGN */, - {0, 0, 0x00AE} /* PATENT MARK / REGISTERED SIGN */, - {0, 0, 0x00B1} /* PLUS OR MINUS / PLUS-MINUS SIGN */, - {0, 0, 0x01A0} /* UPPERCASE O-HOOK / LATIN CAPITAL LETTER O WITH HORN */, - {0, 0, 0x01AF} /* UPPERCASE U-HOOK / LATIN CAPITAL LETTER U WITH HORN */, - {0, 0, 0x02BC} /* ALIF / MODIFIER LETTER APOSTROPHE */, - {0, 0, 0}, - {0, 0, 0x02BB} /* AYN / MODIFIER LETTER TURNED COMMA */, - {0, 0, 0x0142} /* LOWERCASE POLISH L / LATIN SMALL LETTER L WITH STROKE */, - {0, 0, 0x00F8} /* LOWERCASE SCANDINAVIAN O / LATIN SMALL LETTER O WITH STROKE */, - {0, 0, 0x0111} /* LOWERCASE D WITH CROSSBAR / LATIN SMALL LETTER D WITH STROKE */, - {0, 0, 0x00FE} /* LOWERCASE ICELANDIC THORN / LATIN SMALL LETTER THORN (Icelandic) */, - {0, 0, 0x00E6} /* LOWERCASE DIGRAPH AE / LATIN SMALL LIGATURE AE */, - {0, 0, 0x0153} /* LOWERCASE DIGRAPH OE / LATIN SMALL LIGATURE OE */, - {0, 0, 0x02BA} /* HARD SIGN, DOUBLE PRIME / MODIFIER LETTER DOUBLE PRIME */, - {0, 0, 0x0131} /* LOWERCASE TURKISH I / LATIN SMALL LETTER DOTLESS I */, - {0, 0, 0x00A3} /* BRITISH POUND / POUND SIGN */, - {0, 0, 0x00F0} /* LOWERCASE ETH / LATIN SMALL LETTER ETH (Icelandic) */, - {0, 0, 0}, - {0, 0, 0x01A1} /* LOWERCASE O-HOOK / LATIN SMALL LETTER O WITH HORN */, - {0, 0, 0x01B0} /* LOWERCASE U-HOOK / LATIN SMALL LETTER U WITH HORN */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x00B0} /* DEGREE SIGN */, - {0, 0, 0x2113} /* SCRIPT SMALL L */, - {0, 0, 0x2117} /* SOUND RECORDING COPYRIGHT */, - {0, 0, 0x00A9} /* COPYRIGHT SIGN */, - {0, 0, 0x266F} /* MUSIC SHARP SIGN */, - {0, 0, 0x00BF} /* INVERTED QUESTION MARK */, - {0, 0, 0x00A1} /* INVERTED EXCLAMATION MARK */, - {0, 0, 0x00DF} /* ESZETT SYMBOL */, - {0, 0, 0x20AC} /* EURO SIGN */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 1, 0x0309} /* PSEUDO QUESTION MARK / COMBINING HOOK ABOVE */, - {0, 1, 0x0300} /* GRAVE / COMBINING GRAVE ACCENT (Varia) */, - {0, 1, 0x0301} /* ACUTE / COMBINING ACUTE ACCENT (Oxia) */, - {0, 1, 0x0302} /* CIRCUMFLEX / COMBINING CIRCUMFLEX ACCENT */, - {0, 1, 0x0303} /* TILDE / COMBINING TILDE */, - {0, 1, 0x0304} /* MACRON / COMBINING MACRON */, - {0, 1, 0x0306} /* BREVE / COMBINING BREVE (Vrachy) */, - {0, 1, 0x0307} /* SUPERIOR DOT / COMBINING DOT ABOVE */, - {0, 1, 0x0308} /* UMLAUT, DIAERESIS / COMBINING DIAERESIS (Dialytika) */, - {0, 1, 0x030C} /* HACEK / COMBINING CARON */, - {0, 1, 0x030A} /* CIRCLE ABOVE, ANGSTROM / COMBINING RING ABOVE */, - {0, 1, 0x0361} /* LIGATURE, FIRST HALF / COMBINING DOUBLE INVERTED BREVE */, - {0, 0, 0}, - {0, 1, 0x0315} /* HIGH COMMA, OFF CENTER / COMBINING COMMA ABOVE RIGHT */, - {0, 1, 0x030B} /* DOUBLE ACUTE / COMBINING DOUBLE ACUTE ACCENT */, - {0, 1, 0x0310} /* CANDRABINDU / COMBINING CANDRABINDU */, - {0, 1, 0x0327} /* CEDILLA / COMBINING CEDILLA */, - {0, 1, 0x0328} /* RIGHT HOOK, OGONEK / COMBINING OGONEK */, - {0, 1, 0x0323} /* DOT BELOW / COMBINING DOT BELOW */, - {0, 1, 0x0324} /* DOUBLE DOT BELOW / COMBINING DIAERESIS BELOW */, - {0, 1, 0x0325} /* CIRCLE BELOW / COMBINING RING BELOW */, - {0, 1, 0x0333} /* DOUBLE UNDERSCORE / COMBINING DOUBLE LOW LINE */, - {0, 1, 0x0332} /* UNDERSCORE / COMBINING LOW LINE */, - {0, 1, 0x0326} /* LEFT HOOK (COMMA BELOW) / COMBINING COMMA BELOW */, - {0, 1, 0x031C} /* RIGHT CEDILLA / COMBINING LEFT HALF RING BELOW */, - {0, 1, 0x032E} /* UPADHMANIYA / COMBINING BREVE BELOW */, - {0, 1, 0x0360} /* DOUBLE TILDE, FIRST HALF / COMBINING DOUBLE TILDE */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 1, 0x0313} /* HIGH COMMA, CENTERED / COMBINING COMMA ABOVE (Psili) */, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_45page0 = { - 0, marc8_45page0_dir -}; -struct yaz_iconv_trie *marc8_45ptrs [] = { - &marc8_45page0, -0, }; - -unsigned long yaz_marc8_45_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_45ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 3 */ -/* PAGE 0 */ -struct yaz_iconv_trie_flat marc8_67page0_flat[] = { - {"\x61", 0, 0x03B1}, /* GREEK SMALL LETTER ALPHA */ - {"\x62", 0, 0x03B2}, /* GREEK SMALL LETTER BETA */ - {"\x63", 0, 0x03B3}, /* GREEK SMALL LETTER GAMMA */ - {"", 0} -}; -struct yaz_iconv_trie marc8_67page0 = { - marc8_67page0_flat, 0 -}; -struct yaz_iconv_trie *marc8_67ptrs [] = { - &marc8_67page0, -0, }; - -unsigned long yaz_marc8_67_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_67ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 14 */ -/* PAGE 0 */ -struct yaz_iconv_trie_flat marc8_62page0_flat[] = { - {"\x28", 0, 0x208D}, /* SUBSCRIPT OPENING PARENTHESIS / SUBSCRIPT LEFT PARENTHESIS */ - {"\x29", 0, 0x208E}, /* SUBSCRIPT CLOSING PARENTHESIS / SUBSCRIPT RIGHT PARENTHESIS */ - {"\x2B", 0, 0x208A}, /* SUBSCRIPT PLUS SIGN */ - {"\x2D", 0, 0x208B}, /* SUBSCRIPT HYPHEN-MINUS / SUBSCRIPT MINUS */ - {"\x30", 0, 0x2080}, /* SUBSCRIPT DIGIT ZERO */ - {"\x31", 0, 0x2081}, /* SUBSCRIPT DIGIT ONE */ - {"\x32", 0, 0x2082}, /* SUBSCRIPT DIGIT TWO */ - {"\x33", 0, 0x2083}, /* SUBSCRIPT DIGIT THREE */ - {"\x34", 0, 0x2084}, /* SUBSCRIPT DIGIT FOUR */ - {"\x35", 0, 0x2085}, /* SUBSCRIPT DIGIT FIVE */ - {"\x36", 0, 0x2086}, /* SUBSCRIPT DIGIT SIX */ - {"\x37", 0, 0x2087}, /* SUBSCRIPT DIGIT SEVEN */ - {"\x38", 0, 0x2088}, /* SUBSCRIPT DIGIT EIGHT */ - {"\x39", 0, 0x2089}, /* SUBSCRIPT DIGIT NINE */ - {"", 0} -}; -struct yaz_iconv_trie marc8_62page0 = { - marc8_62page0_flat, 0 -}; -struct yaz_iconv_trie *marc8_62ptrs [] = { - &marc8_62page0, -0, }; - -unsigned long yaz_marc8_62_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_62ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 14 */ -/* PAGE 0 */ -struct yaz_iconv_trie_flat marc8_70page0_flat[] = { - {"\x28", 0, 0x207D}, /* SUPERSCRIPT OPENING PARENTHESIS / SUPERSCRIPT LEFT PARENTHESIS */ - {"\x29", 0, 0x207E}, /* SUPERSCRIPT CLOSING PARENTHESIS / SUPERSCRIPT RIGHT PARENTHESIS */ - {"\x2B", 0, 0x207A}, /* SUPERSCRIPT PLUS SIGN */ - {"\x2D", 0, 0x207B}, /* SUPERSCRIPT HYPHEN-MINUS / SUPERSCRIPT MINUS */ - {"\x30", 0, 0x2070}, /* SUPERSCRIPT DIGIT ZERO */ - {"\x31", 0, 0x00B9}, /* SUPERSCRIPT DIGIT ONE */ - {"\x32", 0, 0x00B2}, /* SUPERSCRIPT DIGIT TWO */ - {"\x33", 0, 0x00B3}, /* SUPERSCRIPT DIGIT THREE */ - {"\x34", 0, 0x2074}, /* SUPERSCRIPT DIGIT FOUR */ - {"\x35", 0, 0x2075}, /* SUPERSCRIPT DIGIT FIVE */ - {"\x36", 0, 0x2076}, /* SUPERSCRIPT DIGIT SIX */ - {"\x37", 0, 0x2077}, /* SUPERSCRIPT DIGIT SEVEN */ - {"\x38", 0, 0x2078}, /* SUPERSCRIPT DIGIT EIGHT */ - {"\x39", 0, 0x2079}, /* SUPERSCRIPT DIGIT NINE */ - {"", 0} -}; -struct yaz_iconv_trie marc8_70page0 = { - marc8_70page0_flat, 0 -}; -struct yaz_iconv_trie *marc8_70ptrs [] = { - &marc8_70page0, -0, }; - -unsigned long yaz_marc8_70_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_70ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 78 */ -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8_32page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x0021} /* EXCLAMATION MARK */, - {0, 0, 0x05F4} /* QUOTATION MARK, GERSHAYIM / HEBREW PUNCTUATION GERSHAYIM */, - {0, 0, 0x0023} /* NUMBER SIGN */, - {0, 0, 0x0024} /* DOLLAR SIGN */, - {0, 0, 0x0025} /* PERCENT SIGN */, - {0, 0, 0x0026} /* AMPERSAND */, - {0, 0, 0x05F3} /* APOSTROPHE, GERESH / HEBREW PUNCTUATION GERESH */, - {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, - {0, 0, 0x0029} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, - {0, 0, 0x002A} /* ASTERISK */, - {0, 0, 0x002B} /* PLUS SIGN */, - {0, 0, 0x002C} /* COMMA */, - {0, 0, 0x05BE} /* HYPHEN-MINUS, MAKEF / HEBREW PUNCTUATION MAQAF */, - {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */, - {0, 0, 0x002F} /* SLASH / SOLIDUS */, - {0, 0, 0x0030} /* DIGIT ZERO */, - {0, 0, 0x0031} /* DIGIT ONE */, - {0, 0, 0x0032} /* DIGIT TWO */, - {0, 0, 0x0033} /* DIGIT THREE */, - {0, 0, 0x0034} /* DIGIT FOUR */, - {0, 0, 0x0035} /* DIGIT FIVE */, - {0, 0, 0x0036} /* DIGIT SIX */, - {0, 0, 0x0037} /* DIGIT SEVEN */, - {0, 0, 0x0038} /* DIGIT EIGHT */, - {0, 0, 0x0039} /* DIGIT NINE */, - {0, 0, 0x003A} /* COLON */, - {0, 0, 0x003B} /* SEMICOLON */, - {0, 0, 0x003C} /* LESS-THAN SIGN */, - {0, 0, 0x003D} /* EQUALS SIGN */, - {0, 0, 0x003E} /* GREATER-THAN SIGN */, - {0, 0, 0x003F} /* QUESTION MARK */, - {0, 1, 0x05B7} /* HEBREW POINT PATAH */, - {0, 1, 0x05B8} /* KAMATS / HEBREW POINT QAMATS */, - {0, 1, 0x05B6} /* HEBREW POINT SEGOL */, - {0, 1, 0x05B5} /* TSEREH / HEBREW POINT TSERE */, - {0, 1, 0x05B4} /* HIRIK / HEBREW POINT HIRIQ */, - {0, 1, 0x05B9} /* HOLAM, LEFT SIN DOT / HEBREW POINT HOLAM */, - {0, 1, 0x05BB} /* KUBUTS / HEBREW POINT QUBUTS */, - {0, 1, 0x05B0} /* HEBREW POINT SHEVA */, - {0, 1, 0x05B2} /* HEBREW POINT HATAF PATAH */, - {0, 1, 0x05B3} /* HATAF KAMATS / HEBREW POINT HATAF QAMATS */, - {0, 1, 0x05B1} /* HEBREW POINT HATAF SEGOL */, - {0, 1, 0x05BC} /* HEBREW POINT DAGESH OR MAPIQ */, - {0, 1, 0x05BF} /* RAFEH / HEBREW POINT RAFE */, - {0, 1, 0x05C1} /* RIGHT SHIN DOT / HEBREW POINT SHIN DOT */, - {0, 1, 0xFB1E} /* VARIKA / HEBREW POINT JUDEO-SPANISH VARIKA */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x005B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, - {0, 0, 0}, - {0, 0, 0x005D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x05D0} /* HEBREW LETTER ALEF */, - {0, 0, 0x05D1} /* HEBREW LETTER BET */, - {0, 0, 0x05D2} /* HEBREW LETTER GIMEL */, - {0, 0, 0x05D3} /* HEBREW LETTER DALET */, - {0, 0, 0x05D4} /* HEBREW LETTER HE */, - {0, 0, 0x05D5} /* HEBREW LETTER VAV */, - {0, 0, 0x05D6} /* HEBREW LETTER ZAYIN */, - {0, 0, 0x05D7} /* HEBREW LETTER HET */, - {0, 0, 0x05D8} /* HEBREW LETTER TET */, - {0, 0, 0x05D9} /* HEBREW LETTER YOD */, - {0, 0, 0x05DA} /* HEBREW LETTER FINAL KAF */, - {0, 0, 0x05DB} /* HEBREW LETTER KAF */, - {0, 0, 0x05DC} /* HEBREW LETTER LAMED */, - {0, 0, 0x05DD} /* HEBREW LETTER FINAL MEM */, - {0, 0, 0x05DE} /* HEBREW LETTER MEM */, - {0, 0, 0x05DF} /* HEBREW LETTER FINAL NUN */, - {0, 0, 0x05E0} /* HEBREW LETTER NUN */, - {0, 0, 0x05E1} /* HEBREW LETTER SAMEKH */, - {0, 0, 0x05E2} /* HEBREW LETTER AYIN */, - {0, 0, 0x05E3} /* HEBREW LETTER FINAL PE */, - {0, 0, 0x05E4} /* HEBREW LETTER PE */, - {0, 0, 0x05E5} /* HEBREW LETTER FINAL TSADI */, - {0, 0, 0x05E6} /* HEBREW LETTER TSADI */, - {0, 0, 0x05E7} /* HEBREW LETTER QOF / KOF */, - {0, 0, 0x05E8} /* HEBREW LETTER RESH */, - {0, 0, 0x05E9} /* HEBREW LETTER SHIN */, - {0, 0, 0x05EA} /* HEBREW LETTER TAV */, - {0, 0, 0x05F0} /* HEBREW LIGATURE YIDDISH DOUBLE VAV / TSVEY VOVN */, - {0, 0, 0x05F1} /* HEBREW LIGATURE YIDDISH VAV YOD / VOV YUD */, - {0, 0, 0x05F2} /* HEBREW LIGATURE YIDDISH DOUBLE YOD / TSVEY YUDN */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_32page0 = { - 0, marc8_32page0_dir -}; -struct yaz_iconv_trie *marc8_32ptrs [] = { - &marc8_32page0, -0, }; - -unsigned long yaz_marc8_32_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_32ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 94 */ -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8_4Epage0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x0021} /* EXCLAMATION MARK */, - {0, 0, 0x0022} /* QUOTATION MARK */, - {0, 0, 0x0023} /* NUMBER SIGN */, - {0, 0, 0x0024} /* DOLLAR SIGN */, - {0, 0, 0x0025} /* PERCENT SIGN */, - {0, 0, 0x0026} /* AMPERSAND */, - {0, 0, 0x0027} /* APOSTROPHE */, - {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, - {0, 0, 0x0029} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, - {0, 0, 0x002A} /* ASTERISK */, - {0, 0, 0x002B} /* PLUS SIGN */, - {0, 0, 0x002C} /* COMMA */, - {0, 0, 0x002D} /* HYPHEN-MINUS */, - {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */, - {0, 0, 0x002F} /* SLASH / SOLIDUS */, - {0, 0, 0x0030} /* DIGIT ZERO */, - {0, 0, 0x0031} /* DIGIT ONE */, - {0, 0, 0x0032} /* DIGIT TWO */, - {0, 0, 0x0033} /* DIGIT THREE */, - {0, 0, 0x0034} /* DIGIT FOUR */, - {0, 0, 0x0035} /* DIGIT FIVE */, - {0, 0, 0x0036} /* DIGIT SIX */, - {0, 0, 0x0037} /* DIGIT SEVEN */, - {0, 0, 0x0038} /* DIGIT EIGHT */, - {0, 0, 0x0039} /* DIGIT NINE */, - {0, 0, 0x003A} /* COLON */, - {0, 0, 0x003B} /* SEMICOLON */, - {0, 0, 0x003C} /* LESS-THAN SIGN */, - {0, 0, 0x003D} /* EQUALS SIGN */, - {0, 0, 0x003E} /* GREATER-THAN SIGN */, - {0, 0, 0x003F} /* QUESTION MARK */, - {0, 0, 0x044E} /* LOWERCASE IU / CYRILLIC SMALL LETTER YU */, - {0, 0, 0x0430} /* CYRILLIC SMALL LETTER A */, - {0, 0, 0x0431} /* CYRILLIC SMALL LETTER BE */, - {0, 0, 0x0446} /* CYRILLIC SMALL LETTER TSE */, - {0, 0, 0x0434} /* CYRILLIC SMALL LETTER DE */, - {0, 0, 0x0435} /* CYRILLIC SMALL LETTER IE */, - {0, 0, 0x0444} /* CYRILLIC SMALL LETTER EF */, - {0, 0, 0x0433} /* LOWERCASE GE / CYRILLIC SMALL LETTER GHE */, - {0, 0, 0x0445} /* LOWERCASE KHA / CYRILLIC SMALL LETTER HA */, - {0, 0, 0x0438} /* LOWERCASE II / CYRILLIC SMALL LETTER I */, - {0, 0, 0x0439} /* LOWERCASE SHORT II / CYRILLIC SMALL LETTER SHORT I */, - {0, 0, 0x043A} /* CYRILLIC SMALL LETTER KA */, - {0, 0, 0x043B} /* CYRILLIC SMALL LETTER EL */, - {0, 0, 0x043C} /* CYRILLIC SMALL LETTER EM */, - {0, 0, 0x043D} /* CYRILLIC SMALL LETTER EN */, - {0, 0, 0x043E} /* CYRILLIC SMALL LETTER O */, - {0, 0, 0x043F} /* CYRILLIC SMALL LETTER PE */, - {0, 0, 0x044F} /* LOWERCASE IA / CYRILLIC SMALL LETTER YA */, - {0, 0, 0x0440} /* CYRILLIC SMALL LETTER ER */, - {0, 0, 0x0441} /* CYRILLIC SMALL LETTER ES */, - {0, 0, 0x0442} /* CYRILLIC SMALL LETTER TE */, - {0, 0, 0x0443} /* CYRILLIC SMALL LETTER U */, - {0, 0, 0x0436} /* CYRILLIC SMALL LETTER ZHE */, - {0, 0, 0x0432} /* CYRILLIC SMALL LETTER VE */, - {0, 0, 0x044C} /* CYRILLIC SMALL LETTER SOFT SIGN */, - {0, 0, 0x044B} /* LOWERCASE YERI / CYRILLIC SMALL LETTER YERI */, - {0, 0, 0x0437} /* CYRILLIC SMALL LETTER ZE */, - {0, 0, 0x0448} /* CYRILLIC SMALL LETTER SHA */, - {0, 0, 0x044D} /* LOWERCASE REVERSED E / CYRILLIC SMALL LETTER E */, - {0, 0, 0x0449} /* CYRILLIC SMALL LETTER SHCHA */, - {0, 0, 0x0447} /* CYRILLIC SMALL LETTER CHE */, - {0, 0, 0x044A} /* CYRILLIC SMALL LETTER HARD SIGN */, - {0, 0, 0x042E} /* UPPERCASE IU / CYRILLIC CAPITAL LETTER YU */, - {0, 0, 0x0410} /* CYRILLIC CAPITAL LETTER A */, - {0, 0, 0x0411} /* CYRILLIC CAPITAL LETTER BE */, - {0, 0, 0x0426} /* CYRILLIC CAPITAL LETTER TSE */, - {0, 0, 0x0414} /* CYRILLIC CAPITAL LETTER DE */, - {0, 0, 0x0415} /* CYRILLIC CAPITAL LETTER IE */, - {0, 0, 0x0424} /* CYRILLIC CAPITAL LETTER EF */, - {0, 0, 0x0413} /* UPPERCASE GE / CYRILLIC CAPITAL LETTER GHE */, - {0, 0, 0x0425} /* UPPERCASE KHA / CYRILLIC CAPITAL LETTER HA */, - {0, 0, 0x0418} /* UPPERCASE II / CYRILLIC CAPITAL LETTER I */, - {0, 0, 0x0419} /* UPPERCASE SHORT II / CYRILLIC CAPITAL LETTER SHORT I */, - {0, 0, 0x041A} /* CYRILLIC CAPITAL LETTER KA */, - {0, 0, 0x041B} /* CYRILLIC CAPITAL LETTER EL */, - {0, 0, 0x041C} /* CYRILLIC CAPITAL LETTER EM */, - {0, 0, 0x041D} /* CYRILLIC CAPITAL LETTER EN */, - {0, 0, 0x041E} /* CYRILLIC CAPITAL LETTER O */, - {0, 0, 0x041F} /* CYRILLIC CAPITAL LETTER PE */, - {0, 0, 0x042F} /* UPPERCASE IA / CYRILLIC CAPITAL LETTER YA */, - {0, 0, 0x0420} /* CYRILLIC CAPITAL LETTER ER */, - {0, 0, 0x0421} /* CYRILLIC CAPITAL LETTER ES */, - {0, 0, 0x0422} /* CYRILLIC CAPITAL LETTER TE */, - {0, 0, 0x0423} /* CYRILLIC CAPITAL LETTER U */, - {0, 0, 0x0416} /* CYRILLIC CAPITAL LETTER ZHE */, - {0, 0, 0x0412} /* CYRILLIC CAPITAL LETTER VE */, - {0, 0, 0x042C} /* CYRILLIC CAPITAL LETTER SOFT SIGN */, - {0, 0, 0x042B} /* UPPERCASE YERI / CYRILLIC CAPITAL LETTER YERI */, - {0, 0, 0x0417} /* CYRILLIC CAPITAL LETTER ZE */, - {0, 0, 0x0428} /* CYRILLIC CAPITAL LETTER SHA */, - {0, 0, 0x042D} /* CYRILLIC CAPITAL LETTER E */, - {0, 0, 0x0429} /* CYRILLIC CAPITAL LETTER SHCHA */, - {0, 0, 0x0427} /* CYRILLIC CAPITAL LETTER CHE */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_4Epage0 = { - 0, marc8_4Epage0_dir -}; -struct yaz_iconv_trie *marc8_4Eptrs [] = { - &marc8_4Epage0, -0, }; - -unsigned long yaz_marc8_4E_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_4Eptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 42 */ -/* PAGE 0 */ -struct yaz_iconv_trie_flat marc8_51page0_flat[] = { - {"\x40", 0, 0x0491}, /* LOWERCASE GE WITH UPTURN / CYRILLIC SMALL LETTER GHE WITH UPTURN */ - {"\x41", 0, 0x0452}, /* LOWERCASE DJE / CYRILLIC SMALL LETTER DJE (Serbian) */ - {"\x42", 0, 0x0453}, /* CYRILLIC SMALL LETTER GJE */ - {"\x43", 0, 0x0454}, /* LOWERCASE E / CYRILLIC SMALL LETTER UKRAINIAN IE */ - {"\x44", 0, 0x0451}, /* CYRILLIC SMALL LETTER IO */ - {"\x45", 0, 0x0455}, /* CYRILLIC SMALL LETTER DZE */ - {"\x46", 0, 0x0456}, /* LOWERCASE I / CYRILLIC SMALL LETTER BYELORUSSIAN-UKRANIAN I */ - {"\x47", 0, 0x0457}, /* LOWERCASE YI / CYRILLIC SMALL LETTER YI (Ukrainian) */ - {"\x48", 0, 0x0458}, /* CYRILLIC SMALL LETTER JE */ - {"\x49", 0, 0x0459}, /* CYRILLIC SMALL LETTER LJE */ - {"\x4A", 0, 0x045A}, /* CYRILLIC SMALL LETTER NJE */ - {"\x4B", 0, 0x045B}, /* LOWERCASE TSHE / CYRILLIC SMALL LETTER TSHE (Serbian) */ - {"\x4C", 0, 0x045C}, /* CYRILLIC SMALL LETTER KJE */ - {"\x4D", 0, 0x045E}, /* LOWERCASE SHORT U / CYRILLIC SMALL LETTER SHORT U (Byelorussian) */ - {"\x4E", 0, 0x045F}, /* CYRILLIC SMALL LETTER DZHE */ - {"\x50", 0, 0x0463}, /* CYRILLIC SMALL LETTER YAT */ - {"\x51", 0, 0x0473}, /* CYRILLIC SMALL LETTER FITA */ - {"\x52", 0, 0x0475}, /* CYRILLIC SMALL LETTER IZHITSA */ - {"\x53", 0, 0x046B}, /* CYRILLIC SMALL LETTER BIG YUS */ - {"\x5B", 0, 0x005B}, /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */ - {"\x5D", 0, 0x005D}, /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */ - {"\x5F", 0, 0x005F}, /* SPACING UNDERSCORE / LOW LINE */ - {"\x60", 0, 0x0490}, /* UPPERCASE GE WITH UPTURN / CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ - {"\x61", 0, 0x0402}, /* UPPERCASE DJE / CYRILLIC CAPITAL LETTER DJE (Serbian) */ - {"\x62", 0, 0x0403}, /* CYRILLIC CAPITAL LETTER GJE */ - {"\x63", 0, 0x0404}, /* UPPERCASE E / CYRILLIC CAPITAL LETTER UKRAINIAN IE */ - {"\x64", 0, 0x0401}, /* CYRILLIC CAPITAL LETTER IO */ - {"\x65", 0, 0x0405}, /* CYRILLIC CAPITAL LETTER DZE */ - {"\x66", 0, 0x0406}, /* UPPERCASE I / CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRANIAN I */ - {"\x67", 0, 0x0407}, /* UPPERCASE YI / CYRILLIC CAPITAL LETTER YI (Ukrainian) */ - {"\x68", 0, 0x0408}, /* CYRILLIC CAPITAL LETTER JE */ - {"\x69", 0, 0x0409}, /* CYRILLIC CAPITAL LETTER LJE */ - {"\x6A", 0, 0x040A}, /* CYRILLIC CAPITAL LETTER NJE */ - {"\x6B", 0, 0x040B}, /* UPPERCASE TSHE / CYRILLIC CAPITAL LETTER TSHE (Serbian) */ - {"\x6C", 0, 0x040C}, /* CYRILLIC CAPITAL LETTER KJE */ - {"\x6D", 0, 0x040E}, /* UPPERCASE SHORT U / CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) */ - {"\x6E", 0, 0x040F}, /* CYRILLIC CAPITAL LETTER DZHE */ - {"\x6F", 0, 0x042A}, /* CYRILLIC CAPITAL LETTER HARD SIGN */ - {"\x70", 0, 0x0462}, /* CYRILLIC CAPITAL LETTER YAT */ - {"\x71", 0, 0x0472}, /* CYRILLIC CAPITAL LETTER FITA */ - {"\x72", 0, 0x0474}, /* CYRILLIC CAPITAL LETTER IZHITSA */ - {"\x73", 0, 0x046A}, /* CYRILLIC CAPITAL LETTER BIG YUS */ - {"", 0} -}; -struct yaz_iconv_trie marc8_51page0 = { - marc8_51page0_flat, 0 -}; -struct yaz_iconv_trie *marc8_51ptrs [] = { - &marc8_51page0, -0, }; - -unsigned long yaz_marc8_51_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_51ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 83 */ -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8_33page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x0021} /* EXCLAMATION MARK */, - {0, 0, 0x0022} /* QUOTATION MARK */, - {0, 0, 0x0023} /* NUMBER SIGN */, - {0, 0, 0x0024} /* DOLLAR SIGN */, - {0, 0, 0x066A} /* PERCENT SIGN / ARABIC PERCENT SIGN */, - {0, 0, 0x0026} /* AMPERSAND */, - {0, 0, 0x0027} /* APOSTROPHE */, - {0, 0, 0x0028} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, - {0, 0, 0x0029} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, - {0, 0, 0x066D} /* ASTERISK / ARABIC FIVE POINTED STAR */, - {0, 0, 0x002B} /* PLUS SIGN */, - {0, 0, 0x060C} /* ARABIC COMMA */, - {0, 0, 0x002D} /* HYPHEN-MINUS */, - {0, 0, 0x002E} /* PERIOD, DECIMAL POINT / FULL STOP */, - {0, 0, 0x002F} /* SLASH / SOLIDUS */, - {0, 0, 0x0660} /* ARABIC-INDIC DIGIT ZERO */, - {0, 0, 0x0661} /* ARABIC-INDIC DIGIT ONE */, - {0, 0, 0x0662} /* ARABIC-INDIC DIGIT TWO */, - {0, 0, 0x0663} /* ARABIC-INDIC DIGIT THREE */, - {0, 0, 0x0664} /* ARABIC-INDIC DIGIT FOUR */, - {0, 0, 0x0665} /* ARABIC-INDIC DIGIT FIVE */, - {0, 0, 0x0666} /* ARABIC-INDIC DIGIT SIX */, - {0, 0, 0x0667} /* ARABIC-INDIC DIGIT SEVEN */, - {0, 0, 0x0668} /* ARABIC-INDIC DIGIT EIGHT */, - {0, 0, 0x0669} /* ARABIC-INDIC DIGIT NINE */, - {0, 0, 0x003A} /* COLON */, - {0, 0, 0x061B} /* ARABIC SEMICOLON */, - {0, 0, 0x003C} /* LESS-THAN SIGN */, - {0, 0, 0x003D} /* EQUALS SIGN */, - {0, 0, 0x003E} /* GREATER-THAN SIGN */, - {0, 0, 0x061F} /* ARABIC QUESTION MARK */, - {0, 0, 0}, - {0, 0, 0x0621} /* HAMZAH / ARABIC LETTER HAMZA */, - {0, 0, 0x0622} /* ARABIC LETTER ALEF WITH MADDA ABOVE */, - {0, 0, 0x0623} /* ARABIC LETTER ALEF WITH HAMZA ABOVE */, - {0, 0, 0x0624} /* ARABIC LETTER WAW WITH HAMZA ABOVE */, - {0, 0, 0x0625} /* ARABIC LETTER ALEF WITH HAMZA BELOW */, - {0, 0, 0x0626} /* ARABIC LETTER YEH WITH HAMZA ABOVE */, - {0, 0, 0x0627} /* ARABIC LETTER ALEF */, - {0, 0, 0x0628} /* ARABIC LETTER BEH */, - {0, 0, 0x0629} /* ARABIC LETTER TEH MARBUTA */, - {0, 0, 0x062A} /* ARABIC LETTER TEH */, - {0, 0, 0x062B} /* ARABIC LETTER THEH */, - {0, 0, 0x062C} /* ARABIC LETTER JEEM */, - {0, 0, 0x062D} /* ARABIC LETTER HAH */, - {0, 0, 0x062E} /* ARABIC LETTER KHAH */, - {0, 0, 0x062F} /* ARABIC LETTER DAL */, - {0, 0, 0x0630} /* ARABIC LETTER THAL */, - {0, 0, 0x0631} /* ARABIC LETTER REH */, - {0, 0, 0x0632} /* ARABIC LETTER ZAIN */, - {0, 0, 0x0633} /* ARABIC LETTER SEEN */, - {0, 0, 0x0634} /* ARABIC LETTER SHEEN */, - {0, 0, 0x0635} /* ARABIC LETTER SAD */, - {0, 0, 0x0636} /* ARABIC LETTER DAD */, - {0, 0, 0x0637} /* ARABIC LETTER TAH */, - {0, 0, 0x0638} /* ARABIC LETTER ZAH */, - {0, 0, 0x0639} /* ARABIC LETTER AIN */, - {0, 0, 0x063A} /* ARABIC LETTER GHAIN */, - {0, 0, 0x005B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, - {0, 0, 0}, - {0, 0, 0x005D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x0640} /* ARABIC TATWEEL */, - {0, 0, 0x0641} /* ARABIC LETTER FEH */, - {0, 0, 0x0642} /* ARABIC LETTER QAF */, - {0, 0, 0x0643} /* ARABIC LETTER KAF */, - {0, 0, 0x0644} /* ARABIC LETTER LAM */, - {0, 0, 0x0645} /* ARABIC LETTER MEEM */, - {0, 0, 0x0646} /* ARABIC LETTER NOON */, - {0, 0, 0x0647} /* ARABIC LETTER HEH */, - {0, 0, 0x0648} /* ARABIC LETTER WAW */, - {0, 0, 0x0649} /* ARABIC LETTER ALEF MAKSURA */, - {0, 0, 0x064A} /* ARABIC LETTER YEH */, - {0, 1, 0x064B} /* ARABIC FATHATAN */, - {0, 1, 0x064C} /* ARABIC DAMMATAN */, - {0, 1, 0x064D} /* ARABIC KASRATAN */, - {0, 1, 0x064E} /* ARABIC FATHA */, - {0, 1, 0x064F} /* ARABIC DAMMA */, - {0, 1, 0x0650} /* ARABIC KASRA */, - {0, 1, 0x0651} /* ARABIC SHADDA */, - {0, 1, 0x0652} /* ARABIC SUKUN */, - {0, 0, 0x0671} /* ARABIC LETTER ALEF WASLA */, - {0, 0, 0x0670} /* ARABIC LETTER SUPERSCRIPT ALEF */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x066C} /* ARABIC THOUSANDS SEPARATOR */, - {0, 0, 0x201D} /* RIGHT DOUBLE QUOTATION MARK */, - {0, 0, 0x201C} /* LEFT DOUBLE QUOTATION MARK */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_33page0 = { - 0, marc8_33page0_dir -}; -struct yaz_iconv_trie *marc8_33ptrs [] = { - &marc8_33page0, -0, }; - -unsigned long yaz_marc8_33_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_33ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 90 */ -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8_34page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x06FD} /* DOUBLE ALEF WITH HAMZA ABOVE / ARABIC SIGN SINDHI AMPERSAND */, - {0, 0, 0x0672} /* ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE */, - {0, 0, 0x0673} /* ARABIC LETTER ALEF WITH WAVY HAMZA BELOW */, - {0, 0, 0x0679} /* ARABIC LETTER TTEH */, - {0, 0, 0x067A} /* ARABIC LETTER TTEHEH */, - {0, 0, 0x067B} /* ARABIC LETTER BBEH */, - {0, 0, 0x067C} /* ARABIC LETTER TEH WITH RING */, - {0, 0, 0x067D} /* ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS */, - {0, 0, 0x067E} /* ARABIC LETTER PEH */, - {0, 0, 0x067F} /* ARABIC LETTER TEHEH */, - {0, 0, 0x0680} /* ARABIC LETTER BEHEH */, - {0, 0, 0x0681} /* ARABIC LETTER HAH WITH HAMZA ABOVE */, - {0, 0, 0x0682} /* ARABIC LETTER HAH WITH TWO ABOVE DOTS VERTICAL ABOVE */, - {0, 0, 0x0683} /* ARABIC LETTER NYEH */, - {0, 0, 0x0684} /* ARABIC LETTER DYEH */, - {0, 0, 0x0685} /* ARABIC LETTER HAH WITH THREE DOTS ABOVE */, - {0, 0, 0x0686} /* ARABIC LETTER TCHEH */, - {0, 0, 0x06BF} /* ARABIC LETTER TCHEH WITH DOT ABOVE */, - {0, 0, 0x0687} /* ARABIC LETTER TCHEHEH */, - {0, 0, 0x0688} /* ARABIC LETTER DDAL */, - {0, 0, 0x0689} /* ARABIC LETTER DAL WITH RING */, - {0, 0, 0x068A} /* ARABIC LETTER DAL WITH DOT BELOW */, - {0, 0, 0x068B} /* ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH */, - {0, 0, 0x068C} /* ARABIC LETTER DAHAL */, - {0, 0, 0x068D} /* ARABIC LETTER DDAHAL */, - {0, 0, 0x068E} /* ARABIC LETTER DUL */, - {0, 0, 0x068F} /* ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS */, - {0, 0, 0x0690} /* ARABIC LETTER DAL WITH FOUR DOTS ABOVE */, - {0, 0, 0x0691} /* ARABIC LETTER RREH */, - {0, 0, 0x0692} /* ARABIC LETTER REH WITH SMALL V */, - {0, 0, 0x0693} /* ARABIC LETTER REH WITH RING */, - {0, 0, 0x0694} /* ARABIC LETTER REH WITH DOT BELOW */, - {0, 0, 0x0695} /* ARABIC LETTER REH WITH SMALL V BELOW */, - {0, 0, 0x0696} /* ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE */, - {0, 0, 0x0697} /* ARABIC LETTER REH WITH TWO DOTS ABOVE */, - {0, 0, 0x0698} /* ARABIC LETTER JEH */, - {0, 0, 0x0699} /* ARABIC LETTER REH WITH FOUR DOTS ABOVE */, - {0, 0, 0x069A} /* ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE */, - {0, 0, 0x069B} /* ARABIC LETTER SEEN WITH THREE DOTS BELOW */, - {0, 0, 0x069C} /* ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE */, - {0, 0, 0x06FA} /* ARABIC LETTER SHEEN WITH DOT BELOW */, - {0, 0, 0x069D} /* ARABIC LETTER SAD WITH TWO DOTS BELOW */, - {0, 0, 0x069E} /* ARABIC LETTER SAD WITH THREE DOTS ABOVE */, - {0, 0, 0x06FB} /* ARABIC LETTER DAD WITH DOT BELOW */, - {0, 0, 0x069F} /* ARABIC LETTER TAH WITH THREE DOTS ABOVE */, - {0, 0, 0x06A0} /* ARABIC LETTER AIN WITH THREE DOTS ABOVE */, - {0, 0, 0x06FC} /* ARABIC LETTER GHAIN WITH DOT BELOW */, - {0, 0, 0x06A1} /* ARABIC LETTER DOTLESS FEH */, - {0, 0, 0x06A2} /* ARABIC LETTER FEH WITH DOT MOVED BELOW */, - {0, 0, 0x06A3} /* ARABIC LETTER FEH WITH DOT BELOW */, - {0, 0, 0x06A4} /* ARABIC LETTER VEH */, - {0, 0, 0x06A5} /* ARABIC LETTER FEH WITH THREE DOTS BELOW */, - {0, 0, 0x06A6} /* ARABIC LETTER PEHEH */, - {0, 0, 0x06A7} /* ARABIC LETTER QAF WITH DOT ABOVE */, - {0, 0, 0x06A8} /* ARABIC LETTER QAF WITH THREE DOTS ABOVE */, - {0, 0, 0x06A9} /* ARABIC LETTER KEHEH */, - {0, 0, 0x06AA} /* ARABIC LETTER SWASH KAF */, - {0, 0, 0x06AB} /* ARABIC LETTER KAF WITH RING */, - {0, 0, 0x06AC} /* ARABIC LETTER KAF WITH DOT ABOVE */, - {0, 0, 0x06AD} /* ARABIC LETTER NG */, - {0, 0, 0x06AE} /* ARABIC LETTER KAF WITH THREE DOTS BELOW */, - {0, 0, 0x06AF} /* ARABIC LETTER GAF */, - {0, 0, 0x06B0} /* ARABIC LETTER GAF WITH RING */, - {0, 0, 0x06B1} /* ARABIC LETTER NGOEH */, - {0, 0, 0x06B2} /* ARABIC LETTER GAF WITH TWO DOTS BELOW */, - {0, 0, 0x06B3} /* ARABIC LETTER GUEH */, - {0, 0, 0x06B4} /* ARABIC LETTER GAF WITH THREE DOTS ABOVE */, - {0, 0, 0x06B5} /* ARABIC LETTER LAM WITH SMALL V */, - {0, 0, 0x06B6} /* ARABIC LETTER LAM WITH DOT ABOVE */, - {0, 0, 0x06B7} /* ARABIC LETTER LAM WITH THREE DOTS ABOVE */, - {0, 0, 0x06B8} /* ARABIC LETTER LAM WITH THREE DOTS BELOW */, - {0, 0, 0x06BA} /* ARABIC LETTER NOON GHUNNA */, - {0, 0, 0x06BB} /* ARABIC LETTER RNOON */, - {0, 0, 0x06BC} /* ARABIC LETTER NOON WITH RING */, - {0, 0, 0x06BD} /* ARABIC LETTER NOON WITH THREE DOTS ABOVE */, - {0, 0, 0x06B9} /* ARABIC LETTER NOON WITH DOT BELOW */, - {0, 0, 0x06BE} /* ARABIC LETTER HEH DOACHASHMEE */, - {0, 0, 0x06C0} /* HEH WITH HAMZA ABOVE / ARABIC LETTER HEH WITH YEH ABOVE */, - {0, 0, 0x06C4} /* ARABIC LETTER WAW WITH RING */, - {0, 0, 0x06C5} /* KYRGHYZ OE / ARABIC LETTER KIRGHIZ OE */, - {0, 0, 0x06C6} /* ARABIC LETTER OE */, - {0, 0, 0x06CA} /* ARABIC LETTER WAW WITH TWO DOTS ABOVE */, - {0, 0, 0x06CB} /* ARABIC LETTER VE */, - {0, 0, 0x06CD} /* ARABIC LETTER YEH WITH TAIL */, - {0, 0, 0x06CE} /* ARABIC LETTER YEH WITH SMALL V */, - {0, 0, 0x06D0} /* ARABIC LETTER E */, - {0, 0, 0x06D2} /* ARABIC LETTER YEH BARREE */, - {0, 0, 0x06D3} /* ARABIC LETTER YEH BARREE WITH HAMZA ABOVE */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 1, 0x0306} /* SHORT E / COMBINING BREVE */, - {0, 1, 0x030C} /* SHORT U / COMBINING CARON */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_34page0 = { - 0, marc8_34page0_dir -}; -struct yaz_iconv_trie *marc8_34ptrs [] = { - &marc8_34page0, -0, }; - -unsigned long yaz_marc8_34_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_34ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 73 */ -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8_53page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 1, 0x0300} /* COMBINING GRAVE ACCENT */, - {0, 1, 0x0301} /* COMBINING ACUTE ACCENT */, - {0, 1, 0x0308} /* COMBINING DIAERESIS */, - {0, 1, 0x0342} /* COMBINING GREEK PERISPOMENI / CIRCUMFLEX */, - {0, 1, 0x0313} /* COMBINING COMMA ABOVE / SMOOTH BREATHING */, - {0, 1, 0x0314} /* COMBINING REVERSED COMMA ABOVE / ROUGH BREATHING */, - {0, 1, 0x0345} /* COMBINING GREEK YPOGEGRAMMENI / IOTA SUBSCRIPT */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x00AB} /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */, - {0, 0, 0x00BB} /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */, - {0, 0, 0x201C} /* LEFT DOUBLE QUOTATION MARK */, - {0, 0, 0x201D} /* RIGHT DOUBLE QUOTATION MARK */, - {0, 0, 0x0374} /* GREEK NUMERAL SIGN / UPPER PRIME */, - {0, 0, 0x0375} /* GREEK LOWER NUMERAL SIGN / LOWER PRIME */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x0387} /* GREEK ANO TELEIA / RAISED DOT, GREEK SEMICOLON */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x037E} /* GREEK QUESTION MARK */, - {0, 0, 0}, - {0, 0, 0x0391} /* GREEK CAPITAL LETTER ALPHA */, - {0, 0, 0x0392} /* GREEK CAPITAL LETTER BETA */, - {0, 0, 0}, - {0, 0, 0x0393} /* GREEK CAPITAL LETTER GAMMA */, - {0, 0, 0x0394} /* GREEK CAPITAL LETTER DELTA */, - {0, 0, 0x0395} /* GREEK CAPITAL LETTER EPSILON */, - {0, 0, 0x03DA} /* GREEK LETTER STIGMA */, - {0, 0, 0x03DC} /* GREEK LETTER DIGAMMA */, - {0, 0, 0x0396} /* GREEK CAPITAL LETTER ZETA */, - {0, 0, 0x0397} /* GREEK CAPITAL LETTER ETA */, - {0, 0, 0x0398} /* GREEK CAPITAL LETTER THETA */, - {0, 0, 0x0399} /* GREEK CAPITAL LETTER IOTA */, - {0, 0, 0x039A} /* GREEK CAPITAL LETTER KAPPA */, - {0, 0, 0x039B} /* GREEK CAPITAL LETTER LAMDA */, - {0, 0, 0x039C} /* GREEK CAPITAL LETTER MU */, - {0, 0, 0x039D} /* GREEK CAPITAL LETTER NU */, - {0, 0, 0x039E} /* GREEK CAPITAL LETTER XI */, - {0, 0, 0x039F} /* GREEK CAPITAL LETTER OMICRON */, - {0, 0, 0x03A0} /* GREEK CAPITAL LETTER PI */, - {0, 0, 0x03DE} /* GREEK LETTER KOPPA */, - {0, 0, 0x03A1} /* GREEK CAPITAL LETTER RHO */, - {0, 0, 0x03A3} /* GREEK CAPITAL LETTER SIGMA */, - {0, 0, 0}, - {0, 0, 0x03A4} /* GREEK CAPITAL LETTER TAU */, - {0, 0, 0x03A5} /* GREEK CAPITAL LETTER UPSILON */, - {0, 0, 0x03A6} /* GREEK CAPITAL LETTER PHI */, - {0, 0, 0x03A7} /* GREEK CAPITAL LETTER CHI */, - {0, 0, 0x03A8} /* GREEK CAPITAL LETTER PSI */, - {0, 0, 0x03A9} /* GREEK CAPITAL LETTER OMEGA */, - {0, 0, 0x03E0} /* GREEK LETTER SAMPI */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x03B1} /* GREEK SMALL LETTER ALPHA */, - {0, 0, 0x03B2} /* GREEK SMALL LETTER BETA / SMALL LETTER BETA BEGINNING OF WORD */, - {0, 0, 0x03D0} /* GREEK BETA SYMBOL / SMALL LETTER BETA MIDDLE OF WORD */, - {0, 0, 0x03B3} /* GREEK SMALL LETTER GAMMA */, - {0, 0, 0x03B4} /* GREEK SMALL LETTER DELTA */, - {0, 0, 0x03B5} /* GREEK SMALL LETTER EPSILON */, - {0, 0, 0x03DB} /* GREEK SMALL LETTER STIGMA */, - {0, 0, 0x03DD} /* GREEK SMALL LETTER DIGAMMA */, - {0, 0, 0x03B6} /* GREEK SMALL LETTER ZETA */, - {0, 0, 0x03B7} /* GREEK SMALL LETTER ETA */, - {0, 0, 0x03B8} /* GREEK SMALL LETTER THETA */, - {0, 0, 0x03B9} /* GREEK SMALL LETTER IOTA */, - {0, 0, 0x03BA} /* GREEK SMALL LETTER KAPPA */, - {0, 0, 0x03BB} /* GREEK SMALL LETTER LAMDA */, - {0, 0, 0x03BC} /* GREEK SMALL LETTER MU */, - {0, 0, 0x03BD} /* GREEK SMALL LETTER NU */, - {0, 0, 0x03BE} /* GREEK SMALL LETTER XI */, - {0, 0, 0x03BF} /* GREEK SMALL LETTER OMICRON */, - {0, 0, 0x03C0} /* GREEK SMALL LETTER PI */, - {0, 0, 0x03DF} /* GREEK SMALL LETTER KOPPA */, - {0, 0, 0x03C1} /* GREEK SMALL LETTER RHO */, - {0, 0, 0x03C3} /* GREEK SMALL LETTER SIGMA */, - {0, 0, 0x03C2} /* GREEK SMALL LETTER FINAL SIGMA / SMALL LETTER SIGMA END OF WORD */, - {0, 0, 0x03C4} /* GREEK SMALL LETTER TAU */, - {0, 0, 0x03C5} /* GREEK SMALL LETTER UPSILON */, - {0, 0, 0x03C6} /* GREEK SMALL LETTER PHI */, - {0, 0, 0x03C7} /* GREEK SMALL LETTER CHI */, - {0, 0, 0x03C8} /* GREEK SMALL LETTER PSI */, - {0, 0, 0x03C9} /* GREEK SMALL LETTER OMEGA */, - {0, 0, 0x03E1} /* GREEK SMALL LETTER SAMPI */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_53page0 = { - 0, marc8_53page0_dir -}; -struct yaz_iconv_trie *marc8_53ptrs [] = { - &marc8_53page0, -0, }; - -unsigned long yaz_marc8_53_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_53ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 15739 */ -/* PAGE 827 */ -struct yaz_iconv_trie_flat marc8_31page827_flat[] = { - {"\x25", 0, 0x300C}, /* Ideographic left corner bracket */ - {"\x26", 0, 0x300D}, /* Ideographic right corner bracket */ - {"\x31", 0, 0xFF3B}, /* Ideographic left square bracket */ - {"\x32", 0, 0xFF3D}, /* Ideographic right square bracket */ - {"\x33", 0, 0x3002}, /* Ideographic full stop */ - {"\x34", 0, 0xFF0E}, /* Ideographic variant full stop */ - {"\x35", 0, 0x3001}, /* Ideographic comma */ - {"\x38", 0, 0xFF0C}, /* Ideographic variant comma */ - {"\x39", 0, 0xFF1B}, /* Ideographic semicolon */ - {"\x3A", 0, 0xFF1A}, /* Ideographic colon */ - {"\x3B", 0, 0xFF1F}, /* Ideographic question mark */ - {"\x3D", 0, 0xFF01}, /* Ideographic exclamation point */ - {"\x59", 0, 0xFF0F}, /* Ideographic solidus */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page827 = { - marc8_31page827_flat, 0 -}; -/* PAGE 826 */ -struct yaz_iconv_trie_flat marc8_31page826_flat[] = { - {"\x46", 0, 0x3013}, /* Ideographic geta symbol */ - {"\x21", 0, 0xE8D0}, /* EACC component character */ - {"\x22", 0, 0xE8D1}, /* EACC component character */ - {"\x23", 0, 0xE8D2}, /* EACC component character */ - {"\x24", 0, 0xE8D3}, /* EACC component character */ - {"\x25", 0, 0xE8D4}, /* EACC component character */ - {"\x26", 0, 0xE8D5}, /* EACC component character */ - {"\x28", 0, 0xE8D6}, /* EACC component character */ - {"\x29", 0, 0xE8D7}, /* EACC component character */ - {"\x2A", 0, 0xE8D8}, /* EACC component character */ - {"\x2B", 0, 0xE8D9}, /* EACC component character */ - {"\x2C", 0, 0xE8DA}, /* EACC component character */ - {"\x2D", 0, 0xE8DB}, /* EACC component character */ - {"\x2E", 0, 0xE8DC}, /* EACC component character */ - {"\x2F", 0, 0xE8DD}, /* EACC component character */ - {"\x30", 0, 0xE8DE}, /* EACC component character */ - {"\x32", 0, 0xE8DF}, /* EACC component character */ - {"\x33", 0, 0xE8E0}, /* EACC component character */ - {"\x34", 0, 0xE8E1}, /* EACC component character */ - {"\x35", 0, 0xE8E2}, /* EACC component character */ - {"\x36", 0, 0xE8E3}, /* EACC component character */ - {"\x37", 0, 0xE8E4}, /* EACC component character */ - {"\x38", 0, 0xE8E5}, /* EACC component character */ - {"\x39", 0, 0xE8E6}, /* EACC component character */ - {"\x3A", 0, 0xE8E7}, /* EACC component character */ - {"\x3B", 0, 0xE8E8}, /* EACC component character */ - {"\x3C", 0, 0xE8E9}, /* EACC component character */ - {"\x3D", 0, 0xE8EA}, /* EACC component character */ - {"\x3E", 0, 0xE8EB}, /* EACC component character */ - {"\x3F", 0, 0xE8EC}, /* EACC component character */ - {"\x40", 0, 0xE8ED}, /* EACC component character */ - {"\x41", 0, 0xE8EE}, /* EACC component character */ - {"\x42", 0, 0xE8EF}, /* EACC component character */ - {"\x43", 0, 0xE8F0}, /* EACC component character */ - {"\x44", 0, 0xE8F1}, /* EACC component character */ - {"\x45", 0, 0xE8F2}, /* EACC component character */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page826 = { - marc8_31page826_flat, 0 -}; -/* PAGE 825 */ -struct yaz_iconv_trie_flat marc8_31page825_flat[] = { - {"\x21", 0, 0x3000}, /* Ideographic space per ANSI Z39.64 */ - {"\x20", 0, 0x3000}, /* Ideographic space in some implementations */ - {"\x28", 0, 0xFF08}, /* Ideographic left parenthesis */ - {"\x29", 0, 0xFF09}, /* Ideographic right parenthesis */ - {"\x2D", 0, 0xFF0D}, /* Ideographic hyphen minus */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page825 = { - marc8_31page825_flat, 0 -}; -/* PAGE 824 */ -struct yaz_iconv_trie_flat marc8_31page824_flat[] = { - {"\x21", 0, 0xAD35}, /* Korean hangul */ - {"\x22", 0, 0xAD7B}, /* Korean hangul */ - {"\x23", 0, 0xE8CA}, /* Korean hangul */ - {"\x24", 0, 0xAD89}, /* Korean hangul */ - {"\x25", 0, 0xAD9D}, /* Korean hangul */ - {"\x26", 0, 0xADB9}, /* Korean hangul */ - {"\x27", 0, 0xADD5}, /* Korean hangul */ - {"\x28", 0, 0xAE07}, /* Korean hangul */ - {"\x29", 0, 0xAE0E}, /* Korean hangul */ - {"\x2A", 0, 0xAE0F}, /* Korean hangul */ - {"\x2B", 0, 0xAE11}, /* Korean hangul */ - {"\x2C", 0, 0xAE14}, /* Korean hangul */ - {"\x2D", 0, 0xAE5F}, /* Korean hangul */ - {"\x2E", 0, 0xAEED}, /* Korean hangul */ - {"\x2F", 0, 0xAF09}, /* Korean hangul */ - {"\x30", 0, 0xAF50}, /* Korean hangul */ - {"\x31", 0, 0xAFBF}, /* Korean hangul */ - {"\x32", 0, 0xB060}, /* Korean hangul */ - {"\x33", 0, 0xB9C4}, /* Korean hangul */ - {"\x34", 0, 0xC54D}, /* Korean hangul */ - {"\x35", 0, 0xC54F}, /* Korean hangul */ - {"\x36", 0, 0xC552}, /* Korean hangul */ - {"\x37", 0, 0xC5AB}, /* Korean hangul */ - {"\x38", 0, 0xC5B1}, /* Korean hangul */ - {"\x39", 0, 0xC61C}, /* Korean hangul */ - {"\x3A", 0, 0xC61D}, /* Korean hangul */ - {"\x3B", 0, 0xC6FD}, /* Korean hangul */ - {"\x3C", 0, 0xC717}, /* Korean hangul (unified with EACC 6F5658) */ - {"\x3D", 0, 0xC733}, /* Korean hangul */ - {"\x3E", 0, 0xCB4C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page824 = { - marc8_31page824_flat, 0 -}; -/* PAGE 823 */ -struct yaz_iconv_trie_flat marc8_31page823_flat[] = { - {"\x21", 0, 0x3181}, /* Korean hangul */ - {"\x22", 0, 0x3186}, /* Korean hangul */ - {"\x23", 0, 0x317F}, /* Korean hangul */ - {"\x24", 0, 0xE8B0}, /* Korean hangul (ancient) */ - {"\x25", 0, 0x318D}, /* Korean hangul (ancient) */ - {"\x40", 0, 0xE8B2}, /* Korean hangul (ancient) */ - {"\x41", 0, 0xE8B3}, /* Korean hangul (ancient) */ - {"\x42", 0, 0xE8B4}, /* Korean hangul (ancient) */ - {"\x43", 0, 0xE8B5}, /* Korean hangul (ancient) */ - {"\x44", 0, 0xE8B6}, /* Korean hangul (ancient) */ - {"\x45", 0, 0xE8B7}, /* Korean hangul (ancient) */ - {"\x46", 0, 0xE8B8}, /* Korean hangul (ancient) */ - {"\x47", 0, 0xE8B9}, /* Korean hangul (ancient) */ - {"\x48", 0, 0xE8BA}, /* Korean hangul (ancient) */ - {"\x49", 0, 0xE8BB}, /* Korean hangul (ancient) */ - {"\x4A", 0, 0xE8BC}, /* Korean hangul (ancient) */ - {"\x4B", 0, 0xE8BD}, /* Korean hangul (ancient) */ - {"\x4C", 0, 0xE8BE}, /* Korean hangul (ancient) */ - {"\x4D", 0, 0xE8BF}, /* Korean hangul (ancient) */ - {"\x4E", 0, 0xE8C0}, /* Korean hangul (ancient) */ - {"\x4F", 0, 0xE8C1}, /* Korean hangul (ancient) */ - {"\x50", 0, 0xE8C2}, /* Korean hangul (ancient) */ - {"\x51", 0, 0xE8C3}, /* Korean hangul (ancient) */ - {"\x52", 0, 0xE8C4}, /* Korean hangul (ancient) */ - {"\x53", 0, 0xE8C5}, /* Korean hangul (ancient) */ - {"\x54", 0, 0xE8C6}, /* Korean hangul (ancient) */ - {"\x55", 0, 0xE8C7}, /* Korean hangul (ancient) */ - {"\x56", 0, 0xE8C8}, /* Korean hangul (ancient) */ - {"\x57", 0, 0xE8C9}, /* Korean hangul (ancient) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page823 = { - marc8_31page823_flat, 0 -}; -/* PAGE 822 */ -struct yaz_iconv_trie_flat marc8_31page822_flat[] = { - {"\x21", 0, 0xD79D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page822 = { - marc8_31page822_flat, 0 -}; -/* PAGE 821 */ -struct yaz_iconv_trie_dir marc8_31page821_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xD5D9} /* Korean hangul */, - {0, 0, 0xD5DB} /* Korean hangul */, - {0, 0, 0xD5DD} /* Korean hangul */, - {0, 0, 0xD5E4} /* Korean hangul */, - {0, 0, 0xD5E5} /* Korean hangul */, - {0, 0, 0xD5E8} /* Korean hangul */, - {0, 0, 0xD5EC} /* Korean hangul */, - {0, 0, 0xD5F4} /* Korean hangul */, - {0, 0, 0xD5F5} /* Korean hangul */, - {0, 0, 0xD5F7} /* Korean hangul */, - {0, 0, 0xD5F9} /* Korean hangul */, - {0, 0, 0xD600} /* Korean hangul */, - {0, 0, 0xD601} /* Korean hangul */, - {0, 0, 0xD604} /* Korean hangul */, - {0, 0, 0xD608} /* Korean hangul */, - {0, 0, 0xD610} /* Korean hangul */, - {0, 0, 0xD611} /* Korean hangul */, - {0, 0, 0xD613} /* Korean hangul */, - {0, 0, 0xD614} /* Korean hangul */, - {0, 0, 0xD615} /* Korean hangul */, - {0, 0, 0xD61C} /* Korean hangul */, - {0, 0, 0xD638} /* Korean hangul */, - {0, 0, 0xD639} /* Korean hangul */, - {0, 0, 0xD63C} /* Korean hangul */, - {0, 0, 0xD640} /* Korean hangul */, - {0, 0, 0xD648} /* Korean hangul */, - {0, 0, 0xD649} /* Korean hangul */, - {0, 0, 0xD64B} /* Korean hangul */, - {0, 0, 0xD64D} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD654} /* Korean hangul */, - {0, 0, 0xD655} /* Korean hangul */, - {0, 0, 0xD658} /* Korean hangul */, - {0, 0, 0xD65C} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD667} /* Korean hangul */, - {0, 0, 0xD669} /* Korean hangul */, - {0, 0, 0xD670} /* Korean hangul */, - {0, 0, 0xD671} /* Korean hangul */, - {0, 0, 0xD683} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD68C} /* Korean hangul */, - {0, 0, 0xD68D} /* Korean hangul */, - {0, 0, 0xD69F} /* Korean hangul */, - {0, 0, 0xD6A1} /* Korean hangul */, - {0, 0, 0xD6A8} /* Korean hangul */, - {0, 0, 0xD6C4} /* Korean hangul */, - {0, 0, 0xD6C5} /* Korean hangul */, - {0, 0, 0xD6C8} /* Korean hangul */, - {0, 0, 0xD6CC} /* Korean hangul */, - {0, 0, 0xD6D1} /* Korean hangul */, - {0, 0, 0xD6D4} /* Korean hangul */, - {0, 0, 0xD6D7} /* Korean hangul */, - {0, 0, 0xD6E0} /* Korean hangul */, - {0, 0, 0xD6E4} /* Korean hangul */, - {0, 0, 0xD6E8} /* Korean hangul */, - {0, 0, 0xD6F0} /* Korean hangul */, - {0, 0, 0xD6FC} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD700} /* Korean hangul */, - {0, 0, 0xD711} /* Korean hangul */, - {0, 0, 0xD718} /* Korean hangul */, - {0, 0, 0xD719} /* Korean hangul */, - {0, 0, 0xD71C} /* Korean hangul */, - {0, 0, 0xD720} /* Korean hangul */, - {0, 0, 0xD728} /* Korean hangul */, - {0, 0, 0xD729} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD72D} /* Korean hangul */, - {0, 0, 0xD734} /* Korean hangul */, - {0, 0, 0xD73C} /* Korean hangul */, - {0, 0, 0xD744} /* Korean hangul */, - {0, 0, 0xD749} /* Korean hangul */, - {0, 0, 0xD750} /* Korean hangul */, - {0, 0, 0xD751} /* Korean hangul */, - {0, 0, 0xD754} /* Korean hangul */, - {0, 0, 0xD757} /* Korean hangul */, - {0, 0, 0xD758} /* Korean hangul */, - {0, 0, 0xD759} /* Korean hangul */, - {0, 0, 0xD760} /* Korean hangul */, - {0, 0, 0xD761} /* Korean hangul */, - {0, 0, 0xD763} /* Korean hangul */, - {0, 0, 0xD765} /* Korean hangul */, - {0, 0, 0xD769} /* Korean hangul */, - {0, 0, 0xD76C} /* Korean hangul */, - {0, 0, 0xD770} /* Korean hangul */, - {0, 0, 0xD774} /* Korean hangul */, - {0, 0, 0xD788} /* Korean hangul */, - {0, 0, 0xD789} /* Korean hangul */, - {0, 0, 0xD78C} /* Korean hangul */, - {0, 0, 0xD790} /* Korean hangul */, - {0, 0, 0xD798} /* Korean hangul */, - {0, 0, 0xD799} /* Korean hangul */, - {0, 0, 0xD79B} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page821 = { - 0, marc8_31page821_dir -}; -/* PAGE 820 */ -struct yaz_iconv_trie_dir marc8_31page820_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xD33D} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD37C} /* Korean hangul */, - {0, 0, 0xD37D} /* Korean hangul */, - {0, 0, 0xD380} /* Korean hangul */, - {0, 0, 0xD384} /* Korean hangul */, - {0, 0, 0xD38C} /* Korean hangul */, - {0, 0, 0xD38D} /* Korean hangul */, - {0, 0, 0xD38F} /* Korean hangul */, - {0, 0, 0xD390} /* Korean hangul */, - {0, 0, 0xD391} /* Korean hangul */, - {0, 0, 0xD398} /* Korean hangul */, - {0, 0, 0xD399} /* Korean hangul */, - {0, 0, 0xD39C} /* Korean hangul */, - {0, 0, 0xD3A0} /* Korean hangul */, - {0, 0, 0xD3A8} /* Korean hangul */, - {0, 0, 0xD3A9} /* Korean hangul */, - {0, 0, 0xD3AB} /* Korean hangul */, - {0, 0, 0xD3AD} /* Korean hangul */, - {0, 0, 0xD3B4} /* Korean hangul */, - {0, 0, 0xD3B5} /* Korean hangul */, - {0, 0, 0xD3B8} /* Korean hangul */, - {0, 0, 0xD3BC} /* Korean hangul */, - {0, 0, 0xD3C4} /* Korean hangul */, - {0, 0, 0xD3C5} /* Korean hangul */, - {0, 0, 0xD3C8} /* Korean hangul */, - {0, 0, 0xD3C9} /* Korean hangul */, - {0, 0, 0xD3D0} /* Korean hangul */, - {0, 0, 0xD3EC} /* Korean hangul */, - {0, 0, 0xD3ED} /* Korean hangul */, - {0, 0, 0xD3F0} /* Korean hangul */, - {0, 0, 0xD3F4} /* Korean hangul */, - {0, 0, 0xD3FC} /* Korean hangul */, - {0, 0, 0xD3FD} /* Korean hangul */, - {0, 0, 0xD3FF} /* Korean hangul */, - {0, 0, 0xD401} /* Korean hangul */, - {0, 0, 0xD440} /* Korean hangul */, - {0, 0, 0xD444} /* Korean hangul */, - {0, 0, 0xD45C} /* Korean hangul */, - {0, 0, 0xD46F} /* Korean hangul */, - {0, 0, 0xD478} /* Korean hangul */, - {0, 0, 0xD479} /* Korean hangul */, - {0, 0, 0xD47C} /* Korean hangul */, - {0, 0, 0xD480} /* Korean hangul */, - {0, 0, 0xD488} /* Korean hangul */, - {0, 0, 0xD489} /* Korean hangul */, - {0, 0, 0xD48B} /* Korean hangul */, - {0, 0, 0xD48D} /* Korean hangul */, - {0, 0, 0xD4CC} /* Korean hangul */, - {0, 0, 0xD4E8} /* Korean hangul */, - {0, 0, 0xD504} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD508} /* Korean hangul */, - {0, 0, 0xD50C} /* Korean hangul */, - {0, 0, 0xD514} /* Korean hangul */, - {0, 0, 0xD515} /* Korean hangul */, - {0, 0, 0xD53C} /* Korean hangul */, - {0, 0, 0xD53D} /* Korean hangul */, - {0, 0, 0xD540} /* Korean hangul */, - {0, 0, 0xD544} /* Korean hangul */, - {0, 0, 0xD54C} /* Korean hangul */, - {0, 0, 0xD54D} /* Korean hangul */, - {0, 0, 0xD54F} /* Korean hangul */, - {0, 0, 0xD551} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xD558} /* Korean hangul */, - {0, 0, 0xD559} /* Korean hangul */, - {0, 0, 0xD55C} /* Korean hangul */, - {0, 0, 0xD560} /* Korean hangul */, - {0, 0, 0xD565} /* Korean hangul */, - {0, 0, 0xD568} /* Korean hangul */, - {0, 0, 0xD569} /* Korean hangul */, - {0, 0, 0xD56B} /* Korean hangul */, - {0, 0, 0xD56C} /* Korean hangul */, - {0, 0, 0xD56D} /* Korean hangul */, - {0, 0, 0xD571} /* Korean hangul */, - {0, 0, 0xD574} /* Korean hangul */, - {0, 0, 0xD575} /* Korean hangul */, - {0, 0, 0xD578} /* Korean hangul */, - {0, 0, 0xD57C} /* Korean hangul */, - {0, 0, 0xD584} /* Korean hangul */, - {0, 0, 0xD585} /* Korean hangul */, - {0, 0, 0xD587} /* Korean hangul */, - {0, 0, 0xD588} /* Korean hangul */, - {0, 0, 0xD589} /* Korean hangul */, - {0, 0, 0xD590} /* Korean hangul */, - {0, 0, 0xD5A5} /* Korean hangul */, - {0, 0, 0xD5C8} /* Korean hangul */, - {0, 0, 0xD5C9} /* Korean hangul */, - {0, 0, 0xD5CC} /* Korean hangul */, - {0, 0, 0xD5D0} /* Korean hangul */, - {0, 0, 0xD5D2} /* Korean hangul */, - {0, 0, 0xD5D8} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page820 = { - 0, marc8_31page820_dir -}; -/* PAGE 819 */ -struct yaz_iconv_trie_dir marc8_31page819_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xD0ED} /* Korean hangul */, - {0, 0, 0xD0EF} /* Korean hangul */, - {0, 0, 0xD0F0} /* Korean hangul */, - {0, 0, 0xD0F1} /* Korean hangul */, - {0, 0, 0xD130} /* Korean hangul */, - {0, 0, 0xD131} /* Korean hangul */, - {0, 0, 0xD134} /* Korean hangul */, - {0, 0, 0xD138} /* Korean hangul */, - {0, 0, 0xD140} /* Korean hangul */, - {0, 0, 0xD141} /* Korean hangul */, - {0, 0, 0xD143} /* Korean hangul */, - {0, 0, 0xD144} /* Korean hangul */, - {0, 0, 0xD145} /* Korean hangul */, - {0, 0, 0xD14C} /* Korean hangul */, - {0, 0, 0xD14D} /* Korean hangul */, - {0, 0, 0xD150} /* Korean hangul */, - {0, 0, 0xD154} /* Korean hangul */, - {0, 0, 0xD15C} /* Korean hangul */, - {0, 0, 0xD15D} /* Korean hangul */, - {0, 0, 0xD15F} /* Korean hangul */, - {0, 0, 0xD160} /* Korean hangul */, - {0, 0, 0xD161} /* Korean hangul */, - {0, 0, 0xD168} /* Korean hangul */, - {0, 0, 0xD1A0} /* Korean hangul */, - {0, 0, 0xD1A1} /* Korean hangul */, - {0, 0, 0xD1A4} /* Korean hangul */, - {0, 0, 0xD1A8} /* Korean hangul */, - {0, 0, 0xD1B0} /* Korean hangul */, - {0, 0, 0xD1B1} /* Korean hangul */, - {0, 0, 0xD1B3} /* Korean hangul */, - {0, 0, 0xD1B5} /* Korean hangul */, - {0, 0, 0xD1D8} /* Korean hangul */, - {0, 0, 0xD1F4} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD22C} /* Korean hangul */, - {0, 0, 0xD22D} /* Korean hangul */, - {0, 0, 0xD230} /* Korean hangul */, - {0, 0, 0xD234} /* Korean hangul */, - {0, 0, 0xD23C} /* Korean hangul */, - {0, 0, 0xD23D} /* Korean hangul */, - {0, 0, 0xD23F} /* Korean hangul */, - {0, 0, 0xD241} /* Korean hangul */, - {0, 0, 0xD264} /* Korean hangul */, - {0, 0, 0xD277} /* Korean hangul */, - {0, 0, 0xD280} /* Korean hangul */, - {0, 0, 0xD284} /* Korean hangul */, - {0, 0, 0xD288} /* Korean hangul */, - {0, 0, 0xD290} /* Korean hangul */, - {0, 0, 0xD291} /* Korean hangul */, - {0, 0, 0xD293} /* Korean hangul */, - {0, 0, 0xD295} /* Korean hangul */, - {0, 0, 0xD29C} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xD2AC} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD2B8} /* Korean hangul */, - {0, 0, 0xD2B9} /* Korean hangul */, - {0, 0, 0xD2BC} /* Korean hangul */, - {0, 0, 0xD2BF} /* Korean hangul */, - {0, 0, 0xD2C0} /* Korean hangul */, - {0, 0, 0xD2C8} /* Korean hangul */, - {0, 0, 0xD2C9} /* Korean hangul */, - {0, 0, 0xD2CB} /* Korean hangul */, - {0, 0, 0xD2D4} /* Korean hangul */, - {0, 0, 0xD1F8} /* Korean hangul */, - {0, 0, 0xD2F0} /* Korean hangul */, - {0, 0, 0xD2F1} /* Korean hangul */, - {0, 0, 0xD2F4} /* Korean hangul */, - {0, 0, 0xD2F8} /* Korean hangul */, - {0, 0, 0xD300} /* Korean hangul */, - {0, 0, 0xD301} /* Korean hangul */, - {0, 0, 0xD305} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xD30C} /* Korean hangul */, - {0, 0, 0xD30D} /* Korean hangul */, - {0, 0, 0xD30E} /* Korean hangul */, - {0, 0, 0xD310} /* Korean hangul */, - {0, 0, 0xD314} /* Korean hangul */, - {0, 0, 0xD31C} /* Korean hangul */, - {0, 0, 0xD31D} /* Korean hangul */, - {0, 0, 0xD31F} /* Korean hangul */, - {0, 0, 0xD320} /* Korean hangul */, - {0, 0, 0xD321} /* Korean hangul */, - {0, 0, 0xD325} /* Korean hangul */, - {0, 0, 0xD328} /* Korean hangul */, - {0, 0, 0xD329} /* Korean hangul */, - {0, 0, 0xD32C} /* Korean hangul */, - {0, 0, 0xD330} /* Korean hangul */, - {0, 0, 0xD338} /* Korean hangul */, - {0, 0, 0xD339} /* Korean hangul */, - {0, 0, 0xD33B} /* Korean hangul */, - {0, 0, 0xD33C} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page819 = { - 0, marc8_31page819_dir -}; -/* PAGE 818 */ -struct yaz_iconv_trie_dir marc8_31page818_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xCEA5} /* Korean hangul */, - {0, 0, 0xCEAC} /* Korean hangul */, - {0, 0, 0xCEAD} /* Korean hangul */, - {0, 0, 0xCEE4} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xCEE8} /* Korean hangul */, - {0, 0, 0xCEEC} /* Korean hangul */, - {0, 0, 0xCEF4} /* Korean hangul */, - {0, 0, 0xCEF5} /* Korean hangul */, - {0, 0, 0xCEF7} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xCEF9} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xCF00} /* Korean hangul */, - {0, 0, 0xCF01} /* Korean hangul */, - {0, 0, 0xCF04} /* Korean hangul */, - {0, 0, 0xCF08} /* Korean hangul */, - {0, 0, 0xCF10} /* Korean hangul */, - {0, 0, 0xCF11} /* Korean hangul */, - {0, 0, 0xCF13} /* Korean hangul */, - {0, 0, 0xCF15} /* Korean hangul */, - {0, 0, 0xCF1C} /* Korean hangul */, - {0, 0, 0xCF20} /* Korean hangul */, - {0, 0, 0xCF24} /* Korean hangul */, - {0, 0, 0xCF2C} /* Korean hangul */, - {0, 0, 0xCF2D} /* Korean hangul */, - {0, 0, 0xCF2F} /* Korean hangul */, - {0, 0, 0xCF30} /* Korean hangul */, - {0, 0, 0xCF54} /* Korean hangul */, - {0, 0, 0xCF55} /* Korean hangul */, - {0, 0, 0xCF58} /* Korean hangul */, - {0, 0, 0xCF5C} /* Korean hangul */, - {0, 0, 0xCF64} /* Korean hangul */, - {0, 0, 0xCF65} /* Korean hangul */, - {0, 0, 0xCF67} /* Korean hangul */, - {0, 0, 0xCF69} /* Korean hangul */, - {0, 0, 0xCF70} /* Korean hangul */, - {0, 0, 0xCF71} /* Korean hangul */, - {0, 0, 0xCF74} /* Korean hangul */, - {0, 0, 0xCF78} /* Korean hangul */, - {0, 0, 0xCF80} /* Korean hangul */, - {0, 0, 0xCF85} /* Korean hangul */, - {0, 0, 0xCF8C} /* Korean hangul */, - {0, 0, 0xCF8D} /* Korean hangul */, - {0, 0, 0xCFA1} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xCFB0} /* Korean hangul */, - {0, 0, 0xCFC4} /* Korean hangul */, - {0, 0, 0xCFE0} /* Korean hangul */, - {0, 0, 0xCFE1} /* Korean hangul */, - {0, 0, 0xCFE4} /* Korean hangul */, - {0, 0, 0xCFE8} /* Korean hangul */, - {0, 0, 0xCFF0} /* Korean hangul */, - {0, 0, 0xCFF3} /* Korean hangul */, - {0, 0, 0xCFF5} /* Korean hangul */, - {0, 0, 0xCFFC} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xD018} /* Korean hangul */, - {0, 0, 0xD02D} /* Korean hangul */, - {0, 0, 0xD034} /* Korean hangul */, - {0, 0, 0xD035} /* Korean hangul */, - {0, 0, 0xD038} /* Korean hangul */, - {0, 0, 0xD050} /* Korean hangul */, - {0, 0, 0xD06C} /* Korean hangul */, - {0, 0, 0xD070} /* Korean hangul */, - {0, 0, 0xD074} /* Korean hangul */, - {0, 0, 0xD07C} /* Korean hangul */, - {0, 0, 0xD07D} /* Korean hangul */, - {0, 0, 0xD081} /* Korean hangul */, - {0, 0, 0xD0A4} /* Korean hangul */, - {0, 0, 0xD0A5} /* Korean hangul */, - {0, 0, 0xD0A8} /* Korean hangul */, - {0, 0, 0xD0AC} /* Korean hangul */, - {0, 0, 0xD0B4} /* Korean hangul */, - {0, 0, 0xD0B5} /* Korean hangul */, - {0, 0, 0xD0B7} /* Korean hangul */, - {0, 0, 0xD0B9} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xD0C0} /* Korean hangul */, - {0, 0, 0xD0C1} /* Korean hangul */, - {0, 0, 0xD0C4} /* Korean hangul */, - {0, 0, 0xD0C8} /* Korean hangul */, - {0, 0, 0xD0C9} /* Korean hangul */, - {0, 0, 0xD0D0} /* Korean hangul */, - {0, 0, 0xD0D1} /* Korean hangul */, - {0, 0, 0xD0D3} /* Korean hangul */, - {0, 0, 0xD0D4} /* Korean hangul */, - {0, 0, 0xD0D5} /* Korean hangul */, - {0, 0, 0xD0DC} /* Korean hangul */, - {0, 0, 0xD0DD} /* Korean hangul */, - {0, 0, 0xD0E0} /* Korean hangul */, - {0, 0, 0xD0E4} /* Korean hangul */, - {0, 0, 0xD0EC} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page818 = { - 0, marc8_31page818_dir -}; -/* PAGE 817 */ -struct yaz_iconv_trie_dir marc8_31page817_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xCC29} /* Korean hangul */, - {0, 0, 0xCC2C} /* Korean hangul */, - {0, 0, 0xCC2E} /* Korean hangul */, - {0, 0, 0xCC2F} /* Korean hangul */, - {0, 0, 0xCC30} /* Korean hangul */, - {0, 0, 0xCC38} /* Korean hangul */, - {0, 0, 0xCC39} /* Korean hangul */, - {0, 0, 0xCC3B} /* Korean hangul */, - {0, 0, 0xCC3C} /* Korean hangul */, - {0, 0, 0xCC3D} /* Korean hangul */, - {0, 0, 0xCC3E} /* Korean hangul */, - {0, 0, 0xCC3F} /* Korean hangul */, - {0, 0, 0xCC44} /* Korean hangul */, - {0, 0, 0xCC45} /* Korean hangul */, - {0, 0, 0xCC48} /* Korean hangul */, - {0, 0, 0xCC4C} /* Korean hangul */, - {0, 0, 0xCC54} /* Korean hangul */, - {0, 0, 0xCC55} /* Korean hangul */, - {0, 0, 0xCC58} /* Korean hangul */, - {0, 0, 0xCC59} /* Korean hangul */, - {0, 0, 0xCC60} /* Korean hangul */, - {0, 0, 0xCC64} /* Korean hangul */, - {0, 0, 0xCC70} /* Korean hangul */, - {0, 0, 0xCC71} /* Korean hangul */, - {0, 0, 0xCC98} /* Korean hangul */, - {0, 0, 0xCC99} /* Korean hangul */, - {0, 0, 0xCC9C} /* Korean hangul */, - {0, 0, 0xCCA0} /* Korean hangul */, - {0, 0, 0xCCA8} /* Korean hangul */, - {0, 0, 0xCCA9} /* Korean hangul */, - {0, 0, 0xCCAB} /* Korean hangul */, - {0, 0, 0xCCAD} /* Korean hangul */, - {0, 0, 0xCCB4} /* Korean hangul */, - {0, 0, 0xCCB5} /* Korean hangul */, - {0, 0, 0xCCB8} /* Korean hangul */, - {0, 0, 0xCCBC} /* Korean hangul */, - {0, 0, 0xCCC7} /* Korean hangul */, - {0, 0, 0xCCD0} /* Korean hangul */, - {0, 0, 0xCCE4} /* Korean hangul */, - {0, 0, 0xCD08} /* Korean hangul */, - {0, 0, 0xCD09} /* Korean hangul */, - {0, 0, 0xCD0C} /* Korean hangul */, - {0, 0, 0xCD10} /* Korean hangul */, - {0, 0, 0xCD18} /* Korean hangul */, - {0, 0, 0xCD19} /* Korean hangul */, - {0, 0, 0xCD1B} /* Korean hangul */, - {0, 0, 0xCD1D} /* Korean hangul */, - {0, 0, 0xCD2C} /* Korean hangul */, - {0, 0, 0xCD5C} /* Korean hangul */, - {0, 0, 0xCD78} /* Korean hangul */, - {0, 0, 0xCD94} /* Korean hangul */, - {0, 0, 0xCD95} /* Korean hangul */, - {0, 0, 0xCD98} /* Korean hangul */, - {0, 0, 0xCD9C} /* Korean hangul */, - {0, 0, 0xCDA4} /* Korean hangul */, - {0, 0, 0xCDA5} /* Korean hangul */, - {0, 0, 0xCDA7} /* Korean hangul */, - {0, 0, 0xCDA9} /* Korean hangul */, - {0, 0, 0xCDB0} /* Korean hangul */, - {0, 0, 0xCDC4} /* Korean hangul */, - {0, 0, 0xCDCC} /* Korean hangul */, - {0, 0, 0xCDE8} /* Korean hangul */, - {0, 0, 0xCE04} /* Korean hangul */, - {0, 0, 0xCE20} /* Korean hangul */, - {0, 0, 0xCE21} /* Korean hangul */, - {0, 0, 0xCE30} /* Korean hangul */, - {0, 0, 0xCE35} /* Korean hangul */, - {0, 0, 0xCE58} /* Korean hangul */, - {0, 0, 0xCE59} /* Korean hangul */, - {0, 0, 0xCE5C} /* Korean hangul */, - {0, 0, 0xCE60} /* Korean hangul */, - {0, 0, 0xCE61} /* Korean hangul */, - {0, 0, 0xCE68} /* Korean hangul */, - {0, 0, 0xCE69} /* Korean hangul */, - {0, 0, 0xCE6B} /* Korean hangul */, - {0, 0, 0xCE6D} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xCE74} /* Korean hangul */, - {0, 0, 0xCE75} /* Korean hangul */, - {0, 0, 0xCE78} /* Korean hangul */, - {0, 0, 0xCE7C} /* Korean hangul */, - {0, 0, 0xCE84} /* Korean hangul */, - {0, 0, 0xCE85} /* Korean hangul */, - {0, 0, 0xCE87} /* Korean hangul */, - {0, 0, 0xCE89} /* Korean hangul */, - {0, 0, 0xCE90} /* Korean hangul */, - {0, 0, 0xCE91} /* Korean hangul */, - {0, 0, 0xCE94} /* Korean hangul */, - {0, 0, 0xCE98} /* Korean hangul */, - {0, 0, 0xCEA0} /* Korean hangul */, - {0, 0, 0xCEA1} /* Korean hangul */, - {0, 0, 0xCEA3} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page817 = { - 0, marc8_31page817_dir -}; -/* PAGE 816 */ -struct yaz_iconv_trie_dir marc8_31page816_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC974} /* Korean hangul */, - {0, 0, 0xC988} /* Korean hangul */, - {0, 0, 0xC989} /* Korean hangul */, - {0, 0, 0xC98C} /* Korean hangul */, - {0, 0, 0xC990} /* Korean hangul */, - {0, 0, 0xC998} /* Korean hangul */, - {0, 0, 0xC999} /* Korean hangul */, - {0, 0, 0xC99D} /* Korean hangul */, - {0, 0, 0xC9C0} /* Korean hangul */, - {0, 0, 0xC9C1} /* Korean hangul */, - {0, 0, 0xC9C4} /* Korean hangul */, - {0, 0, 0xC9C7} /* Korean hangul */, - {0, 0, 0xC9C8} /* Korean hangul */, - {0, 0, 0xC9CA} /* Korean hangul */, - {0, 0, 0xC9D0} /* Korean hangul */, - {0, 0, 0xC9D1} /* Korean hangul */, - {0, 0, 0xC9D3} /* Korean hangul */, - {0, 0, 0xC9D5} /* Korean hangul */, - {0, 0, 0xC9D6} /* Korean hangul */, - {0, 0, 0xC9D9} /* Korean hangul */, - {0, 0, 0xC9DA} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC9DC} /* Korean hangul */, - {0, 0, 0xC9DD} /* Korean hangul */, - {0, 0, 0xC9E0} /* Korean hangul */, - {0, 0, 0xC9E2} /* Korean hangul */, - {0, 0, 0xC9E4} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xC9E7} /* Korean hangul */, - {0, 0, 0xC9EC} /* Korean hangul */, - {0, 0, 0xC9ED} /* Korean hangul */, - {0, 0, 0xC9EF} /* Korean hangul */, - {0, 0, 0xC9F0} /* Korean hangul */, - {0, 0, 0xC9F1} /* Korean hangul */, - {0, 0, 0xC9F8} /* Korean hangul */, - {0, 0, 0xC9F9} /* Korean hangul */, - {0, 0, 0xC9FC} /* Korean hangul */, - {0, 0, 0xCA00} /* Korean hangul */, - {0, 0, 0xCA08} /* Korean hangul */, - {0, 0, 0xCA09} /* Korean hangul */, - {0, 0, 0xCA0B} /* Korean hangul */, - {0, 0, 0xCA0C} /* Korean hangul */, - {0, 0, 0xCA0D} /* Korean hangul */, - {0, 0, 0xCA18} /* Korean hangul */, - {0, 0, 0xCA4C} /* Korean hangul */, - {0, 0, 0xCA4D} /* Korean hangul */, - {0, 0, 0xCA50} /* Korean hangul */, - {0, 0, 0xCA54} /* Korean hangul */, - {0, 0, 0xCA5C} /* Korean hangul */, - {0, 0, 0xCA5D} /* Korean hangul */, - {0, 0, 0xCA61} /* Korean hangul */, - {0, 0, 0xCA84} /* Korean hangul */, - {0, 0, 0xCA98} /* Korean hangul */, - {0, 0, 0xCABC} /* Korean hangul */, - {0, 0, 0xCABD} /* Korean hangul */, - {0, 0, 0xCAC0} /* Korean hangul */, - {0, 0, 0xCAC4} /* Korean hangul */, - {0, 0, 0xCACC} /* Korean hangul */, - {0, 0, 0xCACD} /* Korean hangul */, - {0, 0, 0xCAD1} /* Korean hangul */, - {0, 0, 0xCAD2} /* Korean hangul */, - {0, 0, 0xCAD3} /* Korean hangul */, - {0, 0, 0xCAD8} /* Korean hangul */, - {0, 0, 0xCAD9} /* Korean hangul */, - {0, 0, 0xCB10} /* Korean hangul */, - {0, 0, 0xCB14} /* Korean hangul */, - {0, 0, 0xCB18} /* Korean hangul */, - {0, 0, 0xCB20} /* Korean hangul */, - {0, 0, 0xCB21} /* Korean hangul */, - {0, 0, 0xCB41} /* Korean hangul */, - {0, 0, 0xCB48} /* Korean hangul */, - {0, 0, 0xCB49} /* Korean hangul */, - {0, 0, 0xCB50} /* Korean hangul */, - {0, 0, 0xCB58} /* Korean hangul */, - {0, 0, 0xCB59} /* Korean hangul */, - {0, 0, 0xCB5D} /* Korean hangul */, - {0, 0, 0xCB64} /* Korean hangul */, - {0, 0, 0xCBB8} /* Korean hangul */, - {0, 0, 0xCBD4} /* Korean hangul */, - {0, 0, 0xCBE4} /* Korean hangul */, - {0, 0, 0xCBE7} /* Korean hangul */, - {0, 0, 0xCC0C} /* Korean hangul */, - {0, 0, 0xCC0D} /* Korean hangul */, - {0, 0, 0xCC10} /* Korean hangul */, - {0, 0, 0xCC14} /* Korean hangul */, - {0, 0, 0xCC1C} /* Korean hangul */, - {0, 0, 0xCC1D} /* Korean hangul */, - {0, 0, 0xCC21} /* Korean hangul */, - {0, 0, 0xCC22} /* Korean hangul */, - {0, 0, 0xCC27} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xCC28} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page816 = { - 0, marc8_31page816_dir -}; -/* PAGE 815 */ -struct yaz_iconv_trie_dir marc8_31page815_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC7A1} /* Korean hangul */, - {0, 0, 0xC7A3} /* Korean hangul */, - {0, 0, 0xC7A4} /* Korean hangul */, - {0, 0, 0xC7A5} /* Korean hangul */, - {0, 0, 0xC7A6} /* Korean hangul */, - {0, 0, 0xC7A7} /* Korean hangul */, - {0, 0, 0xC7AC} /* Korean hangul */, - {0, 0, 0xC7AD} /* Korean hangul */, - {0, 0, 0xC7B0} /* Korean hangul */, - {0, 0, 0xC7B4} /* Korean hangul */, - {0, 0, 0xC7BC} /* Korean hangul */, - {0, 0, 0xC7BD} /* Korean hangul */, - {0, 0, 0xC7BF} /* Korean hangul */, - {0, 0, 0xC7C0} /* Korean hangul */, - {0, 0, 0xC7C1} /* Korean hangul */, - {0, 0, 0xC7C8} /* Korean hangul */, - {0, 0, 0xC7C9} /* Korean hangul */, - {0, 0, 0xC7CC} /* Korean hangul */, - {0, 0, 0xC7D8} /* Korean hangul */, - {0, 0, 0xC800} /* Korean hangul */, - {0, 0, 0xC801} /* Korean hangul */, - {0, 0, 0xC804} /* Korean hangul */, - {0, 0, 0xC808} /* Korean hangul */, - {0, 0, 0xC80A} /* Korean hangul */, - {0, 0, 0xC810} /* Korean hangul */, - {0, 0, 0xC811} /* Korean hangul */, - {0, 0, 0xC813} /* Korean hangul */, - {0, 0, 0xC814} /* Korean hangul */, - {0, 0, 0xC815} /* Korean hangul */, - {0, 0, 0xC816} /* Korean hangul */, - {0, 0, 0xC81C} /* Korean hangul */, - {0, 0, 0xC81D} /* Korean hangul */, - {0, 0, 0xC820} /* Korean hangul */, - {0, 0, 0xC824} /* Korean hangul */, - {0, 0, 0xC82C} /* Korean hangul */, - {0, 0, 0xC82D} /* Korean hangul */, - {0, 0, 0xC82F} /* Korean hangul */, - {0, 0, 0xC838} /* Korean hangul */, - {0, 0, 0xC83C} /* Korean hangul */, - {0, 0, 0xC84C} /* Korean hangul */, - {0, 0, 0xC870} /* Korean hangul */, - {0, 0, 0xC871} /* Korean hangul */, - {0, 0, 0xC874} /* Korean hangul */, - {0, 0, 0xC878} /* Korean hangul */, - {0, 0, 0xC87A} /* Korean hangul */, - {0, 0, 0xC880} /* Korean hangul */, - {0, 0, 0xC881} /* Korean hangul */, - {0, 0, 0xC885} /* Korean hangul */, - {0, 0, 0xC886} /* Korean hangul */, - {0, 0, 0xC887} /* Korean hangul */, - {0, 0, 0xC88B} /* Korean hangul */, - {0, 0, 0xC88C} /* Korean hangul */, - {0, 0, 0xC88D} /* Korean hangul */, - {0, 0, 0xC890} /* Korean hangul */, - {0, 0, 0xC894} /* Korean hangul */, - {0, 0, 0xC89C} /* Korean hangul */, - {0, 0, 0xC89D} /* Korean hangul */, - {0, 0, 0xC89F} /* Korean hangul */, - {0, 0, 0xC8A0} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xC8A8} /* Korean hangul */, - {0, 0, 0xC8AC} /* Korean hangul */, - {0, 0, 0xC8B0} /* Korean hangul */, - {0, 0, 0xC8B8} /* Korean hangul */, - {0, 0, 0xC8C4} /* Korean hangul */, - {0, 0, 0xC8C8} /* Korean hangul */, - {0, 0, 0xC8CC} /* Korean hangul */, - {0, 0, 0xC8D4} /* Korean hangul */, - {0, 0, 0xC8D5} /* Korean hangul */, - {0, 0, 0xC8D7} /* Korean hangul */, - {0, 0, 0xC8E0} /* Korean hangul */, - {0, 0, 0xC8E4} /* Korean hangul */, - {0, 0, 0xC8F0} /* Korean hangul */, - {0, 0, 0xC8F1} /* Korean hangul */, - {0, 0, 0xC8F5} /* Korean hangul */, - {0, 0, 0xC8FC} /* Korean hangul */, - {0, 0, 0xC8FD} /* Korean hangul */, - {0, 0, 0xC900} /* Korean hangul */, - {0, 0, 0xC904} /* Korean hangul */, - {0, 0, 0xC906} /* Korean hangul */, - {0, 0, 0xC90C} /* Korean hangul */, - {0, 0, 0xC90D} /* Korean hangul */, - {0, 0, 0xC90F} /* Korean hangul */, - {0, 0, 0xC911} /* Korean hangul */, - {0, 0, 0xC918} /* Korean hangul */, - {0, 0, 0xC92C} /* Korean hangul */, - {0, 0, 0xC950} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xC954} /* Korean hangul */, - {0, 0, 0xC958} /* Korean hangul */, - {0, 0, 0xC960} /* Korean hangul */, - {0, 0, 0xC961} /* Korean hangul */, - {0, 0, 0xC96C} /* Korean hangul */, - {0, 0, 0xC970} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page815 = { - 0, marc8_31page815_dir -}; -/* PAGE 814 */ -struct yaz_iconv_trie_dir marc8_31page814_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC641} /* Korean hangul */, - {0, 0, 0xC644} /* Korean hangul */, - {0, 0, 0xC648} /* Korean hangul */, - {0, 0, 0xC650} /* Korean hangul */, - {0, 0, 0xC651} /* Korean hangul */, - {0, 0, 0xC653} /* Korean hangul */, - {0, 0, 0xC654} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xC65C} /* Korean hangul */, - {0, 0, 0xC65D} /* Korean hangul */, - {0, 0, 0xC660} /* Korean hangul */, - {0, 0, 0xC671} /* Korean hangul */, - {0, 0, 0xC678} /* Korean hangul */, - {0, 0, 0xC679} /* Korean hangul */, - {0, 0, 0xC67C} /* Korean hangul */, - {0, 0, 0xC680} /* Korean hangul */, - {0, 0, 0xC688} /* Korean hangul */, - {0, 0, 0xC68B} /* Korean hangul */, - {0, 0, 0xC68D} /* Korean hangul */, - {0, 0, 0xC694} /* Korean hangul */, - {0, 0, 0xC695} /* Korean hangul */, - {0, 0, 0xC698} /* Korean hangul */, - {0, 0, 0xC6A5} /* Korean hangul */, - {0, 0, 0xC6A7} /* Korean hangul */, - {0, 0, 0xC6A9} /* Korean hangul */, - {0, 0, 0xC6B0} /* Korean hangul */, - {0, 0, 0xC6B1} /* Korean hangul */, - {0, 0, 0xC6B4} /* Korean hangul */, - {0, 0, 0xC6B7} /* Korean hangul */, - {0, 0, 0xC6B8} /* Korean hangul */, - {0, 0, 0xC6B9} /* Korean hangul */, - {0, 0, 0xC6BA} /* Korean hangul */, - {0, 0, 0xC6C0} /* Korean hangul */, - {0, 0, 0xC6C1} /* Korean hangul */, - {0, 0, 0xC6C3} /* Korean hangul */, - {0, 0, 0xC6C5} /* Korean hangul */, - {0, 0, 0xC6CC} /* Korean hangul */, - {0, 0, 0xC6CD} /* Korean hangul */, - {0, 0, 0xC6D0} /* Korean hangul */, - {0, 0, 0xC6D4} /* Korean hangul */, - {0, 0, 0xC6DC} /* Korean hangul */, - {0, 0, 0xC6DD} /* Korean hangul */, - {0, 0, 0xC6DF} /* Korean hangul */, - {0, 0, 0xC6E0} /* Korean hangul */, - {0, 0, 0xC6E1} /* Korean hangul */, - {0, 0, 0xC6E8} /* Korean hangul */, - {0, 0, 0xC6E9} /* Korean hangul */, - {0, 0, 0xC6EC} /* Korean hangul */, - {0, 0, 0xC6F0} /* Korean hangul */, - {0, 0, 0xC6F8} /* Korean hangul */, - {0, 0, 0xC704} /* Korean hangul */, - {0, 0, 0xC705} /* Korean hangul */, - {0, 0, 0xC708} /* Korean hangul */, - {0, 0, 0xC70C} /* Korean hangul */, - {0, 0, 0xC714} /* Korean hangul */, - {0, 0, 0xC717} /* Korean hangul */, - {0, 0, 0xC719} /* Korean hangul */, - {0, 0, 0xC720} /* Korean hangul */, - {0, 0, 0xC721} /* Korean hangul */, - {0, 0, 0xC724} /* Korean hangul */, - {0, 0, 0xC728} /* Korean hangul */, - {0, 0, 0xC730} /* Korean hangul */, - {0, 0, 0xC735} /* Korean hangul */, - {0, 0, 0xC737} /* Korean hangul */, - {0, 0, 0xC73C} /* Korean hangul */, - {0, 0, 0xC73D} /* Korean hangul */, - {0, 0, 0xC740} /* Korean hangul */, - {0, 0, 0xC744} /* Korean hangul */, - {0, 0, 0xC74A} /* Korean hangul */, - {0, 0, 0xC74C} /* Korean hangul */, - {0, 0, 0xC74D} /* Korean hangul */, - {0, 0, 0xC751} /* Korean hangul */, - {0, 0, 0xC758} /* Korean hangul */, - {0, 0, 0xC774} /* Korean hangul */, - {0, 0, 0xC775} /* Korean hangul */, - {0, 0, 0xC778} /* Korean hangul */, - {0, 0, 0xC77C} /* Korean hangul */, - {0, 0, 0xC77D} /* Korean hangul */, - {0, 0, 0xC783} /* Korean hangul */, - {0, 0, 0xC784} /* Korean hangul */, - {0, 0, 0xC785} /* Korean hangul */, - {0, 0, 0xC787} /* Korean hangul */, - {0, 0, 0xC788} /* Korean hangul */, - {0, 0, 0xC789} /* Korean hangul */, - {0, 0, 0xC78A} /* Korean hangul */, - {0, 0, 0xC78E} /* Korean hangul */, - {0, 0, 0xC655} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xC790} /* Korean hangul */, - {0, 0, 0xC791} /* Korean hangul */, - {0, 0, 0xC794} /* Korean hangul */, - {0, 0, 0xC796} /* Korean hangul */, - {0, 0, 0xC798} /* Korean hangul */, - {0, 0, 0xC7A0} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page814 = { - 0, marc8_31page814_dir -}; -/* PAGE 813 */ -struct yaz_iconv_trie_dir marc8_31page813_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC549} /* Korean hangul */, - {0, 0, 0xC54A} /* Korean hangul */, - {0, 0, 0xC54C} /* Korean hangul */, - {0, 0, 0xC54E} /* Korean hangul */, - {0, 0, 0xC553} /* Korean hangul */, - {0, 0, 0xC554} /* Korean hangul */, - {0, 0, 0xC555} /* Korean hangul */, - {0, 0, 0xC557} /* Korean hangul */, - {0, 0, 0xC558} /* Korean hangul */, - {0, 0, 0xC559} /* Korean hangul */, - {0, 0, 0xC55E} /* Korean hangul */, - {0, 0, 0xC55F} /* Korean hangul */, - {0, 0, 0xC560} /* Korean hangul */, - {0, 0, 0xC561} /* Korean hangul */, - {0, 0, 0xC564} /* Korean hangul */, - {0, 0, 0xC568} /* Korean hangul */, - {0, 0, 0xC570} /* Korean hangul */, - {0, 0, 0xC571} /* Korean hangul */, - {0, 0, 0xC573} /* Korean hangul */, - {0, 0, 0xC574} /* Korean hangul */, - {0, 0, 0xC575} /* Korean hangul */, - {0, 0, 0xC57C} /* Korean hangul */, - {0, 0, 0xC57D} /* Korean hangul */, - {0, 0, 0xC580} /* Korean hangul */, - {0, 0, 0xC584} /* Korean hangul */, - {0, 0, 0xC587} /* Korean hangul */, - {0, 0, 0xC58C} /* Korean hangul */, - {0, 0, 0xC58D} /* Korean hangul */, - {0, 0, 0xC58F} /* Korean hangul */, - {0, 0, 0xC590} /* Korean hangul */, - {0, 0, 0xC591} /* Korean hangul */, - {0, 0, 0xC595} /* Korean hangul */, - {0, 0, 0xC597} /* Korean hangul */, - {0, 0, 0xC598} /* Korean hangul */, - {0, 0, 0xC59C} /* Korean hangul */, - {0, 0, 0xC5B4} /* Korean hangul */, - {0, 0, 0xC5B5} /* Korean hangul */, - {0, 0, 0xC5B6} /* Korean hangul */, - {0, 0, 0xC5B8} /* Korean hangul */, - {0, 0, 0xC5B9} /* Korean hangul */, - {0, 0, 0xC5BA} /* Korean hangul */, - {0, 0, 0xC5BB} /* Korean hangul */, - {0, 0, 0xC5BC} /* Korean hangul */, - {0, 0, 0xC5BD} /* Korean hangul */, - {0, 0, 0xC5C4} /* Korean hangul */, - {0, 0, 0xC5C5} /* Korean hangul */, - {0, 0, 0xC5C6} /* Korean hangul */, - {0, 0, 0xC5C7} /* Korean hangul */, - {0, 0, 0xC5C8} /* Korean hangul */, - {0, 0, 0xC5C9} /* Korean hangul */, - {0, 0, 0xC5CA} /* Korean hangul */, - {0, 0, 0xC5CC} /* Korean hangul */, - {0, 0, 0xC5CE} /* Korean hangul */, - {0, 0, 0xC5D0} /* Korean hangul */, - {0, 0, 0xC5D1} /* Korean hangul */, - {0, 0, 0xC5D4} /* Korean hangul */, - {0, 0, 0xC5D8} /* Korean hangul */, - {0, 0, 0xC5E0} /* Korean hangul */, - {0, 0, 0xC5E1} /* Korean hangul */, - {0, 0, 0xC5E3} /* Korean hangul */, - {0, 0, 0xC5E5} /* Korean hangul */, - {0, 0, 0xC5EC} /* Korean hangul */, - {0, 0, 0xC5ED} /* Korean hangul */, - {0, 0, 0xC5EE} /* Korean hangul */, - {0, 0, 0xC5F0} /* Korean hangul */, - {0, 0, 0xC5F4} /* Korean hangul */, - {0, 0, 0xC5F6} /* Korean hangul */, - {0, 0, 0xC5F7} /* Korean hangul */, - {0, 0, 0xC5FC} /* Korean hangul */, - {0, 0, 0xC5FD} /* Korean hangul */, - {0, 0, 0xC5FE} /* Korean hangul */, - {0, 0, 0xC5FF} /* Korean hangul */, - {0, 0, 0xC600} /* Korean hangul */, - {0, 0, 0xC601} /* Korean hangul */, - {0, 0, 0xC606} /* Korean hangul */, - {0, 0, 0xC607} /* Korean hangul */, - {0, 0, 0xC608} /* Korean hangul */, - {0, 0, 0xC60C} /* Korean hangul */, - {0, 0, 0xC610} /* Korean hangul */, - {0, 0, 0xC61B} /* Korean hangul */, - {0, 0, 0xC624} /* Korean hangul */, - {0, 0, 0xC625} /* Korean hangul */, - {0, 0, 0xC628} /* Korean hangul */, - {0, 0, 0xC62C} /* Korean hangul */, - {0, 0, 0xC62D} /* Korean hangul */, - {0, 0, 0xC62E} /* Korean hangul */, - {0, 0, 0xC633} /* Korean hangul */, - {0, 0, 0xC634} /* Korean hangul */, - {0, 0, 0xC635} /* Korean hangul */, - {0, 0, 0xC637} /* Korean hangul */, - {0, 0, 0xC639} /* Korean hangul */, - {0, 0, 0xC63A} /* Korean hangul */, - {0, 0, 0xC63B} /* Korean hangul */, - {0, 0, 0xC640} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page813 = { - 0, marc8_31page813_dir -}; -/* PAGE 812 */ -struct yaz_iconv_trie_dir marc8_31page812_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC2B7} /* Korean hangul */, - {0, 0, 0xC2B9} /* Korean hangul */, - {0, 0, 0xC2DC} /* Korean hangul */, - {0, 0, 0xC2DD} /* Korean hangul */, - {0, 0, 0xC2E0} /* Korean hangul */, - {0, 0, 0xC2E3} /* Korean hangul */, - {0, 0, 0xC2E4} /* Korean hangul */, - {0, 0, 0xC2EB} /* Korean hangul */, - {0, 0, 0xC2EC} /* Korean hangul */, - {0, 0, 0xC2ED} /* Korean hangul */, - {0, 0, 0xC2EF} /* Korean hangul */, - {0, 0, 0xC2F1} /* Korean hangul */, - {0, 0, 0xC2F6} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC2F8} /* Korean hangul */, - {0, 0, 0xC2F9} /* Korean hangul */, - {0, 0, 0xC2FC} /* Korean hangul */, - {0, 0, 0xC300} /* Korean hangul */, - {0, 0, 0xC308} /* Korean hangul */, - {0, 0, 0xC309} /* Korean hangul */, - {0, 0, 0xC30B} /* Korean hangul */, - {0, 0, 0xC30C} /* Korean hangul */, - {0, 0, 0xC30D} /* Korean hangul */, - {0, 0, 0xC313} /* Korean hangul */, - {0, 0, 0xC314} /* Korean hangul */, - {0, 0, 0xC315} /* Korean hangul */, - {0, 0, 0xC318} /* Korean hangul */, - {0, 0, 0xC31C} /* Korean hangul */, - {0, 0, 0xC324} /* Korean hangul */, - {0, 0, 0xC327} /* Korean hangul */, - {0, 0, 0xC328} /* Korean hangul */, - {0, 0, 0xC329} /* Korean hangul */, - {0, 0, 0xC330} /* Korean hangul */, - {0, 0, 0xC343} /* Korean hangul */, - {0, 0, 0xC345} /* Korean hangul */, - {0, 0, 0xC368} /* Korean hangul */, - {0, 0, 0xC369} /* Korean hangul */, - {0, 0, 0xC36C} /* Korean hangul */, - {0, 0, 0xC370} /* Korean hangul */, - {0, 0, 0xC372} /* Korean hangul */, - {0, 0, 0xC378} /* Korean hangul */, - {0, 0, 0xC379} /* Korean hangul */, - {0, 0, 0xC37C} /* Korean hangul */, - {0, 0, 0xC37D} /* Korean hangul */, - {0, 0, 0xC384} /* Korean hangul */, - {0, 0, 0xC388} /* Korean hangul */, - {0, 0, 0xC399} /* Korean hangul */, - {0, 0, 0xC3D8} /* Korean hangul */, - {0, 0, 0xC3D9} /* Korean hangul */, - {0, 0, 0xC3DC} /* Korean hangul */, - {0, 0, 0xC3DF} /* Korean hangul */, - {0, 0, 0xC3E0} /* Korean hangul */, - {0, 0, 0xC3E8} /* Korean hangul */, - {0, 0, 0xC3ED} /* Korean hangul */, - {0, 0, 0xC3F4} /* Korean hangul */, - {0, 0, 0xC3F5} /* Korean hangul */, - {0, 0, 0xC410} /* Korean hangul */, - {0, 0, 0xC42C} /* Korean hangul */, - {0, 0, 0xC430} /* Korean hangul */, - {0, 0, 0xC434} /* Korean hangul */, - {0, 0, 0xC43C} /* Korean hangul */, - {0, 0, 0xC43F} /* Korean hangul */, - {0, 0, 0xC464} /* Korean hangul */, - {0, 0, 0xC465} /* Korean hangul */, - {0, 0, 0xC468} /* Korean hangul */, - {0, 0, 0xC46C} /* Korean hangul */, - {0, 0, 0xC474} /* Korean hangul */, - {0, 0, 0xC479} /* Korean hangul */, - {0, 0, 0xC480} /* Korean hangul */, - {0, 0, 0xC494} /* Korean hangul */, - {0, 0, 0xC4D4} /* Korean hangul */, - {0, 0, 0xC4D5} /* Korean hangul */, - {0, 0, 0xC4F0} /* Korean hangul */, - {0, 0, 0xC4F1} /* Korean hangul */, - {0, 0, 0xC4F4} /* Korean hangul */, - {0, 0, 0xC4F8} /* Korean hangul */, - {0, 0, 0xC500} /* Korean hangul */, - {0, 0, 0xC501} /* Korean hangul */, - {0, 0, 0xC50C} /* Korean hangul */, - {0, 0, 0xC510} /* Korean hangul */, - {0, 0, 0xC528} /* Korean hangul */, - {0, 0, 0xC529} /* Korean hangul */, - {0, 0, 0xC52C} /* Korean hangul */, - {0, 0, 0xC530} /* Korean hangul */, - {0, 0, 0xC538} /* Korean hangul */, - {0, 0, 0xC539} /* Korean hangul */, - {0, 0, 0xC53B} /* Korean hangul */, - {0, 0, 0xC53D} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC544} /* Korean hangul */, - {0, 0, 0xC545} /* Korean hangul */, - {0, 0, 0xC548} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page812 = { - 0, marc8_31page812_dir -}; -/* PAGE 811 */ -struct yaz_iconv_trie_dir marc8_31page811_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC11C} /* Korean hangul */, - {0, 0, 0xC11D} /* Korean hangul */, - {0, 0, 0xC11E} /* Korean hangul */, - {0, 0, 0xC120} /* Korean hangul */, - {0, 0, 0xC123} /* Korean hangul */, - {0, 0, 0xC124} /* Korean hangul */, - {0, 0, 0xC125} /* Korean hangul */, - {0, 0, 0xC126} /* Korean hangul */, - {0, 0, 0xC127} /* Korean hangul */, - {0, 0, 0xC12A} /* Korean hangul */, - {0, 0, 0xC12C} /* Korean hangul */, - {0, 0, 0xC12D} /* Korean hangul */, - {0, 0, 0xC12F} /* Korean hangul */, - {0, 0, 0xC130} /* Korean hangul */, - {0, 0, 0xC131} /* Korean hangul */, - {0, 0, 0xC136} /* Korean hangul */, - {0, 0, 0xC138} /* Korean hangul */, - {0, 0, 0xC139} /* Korean hangul */, - {0, 0, 0xC13C} /* Korean hangul */, - {0, 0, 0xC140} /* Korean hangul */, - {0, 0, 0xC148} /* Korean hangul */, - {0, 0, 0xC149} /* Korean hangul */, - {0, 0, 0xC14B} /* Korean hangul */, - {0, 0, 0xC14D} /* Korean hangul */, - {0, 0, 0xC151} /* Korean hangul */, - {0, 0, 0xC154} /* Korean hangul */, - {0, 0, 0xC158} /* Korean hangul */, - {0, 0, 0xC167} /* Korean hangul */, - {0, 0, 0xC168} /* Korean hangul */, - {0, 0, 0xC170} /* Korean hangul */, - {0, 0, 0xC18C} /* Korean hangul */, - {0, 0, 0xC18D} /* Korean hangul */, - {0, 0, 0xC18E} /* Korean hangul */, - {0, 0, 0xC190} /* Korean hangul */, - {0, 0, 0xC194} /* Korean hangul */, - {0, 0, 0xC19C} /* Korean hangul */, - {0, 0, 0xC19D} /* Korean hangul */, - {0, 0, 0xC19F} /* Korean hangul */, - {0, 0, 0xC1A1} /* Korean hangul */, - {0, 0, 0xC1A5} /* Korean hangul */, - {0, 0, 0xC1A8} /* Korean hangul */, - {0, 0, 0xC1A9} /* Korean hangul */, - {0, 0, 0xC1B0} /* Korean hangul */, - {0, 0, 0xC1C4} /* Korean hangul */, - {0, 0, 0xC1C8} /* Korean hangul */, - {0, 0, 0xC1D7} /* Korean hangul */, - {0, 0, 0xC1E0} /* Korean hangul */, - {0, 0, 0xC1E4} /* Korean hangul */, - {0, 0, 0xC1E8} /* Korean hangul */, - {0, 0, 0xC1F0} /* Korean hangul */, - {0, 0, 0xC1F1} /* Korean hangul */, - {0, 0, 0xC1F3} /* Korean hangul */, - {0, 0, 0xC1FC} /* Korean hangul */, - {0, 0, 0xC1FD} /* Korean hangul */, - {0, 0, 0xC200} /* Korean hangul */, - {0, 0, 0xC204} /* Korean hangul */, - {0, 0, 0xC20D} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xC218} /* Korean hangul */, - {0, 0, 0xC219} /* Korean hangul */, - {0, 0, 0xC21C} /* Korean hangul */, - {0, 0, 0xC21F} /* Korean hangul */, - {0, 0, 0xC220} /* Korean hangul */, - {0, 0, 0xC228} /* Korean hangul */, - {0, 0, 0xC229} /* Korean hangul */, - {0, 0, 0xC22B} /* Korean hangul */, - {0, 0, 0xC22D} /* Korean hangul */, - {0, 0, 0xC22F} /* Korean hangul */, - {0, 0, 0xC231} /* Korean hangul */, - {0, 0, 0xC232} /* Korean hangul */, - {0, 0, 0xC234} /* Korean hangul */, - {0, 0, 0xC250} /* Korean hangul */, - {0, 0, 0xC258} /* Korean hangul */, - {0, 0, 0xC26C} /* Korean hangul */, - {0, 0, 0xC270} /* Korean hangul */, - {0, 0, 0xC274} /* Korean hangul */, - {0, 0, 0xC27C} /* Korean hangul */, - {0, 0, 0xC27D} /* Korean hangul */, - {0, 0, 0xC27F} /* Korean hangul */, - {0, 0, 0xC281} /* Korean hangul */, - {0, 0, 0xC288} /* Korean hangul */, - {0, 0, 0xC289} /* Korean hangul */, - {0, 0, 0xC290} /* Korean hangul */, - {0, 0, 0xC298} /* Korean hangul */, - {0, 0, 0xC29B} /* Korean hangul */, - {0, 0, 0xC29D} /* Korean hangul */, - {0, 0, 0xC2A4} /* Korean hangul */, - {0, 0, 0xC2A5} /* Korean hangul */, - {0, 0, 0xC2A8} /* Korean hangul */, - {0, 0, 0xC2AC} /* Korean hangul */, - {0, 0, 0xC2AD} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xC2B4} /* Korean hangul */, - {0, 0, 0xC2B5} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page811 = { - 0, marc8_31page811_dir -}; -/* PAGE 810 */ -struct yaz_iconv_trie_dir marc8_31page810_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xBE70} /* Korean hangul */, - {0, 0, 0xBE71} /* Korean hangul */, - {0, 0, 0xBE73} /* Korean hangul */, - {0, 0, 0xBE74} /* Korean hangul */, - {0, 0, 0xBE75} /* Korean hangul */, - {0, 0, 0xBE7B} /* Korean hangul */, - {0, 0, 0xBE7C} /* Korean hangul */, - {0, 0, 0xBE7D} /* Korean hangul */, - {0, 0, 0xBE80} /* Korean hangul */, - {0, 0, 0xBE84} /* Korean hangul */, - {0, 0, 0xBE8C} /* Korean hangul */, - {0, 0, 0xBE8F} /* Korean hangul */, - {0, 0, 0xBE90} /* Korean hangul */, - {0, 0, 0xBE91} /* Korean hangul */, - {0, 0, 0xBE98} /* Korean hangul */, - {0, 0, 0xBEA8} /* Korean hangul */, - {0, 0, 0xBED0} /* Korean hangul */, - {0, 0, 0xBED1} /* Korean hangul */, - {0, 0, 0xBED4} /* Korean hangul */, - {0, 0, 0xBED7} /* Korean hangul */, - {0, 0, 0xBED8} /* Korean hangul */, - {0, 0, 0xBEE0} /* Korean hangul */, - {0, 0, 0xBEE3} /* Korean hangul */, - {0, 0, 0xBEE4} /* Korean hangul */, - {0, 0, 0xBEE5} /* Korean hangul */, - {0, 0, 0xBEEC} /* Korean hangul */, - {0, 0, 0xBF08} /* Korean hangul */, - {0, 0, 0xBF09} /* Korean hangul */, - {0, 0, 0xBF18} /* Korean hangul */, - {0, 0, 0xBF1D} /* Korean hangul */, - {0, 0, 0xBF40} /* Korean hangul */, - {0, 0, 0xBF41} /* Korean hangul */, - {0, 0, 0xBF44} /* Korean hangul */, - {0, 0, 0xBF48} /* Korean hangul */, - {0, 0, 0xBF50} /* Korean hangul */, - {0, 0, 0xBF51} /* Korean hangul */, - {0, 0, 0xBF55} /* Korean hangul */, - {0, 0, 0xBFB0} /* Korean hangul */, - {0, 0, 0xBFC0} /* Korean hangul */, - {0, 0, 0xBFC5} /* Korean hangul */, - {0, 0, 0xBFCC} /* Korean hangul */, - {0, 0, 0xBFCD} /* Korean hangul */, - {0, 0, 0xBFD0} /* Korean hangul */, - {0, 0, 0xBFD4} /* Korean hangul */, - {0, 0, 0xBFDC} /* Korean hangul */, - {0, 0, 0xBFDD} /* Korean hangul */, - {0, 0, 0xBFE1} /* Korean hangul */, - {0, 0, 0xC058} /* Korean hangul */, - {0, 0, 0xC059} /* Korean hangul */, - {0, 0, 0xC05C} /* Korean hangul */, - {0, 0, 0xC060} /* Korean hangul */, - {0, 0, 0xC068} /* Korean hangul */, - {0, 0, 0xC069} /* Korean hangul */, - {0, 0, 0xC090} /* Korean hangul */, - {0, 0, 0xC091} /* Korean hangul */, - {0, 0, 0xC094} /* Korean hangul */, - {0, 0, 0xC098} /* Korean hangul */, - {0, 0, 0xC0A0} /* Korean hangul */, - {0, 0, 0xC0A3} /* Korean hangul */, - {0, 0, 0xC0A5} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xC0AC} /* Korean hangul */, - {0, 0, 0xC0AD} /* Korean hangul */, - {0, 0, 0xC0AE} /* Korean hangul */, - {0, 0, 0xC0AF} /* Korean hangul */, - {0, 0, 0xC0B0} /* Korean hangul */, - {0, 0, 0xC0B3} /* Korean hangul */, - {0, 0, 0xC0B4} /* Korean hangul */, - {0, 0, 0xC0B5} /* Korean hangul */, - {0, 0, 0xC0B6} /* Korean hangul */, - {0, 0, 0xC0BC} /* Korean hangul */, - {0, 0, 0xC0BD} /* Korean hangul */, - {0, 0, 0xC0BF} /* Korean hangul */, - {0, 0, 0xC0C0} /* Korean hangul */, - {0, 0, 0xC0C1} /* Korean hangul */, - {0, 0, 0xC0C5} /* Korean hangul */, - {0, 0, 0xC0C8} /* Korean hangul */, - {0, 0, 0xC0C9} /* Korean hangul */, - {0, 0, 0xC0CC} /* Korean hangul */, - {0, 0, 0xC0CF} /* Korean hangul */, - {0, 0, 0xC0D0} /* Korean hangul */, - {0, 0, 0xC0D8} /* Korean hangul */, - {0, 0, 0xC0D9} /* Korean hangul */, - {0, 0, 0xC0DB} /* Korean hangul */, - {0, 0, 0xC0DC} /* Korean hangul */, - {0, 0, 0xC0DD} /* Korean hangul */, - {0, 0, 0xC0E4} /* Korean hangul */, - {0, 0, 0xC0E5} /* Korean hangul */, - {0, 0, 0xC0E8} /* Korean hangul */, - {0, 0, 0xC0EC} /* Korean hangul */, - {0, 0, 0xC0F4} /* Korean hangul */, - {0, 0, 0xC0F7} /* Korean hangul */, - {0, 0, 0xC0F9} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page810 = { - 0, marc8_31page810_dir -}; -/* PAGE 809 */ -struct yaz_iconv_trie_dir marc8_31page809_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xBC40} /* Korean hangul */, - {0, 0, 0xBC41} /* Korean hangul */, - {0, 0, 0xBC43} /* Korean hangul */, - {0, 0, 0xBC44} /* Korean hangul */, - {0, 0, 0xBC45} /* Korean hangul */, - {0, 0, 0xBC84} /* Korean hangul */, - {0, 0, 0xBC85} /* Korean hangul */, - {0, 0, 0xBC88} /* Korean hangul */, - {0, 0, 0xBC8B} /* Korean hangul */, - {0, 0, 0xBC8C} /* Korean hangul */, - {0, 0, 0xBC94} /* Korean hangul */, - {0, 0, 0xBC95} /* Korean hangul */, - {0, 0, 0xBC97} /* Korean hangul */, - {0, 0, 0xBC98} /* Korean hangul */, - {0, 0, 0xBC99} /* Korean hangul */, - {0, 0, 0xBC9A} /* Korean hangul */, - {0, 0, 0xBCA0} /* Korean hangul */, - {0, 0, 0xBCA1} /* Korean hangul */, - {0, 0, 0xBCA4} /* Korean hangul */, - {0, 0, 0xBCA7} /* Korean hangul */, - {0, 0, 0xBCA8} /* Korean hangul */, - {0, 0, 0xBCB0} /* Korean hangul */, - {0, 0, 0xBCB1} /* Korean hangul */, - {0, 0, 0xBCB3} /* Korean hangul */, - {0, 0, 0xBCB5} /* Korean hangul */, - {0, 0, 0xBCBC} /* Korean hangul */, - {0, 0, 0xBCBD} /* Korean hangul */, - {0, 0, 0xBCC0} /* Korean hangul */, - {0, 0, 0xBCC4} /* Korean hangul */, - {0, 0, 0xBCCC} /* Korean hangul */, - {0, 0, 0xBCCD} /* Korean hangul */, - {0, 0, 0xBCCF} /* Korean hangul */, - {0, 0, 0xBCD0} /* Korean hangul */, - {0, 0, 0xBCD1} /* Korean hangul */, - {0, 0, 0xBCD2} /* Korean hangul */, - {0, 0, 0xBCD5} /* Korean hangul */, - {0, 0, 0xBCF4} /* Korean hangul */, - {0, 0, 0xBCF5} /* Korean hangul */, - {0, 0, 0xBCF6} /* Korean hangul */, - {0, 0, 0xBCF8} /* Korean hangul */, - {0, 0, 0xBCFC} /* Korean hangul */, - {0, 0, 0xBD04} /* Korean hangul */, - {0, 0, 0xBD05} /* Korean hangul */, - {0, 0, 0xBD07} /* Korean hangul */, - {0, 0, 0xBD09} /* Korean hangul */, - {0, 0, 0xBD10} /* Korean hangul */, - {0, 0, 0xBD14} /* Korean hangul */, - {0, 0, 0xBD24} /* Korean hangul */, - {0, 0, 0xBD48} /* Korean hangul */, - {0, 0, 0xBD49} /* Korean hangul */, - {0, 0, 0xBD4C} /* Korean hangul */, - {0, 0, 0xBD50} /* Korean hangul */, - {0, 0, 0xBD58} /* Korean hangul */, - {0, 0, 0xBD59} /* Korean hangul */, - {0, 0, 0xBD64} /* Korean hangul */, - {0, 0, 0xBD80} /* Korean hangul */, - {0, 0, 0xBD81} /* Korean hangul */, - {0, 0, 0xBD84} /* Korean hangul */, - {0, 0, 0xBD87} /* Korean hangul */, - {0, 0, 0xBD88} /* Korean hangul */, - {0, 0, 0xBD89} /* Korean hangul */, - {0, 0, 0xBD90} /* Korean hangul */, - {0, 0, 0xBD91} /* Korean hangul */, - {0, 0, 0xBD93} /* Korean hangul */, - {0, 0, 0xBD95} /* Korean hangul */, - {0, 0, 0xBD99} /* Korean hangul */, - {0, 0, 0xBD9C} /* Korean hangul */, - {0, 0, 0xBDD4} /* Korean hangul */, - {0, 0, 0xBDF0} /* Korean hangul */, - {0, 0, 0xBE0C} /* Korean hangul */, - {0, 0, 0xBE0D} /* Korean hangul */, - {0, 0, 0xBE10} /* Korean hangul */, - {0, 0, 0xBE14} /* Korean hangul */, - {0, 0, 0xBE1C} /* Korean hangul */, - {0, 0, 0xBE1D} /* Korean hangul */, - {0, 0, 0xBE1F} /* Korean hangul */, - {0, 0, 0xBE44} /* Korean hangul */, - {0, 0, 0xBE45} /* Korean hangul */, - {0, 0, 0xBE48} /* Korean hangul */, - {0, 0, 0xBE4B} /* Korean hangul */, - {0, 0, 0xBE4C} /* Korean hangul */, - {0, 0, 0xBE4E} /* Korean hangul */, - {0, 0, 0xBE54} /* Korean hangul */, - {0, 0, 0xBE55} /* Korean hangul */, - {0, 0, 0xBE57} /* Korean hangul */, - {0, 0, 0xBE59} /* Korean hangul */, - {0, 0, 0xBE5A} /* Korean hangul */, - {0, 0, 0xBE5B} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xBE60} /* Korean hangul */, - {0, 0, 0xBE61} /* Korean hangul */, - {0, 0, 0xBE64} /* Korean hangul */, - {0, 0, 0xBE68} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page809 = { - 0, marc8_31page809_dir -}; -/* PAGE 808 */ -struct yaz_iconv_trie_dir marc8_31page808_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xBA38} /* Korean hangul */, - {0, 0, 0xBA39} /* Korean hangul */, - {0, 0, 0xBA3C} /* Korean hangul */, - {0, 0, 0xBA40} /* Korean hangul */, - {0, 0, 0xBA48} /* Korean hangul */, - {0, 0, 0xBA49} /* Korean hangul */, - {0, 0, 0xBA4B} /* Korean hangul */, - {0, 0, 0xBA4D} /* Korean hangul */, - {0, 0, 0xBA4E} /* Korean hangul */, - {0, 0, 0xBA53} /* Korean hangul */, - {0, 0, 0xBA54} /* Korean hangul */, - {0, 0, 0xBA55} /* Korean hangul */, - {0, 0, 0xBA58} /* Korean hangul */, - {0, 0, 0xBA5C} /* Korean hangul */, - {0, 0, 0xBA64} /* Korean hangul */, - {0, 0, 0xBA65} /* Korean hangul */, - {0, 0, 0xBA67} /* Korean hangul */, - {0, 0, 0xBA70} /* Korean hangul */, - {0, 0, 0xBA71} /* Korean hangul */, - {0, 0, 0xBA74} /* Korean hangul */, - {0, 0, 0xBA78} /* Korean hangul */, - {0, 0, 0xBA83} /* Korean hangul */, - {0, 0, 0xBA84} /* Korean hangul */, - {0, 0, 0xBA85} /* Korean hangul */, - {0, 0, 0xBA87} /* Korean hangul */, - {0, 0, 0xBAA8} /* Korean hangul */, - {0, 0, 0xBAA9} /* Korean hangul */, - {0, 0, 0xBAAB} /* Korean hangul */, - {0, 0, 0xBAAC} /* Korean hangul */, - {0, 0, 0xBAB0} /* Korean hangul */, - {0, 0, 0xBAB8} /* Korean hangul */, - {0, 0, 0xBAB9} /* Korean hangul */, - {0, 0, 0xBABB} /* Korean hangul */, - {0, 0, 0xBABD} /* Korean hangul */, - {0, 0, 0xBAC3} /* Korean hangul */, - {0, 0, 0xBAFC} /* Korean hangul */, - {0, 0, 0xBB0F} /* Korean hangul */, - {0, 0, 0xBB18} /* Korean hangul */, - {0, 0, 0xBB34} /* Korean hangul */, - {0, 0, 0xBB35} /* Korean hangul */, - {0, 0, 0xBB36} /* Korean hangul */, - {0, 0, 0xBB38} /* Korean hangul */, - {0, 0, 0xBB3B} /* Korean hangul */, - {0, 0, 0xBB3C} /* Korean hangul */, - {0, 0, 0xBB3D} /* Korean hangul */, - {0, 0, 0xBB44} /* Korean hangul */, - {0, 0, 0xBB47} /* Korean hangul */, - {0, 0, 0xBB49} /* Korean hangul */, - {0, 0, 0xBB4D} /* Korean hangul */, - {0, 0, 0xBB4F} /* Korean hangul */, - {0, 0, 0xBB50} /* Korean hangul */, - {0, 0, 0xBB54} /* Korean hangul */, - {0, 0, 0xBB58} /* Korean hangul */, - {0, 0, 0xBB61} /* Korean hangul */, - {0, 0, 0xBB63} /* Korean hangul */, - {0, 0, 0xBB88} /* Korean hangul */, - {0, 0, 0xBB8C} /* Korean hangul */, - {0, 0, 0xBBA4} /* Korean hangul */, - {0, 0, 0xBBC0} /* Korean hangul */, - {0, 0, 0xBBC4} /* Korean hangul */, - {0, 0, 0xBBC8} /* Korean hangul */, - {0, 0, 0xBBD0} /* Korean hangul */, - {0, 0, 0xBBF8} /* Korean hangul */, - {0, 0, 0xBBF9} /* Korean hangul */, - {0, 0, 0xBBFC} /* Korean hangul */, - {0, 0, 0xBBFF} /* Korean hangul */, - {0, 0, 0xBC00} /* Korean hangul */, - {0, 0, 0xBC08} /* Korean hangul */, - {0, 0, 0xBC09} /* Korean hangul */, - {0, 0, 0xBC0B} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xBC0D} /* Korean hangul */, - {0, 0, 0xBC0F} /* Korean hangul */, - {0, 0, 0xBC11} /* Korean hangul */, - {0, 0, 0xBBB4} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xBC14} /* Korean hangul */, - {0, 0, 0xBC15} /* Korean hangul */, - {0, 0, 0xBC16} /* Korean hangul */, - {0, 0, 0xBC18} /* Korean hangul */, - {0, 0, 0xBC1B} /* Korean hangul */, - {0, 0, 0xBC1C} /* Korean hangul */, - {0, 0, 0xBC1D} /* Korean hangul */, - {0, 0, 0xBC1F} /* Korean hangul */, - {0, 0, 0xBC24} /* Korean hangul */, - {0, 0, 0xBC25} /* Korean hangul */, - {0, 0, 0xBC27} /* Korean hangul */, - {0, 0, 0xBC29} /* Korean hangul */, - {0, 0, 0xBC2D} /* Korean hangul */, - {0, 0, 0xBC30} /* Korean hangul */, - {0, 0, 0xBC31} /* Korean hangul */, - {0, 0, 0xBC34} /* Korean hangul */, - {0, 0, 0xBC37} /* Korean hangul */, - {0, 0, 0xBC38} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page808 = { - 0, marc8_31page808_dir -}; -/* PAGE 807 */ -struct yaz_iconv_trie_dir marc8_31page807_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB7FD} /* Korean hangul */, - {0, 0, 0xB7FF} /* Korean hangul */, - {0, 0, 0xB800} /* Korean hangul */, - {0, 0, 0xB801} /* Korean hangul */, - {0, 0, 0xB807} /* Korean hangul */, - {0, 0, 0xB808} /* Korean hangul */, - {0, 0, 0xB809} /* Korean hangul */, - {0, 0, 0xB80C} /* Korean hangul */, - {0, 0, 0xB810} /* Korean hangul */, - {0, 0, 0xB818} /* Korean hangul */, - {0, 0, 0xB819} /* Korean hangul */, - {0, 0, 0xB81B} /* Korean hangul */, - {0, 0, 0xB81D} /* Korean hangul */, - {0, 0, 0xB824} /* Korean hangul */, - {0, 0, 0xB825} /* Korean hangul */, - {0, 0, 0xB828} /* Korean hangul */, - {0, 0, 0xB82C} /* Korean hangul */, - {0, 0, 0xB834} /* Korean hangul */, - {0, 0, 0xB835} /* Korean hangul */, - {0, 0, 0xB837} /* Korean hangul */, - {0, 0, 0xB838} /* Korean hangul */, - {0, 0, 0xB839} /* Korean hangul */, - {0, 0, 0xB840} /* Korean hangul */, - {0, 0, 0xB85C} /* Korean hangul */, - {0, 0, 0xB85D} /* Korean hangul */, - {0, 0, 0xB860} /* Korean hangul */, - {0, 0, 0xB864} /* Korean hangul */, - {0, 0, 0xB86C} /* Korean hangul */, - {0, 0, 0xB86D} /* Korean hangul */, - {0, 0, 0xB86F} /* Korean hangul */, - {0, 0, 0xB871} /* Korean hangul */, - {0, 0, 0xB8B0} /* Korean hangul */, - {0, 0, 0xB8CC} /* Korean hangul */, - {0, 0, 0xB8E1} /* Korean hangul */, - {0, 0, 0xB8E8} /* Korean hangul */, - {0, 0, 0xB8E9} /* Korean hangul */, - {0, 0, 0xB8EC} /* Korean hangul */, - {0, 0, 0xB8F0} /* Korean hangul */, - {0, 0, 0xB8F8} /* Korean hangul */, - {0, 0, 0xB8F9} /* Korean hangul */, - {0, 0, 0xB8FB} /* Korean hangul */, - {0, 0, 0xB8FD} /* Korean hangul */, - {0, 0, 0xB904} /* Korean hangul */, - {0, 0, 0xB93C} /* Korean hangul */, - {0, 0, 0xB958} /* Korean hangul */, - {0, 0, 0xB959} /* Korean hangul */, - {0, 0, 0xB95C} /* Korean hangul */, - {0, 0, 0xB960} /* Korean hangul */, - {0, 0, 0xB968} /* Korean hangul */, - {0, 0, 0xB96D} /* Korean hangul */, - {0, 0, 0xB974} /* Korean hangul */, - {0, 0, 0xB975} /* Korean hangul */, - {0, 0, 0xB978} /* Korean hangul */, - {0, 0, 0xB97C} /* Korean hangul */, - {0, 0, 0xB984} /* Korean hangul */, - {0, 0, 0xB985} /* Korean hangul */, - {0, 0, 0xB987} /* Korean hangul */, - {0, 0, 0xB989} /* Korean hangul */, - {0, 0, 0xB98E} /* Korean hangul */, - {0, 0, 0xB9AC} /* Korean hangul */, - {0, 0, 0xB9AD} /* Korean hangul */, - {0, 0, 0xB9B0} /* Korean hangul */, - {0, 0, 0xB9B4} /* Korean hangul */, - {0, 0, 0xB9BC} /* Korean hangul */, - {0, 0, 0xB9BD} /* Korean hangul */, - {0, 0, 0xB9BF} /* Korean hangul */, - {0, 0, 0xB9C1} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB9C8} /* Korean hangul */, - {0, 0, 0xB9C9} /* Korean hangul */, - {0, 0, 0xB9CC} /* Korean hangul */, - {0, 0, 0xB9CE} /* Korean hangul */, - {0, 0, 0xB9CF} /* Korean hangul */, - {0, 0, 0xB9D0} /* Korean hangul */, - {0, 0, 0xB9D1} /* Korean hangul */, - {0, 0, 0xB9D8} /* Korean hangul */, - {0, 0, 0xB9D9} /* Korean hangul */, - {0, 0, 0xB9DB} /* Korean hangul */, - {0, 0, 0xB9DD} /* Korean hangul */, - {0, 0, 0xB9DE} /* Korean hangul */, - {0, 0, 0xB9E1} /* Korean hangul */, - {0, 0, 0xB9E3} /* Korean hangul */, - {0, 0, 0xB9E4} /* Korean hangul */, - {0, 0, 0xB9E5} /* Korean hangul */, - {0, 0, 0xB9E8} /* Korean hangul */, - {0, 0, 0xB9EC} /* Korean hangul */, - {0, 0, 0xB9F4} /* Korean hangul */, - {0, 0, 0xB9F5} /* Korean hangul */, - {0, 0, 0xB9F7} /* Korean hangul */, - {0, 0, 0xB9F8} /* Korean hangul */, - {0, 0, 0xB9F9} /* Korean hangul */, - {0, 0, 0xB9FA} /* Korean hangul */, - {0, 0, 0xBA00} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page807 = { - 0, marc8_31page807_dir -}; -/* PAGE 806 */ -struct yaz_iconv_trie_dir marc8_31page806_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB540} /* Korean hangul */, - {0, 0, 0xB541} /* Korean hangul */, - {0, 0, 0xB543} /* Korean hangul */, - {0, 0, 0xB544} /* Korean hangul */, - {0, 0, 0xB545} /* Korean hangul */, - {0, 0, 0xB54B} /* Korean hangul */, - {0, 0, 0xB54C} /* Korean hangul */, - {0, 0, 0xB54D} /* Korean hangul */, - {0, 0, 0xB550} /* Korean hangul */, - {0, 0, 0xB554} /* Korean hangul */, - {0, 0, 0xB55C} /* Korean hangul */, - {0, 0, 0xB55D} /* Korean hangul */, - {0, 0, 0xB55F} /* Korean hangul */, - {0, 0, 0xB560} /* Korean hangul */, - {0, 0, 0xB561} /* Korean hangul */, - {0, 0, 0xB5A0} /* Korean hangul */, - {0, 0, 0xB5A1} /* Korean hangul */, - {0, 0, 0xB5A4} /* Korean hangul */, - {0, 0, 0xB5A8} /* Korean hangul */, - {0, 0, 0xB5AB} /* Korean hangul */, - {0, 0, 0xB5B0} /* Korean hangul */, - {0, 0, 0xB5B1} /* Korean hangul */, - {0, 0, 0xB5B3} /* Korean hangul */, - {0, 0, 0xB5B4} /* Korean hangul */, - {0, 0, 0xB5B5} /* Korean hangul */, - {0, 0, 0xB5BB} /* Korean hangul */, - {0, 0, 0xB5BC} /* Korean hangul */, - {0, 0, 0xB5C0} /* Korean hangul */, - {0, 0, 0xB5C4} /* Korean hangul */, - {0, 0, 0xB5CC} /* Korean hangul */, - {0, 0, 0xB5CF} /* Korean hangul */, - {0, 0, 0xB5D1} /* Korean hangul */, - {0, 0, 0xB610} /* Korean hangul */, - {0, 0, 0xB611} /* Korean hangul */, - {0, 0, 0xB614} /* Korean hangul */, - {0, 0, 0xB618} /* Korean hangul */, - {0, 0, 0xB625} /* Korean hangul */, - {0, 0, 0xB664} /* Korean hangul */, - {0, 0, 0xB69C} /* Korean hangul */, - {0, 0, 0xB69D} /* Korean hangul */, - {0, 0, 0xB6A4} /* Korean hangul */, - {0, 0, 0xB6AB} /* Korean hangul */, - {0, 0, 0xB6AC} /* Korean hangul */, - {0, 0, 0xB6B1} /* Korean hangul */, - {0, 0, 0xB6F0} /* Korean hangul */, - {0, 0, 0xB6F4} /* Korean hangul */, - {0, 0, 0xB6F8} /* Korean hangul */, - {0, 0, 0xB700} /* Korean hangul */, - {0, 0, 0xB701} /* Korean hangul */, - {0, 0, 0xB728} /* Korean hangul */, - {0, 0, 0xB729} /* Korean hangul */, - {0, 0, 0xB72C} /* Korean hangul */, - {0, 0, 0xB72F} /* Korean hangul */, - {0, 0, 0xB730} /* Korean hangul */, - {0, 0, 0xB738} /* Korean hangul */, - {0, 0, 0xB739} /* Korean hangul */, - {0, 0, 0xB73B} /* Korean hangul */, - {0, 0, 0xB744} /* Korean hangul */, - {0, 0, 0xB748} /* Korean hangul */, - {0, 0, 0xB760} /* Korean hangul */, - {0, 0, 0xB764} /* Korean hangul */, - {0, 0, 0xB768} /* Korean hangul */, - {0, 0, 0xB770} /* Korean hangul */, - {0, 0, 0xB771} /* Korean hangul */, - {0, 0, 0xB775} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB77C} /* Korean hangul */, - {0, 0, 0xB77D} /* Korean hangul */, - {0, 0, 0xB780} /* Korean hangul */, - {0, 0, 0xB784} /* Korean hangul */, - {0, 0, 0xB78C} /* Korean hangul */, - {0, 0, 0xB78D} /* Korean hangul */, - {0, 0, 0xB78F} /* Korean hangul */, - {0, 0, 0xB790} /* Korean hangul */, - {0, 0, 0xB791} /* Korean hangul */, - {0, 0, 0xB797} /* Korean hangul */, - {0, 0, 0xB798} /* Korean hangul */, - {0, 0, 0xB799} /* Korean hangul */, - {0, 0, 0xB79C} /* Korean hangul */, - {0, 0, 0xB7A0} /* Korean hangul */, - {0, 0, 0xB7A8} /* Korean hangul */, - {0, 0, 0xB7A9} /* Korean hangul */, - {0, 0, 0xB7AB} /* Korean hangul */, - {0, 0, 0xB7AC} /* Korean hangul */, - {0, 0, 0xB7AD} /* Korean hangul */, - {0, 0, 0xB7B4} /* Korean hangul */, - {0, 0, 0xB7B5} /* Korean hangul */, - {0, 0, 0xB7C9} /* Korean hangul */, - {0, 0, 0xB7EC} /* Korean hangul */, - {0, 0, 0xB7ED} /* Korean hangul */, - {0, 0, 0xB7F0} /* Korean hangul */, - {0, 0, 0xB7F4} /* Korean hangul */, - {0, 0, 0xB7FC} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page806 = { - 0, marc8_31page806_dir -}; -/* PAGE 805 */ -struct yaz_iconv_trie_dir marc8_31page805_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB304} /* Korean hangul */, - {0, 0, 0xB308} /* Korean hangul */, - {0, 0, 0xB310} /* Korean hangul */, - {0, 0, 0xB311} /* Korean hangul */, - {0, 0, 0xB313} /* Korean hangul */, - {0, 0, 0xB314} /* Korean hangul */, - {0, 0, 0xB315} /* Korean hangul */, - {0, 0, 0xB354} /* Korean hangul */, - {0, 0, 0xB355} /* Korean hangul */, - {0, 0, 0xB358} /* Korean hangul */, - {0, 0, 0xB35B} /* Korean hangul */, - {0, 0, 0xB35C} /* Korean hangul */, - {0, 0, 0xB35F} /* Korean hangul */, - {0, 0, 0xB364} /* Korean hangul */, - {0, 0, 0xB365} /* Korean hangul */, - {0, 0, 0xB367} /* Korean hangul */, - {0, 0, 0xB368} /* Korean hangul */, - {0, 0, 0xB369} /* Korean hangul */, - {0, 0, 0xB36A} /* Korean hangul */, - {0, 0, 0xB36B} /* Korean hangul */, - {0, 0, 0xB36E} /* Korean hangul */, - {0, 0, 0xB370} /* Korean hangul */, - {0, 0, 0xB371} /* Korean hangul */, - {0, 0, 0xB374} /* Korean hangul */, - {0, 0, 0xB378} /* Korean hangul */, - {0, 0, 0xB380} /* Korean hangul */, - {0, 0, 0xB383} /* Korean hangul */, - {0, 0, 0xB385} /* Korean hangul */, - {0, 0, 0xB38C} /* Korean hangul */, - {0, 0, 0xB3C4} /* Korean hangul */, - {0, 0, 0xB3C5} /* Korean hangul */, - {0, 0, 0xB3C8} /* Korean hangul */, - {0, 0, 0xB3CB} /* Korean hangul */, - {0, 0, 0xB3CC} /* Korean hangul */, - {0, 0, 0xB3D0} /* Korean hangul */, - {0, 0, 0xB3D4} /* Korean hangul */, - {0, 0, 0xB3D5} /* Korean hangul */, - {0, 0, 0xB3D7} /* Korean hangul */, - {0, 0, 0xB3D9} /* Korean hangul */, - {0, 0, 0xB3DB} /* Korean hangul */, - {0, 0, 0xB3FC} /* Korean hangul */, - {0, 0, 0xB400} /* Korean hangul */, - {0, 0, 0xB410} /* Korean hangul */, - {0, 0, 0xB418} /* Korean hangul */, - {0, 0, 0xB41C} /* Korean hangul */, - {0, 0, 0xB420} /* Korean hangul */, - {0, 0, 0xB428} /* Korean hangul */, - {0, 0, 0xB429} /* Korean hangul */, - {0, 0, 0xB42B} /* Korean hangul */, - {0, 0, 0xB42C} /* Korean hangul */, - {0, 0, 0xB450} /* Korean hangul */, - {0, 0, 0xB451} /* Korean hangul */, - {0, 0, 0xB454} /* Korean hangul */, - {0, 0, 0xB458} /* Korean hangul */, - {0, 0, 0xB460} /* Korean hangul */, - {0, 0, 0xB461} /* Korean hangul */, - {0, 0, 0xB463} /* Korean hangul */, - {0, 0, 0xB465} /* Korean hangul */, - {0, 0, 0xB46C} /* Korean hangul */, - {0, 0, 0xB480} /* Korean hangul */, - {0, 0, 0xB488} /* Korean hangul */, - {0, 0, 0xB4A4} /* Korean hangul */, - {0, 0, 0xB4B7} /* Korean hangul */, - {0, 0, 0xB4C0} /* Korean hangul */, - {0, 0, 0xB4D0} /* Korean hangul */, - {0, 0, 0xB4DC} /* Korean hangul */, - {0, 0, 0xB4DD} /* Korean hangul */, - {0, 0, 0xB4E0} /* Korean hangul */, - {0, 0, 0xB4E3} /* Korean hangul */, - {0, 0, 0xB4E4} /* Korean hangul */, - {0, 0, 0xB4EC} /* Korean hangul */, - {0, 0, 0xB4ED} /* Korean hangul */, - {0, 0, 0xB4EF} /* Korean hangul */, - {0, 0, 0xB4F1} /* Korean hangul */, - {0, 0, 0xB514} /* Korean hangul */, - {0, 0, 0xB515} /* Korean hangul */, - {0, 0, 0xB518} /* Korean hangul */, - {0, 0, 0xB51B} /* Korean hangul */, - {0, 0, 0xB51C} /* Korean hangul */, - {0, 0, 0xB524} /* Korean hangul */, - {0, 0, 0xB525} /* Korean hangul */, - {0, 0, 0xB527} /* Korean hangul */, - {0, 0, 0xB528} /* Korean hangul */, - {0, 0, 0xB529} /* Korean hangul */, - {0, 0, 0xB52A} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB530} /* Korean hangul */, - {0, 0, 0xB531} /* Korean hangul */, - {0, 0, 0xB532} /* Korean hangul */, - {0, 0, 0xB534} /* Korean hangul */, - {0, 0, 0xB537} /* Korean hangul */, - {0, 0, 0xB538} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page805 = { - 0, marc8_31page805_dir -}; -/* PAGE 804 */ -struct yaz_iconv_trie_dir marc8_31page804_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB128} /* Korean hangul */, - {0, 0, 0xB12C} /* Korean hangul */, - {0, 0, 0xB134} /* Korean hangul */, - {0, 0, 0xB135} /* Korean hangul */, - {0, 0, 0xB137} /* Korean hangul */, - {0, 0, 0xB140} /* Korean hangul */, - {0, 0, 0xB141} /* Korean hangul */, - {0, 0, 0xB144} /* Korean hangul */, - {0, 0, 0xB150} /* Korean hangul */, - {0, 0, 0xB151} /* Korean hangul */, - {0, 0, 0xB153} /* Korean hangul */, - {0, 0, 0xB154} /* Korean hangul */, - {0, 0, 0xB155} /* Korean hangul */, - {0, 0, 0xB158} /* Korean hangul */, - {0, 0, 0xB15C} /* Korean hangul */, - {0, 0, 0xB178} /* Korean hangul */, - {0, 0, 0xB179} /* Korean hangul */, - {0, 0, 0xB17A} /* Korean hangul */, - {0, 0, 0xB17C} /* Korean hangul */, - {0, 0, 0xB180} /* Korean hangul */, - {0, 0, 0xB188} /* Korean hangul */, - {0, 0, 0xB189} /* Korean hangul */, - {0, 0, 0xB18B} /* Korean hangul */, - {0, 0, 0xB18D} /* Korean hangul */, - {0, 0, 0xB192} /* Korean hangul */, - {0, 0, 0xB193} /* Korean hangul */, - {0, 0, 0xB194} /* Korean hangul */, - {0, 0, 0xB1A8} /* Korean hangul */, - {0, 0, 0xB1CC} /* Korean hangul */, - {0, 0, 0xB1D0} /* Korean hangul */, - {0, 0, 0xB1D4} /* Korean hangul */, - {0, 0, 0xB1DC} /* Korean hangul */, - {0, 0, 0xB1E8} /* Korean hangul */, - {0, 0, 0xB1FD} /* Korean hangul */, - {0, 0, 0xB204} /* Korean hangul */, - {0, 0, 0xB205} /* Korean hangul */, - {0, 0, 0xB208} /* Korean hangul */, - {0, 0, 0xB20B} /* Korean hangul */, - {0, 0, 0xB20C} /* Korean hangul */, - {0, 0, 0xB213} /* Korean hangul */, - {0, 0, 0xB214} /* Korean hangul */, - {0, 0, 0xB215} /* Korean hangul */, - {0, 0, 0xB217} /* Korean hangul */, - {0, 0, 0xB220} /* Korean hangul */, - {0, 0, 0xB233} /* Korean hangul */, - {0, 0, 0xB234} /* Korean hangul */, - {0, 0, 0xB258} /* Korean hangul */, - {0, 0, 0xB25C} /* Korean hangul */, - {0, 0, 0xB260} /* Korean hangul */, - {0, 0, 0xB268} /* Korean hangul */, - {0, 0, 0xB269} /* Korean hangul */, - {0, 0, 0xB274} /* Korean hangul */, - {0, 0, 0xB284} /* Korean hangul */, - {0, 0, 0xB289} /* Korean hangul */, - {0, 0, 0xB290} /* Korean hangul */, - {0, 0, 0xB291} /* Korean hangul */, - {0, 0, 0xB294} /* Korean hangul */, - {0, 0, 0xB298} /* Korean hangul */, - {0, 0, 0xB299} /* Korean hangul */, - {0, 0, 0xB2A0} /* Korean hangul */, - {0, 0, 0xB2A1} /* Korean hangul */, - {0, 0, 0xB2A5} /* Korean hangul */, - {0, 0, 0xB2A6} /* Korean hangul */, - {0, 0, 0xB2AA} /* Korean hangul */, - {0, 0, 0xB2AC} /* Korean hangul */, - {0, 0, 0xB2C8} /* Korean hangul */, - {0, 0, 0xB2C9} /* Korean hangul */, - {0, 0, 0xB2CC} /* Korean hangul */, - {0, 0, 0xB2D0} /* Korean hangul */, - {0, 0, 0xB2D8} /* Korean hangul */, - {0, 0, 0xB2D9} /* Korean hangul */, - {0, 0, 0xB2DB} /* Korean hangul */, - {0, 0, 0xB2DD} /* Korean hangul */, - {0, 0, 0xB2E2} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB2E4} /* Korean hangul */, - {0, 0, 0xB2E5} /* Korean hangul */, - {0, 0, 0xB2E6} /* Korean hangul */, - {0, 0, 0xB2E8} /* Korean hangul */, - {0, 0, 0xB2EB} /* Korean hangul */, - {0, 0, 0xB2EC} /* Korean hangul */, - {0, 0, 0xB2ED} /* Korean hangul */, - {0, 0, 0xB2EE} /* Korean hangul */, - {0, 0, 0xB2F3} /* Korean hangul */, - {0, 0, 0xB2F4} /* Korean hangul */, - {0, 0, 0xB2F5} /* Korean hangul */, - {0, 0, 0xB2F7} /* Korean hangul */, - {0, 0, 0xB2F9} /* Korean hangul */, - {0, 0, 0xB2FA} /* Korean hangul */, - {0, 0, 0xB2FB} /* Korean hangul */, - {0, 0, 0xB2FF} /* Korean hangul */, - {0, 0, 0xB300} /* Korean hangul */, - {0, 0, 0xB301} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page804 = { - 0, marc8_31page804_dir -}; -/* PAGE 803 */ -struct yaz_iconv_trie_dir marc8_31page803_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xAF9C} /* Korean hangul */, - {0, 0, 0xAFB8} /* Korean hangul */, - {0, 0, 0xAFB9} /* Korean hangul */, - {0, 0, 0xAFBC} /* Korean hangul */, - {0, 0, 0xAFC0} /* Korean hangul */, - {0, 0, 0xAFC7} /* Korean hangul */, - {0, 0, 0xAFC8} /* Korean hangul */, - {0, 0, 0xAFC9} /* Korean hangul */, - {0, 0, 0xAFCB} /* Korean hangul */, - {0, 0, 0xAFCD} /* Korean hangul */, - {0, 0, 0xAFCE} /* Korean hangul */, - {0, 0, 0xAFD4} /* Korean hangul */, - {0, 0, 0xAFD8} /* Korean hangul */, - {0, 0, 0xAFE9} /* Korean hangul */, - {0, 0, 0xAFF0} /* Korean hangul */, - {0, 0, 0xB000} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xB00C} /* Korean hangul */, - {0, 0, 0xB00D} /* Korean hangul */, - {0, 0, 0xB010} /* Korean hangul */, - {0, 0, 0xB014} /* Korean hangul */, - {0, 0, 0xB01C} /* Korean hangul */, - {0, 0, 0xB01D} /* Korean hangul */, - {0, 0, 0xB028} /* Korean hangul */, - {0, 0, 0xB044} /* Korean hangul */, - {0, 0, 0xB045} /* Korean hangul */, - {0, 0, 0xB048} /* Korean hangul */, - {0, 0, 0xB04A} /* Korean hangul */, - {0, 0, 0xB04C} /* Korean hangul */, - {0, 0, 0xB053} /* Korean hangul */, - {0, 0, 0xB054} /* Korean hangul */, - {0, 0, 0xB055} /* Korean hangul */, - {0, 0, 0xB057} /* Korean hangul */, - {0, 0, 0xB059} /* Korean hangul */, - {0, 0, 0xB05D} /* Korean hangul */, - {0, 0, 0xB07C} /* Korean hangul */, - {0, 0, 0xB07D} /* Korean hangul */, - {0, 0, 0xB080} /* Korean hangul */, - {0, 0, 0xB084} /* Korean hangul */, - {0, 0, 0xB08C} /* Korean hangul */, - {0, 0, 0xB08D} /* Korean hangul */, - {0, 0, 0xB08F} /* Korean hangul */, - {0, 0, 0xB090} /* Korean hangul */, - {0, 0, 0xB091} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xB098} /* Korean hangul */, - {0, 0, 0xB099} /* Korean hangul */, - {0, 0, 0xB09A} /* Korean hangul */, - {0, 0, 0xB09C} /* Korean hangul */, - {0, 0, 0xB09F} /* Korean hangul */, - {0, 0, 0xB0A0} /* Korean hangul */, - {0, 0, 0xB0A1} /* Korean hangul */, - {0, 0, 0xB0A8} /* Korean hangul */, - {0, 0, 0xB0A9} /* Korean hangul */, - {0, 0, 0xB0AB} /* Korean hangul */, - {0, 0, 0xB0AC} /* Korean hangul */, - {0, 0, 0xB0AD} /* Korean hangul */, - {0, 0, 0xB0AE} /* Korean hangul */, - {0, 0, 0xB0AF} /* Korean hangul */, - {0, 0, 0xB0B1} /* Korean hangul */, - {0, 0, 0xB0B3} /* Korean hangul */, - {0, 0, 0xB0B4} /* Korean hangul */, - {0, 0, 0xB0B5} /* Korean hangul */, - {0, 0, 0xB0B8} /* Korean hangul */, - {0, 0, 0xB0BB} /* Korean hangul */, - {0, 0, 0xB0BC} /* Korean hangul */, - {0, 0, 0xB0C4} /* Korean hangul */, - {0, 0, 0xB0C5} /* Korean hangul */, - {0, 0, 0xB0C7} /* Korean hangul */, - {0, 0, 0xB0C8} /* Korean hangul */, - {0, 0, 0xB0C9} /* Korean hangul */, - {0, 0, 0xB0D0} /* Korean hangul */, - {0, 0, 0xB0D1} /* Korean hangul */, - {0, 0, 0xB0E0} /* Korean hangul */, - {0, 0, 0xB0E5} /* Korean hangul */, - {0, 0, 0xB0EC} /* Korean hangul */, - {0, 0, 0xB108} /* Korean hangul */, - {0, 0, 0xB109} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xB10B} /* Korean hangul */, - {0, 0, 0xB10C} /* Korean hangul */, - {0, 0, 0xB10F} /* Korean hangul */, - {0, 0, 0xB110} /* Korean hangul */, - {0, 0, 0xB113} /* Korean hangul */, - {0, 0, 0xB118} /* Korean hangul */, - {0, 0, 0xB119} /* Korean hangul */, - {0, 0, 0xB11B} /* Korean hangul */, - {0, 0, 0xB11C} /* Korean hangul */, - {0, 0, 0xB11D} /* Korean hangul */, - {0, 0, 0xB11E} /* Korean hangul */, - {0, 0, 0xB123} /* Korean hangul */, - {0, 0, 0xB124} /* Korean hangul */, - {0, 0, 0xB125} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page803 = { - 0, marc8_31page803_dir -}; -/* PAGE 802 */ -struct yaz_iconv_trie_dir marc8_31page802_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xADC0} /* Korean hangul */, - {0, 0, 0xADC4} /* Korean hangul */, - {0, 0, 0xADC8} /* Korean hangul */, - {0, 0, 0xADD0} /* Korean hangul */, - {0, 0, 0xADD1} /* Korean hangul */, - {0, 0, 0xADD3} /* Korean hangul */, - {0, 0, 0xADDC} /* Korean hangul */, - {0, 0, 0xADE0} /* Korean hangul */, - {0, 0, 0xADE4} /* Korean hangul */, - {0, 0, 0xADEC} /* Korean hangul */, - {0, 0, 0xADF8} /* Korean hangul */, - {0, 0, 0xADF9} /* Korean hangul */, - {0, 0, 0xADFC} /* Korean hangul */, - {0, 0, 0xADFF} /* Korean hangul */, - {0, 0, 0xAE00} /* Korean hangul */, - {0, 0, 0xAE01} /* Korean hangul */, - {0, 0, 0xAE08} /* Korean hangul */, - {0, 0, 0xAE09} /* Korean hangul */, - {0, 0, 0xAE0B} /* Korean hangul */, - {0, 0, 0xAE0D} /* Korean hangul */, - {0, 0, 0xAE30} /* Korean hangul */, - {0, 0, 0xAE31} /* Korean hangul */, - {0, 0, 0xAE34} /* Korean hangul */, - {0, 0, 0xAE37} /* Korean hangul */, - {0, 0, 0xAE38} /* Korean hangul */, - {0, 0, 0xAE40} /* Korean hangul */, - {0, 0, 0xAE41} /* Korean hangul */, - {0, 0, 0xAE43} /* Korean hangul */, - {0, 0, 0xAE44} /* Korean hangul */, - {0, 0, 0xAE45} /* Korean hangul */, - {0, 0, 0xAE4A} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xAE4C} /* Korean hangul */, - {0, 0, 0xAE4D} /* Korean hangul */, - {0, 0, 0xAE4E} /* Korean hangul */, - {0, 0, 0xAE50} /* Korean hangul */, - {0, 0, 0xAE54} /* Korean hangul */, - {0, 0, 0xAE5C} /* Korean hangul */, - {0, 0, 0xAE5D} /* Korean hangul */, - {0, 0, 0xAE60} /* Korean hangul */, - {0, 0, 0xAE61} /* Korean hangul */, - {0, 0, 0xAE62} /* Korean hangul */, - {0, 0, 0xAE65} /* Korean hangul */, - {0, 0, 0xAE68} /* Korean hangul */, - {0, 0, 0xAE69} /* Korean hangul */, - {0, 0, 0xAE6C} /* Korean hangul */, - {0, 0, 0xAE70} /* Korean hangul */, - {0, 0, 0xAE78} /* Korean hangul */, - {0, 0, 0xAE79} /* Korean hangul */, - {0, 0, 0xAE7B} /* Korean hangul */, - {0, 0, 0xAE7C} /* Korean hangul */, - {0, 0, 0xAE7D} /* Korean hangul */, - {0, 0, 0xAE84} /* Korean hangul */, - {0, 0, 0xAE85} /* Korean hangul */, - {0, 0, 0xAEBC} /* Korean hangul */, - {0, 0, 0xAEBD} /* Korean hangul */, - {0, 0, 0xAEBE} /* Korean hangul */, - {0, 0, 0xAEC0} /* Korean hangul */, - {0, 0, 0xAEC4} /* Korean hangul */, - {0, 0, 0xAECC} /* Korean hangul */, - {0, 0, 0xAECD} /* Korean hangul */, - {0, 0, 0xAECF} /* Korean hangul */, - {0, 0, 0xAED0} /* Korean hangul */, - {0, 0, 0xAED1} /* Korean hangul */, - {0, 0, 0xAED8} /* Korean hangul */, - {0, 0, 0xAEDC} /* Korean hangul */, - {0, 0, 0xAEF4} /* Korean hangul */, - {0, 0, 0xAF0D} /* Korean hangul */, - {0, 0, 0xAF2C} /* Korean hangul */, - {0, 0, 0xAF2D} /* Korean hangul */, - {0, 0, 0xAF30} /* Korean hangul */, - {0, 0, 0xAF34} /* Korean hangul */, - {0, 0, 0xAF3C} /* Korean hangul */, - {0, 0, 0xAF3D} /* Korean hangul */, - {0, 0, 0xAF3F} /* Korean hangul */, - {0, 0, 0xAF41} /* Korean hangul */, - {0, 0, 0xAF42} /* Korean hangul */, - {0, 0, 0xAF43} /* Korean hangul */, - {0, 0, 0xAF48} /* Korean hangul */, - {0, 0, 0xAF49} /* Korean hangul */, - {0, 0, 0xAF4C} /* Korean hangul */, - {0, 0, 0xAF58} /* Korean hangul */, - {0, 0, 0xAF5C} /* Korean hangul */, - {0, 0, 0xAF5D} /* Korean hangul */, - {0, 0, 0xAF64} /* Korean hangul */, - {0, 0, 0xAF65} /* Korean hangul */, - {0, 0, 0xAF79} /* Korean hangul */, - {0, 0, 0xAF80} /* Korean hangul */, - {0, 0, 0xAF84} /* Korean hangul */, - {0, 0, 0xAF88} /* Korean hangul */, - {0, 0, 0xAF90} /* Korean hangul */, - {0, 0, 0xAF95} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page802 = { - 0, marc8_31page802_dir -}; -/* PAGE 801 */ -struct yaz_iconv_trie_dir marc8_31page801_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0xAC70} /* Korean hangul */, - {0, 0, 0xAC71} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xAC74} /* Korean hangul */, - {0, 0, 0xAC77} /* Korean hangul */, - {0, 0, 0xAC78} /* Korean hangul */, - {0, 0, 0xAC79} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xAC80} /* Korean hangul */, - {0, 0, 0xAC81} /* Korean hangul */, - {0, 0, 0xAC83} /* Korean hangul */, - {0, 0, 0xAC84} /* Korean hangul */, - {0, 0, 0xAC85} /* Korean hangul */, - {0, 0, 0xAC86} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xAC89} /* Korean hangul */, - {0, 0, 0xAC8A} /* Korean hangul */, - {0, 0, 0xAC8B} /* Korean hangul */, - {0, 0, 0xAC8C} /* Korean hangul */, - {0, 0, 0xAC90} /* Korean hangul */, - {0, 0, 0xAC94} /* Korean hangul */, - {0, 0, 0xAC9C} /* Korean hangul */, - {0, 0, 0xAC9F} /* Korean hangul */, - {0, 0, 0xACA0} /* Korean hangul */, - {0, 0, 0xACA1} /* Korean hangul */, - {0, 0, 0xACA8} /* Korean hangul */, - {0, 0, 0xACA9} /* Korean hangul */, - {0, 0, 0xACAA} /* Korean hangul */, - {0, 0, 0xACAC} /* Korean hangul */, - {0, 0, 0xACAF} /* Korean hangul */, - {0, 0, 0xACB0} /* Korean hangul */, - {0, 0, 0xACB8} /* Korean hangul */, - {0, 0, 0xACB9} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xACBC} /* Korean hangul */, - {0, 0, 0xACBD} /* Korean hangul */, - {0, 0, 0xACC1} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xACC4} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xACD7} /* Korean hangul */, - {0, 0, 0xACE0} /* Korean hangul */, - {0, 0, 0xACE1} /* Korean hangul */, - {0, 0, 0xACE4} /* Korean hangul */, - {0, 0, 0xACE7} /* Korean hangul */, - {0, 0, 0xACE8} /* Korean hangul */, - {0, 0, 0xACEA} /* Korean hangul */, - {0, 0, 0xACEC} /* Korean hangul */, - {0, 0, 0xACEF} /* Korean hangul */, - {0, 0, 0xACF0} /* Korean hangul */, - {0, 0, 0xACF1} /* Korean hangul */, - {0, 0, 0xACF3} /* Korean hangul */, - {0, 0, 0xACF5} /* Korean hangul */, - {0, 0, 0xACF6} /* Korean hangul */, - {0, 0, 0xACFA} /* Korean hangul */, - {0, 0, 0xACFC} /* Korean hangul */, - {0, 0, 0xACFD} /* Korean hangul */, - {0, 0, 0xAD00} /* Korean hangul */, - {0, 0, 0xAD04} /* Korean hangul */, - {0, 0, 0xAD0C} /* Korean hangul */, - {0, 0, 0xAD0D} /* Korean hangul */, - {0, 0, 0xAD0F} /* Korean hangul */, - {0, 0, 0xAD11} /* Korean hangul */, - {0, 0, 0xAD18} /* Korean hangul */, - {0, 0, 0xAD19} /* Korean hangul */, - {0, 0, 0xAD1C} /* Korean hangul */, - {0, 0, 0xAD20} /* Korean hangul */, - {0, 0, 0xAD28} /* Korean hangul */, - {0, 0, 0xAD29} /* Korean hangul */, - {0, 0, 0xAD2D} /* Korean hangul */, - {0, 0, 0xAD34} /* Korean hangul */, - {0, 0, 0xAD38} /* Korean hangul */, - {0, 0, 0xAD3C} /* Korean hangul */, - {0, 0, 0xAD44} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xAD49} /* Korean hangul */, - {0, 0, 0xAD50} /* Korean hangul */, - {0, 0, 0xAD6C} /* Korean hangul */, - {0, 0, 0xAD6D} /* Korean hangul */, - {0, 0, 0xAD70} /* Korean hangul */, - {0, 0, 0xAD73} /* Korean hangul */, - {0, 0, 0xAD74} /* Korean hangul */, - {0, 0, 0xAD75} /* Korean hangul */, - {0, 0, 0xAD76} /* Korean hangul */, - {0, 0, 0xAD7C} /* Korean hangul */, - {0, 0, 0xAD7D} /* Korean hangul */, - {0, 0, 0xAD7F} /* Korean hangul */, - {0, 0, 0xAD81} /* Korean hangul */, - {0, 0, 0xAD82} /* Korean hangul */, - {0, 0, 0xAD88} /* Korean hangul */, - {0, 0, 0xAD8C} /* Korean hangul */, - {0, 0, 0xAD90} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0xADA4} /* Korean hangul */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page801 = { - 0, marc8_31page801_dir -}; -/* PAGE 800 */ -struct yaz_iconv_trie_flat marc8_31page800_flat[] = { - {"\x5F", 0, 0xAC00}, /* Korean hangul */ - {"\x60", 0, 0xAC01}, /* Korean hangul */ - {"\x61", 0, 0xAC02}, /* Korean hangul */ - {"\x62", 0, 0xAC04}, /* Korean hangul */ - {"\x63", 0, 0xAC07}, /* Korean hangul */ - {"\x64", 0, 0xAC08}, /* Korean hangul */ - {"\x65", 0, 0xAC09}, /* Korean hangul */ - {"\x66", 0, 0xAC10}, /* Korean hangul */ - {"\x67", 0, 0xAC11}, /* Korean hangul */ - {"\x68", 0, 0xAC12}, /* Korean hangul */ - {"\x69", 0, 0xAC13}, /* Korean hangul */ - {"\x6A", 0, 0xAC14}, /* Korean hangul */ - {"\x6B", 0, 0xAC15}, /* Korean hangul */ - {"\x6C", 0, 0xAC16}, /* Korean hangul */ - {"\x6D", 0, 0xAC17}, /* Korean hangul */ - {"\x6E", 0, 0xAC19}, /* Korean hangul */ - {"\x6F", 0, 0xAC1A}, /* Korean hangul */ - {"\x70", 0, 0xAC1B}, /* Korean hangul */ - {"\x70", 0, 0xAC1B}, /* Korean hangul */ - {"\x71", 0, 0xAC1C}, /* Korean hangul */ - {"\x72", 0, 0xAC1D}, /* Korean hangul */ - {"\x73", 0, 0xAC20}, /* Korean hangul */ - {"\x75", 0, 0xAC24}, /* Korean hangul */ - {"\x76", 0, 0xAC2C}, /* Korean hangul */ - {"\x77", 0, 0xAC2D}, /* Korean hangul */ - {"\x78", 0, 0xAC2F}, /* Korean hangul */ - {"\x79", 0, 0xAC30}, /* Korean hangul */ - {"\x7A", 0, 0xAC31}, /* Korean hangul */ - {"\x7B", 0, 0xAC38}, /* Korean hangul */ - {"\x7C", 0, 0xAC39}, /* Korean hangul */ - {"\x7D", 0, 0xAC40}, /* Korean hangul */ - {"\x7E", 0, 0xAC54}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page800 = { - marc8_31page800_flat, 0 -}; -/* PAGE 799 */ -struct yaz_iconv_trie_flat marc8_31page799_flat[] = { - {"\x21", 0, 0x315C}, /* Korean hangul */ - {"\x25", 0, 0x3160}, /* Korean hangul */ - {"\x26", 0, 0x3161}, /* Korean hangul */ - {"\x27", 0, 0x3162}, /* Korean hangul */ - {"\x28", 0, 0x3163}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page799 = { - marc8_31page799_flat, 0 -}; -/* PAGE 798 */ -struct yaz_iconv_trie_flat marc8_31page798_flat[] = { - {"\x57", 0, 0x3131}, /* Korean hangul */ - {"\x58", 0, 0x3134}, /* Korean hangul */ - {"\x59", 0, 0x3137}, /* Korean hangul */ - {"\x5A", 0, 0x3139}, /* Korean hangul */ - {"\x5B", 0, 0x3141}, /* Korean hangul */ - {"\x5C", 0, 0x3142}, /* Korean hangul */ - {"\x5D", 0, 0x3145}, /* Korean hangul */ - {"\x5E", 0, 0x3147}, /* Korean hangul */ - {"\x5F", 0, 0x3148}, /* Korean hangul */ - {"\x60", 0, 0x314A}, /* Korean hangul */ - {"\x61", 0, 0x314B}, /* Korean hangul */ - {"\x62", 0, 0x314C}, /* Korean hangul */ - {"\x63", 0, 0x314D}, /* Korean hangul */ - {"\x64", 0, 0x314E}, /* Korean hangul */ - {"\x65", 0, 0x3132}, /* Korean hangul */ - {"\x69", 0, 0x3138}, /* Korean hangul */ - {"\x6E", 0, 0x3143}, /* Korean hangul */ - {"\x70", 0, 0x3146}, /* Korean hangul */ - {"\x71", 0, 0x3149}, /* Korean hangul */ - {"\x72", 0, 0x314F}, /* Korean hangul */ - {"\x73", 0, 0x3150}, /* Korean hangul */ - {"\x74", 0, 0x3151}, /* Korean hangul */ - {"\x76", 0, 0x3153}, /* Korean hangul */ - {"\x77", 0, 0x3154}, /* Korean hangul */ - {"\x78", 0, 0x3155}, /* Korean hangul */ - {"\x7A", 0, 0x3157}, /* Korean hangul */ - {"\x7B", 0, 0x3158}, /* Korean hangul */ - {"\x7E", 0, 0x315B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page798 = { - marc8_31page798_flat, 0 -}; -/* PAGE 797 */ -struct yaz_iconv_trie_dir marc8_31page797_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {799, 0, 0}, - {800, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {801, 0, 0}, - {802, 0, 0}, - {803, 0, 0}, - {804, 0, 0}, - {805, 0, 0}, - {806, 0, 0}, - {807, 0, 0}, - {808, 0, 0}, - {809, 0, 0}, - {810, 0, 0}, - {811, 0, 0}, - {812, 0, 0}, - {813, 0, 0}, - {814, 0, 0}, - {815, 0, 0}, - {816, 0, 0}, - {817, 0, 0}, - {818, 0, 0}, - {819, 0, 0}, - {820, 0, 0}, - {821, 0, 0}, - {822, 0, 0}, - {823, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {824, 0, 0}, - {825, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page797 = { - 0, marc8_31page797_dir -}; -/* PAGE 796 */ -struct yaz_iconv_trie_dir marc8_31page796_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x30A1} /* Katakana letter small A */, - {0, 0, 0x30A2} /* Katakana letter A */, - {0, 0, 0x30A3} /* Katakana letter small I */, - {0, 0, 0x30A4} /* Katakana letter I */, - {0, 0, 0x30A5} /* Katakana letter small U */, - {0, 0, 0x30A6} /* Katakana letter U */, - {0, 0, 0x30A7} /* Katakana letter small E */, - {0, 0, 0x30A8} /* Katakana letter E */, - {0, 0, 0x30A9} /* Katakana letter small O */, - {0, 0, 0x30AA} /* Katakana letter O */, - {0, 0, 0x30AB} /* Katakana letter KA */, - {0, 0, 0x30AC} /* Katakana letter GA */, - {0, 0, 0x30AD} /* Katakana letter KI */, - {0, 0, 0x30AE} /* Katakana letter GI */, - {0, 0, 0x30AF} /* Katakana letter KU */, - {0, 0, 0x30B0} /* Katakana letter GU */, - {0, 0, 0x30B1} /* Katakana letter KE */, - {0, 0, 0x30B2} /* Katakana letter GE */, - {0, 0, 0x30B3} /* Katakana letter KO */, - {0, 0, 0x30B4} /* Katakana letter GO */, - {0, 0, 0x30B5} /* Katakana letter SA */, - {0, 0, 0x30B6} /* Katakana letter ZA */, - {0, 0, 0x30B7} /* Katakana letter SI */, - {0, 0, 0x30B8} /* Katakana letter ZI */, - {0, 0, 0x30B9} /* Katakana letter SU */, - {0, 0, 0x30BA} /* Katakana letter ZU */, - {0, 0, 0x30BB} /* Katakana letter SE */, - {0, 0, 0x30BC} /* Katakana letter ZE */, - {0, 0, 0x30BD} /* Katakana letter SO */, - {0, 0, 0x30BE} /* Katakana letter ZO */, - {0, 0, 0x30BF} /* Katakana letter TA */, - {0, 0, 0x30C0} /* Katakana letter DA */, - {0, 0, 0x30C1} /* Katakana letter TI */, - {0, 0, 0x30C2} /* Katakana letter DI */, - {0, 0, 0x30C3} /* Katakana letter small TU */, - {0, 0, 0x30C4} /* Katakana letter TU */, - {0, 0, 0x30C5} /* Katakana letter DU */, - {0, 0, 0x30C6} /* Katakana letter TE */, - {0, 0, 0x30C7} /* Katakana letter DE */, - {0, 0, 0x30C8} /* Katakana letter TO */, - {0, 0, 0x30C9} /* Katakana letter DO */, - {0, 0, 0x30CA} /* Katakana letter NA */, - {0, 0, 0x30CB} /* Katakana letter NI */, - {0, 0, 0x30CC} /* Katakana letter NU */, - {0, 0, 0x30CD} /* Katakana letter NE */, - {0, 0, 0x30CE} /* Katakana letter NO */, - {0, 0, 0x30CF} /* Katakana letter HA */, - {0, 0, 0x30D0} /* Katakana letter BA */, - {0, 0, 0x30D1} /* Katakana letter PA */, - {0, 0, 0x30D2} /* Katakana letter HI */, - {0, 0, 0x30D3} /* Katakana letter BI */, - {0, 0, 0x30D4} /* Katakana letter PI */, - {0, 0, 0x30D5} /* Katakana letter HU */, - {0, 0, 0x30D6} /* Katakana letter BU */, - {0, 0, 0x30D7} /* Katakana letter PU */, - {0, 0, 0x30D8} /* Katakana letter HE */, - {0, 0, 0x30D9} /* Katakana letter BE */, - {0, 0, 0x30DA} /* Katakana letter PE */, - {0, 0, 0x30DB} /* Katakana letter HO */, - {0, 0, 0x30DC} /* Katakana letter BO */, - {0, 0, 0x30DD} /* Katakana letter PO */, - {0, 0, 0x30DE} /* Katakana letter MA */, - {0, 0, 0x30DF} /* Katakana letter MI */, - {0, 0, 0x30E0} /* Katakana letter MU */, - {0, 0, 0x30E1} /* Katakana letter ME */, - {0, 0, 0x30E2} /* Katakana letter MO */, - {0, 0, 0x30E3} /* Katakana letter small YA */, - {0, 0, 0x30E4} /* Katakana letter YA */, - {0, 0, 0x30E5} /* Katakana letter small YU */, - {0, 0, 0x30E6} /* Katakana letter YU */, - {0, 0, 0x30E7} /* Katakana letter small YO */, - {0, 0, 0x30E8} /* Katakana letter YO */, - {0, 0, 0x30E9} /* Katakana letter RA */, - {0, 0, 0x30EA} /* Katakana letter RI */, - {0, 0, 0x30EB} /* Katakana letter RU */, - {0, 0, 0x30EC} /* Katakana letter RE */, - {0, 0, 0x30ED} /* Katakana letter RO */, - {0, 0, 0x30EE} /* Katakana letter small WA */, - {0, 0, 0x30EF} /* Katakana letter WA */, - {0, 0, 0x30F0} /* Katakana letter WI */, - {0, 0, 0x30F1} /* Katakana letter WE */, - {0, 0, 0x30F2} /* Katakana letter WO */, - {0, 0, 0x30F3} /* Katakana letter N */, - {0, 0, 0x30F4} /* Katakana letter VU */, - {0, 0, 0x30F5} /* Katakana letter small KA */, - {0, 0, 0x30F6} /* Katakana letter small KE */, - {0, 0, 0x309B} /* Katakana-hiragana voiced sound mark */, - {0, 0, 0x309C} /* Katakana-hiragana semi-voiced sound mark */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page796 = { - 0, marc8_31page796_dir -}; -/* PAGE 795 */ -struct yaz_iconv_trie_dir marc8_31page795_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x3041} /* Hiragana letter small A */, - {0, 0, 0x3042} /* Hiragana letter A */, - {0, 0, 0x3043} /* Hiragana letter small I */, - {0, 0, 0x3044} /* Hiragana letter I */, - {0, 0, 0x3045} /* Hiragana letter small U */, - {0, 0, 0x3046} /* Hiragana letter U */, - {0, 0, 0x3047} /* Hiragana letter small E */, - {0, 0, 0x3048} /* Hiragana letter E */, - {0, 0, 0x3049} /* Hiragana letter small O */, - {0, 0, 0x304A} /* Hiragana letter O */, - {0, 0, 0x304B} /* Hiragana letter KA */, - {0, 0, 0x304C} /* Hiragana letter GA */, - {0, 0, 0x304D} /* Hiragana letter KI */, - {0, 0, 0x304E} /* Hiragana letter GI */, - {0, 0, 0x304F} /* Hiragana letter KU */, - {0, 0, 0x3050} /* Hiragana letter GU */, - {0, 0, 0x3051} /* Hiragana letter KE */, - {0, 0, 0x3052} /* Hiragana letter GE */, - {0, 0, 0x3053} /* Hiragana letter KO */, - {0, 0, 0x3054} /* Hiragana letter GO */, - {0, 0, 0x3055} /* Hiragana letter SA */, - {0, 0, 0x3056} /* Hiragana letter ZA */, - {0, 0, 0x3057} /* Hiragana letter SI */, - {0, 0, 0x3058} /* Hiragana letter ZI */, - {0, 0, 0x3059} /* Hiragana letter SU */, - {0, 0, 0x305A} /* Hiragana letter ZU */, - {0, 0, 0x305B} /* Hiragana letter SE */, - {0, 0, 0x305C} /* Hiragana letter ZE */, - {0, 0, 0x305D} /* Hiragana letter SO */, - {0, 0, 0x305E} /* Hiragana letter ZO */, - {0, 0, 0x305F} /* Hiragana letter TA */, - {0, 0, 0x3060} /* Hiragana letter DA */, - {0, 0, 0x3061} /* Hiragana letter TI */, - {0, 0, 0x3062} /* Hiragana letter DI */, - {0, 0, 0x3063} /* Hiragana letter small TU */, - {0, 0, 0x3064} /* Hiragana letter TU */, - {0, 0, 0x3065} /* Hiragana letter DU */, - {0, 0, 0x3066} /* Hiragana letter TE */, - {0, 0, 0x3067} /* Hiragana letter DE */, - {0, 0, 0x3068} /* Hiragana letter TO */, - {0, 0, 0x3069} /* Hiragana letter DO */, - {0, 0, 0x306A} /* Hiragana letter NA */, - {0, 0, 0x306B} /* Hiragana letter NI */, - {0, 0, 0x306C} /* Hiragana letter NU */, - {0, 0, 0x306D} /* Hiragana letter NE */, - {0, 0, 0x306E} /* Hiragana letter NO */, - {0, 0, 0x306F} /* Hiragana letter HA */, - {0, 0, 0x3070} /* Hiragana letter BA */, - {0, 0, 0x3071} /* Hiragana letter PA */, - {0, 0, 0x3072} /* Hiragana letter HI */, - {0, 0, 0x3073} /* Hiragana letter BI */, - {0, 0, 0x3074} /* Hiragana letter PI */, - {0, 0, 0x3075} /* Hiragana letter HU */, - {0, 0, 0x3076} /* Hiragana letter BU */, - {0, 0, 0x3077} /* Hiragana letter PU */, - {0, 0, 0x3078} /* Hiragana letter HE */, - {0, 0, 0x3079} /* Hiragana letter BE */, - {0, 0, 0x307A} /* Hiragana letter PE */, - {0, 0, 0x307B} /* Hiragana letter HO */, - {0, 0, 0x307C} /* Hiragana letter BO */, - {0, 0, 0x307D} /* Hiragana letter PO */, - {0, 0, 0x307E} /* Hiragana letter MA */, - {0, 0, 0x307F} /* Hiragana letter MI */, - {0, 0, 0x3080} /* Hiragana letter MU */, - {0, 0, 0x3081} /* Hiragana letter ME */, - {0, 0, 0x3082} /* Hiragana letter MO */, - {0, 0, 0x3083} /* Hiragana letter small YA */, - {0, 0, 0x3084} /* Hiragana letter YA */, - {0, 0, 0x3085} /* Hiragana letter small YU */, - {0, 0, 0x3086} /* Hiragana letter YU */, - {0, 0, 0x3087} /* Hiragana letter small YO */, - {0, 0, 0x3088} /* Hiragana letter YO */, - {0, 0, 0x3089} /* Hiragana letter RA */, - {0, 0, 0x308A} /* Hiragana letter RI */, - {0, 0, 0x308B} /* Hiragana letter RU */, - {0, 0, 0x308C} /* Hiragana letter RE */, - {0, 0, 0x308D} /* Hiragana letter RO */, - {0, 0, 0x308E} /* Hiragana letter small WA */, - {0, 0, 0x308F} /* Hiragana letter WA */, - {0, 0, 0x3090} /* Hiragana letter WI */, - {0, 0, 0x3091} /* Hiragana letter WE */, - {0, 0, 0x3092} /* Hiragana letter WO */, - {0, 0, 0x3093} /* Hiragana letter N */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page795 = { - 0, marc8_31page795_dir -}; -/* PAGE 794 */ -struct yaz_iconv_trie_flat marc8_31page794_flat[] = { - {"\x3C", 0, 0x30FC}, /* Vowel elongation mark for kana */ - {"\x26", 0, 0x30FB}, /* Ideographic centered point */ - {"\x39", 0, 0x3005}, /* Ideographic iteration mark */ - {"\x52", 0, 0x3008}, /* Ideographic less than sign */ - {"\x53", 0, 0x3009}, /* Ideographic greater than sign */ - {"\x54", 0, 0x300A}, /* Ideographic left double angle bracket */ - {"\x55", 0, 0x300B}, /* Ideographic right double angle bracket */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page794 = { - marc8_31page794_flat, 0 -}; -/* PAGE 793 */ -struct yaz_iconv_trie_flat marc8_31page793_flat[] = { - {"\x4C\x2A", 0, 0x915E}, /* East Asian ideograph */ - {"\x58\x6F", 0, 0x4EEB}, /* East Asian ideograph */ - {"\x5B\x71", 0, 0x57B4}, /* East Asian ideograph */ - {"\x5C\x43", 0, 0x82CA}, /* East Asian ideograph */ - {"\x5C\x50", 0, 0x82C4}, /* East Asian ideograph */ - {"\x5D\x46", 0, 0x841C}, /* East Asian ideograph */ - {"\x5D\x5C", 0, 0x8488}, /* East Asian ideograph */ - {"\x5F\x30", 0, 0x7519}, /* East Asian ideograph */ - {"\x5F\x39", 0, 0x5416}, /* East Asian ideograph */ - {"\x5F\x50", 0, 0x549D}, /* East Asian ideograph */ - {"\x5F\x51", 0, 0x54D0}, /* East Asian ideograph */ - {"\x5F\x54", 0, 0x54B4}, /* East Asian ideograph */ - {"\x5F\x5B", 0, 0x54A3}, /* East Asian ideograph */ - {"\x5F\x61", 0, 0x54DA}, /* East Asian ideograph */ - {"\x60\x2D", 0, 0x55B9}, /* East Asian ideograph */ - {"\x60\x3A", 0, 0x55EA}, /* East Asian ideograph */ - {"\x60\x4C", 0, 0x55F5}, /* East Asian ideograph */ - {"\x60\x54", 0, 0x5623}, /* East Asian ideograph */ - {"\x60\x58", 0, 0x562D}, /* East Asian ideograph */ - {"\x60\x67", 0, 0x567B}, /* East Asian ideograph */ - {"\x61\x31", 0, 0x5C9C}, /* East Asian ideograph */ - {"\x62\x2A", 0, 0x7339}, /* East Asian ideograph */ - {"\x62\x47", 0, 0x9987}, /* East Asian ideograph */ - {"\x62\x4E", 0, 0x9995}, /* East Asian ideograph */ - {"\x63\x40", 0, 0x61B7}, /* East Asian ideograph */ - {"\x66\x40", 0, 0x80EC}, /* East Asian ideograph */ - {"\x6B\x42", 0, 0x80BC}, /* East Asian ideograph */ - {"\x6B\x44", 0, 0x80BD}, /* East Asian ideograph */ - {"\x6B\x4C", 0, 0x80E9}, /* East Asian ideograph */ - {"\x6B\x5B", 0, 0x810E}, /* East Asian ideograph */ - {"\x6B\x5F", 0, 0x8112}, /* East Asian ideograph */ - {"\x6B\x6A", 0, 0x8159}, /* East Asian ideograph */ - {"\x6C\x42", 0, 0x70BB}, /* East Asian ideograph */ - {"\x6C\x43", 0, 0x70C0}, /* East Asian ideograph */ - {"\x6D\x3B", 0, 0x7818}, /* East Asian ideograph */ - {"\x6D\x3F", 0, 0x781C}, /* East Asian ideograph */ - {"\x6D\x45", 0, 0x783C}, /* East Asian ideograph */ - {"\x72\x7D", 0, 0x87A8}, /* East Asian ideograph */ - {"\x73\x60", 0, 0x7B7B}, /* East Asian ideograph */ - {"\x73\x6E", 0, 0x7BA2}, /* East Asian ideograph */ - {"\x74\x38", 0, 0x823E}, /* East Asian ideograph */ - {"\x75\x23", 0, 0x9170}, /* East Asian ideograph */ - {"\x75\x5D", 0, 0x8E3A}, /* East Asian ideograph */ - {"\x77\x5D", 0, 0x9B0F}, /* East Asian ideograph */ - {"\x77\x71", 0, 0x9EE2}, /* East Asian ideograph (Version J extension) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page793 = { - marc8_31page793_flat, 0 -}; -/* PAGE 792 */ -struct yaz_iconv_trie_flat marc8_31page792_flat[] = { - {"\x23", 0, 0x9D64}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page792 = { - marc8_31page792_flat, 0 -}; -/* PAGE 791 */ -struct yaz_iconv_trie_flat marc8_31page791_flat[] = { - {"\x3B", 0, 0x9B96}, /* East Asian ideograph */ - {"\x40", 0, 0x9BB4}, /* East Asian ideograph */ - {"\x45", 0, 0x9BCF}, /* East Asian ideograph */ - {"\x46", 0, 0x9BD1}, /* East Asian ideograph */ - {"\x4E", 0, 0x9BF2}, /* East Asian ideograph */ - {"\x60", 0, 0x9C30}, /* East Asian ideograph */ - {"\x65", 0, 0x9C5A}, /* East Asian ideograph */ - {"\x7E", 0, 0x9D48}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page791 = { - marc8_31page791_flat, 0 -}; -/* PAGE 790 */ -struct yaz_iconv_trie_flat marc8_31page790_flat[] = { - {"\x24", 0, 0x98AA}, /* East Asian ideograph */ - {"\x52", 0, 0x99F2}, /* East Asian ideograph */ - {"\x74", 0, 0x9ADE}, /* East Asian ideograph */ - {"\x7D", 0, 0x9AF1}, /* East Asian ideograph */ - {"\x7E", 0, 0x9AF7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page790 = { - marc8_31page790_flat, 0 -}; -/* PAGE 789 */ -struct yaz_iconv_trie_flat marc8_31page789_flat[] = { - {"\x23", 0, 0x9666}, /* East Asian ideograph */ - {"\x58", 0, 0x9779}, /* East Asian ideograph */ - {"\x5D", 0, 0x9786}, /* East Asian ideograph */ - {"\x60", 0, 0x9790}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page789 = { - marc8_31page789_flat, 0 -}; -/* PAGE 788 */ -struct yaz_iconv_trie_flat marc8_31page788_flat[] = { - {"\x27", 0, 0x933B}, /* East Asian ideograph */ - {"\x5B", 0, 0x958A}, /* East Asian ideograph */ - {"\x5D", 0, 0x9596}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page788 = { - marc8_31page788_flat, 0 -}; -/* PAGE 787 */ -struct yaz_iconv_trie_flat marc8_31page787_flat[] = { - {"\x28", 0, 0x9056}, /* East Asian ideograph */ - {"\x5C", 0, 0x91DF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page787 = { - marc8_31page787_flat, 0 -}; -/* PAGE 786 */ -struct yaz_iconv_trie_flat marc8_31page786_flat[] = { - {"\x3F", 0, 0x8EBE}, /* East Asian ideograph */ - {"\x40", 0, 0x8EC5}, /* East Asian ideograph */ - {"\x41", 0, 0x8EC8}, /* East Asian ideograph */ - {"\x5A", 0, 0x8F4C}, /* East Asian ideograph */ - {"\x7A", 0, 0x9027}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page786 = { - marc8_31page786_flat, 0 -}; -/* PAGE 785 */ -struct yaz_iconv_trie_flat marc8_31page785_flat[] = { - {"\x27", 0, 0x8977}, /* East Asian ideograph */ - {"\x5C", 0, 0x8ADA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page785 = { - marc8_31page785_flat, 0 -}; -/* PAGE 784 */ -struct yaz_iconv_trie_flat marc8_31page784_flat[] = { - {"\x2C", 0, 0x87D0}, /* East Asian ideograph */ - {"\x5E", 0, 0x88B0}, /* East Asian ideograph */ - {"\x61", 0, 0x88C3}, /* East Asian ideograph */ - {"\x6D", 0, 0x8904}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page784 = { - marc8_31page784_flat, 0 -}; -/* PAGE 783 */ -struct yaz_iconv_trie_flat marc8_31page783_flat[] = { - {"\x46", 0, 0x8630}, /* East Asian ideograph */ - {"\x5B", 0, 0x86AB}, /* East Asian ideograph */ - {"\x62", 0, 0x86EF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page783 = { - marc8_31page783_flat, 0 -}; -/* PAGE 782 */ -struct yaz_iconv_trie_flat marc8_31page782_flat[] = { - {"\x4D", 0, 0x8422}, /* East Asian ideograph */ - {"\x68", 0, 0x84D9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page782 = { - marc8_31page782_flat, 0 -}; -/* PAGE 781 */ -struct yaz_iconv_trie_flat marc8_31page781_flat[] = { - {"\x33", 0, 0x81A4}, /* East Asian ideograph */ - {"\x5C", 0, 0x825D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page781 = { - marc8_31page781_flat, 0 -}; -/* PAGE 780 */ -struct yaz_iconv_trie_flat marc8_31page780_flat[] = { - {"\x4F", 0, 0x7E05}, /* East Asian ideograph */ - {"\x6D", 0, 0x7E83}, /* East Asian ideograph */ - {"\x6E", 0, 0x7DD5}, /* East Asian ideograph */ - {"\x76", 0, 0x7E90}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page780 = { - marc8_31page780_flat, 0 -}; -/* PAGE 779 */ -struct yaz_iconv_trie_flat marc8_31page779_flat[] = { - {"\x49", 0, 0x7C13}, /* East Asian ideograph */ - {"\x4C", 0, 0x7C17}, /* East Asian ideograph */ - {"\x4E", 0, 0x7BF6}, /* East Asian ideograph */ - {"\x64", 0, 0x7C90}, /* East Asian ideograph */ - {"\x66", 0, 0x7CAD}, /* East Asian ideograph */ - {"\x71", 0, 0x7CC0}, /* East Asian ideograph */ - {"\x74", 0, 0x7CD8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page779 = { - marc8_31page779_flat, 0 -}; -/* PAGE 778 */ -struct yaz_iconv_trie_flat marc8_31page778_flat[] = { - {"\x25", 0, 0x7907}, /* East Asian ideograph */ - {"\x4E", 0, 0x7A43}, /* East Asian ideograph */ - {"\x73", 0, 0x7B02}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page778 = { - marc8_31page778_flat, 0 -}; -/* PAGE 777 */ -struct yaz_iconv_trie_flat marc8_31page777_flat[] = { - {"\x6D", 0, 0x7874}, /* East Asian ideograph */ - {"\x73", 0, 0x78B5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page777 = { - marc8_31page777_flat, 0 -}; -/* PAGE 776 */ -struct yaz_iconv_trie_flat marc8_31page776_flat[] = { - {"\x26", 0, 0x74F2}, /* East Asian ideograph */ - {"\x36", 0, 0x753C}, /* East Asian ideograph */ - {"\x3A", 0, 0x7549}, /* East Asian ideograph */ - {"\x3E", 0, 0x7569}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page776 = { - marc8_31page776_flat, 0 -}; -/* PAGE 775 */ -struct yaz_iconv_trie_flat marc8_31page775_flat[] = { - {"\x70", 0, 0x7195}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page775 = { - marc8_31page775_flat, 0 -}; -/* PAGE 774 */ -struct yaz_iconv_trie_flat marc8_31page774_flat[] = { - {"\x63", 0, 0x6E82}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page774 = { - marc8_31page774_flat, 0 -}; -/* PAGE 773 */ -struct yaz_iconv_trie_flat marc8_31page773_flat[] = { - {"\x36", 0, 0x6B1F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page773 = { - marc8_31page773_flat, 0 -}; -/* PAGE 772 */ -struct yaz_iconv_trie_flat marc8_31page772_flat[] = { - {"\x29", 0, 0x6925}, /* East Asian ideograph */ - {"\x2D", 0, 0x6928}, /* East Asian ideograph */ - {"\x30", 0, 0x6923}, /* East Asian ideograph */ - {"\x30", 0, 0x6923}, /* East Asian ideograph */ - {"\x31", 0, 0x6921}, /* East Asian ideograph */ - {"\x39", 0, 0x697E}, /* East Asian ideograph */ - {"\x43", 0, 0x6981}, /* East Asian ideograph */ - {"\x4F", 0, 0x69DD}, /* East Asian ideograph */ - {"\x53", 0, 0x6A2E}, /* East Asian ideograph */ - {"\x71", 0, 0x6A78}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page772 = { - marc8_31page772_flat, 0 -}; -/* PAGE 771 */ -struct yaz_iconv_trie_flat marc8_31page771_flat[] = { - {"\x37", 0, 0x6737}, /* East Asian ideograph */ - {"\x7B", 0, 0x6926}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page771 = { - marc8_31page771_flat, 0 -}; -/* PAGE 770 */ -struct yaz_iconv_trie_flat marc8_31page770_flat[] = { - {"\x31", 0, 0x64F6}, /* East Asian ideograph */ - {"\x73", 0, 0x6683}, /* East Asian ideograph */ - {"\x7E", 0, 0x66BC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page770 = { - marc8_31page770_flat, 0 -}; -/* PAGE 769 */ -struct yaz_iconv_trie_flat marc8_31page769_flat[] = { - {"\x4B", 0, 0x6327}, /* East Asian ideograph */ - {"\x5E", 0, 0x63B5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page769 = { - marc8_31page769_flat, 0 -}; -/* PAGE 768 */ -struct yaz_iconv_trie_flat marc8_31page768_flat[] = { - {"\x37", 0, 0x5F16}, /* East Asian ideograph */ - {"\x3B", 0, 0x5F41}, /* East Asian ideograph */ - {"\x6A", 0, 0x603A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page768 = { - marc8_31page768_flat, 0 -}; -/* PAGE 767 */ -struct yaz_iconv_trie_flat marc8_31page767_flat[] = { - {"\x26", 0, 0x4E62}, /* East Asian ideograph */ - {"\x2C", 0, 0x599B}, /* East Asian ideograph */ - {"\x2E", 0, 0x5CBB}, /* East Asian ideograph */ - {"\x30", 0, 0x5CBC}, /* East Asian ideograph */ - {"\x32", 0, 0x5CC5}, /* East Asian ideograph */ - {"\x33", 0, 0x5CBE}, /* East Asian ideograph */ - {"\x4E", 0, 0x5D76}, /* East Asian ideograph */ - {"\x57", 0, 0x5D90}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page767 = { - marc8_31page767_flat, 0 -}; -/* PAGE 766 */ -struct yaz_iconv_trie_flat marc8_31page766_flat[] = { - {"\x4E", 0, 0x5B36}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page766 = { - marc8_31page766_flat, 0 -}; -/* PAGE 765 */ -struct yaz_iconv_trie_flat marc8_31page765_flat[] = { - {"\x29", 0, 0x5726}, /* East Asian ideograph */ - {"\x2A", 0, 0x5737}, /* East Asian ideograph */ - {"\x38", 0, 0x57B3}, /* East Asian ideograph */ - {"\x3A", 0, 0x57AA}, /* East Asian ideograph */ - {"\x3B", 0, 0x57B0}, /* East Asian ideograph */ - {"\x42", 0, 0x57D6}, /* East Asian ideograph */ - {"\x4B", 0, 0x5870}, /* East Asian ideograph */ - {"\x51", 0, 0x58B9}, /* East Asian ideograph */ - {"\x57", 0, 0x58B8}, /* East Asian ideograph */ - {"\x5C", 0, 0x58D7}, /* East Asian ideograph */ - {"\x5F", 0, 0x58E5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page765 = { - marc8_31page765_flat, 0 -}; -/* PAGE 764 */ -struct yaz_iconv_trie_flat marc8_31page764_flat[] = { - {"\x26", 0, 0x54D8}, /* East Asian ideograph */ - {"\x3B", 0, 0x555D}, /* East Asian ideograph */ - {"\x75", 0, 0x56CE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page764 = { - marc8_31page764_flat, 0 -}; -/* PAGE 763 */ -struct yaz_iconv_trie_flat marc8_31page763_flat[] = { - {"\x5D", 0, 0x53FA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page763 = { - marc8_31page763_flat, 0 -}; -/* PAGE 762 */ -struct yaz_iconv_trie_flat marc8_31page762_flat[] = { - {"\x30", 0, 0x5116}, /* East Asian ideograph */ - {"\x5E", 0, 0x51E9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page762 = { - marc8_31page762_flat, 0 -}; -/* PAGE 761 */ -struct yaz_iconv_trie_flat marc8_31page761_flat[] = { - {"\x5D", 0, 0x6762}, /* East Asian ideograph */ - {"\x68", 0, 0x5301}, /* East Asian ideograph */ - {"\x7A", 0, 0x9453}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page761 = { - marc8_31page761_flat, 0 -}; -/* PAGE 760 */ -struct yaz_iconv_trie_flat marc8_31page760_flat[] = { - {"\x7B", 0, 0x9EBF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page760 = { - marc8_31page760_flat, 0 -}; -/* PAGE 759 */ -struct yaz_iconv_trie_flat marc8_31page759_flat[] = { - {"\x23", 0, 0x7872}, /* East Asian ideograph */ - {"\x2B", 0, 0x7560}, /* East Asian ideograph */ - {"\x38", 0, 0x567A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page759 = { - marc8_31page759_flat, 0 -}; -/* PAGE 758 */ -struct yaz_iconv_trie_flat marc8_31page758_flat[] = { - {"\x64", 0, 0x51EA}, /* East Asian ideograph */ - {"\x77", 0, 0x5302}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page758 = { - marc8_31page758_flat, 0 -}; -/* PAGE 757 */ -struct yaz_iconv_trie_flat marc8_31page757_flat[] = { - {"\x32", 0, 0x9D2B}, /* East Asian ideograph */ - {"\x36", 0, 0x96EB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page757 = { - marc8_31page757_flat, 0 -}; -/* PAGE 756 */ -struct yaz_iconv_trie_flat marc8_31page756_flat[] = { - {"\x29", 0, 0x7C82}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page756 = { - marc8_31page756_flat, 0 -}; -/* PAGE 755 */ -struct yaz_iconv_trie_dir marc8_31page755_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {795, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {796, 0, 0}, - {797, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {757, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {758, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {759, 0, 0}, - {0, 0, 0}, - {760, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {761, 0, 0}, - {762, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {763, 0, 0}, - {764, 0, 0}, - {765, 0, 0}, - {766, 0, 0}, - {767, 0, 0}, - {768, 0, 0}, - {769, 0, 0}, - {0, 0, 0}, - {770, 0, 0}, - {771, 0, 0}, - {772, 0, 0}, - {773, 0, 0}, - {774, 0, 0}, - {775, 0, 0}, - {776, 0, 0}, - {0, 0, 0}, - {777, 0, 0}, - {778, 0, 0}, - {779, 0, 0}, - {780, 0, 0}, - {781, 0, 0}, - {0, 0, 0}, - {782, 0, 0}, - {783, 0, 0}, - {784, 0, 0}, - {785, 0, 0}, - {786, 0, 0}, - {0, 0, 0}, - {787, 0, 0}, - {788, 0, 0}, - {789, 0, 0}, - {790, 0, 0}, - {791, 0, 0}, - {792, 0, 0}, - {793, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page755 = { - 0, marc8_31page755_dir -}; -/* PAGE 754 */ -struct yaz_iconv_trie_flat marc8_31page754_flat[] = { - {"\x73\x5D", 0, 0x7E8A}, /* East Asian ideograph (variant of EACC 22735D) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page754 = { - marc8_31page754_flat, 0 -}; -/* PAGE 753 */ -struct yaz_iconv_trie_flat marc8_31page753_flat[] = { - {"\x30\x51", 0, 0x8CAE}, /* East Asian ideograph */ - {"\x30\x57", 0, 0x4E98}, /* East Asian ideograph */ - {"\x34\x21", 0, 0x91D6}, /* East Asian ideograph */ - {"\x35\x6A", 0, 0x8BC3}, /* East Asian ideograph */ - {"\x38\x4D", 0, 0x51C3}, /* East Asian ideograph */ - {"\x3A\x47", 0, 0x8885}, /* East Asian ideograph */ - {"\x3B\x52", 0, 0x6C3D}, /* East Asian ideograph */ - {"\x3D\x67", 0, 0x8FF3}, /* East Asian ideograph */ - {"\x45\x6D", 0, 0x822E}, /* East Asian ideograph */ - {"\x49\x6B", 0, 0x852B}, /* East Asian ideograph */ - {"\x4E\x5B", 0, 0x9271}, /* East Asian ideograph */ - {"\x51\x3B", 0, 0x7E9F}, /* East Asian ideograph */ - {"\x56\x3F", 0, 0x8616}, /* East Asian ideograph */ - {"\x5E\x5D", 0, 0x9616}, /* East Asian ideograph */ - {"\x61\x22", 0, 0x9988}, /* East Asian ideograph */ - {"\x6A\x26", 0, 0x51B4}, /* East Asian ideograph */ - {"\x79\x54", 0, 0x734E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page753 = { - marc8_31page753_flat, 0 -}; -/* PAGE 752 */ -struct yaz_iconv_trie_flat marc8_31page752_flat[] = { - {"\x22\x2A", 0, 0x83B5}, /* East Asian ideograph */ - {"\x29\x25", 0, 0x8770}, /* East Asian ideograph */ - {"\x29\x62", 0, 0x86C9}, /* East Asian ideograph (variant of EACC 232962) */ - {"\x2C\x3C", 0, 0x87E5}, /* East Asian ideograph */ - {"\x2D\x75", 0, 0x8872}, /* East Asian ideograph (variant of EACC 232D75) */ - {"\x2F\x5D", 0, 0x8941}, /* East Asian ideograph (variant of EACC 232F5D) */ - {"\x2F\x73", 0, 0x7E5D}, /* East Asian ideograph */ - {"\x2F\x7A", 0, 0x891D}, /* East Asian ideograph */ - {"\x30\x32", 0, 0x88AE}, /* East Asian ideograph */ - {"\x33\x59", 0, 0x56AF}, /* East Asian ideograph */ - {"\x33\x63", 0, 0x8C25}, /* East Asian ideograph */ - {"\x38\x6F", 0, 0x544B}, /* East Asian ideograph */ - {"\x3C\x6C", 0, 0x8FB6}, /* East Asian ideograph */ - {"\x41\x34", 0, 0x919B}, /* East Asian ideograph */ - {"\x41\x76", 0, 0x91DB}, /* East Asian ideograph */ - {"\x44\x5B", 0, 0x9306}, /* East Asian ideograph (variant of EACC 23445B) */ - {"\x44\x6B", 0, 0x954E}, /* East Asian ideograph */ - {"\x47\x2C", 0, 0x952A}, /* East Asian ideograph */ - {"\x47\x54", 0, 0x9544}, /* East Asian ideograph */ - {"\x47\x7B", 0, 0x943E}, /* East Asian ideograph */ - {"\x48\x32", 0, 0x953F}, /* East Asian ideograph */ - {"\x48\x35", 0, 0x954C}, /* East Asian ideograph */ - {"\x48\x62", 0, 0x9229}, /* East Asian ideograph */ - {"\x4A\x6C", 0, 0x9667}, /* East Asian ideograph */ - {"\x4D\x61", 0, 0x7EF1}, /* East Asian ideograph */ - {"\x4F\x39", 0, 0x988C}, /* East Asian ideograph */ - {"\x50\x3A", 0, 0x98D1}, /* East Asian ideograph */ - {"\x50\x53", 0, 0x98DA}, /* East Asian ideograph */ - {"\x51\x54", 0, 0x9942}, /* East Asian ideograph */ - {"\x55\x74", 0, 0x9B2E}, /* East Asian ideograph */ - {"\x58\x58", 0, 0x9BE3}, /* East Asian ideograph */ - {"\x58\x75", 0, 0x9CD0}, /* East Asian ideograph */ - {"\x59\x34", 0, 0x9CA6}, /* East Asian ideograph */ - {"\x59\x4E", 0, 0x9BF5}, /* East Asian ideograph */ - {"\x59\x73", 0, 0x51EB}, /* East Asian ideograph */ - {"\x5A\x6C", 0, 0x9D46}, /* East Asian ideograph */ - {"\x5B\x35", 0, 0x9DAB}, /* East Asian ideograph */ - {"\x5B\x7E", 0, 0x9DC6}, /* East Asian ideograph */ - {"\x5C\x6B", 0, 0x9D50}, /* East Asian ideograph */ - {"\x5D\x49", 0, 0x9E81}, /* East Asian ideograph */ - {"\x5F\x70", 0, 0x9F44}, /* East Asian ideograph */ - {"\x5F\x7B", 0, 0x97F2}, /* East Asian ideograph */ - {"\x60\x47", 0, 0x816D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page752 = { - marc8_31page752_flat, 0 -}; -/* PAGE 751 */ -struct yaz_iconv_trie_flat marc8_31page751_flat[] = { - {"\x4D", 0, 0x8343}, /* East Asian ideograph */ - {"\x6A", 0, 0x8323}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page751 = { - marc8_31page751_flat, 0 -}; -/* PAGE 750 */ -struct yaz_iconv_trie_flat marc8_31page750_flat[] = { - {"\x45", 0, 0x82AE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page750 = { - marc8_31page750_flat, 0 -}; -/* PAGE 749 */ -struct yaz_iconv_trie_flat marc8_31page749_flat[] = { - {"\x4E", 0, 0x80B7}, /* East Asian ideograph */ - {"\x59", 0, 0x817D}, /* East Asian ideograph */ - {"\x6B", 0, 0x815F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page749 = { - marc8_31page749_flat, 0 -}; -/* PAGE 748 */ -struct yaz_iconv_trie_flat marc8_31page748_flat[] = { - {"\x28", 0, 0x5FAD}, /* East Asian ideograph (variant of EACC 2E7328) */ - {"\x5D", 0, 0x7D4B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page748 = { - marc8_31page748_flat, 0 -}; -/* PAGE 747 */ -struct yaz_iconv_trie_flat marc8_31page747_flat[] = { - {"\x5D", 0, 0x7A39}, /* East Asian ideograph */ - {"\x65", 0, 0x7DFC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page747 = { - marc8_31page747_flat, 0 -}; -/* PAGE 746 */ -struct yaz_iconv_trie_flat marc8_31page746_flat[] = { - {"\x5A", 0, 0x7EE6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page746 = { - marc8_31page746_flat, 0 -}; -/* PAGE 745 */ -struct yaz_iconv_trie_flat marc8_31page745_flat[] = { - {"\x43", 0, 0x7CCD}, /* East Asian ideograph */ - {"\x7B", 0, 0x7CE8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page745 = { - marc8_31page745_flat, 0 -}; -/* PAGE 744 */ -struct yaz_iconv_trie_flat marc8_31page744_flat[] = { - {"\x42", 0, 0x7C31}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page744 = { - marc8_31page744_flat, 0 -}; -/* PAGE 743 */ -struct yaz_iconv_trie_flat marc8_31page743_flat[] = { - {"\x46", 0, 0x7B9F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page743 = { - marc8_31page743_flat, 0 -}; -/* PAGE 742 */ -struct yaz_iconv_trie_flat marc8_31page742_flat[] = { - {"\x62", 0, 0x7B4C}, /* East Asian ideograph (variant of EACC 226B62) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page742 = { - marc8_31page742_flat, 0 -}; -/* PAGE 741 */ -struct yaz_iconv_trie_flat marc8_31page741_flat[] = { - {"\x5C", 0, 0x7A06}, /* East Asian ideograph */ - {"\x5F", 0, 0x7A63}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page741 = { - marc8_31page741_flat, 0 -}; -/* PAGE 740 */ -struct yaz_iconv_trie_flat marc8_31page740_flat[] = { - {"\x3E", 0, 0x79EB}, /* East Asian ideograph */ - {"\x3E", 0, 0x79EB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page740 = { - marc8_31page740_flat, 0 -}; -/* PAGE 739 */ -struct yaz_iconv_trie_flat marc8_31page739_flat[] = { - {"\x75", 0, 0x7962}, /* East Asian ideograph (unrelated variant of EACC 293032) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page739 = { - marc8_31page739_flat, 0 -}; -/* PAGE 738 */ -struct yaz_iconv_trie_flat marc8_31page738_flat[] = { - {"\x64", 0, 0x78D9}, /* East Asian ideograph */ - {"\x65", 0, 0x78B9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page738 = { - marc8_31page738_flat, 0 -}; -/* PAGE 737 */ -struct yaz_iconv_trie_flat marc8_31page737_flat[] = { - {"\x76", 0, 0x7839}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page737 = { - marc8_31page737_flat, 0 -}; -/* PAGE 736 */ -struct yaz_iconv_trie_flat marc8_31page736_flat[] = { - {"\x66", 0, 0x778B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page736 = { - marc8_31page736_flat, 0 -}; -/* PAGE 735 */ -struct yaz_iconv_trie_flat marc8_31page735_flat[] = { - {"\x22", 0, 0x7596}, /* East Asian ideograph */ - {"\x74", 0, 0x76B9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page735 = { - marc8_31page735_flat, 0 -}; -/* PAGE 734 */ -struct yaz_iconv_trie_flat marc8_31page734_flat[] = { - {"\x58", 0, 0x7640}, /* East Asian ideograph */ - {"\x69", 0, 0x75EB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page734 = { - marc8_31page734_flat, 0 -}; -/* PAGE 733 */ -struct yaz_iconv_trie_flat marc8_31page733_flat[] = { - {"\x3A", 0, 0x73F1}, /* East Asian ideograph */ - {"\x61", 0, 0x74F4}, /* East Asian ideograph (variant of EACC 225C61) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page733 = { - marc8_31page733_flat, 0 -}; -/* PAGE 732 */ -struct yaz_iconv_trie_flat marc8_31page732_flat[] = { - {"\x38", 0, 0x729F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page732 = { - marc8_31page732_flat, 0 -}; -/* PAGE 731 */ -struct yaz_iconv_trie_flat marc8_31page731_flat[] = { - {"\x41", 0, 0x4E2C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page731 = { - marc8_31page731_flat, 0 -}; -/* PAGE 730 */ -struct yaz_iconv_trie_flat marc8_31page730_flat[] = { - {"\x47", 0, 0x71E0}, /* East Asian ideograph (variant of EACC 225447) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page730 = { - marc8_31page730_flat, 0 -}; -/* PAGE 729 */ -struct yaz_iconv_trie_flat marc8_31page729_flat[] = { - {"\x3A", 0, 0x717A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page729 = { - marc8_31page729_flat, 0 -}; -/* PAGE 728 */ -struct yaz_iconv_trie_flat marc8_31page728_flat[] = { - {"\x75", 0, 0x8315}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page728 = { - marc8_31page728_flat, 0 -}; -/* PAGE 727 */ -struct yaz_iconv_trie_flat marc8_31page727_flat[] = { - {"\x24", 0, 0x6F46}, /* East Asian ideograph */ - {"\x26", 0, 0x6EDD}, /* East Asian ideograph */ - {"\x2B", 0, 0x701E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page727 = { - marc8_31page727_flat, 0 -}; -/* PAGE 726 */ -struct yaz_iconv_trie_flat marc8_31page726_flat[] = { - {"\x3D", 0, 0x6F62}, /* East Asian ideograph */ - {"\x63", 0, 0x6F99}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page726 = { - marc8_31page726_flat, 0 -}; -/* PAGE 725 */ -struct yaz_iconv_trie_flat marc8_31page725_flat[] = { - {"\x35", 0, 0x6E0C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page725 = { - marc8_31page725_flat, 0 -}; -/* PAGE 724 */ -struct yaz_iconv_trie_flat marc8_31page724_flat[] = { - {"\x6E", 0, 0x6CAD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page724 = { - marc8_31page724_flat, 0 -}; -/* PAGE 723 */ -struct yaz_iconv_trie_flat marc8_31page723_flat[] = { - {"\x46", 0, 0x6B4E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page723 = { - marc8_31page723_flat, 0 -}; -/* PAGE 722 */ -struct yaz_iconv_trie_flat marc8_31page722_flat[] = { - {"\x33", 0, 0x6AAA}, /* East Asian ideograph */ - {"\x39", 0, 0x69DE}, /* East Asian ideograph */ - {"\x3F", 0, 0x6A65}, /* East Asian ideograph */ - {"\x45", 0, 0x67A6}, /* East Asian ideograph */ - {"\x59", 0, 0x6B05}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page722 = { - marc8_31page722_flat, 0 -}; -/* PAGE 721 */ -struct yaz_iconv_trie_flat marc8_31page721_flat[] = { - {"\x46", 0, 0x8538}, /* East Asian ideograph */ - {"\x77", 0, 0x8223}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page721 = { - marc8_31page721_flat, 0 -}; -/* PAGE 720 */ -struct yaz_iconv_trie_flat marc8_31page720_flat[] = { - {"\x68", 0, 0x69C7}, /* East Asian ideograph */ - {"\x7A", 0, 0x6922}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page720 = { - marc8_31page720_flat, 0 -}; -/* PAGE 719 */ -struct yaz_iconv_trie_flat marc8_31page719_flat[] = { - {"\x22", 0, 0x6860}, /* East Asian ideograph */ - {"\x31", 0, 0x6798}, /* East Asian ideograph */ - {"\x60", 0, 0x6764}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page719 = { - marc8_31page719_flat, 0 -}; -/* PAGE 718 */ -struct yaz_iconv_trie_flat marc8_31page718_flat[] = { - {"\x33", 0, 0x80AD}, /* East Asian ideograph (variant of EACC 2E3A33) */ - {"\x55", 0, 0x6741}, /* East Asian ideograph */ - {"\x5B", 0, 0x6859}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page718 = { - marc8_31page718_flat, 0 -}; -/* PAGE 717 */ -struct yaz_iconv_trie_flat marc8_31page717_flat[] = { - {"\x44", 0, 0x65D9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page717 = { - marc8_31page717_flat, 0 -}; -/* PAGE 716 */ -struct yaz_iconv_trie_flat marc8_31page716_flat[] = { - {"\x4A", 0, 0x64B8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page716 = { - marc8_31page716_flat, 0 -}; -/* PAGE 715 */ -struct yaz_iconv_trie_flat marc8_31page715_flat[] = { - {"\x74", 0, 0x631D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page715 = { - marc8_31page715_flat, 0 -}; -/* PAGE 714 */ -struct yaz_iconv_trie_flat marc8_31page714_flat[] = { - {"\x61", 0, 0x622C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page714 = { - marc8_31page714_flat, 0 -}; -/* PAGE 713 */ -struct yaz_iconv_trie_flat marc8_31page713_flat[] = { - {"\x62", 0, 0x5F4D}, /* East Asian ideograph (variant of EACC 222962) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page713 = { - marc8_31page713_flat, 0 -}; -/* PAGE 712 */ -struct yaz_iconv_trie_flat marc8_31page712_flat[] = { - {"\x4C", 0, 0x53A9}, /* East Asian ideograph */ - {"\x67", 0, 0x5EDB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page712 = { - marc8_31page712_flat, 0 -}; -/* PAGE 711 */ -struct yaz_iconv_trie_flat marc8_31page711_flat[] = { - {"\x32", 0, 0x5D5B}, /* East Asian ideograph */ - {"\x39", 0, 0x5D73}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page711 = { - marc8_31page711_flat, 0 -}; -/* PAGE 710 */ -struct yaz_iconv_trie_flat marc8_31page710_flat[] = { - {"\x30", 0, 0x5C53}, /* East Asian ideograph */ - {"\x3F", 0, 0x5C76}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page710 = { - marc8_31page710_flat, 0 -}; -/* PAGE 709 */ -struct yaz_iconv_trie_dir marc8_31page709_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {711, 0, 0}, - {0, 0, 0}, - {712, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {713, 0, 0}, - {714, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {715, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {716, 0, 0}, - {717, 0, 0}, - {0, 0, 0}, - {718, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {719, 0, 0}, - {720, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {721, 0, 0}, - {0, 0, 0}, - {722, 0, 0}, - {0, 0, 0}, - {723, 0, 0}, - {724, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {725, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {726, 0, 0}, - {727, 0, 0}, - {0, 0, 0}, - {728, 0, 0}, - {0, 0, 0}, - {729, 0, 0}, - {730, 0, 0}, - {0, 0, 0}, - {731, 0, 0}, - {732, 0, 0}, - {733, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {734, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {735, 0, 0}, - {736, 0, 0}, - {0, 0, 0}, - {737, 0, 0}, - {738, 0, 0}, - {0, 0, 0}, - {739, 0, 0}, - {0, 0, 0}, - {740, 0, 0}, - {741, 0, 0}, - {742, 0, 0}, - {0, 0, 0}, - {743, 0, 0}, - {744, 0, 0}, - {0, 0, 0}, - {745, 0, 0}, - {746, 0, 0}, - {0, 0, 0}, - {747, 0, 0}, - {748, 0, 0}, - {749, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {750, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {751, 0, 0}, - {752, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page709 = { - 0, marc8_31page709_dir -}; -/* PAGE 708 */ -struct yaz_iconv_trie_flat marc8_31page708_flat[] = { - {"\x6A", 0, 0x5BC3}, /* East Asian ideograph (variant of EACC 217E6A) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page708 = { - marc8_31page708_flat, 0 -}; -/* PAGE 707 */ -struct yaz_iconv_trie_flat marc8_31page707_flat[] = { - {"\x54", 0, 0x5968}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page707 = { - marc8_31page707_flat, 0 -}; -/* PAGE 706 */ -struct yaz_iconv_trie_flat marc8_31page706_flat[] = { - {"\x74", 0, 0x590A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page706 = { - marc8_31page706_flat, 0 -}; -/* PAGE 705 */ -struct yaz_iconv_trie_flat marc8_31page705_flat[] = { - {"\x3D", 0, 0x57F4}, /* East Asian ideograph (variant of EACC 21763D) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page705 = { - marc8_31page705_flat, 0 -}; -/* PAGE 704 */ -struct yaz_iconv_trie_flat marc8_31page704_flat[] = { - {"\x77", 0, 0x57D3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page704 = { - marc8_31page704_flat, 0 -}; -/* PAGE 703 */ -struct yaz_iconv_trie_flat marc8_31page703_flat[] = { - {"\x21", 0, 0x56F9}, /* East Asian ideograph (variant of EACC 217421) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page703 = { - marc8_31page703_flat, 0 -}; -/* PAGE 702 */ -struct yaz_iconv_trie_flat marc8_31page702_flat[] = { - {"\x22", 0, 0x7F83}, /* East Asian ideograph */ - {"\x26", 0, 0x6C8D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page702 = { - marc8_31page702_flat, 0 -}; -/* PAGE 701 */ -struct yaz_iconv_trie_flat marc8_31page701_flat[] = { - {"\x2E", 0, 0x4EC2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page701 = { - marc8_31page701_flat, 0 -}; -/* PAGE 700 */ -struct yaz_iconv_trie_flat marc8_31page700_flat[] = { - {"\x37", 0, 0x4FE3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page700 = { - marc8_31page700_flat, 0 -}; -/* PAGE 699 */ -struct yaz_iconv_trie_flat marc8_31page699_flat[] = { - {"\x55", 0, 0x4EB6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page699 = { - marc8_31page699_flat, 0 -}; -/* PAGE 698 */ -struct yaz_iconv_trie_flat marc8_31page698_flat[] = { - {"\x24", 0, 0x9F62}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page698 = { - marc8_31page698_flat, 0 -}; -/* PAGE 697 */ -struct yaz_iconv_trie_flat marc8_31page697_flat[] = { - {"\x3B", 0, 0x9D12}, /* East Asian ideograph */ - {"\x47", 0, 0x9D2C}, /* East Asian ideograph */ - {"\x4F", 0, 0x9D49}, /* East Asian ideograph */ - {"\x58", 0, 0x68BA}, /* East Asian ideograph */ - {"\x5C", 0, 0x9EB8}, /* East Asian ideograph (variant of EACC 27625C) */ - {"\x60", 0, 0x9EBD}, /* East Asian ideograph */ - {"\x66", 0, 0x9ED2}, /* East Asian ideograph */ - {"\x68", 0, 0x9ED9}, /* East Asian ideograph */ - {"\x78", 0, 0x9F21}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page697 = { - marc8_31page697_flat, 0 -}; -/* PAGE 696 */ -struct yaz_iconv_trie_flat marc8_31page696_flat[] = { - {"\x22", 0, 0x994B}, /* East Asian ideograph */ - {"\x30", 0, 0x99C4}, /* East Asian ideograph */ - {"\x3F", 0, 0x9A08}, /* East Asian ideograph */ - {"\x45", 0, 0x9A12}, /* East Asian ideograph */ - {"\x47", 0, 0x99C6}, /* East Asian ideograph */ - {"\x4D", 0, 0x9A13}, /* East Asian ideograph */ - {"\x59", 0, 0x81B8}, /* East Asian ideograph */ - {"\x5F", 0, 0x9AEA}, /* East Asian ideograph */ - {"\x67", 0, 0x95D8}, /* East Asian ideograph */ - {"\x68", 0, 0x9599}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page696 = { - marc8_31page696_flat, 0 -}; -/* PAGE 695 */ -struct yaz_iconv_trie_flat marc8_31page695_flat[] = { - {"\x2D", 0, 0x9771}, /* East Asian ideograph */ - {"\x44", 0, 0x9818}, /* East Asian ideograph */ - {"\x48", 0, 0x981A}, /* East Asian ideograph */ - {"\x53", 0, 0x985E}, /* East Asian ideograph */ - {"\x6F", 0, 0x991D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page695 = { - marc8_31page695_flat, 0 -}; -/* PAGE 694 */ -struct yaz_iconv_trie_flat marc8_31page694_flat[] = { - {"\x30", 0, 0x9686}, /* East Asian ideograph (variant of EACC 215F30) */ - {"\x35", 0, 0x6B92}, /* East Asian ideograph */ - {"\x3A", 0, 0x967A}, /* East Asian ideograph */ - {"\x49", 0, 0x51CB}, /* East Asian ideograph */ - {"\x4C", 0, 0x9D8F}, /* East Asian ideograph */ - {"\x50", 0, 0x96E3}, /* East Asian ideograph */ - {"\x58", 0, 0x96F6}, /* East Asian ideograph (variant of EACC 215F58 */ - {"\x62", 0, 0x7668}, /* East Asian ideograph */ - {"\x6F", 0, 0x970A}, /* East Asian ideograph */ - {"\x70", 0, 0x9752}, /* East Asian ideograph */ - {"\x71", 0, 0x9756}, /* East Asian ideograph */ - {"\x72", 0, 0x975B}, /* East Asian ideograph */ - {"\x73", 0, 0x975C}, /* East Asian ideograph (variant of EACC 215F73) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page694 = { - marc8_31page694_flat, 0 -}; -/* PAGE 693 */ -struct yaz_iconv_trie_flat marc8_31page693_flat[] = { - {"\x27", 0, 0x93AD}, /* East Asian ideograph */ - {"\x3D", 0, 0x9421}, /* East Asian ideograph */ - {"\x3F", 0, 0x922C}, /* East Asian ideograph */ - {"\x5D", 0, 0x95D4}, /* East Asian ideograph */ - {"\x69", 0, 0x95A2}, /* East Asian ideograph */ - {"\x6C", 0, 0x961D}, /* East Asian ideograph (duplicate simplified) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page693 = { - marc8_31page693_flat, 0 -}; -/* PAGE 692 */ -struct yaz_iconv_trie_flat marc8_31page692_flat[] = { - {"\x2B", 0, 0x9162}, /* East Asian ideograph */ - {"\x34", 0, 0x91B8}, /* East Asian ideograph */ - {"\x36", 0, 0x91C6}, /* East Asian ideograph */ - {"\x38", 0, 0x91C8}, /* East Asian ideograph */ - {"\x42", 0, 0x91E1}, /* East Asian ideograph */ - {"\x58", 0, 0x9234}, /* East Asian ideograph */ - {"\x65", 0, 0x8217}, /* East Asian ideograph */ - {"\x70", 0, 0x92AD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page692 = { - marc8_31page692_flat, 0 -}; -/* PAGE 691 */ -struct yaz_iconv_trie_flat marc8_31page691_flat[] = { - {"\x32", 0, 0x9038}, /* East Asian ideograph */ - {"\x39", 0, 0x9039}, /* East Asian ideograph */ - {"\x47", 0, 0x9059}, /* East Asian ideograph */ - {"\x50", 0, 0x9045}, /* East Asian ideograph */ - {"\x54", 0, 0x8F9F}, /* East Asian ideograph (duplicate simplified) */ - {"\x5B", 0, 0x8FBA}, /* East Asian ideograph */ - {"\x5E", 0, 0x961D}, /* East Asian ideograph */ - {"\x72", 0, 0x9119}, /* East Asian ideograph (variant of EACC 215C72) */ - {"\x77", 0, 0x9139}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page691 = { - marc8_31page691_flat, 0 -}; -/* PAGE 690 */ -struct yaz_iconv_trie_flat marc8_31page690_flat[] = { - {"\x29", 0, 0x8E8D}, /* East Asian ideograph */ - {"\x46", 0, 0x8F0C}, /* East Asian ideograph */ - {"\x52", 0, 0x8F42}, /* East Asian ideograph */ - {"\x55", 0, 0x8EE2}, /* East Asian ideograph */ - {"\x58", 0, 0x8EE3}, /* East Asian ideograph */ - {"\x5E", 0, 0x5F01}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page690 = { - marc8_31page690_flat, 0 -}; -/* PAGE 689 */ -struct yaz_iconv_trie_flat marc8_31page689_flat[] = { - {"\x23", 0, 0x621D}, /* East Asian ideograph */ - {"\x31", 0, 0x8CCE}, /* East Asian ideograph */ - {"\x3B", 0, 0x8D08}, /* East Asian ideograph */ - {"\x68", 0, 0x8DF5}, /* East Asian ideograph (variant of EACC 275A68) */ - {"\x7E", 0, 0x5C69}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page689 = { - marc8_31page689_flat, 0 -}; -/* PAGE 688 */ -struct yaz_iconv_trie_flat marc8_31page688_flat[] = { - {"\x36", 0, 0x8B20}, /* East Asian ideograph */ - {"\x46", 0, 0x8A33}, /* East Asian ideograph */ - {"\x4A", 0, 0x8AAD}, /* East Asian ideograph */ - {"\x4B", 0, 0x5909}, /* East Asian ideograph */ - {"\x59", 0, 0x8273}, /* East Asian ideograph */ - {"\x63", 0, 0x734F}, /* East Asian ideograph */ - {"\x64", 0, 0x72E2}, /* East Asian ideograph */ - {"\x73", 0, 0x8D2E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page688 = { - marc8_31page688_flat, 0 -}; -/* PAGE 687 */ -struct yaz_iconv_trie_flat marc8_31page687_flat[] = { - {"\x24", 0, 0x897E}, /* East Asian ideograph */ - {"\x26", 0, 0x8983}, /* East Asian ideograph (variant of EACC 215826) */ - {"\x30", 0, 0x899A}, /* East Asian ideograph */ - {"\x32", 0, 0x89B3}, /* East Asian ideograph */ - {"\x61", 0, 0x4F89}, /* East Asian ideograph */ - {"\x71", 0, 0x8AA4}, /* East Asian ideograph */ - {"\x7A", 0, 0x8ACB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page687 = { - marc8_31page687_flat, 0 -}; -/* PAGE 686 */ -struct yaz_iconv_trie_flat marc8_31page686_flat[] = { - {"\x24", 0, 0x86CD}, /* East Asian ideograph */ - {"\x36", 0, 0x877F}, /* East Asian ideograph */ - {"\x40", 0, 0x8827}, /* East Asian ideograph */ - {"\x46", 0, 0x8853}, /* East Asian ideograph */ - {"\x6C", 0, 0x523E}, /* East Asian ideograph */ - {"\x6F", 0, 0x8910}, /* East Asian ideograph (variant of EACC 21576F) */ - {"\x73", 0, 0x7ED4}, /* East Asian ideograph */ - {"\x7E", 0, 0x7E7F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page686 = { - marc8_31page686_flat, 0 -}; -/* PAGE 685 */ -struct yaz_iconv_trie_flat marc8_31page685_flat[] = { - {"\x29", 0, 0x85CD}, /* East Asian ideograph */ - {"\x2B", 0, 0x8535}, /* East Asian ideograph */ - {"\x31", 0, 0x82B8}, /* East Asian ideograph */ - {"\x32", 0, 0x7C54}, /* East Asian ideograph */ - {"\x3A", 0, 0x82A6}, /* East Asian ideograph (variant of EACC 27563A) */ - {"\x3F", 0, 0x6A98}, /* East Asian ideograph */ - {"\x47", 0, 0x51E6}, /* East Asian ideograph */ - {"\x6A", 0, 0x8708}, /* East Asian ideograph (variant of EACC 21566A) */ - {"\x71", 0, 0x873B}, /* East Asian ideograph (variant of EACC 215671) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page685 = { - marc8_31page685_flat, 0 -}; -/* PAGE 684 */ -struct yaz_iconv_trie_flat marc8_31page684_flat[] = { - {"\x21", 0, 0x8332}, /* East Asian ideograph */ - {"\x2C", 0, 0x8392}, /* East Asian ideograph */ - {"\x3A", 0, 0x83C1}, /* East Asian ideograph (variant of EACC 21553A) */ - {"\x3F", 0, 0x83BD}, /* East Asian ideograph (variant of EACC 21553F) */ - {"\x42", 0, 0x8420}, /* East Asian ideograph */ - {"\x64", 0, 0x77C7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page684 = { - marc8_31page684_flat, 0 -}; -/* PAGE 683 */ -struct yaz_iconv_trie_flat marc8_31page683_flat[] = { - {"\x22", 0, 0x81D3}, /* East Asian ideograph */ - {"\x28", 0, 0x81ED}, /* East Asian ideograph (variant of EACC 215428) */ - {"\x34", 0, 0x6319}, /* East Asian ideograph */ - {"\x37", 0, 0x820E}, /* East Asian ideograph */ - {"\x6D", 0, 0x82D3}, /* East Asian ideograph (variant of EACC 21546D) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page683 = { - marc8_31page683_flat, 0 -}; -/* PAGE 682 */ -struct yaz_iconv_trie_flat marc8_31page682_flat[] = { - {"\x3B", 0, 0x695C}, /* East Asian ideograph */ - {"\x61", 0, 0x89D2}, /* East Asian ideograph (duplicate simplified) */ - {"\x65", 0, 0x8133}, /* East Asian ideograph */ - {"\x7D", 0, 0x9ACC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page682 = { - marc8_31page682_flat, 0 -}; -/* PAGE 681 */ -struct yaz_iconv_trie_flat marc8_31page681_flat[] = { - {"\x21", 0, 0x7D9A}, /* East Asian ideograph */ - {"\x23", 0, 0x7E4A}, /* East Asian ideograph */ - {"\x27", 0, 0x6B20}, /* East Asian ideograph */ - {"\x2B", 0, 0x7F36}, /* East Asian ideograph */ - {"\x38", 0, 0x7F87}, /* East Asian ideograph */ - {"\x3E", 0, 0x7F9A}, /* East Asian ideograph (variant of EACC 21523E) */ - {"\x47", 0, 0x7FAE}, /* East Asian ideograph */ - {"\x4E", 0, 0x7FCE}, /* East Asian ideograph */ - {"\x5A", 0, 0x7FFA}, /* East Asian ideograph */ - {"\x5B", 0, 0x66DC}, /* East Asian ideograph (variant of EACC 39525B) */ - {"\x5C", 0, 0x8002}, /* East Asian ideograph */ - {"\x6E", 0, 0x8046}, /* East Asian ideograph (variant of EACC 21526E) */ - {"\x77", 0, 0x8068}, /* East Asian ideograph */ - {"\x7C", 0, 0x8080}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page681 = { - marc8_31page681_flat, 0 -}; -/* PAGE 680 */ -struct yaz_iconv_trie_flat marc8_31page680_flat[] = { - {"\x3B", 0, 0x7CF8}, /* East Asian ideograph */ - {"\x54", 0, 0x7DF4}, /* East Asian ideograph */ - {"\x5A", 0, 0x7E01}, /* East Asian ideograph */ - {"\x64", 0, 0x770C}, /* East Asian ideograph */ - {"\x6A", 0, 0x7EF7}, /* East Asian ideograph */ - {"\x6D", 0, 0x7DCF}, /* East Asian ideograph */ - {"\x6E", 0, 0x7E26}, /* East Asian ideograph */ - {"\x76", 0, 0x7E04}, /* East Asian ideograph */ - {"\x79", 0, 0x7F0B}, /* East Asian ideograph */ - {"\x7E", 0, 0x7E92}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page680 = { - marc8_31page680_flat, 0 -}; -/* PAGE 679 */ -struct yaz_iconv_trie_flat marc8_31page679_flat[] = { - {"\x36", 0, 0x7C14}, /* East Asian ideograph */ - {"\x3B", 0, 0x7C12}, /* East Asian ideograph */ - {"\x44", 0, 0x7C27}, /* East Asian ideograph (variant of EACC 215044) */ - {"\x52", 0, 0x7C56}, /* East Asian ideograph */ - {"\x61", 0, 0x7CBE}, /* East Asian ideograph */ - {"\x6C", 0, 0x7CAB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page679 = { - marc8_31page679_flat, 0 -}; -/* PAGE 678 */ -struct yaz_iconv_trie_flat marc8_31page678_flat[] = { - {"\x29", 0, 0x7A50}, /* East Asian ideograph */ - {"\x3C", 0, 0x79F0}, /* East Asian ideograph (variant of EACC 274F3C) */ - {"\x43", 0, 0x7A32}, /* East Asian ideograph */ - {"\x4C", 0, 0x7A4F}, /* East Asian ideograph */ - {"\x7B", 0, 0x7B7A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page678 = { - marc8_31page678_flat, 0 -}; -/* PAGE 677 */ -struct yaz_iconv_trie_flat marc8_31page677_flat[] = { - {"\x21", 0, 0x7B36}, /* East Asian ideograph */ - {"\x37", 0, 0x7814}, /* East Asian ideograph */ - {"\x39", 0, 0x5CFA}, /* East Asian ideograph */ - {"\x56", 0, 0x78FA}, /* East Asian ideograph */ - {"\x5B", 0, 0x783F}, /* East Asian ideograph */ - {"\x67", 0, 0x79D8}, /* East Asian ideograph */ - {"\x7B", 0, 0x7985}, /* East Asian ideograph (variant of EACC 274E7B) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page677 = { - marc8_31page677_flat, 0 -}; -/* PAGE 676 */ -struct yaz_iconv_trie_flat marc8_31page676_flat[] = { - {"\x41", 0, 0x862F}, /* East Asian ideograph */ - {"\x45", 0, 0x76F4}, /* East Asian ideograph (variant of EACC 214D45) */ - {"\x56", 0, 0x8846}, /* East Asian ideograph */ - {"\x59", 0, 0x775B}, /* East Asian ideograph (variant of EACC 214D59) */ - {"\x73", 0, 0x66B8}, /* East Asian ideograph */ - {"\x7B", 0, 0x77D7}, /* East Asian ideograph (variant of EACC 214D7B) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page676 = { - marc8_31page676_flat, 0 -}; -/* PAGE 675 */ -struct yaz_iconv_trie_flat marc8_31page675_flat[] = { - {"\x36", 0, 0x7575}, /* East Asian ideograph */ - {"\x3C", 0, 0x7573}, /* East Asian ideograph */ - {"\x51", 0, 0x75CA}, /* East Asian ideograph */ - {"\x5B", 0, 0x75F3}, /* East Asian ideograph */ - {"\x67", 0, 0x761F}, /* East Asian ideograph (variant of EACC 214C67) */ - {"\x79", 0, 0x7672}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page675 = { - marc8_31page675_flat, 0 -}; -/* PAGE 674 */ -struct yaz_iconv_trie_flat marc8_31page674_flat[] = { - {"\x2B", 0, 0x7363}, /* East Asian ideograph */ - {"\x2C", 0, 0x731F}, /* East Asian ideograph */ - {"\x3E", 0, 0x73B2}, /* East Asian ideograph (variant of EACC 214B3E) */ - {"\x63", 0, 0x749C}, /* East Asian ideograph */ - {"\x71", 0, 0x7F3E}, /* East Asian ideograph (variant of EACC 2D4B71) */ - {"\x77", 0, 0x4EC0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page674 = { - marc8_31page674_flat, 0 -}; -/* PAGE 673 */ -struct yaz_iconv_trie_flat marc8_31page673_flat[] = { - {"\x2E", 0, 0x55B6}, /* East Asian ideograph */ - {"\x38", 0, 0x71D7}, /* East Asian ideograph */ - {"\x3E", 0, 0x7235}, /* East Asian ideograph */ - {"\x45", 0, 0x5C13}, /* East Asian ideograph */ - {"\x62", 0, 0x72A0}, /* East Asian ideograph */ - {"\x74", 0, 0x731C}, /* East Asian ideograph (variant of EACC 214A74) */ - {"\x78", 0, 0x72F0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page673 = { - marc8_31page673_flat, 0 -}; -/* PAGE 672 */ -struct yaz_iconv_trie_flat marc8_31page672_flat[] = { - {"\x21", 0, 0x6CA2}, /* East Asian ideograph */ - {"\x25", 0, 0x6FB3}, /* East Asian ideograph (variant of EACC 214925) */ - {"\x2B", 0, 0x6FEB}, /* East Asian ideograph */ - {"\x2E", 0, 0x6E0B}, /* East Asian ideograph */ - {"\x31", 0, 0x6E16}, /* East Asian ideograph */ - {"\x37", 0, 0x56A0}, /* East Asian ideograph */ - {"\x40", 0, 0x6F45}, /* East Asian ideograph */ - {"\x47", 0, 0x7AC3}, /* East Asian ideograph */ - {"\x6A", 0, 0x932C}, /* East Asian ideograph */ - {"\x6B", 0, 0x83F8}, /* East Asian ideograph */ - {"\x73", 0, 0x7115}, /* East Asian ideograph */ - {"\x75", 0, 0x6427}, /* East Asian ideograph */ - {"\x77", 0, 0x7188}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page672 = { - marc8_31page672_flat, 0 -}; -/* PAGE 671 */ -struct yaz_iconv_trie_flat marc8_31page671_flat[] = { - {"\x35", 0, 0x6DA3}, /* East Asian ideograph */ - {"\x46", 0, 0x78C6}, /* East Asian ideograph */ - {"\x4A", 0, 0x6E13}, /* East Asian ideograph */ - {"\x4B", 0, 0x51D6}, /* East Asian ideograph */ - {"\x4C", 0, 0x6F91}, /* East Asian ideograph */ - {"\x57", 0, 0x6F22}, /* East Asian ideograph */ - {"\x58", 0, 0x6E80}, /* East Asian ideograph */ - {"\x5F", 0, 0x6EDE}, /* East Asian ideograph (variant of EACC 27485F) */ - {"\x66", 0, 0x6E89}, /* East Asian ideograph */ - {"\x74", 0, 0x6FF3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page671 = { - marc8_31page671_flat, 0 -}; -/* PAGE 670 */ -struct yaz_iconv_trie_flat marc8_31page670_flat[] = { - {"\x41", 0, 0x51BD}, /* East Asian ideograph */ - {"\x59", 0, 0x6D99}, /* East Asian ideograph */ - {"\x61", 0, 0x6E05}, /* East Asian ideograph */ - {"\x67", 0, 0x6DB5}, /* East Asian ideograph (variant of EACC 214767) */ - {"\x6C", 0, 0x51C5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page670 = { - marc8_31page670_flat, 0 -}; -/* PAGE 669 */ -struct yaz_iconv_trie_flat marc8_31page669_flat[] = { - {"\x21", 0, 0x6B53}, /* East Asian ideograph */ - {"\x2A", 0, 0x6B74}, /* East Asian ideograph */ - {"\x2E", 0, 0x6B81}, /* East Asian ideograph */ - {"\x38", 0, 0x6BB1}, /* East Asian ideograph */ - {"\x55", 0, 0x6C17}, /* East Asian ideograph */ - {"\x5A", 0, 0x6C32}, /* East Asian ideograph */ - {"\x76", 0, 0x6C89}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page669 = { - marc8_31page669_flat, 0 -}; -/* PAGE 668 */ -struct yaz_iconv_trie_flat marc8_31page668_flat[] = { - {"\x34", 0, 0x6994}, /* East Asian ideograph (variant of EACC 214534) */ - {"\x37", 0, 0x6804}, /* East Asian ideograph */ - {"\x44", 0, 0x69D8}, /* East Asian ideograph */ - {"\x45", 0, 0x6982}, /* East Asian ideograph */ - {"\x53", 0, 0x6955}, /* East Asian ideograph */ - {"\x56", 0, 0x6A2A}, /* East Asian ideograph */ - {"\x59", 0, 0x9792}, /* East Asian ideograph */ - {"\x61", 0, 0x691C}, /* East Asian ideograph */ - {"\x69", 0, 0x6A71}, /* East Asian ideograph */ - {"\x6C", 0, 0x6ADB}, /* East Asian ideograph (variant of EACC 21456C) */ - {"\x6D", 0, 0x823B}, /* East Asian ideograph */ - {"\x6F", 0, 0x685C}, /* East Asian ideograph */ - {"\x70", 0, 0x6A29}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page668 = { - marc8_31page668_flat, 0 -}; -/* PAGE 667 */ -struct yaz_iconv_trie_flat marc8_31page667_flat[] = { - {"\x2D", 0, 0x67A9}, /* East Asian ideograph */ - {"\x44", 0, 0x8988}, /* East Asian ideograph (Version J extension) */ - {"\x56", 0, 0x6813}, /* East Asian ideograph */ - {"\x76", 0, 0x685F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page667 = { - marc8_31page667_flat, 0 -}; -/* PAGE 666 */ -struct yaz_iconv_trie_flat marc8_31page666_flat[] = { - {"\x39", 0, 0x6674}, /* East Asian ideograph */ - {"\x47", 0, 0x66A8}, /* East Asian ideograph */ - {"\x4D", 0, 0x663F}, /* East Asian ideograph */ - {"\x52", 0, 0x66F5}, /* East Asian ideograph */ - {"\x58", 0, 0x66FD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page666 = { - marc8_31page666_flat, 0 -}; -/* PAGE 665 */ -struct yaz_iconv_trie_flat marc8_31page665_flat[] = { - {"\x35", 0, 0x6442}, /* East Asian ideograph */ - {"\x36", 0, 0x643A}, /* East Asian ideograph */ - {"\x3A", 0, 0x64B9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page665 = { - marc8_31page665_flat, 0 -}; -/* PAGE 664 */ -struct yaz_iconv_trie_flat marc8_31page664_flat[] = { - {"\x2A", 0, 0x6323}, /* East Asian ideograph */ - {"\x35", 0, 0x6368}, /* East Asian ideograph */ - {"\x46", 0, 0x6362}, /* East Asian ideograph */ - {"\x47", 0, 0x633F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page664 = { - marc8_31page664_flat, 0 -}; -/* PAGE 663 */ -struct yaz_iconv_trie_flat marc8_31page663_flat[] = { - {"\x3D", 0, 0x62DD}, /* East Asian ideograph */ - {"\x46", 0, 0x629C}, /* East Asian ideograph */ - {"\x49", 0, 0x62D0}, /* East Asian ideograph */ - {"\x53", 0, 0x627A}, /* East Asian ideograph */ - {"\x66", 0, 0x62F4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page663 = { - marc8_31page663_flat, 0 -}; -/* PAGE 662 */ -struct yaz_iconv_trie_flat marc8_31page662_flat[] = { - {"\x40", 0, 0x618E}, /* East Asian ideograph (variant of EACC 213F40) */ - {"\x4A", 0, 0x5FDC}, /* East Asian ideograph */ - {"\x4B", 0, 0x601C}, /* East Asian ideograph (variant of EACC 273F4B) */ - {"\x50", 0, 0x61CA}, /* East Asian ideograph (variant of EACC 213F50) */ - {"\x51", 0, 0x61D1}, /* East Asian ideograph */ - {"\x53", 0, 0x61F2}, /* East Asian ideograph */ - {"\x74", 0, 0x623B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page662 = { - marc8_31page662_flat, 0 -}; -/* PAGE 661 */ -struct yaz_iconv_trie_flat marc8_31page661_flat[] = { - {"\x2A", 0, 0x6035}, /* East Asian ideograph */ - {"\x40", 0, 0x6046}, /* East Asian ideograph */ - {"\x5B", 0, 0x60C5}, /* East Asian ideograph */ - {"\x7E", 0, 0x60A9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page661 = { - marc8_31page661_flat, 0 -}; -/* PAGE 660 */ -struct yaz_iconv_trie_flat marc8_31page660_flat[] = { - {"\x24", 0, 0x53A6}, /* East Asian ideograph */ - {"\x27", 0, 0x5EC3}, /* East Asian ideograph */ - {"\x2A", 0, 0x5EE3}, /* East Asian ideograph */ - {"\x2C", 0, 0x53B0}, /* East Asian ideograph */ - {"\x2F", 0, 0x5EF0}, /* East Asian ideograph */ - {"\x4B", 0, 0x5F3E}, /* East Asian ideograph */ - {"\x4C", 0, 0x5F25}, /* East Asian ideograph (variant of EACC 273D4C) */ - {"\x5C", 0, 0x5F83}, /* East Asian ideograph */ - {"\x67", 0, 0x5F84}, /* East Asian ideograph (variant of EACC 273D67) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page660 = { - marc8_31page660_flat, 0 -}; -/* PAGE 659 */ -struct yaz_iconv_trie_flat marc8_31page659_flat[] = { - {"\x21", 0, 0x5D5C}, /* East Asian ideograph */ - {"\x23", 0, 0x5CE5}, /* East Asian ideograph */ - {"\x2B", 0, 0x67C3}, /* East Asian ideograph (Version J extension) */ - {"\x2F", 0, 0x5DBA}, /* East Asian ideograph */ - {"\x32", 0, 0x5DD3}, /* East Asian ideograph */ - {"\x33", 0, 0x5DCC}, /* East Asian ideograph */ - {"\x38", 0, 0x949C}, /* East Asian ideograph */ - {"\x53", 0, 0x5E2F}, /* East Asian ideograph */ - {"\x5E", 0, 0x5E64}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page659 = { - marc8_31page659_flat, 0 -}; -/* PAGE 658 */ -struct yaz_iconv_trie_flat marc8_31page658_flat[] = { - {"\x22", 0, 0x51A6}, /* East Asian ideograph */ - {"\x31", 0, 0x5B9F}, /* East Asian ideograph */ - {"\x37", 0, 0x51A9}, /* East Asian ideograph */ - {"\x43", 0, 0x5BFE}, /* East Asian ideograph */ - {"\x52", 0, 0x8132}, /* East Asian ideograph */ - {"\x61", 0, 0x5C64}, /* East Asian ideograph */ - {"\x67", 0, 0x6B67}, /* East Asian ideograph */ - {"\x79", 0, 0x5D8C}, /* East Asian ideograph */ - {"\x7E", 0, 0x5D15}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page658 = { - marc8_31page658_flat, 0 -}; -/* PAGE 657 */ -struct yaz_iconv_trie_flat marc8_31page657_flat[] = { - {"\x2F", 0, 0x805F}, /* East Asian ideograph */ - {"\x47", 0, 0x88CA}, /* East Asian ideograph */ - {"\x49", 0, 0x5B37}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page657 = { - marc8_31page657_flat, 0 -}; -/* PAGE 656 */ -struct yaz_iconv_trie_flat marc8_31page656_flat[] = { - {"\x38", 0, 0x5942}, /* East Asian ideograph */ - {"\x3A", 0, 0x5F09}, /* East Asian ideograph */ - {"\x3E", 0, 0x5965}, /* East Asian ideograph */ - {"\x3F", 0, 0x5333}, /* East Asian ideograph */ - {"\x74", 0, 0x5B22}, /* East Asian ideograph */ - {"\x7B", 0, 0x5A2F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page656 = { - marc8_31page656_flat, 0 -}; -/* PAGE 655 */ -struct yaz_iconv_trie_flat marc8_31page655_flat[] = { - {"\x2E", 0, 0x57C0}, /* East Asian ideograph */ - {"\x50", 0, 0x5861}, /* East Asian ideograph (variant of EACC 213850) */ - {"\x50", 0, 0x5861}, /* East Asian ideograph (variant of EACC 213850) */ - {"\x53", 0, 0x586D}, /* East Asian ideograph */ - {"\x5E", 0, 0x5897}, /* East Asian ideograph */ - {"\x64", 0, 0x58C7}, /* East Asian ideograph */ - {"\x69", 0, 0x5727}, /* East Asian ideograph */ - {"\x6C", 0, 0x5841}, /* East Asian ideograph */ - {"\x70", 0, 0x58CC}, /* East Asian ideograph */ - {"\x71", 0, 0x57BB}, /* East Asian ideograph */ - {"\x7D", 0, 0x591B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page655 = { - marc8_31page655_flat, 0 -}; -/* PAGE 654 */ -struct yaz_iconv_trie_flat marc8_31page654_flat[] = { - {"\x2C", 0, 0x5606}, /* East Asian ideograph */ - {"\x2F", 0, 0x5C1C}, /* East Asian ideograph */ - {"\x49", 0, 0x5668}, /* East Asian ideograph (variant of EACC 213749) */ - {"\x4C", 0, 0x5662}, /* East Asian ideograph */ - {"\x58", 0, 0x56A5}, /* East Asian ideograph (variant of EACC 213758) */ - {"\x5A", 0, 0x53B3}, /* East Asian ideograph */ - {"\x68", 0, 0x56D8}, /* East Asian ideograph */ - {"\x6F", 0, 0x56FD}, /* East Asian ideograph */ - {"\x72", 0, 0x5186}, /* East Asian ideograph */ - {"\x73", 0, 0x56E3}, /* East Asian ideograph */ - {"\x74", 0, 0x56F3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page654 = { - marc8_31page654_flat, 0 -}; -/* PAGE 653 */ -struct yaz_iconv_trie_flat marc8_31page653_flat[] = { - {"\x22", 0, 0x8C18}, /* East Asian ideograph */ - {"\x42", 0, 0x8BF6}, /* East Asian ideograph */ - {"\x66", 0, 0x5A1A}, /* East Asian ideograph */ - {"\x68", 0, 0x5358}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page653 = { - marc8_31page653_flat, 0 -}; -/* PAGE 652 */ -struct yaz_iconv_trie_flat marc8_31page652_flat[] = { - {"\x6A", 0, 0x55EC}, /* East Asian ideograph */ - {"\x7B", 0, 0x54CC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page652 = { - marc8_31page652_flat, 0 -}; -/* PAGE 651 */ -struct yaz_iconv_trie_flat marc8_31page651_flat[] = { - {"\x21", 0, 0x5263}, /* East Asian ideograph */ - {"\x35", 0, 0x52B4}, /* East Asian ideograph */ - {"\x36", 0, 0x52F2}, /* East Asian ideograph */ - {"\x6B", 0, 0x5DF5}, /* East Asian ideograph */ - {"\x74", 0, 0x537F}, /* East Asian ideograph (variant of EACC 213474) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page651 = { - marc8_31page651_flat, 0 -}; -/* PAGE 650 */ -struct yaz_iconv_trie_flat marc8_31page650_flat[] = { - {"\x21", 0, 0x5185}, /* East Asian ideograph */ - {"\x22", 0, 0x5168}, /* East Asian ideograph (variant of EACC 213322) */ - {"\x24", 0, 0x634C}, /* East Asian ideograph (variant of EACC 2D3324) */ - {"\x3E", 0, 0x51B7}, /* East Asian ideograph (variant of EACC 21333E) */ - {"\x51", 0, 0x5204}, /* East Asian ideograph */ - {"\x54", 0, 0x82C5}, /* East Asian ideograph */ - {"\x55", 0, 0x520B}, /* East Asian ideograph */ - {"\x5B", 0, 0x522B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page650 = { - marc8_31page650_flat, 0 -}; -/* PAGE 649 */ -struct yaz_iconv_trie_flat marc8_31page649_flat[] = { - {"\x31", 0, 0x4EEE}, /* East Asian ideograph */ - {"\x48", 0, 0x50B2}, /* East Asian ideograph */ - {"\x4E", 0, 0x50E7}, /* East Asian ideograph (variant of EACC 21324E) */ - {"\x5F", 0, 0x50BB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page649 = { - marc8_31page649_flat, 0 -}; -/* PAGE 648 */ -struct yaz_iconv_trie_flat marc8_31page648_flat[] = { - {"\x2D", 0, 0x4F2B}, /* East Asian ideograph */ - {"\x30", 0, 0x4FAB}, /* East Asian ideograph */ - {"\x44", 0, 0x4F36}, /* East Asian ideograph (variant of EACC 213144) */ - {"\x4C", 0, 0x5F95}, /* East Asian ideograph */ - {"\x6A", 0, 0x723C}, /* East Asian ideograph */ - {"\x78", 0, 0x5029}, /* East Asian ideograph (variant of EACC 213178) */ - {"\x7C", 0, 0x5024}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page648 = { - marc8_31page648_flat, 0 -}; -/* PAGE 647 */ -struct yaz_iconv_trie_flat marc8_31page647_flat[] = { - {"\x21", 0, 0x58F1}, /* East Asian ideograph */ - {"\x50", 0, 0x4E8A}, /* East Asian ideograph */ - {"\x51", 0, 0x5F10}, /* East Asian ideograph */ - {"\x52", 0, 0x6275}, /* East Asian ideograph */ - {"\x57", 0, 0x4E99}, /* East Asian ideograph */ - {"\x6C", 0, 0x96E0}, /* East Asian ideograph */ - {"\x6E", 0, 0x4EE4}, /* East Asian ideograph (variant of EACC 21306E) */ - {"\x72", 0, 0x4EED}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page647 = { - marc8_31page647_flat, 0 -}; -/* PAGE 646 */ -struct yaz_iconv_trie_dir marc8_31page646_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {648, 0, 0}, - {649, 0, 0}, - {650, 0, 0}, - {651, 0, 0}, - {652, 0, 0}, - {653, 0, 0}, - {654, 0, 0}, - {655, 0, 0}, - {656, 0, 0}, - {657, 0, 0}, - {658, 0, 0}, - {659, 0, 0}, - {660, 0, 0}, - {661, 0, 0}, - {662, 0, 0}, - {663, 0, 0}, - {664, 0, 0}, - {665, 0, 0}, - {666, 0, 0}, - {667, 0, 0}, - {668, 0, 0}, - {669, 0, 0}, - {670, 0, 0}, - {671, 0, 0}, - {672, 0, 0}, - {673, 0, 0}, - {674, 0, 0}, - {675, 0, 0}, - {676, 0, 0}, - {677, 0, 0}, - {678, 0, 0}, - {679, 0, 0}, - {680, 0, 0}, - {681, 0, 0}, - {682, 0, 0}, - {683, 0, 0}, - {684, 0, 0}, - {685, 0, 0}, - {686, 0, 0}, - {687, 0, 0}, - {688, 0, 0}, - {689, 0, 0}, - {690, 0, 0}, - {691, 0, 0}, - {692, 0, 0}, - {693, 0, 0}, - {694, 0, 0}, - {695, 0, 0}, - {696, 0, 0}, - {697, 0, 0}, - {698, 0, 0}, - {699, 0, 0}, - {700, 0, 0}, - {0, 0, 0}, - {701, 0, 0}, - {0, 0, 0}, - {702, 0, 0}, - {0, 0, 0}, - {703, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {704, 0, 0}, - {705, 0, 0}, - {706, 0, 0}, - {0, 0, 0}, - {707, 0, 0}, - {708, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {709, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page646 = { - 0, marc8_31page646_dir -}; -/* PAGE 645 */ -struct yaz_iconv_trie_flat marc8_31page645_flat[] = { - {"\x2C\x4D", 0, 0x8801}, /* East Asian ideograph (variant of EACC 232C4D) */ - {"\x34\x22", 0, 0x8C2A}, /* East Asian ideograph */ - {"\x34\x7B", 0, 0x8C2B}, /* East Asian ideograph */ - {"\x35\x39", 0, 0x8B9E}, /* East Asian ideograph */ - {"\x36\x6F", 0, 0x8D4D}, /* East Asian ideograph */ - {"\x42\x36", 0, 0x949A}, /* East Asian ideograph */ - {"\x42\x70", 0, 0x94BC}, /* East Asian ideograph */ - {"\x49\x31", 0, 0x95F6}, /* East Asian ideograph */ - {"\x4E\x5C", 0, 0x97DE}, /* East Asian ideograph (variant of EACC 234E5C) */ - {"\x52\x22", 0, 0x9957}, /* East Asian ideograph */ - {"\x57\x7A", 0, 0x9BD6}, /* East Asian ideograph (variant of EACC 23577A) */ - {"\x59\x4E", 0, 0x9C3A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page645 = { - marc8_31page645_flat, 0 -}; -/* PAGE 644 */ -struct yaz_iconv_trie_flat marc8_31page644_flat[] = { - {"\x28\x4C", 0, 0x5ED0}, /* East Asian ideograph */ - {"\x60\x74", 0, 0x76B2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page644 = { - marc8_31page644_flat, 0 -}; -/* PAGE 643 */ -struct yaz_iconv_trie_flat marc8_31page643_flat[] = { - {"\x30\x4C", 0, 0x69A6}, /* East Asian ideograph */ - {"\x30\x51", 0, 0x8D30}, /* East Asian ideograph */ - {"\x33\x36", 0, 0x5B82}, /* East Asian ideograph */ - {"\x34\x21", 0, 0x5271}, /* East Asian ideograph */ - {"\x36\x66", 0, 0x5AD0}, /* East Asian ideograph */ - {"\x37\x55", 0, 0x56AE}, /* East Asian ideograph */ - {"\x37\x68", 0, 0x5EFB}, /* East Asian ideograph */ - {"\x3D\x53", 0, 0x5F66}, /* East Asian ideograph */ - {"\x3F\x6D", 0, 0x52E0}, /* East Asian ideograph */ - {"\x41\x46", 0, 0x63DB}, /* East Asian ideograph */ - {"\x45\x6D", 0, 0x6A10}, /* East Asian ideograph */ - {"\x46\x2B", 0, 0x7688}, /* East Asian ideograph */ - {"\x46\x5B", 0, 0x6C2F}, /* East Asian ideograph */ - {"\x47\x38", 0, 0x6CFA}, /* East Asian ideograph */ - {"\x47\x74", 0, 0x6E15}, /* East Asian ideograph */ - {"\x4B\x7A", 0, 0x7523}, /* East Asian ideograph */ - {"\x4C\x3C", 0, 0x7589}, /* East Asian ideograph */ - {"\x4E\x43", 0, 0x788C}, /* East Asian ideograph (variant of EACC 214E43) */ - {"\x4E\x75", 0, 0x7984}, /* East Asian ideograph */ - {"\x4F\x45", 0, 0x9896}, /* East Asian ideograph */ - {"\x51\x22", 0, 0x7D0D}, /* East Asian ideograph */ - {"\x51\x64", 0, 0x53BF}, /* East Asian ideograph */ - {"\x55\x64", 0, 0x6FDB}, /* East Asian ideograph (Version J extension) */ - {"\x56\x4B", 0, 0x865E}, /* East Asian ideograph (variant of EACC 21564B) */ - {"\x57\x46", 0, 0x672F}, /* East Asian ideograph */ - {"\x58\x37", 0, 0x8BA0}, /* East Asian ideograph */ - {"\x58\x47", 0, 0x8A25}, /* East Asian ideograph (variant of EACC 215847) */ - {"\x5D\x3E", 0, 0x9485}, /* East Asian ideograph */ - {"\x5E\x21", 0, 0x953A}, /* East Asian ideograph */ - {"\x5E\x60", 0, 0x95EB}, /* East Asian ideograph (Version J extension) */ - {"\x5F\x35", 0, 0x9668}, /* East Asian ideograph (Version J extension) */ - {"\x60\x36", 0, 0x97FF}, /* East Asian ideograph */ - {"\x60\x4E", 0, 0x984F}, /* East Asian ideograph */ - {"\x60\x64", 0, 0x9963}, /* East Asian ideograph */ - {"\x60\x6B", 0, 0x98F0}, /* East Asian ideograph */ - {"\x60\x76", 0, 0x9980}, /* East Asian ideograph */ - {"\x62\x60", 0, 0x5E7A}, /* East Asian ideograph */ - {"\x63\x24", 0, 0x9F61}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page643 = { - marc8_31page643_flat, 0 -}; -/* PAGE 642 */ -struct yaz_iconv_trie_flat marc8_31page642_flat[] = { - {"\x30\x4C", 0, 0x5E79}, /* East Asian ideograph */ - {"\x30\x78", 0, 0x5023}, /* East Asian ideograph */ - {"\x34\x7D", 0, 0x84E1}, /* East Asian ideograph */ - {"\x35\x73", 0, 0x8B3C}, /* East Asian ideograph */ - {"\x37\x7B", 0, 0x784E}, /* East Asian ideograph (Version J extension) */ - {"\x3D\x6F", 0, 0x8986}, /* East Asian ideograph */ - {"\x3E\x47", 0, 0x5379}, /* East Asian ideograph */ - {"\x3F\x24", 0, 0x614E}, /* East Asian ideograph */ - {"\x40\x4F", 0, 0x638A}, /* East Asian ideograph */ - {"\x42\x4F", 0, 0x542F}, /* East Asian ideograph (variant of EACC 27424F) */ - {"\x44\x72", 0, 0x7881}, /* East Asian ideograph */ - {"\x45\x6D", 0, 0x8263}, /* East Asian ideograph */ - {"\x46\x21", 0, 0x9A69}, /* East Asian ideograph */ - {"\x46\x29", 0, 0x4E97}, /* East Asian ideograph */ - {"\x46\x2B", 0, 0x5E30}, /* East Asian ideograph */ - {"\x47\x6F", 0, 0x51C8}, /* East Asian ideograph */ - {"\x49\x26", 0, 0x6E08}, /* East Asian ideograph */ - {"\x49\x56", 0, 0x7832}, /* East Asian ideograph */ - {"\x4A\x28", 0, 0x9DF0}, /* East Asian ideograph */ - {"\x4A\x60", 0, 0x7266}, /* East Asian ideograph */ - {"\x4C\x3C", 0, 0x7582}, /* East Asian ideograph */ - {"\x51\x6D", 0, 0x6403}, /* East Asian ideograph */ - {"\x55\x64", 0, 0x61DE}, /* East Asian ideograph */ - {"\x56\x31", 0, 0x517F}, /* East Asian ideograph */ - {"\x59\x59", 0, 0x8276}, /* East Asian ideograph */ - {"\x5E\x60", 0, 0x9586}, /* East Asian ideograph */ - {"\x5F\x34", 0, 0x9699}, /* East Asian ideograph */ - {"\x5F\x35", 0, 0x6B9E}, /* East Asian ideograph */ - {"\x5F\x49", 0, 0x7431}, /* East Asian ideograph */ - {"\x61\x4C", 0, 0x99C5}, /* East Asian ideograph */ - {"\x61\x79", 0, 0x5C1F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page642 = { - marc8_31page642_flat, 0 -}; -/* PAGE 641 */ -struct yaz_iconv_trie_flat marc8_31page641_flat[] = { - {"\x2D\x44", 0, 0x8842}, /* East Asian ideograph */ - {"\x39\x22", 0, 0x8DB5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page641 = { - marc8_31page641_flat, 0 -}; -/* PAGE 640 */ -struct yaz_iconv_trie_flat marc8_31page640_flat[] = { - {"\x28\x4C", 0, 0x53A9}, /* East Asian ideograph (variant of EACC 4C284C) */ - {"\x2F\x7C", 0, 0x64C0}, /* East Asian ideograph */ - {"\x3B\x7D", 0, 0x67B1}, /* East Asian ideograph */ - {"\x40\x34", 0, 0x6855}, /* East Asian ideograph */ - {"\x6A\x7C", 0, 0x7BEA}, /* East Asian ideograph */ - {"\x78\x7D", 0, 0x80FC}, /* East Asian ideograph */ - {"\x79\x70", 0, 0x81D5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page640 = { - marc8_31page640_flat, 0 -}; -/* PAGE 639 */ -struct yaz_iconv_trie_flat marc8_31page639_flat[] = { - {"\x6B", 0, 0x60A4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page639 = { - marc8_31page639_flat, 0 -}; -/* PAGE 638 */ -struct yaz_iconv_trie_flat marc8_31page638_flat[] = { - {"\x2F", 0, 0x521F}, /* East Asian ideograph */ - {"\x33", 0, 0x5259}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page638 = { - marc8_31page638_flat, 0 -}; -/* PAGE 637 */ -struct yaz_iconv_trie_flat marc8_31page637_flat[] = { - {"\x23", 0, 0x9BFD}, /* East Asian ideograph (variant of EACC 216223) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page637 = { - marc8_31page637_flat, 0 -}; -/* PAGE 636 */ -struct yaz_iconv_trie_flat marc8_31page636_flat[] = { - {"\x67", 0, 0x9B2A}, /* East Asian ideograph */ - {"\x79", 0, 0x5C20}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page636 = { - marc8_31page636_flat, 0 -}; -/* PAGE 635 */ -struct yaz_iconv_trie_flat marc8_31page635_flat[] = { - {"\x74", 0, 0x55B0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page635 = { - marc8_31page635_flat, 0 -}; -/* PAGE 634 */ -struct yaz_iconv_trie_flat marc8_31page634_flat[] = { - {"\x49", 0, 0x5F6B}, /* East Asian ideograph */ - {"\x68", 0, 0x8987}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page634 = { - marc8_31page634_flat, 0 -}; -/* PAGE 633 */ -struct yaz_iconv_trie_flat marc8_31page633_flat[] = { - {"\x2F", 0, 0x5277}, /* East Asian ideograph */ - {"\x3D", 0, 0x9295}, /* East Asian ideograph */ - {"\x42", 0, 0x9274}, /* East Asian ideograph */ - {"\x6F", 0, 0x7A7D}, /* East Asian ideograph */ - {"\x71", 0, 0x5742}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page633 = { - marc8_31page633_flat, 0 -}; -/* PAGE 632 */ -struct yaz_iconv_trie_flat marc8_31page632_flat[] = { - {"\x23", 0, 0x91BB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page632 = { - marc8_31page632_flat, 0 -}; -/* PAGE 631 */ -struct yaz_iconv_trie_flat marc8_31page631_flat[] = { - {"\x2F", 0, 0x58F2}, /* East Asian ideograph */ - {"\x36", 0, 0x983C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page631 = { - marc8_31page631_flat, 0 -}; -/* PAGE 630 */ -struct yaz_iconv_trie_flat marc8_31page630_flat[] = { - {"\x3F", 0, 0x8A3C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page630 = { - marc8_31page630_flat, 0 -}; -/* PAGE 629 */ -struct yaz_iconv_trie_flat marc8_31page629_flat[] = { - {"\x21", 0, 0x97E4}, /* East Asian ideograph */ - {"\x29", 0, 0x69FB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page629 = { - marc8_31page629_flat, 0 -}; -/* PAGE 628 */ -struct yaz_iconv_trie_flat marc8_31page628_flat[] = { - {"\x73", 0, 0x7DAF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page628 = { - marc8_31page628_flat, 0 -}; -/* PAGE 627 */ -struct yaz_iconv_trie_flat marc8_31page627_flat[] = { - {"\x3C", 0, 0x56CC}, /* East Asian ideograph */ - {"\x43", 0, 0x4E55}, /* East Asian ideograph */ - {"\x52", 0, 0x87A1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page627 = { - marc8_31page627_flat, 0 -}; -/* PAGE 626 */ -struct yaz_iconv_trie_flat marc8_31page626_flat[] = { - {"\x3C", 0, 0x5D0B}, /* East Asian ideograph */ - {"\x64", 0, 0x6726}, /* East Asian ideograph */ - {"\x68", 0, 0x83DD}, /* East Asian ideograph */ - {"\x77", 0, 0x854B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page626 = { - marc8_31page626_flat, 0 -}; -/* PAGE 625 */ -struct yaz_iconv_trie_flat marc8_31page625_flat[] = { - {"\x77", 0, 0x85A6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page625 = { - marc8_31page625_flat, 0 -}; -/* PAGE 624 */ -struct yaz_iconv_trie_flat marc8_31page624_flat[] = { - {"\x30", 0, 0x5BD8}, /* East Asian ideograph */ - {"\x5B", 0, 0x66DC}, /* East Asian ideograph */ - {"\x6B", 0, 0x7094}, /* East Asian ideograph */ - {"\x6B", 0, 0x7094}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page624 = { - marc8_31page624_flat, 0 -}; -/* PAGE 623 */ -struct yaz_iconv_trie_flat marc8_31page623_flat[] = { - {"\x79", 0, 0x7D75}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page623 = { - marc8_31page623_flat, 0 -}; -/* PAGE 622 */ -struct yaz_iconv_trie_flat marc8_31page622_flat[] = { - {"\x50", 0, 0x7BED}, /* East Asian ideograph */ - {"\x5B", 0, 0x9B3B}, /* East Asian ideograph */ - {"\x63", 0, 0x9939}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page622 = { - marc8_31page622_flat, 0 -}; -/* PAGE 621 */ -struct yaz_iconv_trie_flat marc8_31page621_flat[] = { - {"\x2D", 0, 0x7546}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page621 = { - marc8_31page621_flat, 0 -}; -/* PAGE 620 */ -struct yaz_iconv_trie_flat marc8_31page620_flat[] = { - {"\x60", 0, 0x9AE6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page620 = { - marc8_31page620_flat, 0 -}; -/* PAGE 619 */ -struct yaz_iconv_trie_flat marc8_31page619_flat[] = { - {"\x28", 0, 0x6D5C}, /* East Asian ideograph */ - {"\x44", 0, 0x6B12}, /* East Asian ideograph */ - {"\x56", 0, 0x792E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page619 = { - marc8_31page619_flat, 0 -}; -/* PAGE 618 */ -struct yaz_iconv_trie_flat marc8_31page618_flat[] = { - {"\x3B", 0, 0x9061}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page618 = { - marc8_31page618_flat, 0 -}; -/* PAGE 617 */ -struct yaz_iconv_trie_flat marc8_31page617_flat[] = { - {"\x35", 0, 0x6C3E}, /* East Asian ideograph */ - {"\x6F", 0, 0x51C0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page617 = { - marc8_31page617_flat, 0 -}; -/* PAGE 616 */ -struct yaz_iconv_trie_flat marc8_31page616_flat[] = { - {"\x34", 0, 0x6B96}, /* East Asian ideograph (variant of EACC 214634) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page616 = { - marc8_31page616_flat, 0 -}; -/* PAGE 615 */ -struct yaz_iconv_trie_flat marc8_31page615_flat[] = { - {"\x6D", 0, 0x826B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page615 = { - marc8_31page615_flat, 0 -}; -/* PAGE 614 */ -struct yaz_iconv_trie_flat marc8_31page614_flat[] = { - {"\x44", 0, 0x8988}, /* East Asian ideograph */ - {"\x7D", 0, 0x6AC2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page614 = { - marc8_31page614_flat, 0 -}; -/* PAGE 613 */ -struct yaz_iconv_trie_flat marc8_31page613_flat[] = { - {"\x30", 0, 0x6644}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page613 = { - marc8_31page613_flat, 0 -}; -/* PAGE 612 */ -struct yaz_iconv_trie_flat marc8_31page612_flat[] = { - {"\x43", 0, 0x4FF2}, /* East Asian ideograph */ - {"\x4F", 0, 0x5554}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page612 = { - marc8_31page612_flat, 0 -}; -/* PAGE 611 */ -struct yaz_iconv_trie_flat marc8_31page611_flat[] = { - {"\x7C", 0, 0x62E0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page611 = { - marc8_31page611_flat, 0 -}; -/* PAGE 610 */ -struct yaz_iconv_trie_flat marc8_31page610_flat[] = { - {"\x22", 0, 0x6443}, /* East Asian ideograph */ - {"\x42", 0, 0x646D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page610 = { - marc8_31page610_flat, 0 -}; -/* PAGE 609 */ -struct yaz_iconv_trie_flat marc8_31page609_flat[] = { - {"\x47", 0, 0x8CC9}, /* East Asian ideograph */ - {"\x4C", 0, 0x6142}, /* East Asian ideograph */ - {"\x61", 0, 0x60AA}, /* East Asian ideograph */ - {"\x7D", 0, 0x7609}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page609 = { - marc8_31page609_flat, 0 -}; -/* PAGE 608 */ -struct yaz_iconv_trie_flat marc8_31page608_flat[] = { - {"\x6F", 0, 0x8907}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page608 = { - marc8_31page608_flat, 0 -}; -/* PAGE 607 */ -struct yaz_iconv_trie_flat marc8_31page607_flat[] = { - {"\x52", 0, 0x8D26}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page607 = { - marc8_31page607_flat, 0 -}; -/* PAGE 606 */ -struct yaz_iconv_trie_flat marc8_31page606_flat[] = { - {"\x39", 0, 0x5BF3}, /* East Asian ideograph */ - {"\x6E", 0, 0x5C97}, /* East Asian ideograph */ - {"\x78", 0, 0x5CC4}, /* East Asian ideograph (duplicate simplified) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page606 = { - marc8_31page606_flat, 0 -}; -/* PAGE 605 */ -struct yaz_iconv_trie_flat marc8_31page605_flat[] = { - {"\x44", 0, 0x59B3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page605 = { - marc8_31page605_flat, 0 -}; -/* PAGE 604 */ -struct yaz_iconv_trie_flat marc8_31page604_flat[] = { - {"\x70", 0, 0x56F2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page604 = { - marc8_31page604_flat, 0 -}; -/* PAGE 603 */ -struct yaz_iconv_trie_flat marc8_31page603_flat[] = { - {"\x5A", 0, 0x8AE0}, /* East Asian ideograph */ - {"\x5E", 0, 0x559E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page603 = { - marc8_31page603_flat, 0 -}; -/* PAGE 602 */ -struct yaz_iconv_trie_flat marc8_31page602_flat[] = { - {"\x73", 0, 0x5611}, /* East Asian ideograph */ - {"\x77", 0, 0x9FA2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page602 = { - marc8_31page602_flat, 0 -}; -/* PAGE 601 */ -struct yaz_iconv_trie_flat marc8_31page601_flat[] = { - {"\x28", 0, 0x5227}, /* East Asian ideograph */ - {"\x39", 0, 0x61C3}, /* East Asian ideograph */ - {"\x5B", 0, 0x965E}, /* East Asian ideograph */ - {"\x60", 0, 0x604A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page601 = { - marc8_31page601_flat, 0 -}; -/* PAGE 600 */ -struct yaz_iconv_trie_flat marc8_31page600_flat[] = { - {"\x46", 0, 0x4F1D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page600 = { - marc8_31page600_flat, 0 -}; -/* PAGE 599 */ -struct yaz_iconv_trie_flat marc8_31page599_flat[] = { - {"\x2D", 0, 0x534B}, /* East Asian ideograph */ - {"\x3A", 0, 0x5EFC}, /* East Asian ideograph */ - {"\x4C", 0, 0x4E81}, /* East Asian ideograph */ - {"\x52", 0, 0x65BC}, /* East Asian ideograph */ - {"\x54", 0, 0x4F0D}, /* East Asian ideograph */ - {"\x78", 0, 0x9AE3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page599 = { - marc8_31page599_flat, 0 -}; -/* PAGE 598 */ -struct yaz_iconv_trie_dir marc8_31page598_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {600, 0, 0}, - {0, 0, 0}, - {601, 0, 0}, - {0, 0, 0}, - {602, 0, 0}, - {603, 0, 0}, - {604, 0, 0}, - {605, 0, 0}, - {0, 0, 0}, - {606, 0, 0}, - {0, 0, 0}, - {607, 0, 0}, - {608, 0, 0}, - {609, 0, 0}, - {610, 0, 0}, - {0, 0, 0}, - {611, 0, 0}, - {612, 0, 0}, - {613, 0, 0}, - {614, 0, 0}, - {615, 0, 0}, - {616, 0, 0}, - {617, 0, 0}, - {618, 0, 0}, - {619, 0, 0}, - {620, 0, 0}, - {621, 0, 0}, - {0, 0, 0}, - {622, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {623, 0, 0}, - {624, 0, 0}, - {625, 0, 0}, - {0, 0, 0}, - {626, 0, 0}, - {627, 0, 0}, - {628, 0, 0}, - {629, 0, 0}, - {630, 0, 0}, - {631, 0, 0}, - {632, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {633, 0, 0}, - {634, 0, 0}, - {635, 0, 0}, - {636, 0, 0}, - {637, 0, 0}, - {638, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {639, 0, 0}, - {640, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page598 = { - 0, marc8_31page598_dir -}; -/* PAGE 597 */ -struct yaz_iconv_trie_flat marc8_31page597_flat[] = { - {"\x34\x4D", 0, 0x8B5B}, /* East Asian ideograph */ - {"\x34\x7B", 0, 0x8B2D}, /* East Asian ideograph */ - {"\x41\x56", 0, 0x91BE}, /* East Asian ideograph */ - {"\x50\x53", 0, 0x98C8}, /* East Asian ideograph */ - {"\x57\x39", 0, 0x9C76}, /* East Asian ideograph */ - {"\x5D\x5C", 0, 0x8C8E}, /* East Asian ideograph */ - {"\x5E\x76", 0, 0x82BE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page597 = { - marc8_31page597_flat, 0 -}; -/* PAGE 596 */ -struct yaz_iconv_trie_flat marc8_31page596_flat[] = { - {"\x24\x53", 0, 0x5CBD}, /* East Asian ideograph */ - {"\x38\x75", 0, 0x5FDE}, /* East Asian ideograph */ - {"\x3A\x5B", 0, 0x572C}, /* East Asian ideograph */ - {"\x3E\x38", 0, 0x7BDA}, /* East Asian ideograph */ - {"\x41\x38", 0, 0x8022}, /* East Asian ideograph */ - {"\x41\x77", 0, 0x8264}, /* East Asian ideograph */ - {"\x49\x2F", 0, 0x6D34}, /* East Asian ideograph */ - {"\x51\x75", 0, 0x7162}, /* East Asian ideograph */ - {"\x54\x52", 0, 0x7118}, /* East Asian ideograph */ - {"\x5D\x6B", 0, 0x756D}, /* East Asian ideograph */ - {"\x5E\x3B", 0, 0x80AC}, /* East Asian ideograph */ - {"\x5E\x47", 0, 0x75FE}, /* East Asian ideograph */ - {"\x61\x26", 0, 0x6900}, /* East Asian ideograph */ - {"\x66\x22", 0, 0x589D}, /* East Asian ideograph */ - {"\x68\x2A", 0, 0x7C7C}, /* East Asian ideograph */ - {"\x71\x5A", 0, 0x7E1A}, /* East Asian ideograph */ - {"\x74\x31", 0, 0x58DC}, /* East Asian ideograph */ - {"\x78\x2A", 0, 0x90C5}, /* East Asian ideograph */ - {"\x7D\x24", 0, 0x83C7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page596 = { - marc8_31page596_flat, 0 -}; -/* PAGE 595 */ -struct yaz_iconv_trie_flat marc8_31page595_flat[] = { - {"\x45", 0, 0x9F67}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page595 = { - marc8_31page595_flat, 0 -}; -/* PAGE 594 */ -struct yaz_iconv_trie_flat marc8_31page594_flat[] = { - {"\x6B", 0, 0x6031}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page594 = { - marc8_31page594_flat, 0 -}; -/* PAGE 593 */ -struct yaz_iconv_trie_flat marc8_31page593_flat[] = { - {"\x33", 0, 0x524F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page593 = { - marc8_31page593_flat, 0 -}; -/* PAGE 592 */ -struct yaz_iconv_trie_flat marc8_31page592_flat[] = { - {"\x21", 0, 0x6B6F}, /* East Asian ideograph */ - {"\x2B", 0, 0x7ADC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page592 = { - marc8_31page592_flat, 0 -}; -/* PAGE 591 */ -struct yaz_iconv_trie_flat marc8_31page591_flat[] = { - {"\x5E", 0, 0x9EAA}, /* East Asian ideograph */ - {"\x5F", 0, 0x8534}, /* East Asian ideograph */ - {"\x75", 0, 0x76BC}, /* East Asian ideograph */ - {"\x7D", 0, 0x6589}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page591 = { - marc8_31page591_flat, 0 -}; -/* PAGE 590 */ -struct yaz_iconv_trie_flat marc8_31page590_flat[] = { - {"\x5A", 0, 0x8EB0}, /* East Asian ideograph */ - {"\x62", 0, 0x9A23}, /* East Asian ideograph */ - {"\x79", 0, 0x9C7B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page590 = { - marc8_31page590_flat, 0 -}; -/* PAGE 589 */ -struct yaz_iconv_trie_flat marc8_31page589_flat[] = { - {"\x54", 0, 0x985B}, /* East Asian ideograph */ - {"\x58", 0, 0x9855}, /* East Asian ideograph */ - {"\x62", 0, 0x98C3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page589 = { - marc8_31page589_flat, 0 -}; -/* PAGE 588 */ -struct yaz_iconv_trie_flat marc8_31page588_flat[] = { - {"\x34", 0, 0x90C4}, /* East Asian ideograph */ - {"\x3D", 0, 0x96B7}, /* East Asian ideograph */ - {"\x43", 0, 0x9D08}, /* East Asian ideograph */ - {"\x49", 0, 0x9D70}, /* East Asian ideograph */ - {"\x73", 0, 0x9759}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page588 = { - marc8_31page588_flat, 0 -}; -/* PAGE 587 */ -struct yaz_iconv_trie_flat marc8_31page587_flat[] = { - {"\x21", 0, 0x9221}, /* East Asian ideograph */ - {"\x2F", 0, 0x5257}, /* East Asian ideograph */ - {"\x3D", 0, 0x9244}, /* East Asian ideograph */ - {"\x42", 0, 0x9452}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page587 = { - marc8_31page587_flat, 0 -}; -/* PAGE 586 */ -struct yaz_iconv_trie_flat marc8_31page586_flat[] = { - {"\x23", 0, 0x8A76}, /* East Asian ideograph */ - {"\x3B", 0, 0x57DC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page586 = { - marc8_31page586_flat, 0 -}; -/* PAGE 585 */ -struct yaz_iconv_trie_flat marc8_31page585_flat[] = { - {"\x70", 0, 0x5EF8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page585 = { - marc8_31page585_flat, 0 -}; -/* PAGE 584 */ -struct yaz_iconv_trie_flat marc8_31page584_flat[] = { - {"\x7B", 0, 0x8E28}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page584 = { - marc8_31page584_flat, 0 -}; -/* PAGE 583 */ -struct yaz_iconv_trie_flat marc8_31page583_flat[] = { - {"\x41", 0, 0x54D7}, /* East Asian ideograph */ - {"\x58", 0, 0x8C4A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page583 = { - marc8_31page583_flat, 0 -}; -/* PAGE 582 */ -struct yaz_iconv_trie_flat marc8_31page582_flat[] = { - {"\x21", 0, 0x97C8}, /* East Asian ideograph */ - {"\x30", 0, 0x658D}, /* East Asian ideograph */ - {"\x34", 0, 0x89E7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page582 = { - marc8_31page582_flat, 0 -}; -/* PAGE 581 */ -struct yaz_iconv_trie_flat marc8_31page581_flat[] = { - {"\x2E", 0, 0x880E}, /* East Asian ideograph */ - {"\x38", 0, 0x880F}, /* East Asian ideograph */ - {"\x60", 0, 0x88E0}, /* East Asian ideograph */ - {"\x72", 0, 0x8943}, /* East Asian ideograph */ - {"\x73", 0, 0x88B4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page581 = { - marc8_31page581_flat, 0 -}; -/* PAGE 580 */ -struct yaz_iconv_trie_flat marc8_31page580_flat[] = { - {"\x35", 0, 0x85AC}, /* East Asian ideograph */ - {"\x52", 0, 0x87C1}, /* East Asian ideograph */ - {"\x7C", 0, 0x8671}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page580 = { - marc8_31page580_flat, 0 -}; -/* PAGE 579 */ -struct yaz_iconv_trie_flat marc8_31page579_flat[] = { - {"\x61", 0, 0x8462}, /* East Asian ideograph */ - {"\x68", 0, 0x8406}, /* East Asian ideograph */ - {"\x77", 0, 0x8602}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page579 = { - marc8_31page579_flat, 0 -}; -/* PAGE 578 */ -struct yaz_iconv_trie_flat marc8_31page578_flat[] = { - {"\x45", 0, 0x67C1}, /* East Asian ideograph */ - {"\x46", 0, 0x8221}, /* East Asian ideograph */ - {"\x61", 0, 0x6CD6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page578 = { - marc8_31page578_flat, 0 -}; -/* PAGE 577 */ -struct yaz_iconv_trie_flat marc8_31page577_flat[] = { - {"\x33", 0, 0x80BB}, /* East Asian ideograph */ - {"\x47", 0, 0x81D9}, /* East Asian ideograph */ - {"\x7D", 0, 0x9AD5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page577 = { - marc8_31page577_flat, 0 -}; -/* PAGE 576 */ -struct yaz_iconv_trie_flat marc8_31page576_flat[] = { - {"\x23", 0, 0x7E8E}, /* East Asian ideograph */ - {"\x28", 0, 0x94B5}, /* East Asian ideograph */ - {"\x30", 0, 0x7F6E}, /* East Asian ideograph (variant of EACC 215230) */ - {"\x34", 0, 0x99E1}, /* East Asian ideograph */ - {"\x38", 0, 0x8989}, /* East Asian ideograph */ - {"\x3F", 0, 0x8B71}, /* East Asian ideograph */ - {"\x59", 0, 0x7E59}, /* East Asian ideograph */ - {"\x5B", 0, 0x71FF}, /* East Asian ideograph */ - {"\x76", 0, 0x8061}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page576 = { - marc8_31page576_flat, 0 -}; -/* PAGE 575 */ -struct yaz_iconv_trie_flat marc8_31page575_flat[] = { - {"\x2E", 0, 0x7E8D}, /* East Asian ideograph */ - {"\x3C", 0, 0x7D4C}, /* East Asian ideograph */ - {"\x47", 0, 0x7EEE}, /* East Asian ideograph */ - {"\x4C", 0, 0x7DD1}, /* East Asian ideograph */ - {"\x5C", 0, 0x7DAB}, /* East Asian ideograph */ - {"\x6B", 0, 0x7DD0}, /* East Asian ideograph */ - {"\x6D", 0, 0x6374}, /* East Asian ideograph */ - {"\x72", 0, 0x7D89}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page575 = { - marc8_31page575_flat, 0 -}; -/* PAGE 574 */ -struct yaz_iconv_trie_flat marc8_31page574_flat[] = { - {"\x2A", 0, 0x9257}, /* East Asian ideograph */ - {"\x2B", 0, 0x724B}, /* East Asian ideograph */ - {"\x65", 0, 0x7A45}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page574 = { - marc8_31page574_flat, 0 -}; -/* PAGE 573 */ -struct yaz_iconv_trie_flat marc8_31page573_flat[] = { - {"\x37", 0, 0x5EE9}, /* East Asian ideograph */ - {"\x3A", 0, 0x7A49}, /* East Asian ideograph */ - {"\x59", 0, 0x7A93}, /* East Asian ideograph */ - {"\x5E", 0, 0x7A91}, /* East Asian ideograph */ - {"\x71", 0, 0x54B2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page573 = { - marc8_31page573_flat, 0 -}; -/* PAGE 572 */ -struct yaz_iconv_trie_flat marc8_31page572_flat[] = { - {"\x37", 0, 0x784E}, /* East Asian ideograph */ - {"\x73", 0, 0x79A5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page572 = { - marc8_31page572_flat, 0 -}; -/* PAGE 571 */ -struct yaz_iconv_trie_flat marc8_31page571_flat[] = { - {"\x2C", 0, 0x754D}, /* East Asian ideograph */ - {"\x36", 0, 0x753B}, /* East Asian ideograph (variant of EACC 274C36) */ - {"\x37", 0, 0x8E6F}, /* East Asian ideograph */ - {"\x3E", 0, 0x8E08}, /* East Asian ideograph */ - {"\x7B", 0, 0x767A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page571 = { - marc8_31page571_flat, 0 -}; -/* PAGE 570 */ -struct yaz_iconv_trie_flat marc8_31page570_flat[] = { - {"\x28", 0, 0x91BC}, /* East Asian ideograph */ - {"\x58", 0, 0x89DD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page570 = { - marc8_31page570_flat, 0 -}; -/* PAGE 569 */ -struct yaz_iconv_trie_flat marc8_31page569_flat[] = { - {"\x2E", 0, 0x6F81}, /* East Asian ideograph */ - {"\x4A", 0, 0x70D6}, /* East Asian ideograph */ - {"\x68", 0, 0x7133}, /* East Asian ideograph */ - {"\x6A", 0, 0x934A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page569 = { - marc8_31page569_flat, 0 -}; -/* PAGE 568 */ -struct yaz_iconv_trie_flat marc8_31page568_flat[] = { - {"\x3B", 0, 0x6CDD}, /* East Asian ideograph */ - {"\x5E", 0, 0x67D2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page568 = { - marc8_31page568_flat, 0 -}; -/* PAGE 567 */ -struct yaz_iconv_trie_flat marc8_31page567_flat[] = { - {"\x29", 0, 0x6E2B}, /* East Asian ideograph */ - {"\x30", 0, 0x6E5F}, /* East Asian ideograph */ - {"\x40", 0, 0x6D1A}, /* East Asian ideograph */ - {"\x4A", 0, 0x6D1F}, /* East Asian ideograph */ - {"\x55", 0, 0x6FEC}, /* East Asian ideograph */ - {"\x5E", 0, 0x6FB9}, /* East Asian ideograph */ - {"\x5F", 0, 0x60BD}, /* East Asian ideograph */ - {"\x6F", 0, 0x6D44}, /* East Asian ideograph */ - {"\x70", 0, 0x5A6C}, /* East Asian ideograph */ - {"\x7B", 0, 0x904A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page567 = { - marc8_31page567_flat, 0 -}; -/* PAGE 566 */ -struct yaz_iconv_trie_flat marc8_31page566_flat[] = { - {"\x21", 0, 0x8B99}, /* East Asian ideograph */ - {"\x33", 0, 0x6B8B}, /* East Asian ideograph (variant of EACC 274633) */ - {"\x3C", 0, 0x6BBB}, /* East Asian ideograph */ - {"\x65", 0, 0x6C61}, /* East Asian ideograph */ - {"\x74", 0, 0x76C5}, /* East Asian ideograph */ - {"\x7A", 0, 0x6CA1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page566 = { - marc8_31page566_flat, 0 -}; -/* PAGE 565 */ -struct yaz_iconv_trie_flat marc8_31page565_flat[] = { - {"\x27", 0, 0x6918}, /* East Asian ideograph */ - {"\x50", 0, 0x7F47}, /* East Asian ideograph */ - {"\x6D", 0, 0x826A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page565 = { - marc8_31page565_flat, 0 -}; -/* PAGE 564 */ -struct yaz_iconv_trie_flat marc8_31page564_flat[] = { - {"\x25", 0, 0x76C3}, /* East Asian ideograph */ - {"\x49", 0, 0x6144}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page564 = { - marc8_31page564_flat, 0 -}; -/* PAGE 563 */ -struct yaz_iconv_trie_flat marc8_31page563_flat[] = { - {"\x2F", 0, 0x664B}, /* East Asian ideograph */ - {"\x3E", 0, 0x95C7}, /* East Asian ideograph */ - {"\x42", 0, 0x7156}, /* East Asian ideograph */ - {"\x57", 0, 0x6702}, /* East Asian ideograph */ - {"\x69", 0, 0x5932}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page563 = { - marc8_31page563_flat, 0 -}; -/* PAGE 562 */ -struct yaz_iconv_trie_flat marc8_31page562_flat[] = { - {"\x2A", 0, 0x62E1}, /* East Asian ideograph */ - {"\x3D", 0, 0x53CE}, /* East Asian ideograph */ - {"\x43", 0, 0x52B9}, /* East Asian ideograph */ - {"\x44", 0, 0x6559}, /* East Asian ideograph */ - {"\x56", 0, 0x6B5B}, /* East Asian ideograph */ - {"\x60", 0, 0x89D4}, /* East Asian ideograph */ - {"\x77", 0, 0x65EF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page562 = { - marc8_31page562_flat, 0 -}; -/* PAGE 561 */ -struct yaz_iconv_trie_flat marc8_31page561_flat[] = { - {"\x31", 0, 0x6425}, /* East Asian ideograph */ - {"\x7E", 0, 0x629E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page561 = { - marc8_31page561_flat, 0 -}; -/* PAGE 560 */ -struct yaz_iconv_trie_flat marc8_31page560_flat[] = { - {"\x45", 0, 0x629B}, /* East Asian ideograph */ - {"\x50", 0, 0x62D5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page560 = { - marc8_31page560_flat, 0 -}; -/* PAGE 559 */ -struct yaz_iconv_trie_flat marc8_31page559_flat[] = { - {"\x22", 0, 0x6168}, /* East Asian ideograph (variant of EACC 213F22) */ - {"\x24", 0, 0x7718}, /* East Asian ideograph */ - {"\x3F", 0, 0x51F4}, /* East Asian ideograph */ - {"\x55", 0, 0x5B3E}, /* East Asian ideograph */ - {"\x58", 0, 0x61F4}, /* East Asian ideograph */ - {"\x5B", 0, 0x6133}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page559 = { - marc8_31page559_flat, 0 -}; -/* PAGE 558 */ -struct yaz_iconv_trie_flat marc8_31page558_flat[] = { - {"\x7D", 0, 0x7652}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page558 = { - marc8_31page558_flat, 0 -}; -/* PAGE 557 */ -struct yaz_iconv_trie_flat marc8_31page557_flat[] = { - {"\x28", 0, 0x53A8}, /* East Asian ideograph */ - {"\x2A", 0, 0x5E83}, /* East Asian ideograph */ - {"\x2F", 0, 0x5E81}, /* East Asian ideograph */ - {"\x42", 0, 0x7D43}, /* East Asian ideograph */ - {"\x48", 0, 0x5F3A}, /* East Asian ideograph */ - {"\x4C", 0, 0x7030}, /* East Asian ideograph */ - {"\x54", 0, 0x4EFD}, /* East Asian ideograph */ - {"\x75", 0, 0x5FB3}, /* East Asian ideograph */ - {"\x75", 0, 0x5FB3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page557 = { - marc8_31page557_flat, 0 -}; -/* PAGE 556 */ -struct yaz_iconv_trie_flat marc8_31page556_flat[] = { - {"\x21", 0, 0x7895}, /* East Asian ideograph */ - {"\x52", 0, 0x8CEC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page556 = { - marc8_31page556_flat, 0 -}; -/* PAGE 555 */ -struct yaz_iconv_trie_flat marc8_31page555_flat[] = { - {"\x2F", 0, 0x9029}, /* East Asian ideograph */ - {"\x44", 0, 0x5B2D}, /* East Asian ideograph */ - {"\x63", 0, 0x59C9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page555 = { - marc8_31page555_flat, 0 -}; -/* PAGE 554 */ -struct yaz_iconv_trie_flat marc8_31page554_flat[] = { - {"\x6E", 0, 0x576F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page554 = { - marc8_31page554_flat, 0 -}; -/* PAGE 553 */ -struct yaz_iconv_trie_flat marc8_31page553_flat[] = { - {"\x68", 0, 0x8FF4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page553 = { - marc8_31page553_flat, 0 -}; -/* PAGE 552 */ -struct yaz_iconv_trie_flat marc8_31page552_flat[] = { - {"\x23", 0, 0x9F69}, /* East Asian ideograph */ - {"\x2A", 0, 0x9B28}, /* East Asian ideograph */ - {"\x42", 0, 0x8A92}, /* East Asian ideograph */ - {"\x5A", 0, 0x5405}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page552 = { - marc8_31page552_flat, 0 -}; -/* PAGE 551 */ -struct yaz_iconv_trie_flat marc8_31page551_flat[] = { - {"\x29", 0, 0x53DC}, /* East Asian ideograph */ - {"\x4E", 0, 0x608B}, /* East Asian ideograph */ - {"\x56", 0, 0x9A03}, /* East Asian ideograph */ - {"\x5C", 0, 0x5449}, /* East Asian ideograph */ - {"\x64", 0, 0x5415}, /* East Asian ideograph */ - {"\x73", 0, 0x8656}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page551 = { - marc8_31page551_flat, 0 -}; -/* PAGE 550 */ -struct yaz_iconv_trie_flat marc8_31page550_flat[] = { - {"\x21", 0, 0x91FC}, /* East Asian ideograph */ - {"\x23", 0, 0x5264}, /* East Asian ideograph */ - {"\x28", 0, 0x523C}, /* East Asian ideograph */ - {"\x75", 0, 0x9628}, /* East Asian ideograph */ - {"\x7D", 0, 0x53C1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page550 = { - marc8_31page550_flat, 0 -}; -/* PAGE 549 */ -struct yaz_iconv_trie_flat marc8_31page549_flat[] = { - {"\x23", 0, 0x4E21}, /* East Asian ideograph */ - {"\x2A", 0, 0x4E93}, /* East Asian ideograph */ - {"\x30", 0, 0x518A}, /* East Asian ideograph */ - {"\x3C", 0, 0x6C37}, /* East Asian ideograph */ - {"\x44", 0, 0x51DB}, /* East Asian ideograph */ - {"\x4E", 0, 0x51FE}, /* East Asian ideograph */ - {"\x77", 0, 0x5270}, /* East Asian ideograph */ - {"\x7B", 0, 0x52E6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page549 = { - marc8_31page549_flat, 0 -}; -/* PAGE 548 */ -struct yaz_iconv_trie_flat marc8_31page548_flat[] = { - {"\x40", 0, 0x4FFB}, /* East Asian ideograph */ - {"\x51", 0, 0x5FBA}, /* East Asian ideograph */ - {"\x5D", 0, 0x4FA1}, /* East Asian ideograph */ - {"\x7A", 0, 0x5150}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page548 = { - marc8_31page548_flat, 0 -}; -/* PAGE 547 */ -struct yaz_iconv_trie_flat marc8_31page547_flat[] = { - {"\x4C", 0, 0x5FA0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page547 = { - marc8_31page547_flat, 0 -}; -/* PAGE 546 */ -struct yaz_iconv_trie_flat marc8_31page546_flat[] = { - {"\x21", 0, 0x58F9}, /* East Asian ideograph */ - {"\x3A", 0, 0x8FFA}, /* East Asian ideograph */ - {"\x4C", 0, 0x4E79}, /* East Asian ideograph */ - {"\x51", 0, 0x8CB3}, /* East Asian ideograph */ - {"\x60", 0, 0x4EAF}, /* East Asian ideograph */ - {"\x66", 0, 0x5FC8}, /* East Asian ideograph */ - {"\x6C", 0, 0x8B90}, /* East Asian ideograph */ - {"\x78", 0, 0x5F77}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page546 = { - marc8_31page546_flat, 0 -}; -/* PAGE 545 */ -struct yaz_iconv_trie_dir marc8_31page545_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {547, 0, 0}, - {548, 0, 0}, - {549, 0, 0}, - {550, 0, 0}, - {551, 0, 0}, - {552, 0, 0}, - {553, 0, 0}, - {554, 0, 0}, - {555, 0, 0}, - {556, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {557, 0, 0}, - {558, 0, 0}, - {559, 0, 0}, - {560, 0, 0}, - {561, 0, 0}, - {562, 0, 0}, - {563, 0, 0}, - {564, 0, 0}, - {565, 0, 0}, - {566, 0, 0}, - {567, 0, 0}, - {568, 0, 0}, - {569, 0, 0}, - {570, 0, 0}, - {571, 0, 0}, - {0, 0, 0}, - {572, 0, 0}, - {0, 0, 0}, - {573, 0, 0}, - {574, 0, 0}, - {575, 0, 0}, - {576, 0, 0}, - {577, 0, 0}, - {578, 0, 0}, - {579, 0, 0}, - {580, 0, 0}, - {581, 0, 0}, - {582, 0, 0}, - {583, 0, 0}, - {584, 0, 0}, - {585, 0, 0}, - {586, 0, 0}, - {0, 0, 0}, - {587, 0, 0}, - {588, 0, 0}, - {589, 0, 0}, - {590, 0, 0}, - {591, 0, 0}, - {592, 0, 0}, - {593, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {594, 0, 0}, - {595, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {596, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page545 = { - 0, marc8_31page545_dir -}; -/* PAGE 544 */ -struct yaz_iconv_trie_flat marc8_31page544_flat[] = { - {"\x25\x2D", 0, 0x6A22}, /* East Asian ideograph */ - {"\x25\x2E", 0, 0x8507}, /* East Asian ideograph */ - {"\x2A\x5A", 0, 0x868B}, /* East Asian ideograph (unrelated variant of EACC 23293D) */ - {"\x2A\x64", 0, 0x87B5}, /* East Asian ideograph */ - {"\x2A\x73", 0, 0x87CA}, /* East Asian ideograph */ - {"\x2D\x79", 0, 0x88B5}, /* East Asian ideograph */ - {"\x2F\x5D", 0, 0x7E48}, /* East Asian ideograph */ - {"\x31\x2B", 0, 0x89BB}, /* East Asian ideograph */ - {"\x31\x43", 0, 0x89F5}, /* East Asian ideograph (unrelated variant of EACC 23315E) */ - {"\x31\x7D", 0, 0x8A7E}, /* East Asian ideograph */ - {"\x33\x63", 0, 0x8B1A}, /* East Asian ideograph */ - {"\x36\x39", 0, 0x8C7C}, /* East Asian ideograph */ - {"\x38\x33", 0, 0x8D91}, /* East Asian ideograph */ - {"\x38\x6F", 0, 0x8DD7}, /* East Asian ideograph */ - {"\x3A\x5E", 0, 0x8E6E}, /* East Asian ideograph */ - {"\x3B\x63", 0, 0x5E32}, /* East Asian ideograph */ - {"\x3C\x2D", 0, 0x8F3C}, /* East Asian ideograph */ - {"\x3D\x5D", 0, 0x900E}, /* East Asian ideograph */ - {"\x40\x53", 0, 0x914F}, /* East Asian ideograph */ - {"\x42\x31", 0, 0x8019}, /* East Asian ideograph (unrelated variant of EACC 215266) */ - {"\x44\x5F", 0, 0x941A}, /* East Asian ideograph */ - {"\x4A\x2E", 0, 0x90B4}, /* East Asian ideograph */ - {"\x4A\x4A", 0, 0x5F8F}, /* East Asian ideograph */ - {"\x51\x58", 0, 0x7CC7}, /* East Asian ideograph */ - {"\x54\x76", 0, 0x9AE1}, /* East Asian ideograph */ - {"\x57\x5F", 0, 0x9ABE}, /* East Asian ideograph */ - {"\x58\x5C", 0, 0x9C51}, /* East Asian ideograph (unrelated variant of EACC 235945) */ - {"\x58\x70", 0, 0x9C1B}, /* East Asian ideograph */ - {"\x59\x73", 0, 0x9CEC}, /* East Asian ideograph */ - {"\x5A\x48", 0, 0x9D44}, /* East Asian ideograph */ - {"\x5D\x3C", 0, 0x6EF7}, /* East Asian ideograph */ - {"\x5D\x49", 0, 0x9EA4}, /* East Asian ideograph */ - {"\x5D\x5C", 0, 0x730A}, /* East Asian ideograph */ - {"\x5E\x42", 0, 0x9EC9}, /* East Asian ideograph */ - {"\x5E\x66", 0, 0x9B12}, /* East Asian ideograph */ - {"\x5E\x7D", 0, 0x6641}, /* East Asian ideograph */ - {"\x5F\x45", 0, 0x86A1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page544 = { - marc8_31page544_flat, 0 -}; -/* PAGE 543 */ -struct yaz_iconv_trie_flat marc8_31page543_flat[] = { - {"\x24", 0, 0x83F0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page543 = { - marc8_31page543_flat, 0 -}; -/* PAGE 542 */ -struct yaz_iconv_trie_flat marc8_31page542_flat[] = { - {"\x2E", 0, 0x831C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page542 = { - marc8_31page542_flat, 0 -}; -/* PAGE 541 */ -struct yaz_iconv_trie_flat marc8_31page541_flat[] = { - {"\x5F", 0, 0x8037}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page541 = { - marc8_31page541_flat, 0 -}; -/* PAGE 540 */ -struct yaz_iconv_trie_flat marc8_31page540_flat[] = { - {"\x2E", 0, 0x7516}, /* East Asian ideograph */ - {"\x31", 0, 0x7F48}, /* East Asian ideograph */ - {"\x50", 0, 0x7F82}, /* East Asian ideograph */ - {"\x51", 0, 0x7F58}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page540 = { - marc8_31page540_flat, 0 -}; -/* PAGE 539 */ -struct yaz_iconv_trie_flat marc8_31page539_flat[] = { - {"\x28", 0, 0x5FAD}, /* East Asian ideograph */ - {"\x5D", 0, 0x7D56}, /* East Asian ideograph */ - {"\x74", 0, 0x7E89}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page539 = { - marc8_31page539_flat, 0 -}; -/* PAGE 538 */ -struct yaz_iconv_trie_flat marc8_31page538_flat[] = { - {"\x5A", 0, 0x7E27}, /* East Asian ideograph */ - {"\x7C", 0, 0x7D63}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page538 = { - marc8_31page538_flat, 0 -}; -/* PAGE 537 */ -struct yaz_iconv_trie_flat marc8_31page537_flat[] = { - {"\x62", 0, 0x7D4F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page537 = { - marc8_31page537_flat, 0 -}; -/* PAGE 536 */ -struct yaz_iconv_trie_flat marc8_31page536_flat[] = { - {"\x35", 0, 0x6CD4}, /* East Asian ideograph */ - {"\x43", 0, 0x9908}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page536 = { - marc8_31page536_flat, 0 -}; -/* PAGE 535 */ -struct yaz_iconv_trie_flat marc8_31page535_flat[] = { - {"\x26", 0, 0x7BE0}, /* East Asian ideograph */ - {"\x27", 0, 0x7B2E}, /* East Asian ideograph */ - {"\x3E", 0, 0x7B59}, /* East Asian ideograph */ - {"\x46", 0, 0x7BE6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page535 = { - marc8_31page535_flat, 0 -}; -/* PAGE 534 */ -struct yaz_iconv_trie_flat marc8_31page534_flat[] = { - {"\x54", 0, 0x7B04}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page534 = { - marc8_31page534_flat, 0 -}; -/* PAGE 533 */ -struct yaz_iconv_trie_flat marc8_31page533_flat[] = { - {"\x4E", 0, 0x8020}, /* East Asian ideograph */ - {"\x6F", 0, 0x7A19}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page533 = { - marc8_31page533_flat, 0 -}; -/* PAGE 532 */ -struct yaz_iconv_trie_flat marc8_31page532_flat[] = { - {"\x4F", 0, 0x772D}, /* East Asian ideograph */ - {"\x5F", 0, 0x77C1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page532 = { - marc8_31page532_flat, 0 -}; -/* PAGE 531 */ -struct yaz_iconv_trie_flat marc8_31page531_flat[] = { - {"\x4A", 0, 0x7690}, /* East Asian ideograph */ - {"\x4A", 0, 0x7690}, /* East Asian ideograph */ - {"\x60", 0, 0x76A1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page531 = { - marc8_31page531_flat, 0 -}; -/* PAGE 530 */ -struct yaz_iconv_trie_flat marc8_31page530_flat[] = { - {"\x6F", 0, 0x75B8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page530 = { - marc8_31page530_flat, 0 -}; -/* PAGE 529 */ -struct yaz_iconv_trie_flat marc8_31page529_flat[] = { - {"\x40", 0, 0x73B3}, /* East Asian ideograph */ - {"\x78", 0, 0x74A2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page529 = { - marc8_31page529_flat, 0 -}; -/* PAGE 528 */ -struct yaz_iconv_trie_flat marc8_31page528_flat[] = { - {"\x52", 0, 0x71FE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page528 = { - marc8_31page528_flat, 0 -}; -/* PAGE 527 */ -struct yaz_iconv_trie_flat marc8_31page527_flat[] = { - {"\x5D", 0, 0x715B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page527 = { - marc8_31page527_flat, 0 -}; -/* PAGE 526 */ -struct yaz_iconv_trie_flat marc8_31page526_flat[] = { - {"\x6D", 0, 0x70B1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page526 = { - marc8_31page526_flat, 0 -}; -/* PAGE 525 */ -struct yaz_iconv_trie_flat marc8_31page525_flat[] = { - {"\x41", 0, 0x7032}, /* East Asian ideograph */ - {"\x56", 0, 0x9800}, /* East Asian ideograph */ - {"\x5D", 0, 0x6DE0}, /* East Asian ideograph */ - {"\x72", 0, 0x6F74}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page525 = { - marc8_31page525_flat, 0 -}; -/* PAGE 524 */ -struct yaz_iconv_trie_flat marc8_31page524_flat[] = { - {"\x3D", 0, 0x6D38}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page524 = { - marc8_31page524_flat, 0 -}; -/* PAGE 523 */ -struct yaz_iconv_trie_flat marc8_31page523_flat[] = { - {"\x35", 0, 0x6DE5}, /* East Asian ideograph */ - {"\x7B", 0, 0x6E86}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page523 = { - marc8_31page523_flat, 0 -}; -/* PAGE 522 */ -struct yaz_iconv_trie_flat marc8_31page522_flat[] = { - {"\x6B", 0, 0x6EA6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page522 = { - marc8_31page522_flat, 0 -}; -/* PAGE 521 */ -struct yaz_iconv_trie_flat marc8_31page521_flat[] = { - {"\x2F", 0, 0x6CD9}, /* East Asian ideograph */ - {"\x3B", 0, 0x6E7C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page521 = { - marc8_31page521_flat, 0 -}; -/* PAGE 520 */ -struct yaz_iconv_trie_flat marc8_31page520_flat[] = { - {"\x73", 0, 0x6FA3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page520 = { - marc8_31page520_flat, 0 -}; -/* PAGE 519 */ -struct yaz_iconv_trie_flat marc8_31page519_flat[] = { - {"\x31", 0, 0x6C73}, /* East Asian ideograph */ - {"\x39", 0, 0x6C67}, /* East Asian ideograph (variant of EACC 224739) */ - {"\x47", 0, 0x6D64}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page519 = { - marc8_31page519_flat, 0 -}; -/* PAGE 518 */ -struct yaz_iconv_trie_flat marc8_31page518_flat[] = { - {"\x70", 0, 0x6CD0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page518 = { - marc8_31page518_flat, 0 -}; -/* PAGE 517 */ -struct yaz_iconv_trie_flat marc8_31page517_flat[] = { - {"\x74", 0, 0x6AA9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page517 = { - marc8_31page517_flat, 0 -}; -/* PAGE 516 */ -struct yaz_iconv_trie_flat marc8_31page516_flat[] = { - {"\x3D", 0, 0x6AC1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page516 = { - marc8_31page516_flat, 0 -}; -/* PAGE 515 */ -struct yaz_iconv_trie_flat marc8_31page515_flat[] = { - {"\x2D", 0, 0x69B2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page515 = { - marc8_31page515_flat, 0 -}; -/* PAGE 514 */ -struct yaz_iconv_trie_flat marc8_31page514_flat[] = { - {"\x3F", 0, 0x7BA0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page514 = { - marc8_31page514_flat, 0 -}; -/* PAGE 513 */ -struct yaz_iconv_trie_flat marc8_31page513_flat[] = { - {"\x62", 0, 0x684A}, /* East Asian ideograph */ - {"\x73", 0, 0x7A1C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page513 = { - marc8_31page513_flat, 0 -}; -/* PAGE 512 */ -struct yaz_iconv_trie_flat marc8_31page512_flat[] = { - {"\x22", 0, 0x690F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page512 = { - marc8_31page512_flat, 0 -}; -/* PAGE 511 */ -struct yaz_iconv_trie_flat marc8_31page511_flat[] = { - {"\x26", 0, 0x661D}, /* East Asian ideograph */ - {"\x33", 0, 0x80AD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page511 = { - marc8_31page511_flat, 0 -}; -/* PAGE 510 */ -struct yaz_iconv_trie_flat marc8_31page510_flat[] = { - {"\x36", 0, 0x66CD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page510 = { - marc8_31page510_flat, 0 -}; -/* PAGE 509 */ -struct yaz_iconv_trie_flat marc8_31page509_flat[] = { - {"\x70", 0, 0x714A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page509 = { - marc8_31page509_flat, 0 -}; -/* PAGE 508 */ -struct yaz_iconv_trie_flat marc8_31page508_flat[] = { - {"\x29", 0, 0x65B5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page508 = { - marc8_31page508_flat, 0 -}; -/* PAGE 507 */ -struct yaz_iconv_trie_flat marc8_31page507_flat[] = { - {"\x3F", 0, 0x52C5}, /* East Asian ideograph */ - {"\x45", 0, 0x69E3}, /* East Asian ideograph */ - {"\x54", 0, 0x657F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page507 = { - marc8_31page507_flat, 0 -}; -/* PAGE 506 */ -struct yaz_iconv_trie_flat marc8_31page506_flat[] = { - {"\x28", 0, 0x6528}, /* East Asian ideograph */ - {"\x7B", 0, 0x630E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page506 = { - marc8_31page506_flat, 0 -}; -/* PAGE 505 */ -struct yaz_iconv_trie_flat marc8_31page505_flat[] = { - {"\x3A", 0, 0x6332}, /* East Asian ideograph */ - {"\x44", 0, 0x651F}, /* East Asian ideograph */ - {"\x72", 0, 0x5261}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page505 = { - marc8_31page505_flat, 0 -}; -/* PAGE 504 */ -struct yaz_iconv_trie_flat marc8_31page504_flat[] = { - {"\x28", 0, 0x640B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page504 = { - marc8_31page504_flat, 0 -}; -/* PAGE 503 */ -struct yaz_iconv_trie_flat marc8_31page503_flat[] = { - {"\x7A", 0, 0x6738}, /* East Asian ideograph */ - {"\x7C", 0, 0x634D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page503 = { - marc8_31page503_flat, 0 -}; -/* PAGE 502 */ -struct yaz_iconv_trie_flat marc8_31page502_flat[] = { - {"\x79", 0, 0x6128}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page502 = { - marc8_31page502_flat, 0 -}; -/* PAGE 501 */ -struct yaz_iconv_trie_flat marc8_31page501_flat[] = { - {"\x5B", 0, 0x605A}, /* East Asian ideograph */ - {"\x74", 0, 0x609B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page501 = { - marc8_31page501_flat, 0 -}; -/* PAGE 500 */ -struct yaz_iconv_trie_flat marc8_31page500_flat[] = { - {"\x68", 0, 0x5F51}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page500 = { - marc8_31page500_flat, 0 -}; -/* PAGE 499 */ -struct yaz_iconv_trie_flat marc8_31page499_flat[] = { - {"\x4C", 0, 0x5ECF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page499 = { - marc8_31page499_flat, 0 -}; -/* PAGE 498 */ -struct yaz_iconv_trie_flat marc8_31page498_flat[] = { - {"\x7B", 0, 0x5D1F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page498 = { - marc8_31page498_flat, 0 -}; -/* PAGE 497 */ -struct yaz_iconv_trie_dir marc8_31page497_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {499, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {500, 0, 0}, - {501, 0, 0}, - {0, 0, 0}, - {502, 0, 0}, - {0, 0, 0}, - {503, 0, 0}, - {0, 0, 0}, - {504, 0, 0}, - {505, 0, 0}, - {506, 0, 0}, - {0, 0, 0}, - {507, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {508, 0, 0}, - {509, 0, 0}, - {510, 0, 0}, - {511, 0, 0}, - {512, 0, 0}, - {513, 0, 0}, - {0, 0, 0}, - {514, 0, 0}, - {515, 0, 0}, - {516, 0, 0}, - {517, 0, 0}, - {518, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {519, 0, 0}, - {520, 0, 0}, - {521, 0, 0}, - {522, 0, 0}, - {523, 0, 0}, - {0, 0, 0}, - {524, 0, 0}, - {525, 0, 0}, - {526, 0, 0}, - {0, 0, 0}, - {527, 0, 0}, - {0, 0, 0}, - {528, 0, 0}, - {0, 0, 0}, - {529, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {530, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {531, 0, 0}, - {532, 0, 0}, - {0, 0, 0}, - {533, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {534, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {535, 0, 0}, - {536, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {537, 0, 0}, - {538, 0, 0}, - {539, 0, 0}, - {0, 0, 0}, - {540, 0, 0}, - {541, 0, 0}, - {0, 0, 0}, - {542, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {543, 0, 0}, - {544, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page497 = { - 0, marc8_31page497_dir -}; -/* PAGE 496 */ -struct yaz_iconv_trie_flat marc8_31page496_flat[] = { - {"\x6A", 0, 0x51A4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page496 = { - marc8_31page496_flat, 0 -}; -/* PAGE 495 */ -struct yaz_iconv_trie_flat marc8_31page495_flat[] = { - {"\x44", 0, 0x598D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page495 = { - marc8_31page495_flat, 0 -}; -/* PAGE 494 */ -struct yaz_iconv_trie_flat marc8_31page494_flat[] = { - {"\x3A", 0, 0x9654}, /* East Asian ideograph */ - {"\x52", 0, 0x579B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page494 = { - marc8_31page494_flat, 0 -}; -/* PAGE 493 */ -struct yaz_iconv_trie_flat marc8_31page493_flat[] = { - {"\x45", 0, 0x56D3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page493 = { - marc8_31page493_flat, 0 -}; -/* PAGE 492 */ -struct yaz_iconv_trie_flat marc8_31page492_flat[] = { - {"\x43", 0, 0x55E2}, /* East Asian ideograph */ - {"\x64", 0, 0x55D4}, /* East Asian ideograph (variant of EACC 217164) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page492 = { - marc8_31page492_flat, 0 -}; -/* PAGE 491 */ -struct yaz_iconv_trie_flat marc8_31page491_flat[] = { - {"\x7D", 0, 0x8123}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page491 = { - marc8_31page491_flat, 0 -}; -/* PAGE 490 */ -struct yaz_iconv_trie_flat marc8_31page490_flat[] = { - {"\x33", 0, 0x5231}, /* East Asian ideograph */ - {"\x5F", 0, 0x5273}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page490 = { - marc8_31page490_flat, 0 -}; -/* PAGE 489 */ -struct yaz_iconv_trie_flat marc8_31page489_flat[] = { - {"\x2B", 0, 0x5C28}, /* East Asian ideograph */ - {"\x2D", 0, 0x4E80}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page489 = { - marc8_31page489_flat, 0 -}; -/* PAGE 488 */ -struct yaz_iconv_trie_flat marc8_31page488_flat[] = { - {"\x22", 0, 0x9C0C}, /* East Asian ideograph */ - {"\x29", 0, 0x9C53}, /* East Asian ideograph */ - {"\x2C", 0, 0x9F08}, /* East Asian ideograph */ - {"\x35", 0, 0x9D76}, /* East Asian ideograph */ - {"\x41", 0, 0x9D5E}, /* East Asian ideograph */ - {"\x51", 0, 0x5869}, /* East Asian ideograph */ - {"\x52", 0, 0x78B1}, /* East Asian ideograph */ - {"\x5F", 0, 0x83FB}, /* East Asian ideograph */ - {"\x60", 0, 0x5E85}, /* East Asian ideograph */ - {"\x62", 0, 0x9EC4}, /* East Asian ideograph */ - {"\x75", 0, 0x76B7}, /* East Asian ideograph */ - {"\x7E", 0, 0x658B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page488 = { - marc8_31page488_flat, 0 -}; -/* PAGE 487 */ -struct yaz_iconv_trie_flat marc8_31page487_flat[] = { - {"\x32", 0, 0x99EE}, /* East Asian ideograph */ - {"\x34", 0, 0x99DE}, /* East Asian ideograph */ - {"\x47", 0, 0x99C8}, /* East Asian ideograph */ - {"\x59", 0, 0x9AC4}, /* East Asian ideograph */ - {"\x5A", 0, 0x8EC6}, /* East Asian ideograph */ - {"\x62", 0, 0x9A0C}, /* East Asian ideograph */ - {"\x6A", 0, 0x6B1D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page487 = { - marc8_31page487_flat, 0 -}; -/* PAGE 486 */ -struct yaz_iconv_trie_flat marc8_31page486_flat[] = { - {"\x21", 0, 0x978C}, /* East Asian ideograph */ - {"\x2D", 0, 0x976D}, /* East Asian ideograph */ - {"\x30", 0, 0x97EE}, /* East Asian ideograph */ - {"\x56", 0, 0x980B}, /* East Asian ideograph */ - {"\x78", 0, 0x9920}, /* East Asian ideograph */ - {"\x79", 0, 0x8218}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page486 = { - marc8_31page486_flat, 0 -}; -/* PAGE 485 */ -struct yaz_iconv_trie_flat marc8_31page485_flat[] = { - {"\x28", 0, 0x9665}, /* East Asian ideograph */ - {"\x2C", 0, 0x5826}, /* East Asian ideograph */ - {"\x2D", 0, 0x964F}, /* East Asian ideograph */ - {"\x2E", 0, 0x661C}, /* East Asian ideograph */ - {"\x35", 0, 0x78D2}, /* East Asian ideograph */ - {"\x3B", 0, 0x96A0}, /* East Asian ideograph */ - {"\x43", 0, 0x9CEB}, /* East Asian ideograph */ - {"\x46", 0, 0x96BD}, /* East Asian ideograph */ - {"\x4B", 0, 0x96D1}, /* East Asian ideograph */ - {"\x4C", 0, 0x9DC4}, /* East Asian ideograph */ - {"\x63", 0, 0x873A}, /* East Asian ideograph */ - {"\x73", 0, 0x975A}, /* East Asian ideograph (unrelated variant of EACC 234C76) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page485 = { - marc8_31page485_flat, 0 -}; -/* PAGE 484 */ -struct yaz_iconv_trie_flat marc8_31page484_flat[] = { - {"\x21", 0, 0x9418}, /* East Asian ideograph */ - {"\x24", 0, 0x7145}, /* East Asian ideograph */ - {"\x26", 0, 0x7194}, /* East Asian ideograph */ - {"\x28", 0, 0x93C1}, /* East Asian ideograph */ - {"\x3B", 0, 0x92B9}, /* East Asian ideograph */ - {"\x43", 0, 0x92F3}, /* East Asian ideograph */ - {"\x4A", 0, 0x945A}, /* East Asian ideograph */ - {"\x50", 0, 0x9587}, /* East Asian ideograph */ - {"\x61", 0, 0x6FF6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page484 = { - marc8_31page484_flat, 0 -}; -/* PAGE 483 */ -struct yaz_iconv_trie_flat marc8_31page483_flat[] = { - {"\x23", 0, 0x9167}, /* East Asian ideograph */ - {"\x2F", 0, 0x9196}, /* East Asian ideograph */ - {"\x56", 0, 0x920E}, /* East Asian ideograph */ - {"\x65", 0, 0x8216}, /* East Asian ideograph */ - {"\x68", 0, 0x8021}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page483 = { - marc8_31page483_flat, 0 -}; -/* PAGE 482 */ -struct yaz_iconv_trie_flat marc8_31page482_flat[] = { - {"\x2F", 0, 0x8FE8}, /* East Asian ideograph */ - {"\x3F", 0, 0x5FA7}, /* East Asian ideograph */ - {"\x40", 0, 0x5FA8}, /* East Asian ideograph */ - {"\x48", 0, 0x9013}, /* East Asian ideograph */ - {"\x5A", 0, 0x8FE9}, /* East Asian ideograph */ - {"\x5B", 0, 0x9089}, /* East Asian ideograph */ - {"\x74", 0, 0x96A3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page482 = { - marc8_31page482_flat, 0 -}; -/* PAGE 481 */ -struct yaz_iconv_trie_flat marc8_31page481_flat[] = { - {"\x2F", 0, 0x8EB1}, /* East Asian ideograph */ - {"\x42", 0, 0x8F19}, /* East Asian ideograph */ - {"\x43", 0, 0x8EFD}, /* East Asian ideograph */ - {"\x5D", 0, 0x8FA2}, /* East Asian ideograph */ - {"\x5E", 0, 0x8FA7}, /* East Asian ideograph */ - {"\x69", 0, 0x5EF5}, /* East Asian ideograph */ - {"\x7A", 0, 0x8FEF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page481 = { - marc8_31page481_flat, 0 -}; -/* PAGE 480 */ -struct yaz_iconv_trie_flat marc8_31page480_flat[] = { - {"\x34", 0, 0x8CAD}, /* East Asian ideograph */ - {"\x3D", 0, 0x8CDB}, /* East Asian ideograph */ - {"\x48", 0, 0x8D71}, /* East Asian ideograph */ - {"\x4E", 0, 0x8D82}, /* East Asian ideograph */ - {"\x5F", 0, 0x8E5F}, /* East Asian ideograph */ - {"\x63", 0, 0x8DE5}, /* East Asian ideograph */ - {"\x7E", 0, 0x8E7B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page480 = { - marc8_31page480_flat, 0 -}; -/* PAGE 479 */ -struct yaz_iconv_trie_flat marc8_31page479_flat[] = { - {"\x27", 0, 0x8ACC}, /* East Asian ideograph */ - {"\x2C", 0, 0x8B01}, /* East Asian ideograph */ - {"\x3D", 0, 0x8AE9}, /* East Asian ideograph */ - {"\x41", 0, 0x5629}, /* East Asian ideograph */ - {"\x4C", 0, 0x8B72}, /* East Asian ideograph */ - {"\x4F", 0, 0x8B83}, /* East Asian ideograph */ - {"\x57", 0, 0x7AEA}, /* East Asian ideograph */ - {"\x59", 0, 0x8277}, /* East Asian ideograph */ - {"\x5F", 0, 0x732A}, /* East Asian ideograph */ - {"\x60", 0, 0x72B2}, /* East Asian ideograph */ - {"\x63", 0, 0x8C98}, /* East Asian ideograph */ - {"\x65", 0, 0x72F8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page479 = { - marc8_31page479_flat, 0 -}; -/* PAGE 478 */ -struct yaz_iconv_trie_flat marc8_31page478_flat[] = { - {"\x31", 0, 0x89A7}, /* East Asian ideograph */ - {"\x33", 0, 0x752A}, /* East Asian ideograph */ - {"\x36", 0, 0x89E6}, /* East Asian ideograph */ - {"\x4D", 0, 0x548F}, /* East Asian ideograph */ - {"\x56", 0, 0x612C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page478 = { - marc8_31page478_flat, 0 -}; -/* PAGE 477 */ -struct yaz_iconv_trie_flat marc8_31page477_flat[] = { - {"\x2B", 0, 0x8797}, /* East Asian ideograph */ - {"\x2D", 0, 0x8748}, /* East Asian ideograph */ - {"\x30", 0, 0x87C7}, /* East Asian ideograph */ - {"\x3B", 0, 0x60F7}, /* East Asian ideograph */ - {"\x49", 0, 0x885E}, /* East Asian ideograph */ - {"\x58", 0, 0x890E}, /* East Asian ideograph */ - {"\x5B", 0, 0x886E}, /* East Asian ideograph */ - {"\x60", 0, 0x5E2C}, /* East Asian ideograph */ - {"\x63", 0, 0x88E1}, /* East Asian ideograph */ - {"\x73", 0, 0x7D5D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page477 = { - marc8_31page477_flat, 0 -}; -/* PAGE 476 */ -struct yaz_iconv_trie_flat marc8_31page476_flat[] = { - {"\x2E", 0, 0x8024}, /* East Asian ideograph */ - {"\x35", 0, 0x846F}, /* East Asian ideograph */ - {"\x3C", 0, 0x8613}, /* East Asian ideograph */ - {"\x3F", 0, 0x6A97}, /* East Asian ideograph */ - {"\x64", 0, 0x9F04}, /* East Asian ideograph */ - {"\x75", 0, 0x9F05}, /* East Asian ideograph */ - {"\x7B", 0, 0x8717}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page476 = { - marc8_31page476_flat, 0 -}; -/* PAGE 475 */ -struct yaz_iconv_trie_flat marc8_31page475_flat[] = { - {"\x29", 0, 0x830E}, /* East Asian ideograph (variant of EACC 275529) */ - {"\x2D", 0, 0x8358}, /* East Asian ideograph */ - {"\x2E", 0, 0x82FA}, /* East Asian ideograph (variant of EACC 227C68) */ - {"\x47", 0, 0x837D}, /* East Asian ideograph */ - {"\x50", 0, 0x585F}, /* East Asian ideograph */ - {"\x54", 0, 0x855A}, /* East Asian ideograph */ - {"\x5A", 0, 0x8386}, /* East Asian ideograph */ - {"\x5B", 0, 0x8385}, /* East Asian ideograph */ - {"\x61", 0, 0x76D6}, /* East Asian ideograph */ - {"\x73", 0, 0x83D4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page475 = { - marc8_31page475_flat, 0 -}; -/* PAGE 474 */ -struct yaz_iconv_trie_flat marc8_31page474_flat[] = { - {"\x21", 0, 0x9AD7}, /* East Asian ideograph */ - {"\x24", 0, 0x5367}, /* East Asian ideograph */ - {"\x34", 0, 0x64E7}, /* East Asian ideograph */ - {"\x40", 0, 0x6841}, /* East Asian ideograph */ - {"\x46", 0, 0x8229}, /* East Asian ideograph */ - {"\x47", 0, 0x824A}, /* East Asian ideograph */ - {"\x61", 0, 0x8306}, /* East Asian ideograph */ - {"\x68", 0, 0x6959}, /* East Asian ideograph */ - {"\x6F", 0, 0x83C0}, /* East Asian ideograph */ - {"\x76", 0, 0x8318}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page474 = { - marc8_31page474_flat, 0 -}; -/* PAGE 473 */ -struct yaz_iconv_trie_flat marc8_31page473_flat[] = { - {"\x21", 0, 0x7C9B}, /* East Asian ideograph */ - {"\x23", 0, 0x5B8D}, /* East Asian ideograph */ - {"\x2C", 0, 0x6BD3}, /* East Asian ideograph */ - {"\x40", 0, 0x812C}, /* East Asian ideograph */ - {"\x44", 0, 0x8107}, /* East Asian ideograph */ - {"\x4B", 0, 0x80F7}, /* East Asian ideograph */ - {"\x5E", 0, 0x8193}, /* East Asian ideograph */ - {"\x61", 0, 0x811A}, /* East Asian ideograph */ - {"\x7E", 0, 0x81C8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page473 = { - marc8_31page473_flat, 0 -}; -/* PAGE 472 */ -struct yaz_iconv_trie_flat marc8_31page472_flat[] = { - {"\x28", 0, 0x9262}, /* East Asian ideograph */ - {"\x2B", 0, 0x9475}, /* East Asian ideograph */ - {"\x32", 0, 0x8FA0}, /* East Asian ideograph */ - {"\x33", 0, 0x7F78}, /* East Asian ideograph */ - {"\x38", 0, 0x898A}, /* East Asian ideograph */ - {"\x40", 0, 0x7FA1}, /* East Asian ideograph */ - {"\x41", 0, 0x7FA3}, /* East Asian ideograph */ - {"\x4A", 0, 0x7FC4}, /* East Asian ideograph */ - {"\x59", 0, 0x98DC}, /* East Asian ideograph */ - {"\x5D", 0, 0x6537}, /* East Asian ideograph */ - {"\x65", 0, 0x79D0}, /* East Asian ideograph */ - {"\x67", 0, 0x79CF}, /* East Asian ideograph */ - {"\x6B", 0, 0x7085}, /* East Asian ideograph */ - {"\x6C", 0, 0x8EAD}, /* East Asian ideograph */ - {"\x7B", 0, 0x8074}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page472 = { - marc8_31page472_flat, 0 -}; -/* PAGE 471 */ -struct yaz_iconv_trie_flat marc8_31page471_flat[] = { - {"\x24", 0, 0x5E0B}, /* East Asian ideograph */ - {"\x29", 0, 0x7D25}, /* East Asian ideograph */ - {"\x4A", 0, 0x6DD6}, /* East Asian ideograph */ - {"\x4D", 0, 0x7D2C}, /* East Asian ideograph */ - {"\x6A", 0, 0x7DB3}, /* East Asian ideograph */ - {"\x79", 0, 0x7E62}, /* East Asian ideograph */ - {"\x7D", 0, 0x7D99}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page471 = { - marc8_31page471_flat, 0 -}; -/* PAGE 470 */ -struct yaz_iconv_trie_flat marc8_31page470_flat[] = { - {"\x2B", 0, 0x693E}, /* East Asian ideograph */ - {"\x2D", 0, 0x7B5D}, /* East Asian ideograph */ - {"\x36", 0, 0x84D1}, /* East Asian ideograph */ - {"\x4F", 0, 0x7C58}, /* East Asian ideograph */ - {"\x6F", 0, 0x7CFA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page470 = { - marc8_31page470_flat, 0 -}; -/* PAGE 469 */ -struct yaz_iconv_trie_flat marc8_31page469_flat[] = { - {"\x29", 0, 0x9F9D}, /* East Asian ideograph */ - {"\x37", 0, 0x7980}, /* East Asian ideograph */ - {"\x3E", 0, 0x7A3E}, /* East Asian ideograph */ - {"\x41", 0, 0x4E69}, /* East Asian ideograph */ - {"\x45", 0, 0x9834}, /* East Asian ideograph */ - {"\x48", 0, 0x7A42}, /* East Asian ideograph */ - {"\x5E", 0, 0x7AB0}, /* East Asian ideograph */ - {"\x6B", 0, 0x7AF8}, /* East Asian ideograph */ - {"\x7C", 0, 0x7B5E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page469 = { - marc8_31page469_flat, 0 -}; -/* PAGE 468 */ -struct yaz_iconv_trie_flat marc8_31page468_flat[] = { - {"\x24", 0, 0x6998}, /* East Asian ideograph */ - {"\x33", 0, 0x78AA}, /* East Asian ideograph */ - {"\x5B", 0, 0x945B}, /* East Asian ideograph */ - {"\x79", 0, 0x5FA1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page468 = { - marc8_31page468_flat, 0 -}; -/* PAGE 467 */ -struct yaz_iconv_trie_flat marc8_31page467_flat[] = { - {"\x21", 0, 0x7681}, /* East Asian ideograph */ - {"\x34", 0, 0x76C7}, /* East Asian ideograph */ - {"\x38", 0, 0x76D7}, /* East Asian ideograph */ - {"\x4F", 0, 0x771F}, /* East Asian ideograph */ - {"\x5F", 0, 0x7741}, /* East Asian ideograph */ - {"\x65", 0, 0x53E1}, /* East Asian ideograph */ - {"\x6D", 0, 0x7792}, /* East Asian ideograph */ - {"\x71", 0, 0x7719}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page467 = { - marc8_31page467_flat, 0 -}; -/* PAGE 466 */ -struct yaz_iconv_trie_flat marc8_31page466_flat[] = { - {"\x2C", 0, 0x583A}, /* East Asian ideograph */ - {"\x2D", 0, 0x756E}, /* East Asian ideograph */ - {"\x35", 0, 0x7567}, /* East Asian ideograph */ - {"\x3C", 0, 0x53E0}, /* East Asian ideograph */ - {"\x3E", 0, 0x758E}, /* East Asian ideograph */ - {"\x5D", 0, 0x7661}, /* East Asian ideograph */ - {"\x7E", 0, 0x4F70}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page466 = { - marc8_31page466_flat, 0 -}; -/* PAGE 465 */ -struct yaz_iconv_trie_flat marc8_31page465_flat[] = { - {"\x22", 0, 0x736A}, /* East Asian ideograph */ - {"\x35", 0, 0x73C9}, /* East Asian ideograph */ - {"\x3F", 0, 0x73CE}, /* East Asian ideograph */ - {"\x43", 0, 0x746F}, /* East Asian ideograph */ - {"\x45", 0, 0x6BEC}, /* East Asian ideograph */ - {"\x5B", 0, 0x78AF}, /* East Asian ideograph */ - {"\x71", 0, 0x7F3E}, /* East Asian ideograph */ - {"\x72", 0, 0x7506}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page465 = { - marc8_31page465_flat, 0 -}; -/* PAGE 464 */ -struct yaz_iconv_trie_flat marc8_31page464_flat[] = { - {"\x26", 0, 0x713C}, /* East Asian ideograph */ - {"\x28", 0, 0x8B8C}, /* East Asian ideograph */ - {"\x34", 0, 0x718F}, /* East Asian ideograph */ - {"\x3B", 0, 0x4E89}, /* East Asian ideograph */ - {"\x45", 0, 0x5C12}, /* East Asian ideograph */ - {"\x46", 0, 0x58BB}, /* East Asian ideograph */ - {"\x58", 0, 0x7F9D}, /* East Asian ideograph */ - {"\x5B", 0, 0x7282}, /* East Asian ideograph */ - {"\x60", 0, 0x6C02}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page464 = { - marc8_31page464_flat, 0 -}; -/* PAGE 463 */ -struct yaz_iconv_trie_flat marc8_31page463_flat[] = { - {"\x3A", 0, 0x702C}, /* East Asian ideograph */ - {"\x47", 0, 0x7AC8}, /* East Asian ideograph */ - {"\x54", 0, 0x70F1}, /* East Asian ideograph */ - {"\x56", 0, 0x70B0}, /* East Asian ideograph */ - {"\x6B", 0, 0x70DF}, /* East Asian ideograph */ - {"\x71", 0, 0x70A4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page463 = { - marc8_31page463_flat, 0 -}; -/* PAGE 462 */ -struct yaz_iconv_trie_flat marc8_31page462_flat[] = { - {"\x29", 0, 0x51CF}, /* East Asian ideograph */ - {"\x2F", 0, 0x6E07}, /* East Asian ideograph */ - {"\x44", 0, 0x6FD5}, /* East Asian ideograph */ - {"\x45", 0, 0x6E29}, /* East Asian ideograph */ - {"\x50", 0, 0x6EDA}, /* East Asian ideograph */ - {"\x53", 0, 0x7001}, /* East Asian ideograph */ - {"\x5C", 0, 0x6F44}, /* East Asian ideograph */ - {"\x6B", 0, 0x6F82}, /* East Asian ideograph */ - {"\x6E", 0, 0x6F97}, /* East Asian ideograph */ - {"\x74", 0, 0x6F5C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page462 = { - marc8_31page462_flat, 0 -}; -/* PAGE 461 */ -struct yaz_iconv_trie_flat marc8_31page461_flat[] = { - {"\x29", 0, 0x6D29}, /* East Asian ideograph */ - {"\x30", 0, 0x51B5}, /* East Asian ideograph */ - {"\x35", 0, 0x6C4E}, /* East Asian ideograph */ - {"\x38", 0, 0x6FFC}, /* East Asian ideograph */ - {"\x46", 0, 0x6C79}, /* East Asian ideograph */ - {"\x56", 0, 0x6F94}, /* East Asian ideograph */ - {"\x5B", 0, 0x51C9}, /* East Asian ideograph */ - {"\x5F", 0, 0x51C4}, /* East Asian ideograph */ - {"\x68", 0, 0x6D45}, /* East Asian ideograph (variant of EACC 274768) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page461 = { - marc8_31page461_flat, 0 -}; -/* PAGE 460 */ -struct yaz_iconv_trie_flat marc8_31page460_flat[] = { - {"\x21", 0, 0x61FD}, /* East Asian ideograph */ - {"\x2C", 0, 0x6B7A}, /* East Asian ideograph */ - {"\x47", 0, 0x6BD8}, /* East Asian ideograph */ - {"\x6D", 0, 0x51B3}, /* East Asian ideograph */ - {"\x74", 0, 0x51B2}, /* East Asian ideograph */ - {"\x7C", 0, 0x6CB2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page460 = { - marc8_31page460_flat, 0 -}; -/* PAGE 459 */ -struct yaz_iconv_trie_flat marc8_31page459_flat[] = { - {"\x39", 0, 0x6406}, /* East Asian ideograph */ - {"\x3A", 0, 0x6760}, /* East Asian ideograph */ - {"\x43", 0, 0x6901}, /* East Asian ideograph */ - {"\x4E", 0, 0x697D}, /* East Asian ideograph */ - {"\x50", 0, 0x58AB}, /* East Asian ideograph */ - {"\x62", 0, 0x681D}, /* East Asian ideograph */ - {"\x64", 0, 0x68B9}, /* East Asian ideograph */ - {"\x69", 0, 0x6AC9}, /* East Asian ideograph */ - {"\x74", 0, 0x5FFB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page459 = { - marc8_31page459_flat, 0 -}; -/* PAGE 458 */ -struct yaz_iconv_trie_flat marc8_31page458_flat[] = { - {"\x25", 0, 0x686E}, /* East Asian ideograph */ - {"\x2D", 0, 0x6780}, /* East Asian ideograph */ - {"\x37", 0, 0x67FE}, /* East Asian ideograph */ - {"\x3A", 0, 0x6942}, /* East Asian ideograph */ - {"\x40", 0, 0x6822}, /* East Asian ideograph */ - {"\x44", 0, 0x69C5}, /* East Asian ideograph */ - {"\x4B", 0, 0x6852}, /* East Asian ideograph */ - {"\x50", 0, 0x8308}, /* East Asian ideograph */ - {"\x61", 0, 0x6746}, /* East Asian ideograph */ - {"\x66", 0, 0x6973}, /* East Asian ideograph */ - {"\x6B", 0, 0x6936}, /* East Asian ideograph */ - {"\x72", 0, 0x68CA}, /* East Asian ideograph */ - {"\x74", 0, 0x690D}, /* East Asian ideograph (variant of EACC 214474) */ - {"\x7D", 0, 0x684C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page458 = { - marc8_31page458_flat, 0 -}; -/* PAGE 457 */ -struct yaz_iconv_trie_flat marc8_31page457_flat[] = { - {"\x27", 0, 0x6630}, /* East Asian ideograph */ - {"\x29", 0, 0x668E}, /* East Asian ideograph */ - {"\x2E", 0, 0x66EC}, /* East Asian ideograph */ - {"\x3B", 0, 0x6662}, /* East Asian ideograph */ - {"\x3E", 0, 0x667B}, /* East Asian ideograph */ - {"\x43", 0, 0x6636}, /* East Asian ideograph */ - {"\x48", 0, 0x6681}, /* East Asian ideograph */ - {"\x49", 0, 0x66A6}, /* East Asian ideograph */ - {"\x5F", 0, 0x6716}, /* East Asian ideograph */ - {"\x62", 0, 0x6722}, /* East Asian ideograph */ - {"\x64", 0, 0x671E}, /* East Asian ideograph */ - {"\x70", 0, 0x6736}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page457 = { - marc8_31page457_flat, 0 -}; -/* PAGE 456 */ -struct yaz_iconv_trie_flat marc8_31page456_flat[] = { - {"\x28", 0, 0x5117}, /* East Asian ideograph */ - {"\x49", 0, 0x53D9}, /* East Asian ideograph */ - {"\x4F", 0, 0x555F}, /* East Asian ideograph */ - {"\x72", 0, 0x65E3}, /* East Asian ideograph */ - {"\x77", 0, 0x65EE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page456 = { - marc8_31page456_flat, 0 -}; -/* PAGE 455 */ -struct yaz_iconv_trie_flat marc8_31page455_flat[] = { - {"\x22", 0, 0x6485}, /* East Asian ideograph */ - {"\x32", 0, 0x642F}, /* East Asian ideograph */ - {"\x41", 0, 0x63B2}, /* East Asian ideograph */ - {"\x47", 0, 0x6271}, /* East Asian ideograph */ - {"\x50", 0, 0x6428}, /* East Asian ideograph */ - {"\x52", 0, 0x6447}, /* East Asian ideograph */ - {"\x53", 0, 0x64E3}, /* East Asian ideograph */ - {"\x54", 0, 0x635C}, /* East Asian ideograph */ - {"\x6E", 0, 0x6534}, /* East Asian ideograph */ - {"\x71", 0, 0x62CA}, /* East Asian ideograph */ - {"\x76", 0, 0x6483}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page455 = { - marc8_31page455_flat, 0 -}; -/* PAGE 454 */ -struct yaz_iconv_trie_flat marc8_31page454_flat[] = { - {"\x29", 0, 0x5214}, /* East Asian ideograph */ - {"\x31", 0, 0x64A6}, /* East Asian ideograph */ - {"\x39", 0, 0x67C6}, /* East Asian ideograph */ - {"\x3F", 0, 0x6255}, /* East Asian ideograph */ - {"\x49", 0, 0x67B4}, /* East Asian ideograph */ - {"\x4C", 0, 0x6283}, /* East Asian ideograph */ - {"\x4F", 0, 0x6294}, /* East Asian ideograph */ - {"\x66", 0, 0x63CE}, /* East Asian ideograph */ - {"\x67", 0, 0x62CF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page454 = { - marc8_31page454_flat, 0 -}; -/* PAGE 453 */ -struct yaz_iconv_trie_flat marc8_31page453_flat[] = { - {"\x24", 0, 0x661A}, /* East Asian ideograph */ - {"\x27", 0, 0x6120}, /* East Asian ideograph */ - {"\x2A", 0, 0x5ABF}, /* East Asian ideograph */ - {"\x31", 0, 0x6159}, /* East Asian ideograph */ - {"\x3A", 0, 0x6185}, /* East Asian ideograph */ - {"\x54", 0, 0x61D0}, /* East Asian ideograph */ - {"\x67", 0, 0x621E}, /* East Asian ideograph */ - {"\x6E", 0, 0x6226}, /* East Asian ideograph */ - {"\x6F", 0, 0x622F}, /* East Asian ideograph */ - {"\x76", 0, 0x78A5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page453 = { - marc8_31page453_flat, 0 -}; -/* PAGE 452 */ -struct yaz_iconv_trie_flat marc8_31page452_flat[] = { - {"\x2B", 0, 0x6060}, /* East Asian ideograph */ - {"\x3C", 0, 0x803B}, /* East Asian ideograph */ - {"\x40", 0, 0x6052}, /* East Asian ideograph */ - {"\x60", 0, 0x6075}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page452 = { - marc8_31page452_flat, 0 -}; -/* PAGE 451 */ -struct yaz_iconv_trie_flat marc8_31page451_flat[] = { - {"\x29", 0, 0x53AE}, /* East Asian ideograph */ - {"\x2B", 0, 0x5EBF}, /* East Asian ideograph */ - {"\x2D", 0, 0x5396}, /* East Asian ideograph */ - {"\x2F", 0, 0x539B}, /* East Asian ideograph */ - {"\x34", 0, 0x5EFE}, /* East Asian ideograph */ - {"\x48", 0, 0x5F4A}, /* East Asian ideograph */ - {"\x4E", 0, 0x7BF2}, /* East Asian ideograph */ - {"\x50", 0, 0x5F5C}, /* East Asian ideograph */ - {"\x5E", 0, 0x9AF4}, /* East Asian ideograph */ - {"\x67", 0, 0x9015}, /* East Asian ideograph */ - {"\x6C", 0, 0x5F93}, /* East Asian ideograph */ - {"\x75", 0, 0x60EA}, /* East Asian ideograph */ - {"\x76", 0, 0x5FB4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page451 = { - marc8_31page451_flat, 0 -}; -/* PAGE 450 */ -struct yaz_iconv_trie_flat marc8_31page450_flat[] = { - {"\x21", 0, 0x57FC}, /* East Asian ideograph */ - {"\x22", 0, 0x5D10}, /* East Asian ideograph */ - {"\x26", 0, 0x5D18}, /* East Asian ideograph */ - {"\x36", 0, 0x5DE3}, /* East Asian ideograph */ - {"\x38", 0, 0x9245}, /* East Asian ideograph */ - {"\x49", 0, 0x83F7}, /* East Asian ideograph */ - {"\x5F", 0, 0x6A66}, /* East Asian ideograph */ - {"\x61", 0, 0x5E47}, /* East Asian ideograph */ - {"\x65", 0, 0x79CA}, /* East Asian ideograph */ - {"\x6A", 0, 0x51FC}, /* East Asian ideograph */ - {"\x6D", 0, 0x8298}, /* East Asian ideograph (duplicate simplified) */ - {"\x6E", 0, 0x7240}, /* East Asian ideograph */ - {"\x70", 0, 0x576B}, /* East Asian ideograph */ - {"\x7C", 0, 0x83F4}, /* East Asian ideograph */ - {"\x7D", 0, 0x53A2}, /* East Asian ideograph */ - {"\x7E", 0, 0x53A0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page450 = { - marc8_31page450_flat, 0 -}; -/* PAGE 449 */ -struct yaz_iconv_trie_flat marc8_31page449_flat[] = { - {"\x27", 0, 0x51A8}, /* East Asian ideograph */ - {"\x2A", 0, 0x5EBD}, /* East Asian ideograph */ - {"\x33", 0, 0x8A67}, /* East Asian ideograph */ - {"\x3F", 0, 0x5C02}, /* East Asian ideograph */ - {"\x40", 0, 0x5C06}, /* East Asian ideograph (variant of EACC 273B40) */ - {"\x52", 0, 0x6EBA}, /* East Asian ideograph */ - {"\x54", 0, 0x5C4A}, /* East Asian ideograph */ - {"\x6E", 0, 0x5D17}, /* East Asian ideograph */ - {"\x77", 0, 0x5CE9}, /* East Asian ideograph */ - {"\x78", 0, 0x5CEF}, /* East Asian ideograph */ - {"\x79", 0, 0x5D8B}, /* East Asian ideograph */ - {"\x7B", 0, 0x5D08}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page449 = { - marc8_31page449_flat, 0 -}; -/* PAGE 448 */ -struct yaz_iconv_trie_flat marc8_31page448_flat[] = { - {"\x26", 0, 0x5A3F}, /* East Asian ideograph */ - {"\x2F", 0, 0x58FB}, /* East Asian ideograph */ - {"\x41", 0, 0x5AFA}, /* East Asian ideograph */ - {"\x47", 0, 0x5ACB}, /* East Asian ideograph */ - {"\x60", 0, 0x6588}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page448 = { - marc8_31page448_flat, 0 -}; -/* PAGE 447 */ -struct yaz_iconv_trie_flat marc8_31page447_flat[] = { - {"\x21", 0, 0x591F}, /* East Asian ideograph */ - {"\x29", 0, 0x6B80}, /* East Asian ideograph */ - {"\x2F", 0, 0x7287}, /* East Asian ideograph */ - {"\x31", 0, 0x67F0}, /* East Asian ideograph */ - {"\x32", 0, 0x7AD2}, /* East Asian ideograph */ - {"\x44", 0, 0x511E}, /* East Asian ideograph */ - {"\x4D", 0, 0x59AC}, /* East Asian ideograph */ - {"\x54", 0, 0x7385}, /* East Asian ideograph */ - {"\x56", 0, 0x59D9}, /* East Asian ideograph */ - {"\x6E", 0, 0x4F84}, /* East Asian ideograph */ - {"\x70", 0, 0x5A63}, /* East Asian ideograph */ - {"\x74", 0, 0x5B43}, /* East Asian ideograph */ - {"\x7B", 0, 0x5A31}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page447 = { - marc8_31page447_flat, 0 -}; -/* PAGE 446 */ -struct yaz_iconv_trie_flat marc8_31page446_flat[] = { - {"\x21", 0, 0x962F}, /* East Asian ideograph */ - {"\x30", 0, 0x573B}, /* East Asian ideograph */ - {"\x3F", 0, 0x575A}, /* East Asian ideograph */ - {"\x4A", 0, 0x5872}, /* East Asian ideograph */ - {"\x52", 0, 0x51A2}, /* East Asian ideograph */ - {"\x54", 0, 0x5896}, /* East Asian ideograph */ - {"\x6E", 0, 0x58CA}, /* East Asian ideograph */ - {"\x76", 0, 0x58F7}, /* East Asian ideograph */ - {"\x77", 0, 0x5900}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page446 = { - marc8_31page446_flat, 0 -}; -/* PAGE 445 */ -struct yaz_iconv_trie_flat marc8_31page445_flat[] = { - {"\x30", 0, 0x751E}, /* East Asian ideograph */ - {"\x48", 0, 0x8B5F}, /* East Asian ideograph */ - {"\x49", 0, 0x5650}, /* East Asian ideograph */ - {"\x58", 0, 0x54BD}, /* East Asian ideograph */ - {"\x65", 0, 0x8086}, /* East Asian ideograph */ - {"\x68", 0, 0x56EC}, /* East Asian ideograph */ - {"\x6F", 0, 0x5700}, /* East Asian ideograph */ - {"\x7C", 0, 0x962C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page445 = { - marc8_31page445_flat, 0 -}; -/* PAGE 444 */ -struct yaz_iconv_trie_flat marc8_31page444_flat[] = { - {"\x22", 0, 0x8AEE}, /* East Asian ideograph */ - {"\x2A", 0, 0x95A7}, /* East Asian ideograph */ - {"\x32", 0, 0x8A7B}, /* East Asian ideograph */ - {"\x42", 0, 0x6B38}, /* East Asian ideograph */ - {"\x44", 0, 0x5557}, /* East Asian ideograph */ - {"\x61", 0, 0x6199}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page444 = { - marc8_31page444_flat, 0 -}; -/* PAGE 443 */ -struct yaz_iconv_trie_flat marc8_31page443_flat[] = { - {"\x39", 0, 0x52FE}, /* East Asian ideograph */ - {"\x3C", 0, 0x6B62}, /* East Asian ideograph */ - {"\x43", 0, 0x4EDD}, /* East Asian ideograph */ - {"\x47", 0, 0x55AB}, /* East Asian ideograph */ - {"\x56", 0, 0x7343}, /* East Asian ideograph */ - {"\x5C", 0, 0x5434}, /* East Asian ideograph */ - {"\x6A", 0, 0x8A36}, /* East Asian ideograph */ - {"\x71", 0, 0x546A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page443 = { - marc8_31page443_flat, 0 -}; -/* PAGE 442 */ -struct yaz_iconv_trie_flat marc8_31page442_flat[] = { - {"\x21", 0, 0x5294}, /* East Asian ideograph */ - {"\x28", 0, 0x5226}, /* East Asian ideograph */ - {"\x2E", 0, 0x8274}, /* East Asian ideograph */ - {"\x36", 0, 0x52F3}, /* East Asian ideograph */ - {"\x3C", 0, 0x52A2}, /* East Asian ideograph */ - {"\x3D", 0, 0x52E7}, /* East Asian ideograph */ - {"\x53", 0, 0x758B}, /* East Asian ideograph */ - {"\x57", 0, 0x62FE}, /* East Asian ideograph */ - {"\x58", 0, 0x4EDF}, /* East Asian ideograph */ - {"\x5B", 0, 0x6607}, /* East Asian ideograph */ - {"\x5D", 0, 0x5349}, /* East Asian ideograph */ - {"\x64", 0, 0x613D}, /* East Asian ideograph */ - {"\x6A", 0, 0x5918}, /* East Asian ideograph */ - {"\x6E", 0, 0x5373}, /* East Asian ideograph */ - {"\x6E", 0, 0x5373}, /* East Asian ideograph */ - {"\x73", 0, 0x5374}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page442 = { - marc8_31page442_flat, 0 -}; -/* PAGE 441 */ -struct yaz_iconv_trie_flat marc8_31page441_flat[] = { - {"\x24", 0, 0x634C}, /* East Asian ideograph */ - {"\x2A", 0, 0x4E0C}, /* East Asian ideograph */ - {"\x32", 0, 0x5190}, /* East Asian ideograph */ - {"\x4F", 0, 0x5202}, /* East Asian ideograph */ - {"\x56", 0, 0x5211}, /* East Asian ideograph */ - {"\x5F", 0, 0x52B5}, /* East Asian ideograph */ - {"\x66", 0, 0x5234}, /* East Asian ideograph */ - {"\x6B", 0, 0x5C05}, /* East Asian ideograph */ - {"\x72", 0, 0x5265}, /* East Asian ideograph */ - {"\x77", 0, 0x8CF8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page441 = { - marc8_31page441_flat, 0 -}; -/* PAGE 440 */ -struct yaz_iconv_trie_flat marc8_31page440_flat[] = { - {"\x24", 0, 0x7B87}, /* East Asian ideograph */ - {"\x51", 0, 0x510C}, /* East Asian ideograph */ - {"\x53", 0, 0x50E3}, /* East Asian ideograph */ - {"\x5F", 0, 0x50BB}, /* East Asian ideograph (variant of EACC 4B325F) */ - {"\x61", 0, 0x5039}, /* East Asian ideograph */ - {"\x63", 0, 0x4FAD}, /* East Asian ideograph */ - {"\x72", 0, 0x706E}, /* East Asian ideograph */ - {"\x79", 0, 0x514E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page440 = { - marc8_31page440_flat, 0 -}; -/* PAGE 439 */ -struct yaz_iconv_trie_flat marc8_31page439_flat[] = { - {"\x32", 0, 0x4ECF}, /* East Asian ideograph */ - {"\x3A", 0, 0x62BB}, /* East Asian ideograph */ - {"\x40", 0, 0x4F32}, /* East Asian ideograph */ - {"\x47", 0, 0x5002}, /* East Asian ideograph */ - {"\x4C", 0, 0x5008}, /* East Asian ideograph */ - {"\x5F", 0, 0x4FA3}, /* East Asian ideograph */ - {"\x64", 0, 0x7AE2}, /* East Asian ideograph */ - {"\x65", 0, 0x349E}, /* East Asian ideograph (Unicode CJK Extension A) */ - {"\x77", 0, 0x5E78}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page439 = { - marc8_31page439_flat, 0 -}; -/* PAGE 438 */ -struct yaz_iconv_trie_flat marc8_31page438_flat[] = { - {"\x21", 0, 0x5F0C}, /* East Asian ideograph */ - {"\x2D", 0, 0x4E17}, /* East Asian ideograph */ - {"\x32", 0, 0x7ADD}, /* East Asian ideograph */ - {"\x45", 0, 0x4E57}, /* East Asian ideograph */ - {"\x51", 0, 0x5F0D}, /* East Asian ideograph */ - {"\x53", 0, 0x4E3C}, /* East Asian ideograph */ - {"\x58", 0, 0x4E9C}, /* East Asian ideograph */ - {"\x5B", 0, 0x4EBE}, /* East Asian ideograph */ - {"\x61", 0, 0x4EB0}, /* East Asian ideograph */ - {"\x6C", 0, 0x8B8E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page438 = { - marc8_31page438_flat, 0 -}; -/* PAGE 437 */ -struct yaz_iconv_trie_dir marc8_31page437_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {439, 0, 0}, - {440, 0, 0}, - {441, 0, 0}, - {442, 0, 0}, - {443, 0, 0}, - {444, 0, 0}, - {445, 0, 0}, - {446, 0, 0}, - {447, 0, 0}, - {448, 0, 0}, - {449, 0, 0}, - {450, 0, 0}, - {451, 0, 0}, - {452, 0, 0}, - {453, 0, 0}, - {454, 0, 0}, - {455, 0, 0}, - {456, 0, 0}, - {457, 0, 0}, - {458, 0, 0}, - {459, 0, 0}, - {460, 0, 0}, - {461, 0, 0}, - {462, 0, 0}, - {463, 0, 0}, - {464, 0, 0}, - {465, 0, 0}, - {466, 0, 0}, - {467, 0, 0}, - {468, 0, 0}, - {469, 0, 0}, - {470, 0, 0}, - {471, 0, 0}, - {472, 0, 0}, - {473, 0, 0}, - {474, 0, 0}, - {475, 0, 0}, - {476, 0, 0}, - {477, 0, 0}, - {478, 0, 0}, - {479, 0, 0}, - {480, 0, 0}, - {481, 0, 0}, - {482, 0, 0}, - {483, 0, 0}, - {484, 0, 0}, - {485, 0, 0}, - {486, 0, 0}, - {487, 0, 0}, - {488, 0, 0}, - {489, 0, 0}, - {490, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {491, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {492, 0, 0}, - {0, 0, 0}, - {493, 0, 0}, - {0, 0, 0}, - {494, 0, 0}, - {0, 0, 0}, - {495, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {496, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {497, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page437 = { - 0, marc8_31page437_dir -}; -/* PAGE 436 */ -struct yaz_iconv_trie_flat marc8_31page436_flat[] = { - {"\x28", 0, 0x9F86}, /* East Asian ideograph */ - {"\x2B", 0, 0x9F85}, /* East Asian ideograph */ - {"\x62", 0, 0x9F9B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page436 = { - marc8_31page436_flat, 0 -}; -/* PAGE 435 */ -struct yaz_iconv_trie_flat marc8_31page435_flat[] = { - {"\x2B", 0, 0x9F0D}, /* East Asian ideograph */ - {"\x7B", 0, 0x9F51}, /* East Asian ideograph */ - {"\x7C", 0, 0x9F80}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page435 = { - marc8_31page435_flat, 0 -}; -/* PAGE 434 */ -struct yaz_iconv_trie_flat marc8_31page434_flat[] = { - {"\x6A", 0, 0x9EEA}, /* East Asian ideograph */ - {"\x7A", 0, 0x9EFE}, /* East Asian ideograph */ - {"\x7C", 0, 0x9F0B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page434 = { - marc8_31page434_flat, 0 -}; -/* PAGE 433 */ -struct yaz_iconv_trie_flat marc8_31page433_flat[] = { - {"\x29", 0, 0x9E71}, /* East Asian ideograph */ - {"\x36", 0, 0x9E2C}, /* East Asian ideograph */ - {"\x3A", 0, 0x9E73}, /* East Asian ideograph */ - {"\x3B", 0, 0x9E42}, /* East Asian ideograph */ - {"\x3C", 0, 0x5364}, /* East Asian ideograph */ - {"\x42", 0, 0x9E7E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page433 = { - marc8_31page433_flat, 0 -}; -/* PAGE 432 */ -struct yaz_iconv_trie_flat marc8_31page432_flat[] = { - {"\x28", 0, 0x9E58}, /* East Asian ideograph */ - {"\x3E", 0, 0x9E37}, /* East Asian ideograph */ - {"\x47", 0, 0x9E68}, /* East Asian ideograph */ - {"\x49", 0, 0x9E47}, /* East Asian ideograph */ - {"\x57", 0, 0x9E6B}, /* East Asian ideograph */ - {"\x5B", 0, 0x9E6C}, /* East Asian ideograph */ - {"\x65", 0, 0x9E69}, /* East Asian ideograph */ - {"\x6C", 0, 0x9E6A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page432 = { - marc8_31page432_flat, 0 -}; -/* PAGE 431 */ -struct yaz_iconv_trie_flat marc8_31page431_flat[] = { - {"\x2A", 0, 0x9E46}, /* East Asian ideograph */ - {"\x35", 0, 0x9E2B}, /* East Asian ideograph */ - {"\x52", 0, 0x9E4E}, /* East Asian ideograph */ - {"\x59", 0, 0x9E5C}, /* East Asian ideograph */ - {"\x5C", 0, 0x9E5B}, /* East Asian ideograph */ - {"\x60", 0, 0x9E55}, /* East Asian ideograph */ - {"\x6B", 0, 0x9E57}, /* East Asian ideograph */ - {"\x6C", 0, 0x9E4B}, /* East Asian ideograph */ - {"\x77", 0, 0x9E63}, /* East Asian ideograph */ - {"\x79", 0, 0x9E5A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page431 = { - marc8_31page431_flat, 0 -}; -/* PAGE 430 */ -struct yaz_iconv_trie_flat marc8_31page430_flat[] = { - {"\x28", 0, 0x9E28}, /* East Asian ideograph */ - {"\x44", 0, 0x9E32}, /* East Asian ideograph */ - {"\x48", 0, 0x9E31}, /* East Asian ideograph */ - {"\x59", 0, 0x9E38}, /* East Asian ideograph */ - {"\x65", 0, 0x9E39}, /* East Asian ideograph */ - {"\x68", 0, 0x9E3A}, /* East Asian ideograph */ - {"\x70", 0, 0x9E48}, /* East Asian ideograph */ - {"\x75", 0, 0x9E41}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page430 = { - marc8_31page430_flat, 0 -}; -/* PAGE 429 */ -struct yaz_iconv_trie_flat marc8_31page429_flat[] = { - {"\x21", 0, 0x9CD9}, /* East Asian ideograph */ - {"\x25", 0, 0x9CCC}, /* East Asian ideograph */ - {"\x28", 0, 0x9CD5}, /* East Asian ideograph */ - {"\x29", 0, 0x9CA3}, /* East Asian ideograph */ - {"\x2A", 0, 0x9CD3}, /* East Asian ideograph */ - {"\x32", 0, 0x9CD8}, /* East Asian ideograph */ - {"\x38", 0, 0x9CDF}, /* East Asian ideograph */ - {"\x3A", 0, 0x9C85}, /* East Asian ideograph */ - {"\x3B", 0, 0x9C9F}, /* East Asian ideograph */ - {"\x40", 0, 0x9CBC}, /* East Asian ideograph */ - {"\x4F", 0, 0x9CE2}, /* East Asian ideograph */ - {"\x55", 0, 0x9C8E}, /* East Asian ideograph */ - {"\x58", 0, 0x9C9A}, /* East Asian ideograph */ - {"\x6B", 0, 0x9CA1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page429 = { - marc8_31page429_flat, 0 -}; -/* PAGE 428 */ -struct yaz_iconv_trie_flat marc8_31page428_flat[] = { - {"\x22", 0, 0x9CAE}, /* East Asian ideograph */ - {"\x25", 0, 0x9CBA}, /* East Asian ideograph */ - {"\x27", 0, 0x9CB2}, /* East Asian ideograph */ - {"\x28", 0, 0x9CB4}, /* East Asian ideograph */ - {"\x2C", 0, 0x9CB1}, /* East Asian ideograph */ - {"\x2D", 0, 0x9CB7}, /* East Asian ideograph */ - {"\x2F", 0, 0x9CB5}, /* East Asian ideograph */ - {"\x31", 0, 0x9CB6}, /* East Asian ideograph */ - {"\x34", 0, 0x9CBB}, /* East Asian ideograph */ - {"\x3E", 0, 0x9CCA}, /* East Asian ideograph */ - {"\x4B", 0, 0x9CBD}, /* East Asian ideograph */ - {"\x54", 0, 0x9CC4}, /* East Asian ideograph */ - {"\x59", 0, 0x9CC6}, /* East Asian ideograph */ - {"\x5C", 0, 0x9CC7}, /* East Asian ideograph */ - {"\x6A", 0, 0x9CCB}, /* East Asian ideograph */ - {"\x6E", 0, 0x9CA5}, /* East Asian ideograph */ - {"\x71", 0, 0x9CCE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page428 = { - marc8_31page428_flat, 0 -}; -/* PAGE 427 */ -struct yaz_iconv_trie_flat marc8_31page427_flat[] = { - {"\x21", 0, 0x9C86}, /* East Asian ideograph */ - {"\x29", 0, 0x9C87}, /* East Asian ideograph */ - {"\x2B", 0, 0x9C90}, /* East Asian ideograph */ - {"\x31", 0, 0x9C8B}, /* East Asian ideograph */ - {"\x39", 0, 0x9C9E}, /* East Asian ideograph */ - {"\x3C", 0, 0x9C91}, /* East Asian ideograph */ - {"\x3D", 0, 0x9C92}, /* East Asian ideograph */ - {"\x42", 0, 0x9C95}, /* East Asian ideograph */ - {"\x56", 0, 0x9CA9}, /* East Asian ideograph */ - {"\x5F", 0, 0x9CA0}, /* East Asian ideograph */ - {"\x6E", 0, 0x9CA7}, /* East Asian ideograph */ - {"\x7A", 0, 0x9CAD}, /* East Asian ideograph */ - {"\x7C", 0, 0x9CB0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page427 = { - marc8_31page427_flat, 0 -}; -/* PAGE 426 */ -struct yaz_iconv_trie_flat marc8_31page426_flat[] = { - {"\x3C", 0, 0x9B49}, /* East Asian ideograph */ - {"\x5D", 0, 0x9C82}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page426 = { - marc8_31page426_flat, 0 -}; -/* PAGE 425 */ -struct yaz_iconv_trie_flat marc8_31page425_flat[] = { - {"\x6C", 0, 0x960B}, /* East Asian ideograph */ - {"\x74", 0, 0x9604}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page425 = { - marc8_31page425_flat, 0 -}; -/* PAGE 424 */ -struct yaz_iconv_trie_flat marc8_31page424_flat[] = { - {"\x21", 0, 0x9AA3}, /* East Asian ideograph */ - {"\x22", 0, 0x9A81}, /* East Asian ideograph */ - {"\x27", 0, 0x9A85}, /* East Asian ideograph */ - {"\x33", 0, 0x9AA7}, /* East Asian ideograph */ - {"\x6D", 0, 0x9ACB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page424 = { - marc8_31page424_flat, 0 -}; -/* PAGE 423 */ -struct yaz_iconv_trie_flat marc8_31page423_flat[] = { - {"\x3D", 0, 0x9A90}, /* East Asian ideograph */ - {"\x40", 0, 0x9A92}, /* East Asian ideograph */ - {"\x47", 0, 0x9A93}, /* East Asian ideograph */ - {"\x5A", 0, 0x9A9F}, /* East Asian ideograph */ - {"\x60", 0, 0x9A98}, /* East Asian ideograph */ - {"\x69", 0, 0x9A7A}, /* East Asian ideograph */ - {"\x6A", 0, 0x9A9D}, /* East Asian ideograph */ - {"\x70", 0, 0x9A9C}, /* East Asian ideograph */ - {"\x79", 0, 0x9A96}, /* East Asian ideograph */ - {"\x7A", 0, 0x9AA2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page423 = { - marc8_31page423_flat, 0 -}; -/* PAGE 422 */ -struct yaz_iconv_trie_flat marc8_31page422_flat[] = { - {"\x22", 0, 0x98E8}, /* East Asian ideograph */ - {"\x63", 0, 0x9A75}, /* East Asian ideograph */ - {"\x69", 0, 0x9A80}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page422 = { - marc8_31page422_flat, 0 -}; -/* PAGE 421 */ -struct yaz_iconv_trie_flat marc8_31page421_flat[] = { - {"\x32", 0, 0x997D}, /* East Asian ideograph */ - {"\x53", 0, 0x9967}, /* East Asian ideograph */ - {"\x66", 0, 0x9969}, /* East Asian ideograph */ - {"\x6A", 0, 0x9990}, /* East Asian ideograph */ - {"\x6D", 0, 0x9991}, /* East Asian ideograph */ - {"\x70", 0, 0x998D}, /* East Asian ideograph */ - {"\x72", 0, 0x9994}, /* East Asian ideograph */ - {"\x75", 0, 0x9993}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page421 = { - marc8_31page421_flat, 0 -}; -/* PAGE 420 */ -struct yaz_iconv_trie_flat marc8_31page420_flat[] = { - {"\x21", 0, 0x98A2}, /* East Asian ideograph */ - {"\x29", 0, 0x98A5}, /* East Asian ideograph */ - {"\x30", 0, 0x989E}, /* East Asian ideograph */ - {"\x31", 0, 0x98A7}, /* East Asian ideograph */ - {"\x53", 0, 0x98D9}, /* East Asian ideograph */ - {"\x6C", 0, 0x996B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page420 = { - marc8_31page420_flat, 0 -}; -/* PAGE 419 */ -struct yaz_iconv_trie_flat marc8_31page419_flat[] = { - {"\x23", 0, 0x9880}, /* East Asian ideograph */ - {"\x2C", 0, 0x988F}, /* East Asian ideograph */ - {"\x6B", 0, 0x98A1}, /* East Asian ideograph */ - {"\x77", 0, 0x989F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page419 = { - marc8_31page419_flat, 0 -}; -/* PAGE 418 */ -struct yaz_iconv_trie_flat marc8_31page418_flat[] = { - {"\x43", 0, 0x97AF}, /* East Asian ideograph */ - {"\x54", 0, 0x97EA}, /* East Asian ideograph */ - {"\x5C", 0, 0x97EB}, /* East Asian ideograph */ - {"\x79", 0, 0x9878}, /* East Asian ideograph */ - {"\x7B", 0, 0x9883}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page418 = { - marc8_31page418_flat, 0 -}; -/* PAGE 417 */ -struct yaz_iconv_trie_flat marc8_31page417_flat[] = { - {"\x76", 0, 0x9753}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page417 = { - marc8_31page417_flat, 0 -}; -/* PAGE 416 */ -struct yaz_iconv_trie_flat marc8_31page416_flat[] = { - {"\x44", 0, 0x9655}, /* East Asian ideograph */ - {"\x46", 0, 0x9649}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page416 = { - marc8_31page416_flat, 0 -}; -/* PAGE 415 */ -struct yaz_iconv_trie_flat marc8_31page415_flat[] = { - {"\x36", 0, 0x95F3}, /* East Asian ideograph */ - {"\x42", 0, 0x9606}, /* East Asian ideograph */ - {"\x44", 0, 0x9603}, /* East Asian ideograph */ - {"\x48", 0, 0x960F}, /* East Asian ideograph */ - {"\x49", 0, 0x9608}, /* East Asian ideograph */ - {"\x4D", 0, 0x9609}, /* East Asian ideograph */ - {"\x4F", 0, 0x960A}, /* East Asian ideograph */ - {"\x50", 0, 0x960C}, /* East Asian ideograph */ - {"\x52", 0, 0x960D}, /* East Asian ideograph */ - {"\x5A", 0, 0x9612}, /* East Asian ideograph */ - {"\x60", 0, 0x9619}, /* East Asian ideograph */ - {"\x69", 0, 0x961A}, /* East Asian ideograph */ - {"\x6F", 0, 0x95FC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page415 = { - marc8_31page415_flat, 0 -}; -/* PAGE 414 */ -struct yaz_iconv_trie_flat marc8_31page414_flat[] = { - {"\x3E", 0, 0x9554}, /* East Asian ideograph */ - {"\x3F", 0, 0x9572}, /* East Asian ideograph */ - {"\x4A", 0, 0x956C}, /* East Asian ideograph */ - {"\x5C", 0, 0x9565}, /* East Asian ideograph */ - {"\x69", 0, 0x9567}, /* East Asian ideograph */ - {"\x6F", 0, 0x9569}, /* East Asian ideograph */ - {"\x71", 0, 0x954A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page414 = { - marc8_31page414_flat, 0 -}; -/* PAGE 413 */ -struct yaz_iconv_trie_flat marc8_31page413_flat[] = { - {"\x2F", 0, 0x94E9}, /* East Asian ideograph */ - {"\x32", 0, 0x94F4}, /* East Asian ideograph */ - {"\x34", 0, 0x9566}, /* East Asian ideograph */ - {"\x3C", 0, 0x9568}, /* East Asian ideograph */ - {"\x3E", 0, 0x94F9}, /* East Asian ideograph */ - {"\x4D", 0, 0x956B}, /* East Asian ideograph */ - {"\x50", 0, 0x950E}, /* East Asian ideograph */ - {"\x51", 0, 0x950F}, /* East Asian ideograph */ - {"\x58", 0, 0x9561}, /* East Asian ideograph */ - {"\x5E", 0, 0x9562}, /* East Asian ideograph */ - {"\x60", 0, 0x9563}, /* East Asian ideograph */ - {"\x67", 0, 0x94E7}, /* East Asian ideograph */ - {"\x69", 0, 0x9564}, /* East Asian ideograph */ - {"\x74", 0, 0x9571}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page413 = { - marc8_31page413_flat, 0 -}; -/* PAGE 412 */ -struct yaz_iconv_trie_flat marc8_31page412_flat[] = { - {"\x21", 0, 0x9553}, /* East Asian ideograph */ - {"\x28", 0, 0x9552}, /* East Asian ideograph */ - {"\x29", 0, 0x84E5}, /* East Asian ideograph */ - {"\x2D", 0, 0x9549}, /* East Asian ideograph */ - {"\x42", 0, 0x94E0}, /* East Asian ideograph */ - {"\x47", 0, 0x954F}, /* East Asian ideograph */ - {"\x4A", 0, 0x953C}, /* East Asian ideograph */ - {"\x56", 0, 0x955B}, /* East Asian ideograph */ - {"\x5A", 0, 0x955F}, /* East Asian ideograph */ - {"\x62", 0, 0x956A}, /* East Asian ideograph */ - {"\x66", 0, 0x933E}, /* East Asian ideograph */ - {"\x7C", 0, 0x9546}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page412 = { - marc8_31page412_flat, 0 -}; -/* PAGE 411 */ -struct yaz_iconv_trie_flat marc8_31page411_flat[] = { - {"\x31", 0, 0x9528}, /* East Asian ideograph */ - {"\x32", 0, 0x9531}, /* East Asian ideograph */ - {"\x4D", 0, 0x9534}, /* East Asian ideograph */ - {"\x4E", 0, 0x9545}, /* East Asian ideograph */ - {"\x51", 0, 0x9517}, /* East Asian ideograph */ - {"\x5E", 0, 0x94E1}, /* East Asian ideograph */ - {"\x64", 0, 0x9536}, /* East Asian ideograph */ - {"\x67", 0, 0x9537}, /* East Asian ideograph */ - {"\x68", 0, 0x9518}, /* East Asian ideograph */ - {"\x6F", 0, 0x9538}, /* East Asian ideograph */ - {"\x7A", 0, 0x9550}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page411 = { - marc8_31page411_flat, 0 -}; -/* PAGE 410 */ -struct yaz_iconv_trie_flat marc8_31page410_flat[] = { - {"\x27", 0, 0x94D7}, /* East Asian ideograph */ - {"\x2B", 0, 0x9503}, /* East Asian ideograph */ - {"\x2D", 0, 0x94A1}, /* East Asian ideograph */ - {"\x2E", 0, 0x9502}, /* East Asian ideograph */ - {"\x35", 0, 0x950A}, /* East Asian ideograph */ - {"\x3E", 0, 0x94E4}, /* East Asian ideograph */ - {"\x40", 0, 0x9506}, /* East Asian ideograph */ - {"\x41", 0, 0x9507}, /* East Asian ideograph */ - {"\x4D", 0, 0x952B}, /* East Asian ideograph */ - {"\x57", 0, 0x9529}, /* East Asian ideograph */ - {"\x58", 0, 0x952C}, /* East Asian ideograph */ - {"\x5B", 0, 0x9516}, /* East Asian ideograph */ - {"\x66", 0, 0x9515}, /* East Asian ideograph */ - {"\x69", 0, 0x94FC}, /* East Asian ideograph */ - {"\x6D", 0, 0x951B}, /* East Asian ideograph */ - {"\x71", 0, 0x951D}, /* East Asian ideograph */ - {"\x72", 0, 0x951E}, /* East Asian ideograph */ - {"\x74", 0, 0x951F}, /* East Asian ideograph */ - {"\x75", 0, 0x9494}, /* East Asian ideograph */ - {"\x78", 0, 0x9522}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page410 = { - marc8_31page410_flat, 0 -}; -/* PAGE 409 */ -struct yaz_iconv_trie_flat marc8_31page409_flat[] = { - {"\x2B", 0, 0x94C6}, /* East Asian ideograph */ - {"\x2F", 0, 0x94F3}, /* East Asian ideograph */ - {"\x31", 0, 0x94F1}, /* East Asian ideograph */ - {"\x35", 0, 0x94F5}, /* East Asian ideograph */ - {"\x40", 0, 0x94D6}, /* East Asian ideograph */ - {"\x43", 0, 0x94D2}, /* East Asian ideograph */ - {"\x46", 0, 0x94D1}, /* East Asian ideograph */ - {"\x49", 0, 0x94D5}, /* East Asian ideograph */ - {"\x4F", 0, 0x94DE}, /* East Asian ideograph */ - {"\x50", 0, 0x94DF}, /* East Asian ideograph */ - {"\x55", 0, 0x94EB}, /* East Asian ideograph */ - {"\x58", 0, 0x94EF}, /* East Asian ideograph */ - {"\x59", 0, 0x94E5}, /* East Asian ideograph */ - {"\x5B", 0, 0x94E3}, /* East Asian ideograph */ - {"\x62", 0, 0x94EA}, /* East Asian ideograph */ - {"\x64", 0, 0x94F7}, /* East Asian ideograph */ - {"\x6A", 0, 0x9512}, /* East Asian ideograph */ - {"\x6C", 0, 0x950D}, /* East Asian ideograph */ - {"\x71", 0, 0x94FD}, /* East Asian ideograph */ - {"\x72", 0, 0x9513}, /* East Asian ideograph */ - {"\x75", 0, 0x9514}, /* East Asian ideograph */ - {"\x7D", 0, 0x94D8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page409 = { - marc8_31page409_flat, 0 -}; -/* PAGE 408 */ -struct yaz_iconv_trie_flat marc8_31page408_flat[] = { - {"\x21", 0, 0x9495}, /* East Asian ideograph */ - {"\x22", 0, 0x9490}, /* East Asian ideograph */ - {"\x23", 0, 0x94AD}, /* East Asian ideograph */ - {"\x24", 0, 0x94AA}, /* East Asian ideograph */ - {"\x25", 0, 0x94AB}, /* East Asian ideograph */ - {"\x28", 0, 0x94AC}, /* East Asian ideograph */ - {"\x31", 0, 0x94AF}, /* East Asian ideograph */ - {"\x37", 0, 0x949B}, /* East Asian ideograph */ - {"\x4B", 0, 0x94A3}, /* East Asian ideograph */ - {"\x51", 0, 0x94C8}, /* East Asian ideograph */ - {"\x52", 0, 0x94C9}, /* East Asian ideograph */ - {"\x54", 0, 0x94CB}, /* East Asian ideograph */ - {"\x55", 0, 0x94CA}, /* East Asian ideograph */ - {"\x58", 0, 0x94B0}, /* East Asian ideograph */ - {"\x5C", 0, 0x94CC}, /* East Asian ideograph */ - {"\x5F", 0, 0x94B6}, /* East Asian ideograph */ - {"\x60", 0, 0x94B7}, /* East Asian ideograph */ - {"\x61", 0, 0x94B2}, /* East Asian ideograph */ - {"\x64", 0, 0x94BA}, /* East Asian ideograph */ - {"\x6D", 0, 0x94CD}, /* East Asian ideograph */ - {"\x6F", 0, 0x94BD}, /* East Asian ideograph */ - {"\x74", 0, 0x94BF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page408 = { - marc8_31page408_flat, 0 -}; -/* PAGE 407 */ -struct yaz_iconv_trie_flat marc8_31page407_flat[] = { - {"\x5C", 0, 0x917E}, /* East Asian ideograph */ - {"\x5D", 0, 0x917D}, /* East Asian ideograph */ - {"\x61", 0, 0x9487}, /* East Asian ideograph */ - {"\x62", 0, 0x9486}, /* East Asian ideograph */ - {"\x63", 0, 0x948C}, /* East Asian ideograph */ - {"\x64", 0, 0x948B}, /* East Asian ideograph */ - {"\x6A", 0, 0x948D}, /* East Asian ideograph */ - {"\x6B", 0, 0x948E}, /* East Asian ideograph */ - {"\x79", 0, 0x9492}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page407 = { - marc8_31page407_flat, 0 -}; -/* PAGE 406 */ -struct yaz_iconv_trie_flat marc8_31page406_flat[] = { - {"\x21", 0, 0x90F8}, /* East Asian ideograph */ - {"\x2B", 0, 0x90BA}, /* East Asian ideograph */ - {"\x2C", 0, 0x90D0}, /* East Asian ideograph */ - {"\x31", 0, 0x909D}, /* East Asian ideograph */ - {"\x40", 0, 0x90E6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page406 = { - marc8_31page406_flat, 0 -}; -/* PAGE 405 */ -struct yaz_iconv_trie_flat marc8_31page405_flat[] = { - {"\x23", 0, 0x90CF}, /* East Asian ideograph */ - {"\x4C", 0, 0x90D3}, /* East Asian ideograph */ - {"\x5A", 0, 0x90E7}, /* East Asian ideograph */ - {"\x5C", 0, 0x90AC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page405 = { - marc8_31page405_flat, 0 -}; -/* PAGE 404 */ -struct yaz_iconv_trie_flat marc8_31page404_flat[] = { - {"\x4E", 0, 0x8FF8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page404 = { - marc8_31page404_flat, 0 -}; -/* PAGE 403 */ -struct yaz_iconv_trie_flat marc8_31page403_flat[] = { - {"\x30", 0, 0x8F98}, /* East Asian ideograph */ - {"\x57", 0, 0x8F79}, /* East Asian ideograph */ - {"\x5A", 0, 0x8F73}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page403 = { - marc8_31page403_flat, 0 -}; -/* PAGE 402 */ -struct yaz_iconv_trie_flat marc8_31page402_flat[] = { - {"\x3E", 0, 0x8F71}, /* East Asian ideograph */ - {"\x3F", 0, 0x8F7A}, /* East Asian ideograph */ - {"\x42", 0, 0x8F75}, /* East Asian ideograph */ - {"\x47", 0, 0x8F77}, /* East Asian ideograph */ - {"\x4F", 0, 0x8F78}, /* East Asian ideograph */ - {"\x59", 0, 0x8F82}, /* East Asian ideograph */ - {"\x5B", 0, 0x8F81}, /* East Asian ideograph */ - {"\x6B", 0, 0x8F8B}, /* East Asian ideograph */ - {"\x6D", 0, 0x8F8A}, /* East Asian ideograph */ - {"\x7A", 0, 0x8F8F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page402 = { - marc8_31page402_flat, 0 -}; -/* PAGE 401 */ -struct yaz_iconv_trie_flat marc8_31page401_flat[] = { - {"\x2E", 0, 0x8DC4}, /* East Asian ideograph */ - {"\x40", 0, 0x8DF8}, /* East Asian ideograph */ - {"\x46", 0, 0x8E70}, /* East Asian ideograph */ - {"\x57", 0, 0x8DFB}, /* East Asian ideograph */ - {"\x5E", 0, 0x8DF9}, /* East Asian ideograph */ - {"\x5F", 0, 0x8DDE}, /* East Asian ideograph */ - {"\x60", 0, 0x8E2C}, /* East Asian ideograph */ - {"\x6B", 0, 0x8E7F}, /* East Asian ideograph */ - {"\x70", 0, 0x8E9C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page401 = { - marc8_31page401_flat, 0 -}; -/* PAGE 400 */ -struct yaz_iconv_trie_flat marc8_31page400_flat[] = { - {"\x66", 0, 0x8DB1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page400 = { - marc8_31page400_flat, 0 -}; -/* PAGE 399 */ -struct yaz_iconv_trie_flat marc8_31page399_flat[] = { - {"\x25", 0, 0x8D3D}, /* East Asian ideograph */ - {"\x26", 0, 0x8D5C}, /* East Asian ideograph */ - {"\x3A", 0, 0x8D46}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page399 = { - marc8_31page399_flat, 0 -}; -/* PAGE 398 */ -struct yaz_iconv_trie_flat marc8_31page398_flat[] = { - {"\x4E", 0, 0x8D33}, /* East Asian ideograph */ - {"\x51", 0, 0x8D36}, /* East Asian ideograph */ - {"\x5F", 0, 0x8D47}, /* East Asian ideograph */ - {"\x6A", 0, 0x8D53}, /* East Asian ideograph */ - {"\x6B", 0, 0x8D55}, /* East Asian ideograph */ - {"\x70", 0, 0x8D49}, /* East Asian ideograph */ - {"\x7E", 0, 0x8D59}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page398 = { - marc8_31page398_flat, 0 -}; -/* PAGE 397 */ -struct yaz_iconv_trie_flat marc8_31page397_flat[] = { - {"\x2D", 0, 0x8C30}, /* East Asian ideograph */ - {"\x37", 0, 0x8C20}, /* East Asian ideograph */ - {"\x39", 0, 0x8C33}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page397 = { - marc8_31page397_flat, 0 -}; -/* PAGE 396 */ -struct yaz_iconv_trie_flat marc8_31page396_flat[] = { - {"\x30", 0, 0x8BB4}, /* East Asian ideograph */ - {"\x38", 0, 0x8C29}, /* East Asian ideograph */ - {"\x4D", 0, 0x8C2E}, /* East Asian ideograph */ - {"\x59", 0, 0x8C2F}, /* East Asian ideograph */ - {"\x68", 0, 0x8C35}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page396 = { - marc8_31page396_flat, 0 -}; -/* PAGE 395 */ -struct yaz_iconv_trie_flat marc8_31page395_flat[] = { - {"\x25", 0, 0x8BF9}, /* East Asian ideograph */ - {"\x2C", 0, 0x8BFC}, /* East Asian ideograph */ - {"\x36", 0, 0x8BE4}, /* East Asian ideograph */ - {"\x38", 0, 0x8BFD}, /* East Asian ideograph */ - {"\x3B", 0, 0x8C00}, /* East Asian ideograph */ - {"\x40", 0, 0x8C02}, /* East Asian ideograph */ - {"\x44", 0, 0x8C19}, /* East Asian ideograph */ - {"\x45", 0, 0x8BE8}, /* East Asian ideograph */ - {"\x4E", 0, 0x8C0C}, /* East Asian ideograph */ - {"\x57", 0, 0x8C14}, /* East Asian ideograph */ - {"\x59", 0, 0x8C11}, /* East Asian ideograph */ - {"\x5D", 0, 0x8C16}, /* East Asian ideograph */ - {"\x62", 0, 0x8C1D}, /* East Asian ideograph */ - {"\x73", 0, 0x8C21}, /* East Asian ideograph */ - {"\x7A", 0, 0x8BCC}, /* East Asian ideograph */ - {"\x7D", 0, 0x8C27}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page395 = { - marc8_31page395_flat, 0 -}; -/* PAGE 394 */ -struct yaz_iconv_trie_flat marc8_31page394_flat[] = { - {"\x2A", 0, 0x8BB5}, /* East Asian ideograph */ - {"\x3B", 0, 0x8BCE}, /* East Asian ideograph */ - {"\x3C", 0, 0x8BD2}, /* East Asian ideograph */ - {"\x3C", 0, 0x8BD2}, /* East Asian ideograph */ - {"\x4F", 0, 0x8BD6}, /* East Asian ideograph */ - {"\x50", 0, 0x8BD3}, /* East Asian ideograph */ - {"\x56", 0, 0x8BE9}, /* East Asian ideograph */ - {"\x5D", 0, 0x8BD4}, /* East Asian ideograph */ - {"\x5E", 0, 0x8BDC}, /* East Asian ideograph */ - {"\x71", 0, 0x8BEE}, /* East Asian ideograph */ - {"\x7E", 0, 0x8C07}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page394 = { - marc8_31page394_flat, 0 -}; -/* PAGE 393 */ -struct yaz_iconv_trie_flat marc8_31page393_flat[] = { - {"\x2B", 0, 0x89D1}, /* East Asian ideograph */ - {"\x32", 0, 0x89CC}, /* East Asian ideograph */ - {"\x60", 0, 0x89EF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page393 = { - marc8_31page393_flat, 0 -}; -/* PAGE 392 */ -struct yaz_iconv_trie_flat marc8_31page392_flat[] = { - {"\x2D", 0, 0x88E3}, /* East Asian ideograph */ - {"\x32", 0, 0x7962}, /* East Asian ideograph */ - {"\x66", 0, 0x89C7}, /* East Asian ideograph */ - {"\x6F", 0, 0x89CB}, /* East Asian ideograph */ - {"\x7D", 0, 0x89CF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page392 = { - marc8_31page392_flat, 0 -}; -/* PAGE 391 */ -struct yaz_iconv_trie_flat marc8_31page391_flat[] = { - {"\x60", 0, 0x88E2}, /* East Asian ideograph */ - {"\x72", 0, 0x88E5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page391 = { - marc8_31page391_flat, 0 -}; -/* PAGE 390 */ -struct yaz_iconv_trie_flat marc8_31page390_flat[] = { - {"\x51", 0, 0x8511}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page390 = { - marc8_31page390_flat, 0 -}; -/* PAGE 389 */ -struct yaz_iconv_trie_flat marc8_31page389_flat[] = { - {"\x4C", 0, 0x866E}, /* East Asian ideograph */ - {"\x55", 0, 0x86CF}, /* East Asian ideograph */ - {"\x5D", 0, 0x867F}, /* East Asian ideograph */ - {"\x61", 0, 0x86F4}, /* East Asian ideograph */ - {"\x64", 0, 0x877E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page389 = { - marc8_31page389_flat, 0 -}; -/* PAGE 388 */ -struct yaz_iconv_trie_flat marc8_31page388_flat[] = { - {"\x55", 0, 0x86F3}, /* East Asian ideograph */ - {"\x6E", 0, 0x86F0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page388 = { - marc8_31page388_flat, 0 -}; -/* PAGE 387 */ -struct yaz_iconv_trie_flat marc8_31page387_flat[] = { - {"\x2F", 0, 0x86F1}, /* East Asian ideograph */ - {"\x34", 0, 0x86AC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page387 = { - marc8_31page387_flat, 0 -}; -/* PAGE 386 */ -struct yaz_iconv_trie_flat marc8_31page386_flat[] = { - {"\x2A", 0, 0x8539}, /* East Asian ideograph */ - {"\x40", 0, 0x84E0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page386 = { - marc8_31page386_flat, 0 -}; -/* PAGE 385 */ -struct yaz_iconv_trie_flat marc8_31page385_flat[] = { - {"\x52", 0, 0x830F}, /* East Asian ideograph */ - {"\x65", 0, 0x82C8}, /* East Asian ideograph */ - {"\x68", 0, 0x8572}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page385 = { - marc8_31page385_flat, 0 -}; -/* PAGE 384 */ -struct yaz_iconv_trie_flat marc8_31page384_flat[] = { - {"\x33", 0, 0x84E3}, /* East Asian ideograph */ - {"\x51", 0, 0x84DF}, /* East Asian ideograph */ - {"\x57", 0, 0x835F}, /* East Asian ideograph */ - {"\x58", 0, 0x83B6}, /* East Asian ideograph */ - {"\x61", 0, 0x8360}, /* East Asian ideograph */ - {"\x68", 0, 0x8369}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page384 = { - marc8_31page384_flat, 0 -}; -/* PAGE 383 */ -struct yaz_iconv_trie_flat marc8_31page383_flat[] = { - {"\x24", 0, 0x848C}, /* East Asian ideograph */ - {"\x2D", 0, 0x8311}, /* East Asian ideograph */ - {"\x35", 0, 0x82C1}, /* East Asian ideograph */ - {"\x46", 0, 0x8368}, /* East Asian ideograph */ - {"\x4B", 0, 0x835B}, /* East Asian ideograph */ - {"\x5A", 0, 0x8487}, /* East Asian ideograph */ - {"\x64", 0, 0x8489}, /* East Asian ideograph */ - {"\x67", 0, 0x836C}, /* East Asian ideograph */ - {"\x71", 0, 0x835E}, /* East Asian ideograph */ - {"\x74", 0, 0x83B8}, /* East Asian ideograph */ - {"\x77", 0, 0x8297}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page383 = { - marc8_31page383_flat, 0 -}; -/* PAGE 382 */ -struct yaz_iconv_trie_flat marc8_31page382_flat[] = { - {"\x33", 0, 0x8298}, /* East Asian ideograph (duplicate simplified) */ - {"\x3A", 0, 0x83BC}, /* East Asian ideograph */ - {"\x7D", 0, 0x835C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page382 = { - marc8_31page382_flat, 0 -}; -/* PAGE 381 */ -struct yaz_iconv_trie_flat marc8_31page381_flat[] = { - {"\x3C", 0, 0x836D}, /* East Asian ideograph */ - {"\x3D", 0, 0x836E}, /* East Asian ideograph */ - {"\x75", 0, 0x83B3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page381 = { - marc8_31page381_flat, 0 -}; -/* PAGE 380 */ -struct yaz_iconv_trie_dir marc8_31page380_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {382, 0, 0}, - {383, 0, 0}, - {384, 0, 0}, - {385, 0, 0}, - {386, 0, 0}, - {387, 0, 0}, - {0, 0, 0}, - {388, 0, 0}, - {389, 0, 0}, - {390, 0, 0}, - {391, 0, 0}, - {0, 0, 0}, - {392, 0, 0}, - {393, 0, 0}, - {394, 0, 0}, - {395, 0, 0}, - {396, 0, 0}, - {397, 0, 0}, - {398, 0, 0}, - {399, 0, 0}, - {400, 0, 0}, - {401, 0, 0}, - {0, 0, 0}, - {402, 0, 0}, - {403, 0, 0}, - {404, 0, 0}, - {405, 0, 0}, - {0, 0, 0}, - {406, 0, 0}, - {407, 0, 0}, - {408, 0, 0}, - {409, 0, 0}, - {410, 0, 0}, - {411, 0, 0}, - {412, 0, 0}, - {413, 0, 0}, - {414, 0, 0}, - {415, 0, 0}, - {416, 0, 0}, - {417, 0, 0}, - {0, 0, 0}, - {418, 0, 0}, - {0, 0, 0}, - {419, 0, 0}, - {420, 0, 0}, - {421, 0, 0}, - {422, 0, 0}, - {423, 0, 0}, - {424, 0, 0}, - {425, 0, 0}, - {426, 0, 0}, - {427, 0, 0}, - {428, 0, 0}, - {429, 0, 0}, - {430, 0, 0}, - {431, 0, 0}, - {432, 0, 0}, - {433, 0, 0}, - {434, 0, 0}, - {435, 0, 0}, - {436, 0, 0}, - {437, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page380 = { - 0, marc8_31page380_dir -}; -/* PAGE 379 */ -struct yaz_iconv_trie_flat marc8_31page379_flat[] = { - {"\x61", 0, 0x82CC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page379 = { - marc8_31page379_flat, 0 -}; -/* PAGE 378 */ -struct yaz_iconv_trie_flat marc8_31page378_flat[] = { - {"\x56", 0, 0x8114}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page378 = { - marc8_31page378_flat, 0 -}; -/* PAGE 377 */ -struct yaz_iconv_trie_flat marc8_31page377_flat[] = { - {"\x41", 0, 0x8136}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page377 = { - marc8_31page377_flat, 0 -}; -/* PAGE 376 */ -struct yaz_iconv_trie_flat marc8_31page376_flat[] = { - {"\x55", 0, 0x80EB}, /* East Asian ideograph */ - {"\x6E", 0, 0x80E8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page376 = { - marc8_31page376_flat, 0 -}; -/* PAGE 375 */ -struct yaz_iconv_trie_flat marc8_31page375_flat[] = { - {"\x39", 0, 0x8069}, /* East Asian ideograph */ - {"\x3F", 0, 0x804D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page375 = { - marc8_31page375_flat, 0 -}; -/* PAGE 374 */ -struct yaz_iconv_trie_flat marc8_31page374_flat[] = { - {"\x55", 0, 0x8027}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page374 = { - marc8_31page374_flat, 0 -}; -/* PAGE 373 */ -struct yaz_iconv_trie_flat marc8_31page373_flat[] = { - {"\x31", 0, 0x7F9F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page373 = { - marc8_31page373_flat, 0 -}; -/* PAGE 372 */ -struct yaz_iconv_trie_flat marc8_31page372_flat[] = { - {"\x2E", 0, 0x7F42}, /* East Asian ideograph */ - {"\x31", 0, 0x575B}, /* East Asian ideograph (duplicate simplified) */ - {"\x72", 0, 0x7F74}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page372 = { - marc8_31page372_flat, 0 -}; -/* PAGE 371 */ -struct yaz_iconv_trie_flat marc8_31page371_flat[] = { - {"\x21", 0, 0x7F26}, /* East Asian ideograph */ - {"\x2D", 0, 0x7F2F}, /* East Asian ideograph */ - {"\x49", 0, 0x7F30}, /* East Asian ideograph */ - {"\x4E", 0, 0x7F32}, /* East Asian ideograph */ - {"\x51", 0, 0x7F33}, /* East Asian ideograph */ - {"\x52", 0, 0x7F34}, /* East Asian ideograph */ - {"\x59", 0, 0x7F31}, /* East Asian ideograph */ - {"\x5D", 0, 0x7EA9}, /* East Asian ideograph */ - {"\x60", 0, 0x7F2C}, /* East Asian ideograph */ - {"\x6D", 0, 0x624D}, /* East Asian ideograph */ - {"\x74", 0, 0x7F35}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page371 = { - marc8_31page371_flat, 0 -}; -/* PAGE 370 */ -struct yaz_iconv_trie_flat marc8_31page370_flat[] = { - {"\x29", 0, 0x7F17}, /* East Asian ideograph */ - {"\x2A", 0, 0x7F02}, /* East Asian ideograph */ - {"\x31", 0, 0x7F03}, /* East Asian ideograph */ - {"\x36", 0, 0x7F07}, /* East Asian ideograph */ - {"\x3C", 0, 0x7F08}, /* East Asian ideograph */ - {"\x3E", 0, 0x7F0C}, /* East Asian ideograph */ - {"\x47", 0, 0x7F11}, /* East Asian ideograph */ - {"\x48", 0, 0x7F0F}, /* East Asian ideograph */ - {"\x51", 0, 0x7F1F}, /* East Asian ideograph */ - {"\x53", 0, 0x7F12}, /* East Asian ideograph */ - {"\x5D", 0, 0x7F1C}, /* East Asian ideograph */ - {"\x5E", 0, 0x7F19}, /* East Asian ideograph */ - {"\x5F", 0, 0x7F1B}, /* East Asian ideograph */ - {"\x69", 0, 0x7EC9}, /* East Asian ideograph */ - {"\x71", 0, 0x7EA4}, /* East Asian ideograph (duplicate simplified) */ - {"\x72", 0, 0x7F21}, /* East Asian ideograph */ - {"\x75", 0, 0x7D77}, /* East Asian ideograph */ - {"\x79", 0, 0x7F25}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page370 = { - marc8_31page370_flat, 0 -}; -/* PAGE 369 */ -struct yaz_iconv_trie_flat marc8_31page369_flat[] = { - {"\x30", 0, 0x7EDB}, /* East Asian ideograph */ - {"\x34", 0, 0x7ED7}, /* East Asian ideograph */ - {"\x39", 0, 0x7EE8}, /* East Asian ideograph */ - {"\x44", 0, 0x7EE0}, /* East Asian ideograph */ - {"\x4D", 0, 0x7EE1}, /* East Asian ideograph */ - {"\x61", 0, 0x7EFB}, /* East Asian ideograph */ - {"\x67", 0, 0x7EEF}, /* East Asian ideograph */ - {"\x74", 0, 0x7EF2}, /* East Asian ideograph */ - {"\x78", 0, 0x7EF6}, /* East Asian ideograph */ - {"\x7D", 0, 0x7EFA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page369 = { - marc8_31page369_flat, 0 -}; -/* PAGE 368 */ -struct yaz_iconv_trie_flat marc8_31page368_flat[] = { - {"\x22", 0, 0x7CC1}, /* East Asian ideograph */ - {"\x2E", 0, 0x56E2}, /* East Asian ideograph (duplicate simplified) */ - {"\x30", 0, 0x7C9D}, /* East Asian ideograph */ - {"\x35", 0, 0x7C74}, /* East Asian ideograph */ - {"\x42", 0, 0x7EA1}, /* East Asian ideograph */ - {"\x45", 0, 0x7EA8}, /* East Asian ideograph */ - {"\x4A", 0, 0x7EBE}, /* East Asian ideograph */ - {"\x61", 0, 0x7EC0}, /* East Asian ideograph */ - {"\x62", 0, 0x7EC1}, /* East Asian ideograph */ - {"\x65", 0, 0x7EC2}, /* East Asian ideograph */ - {"\x6A", 0, 0x7ED0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page368 = { - marc8_31page368_flat, 0 -}; -/* PAGE 367 */ -struct yaz_iconv_trie_flat marc8_31page367_flat[] = { - {"\x56", 0, 0x7BA8}, /* East Asian ideograph */ - {"\x68", 0, 0x7B3E}, /* East Asian ideograph */ - {"\x69", 0, 0x7C16}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page367 = { - marc8_31page367_flat, 0 -}; -/* PAGE 366 */ -struct yaz_iconv_trie_flat marc8_31page366_flat[] = { - {"\x47", 0, 0x7BA6}, /* East Asian ideograph */ - {"\x54", 0, 0x7B5A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page366 = { - marc8_31page366_flat, 0 -}; -/* PAGE 365 */ -struct yaz_iconv_trie_flat marc8_31page365_flat[] = { - {"\x58", 0, 0x7BA7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page365 = { - marc8_31page365_flat, 0 -}; -/* PAGE 364 */ -struct yaz_iconv_trie_flat marc8_31page364_flat[] = { - {"\x7C", 0, 0x7B15}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page364 = { - marc8_31page364_flat, 0 -}; -/* PAGE 363 */ -struct yaz_iconv_trie_flat marc8_31page363_flat[] = { - {"\x3C", 0, 0x7AAD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page363 = { - marc8_31page363_flat, 0 -}; -/* PAGE 362 */ -struct yaz_iconv_trie_flat marc8_31page362_flat[] = { - {"\x22", 0, 0x7857}, /* East Asian ideograph */ - {"\x55", 0, 0x783B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page362 = { - marc8_31page362_flat, 0 -}; -/* PAGE 361 */ -struct yaz_iconv_trie_flat marc8_31page361_flat[] = { - {"\x40", 0, 0x7800}, /* East Asian ideograph */ - {"\x6A", 0, 0x789B}, /* East Asian ideograph */ - {"\x77", 0, 0x789C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page361 = { - marc8_31page361_flat, 0 -}; -/* PAGE 360 */ -struct yaz_iconv_trie_flat marc8_31page360_flat[] = { - {"\x5A", 0, 0x7817}, /* East Asian ideograph */ - {"\x60", 0, 0x7856}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page360 = { - marc8_31page360_flat, 0 -}; -/* PAGE 359 */ -struct yaz_iconv_trie_flat marc8_31page359_flat[] = { - {"\x2C", 0, 0x7751}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page359 = { - marc8_31page359_flat, 0 -}; -/* PAGE 358 */ -struct yaz_iconv_trie_flat marc8_31page358_flat[] = { - {"\x22", 0, 0x7726}, /* East Asian ideograph */ - {"\x72", 0, 0x770D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page358 = { - marc8_31page358_flat, 0 -}; -/* PAGE 357 */ -struct yaz_iconv_trie_flat marc8_31page357_flat[] = { - {"\x2B", 0, 0x762A}, /* East Asian ideograph */ - {"\x32", 0, 0x75AC}, /* East Asian ideograph */ - {"\x37", 0, 0x763F}, /* East Asian ideograph */ - {"\x3A", 0, 0x75C8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page357 = { - marc8_31page357_flat, 0 -}; -/* PAGE 356 */ -struct yaz_iconv_trie_flat marc8_31page356_flat[] = { - {"\x48", 0, 0x7617}, /* East Asian ideograph */ - {"\x5E", 0, 0x7618}, /* East Asian ideograph */ - {"\x6F", 0, 0x7605}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page356 = { - marc8_31page356_flat, 0 -}; -/* PAGE 355 */ -struct yaz_iconv_trie_flat marc8_31page355_flat[] = { - {"\x7A", 0, 0x75D6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page355 = { - marc8_31page355_flat, 0 -}; -/* PAGE 354 */ -struct yaz_iconv_trie_flat marc8_31page354_flat[] = { - {"\x6B", 0, 0x7572}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page354 = { - marc8_31page354_flat, 0 -}; -/* PAGE 353 */ -struct yaz_iconv_trie_flat marc8_31page353_flat[] = { - {"\x3A", 0, 0x748E}, /* East Asian ideograph */ - {"\x40", 0, 0x74D2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page353 = { - marc8_31page353_flat, 0 -}; -/* PAGE 352 */ -struct yaz_iconv_trie_flat marc8_31page352_flat[] = { - {"\x21", 0, 0x740F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page352 = { - marc8_31page352_flat, 0 -}; -/* PAGE 351 */ -struct yaz_iconv_trie_flat marc8_31page351_flat[] = { - {"\x47", 0, 0x73AE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page351 = { - marc8_31page351_flat, 0 -}; -/* PAGE 350 */ -struct yaz_iconv_trie_flat marc8_31page350_flat[] = { - {"\x2B", 0, 0x7303}, /* East Asian ideograph */ - {"\x36", 0, 0x7315}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page350 = { - marc8_31page350_flat, 0 -}; -/* PAGE 349 */ -struct yaz_iconv_trie_flat marc8_31page349_flat[] = { - {"\x5E", 0, 0x72B8}, /* East Asian ideograph */ - {"\x5F", 0, 0x72F2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page349 = { - marc8_31page349_flat, 0 -}; -/* PAGE 348 */ -struct yaz_iconv_trie_flat marc8_31page348_flat[] = { - {"\x24", 0, 0x70E8}, /* East Asian ideograph */ - {"\x4F", 0, 0x70EC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page348 = { - marc8_31page348_flat, 0 -}; -/* PAGE 347 */ -struct yaz_iconv_trie_flat marc8_31page347_flat[] = { - {"\x23", 0, 0x8367}, /* East Asian ideograph */ - {"\x3C", 0, 0x709D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page347 = { - marc8_31page347_flat, 0 -}; -/* PAGE 346 */ -struct yaz_iconv_trie_flat marc8_31page346_flat[] = { - {"\x52", 0, 0x709C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page346 = { - marc8_31page346_flat, 0 -}; -/* PAGE 345 */ -struct yaz_iconv_trie_flat marc8_31page345_flat[] = { - {"\x50", 0, 0x70C3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page345 = { - marc8_31page345_flat, 0 -}; -/* PAGE 344 */ -struct yaz_iconv_trie_flat marc8_31page344_flat[] = { - {"\x29", 0, 0x6EDF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page344 = { - marc8_31page344_flat, 0 -}; -/* PAGE 343 */ -struct yaz_iconv_trie_flat marc8_31page343_flat[] = { - {"\x26", 0, 0x6CF7}, /* East Asian ideograph */ - {"\x39", 0, 0x6CF8}, /* East Asian ideograph */ - {"\x5D", 0, 0x6CA3}, /* East Asian ideograph */ - {"\x61", 0, 0x6EE0}, /* East Asian ideograph */ - {"\x6B", 0, 0x6F13}, /* East Asian ideograph */ - {"\x7D", 0, 0x704F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page343 = { - marc8_31page343_flat, 0 -}; -/* PAGE 342 */ -struct yaz_iconv_trie_flat marc8_31page342_flat[] = { - {"\x30", 0, 0x6E11}, /* East Asian ideograph */ - {"\x3E", 0, 0x6CF6}, /* East Asian ideograph */ - {"\x41", 0, 0x6F4B}, /* East Asian ideograph */ - {"\x42", 0, 0x6D4D}, /* East Asian ideograph */ - {"\x62", 0, 0x6F4D}, /* East Asian ideograph */ - {"\x66", 0, 0x6EE2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page342 = { - marc8_31page342_flat, 0 -}; -/* PAGE 341 */ -struct yaz_iconv_trie_flat marc8_31page341_flat[] = { - {"\x27", 0, 0x6D9D}, /* East Asian ideograph */ - {"\x2B", 0, 0x6D54}, /* East Asian ideograph */ - {"\x49", 0, 0x6DA0}, /* East Asian ideograph */ - {"\x58", 0, 0x6CA9}, /* East Asian ideograph */ - {"\x59", 0, 0x6ED7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page341 = { - marc8_31page341_flat, 0 -}; -/* PAGE 340 */ -struct yaz_iconv_trie_flat marc8_31page340_flat[] = { - {"\x2E", 0, 0x6D52}, /* East Asian ideograph */ - {"\x41", 0, 0x6CA4}, /* East Asian ideograph */ - {"\x62", 0, 0x988D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page340 = { - marc8_31page340_flat, 0 -}; -/* PAGE 339 */ -struct yaz_iconv_trie_flat marc8_31page339_flat[] = { - {"\x28", 0, 0x6D48}, /* East Asian ideograph */ - {"\x43", 0, 0x8365}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page339 = { - marc8_31page339_flat, 0 -}; -/* PAGE 338 */ -struct yaz_iconv_trie_flat marc8_31page338_flat[] = { - {"\x34", 0, 0x6D43}, /* East Asian ideograph */ - {"\x71", 0, 0x6D9E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page338 = { - marc8_31page338_flat, 0 -}; -/* PAGE 337 */ -struct yaz_iconv_trie_flat marc8_31page337_flat[] = { - {"\x42", 0, 0x6BF5}, /* East Asian ideograph */ - {"\x4C", 0, 0x6BE1}, /* East Asian ideograph */ - {"\x51", 0, 0x6C07}, /* East Asian ideograph */ - {"\x68", 0, 0x6C29}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page337 = { - marc8_31page337_flat, 0 -}; -/* PAGE 336 */ -struct yaz_iconv_trie_flat marc8_31page336_flat[] = { - {"\x39", 0, 0x6B9A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page336 = { - marc8_31page336_flat, 0 -}; -/* PAGE 335 */ -struct yaz_iconv_trie_flat marc8_31page335_flat[] = { - {"\x33", 0, 0x680E}, /* East Asian ideograph */ - {"\x35", 0, 0x6A7C}, /* East Asian ideograph */ - {"\x37", 0, 0x6987}, /* East Asian ideograph */ - {"\x39", 0, 0x680A}, /* East Asian ideograph */ - {"\x3A", 0, 0x69E0}, /* East Asian ideograph */ - {"\x40", 0, 0x67A5}, /* East Asian ideograph */ - {"\x45", 0, 0x680C}, /* East Asian ideograph */ - {"\x50", 0, 0x68C2}, /* East Asian ideograph */ - {"\x59", 0, 0x6989}, /* East Asian ideograph */ - {"\x66", 0, 0x6924}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page335 = { - marc8_31page335_flat, 0 -}; -/* PAGE 334 */ -struct yaz_iconv_trie_flat marc8_31page334_flat[] = { - {"\x2B", 0, 0x6A2F}, /* East Asian ideograph */ - {"\x57", 0, 0x68BC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page334 = { - marc8_31page334_flat, 0 -}; -/* PAGE 333 */ -struct yaz_iconv_trie_flat marc8_31page333_flat[] = { - {"\x40", 0, 0x6861}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page333 = { - marc8_31page333_flat, 0 -}; -/* PAGE 332 */ -struct yaz_iconv_trie_flat marc8_31page332_flat[] = { - {"\x27", 0, 0x6864}, /* East Asian ideograph */ - {"\x27", 0, 0x6864}, /* East Asian ideograph */ - {"\x56", 0, 0x6920}, /* East Asian ideograph */ - {"\x5E", 0, 0x67FD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page332 = { - marc8_31page332_flat, 0 -}; -/* PAGE 331 */ -struct yaz_iconv_trie_flat marc8_31page331_flat[] = { - {"\x30", 0, 0x6966}, /* East Asian ideograph */ - {"\x5C", 0, 0x6769}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page331 = { - marc8_31page331_flat, 0 -}; -/* PAGE 330 */ -struct yaz_iconv_trie_flat marc8_31page330_flat[] = { - {"\x30", 0, 0x67A7}, /* East Asian ideograph */ - {"\x6E", 0, 0x67A8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page330 = { - marc8_31page330_flat, 0 -}; -/* PAGE 329 */ -struct yaz_iconv_trie_flat marc8_31page329_flat[] = { - {"\x22", 0, 0x4E2B}, /* East Asian ideograph */ - {"\x7D", 0, 0x53F0}, /* East Asian ideograph (duplicate simplified) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page329 = { - marc8_31page329_flat, 0 -}; -/* PAGE 328 */ -struct yaz_iconv_trie_flat marc8_31page328_flat[] = { - {"\x55", 0, 0x6619}, /* East Asian ideograph */ - {"\x5C", 0, 0x6654}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page328 = { - marc8_31page328_flat, 0 -}; -/* PAGE 327 */ -struct yaz_iconv_trie_flat marc8_31page327_flat[] = { - {"\x71", 0, 0x6593}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page327 = { - marc8_31page327_flat, 0 -}; -/* PAGE 326 */ -struct yaz_iconv_trie_flat marc8_31page326_flat[] = { - {"\x2A", 0, 0x6448}, /* East Asian ideograph */ - {"\x42", 0, 0x64B7}, /* East Asian ideograph */ - {"\x46", 0, 0x6445}, /* East Asian ideograph */ - {"\x5B", 0, 0x6484}, /* East Asian ideograph */ - {"\x61", 0, 0x64BA}, /* East Asian ideograph */ - {"\x6D", 0, 0x6512}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page326 = { - marc8_31page326_flat, 0 -}; -/* PAGE 325 */ -struct yaz_iconv_trie_flat marc8_31page325_flat[] = { - {"\x2C", 0, 0x63BA}, /* East Asian ideograph */ - {"\x2E", 0, 0x63BC}, /* East Asian ideograph */ - {"\x57", 0, 0x63B8}, /* East Asian ideograph */ - {"\x62", 0, 0x6322}, /* East Asian ideograph */ - {"\x66", 0, 0x63FF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page325 = { - marc8_31page325_flat, 0 -}; -/* PAGE 324 */ -struct yaz_iconv_trie_flat marc8_31page324_flat[] = { - {"\x6F", 0, 0x629F}, /* East Asian ideograph */ - {"\x7B", 0, 0x62A0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page324 = { - marc8_31page324_flat, 0 -}; -/* PAGE 323 */ -struct yaz_iconv_trie_flat marc8_31page323_flat[] = { - {"\x43", 0, 0x6206}, /* East Asian ideograph */ - {"\x47", 0, 0x620B}, /* East Asian ideograph */ - {"\x66", 0, 0x6217}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page323 = { - marc8_31page323_flat, 0 -}; -/* PAGE 322 */ -struct yaz_iconv_trie_flat marc8_31page322_flat[] = { - {"\x4C", 0, 0x6126}, /* East Asian ideograph */ - {"\x52", 0, 0x6003}, /* East Asian ideograph */ - {"\x5C", 0, 0x603F}, /* East Asian ideograph */ - {"\x79", 0, 0x6079}, /* East Asian ideograph */ - {"\x7E", 0, 0x603C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page322 = { - marc8_31page322_flat, 0 -}; -/* PAGE 321 */ -struct yaz_iconv_trie_flat marc8_31page321_flat[] = { - {"\x34", 0, 0x607D}, /* East Asian ideograph */ - {"\x5E", 0, 0x607A}, /* East Asian ideograph */ - {"\x74", 0, 0x6004}, /* East Asian ideograph */ - {"\x77", 0, 0x60AD}, /* East Asian ideograph */ - {"\x79", 0, 0x60AB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page321 = { - marc8_31page321_flat, 0 -}; -/* PAGE 320 */ -struct yaz_iconv_trie_flat marc8_31page320_flat[] = { - {"\x51", 0, 0x5F2A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page320 = { - marc8_31page320_flat, 0 -}; -/* PAGE 319 */ -struct yaz_iconv_trie_flat marc8_31page319_flat[] = { - {"\x68", 0, 0x5E91}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page319 = { - marc8_31page319_flat, 0 -}; -/* PAGE 318 */ -struct yaz_iconv_trie_flat marc8_31page318_flat[] = { - {"\x36", 0, 0x5E0F}, /* East Asian ideograph */ - {"\x47", 0, 0x5E3B}, /* East Asian ideograph */ - {"\x5F", 0, 0x5E31}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page318 = { - marc8_31page318_flat, 0 -}; -/* PAGE 317 */ -struct yaz_iconv_trie_flat marc8_31page317_flat[] = { - {"\x26", 0, 0x5CC4}, /* East Asian ideograph */ - {"\x32", 0, 0x5D58}, /* East Asian ideograph */ - {"\x47", 0, 0x5CBF}, /* East Asian ideograph */ - {"\x59", 0, 0x5DEF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page317 = { - marc8_31page317_flat, 0 -}; -/* PAGE 316 */ -struct yaz_iconv_trie_flat marc8_31page316_flat[] = { - {"\x5A", 0, 0x5D5D}, /* East Asian ideograph */ - {"\x69", 0, 0x5D02}, /* East Asian ideograph */ - {"\x77", 0, 0x5CE4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page316 = { - marc8_31page316_flat, 0 -}; -/* PAGE 315 */ -struct yaz_iconv_trie_flat marc8_31page315_flat[] = { - {"\x41", 0, 0x5C98}, /* East Asian ideograph */ - {"\x58", 0, 0x5D03}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page315 = { - marc8_31page315_flat, 0 -}; -/* PAGE 314 */ -struct yaz_iconv_trie_flat marc8_31page314_flat[] = { - {"\x2B", 0, 0x5C66}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page314 = { - marc8_31page314_flat, 0 -}; -/* PAGE 313 */ -struct yaz_iconv_trie_dir marc8_31page313_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {315, 0, 0}, - {316, 0, 0}, - {317, 0, 0}, - {318, 0, 0}, - {319, 0, 0}, - {320, 0, 0}, - {321, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {322, 0, 0}, - {323, 0, 0}, - {324, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {325, 0, 0}, - {326, 0, 0}, - {327, 0, 0}, - {328, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {329, 0, 0}, - {0, 0, 0}, - {330, 0, 0}, - {0, 0, 0}, - {331, 0, 0}, - {0, 0, 0}, - {332, 0, 0}, - {333, 0, 0}, - {334, 0, 0}, - {335, 0, 0}, - {336, 0, 0}, - {0, 0, 0}, - {337, 0, 0}, - {338, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {339, 0, 0}, - {0, 0, 0}, - {340, 0, 0}, - {341, 0, 0}, - {342, 0, 0}, - {343, 0, 0}, - {344, 0, 0}, - {345, 0, 0}, - {346, 0, 0}, - {347, 0, 0}, - {348, 0, 0}, - {349, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {350, 0, 0}, - {351, 0, 0}, - {0, 0, 0}, - {352, 0, 0}, - {353, 0, 0}, - {354, 0, 0}, - {355, 0, 0}, - {356, 0, 0}, - {357, 0, 0}, - {358, 0, 0}, - {0, 0, 0}, - {359, 0, 0}, - {360, 0, 0}, - {361, 0, 0}, - {362, 0, 0}, - {363, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {364, 0, 0}, - {365, 0, 0}, - {366, 0, 0}, - {367, 0, 0}, - {368, 0, 0}, - {0, 0, 0}, - {369, 0, 0}, - {370, 0, 0}, - {371, 0, 0}, - {372, 0, 0}, - {373, 0, 0}, - {374, 0, 0}, - {375, 0, 0}, - {376, 0, 0}, - {377, 0, 0}, - {378, 0, 0}, - {379, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {380, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page313 = { - 0, marc8_31page313_dir -}; -/* PAGE 312 */ -struct yaz_iconv_trie_flat marc8_31page312_flat[] = { - {"\x2B", 0, 0x5A06}, /* East Asian ideograph */ - {"\x40", 0, 0x5AF1}, /* East Asian ideograph */ - {"\x48", 0, 0x5AD2}, /* East Asian ideograph */ - {"\x74", 0, 0x5A08}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page312 = { - marc8_31page312_flat, 0 -}; -/* PAGE 311 */ -struct yaz_iconv_trie_flat marc8_31page311_flat[] = { - {"\x24", 0, 0x5A32}, /* East Asian ideograph */ - {"\x36", 0, 0x59AB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page311 = { - marc8_31page311_flat, 0 -}; -/* PAGE 310 */ -struct yaz_iconv_trie_flat marc8_31page310_flat[] = { - {"\x3C", 0, 0x5A05}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page310 = { - marc8_31page310_flat, 0 -}; -/* PAGE 309 */ -struct yaz_iconv_trie_flat marc8_31page309_flat[] = { - {"\x54", 0, 0x5956}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page309 = { - marc8_31page309_flat, 0 -}; -/* PAGE 308 */ -struct yaz_iconv_trie_flat marc8_31page308_flat[] = { - {"\x5A", 0, 0x5785}, /* East Asian ideograph */ - {"\x5E", 0, 0x5786}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page308 = { - marc8_31page308_flat, 0 -}; -/* PAGE 307 */ -struct yaz_iconv_trie_flat marc8_31page307_flat[] = { - {"\x42", 0, 0x57D8}, /* East Asian ideograph */ - {"\x45", 0, 0x57D9}, /* East Asian ideograph */ - {"\x48", 0, 0x57B2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page307 = { - marc8_31page307_flat, 0 -}; -/* PAGE 306 */ -struct yaz_iconv_trie_flat marc8_31page306_flat[] = { - {"\x38", 0, 0x57AD}, /* East Asian ideograph */ - {"\x7A", 0, 0x57DA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page306 = { - marc8_31page306_flat, 0 -}; -/* PAGE 305 */ -struct yaz_iconv_trie_flat marc8_31page305_flat[] = { - {"\x2E", 0, 0x56F5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page305 = { - marc8_31page305_flat, 0 -}; -/* PAGE 304 */ -struct yaz_iconv_trie_flat marc8_31page304_flat[] = { - {"\x28", 0, 0x54DC}, /* East Asian ideograph */ - {"\x45", 0, 0x556E}, /* East Asian ideograph */ - {"\x4C", 0, 0x5456}, /* East Asian ideograph */ - {"\x5A", 0, 0x55BE}, /* East Asian ideograph */ - {"\x60", 0, 0x5181}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page304 = { - marc8_31page304_flat, 0 -}; -/* PAGE 303 */ -struct yaz_iconv_trie_flat marc8_31page303_flat[] = { - {"\x34", 0, 0x551B}, /* East Asian ideograph */ - {"\x39", 0, 0x54D4}, /* East Asian ideograph */ - {"\x55", 0, 0x54D3}, /* East Asian ideograph */ - {"\x58", 0, 0x6076}, /* East Asian ideograph (duplicate simplified) */ - {"\x67", 0, 0x5452}, /* East Asian ideograph */ - {"\x72", 0, 0x54D2}, /* East Asian ideograph */ - {"\x7A", 0, 0x54D5}, /* East Asian ideograph */ - {"\x7E", 0, 0x54D9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page303 = { - marc8_31page303_flat, 0 -}; -/* PAGE 302 */ -struct yaz_iconv_trie_flat marc8_31page302_flat[] = { - {"\x69", 0, 0x5522}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page302 = { - marc8_31page302_flat, 0 -}; -/* PAGE 301 */ -struct yaz_iconv_trie_flat marc8_31page301_flat[] = { - {"\x30", 0, 0x5457}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page301 = { - marc8_31page301_flat, 0 -}; -/* PAGE 300 */ -struct yaz_iconv_trie_flat marc8_31page300_flat[] = { - {"\x69", 0, 0x5459}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page300 = { - marc8_31page300_flat, 0 -}; -/* PAGE 299 */ -struct yaz_iconv_trie_flat marc8_31page299_flat[] = { - {"\x2A", 0, 0x53A3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page299 = { - marc8_31page299_flat, 0 -}; -/* PAGE 298 */ -struct yaz_iconv_trie_flat marc8_31page298_flat[] = { - {"\x2E", 0, 0x5326}, /* East Asian ideograph */ - {"\x6D", 0, 0x538D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page298 = { - marc8_31page298_flat, 0 -}; -/* PAGE 297 */ -struct yaz_iconv_trie_flat marc8_31page297_flat[] = { - {"\x3E", 0, 0x522D}, /* East Asian ideograph */ - {"\x5B", 0, 0x5250}, /* East Asian ideograph */ - {"\x5F", 0, 0x672D}, /* East Asian ideograph */ - {"\x79", 0, 0x523F}, /* East Asian ideograph */ - {"\x7A", 0, 0x523D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page297 = { - marc8_31page297_flat, 0 -}; -/* PAGE 296 */ -struct yaz_iconv_trie_flat marc8_31page296_flat[] = { - {"\x44", 0, 0x50A9}, /* East Asian ideograph */ - {"\x48", 0, 0x50A5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page296 = { - marc8_31page296_flat, 0 -}; -/* PAGE 295 */ -struct yaz_iconv_trie_flat marc8_31page295_flat[] = { - {"\x22", 0, 0x507B}, /* East Asian ideograph */ - {"\x42", 0, 0x507E}, /* East Asian ideograph */ - {"\x71", 0, 0x4FAA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page295 = { - marc8_31page295_flat, 0 -}; -/* PAGE 294 */ -struct yaz_iconv_trie_flat marc8_31page294_flat[] = { - {"\x75", 0, 0x4F65}, /* East Asian ideograph */ - {"\x7C", 0, 0x4F1B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page294 = { - marc8_31page294_flat, 0 -}; -/* PAGE 293 */ -struct yaz_iconv_trie_flat marc8_31page293_flat[] = { - {"\x49", 0, 0x4F1C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page293 = { - marc8_31page293_flat, 0 -}; -/* PAGE 292 */ -struct yaz_iconv_trie_flat marc8_31page292_flat[] = { - {"\x21", 0, 0x9F7F}, /* East Asian ideograph */ - {"\x22", 0, 0x9F83}, /* East Asian ideograph */ - {"\x24", 0, 0x9F84}, /* East Asian ideograph */ - {"\x25", 0, 0x9F88}, /* East Asian ideograph */ - {"\x26", 0, 0x9F87}, /* East Asian ideograph */ - {"\x27", 0, 0x9F89}, /* East Asian ideograph */ - {"\x28", 0, 0x9F8A}, /* East Asian ideograph */ - {"\x29", 0, 0x9F8C}, /* East Asian ideograph */ - {"\x2A", 0, 0x9F8B}, /* East Asian ideograph */ - {"\x2B", 0, 0x9F99}, /* East Asian ideograph */ - {"\x2C", 0, 0x9F9A}, /* East Asian ideograph */ - {"\x2D", 0, 0x9F9F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page292 = { - marc8_31page292_flat, 0 -}; -/* PAGE 291 */ -struct yaz_iconv_trie_dir marc8_31page291_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9CC3} /* East Asian ideograph */, - {0, 0, 0x9CC5} /* East Asian ideograph */, - {0, 0, 0x9CAB} /* East Asian ideograph */, - {0, 0, 0x9CCD} /* East Asian ideograph */, - {0, 0, 0x9CCF} /* East Asian ideograph */, - {0, 0, 0x9CA2} /* East Asian ideograph */, - {0, 0, 0x9CD4} /* East Asian ideograph */, - {0, 0, 0x9CD7} /* East Asian ideograph */, - {0, 0, 0x9CDD} /* East Asian ideograph */, - {0, 0, 0x9CDE} /* East Asian ideograph */, - {0, 0, 0x9CDC} /* East Asian ideograph */, - {0, 0, 0x9CD6} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9C88} /* East Asian ideograph */, - {0, 0, 0x9E1F} /* East Asian ideograph */, - {0, 0, 0x9E20} /* East Asian ideograph */, - {0, 0, 0x9E22} /* East Asian ideograph */, - {0, 0, 0x9E23} /* East Asian ideograph */, - {0, 0, 0x51E4} /* East Asian ideograph */, - {0, 0, 0x9E29} /* East Asian ideograph */, - {0, 0, 0x9E26} /* East Asian ideograph */, - {0, 0, 0x9E35} /* East Asian ideograph */, - {0, 0, 0x9E2A} /* East Asian ideograph */, - {0, 0, 0x9E2D} /* East Asian ideograph */, - {0, 0, 0x9E2F} /* East Asian ideograph */, - {0, 0, 0x9E33} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9E3F} /* East Asian ideograph */, - {0, 0, 0x9E3D} /* East Asian ideograph */, - {0, 0, 0x9E49} /* East Asian ideograph */, - {0, 0, 0x9E43} /* East Asian ideograph */, - {0, 0, 0x9E44} /* East Asian ideograph */, - {0, 0, 0x9E45} /* East Asian ideograph */, - {0, 0, 0x9E51} /* East Asian ideograph */, - {0, 0, 0x9E4A} /* East Asian ideograph */, - {0, 0, 0x9E4C} /* East Asian ideograph */, - {0, 0, 0x9E4F} /* East Asian ideograph */, - {0, 0, 0x9E64} /* East Asian ideograph */, - {0, 0, 0x83BA} /* East Asian ideograph */, - {0, 0, 0x9E5E} /* East Asian ideograph */, - {0, 0, 0x9E67} /* East Asian ideograph */, - {0, 0, 0x9E25} /* East Asian ideograph */, - {0, 0, 0x9E36} /* East Asian ideograph */, - {0, 0, 0x9E70} /* East Asian ideograph */, - {0, 0, 0x9E6D} /* East Asian ideograph */, - {0, 0, 0x9E66} /* East Asian ideograph */, - {0, 0, 0x9E3E} /* East Asian ideograph */, - {0, 0, 0x54B8} /* East Asian ideograph */, - {0, 0, 0x76D0} /* East Asian ideograph */, - {0, 0, 0x7877} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x4E3D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9EA6} /* East Asian ideograph */, - {0, 0, 0x9EB8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9762} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4E48} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x70B9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x515A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9EE9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x51AC} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9F50} /* East Asian ideograph */, - {0, 0, 0x658E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page291 = { - 0, marc8_31page291_dir -}; -/* PAGE 290 */ -struct yaz_iconv_trie_dir marc8_31page290_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x998A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9992} /* East Asian ideograph */, - {0, 0, 0x9976} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x990D} /* East Asian ideograph */, - {0, 0, 0x998B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9A6C} /* East Asian ideograph */, - {0, 0, 0x51AF} /* East Asian ideograph */, - {0, 0, 0x9A6D} /* East Asian ideograph */, - {0, 0, 0x9A70} /* East Asian ideograph */, - {0, 0, 0x9A6E} /* East Asian ideograph */, - {0, 0, 0x9A6F} /* East Asian ideograph */, - {0, 0, 0x9A73} /* East Asian ideograph */, - {0, 0, 0x9A7B} /* East Asian ideograph */, - {0, 0, 0x9A7C} /* East Asian ideograph */, - {0, 0, 0x9A7E} /* East Asian ideograph */, - {0, 0, 0x9A77} /* East Asian ideograph */, - {0, 0, 0x9A76} /* East Asian ideograph */, - {0, 0, 0x9A79} /* East Asian ideograph */, - {0, 0, 0x9A78} /* East Asian ideograph */, - {0, 0, 0x9A7D} /* East Asian ideograph */, - {0, 0, 0x9A87} /* East Asian ideograph */, - {0, 0, 0x9A86} /* East Asian ideograph */, - {0, 0, 0x9A8B} /* East Asian ideograph */, - {0, 0, 0x9A8F} /* East Asian ideograph */, - {0, 0, 0x9A88} /* East Asian ideograph */, - {0, 0, 0x9A91} /* East Asian ideograph */, - {0, 0, 0x9A97} /* East Asian ideograph */, - {0, 0, 0x9A9B} /* East Asian ideograph */, - {0, 0, 0x9A9E} /* East Asian ideograph */, - {0, 0, 0x817E} /* East Asian ideograph */, - {0, 0, 0x9A9A} /* East Asian ideograph */, - {0, 0, 0x9AA0} /* East Asian ideograph */, - {0, 0, 0x9A71} /* East Asian ideograph */, - {0, 0, 0x84E6} /* East Asian ideograph */, - {0, 0, 0x9AA1} /* East Asian ideograph */, - {0, 0, 0x9A84} /* East Asian ideograph */, - {0, 0, 0x60CA} /* East Asian ideograph */, - {0, 0, 0x9A7F} /* East Asian ideograph */, - {0, 0, 0x9A8C} /* East Asian ideograph */, - {0, 0, 0x9AA4} /* East Asian ideograph */, - {0, 0, 0x9A74} /* East Asian ideograph */, - {0, 0, 0x9AA5} /* East Asian ideograph */, - {0, 0, 0x9A8A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x80AE} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9AC5} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4F53} /* East Asian ideograph */, - {0, 0, 0x810F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x53D1} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x677E} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x80E1} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x987B} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x9B13} /* East Asian ideograph */, - {0, 0, 0x6597} /* East Asian ideograph */, - {0, 0, 0x95F9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x90C1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9B47} /* East Asian ideograph */, - {0, 0, 0x9C7C} /* East Asian ideograph */, - {0, 0, 0x9C7F} /* East Asian ideograph */, - {0, 0, 0x9C81} /* East Asian ideograph */, - {0, 0, 0x9C8D} /* East Asian ideograph */, - {0, 0, 0x9C9B} /* East Asian ideograph */, - {0, 0, 0x9C9C} /* East Asian ideograph */, - {0, 0, 0x9C94} /* East Asian ideograph */, - {0, 0, 0x9CA8} /* East Asian ideograph */, - {0, 0, 0x9CA4} /* East Asian ideograph */, - {0, 0, 0x9CB8} /* East Asian ideograph */, - {0, 0, 0x9CB3} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page290 = { - 0, marc8_31page290_dir -}; -/* PAGE 289 */ -struct yaz_iconv_trie_dir marc8_31page289_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5DE9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9791} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x97E6} /* East Asian ideograph */, - {0, 0, 0x97E7} /* East Asian ideograph */, - {0, 0, 0x97E9} /* East Asian ideograph */, - {0, 0, 0x97EC} /* East Asian ideograph */, - {0, 0, 0x827D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x54CD} /* East Asian ideograph */, - {0, 0, 0x9875} /* East Asian ideograph */, - {0, 0, 0x9876} /* East Asian ideograph */, - {0, 0, 0x9877} /* East Asian ideograph */, - {0, 0, 0x9879} /* East Asian ideograph */, - {0, 0, 0x987A} /* East Asian ideograph */, - {0, 0, 0x987B} /* East Asian ideograph */, - {0, 0, 0x9884} /* East Asian ideograph */, - {0, 0, 0x987C} /* East Asian ideograph */, - {0, 0, 0x987D} /* East Asian ideograph */, - {0, 0, 0x987F} /* East Asian ideograph */, - {0, 0, 0x9881} /* East Asian ideograph */, - {0, 0, 0x9882} /* East Asian ideograph */, - {0, 0, 0x9887} /* East Asian ideograph */, - {0, 0, 0x9886} /* East Asian ideograph */, - {0, 0, 0x9889} /* East Asian ideograph */, - {0, 0, 0x5934} /* East Asian ideograph */, - {0, 0, 0x988A} /* East Asian ideograph */, - {0, 0, 0x9888} /* East Asian ideograph */, - {0, 0, 0x9891} /* East Asian ideograph */, - {0, 0, 0x9893} /* East Asian ideograph */, - {0, 0, 0x9894} /* East Asian ideograph */, - {0, 0, 0x9890} /* East Asian ideograph */, - {0, 0, 0x9897} /* East Asian ideograph */, - {0, 0, 0x989C} /* East Asian ideograph */, - {0, 0, 0x989D} /* East Asian ideograph */, - {0, 0, 0x9898} /* East Asian ideograph */, - {0, 0, 0x989A} /* East Asian ideograph */, - {0, 0, 0x989B} /* East Asian ideograph */, - {0, 0, 0x7C7B} /* East Asian ideograph */, - {0, 0, 0x98A0} /* East Asian ideograph */, - {0, 0, 0x613F} /* East Asian ideograph */, - {0, 0, 0x987E} /* East Asian ideograph */, - {0, 0, 0x98A4} /* East Asian ideograph */, - {0, 0, 0x663E} /* East Asian ideograph */, - {0, 0, 0x9885} /* East Asian ideograph */, - {0, 0, 0x98A6} /* East Asian ideograph */, - {0, 0, 0x98CE} /* East Asian ideograph */, - {0, 0, 0x98D2} /* East Asian ideograph */, - {0, 0, 0x53F0} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x522E} /* East Asian ideograph */, - {0, 0, 0x98D3} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x98D5} /* East Asian ideograph */, - {0, 0, 0x98D8} /* East Asian ideograph */, - {0, 0, 0x98DE} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9965} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9968} /* East Asian ideograph */, - {0, 0, 0x996C} /* East Asian ideograph */, - {0, 0, 0x996A} /* East Asian ideograph */, - {0, 0, 0x996E} /* East Asian ideograph */, - {0, 0, 0x996D} /* East Asian ideograph */, - {0, 0, 0x9972} /* East Asian ideograph */, - {0, 0, 0x9974} /* East Asian ideograph */, - {0, 0, 0x9971} /* East Asian ideograph */, - {0, 0, 0x9970} /* East Asian ideograph */, - {0, 0, 0x997A} /* East Asian ideograph */, - {0, 0, 0x517B} /* East Asian ideograph */, - {0, 0, 0x9975} /* East Asian ideograph */, - {0, 0, 0x9977} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9981} /* East Asian ideograph */, - {0, 0, 0x4F59} /* East Asian ideograph */, - {0, 0, 0x997F} /* East Asian ideograph */, - {0, 0, 0x997C} /* East Asian ideograph */, - {0, 0, 0x9986} /* East Asian ideograph */, - {0, 0, 0x996F} /* East Asian ideograph */, - {0, 0, 0x9984} /* East Asian ideograph */, - {0, 0, 0x9985} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x998F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page289 = { - 0, marc8_31page289_dir -}; -/* PAGE 288 */ -struct yaz_iconv_trie_flat marc8_31page288_flat[] = { - {"\x23", 0, 0x9648}, /* East Asian ideograph */ - {"\x24", 0, 0x9646}, /* East Asian ideograph */ - {"\x2A", 0, 0x9634}, /* East Asian ideograph */ - {"\x2B", 0, 0x961F}, /* East Asian ideograph */ - {"\x2C", 0, 0x9636}, /* East Asian ideograph */ - {"\x2E", 0, 0x9633}, /* East Asian ideograph */ - {"\x37", 0, 0x9645}, /* East Asian ideograph */ - {"\x39", 0, 0x968F}, /* East Asian ideograph */ - {"\x3A", 0, 0x9669}, /* East Asian ideograph */ - {"\x3B", 0, 0x9690}, /* East Asian ideograph */ - {"\x3C", 0, 0x9647}, /* East Asian ideograph */ - {"\x3D", 0, 0x96B6}, /* East Asian ideograph */ - {"\x3E", 0, 0x53EA}, /* East Asian ideograph (duplicate simplified) */ - {"\x4A", 0, 0x867D}, /* East Asian ideograph */ - {"\x4B", 0, 0x6742}, /* East Asian ideograph */ - {"\x4C", 0, 0x9E21}, /* East Asian ideograph */ - {"\x4D", 0, 0x96CF}, /* East Asian ideograph */ - {"\x4E", 0, 0x53CC}, /* East Asian ideograph */ - {"\x4F", 0, 0x79BB}, /* East Asian ideograph */ - {"\x50", 0, 0x96BE}, /* East Asian ideograph */ - {"\x54", 0, 0x4E91}, /* East Asian ideograph */ - {"\x55", 0, 0x7535}, /* East Asian ideograph */ - {"\x67", 0, 0x96FE}, /* East Asian ideograph */ - {"\x6B", 0, 0x9701}, /* East Asian ideograph */ - {"\x6D", 0, 0x972D}, /* East Asian ideograph */ - {"\x6E", 0, 0x96F3}, /* East Asian ideograph */ - {"\x6F", 0, 0x7075}, /* East Asian ideograph */ - {"\x79", 0, 0x9765}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page288 = { - marc8_31page288_flat, 0 -}; -/* PAGE 287 */ -struct yaz_iconv_trie_dir marc8_31page287_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x949F} /* East Asian ideograph */, - {0, 0, 0x9524} /* East Asian ideograph */, - {0, 0, 0x9539} /* East Asian ideograph */, - {0, 0, 0x953B} /* East Asian ideograph */, - {0, 0, 0x9551} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9547} /* East Asian ideograph */, - {0, 0, 0x9501} /* East Asian ideograph */, - {0, 0, 0x94A8} /* East Asian ideograph */, - {0, 0, 0x954D} /* East Asian ideograph */, - {0, 0, 0x955C} /* East Asian ideograph */, - {0, 0, 0x955D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x955E} /* East Asian ideograph */, - {0, 0, 0x94F2} /* East Asian ideograph */, - {0, 0, 0x94FF} /* East Asian ideograph */, - {0, 0, 0x94FE} /* East Asian ideograph */, - {0, 0, 0x9556} /* East Asian ideograph */, - {0, 0, 0x9557} /* East Asian ideograph */, - {0, 0, 0x9542} /* East Asian ideograph */, - {0, 0, 0x9558} /* East Asian ideograph */, - {0, 0, 0x9559} /* East Asian ideograph */, - {0, 0, 0x9535} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x94D9} /* East Asian ideograph */, - {0, 0, 0x9570} /* East Asian ideograph */, - {0, 0, 0x9508} /* East Asian ideograph */, - {0, 0, 0x956D} /* East Asian ideograph */, - {0, 0, 0x94C1} /* East Asian ideograph */, - {0, 0, 0x94DB} /* East Asian ideograph */, - {0, 0, 0x94CE} /* East Asian ideograph */, - {0, 0, 0x956F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x94F8} /* East Asian ideograph */, - {0, 0, 0x9573} /* East Asian ideograph */, - {0, 0, 0x94C4} /* East Asian ideograph */, - {0, 0, 0x9576} /* East Asian ideograph */, - {0, 0, 0x94A5} /* East Asian ideograph */, - {0, 0, 0x92AE} /* East Asian ideograph */, - {0, 0, 0x9523} /* East Asian ideograph */, - {0, 0, 0x94BB} /* East Asian ideograph */, - {0, 0, 0x51FF} /* East Asian ideograph */, - {0, 0, 0x957F} /* East Asian ideograph */, - {0, 0, 0x95E8} /* East Asian ideograph */, - {0, 0, 0x95E9} /* East Asian ideograph */, - {0, 0, 0x95EA} /* East Asian ideograph */, - {0, 0, 0x95ED} /* East Asian ideograph */, - {0, 0, 0x95F5} /* East Asian ideograph */, - {0, 0, 0x95F0} /* East Asian ideograph */, - {0, 0, 0x5F00} /* East Asian ideograph */, - {0, 0, 0x95F2} /* East Asian ideograph */, - {0, 0, 0x95F4} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x95F8} /* East Asian ideograph */, - {0, 0, 0x9602} /* East Asian ideograph */, - {0, 0, 0x95FA} /* East Asian ideograph */, - {0, 0, 0x95FD} /* East Asian ideograph */, - {0, 0, 0x9601} /* East Asian ideograph */, - {0, 0, 0x9600} /* East Asian ideograph */, - {0, 0, 0x5408} /* East Asian ideograph */, - {0, 0, 0x9605} /* East Asian ideograph */, - {0, 0, 0x95FE} /* East Asian ideograph */, - {0, 0, 0x960E} /* East Asian ideograph */, - {0, 0, 0x9614} /* East Asian ideograph */, - {0, 0, 0x9615} /* East Asian ideograph */, - {0, 0, 0x9611} /* East Asian ideograph */, - {0, 0, 0x95F1} /* East Asian ideograph */, - {0, 0, 0x677F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x95EF} /* East Asian ideograph */, - {0, 0, 0x9617} /* East Asian ideograph */, - {0, 0, 0x5173} /* East Asian ideograph */, - {0, 0, 0x9610} /* East Asian ideograph */, - {0, 0, 0x8F9F} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9635} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page287 = { - 0, marc8_31page287_dir -}; -/* PAGE 286 */ -struct yaz_iconv_trie_dir marc8_31page286_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9154} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x915D} /* East Asian ideograph */, - {0, 0, 0x4E11} /* East Asian ideograph */, - {0, 0, 0x533B} /* East Asian ideograph */, - {0, 0, 0x9171} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x917F} /* East Asian ideograph */, - {0, 0, 0x8845} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x91CA} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5398} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9488} /* East Asian ideograph */, - {0, 0, 0x9489} /* East Asian ideograph */, - {0, 0, 0x948A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9497} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9493} /* East Asian ideograph */, - {0, 0, 0x948F} /* East Asian ideograph */, - {0, 0, 0x9499} /* East Asian ideograph */, - {0, 0, 0x949D} /* East Asian ideograph */, - {0, 0, 0x94AE} /* East Asian ideograph */, - {0, 0, 0x94A0} /* East Asian ideograph */, - {0, 0, 0x949E} /* East Asian ideograph */, - {0, 0, 0x94A7} /* East Asian ideograph */, - {0, 0, 0x94A4} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x94B4} /* East Asian ideograph */, - {0, 0, 0x94B9} /* East Asian ideograph */, - {0, 0, 0x94B8} /* East Asian ideograph */, - {0, 0, 0x94C0} /* East Asian ideograph */, - {0, 0, 0x94BE} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x94C5} /* East Asian ideograph */, - {0, 0, 0x94A9} /* East Asian ideograph */, - {0, 0, 0x94C2} /* East Asian ideograph */, - {0, 0, 0x94C3} /* East Asian ideograph */, - {0, 0, 0x94F0} /* East Asian ideograph */, - {0, 0, 0x94F6} /* East Asian ideograph */, - {0, 0, 0x94D0} /* East Asian ideograph */, - {0, 0, 0x94DC} /* East Asian ideograph */, - {0, 0, 0x94ED} /* East Asian ideograph */, - {0, 0, 0x94E2} /* East Asian ideograph */, - {0, 0, 0x94EC} /* East Asian ideograph */, - {0, 0, 0x94E8} /* East Asian ideograph */, - {0, 0, 0x8854} /* East Asian ideograph */, - {0, 0, 0x950C} /* East Asian ideograph */, - {0, 0, 0x9511} /* East Asian ideograph */, - {0, 0, 0x9510} /* East Asian ideograph */, - {0, 0, 0x94FA} /* East Asian ideograph */, - {0, 0, 0x9500} /* East Asian ideograph */, - {0, 0, 0x94DD} /* East Asian ideograph */, - {0, 0, 0x9504} /* East Asian ideograph */, - {0, 0, 0x9509} /* East Asian ideograph */, - {0, 0, 0x950B} /* East Asian ideograph */, - {0, 0, 0x952D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x952F} /* East Asian ideograph */, - {0, 0, 0x9530} /* East Asian ideograph */, - {0, 0, 0x9519} /* East Asian ideograph */, - {0, 0, 0x94B1} /* East Asian ideograph */, - {0, 0, 0x94A2} /* East Asian ideograph */, - {0, 0, 0x9521} /* East Asian ideograph */, - {0, 0, 0x94EE} /* East Asian ideograph */, - {0, 0, 0x5F55} /* East Asian ideograph */, - {0, 0, 0x9525} /* East Asian ideograph */, - {0, 0, 0x9526} /* East Asian ideograph */, - {0, 0, 0x9540} /* East Asian ideograph */, - {0, 0, 0x9541} /* East Asian ideograph */, - {0, 0, 0x952E} /* East Asian ideograph */, - {0, 0, 0x9532} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9505} /* East Asian ideograph */, - {0, 0, 0x951A} /* East Asian ideograph */, - {0, 0, 0x953E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page286 = { - 0, marc8_31page286_dir -}; -/* PAGE 285 */ -struct yaz_iconv_trie_flat marc8_31page285_flat[] = { - {"\x33", 0, 0x8FDB}, /* East Asian ideograph */ - {"\x34", 0, 0x8FD0}, /* East Asian ideograph */ - {"\x39", 0, 0x8FBE}, /* East Asian ideograph */ - {"\x3A", 0, 0x8FDD}, /* East Asian ideograph */ - {"\x3C", 0, 0x8FC2}, /* East Asian ideograph */ - {"\x3E", 0, 0x8FC7}, /* East Asian ideograph */ - {"\x44", 0, 0x8FDC}, /* East Asian ideograph */ - {"\x45", 0, 0x900A}, /* East Asian ideograph */ - {"\x48", 0, 0x9012}, /* East Asian ideograph */ - {"\x49", 0, 0x9002}, /* East Asian ideograph */ - {"\x4F", 0, 0x9009}, /* East Asian ideograph */ - {"\x50", 0, 0x8FDF}, /* East Asian ideograph */ - {"\x51", 0, 0x8FC1}, /* East Asian ideograph */ - {"\x52", 0, 0x8FBD}, /* East Asian ideograph */ - {"\x53", 0, 0x9057}, /* East Asian ideograph */ - {"\x56", 0, 0x8FC8}, /* East Asian ideograph */ - {"\x57", 0, 0x8FD8}, /* East Asian ideograph */ - {"\x5A", 0, 0x8FE9}, /* East Asian ideograph (variant of EACC 2D5C5A) */ - {"\x5B", 0, 0x8FB9}, /* East Asian ideograph */ - {"\x5C", 0, 0x9026}, /* East Asian ideograph */ - {"\x5D", 0, 0x903B}, /* East Asian ideograph */ - {"\x6B", 0, 0x5369}, /* East Asian ideograph */ - {"\x6D", 0, 0x90AE}, /* East Asian ideograph */ - {"\x70", 0, 0x4E61}, /* East Asian ideograph */ - {"\x71", 0, 0x90B9}, /* East Asian ideograph */ - {"\x73", 0, 0x90D1}, /* East Asian ideograph */ - {"\x74", 0, 0x90BB}, /* East Asian ideograph */ - {"\x75", 0, 0x9093}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page285 = { - marc8_31page285_flat, 0 -}; -/* PAGE 284 */ -struct yaz_iconv_trie_dir marc8_31page284_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8DB8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8E0C} /* East Asian ideograph */, - {0, 0, 0x8DC3} /* East Asian ideograph */, - {0, 0, 0x8E2F} /* East Asian ideograph */, - {0, 0, 0x8E51} /* East Asian ideograph */, - {0, 0, 0x8E8F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8EAF} /* East Asian ideograph */, - {0, 0, 0x8F66} /* East Asian ideograph */, - {0, 0, 0x8F67} /* East Asian ideograph */, - {0, 0, 0x519B} /* East Asian ideograph */, - {0, 0, 0x8F68} /* East Asian ideograph */, - {0, 0, 0x8F69} /* East Asian ideograph */, - {0, 0, 0x8F6B} /* East Asian ideograph */, - {0, 0, 0x8F6F} /* East Asian ideograph */, - {0, 0, 0x8F6D} /* East Asian ideograph */, - {0, 0, 0x8F72} /* East Asian ideograph */, - {0, 0, 0x8F74} /* East Asian ideograph */, - {0, 0, 0x8F76} /* East Asian ideograph */, - {0, 0, 0x8F83} /* East Asian ideograph */, - {0, 0, 0x8F7C} /* East Asian ideograph */, - {0, 0, 0x8F7D} /* East Asian ideograph */, - {0, 0, 0x8F7E} /* East Asian ideograph */, - {0, 0, 0x8F85} /* East Asian ideograph */, - {0, 0, 0x8F84} /* East Asian ideograph */, - {0, 0, 0x8F7B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8F87} /* East Asian ideograph */, - {0, 0, 0x8F86} /* East Asian ideograph */, - {0, 0, 0x8F8D} /* East Asian ideograph */, - {0, 0, 0x8F89} /* East Asian ideograph */, - {0, 0, 0x8F88} /* East Asian ideograph */, - {0, 0, 0x8F6E} /* East Asian ideograph */, - {0, 0, 0x8F8E} /* East Asian ideograph */, - {0, 0, 0x8F90} /* East Asian ideograph */, - {0, 0, 0x8F91} /* East Asian ideograph */, - {0, 0, 0x8F93} /* East Asian ideograph */, - {0, 0, 0x8F96} /* East Asian ideograph */, - {0, 0, 0x8F97} /* East Asian ideograph */, - {0, 0, 0x8F95} /* East Asian ideograph */, - {0, 0, 0x6BC2} /* East Asian ideograph */, - {0, 0, 0x8206} /* East Asian ideograph */, - {0, 0, 0x8F99} /* East Asian ideograph */, - {0, 0, 0x8F6C} /* East Asian ideograph */, - {0, 0, 0x8F9A} /* East Asian ideograph */, - {0, 0, 0x8F7F} /* East Asian ideograph */, - {0, 0, 0x8F70} /* East Asian ideograph */, - {0, 0, 0x8F94} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x529E} /* East Asian ideograph */, - {0, 0, 0x8F9E} /* East Asian ideograph */, - {0, 0, 0x8FA9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x519C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8FF0} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8FD9} /* East Asian ideograph */, - {0, 0, 0x8FDE} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page284 = { - 0, marc8_31page284_dir -}; -/* PAGE 283 */ -struct yaz_iconv_trie_flat marc8_31page283_flat[] = { - {"\x21", 0, 0x8D45}, /* East Asian ideograph */ - {"\x22", 0, 0x8D44}, /* East Asian ideograph */ - {"\x23", 0, 0x8D3C}, /* East Asian ideograph */ - {"\x24", 0, 0x8D3E}, /* East Asian ideograph */ - {"\x25", 0, 0x8D3F}, /* East Asian ideograph */ - {"\x26", 0, 0x8D40}, /* East Asian ideograph */ - {"\x27", 0, 0x8D41}, /* East Asian ideograph */ - {"\x28", 0, 0x8D42}, /* East Asian ideograph */ - {"\x29", 0, 0x5BBE}, /* East Asian ideograph */ - {"\x2A", 0, 0x8D48}, /* East Asian ideograph */ - {"\x2B", 0, 0x8D4A}, /* East Asian ideograph */ - {"\x2C", 0, 0x8D54}, /* East Asian ideograph */ - {"\x2D", 0, 0x8D4B}, /* East Asian ideograph */ - {"\x2F", 0, 0x5356}, /* East Asian ideograph */ - {"\x30", 0, 0x8D24}, /* East Asian ideograph */ - {"\x31", 0, 0x8D31}, /* East Asian ideograph */ - {"\x32", 0, 0x8D4F}, /* East Asian ideograph */ - {"\x33", 0, 0x8D50}, /* East Asian ideograph */ - {"\x34", 0, 0x8D28}, /* East Asian ideograph */ - {"\x35", 0, 0x8D4C}, /* East Asian ideograph */ - {"\x36", 0, 0x8D56}, /* East Asian ideograph */ - {"\x37", 0, 0x8D5B}, /* East Asian ideograph */ - {"\x38", 0, 0x8D5A}, /* East Asian ideograph */ - {"\x39", 0, 0x8D58}, /* East Asian ideograph */ - {"\x3A", 0, 0x8D2D}, /* East Asian ideograph */ - {"\x3B", 0, 0x8D60}, /* East Asian ideograph */ - {"\x3C", 0, 0x8D5D}, /* East Asian ideograph */ - {"\x3D", 0, 0x8D5E}, /* East Asian ideograph */ - {"\x3E", 0, 0x8D62}, /* East Asian ideograph */ - {"\x3F", 0, 0x8D61}, /* East Asian ideograph */ - {"\x40", 0, 0x8D43}, /* East Asian ideograph */ - {"\x41", 0, 0x8D4E}, /* East Asian ideograph */ - {"\x42", 0, 0x8D63}, /* East Asian ideograph */ - {"\x4F", 0, 0x8D75}, /* East Asian ideograph */ - {"\x50", 0, 0x8D76}, /* East Asian ideograph */ - {"\x53", 0, 0x8D8B}, /* East Asian ideograph */ - {"\x68", 0, 0x8DF5}, /* East Asian ideograph */ - {"\x71", 0, 0x8E0A}, /* East Asian ideograph */ - {"\x78", 0, 0x8E52}, /* East Asian ideograph */ - {"\x7E", 0, 0x8DF7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page283 = { - marc8_31page283_flat, 0 -}; -/* PAGE 282 */ -struct yaz_iconv_trie_dir marc8_31page282_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8C04} /* East Asian ideograph */, - {0, 0, 0x8C01} /* East Asian ideograph */, - {0, 0, 0x8BDE} /* East Asian ideograph */, - {0, 0, 0x8BBA} /* East Asian ideograph */, - {0, 0, 0x8C1B} /* East Asian ideograph */, - {0, 0, 0x8C1A} /* East Asian ideograph */, - {0, 0, 0x8C0F} /* East Asian ideograph */, - {0, 0, 0x8BB3} /* East Asian ideograph */, - {0, 0, 0x8C10} /* East Asian ideograph */, - {0, 0, 0x8C0D} /* East Asian ideograph */, - {0, 0, 0x8C0B} /* East Asian ideograph */, - {0, 0, 0x8C12} /* East Asian ideograph */, - {0, 0, 0x8C13} /* East Asian ideograph */, - {0, 0, 0x8BFA} /* East Asian ideograph */, - {0, 0, 0x8BBD} /* East Asian ideograph */, - {0, 0, 0x8C15} /* East Asian ideograph */, - {0, 0, 0x8C24} /* East Asian ideograph */, - {0, 0, 0x8C26} /* East Asian ideograph */, - {0, 0, 0x8C1C} /* East Asian ideograph */, - {0, 0, 0x8BB2} /* East Asian ideograph */, - {0, 0, 0x8C0E} /* East Asian ideograph */, - {0, 0, 0x8C23} /* East Asian ideograph */, - {0, 0, 0x8A8A} /* East Asian ideograph */, - {0, 0, 0x8C22} /* East Asian ideograph */, - {0, 0, 0x8C28} /* East Asian ideograph */, - {0, 0, 0x8C2C} /* East Asian ideograph */, - {0, 0, 0x8C1F} /* East Asian ideograph */, - {0, 0, 0x8BC6} /* East Asian ideograph */, - {0, 0, 0x8C31} /* East Asian ideograph */, - {0, 0, 0x8C32} /* East Asian ideograph */, - {0, 0, 0x8BC1} /* East Asian ideograph */, - {0, 0, 0x8C2D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8BA5} /* East Asian ideograph */, - {0, 0, 0x8BAE} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8BD1} /* East Asian ideograph */, - {0, 0, 0x8C34} /* East Asian ideograph */, - {0, 0, 0x62A4} /* East Asian ideograph */, - {0, 0, 0x8A89} /* East Asian ideograph */, - {0, 0, 0x8BFB} /* East Asian ideograph */, - {0, 0, 0x53D8} /* East Asian ideograph */, - {0, 0, 0x8BA9} /* East Asian ideograph */, - {0, 0, 0x8C36} /* East Asian ideograph */, - {0, 0, 0x8C17} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5C82} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x7AD6} /* East Asian ideograph */, - {0, 0, 0x4E30} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x4E88} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x7683} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8D1D} /* East Asian ideograph */, - {0, 0, 0x8D1E} /* East Asian ideograph */, - {0, 0, 0x8D1F} /* East Asian ideograph */, - {0, 0, 0x8D21} /* East Asian ideograph */, - {0, 0, 0x8D22} /* East Asian ideograph */, - {0, 0, 0x8D23} /* East Asian ideograph */, - {0, 0, 0x8D2F} /* East Asian ideograph */, - {0, 0, 0x8D27} /* East Asian ideograph */, - {0, 0, 0x8D2A} /* East Asian ideograph */, - {0, 0, 0x8D2B} /* East Asian ideograph */, - {0, 0, 0x8D29} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8D39} /* East Asian ideograph */, - {0, 0, 0x8D32} /* East Asian ideograph */, - {0, 0, 0x8D3A} /* East Asian ideograph */, - {0, 0, 0x8D35} /* East Asian ideograph */, - {0, 0, 0x8D34} /* East Asian ideograph */, - {0, 0, 0x4E70} /* East Asian ideograph */, - {0, 0, 0x8D2C} /* East Asian ideograph */, - {0, 0, 0x8D3B} /* East Asian ideograph */, - {0, 0, 0x8D37} /* East Asian ideograph */, - {0, 0, 0x8D38} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page282 = { - 0, marc8_31page282_dir -}; -/* PAGE 281 */ -struct yaz_iconv_trie_dir marc8_31page281_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x889C} /* East Asian ideograph */, - {0, 0, 0x886C} /* East Asian ideograph */, - {0, 0, 0x88AD} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x89C1} /* East Asian ideograph */, - {0, 0, 0x89C4} /* East Asian ideograph */, - {0, 0, 0x89C5} /* East Asian ideograph */, - {0, 0, 0x89C6} /* East Asian ideograph */, - {0, 0, 0x4EB2} /* East Asian ideograph */, - {0, 0, 0x89CE} /* East Asian ideograph */, - {0, 0, 0x89CA} /* East Asian ideograph */, - {0, 0, 0x89D0} /* East Asian ideograph */, - {0, 0, 0x89C9} /* East Asian ideograph */, - {0, 0, 0x89C8} /* East Asian ideograph */, - {0, 0, 0x89C2} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x89DE} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8BA1} /* East Asian ideograph */, - {0, 0, 0x8BA2} /* East Asian ideograph */, - {0, 0, 0x8BA3} /* East Asian ideograph */, - {0, 0, 0x8BA6} /* East Asian ideograph */, - {0, 0, 0x8BB0} /* East Asian ideograph */, - {0, 0, 0x8BA8} /* East Asian ideograph */, - {0, 0, 0x8BA7} /* East Asian ideograph */, - {0, 0, 0x8BAA} /* East Asian ideograph */, - {0, 0, 0x8BAF} /* East Asian ideograph */, - {0, 0, 0x8BAB} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8BAD} /* East Asian ideograph */, - {0, 0, 0x8BBF} /* East Asian ideograph */, - {0, 0, 0x8BC0} /* East Asian ideograph */, - {0, 0, 0x8BB6} /* East Asian ideograph */, - {0, 0, 0x8BB7} /* East Asian ideograph */, - {0, 0, 0x8BB8} /* East Asian ideograph */, - {0, 0, 0x8BBE} /* East Asian ideograph */, - {0, 0, 0x8BB9} /* East Asian ideograph */, - {0, 0, 0x8BBC} /* East Asian ideograph */, - {0, 0, 0x6CE8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8BC4} /* East Asian ideograph */, - {0, 0, 0x8BCD} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8BC2} /* East Asian ideograph */, - {0, 0, 0x8BCF} /* East Asian ideograph */, - {0, 0, 0x8BC5} /* East Asian ideograph */, - {0, 0, 0x8BC8} /* East Asian ideograph */, - {0, 0, 0x8BCB} /* East Asian ideograph */, - {0, 0, 0x8BC9} /* East Asian ideograph */, - {0, 0, 0x8BCA} /* East Asian ideograph */, - {0, 0, 0x8BE7} /* East Asian ideograph */, - {0, 0, 0x8BE5} /* East Asian ideograph */, - {0, 0, 0x8BE6} /* East Asian ideograph */, - {0, 0, 0x8BD5} /* East Asian ideograph */, - {0, 0, 0x8BD7} /* East Asian ideograph */, - {0, 0, 0x8BD8} /* East Asian ideograph */, - {0, 0, 0x8BE3} /* East Asian ideograph */, - {0, 0, 0x8BD9} /* East Asian ideograph */, - {0, 0, 0x8BDA} /* East Asian ideograph */, - {0, 0, 0x5938} /* East Asian ideograph */, - {0, 0, 0x8BDB} /* East Asian ideograph */, - {0, 0, 0x8BE1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8BE2} /* East Asian ideograph */, - {0, 0, 0x8BDD} /* East Asian ideograph */, - {0, 0, 0x8BE0} /* East Asian ideograph */, - {0, 0, 0x8BDF} /* East Asian ideograph */, - {0, 0, 0x8BF4} /* East Asian ideograph */, - {0, 0, 0x8BF5} /* East Asian ideograph */, - {0, 0, 0x8BEB} /* East Asian ideograph */, - {0, 0, 0x8BED} /* East Asian ideograph */, - {0, 0, 0x5FD7} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8BEC} /* East Asian ideograph */, - {0, 0, 0x8BA4} /* East Asian ideograph */, - {0, 0, 0x8BEF} /* East Asian ideograph */, - {0, 0, 0x8BF2} /* East Asian ideograph */, - {0, 0, 0x8BF0} /* East Asian ideograph */, - {0, 0, 0x8BF1} /* East Asian ideograph */, - {0, 0, 0x8BF3} /* East Asian ideograph */, - {0, 0, 0x8C0A} /* East Asian ideograph */, - {0, 0, 0x8C06} /* East Asian ideograph */, - {0, 0, 0x8C05} /* East Asian ideograph */, - {0, 0, 0x8C08} /* East Asian ideograph */, - {0, 0, 0x8BF7} /* East Asian ideograph */, - {0, 0, 0x8BF8} /* East Asian ideograph */, - {0, 0, 0x8BFE} /* East Asian ideograph */, - {0, 0, 0x8C03} /* East Asian ideograph */, - {0, 0, 0x8BFF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page281 = { - 0, marc8_31page281_dir -}; -/* PAGE 280 */ -struct yaz_iconv_trie_flat marc8_31page280_flat[] = { - {"\x24", 0, 0x8424}, /* East Asian ideograph */ - {"\x25", 0, 0x8682}, /* East Asian ideograph */ - {"\x2C", 0, 0x877C}, /* East Asian ideograph */ - {"\x32", 0, 0x86F2}, /* East Asian ideograph */ - {"\x33", 0, 0x866B}, /* East Asian ideograph */ - {"\x34", 0, 0x8749}, /* East Asian ideograph */ - {"\x35", 0, 0x8681}, /* East Asian ideograph */ - {"\x36", 0, 0x8747}, /* East Asian ideograph */ - {"\x3C", 0, 0x86CE}, /* East Asian ideograph */ - {"\x3E", 0, 0x8721}, /* East Asian ideograph */ - {"\x3F", 0, 0x86CA}, /* East Asian ideograph */ - {"\x41", 0, 0x8695}, /* East Asian ideograph */ - {"\x42", 0, 0x86EE}, /* East Asian ideograph */ - {"\x46", 0, 0x672E}, /* East Asian ideograph */ - {"\x47", 0, 0x4E8D}, /* East Asian ideograph */ - {"\x49", 0, 0x536B}, /* East Asian ideograph */ - {"\x4A", 0, 0x51B2}, /* East Asian ideograph (duplicate simplified) */ - {"\x62", 0, 0x8865}, /* East Asian ideograph */ - {"\x63", 0, 0x91CC}, /* East Asian ideograph */ - {"\x65", 0, 0x88C5}, /* East Asian ideograph */ - {"\x6C", 0, 0x5236}, /* East Asian ideograph */ - {"\x71", 0, 0x8934}, /* East Asian ideograph */ - {"\x73", 0, 0x88E4}, /* East Asian ideograph */ - {"\x77", 0, 0x4EB5}, /* East Asian ideograph */ - {"\x79", 0, 0x891B}, /* East Asian ideograph */ - {"\x7C", 0, 0x88C6}, /* East Asian ideograph */ - {"\x7D", 0, 0x8884}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page280 = { - marc8_31page280_flat, 0 -}; -/* PAGE 279 */ -struct yaz_iconv_trie_flat marc8_31page279_flat[] = { - {"\x22", 0, 0x8427}, /* East Asian ideograph */ - {"\x24", 0, 0x59DC}, /* East Asian ideograph */ - {"\x26", 0, 0x8537}, /* East Asian ideograph */ - {"\x29", 0, 0x84DD}, /* East Asian ideograph */ - {"\x2A", 0, 0x8428}, /* East Asian ideograph */ - {"\x2E", 0, 0x501F}, /* East Asian ideograph */ - {"\x31", 0, 0x827A}, /* East Asian ideograph */ - {"\x32", 0, 0x85AE}, /* East Asian ideograph */ - {"\x35", 0, 0x836F}, /* East Asian ideograph */ - {"\x37", 0, 0x853C}, /* East Asian ideograph */ - {"\x39", 0, 0x853A}, /* East Asian ideograph */ - {"\x3A", 0, 0x82A6}, /* East Asian ideograph */ - {"\x3B", 0, 0x82F9}, /* East Asian ideograph */ - {"\x3C", 0, 0x82CF}, /* East Asian ideograph */ - {"\x3D", 0, 0x8574}, /* East Asian ideograph */ - {"\x3E", 0, 0x5170}, /* East Asian ideograph */ - {"\x40", 0, 0x85D3}, /* East Asian ideograph */ - {"\x42", 0, 0x841D}, /* East Asian ideograph */ - {"\x44", 0, 0x4E47}, /* East Asian ideograph */ - {"\x47", 0, 0x5904}, /* East Asian ideograph */ - {"\x48", 0, 0x864F}, /* East Asian ideograph */ - {"\x4A", 0, 0x53F7}, /* East Asian ideograph */ - {"\x4C", 0, 0x4E8F}, /* East Asian ideograph */ - {"\x5A", 0, 0x65E6}, /* East Asian ideograph */ - {"\x76", 0, 0x8680}, /* East Asian ideograph */ - {"\x79", 0, 0x80E1}, /* East Asian ideograph (duplicate simplified) */ - {"\x7A", 0, 0x867E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page279 = { - marc8_31page279_flat, 0 -}; -/* PAGE 278 */ -struct yaz_iconv_trie_flat marc8_31page278_flat[] = { - {"\x28", 0, 0x835A}, /* East Asian ideograph */ - {"\x29", 0, 0x830E}, /* East Asian ideograph */ - {"\x2A", 0, 0x82CB}, /* East Asian ideograph */ - {"\x2D", 0, 0x5E84}, /* East Asian ideograph */ - {"\x3C", 0, 0x534E}, /* East Asian ideograph */ - {"\x41", 0, 0x83B1}, /* East Asian ideograph */ - {"\x4D", 0, 0x82C7}, /* East Asian ideograph */ - {"\x4F", 0, 0x53F6}, /* East Asian ideograph */ - {"\x51", 0, 0x80E1}, /* East Asian ideograph (duplicate simplified) */ - {"\x53", 0, 0x8364}, /* East Asian ideograph */ - {"\x55", 0, 0x83B4}, /* East Asian ideograph */ - {"\x5D", 0, 0x5E2D}, /* East Asian ideograph */ - {"\x63", 0, 0x836A}, /* East Asian ideograph */ - {"\x64", 0, 0x82CE}, /* East Asian ideograph */ - {"\x67", 0, 0x82CD}, /* East Asian ideograph */ - {"\x68", 0, 0x8298}, /* East Asian ideograph */ - {"\x6C", 0, 0x83B2}, /* East Asian ideograph */ - {"\x6E", 0, 0x836B}, /* East Asian ideograph */ - {"\x71", 0, 0x848B}, /* East Asian ideograph */ - {"\x73", 0, 0x535C}, /* East Asian ideograph */ - {"\x76", 0, 0x8361}, /* East Asian ideograph */ - {"\x7C", 0, 0x829C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page278 = { - marc8_31page278_flat, 0 -}; -/* PAGE 277 */ -struct yaz_iconv_trie_flat marc8_31page277_flat[] = { - {"\x21", 0, 0x80EA}, /* East Asian ideograph */ - {"\x22", 0, 0x810F}, /* East Asian ideograph (duplicate simplified) */ - {"\x25", 0, 0x4E34}, /* East Asian ideograph */ - {"\x2B", 0, 0x53F0}, /* East Asian ideograph */ - {"\x32", 0, 0x4E0E}, /* East Asian ideograph */ - {"\x33", 0, 0x5174}, /* East Asian ideograph */ - {"\x34", 0, 0x4E3E}, /* East Asian ideograph */ - {"\x35", 0, 0x65E7}, /* East Asian ideograph */ - {"\x4A", 0, 0x8231}, /* East Asian ideograph */ - {"\x4B", 0, 0x8230}, /* East Asian ideograph */ - {"\x4E", 0, 0x8270}, /* East Asian ideograph */ - {"\x58", 0, 0x5DF4}, /* East Asian ideograph (duplicate simplified) */ - {"\x5C", 0, 0x520D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page277 = { - marc8_31page277_flat, 0 -}; -/* PAGE 276 */ -struct yaz_iconv_trie_flat marc8_31page276_flat[] = { - {"\x21", 0, 0x8083}, /* East Asian ideograph */ - {"\x44", 0, 0x80C1}, /* East Asian ideograph */ - {"\x4A", 0, 0x8090}, /* East Asian ideograph */ - {"\x4D", 0, 0x8109}, /* East Asian ideograph */ - {"\x58", 0, 0x80BE}, /* East Asian ideograph */ - {"\x59", 0, 0x80C0}, /* East Asian ideograph */ - {"\x5E", 0, 0x80A0}, /* East Asian ideograph */ - {"\x62", 0, 0x80BF}, /* East Asian ideograph */ - {"\x65", 0, 0x8111}, /* East Asian ideograph */ - {"\x6C", 0, 0x80F6}, /* East Asian ideograph */ - {"\x6E", 0, 0x80A4}, /* East Asian ideograph */ - {"\x71", 0, 0x817B}, /* East Asian ideograph */ - {"\x78", 0, 0x8113}, /* East Asian ideograph */ - {"\x79", 0, 0x80C6}, /* East Asian ideograph */ - {"\x7A", 0, 0x8138}, /* East Asian ideograph */ - {"\x7B", 0, 0x810D}, /* East Asian ideograph */ - {"\x7C", 0, 0x8110}, /* East Asian ideograph */ - {"\x7D", 0, 0x8191}, /* East Asian ideograph */ - {"\x7E", 0, 0x814A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page276 = { - marc8_31page276_flat, 0 -}; -/* PAGE 275 */ -struct yaz_iconv_trie_flat marc8_31page275_flat[] = { - {"\x21", 0, 0x7EED}, /* East Asian ideograph */ - {"\x22", 0, 0x7F28}, /* East Asian ideograph */ - {"\x23", 0, 0x7EA4}, /* East Asian ideograph */ - {"\x24", 0, 0x7F06}, /* East Asian ideograph */ - {"\x33", 0, 0x7F5A}, /* East Asian ideograph */ - {"\x34", 0, 0x9A82}, /* East Asian ideograph */ - {"\x35", 0, 0x7F62}, /* East Asian ideograph */ - {"\x37", 0, 0x7F57}, /* East Asian ideograph */ - {"\x38", 0, 0x7F81}, /* East Asian ideograph */ - {"\x42", 0, 0x4E49}, /* East Asian ideograph */ - {"\x4D", 0, 0x4E60}, /* East Asian ideograph */ - {"\x51", 0, 0x7FC6}, /* East Asian ideograph */ - {"\x58", 0, 0x7FD8}, /* East Asian ideograph */ - {"\x6F", 0, 0x5723}, /* East Asian ideograph */ - {"\x71", 0, 0x95FB}, /* East Asian ideograph */ - {"\x74", 0, 0x58F0}, /* East Asian ideograph */ - {"\x75", 0, 0x8038}, /* East Asian ideograph */ - {"\x76", 0, 0x806A}, /* East Asian ideograph */ - {"\x77", 0, 0x8054}, /* East Asian ideograph */ - {"\x78", 0, 0x804C}, /* East Asian ideograph */ - {"\x79", 0, 0x8042}, /* East Asian ideograph */ - {"\x7A", 0, 0x804B}, /* East Asian ideograph */ - {"\x7B", 0, 0x542C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page275 = { - marc8_31page275_flat, 0 -}; -/* PAGE 274 */ -struct yaz_iconv_trie_dir marc8_31page274_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x7EB1} /* East Asian ideograph */, - {0, 0, 0x7EB3} /* East Asian ideograph */, - {0, 0, 0x7EA7} /* East Asian ideograph */, - {0, 0, 0x7EB8} /* East Asian ideograph */, - {0, 0, 0x7EB7} /* East Asian ideograph */, - {0, 0, 0x7ECA} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7ECB} /* East Asian ideograph */, - {0, 0, 0x624E} /* East Asian ideograph */, - {0, 0, 0x7ECD} /* East Asian ideograph */, - {0, 0, 0x7EC4} /* East Asian ideograph */, - {0, 0, 0x7EC6} /* East Asian ideograph */, - {0, 0, 0x7EC5} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7ECC} /* East Asian ideograph */, - {0, 0, 0x7EC8} /* East Asian ideograph */, - {0, 0, 0x7EDF} /* East Asian ideograph */, - {0, 0, 0x7EDE} /* East Asian ideograph */, - {0, 0, 0x7ED2} /* East Asian ideograph */, - {0, 0, 0x7ED3} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7EDA} /* East Asian ideograph */, - {0, 0, 0x7EDD} /* East Asian ideograph */, - {0, 0, 0x7EDC} /* East Asian ideograph */, - {0, 0, 0x7ED9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4E1D} /* East Asian ideograph */, - {0, 0, 0x7ECF} /* East Asian ideograph */, - {0, 0, 0x6346} /* East Asian ideograph */, - {0, 0, 0x7EE2} /* East Asian ideograph */, - {0, 0, 0x7EE5} /* East Asian ideograph */, - {0, 0, 0x7ED1} /* East Asian ideograph */, - {0, 0, 0x7EFC} /* East Asian ideograph */, - {0, 0, 0x7EFD} /* East Asian ideograph */, - {0, 0, 0x7EFE} /* East Asian ideograph */, - {0, 0, 0x7D27} /* East Asian ideograph */, - {0, 0, 0x7EEB} /* East Asian ideograph */, - {0, 0, 0x7F00} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7F51} /* East Asian ideograph */, - {0, 0, 0x7EB2} /* East Asian ideograph */, - {0, 0, 0x7EF0} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7EFF} /* East Asian ideograph */, - {0, 0, 0x7EF8} /* East Asian ideograph */, - {0, 0, 0x7EF4} /* East Asian ideograph */, - {0, 0, 0x7EF5} /* East Asian ideograph */, - {0, 0, 0x7EB6} /* East Asian ideograph */, - {0, 0, 0x7F01} /* East Asian ideograph */, - {0, 0, 0x7F14} /* East Asian ideograph */, - {0, 0, 0x7EAC} /* East Asian ideograph */, - {0, 0, 0x7EC3} /* East Asian ideograph */, - {0, 0, 0x7EEA} /* East Asian ideograph */, - {0, 0, 0x7F04} /* East Asian ideograph */, - {0, 0, 0x7F05} /* East Asian ideograph */, - {0, 0, 0x7F09} /* East Asian ideograph */, - {0, 0, 0x7F13} /* East Asian ideograph */, - {0, 0, 0x7F18} /* East Asian ideograph */, - {0, 0, 0x7F16} /* East Asian ideograph */, - {0, 0, 0x7EBF} /* East Asian ideograph */, - {0, 0, 0x7F0D} /* East Asian ideograph */, - {0, 0, 0x7F0E} /* East Asian ideograph */, - {0, 0, 0x7F23} /* East Asian ideograph */, - {0, 0, 0x7F22} /* East Asian ideograph */, - {0, 0, 0x8426} /* East Asian ideograph */, - {0, 0, 0x7F1A} /* East Asian ideograph */, - {0, 0, 0x81F4} /* East Asian ideograph */, - {0, 0, 0x53BF} /* East Asian ideograph (variant of EACC 455164) */, - {0, 0, 0x7F29} /* East Asian ideograph */, - {0, 0, 0x7EE9} /* East Asian ideograph */, - {0, 0, 0x7F2A} /* East Asian ideograph */, - {0, 0, 0x7F15} /* East Asian ideograph */, - {0, 0, 0x7F27} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x7F1D} /* East Asian ideograph */, - {0, 0, 0x603B} /* East Asian ideograph */, - {0, 0, 0x7EB5} /* East Asian ideograph */, - {0, 0, 0x7F2B} /* East Asian ideograph */, - {0, 0, 0x7F2E} /* East Asian ideograph */, - {0, 0, 0x7EC7} /* East Asian ideograph */, - {0, 0, 0x7EE3} /* East Asian ideograph */, - {0, 0, 0x7ED5} /* East Asian ideograph */, - {0, 0, 0x7F2D} /* East Asian ideograph */, - {0, 0, 0x7CFB} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x7EF3} /* East Asian ideograph */, - {0, 0, 0x8327} /* East Asian ideograph */, - {0, 0, 0x7ECE} /* East Asian ideograph */, - {0, 0, 0x7ED8} /* East Asian ideograph */, - {0, 0, 0x8FAB} /* East Asian ideograph */, - {0, 0, 0x7F24} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7EE7} /* East Asian ideograph */, - {0, 0, 0x7F20} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page274 = { - 0, marc8_31page274_dir -}; -/* PAGE 273 */ -struct yaz_iconv_trie_flat marc8_31page273_flat[] = { - {"\x21", 0, 0x7B0B}, /* East Asian ideograph */ - {"\x23", 0, 0x8345}, /* East Asian ideograph */ - {"\x2A", 0, 0x94B3}, /* East Asian ideograph */ - {"\x2B", 0, 0x7B3A}, /* East Asian ideograph */ - {"\x30", 0, 0x8303}, /* East Asian ideograph */ - {"\x33", 0, 0x8282}, /* East Asian ideograph */ - {"\x38", 0, 0x7BAC}, /* East Asian ideograph */ - {"\x39", 0, 0x7B03}, /* East Asian ideograph */ - {"\x3A", 0, 0x7B51}, /* East Asian ideograph */ - {"\x3C", 0, 0x7B5B}, /* East Asian ideograph */ - {"\x3E", 0, 0x7BD3}, /* East Asian ideograph */ - {"\x41", 0, 0x7B80}, /* East Asian ideograph */ - {"\x42", 0, 0x7BAB}, /* East Asian ideograph */ - {"\x45", 0, 0x7BAA}, /* East Asian ideograph */ - {"\x46", 0, 0x7BD1}, /* East Asian ideograph */ - {"\x48", 0, 0x5E18}, /* East Asian ideograph */ - {"\x4B", 0, 0x7B7E}, /* East Asian ideograph */ - {"\x4C", 0, 0x7BEE}, /* East Asian ideograph */ - {"\x4D", 0, 0x7B79}, /* East Asian ideograph */ - {"\x50", 0, 0x7B3C}, /* East Asian ideograph */ - {"\x51", 0, 0x7C41}, /* East Asian ideograph */ - {"\x52", 0, 0x7B7E}, /* East Asian ideograph (duplicate simplified) */ - {"\x53", 0, 0x7BF1}, /* East Asian ideograph */ - {"\x54", 0, 0x7BA9}, /* East Asian ideograph */ - {"\x55", 0, 0x5401}, /* East Asian ideograph */ - {"\x60", 0, 0x7C8B}, /* East Asian ideograph */ - {"\x62", 0, 0x80E1}, /* East Asian ideograph (duplicate simplified) */ - {"\x68", 0, 0x7CAA}, /* East Asian ideograph */ - {"\x6B", 0, 0x7CAE}, /* East Asian ideograph */ - {"\x6F", 0, 0x7EA0}, /* East Asian ideograph */ - {"\x70", 0, 0x7EAA}, /* East Asian ideograph */ - {"\x71", 0, 0x7EA3}, /* East Asian ideograph */ - {"\x72", 0, 0x7EA2}, /* East Asian ideograph */ - {"\x73", 0, 0x7EAB}, /* East Asian ideograph */ - {"\x74", 0, 0x7EA6}, /* East Asian ideograph */ - {"\x75", 0, 0x7EA5}, /* East Asian ideograph */ - {"\x76", 0, 0x7EBA}, /* East Asian ideograph */ - {"\x77", 0, 0x7EB9}, /* East Asian ideograph */ - {"\x7A", 0, 0x7EAD}, /* East Asian ideograph */ - {"\x7C", 0, 0x7EB0}, /* East Asian ideograph */ - {"\x7D", 0, 0x7EAF}, /* East Asian ideograph */ - {"\x7E", 0, 0x7EBD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page273 = { - marc8_31page273_flat, 0 -}; -/* PAGE 272 */ -struct yaz_iconv_trie_flat marc8_31page272_flat[] = { - {"\x22", 0, 0x4E07}, /* East Asian ideograph */ - {"\x25", 0, 0x53B6}, /* East Asian ideograph */ - {"\x36", 0, 0x5E0C}, /* East Asian ideograph */ - {"\x3C", 0, 0x79F0}, /* East Asian ideograph */ - {"\x3D", 0, 0x79CD}, /* East Asian ideograph */ - {"\x40", 0, 0x8C37}, /* East Asian ideograph */ - {"\x44", 0, 0x79EF}, /* East Asian ideograph */ - {"\x46", 0, 0x7A23}, /* East Asian ideograph */ - {"\x49", 0, 0x7A51}, /* East Asian ideograph */ - {"\x4A", 0, 0x79FD}, /* East Asian ideograph */ - {"\x4B", 0, 0x83B7}, /* East Asian ideograph (duplicate simplified) */ - {"\x4C", 0, 0x7A33}, /* East Asian ideograph */ - {"\x5C", 0, 0x6D3C}, /* East Asian ideograph */ - {"\x5D", 0, 0x7A9D}, /* East Asian ideograph */ - {"\x5F", 0, 0x7A77}, /* East Asian ideograph */ - {"\x60", 0, 0x7AA5}, /* East Asian ideograph */ - {"\x61", 0, 0x7A8D}, /* East Asian ideograph */ - {"\x62", 0, 0x7A9C}, /* East Asian ideograph */ - {"\x63", 0, 0x7AA6}, /* East Asian ideograph */ - {"\x64", 0, 0x7A83}, /* East Asian ideograph */ - {"\x6B", 0, 0x7ADE}, /* East Asian ideograph */ - {"\x70", 0, 0x5DF4}, /* East Asian ideograph (duplicate simplified) */ - {"\x79", 0, 0x7B14}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page272 = { - marc8_31page272_flat, 0 -}; -/* PAGE 271 */ -struct yaz_iconv_trie_flat marc8_31page271_flat[] = { - {"\x27", 0, 0x77EB}, /* East Asian ideograph */ - {"\x3B", 0, 0x781A}, /* East Asian ideograph */ - {"\x3E", 0, 0x7815}, /* East Asian ideograph */ - {"\x45", 0, 0x7855}, /* East Asian ideograph */ - {"\x49", 0, 0x786E}, /* East Asian ideograph */ - {"\x4C", 0, 0x7801}, /* East Asian ideograph */ - {"\x53", 0, 0x7816}, /* East Asian ideograph */ - {"\x58", 0, 0x77F6}, /* East Asian ideograph */ - {"\x59", 0, 0x7840}, /* East Asian ideograph */ - {"\x5A", 0, 0x788D}, /* East Asian ideograph */ - {"\x5B", 0, 0x77FF}, /* East Asian ideograph */ - {"\x5C", 0, 0x77FE}, /* East Asian ideograph */ - {"\x5D", 0, 0x783A}, /* East Asian ideograph */ - {"\x5E", 0, 0x783E}, /* East Asian ideograph */ - {"\x6F", 0, 0x53EA}, /* East Asian ideograph (duplicate simplified) */ - {"\x77", 0, 0x7978}, /* East Asian ideograph */ - {"\x78", 0, 0x796F}, /* East Asian ideograph */ - {"\x7B", 0, 0x7985}, /* East Asian ideograph */ - {"\x7C", 0, 0x793C}, /* East Asian ideograph */ - {"\x7D", 0, 0x7977}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page271 = { - marc8_31page271_flat, 0 -}; -/* PAGE 270 */ -struct yaz_iconv_trie_flat marc8_31page270_flat[] = { - {"\x29", 0, 0x7691}, /* East Asian ideograph */ - {"\x2D", 0, 0x76B1}, /* East Asian ideograph */ - {"\x3A", 0, 0x76CF}, /* East Asian ideograph */ - {"\x3C", 0, 0x5C3D}, /* East Asian ideograph */ - {"\x3D", 0, 0x76D1}, /* East Asian ideograph */ - {"\x3E", 0, 0x76D8}, /* East Asian ideograph */ - {"\x3F", 0, 0x5362}, /* East Asian ideograph */ - {"\x56", 0, 0x4F17}, /* East Asian ideograph */ - {"\x57", 0, 0x56F0}, /* East Asian ideograph */ - {"\x5D", 0, 0x7750}, /* East Asian ideograph */ - {"\x73", 0, 0x4E86}, /* East Asian ideograph */ - {"\x7C", 0, 0x77A9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page270 = { - marc8_31page270_flat, 0 -}; -/* PAGE 269 */ -struct yaz_iconv_trie_flat marc8_31page269_flat[] = { - {"\x2D", 0, 0x4EA9}, /* East Asian ideograph */ - {"\x31", 0, 0x7544}, /* East Asian ideograph */ - {"\x33", 0, 0x6BD5}, /* East Asian ideograph */ - {"\x34", 0, 0x5F02}, /* East Asian ideograph */ - {"\x36", 0, 0x753B}, /* East Asian ideograph */ - {"\x39", 0, 0x5F53}, /* East Asian ideograph */ - {"\x3B", 0, 0x7574}, /* East Asian ideograph */ - {"\x3C", 0, 0x8FED}, /* East Asian ideograph */ - {"\x56", 0, 0x75C9}, /* East Asian ideograph */ - {"\x60", 0, 0x75A1}, /* East Asian ideograph */ - {"\x61", 0, 0x759F}, /* East Asian ideograph */ - {"\x62", 0, 0x75EA}, /* East Asian ideograph */ - {"\x63", 0, 0x75AF}, /* East Asian ideograph */ - {"\x6A", 0, 0x75AE}, /* East Asian ideograph */ - {"\x6D", 0, 0x75E8}, /* East Asian ideograph */ - {"\x6E", 0, 0x7597}, /* East Asian ideograph */ - {"\x71", 0, 0x75A0}, /* East Asian ideograph */ - {"\x73", 0, 0x75D2}, /* East Asian ideograph */ - {"\x75", 0, 0x765E}, /* East Asian ideograph */ - {"\x76", 0, 0x763E}, /* East Asian ideograph */ - {"\x77", 0, 0x7663}, /* East Asian ideograph */ - {"\x78", 0, 0x762B}, /* East Asian ideograph */ - {"\x79", 0, 0x766B}, /* East Asian ideograph */ - {"\x7B", 0, 0x53D1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page269 = { - marc8_31page269_flat, 0 -}; -/* PAGE 268 */ -struct yaz_iconv_trie_flat marc8_31page268_flat[] = { - {"\x22", 0, 0x72EF}, /* East Asian ideograph */ - {"\x23", 0, 0x72EE}, /* East Asian ideograph */ - {"\x27", 0, 0x72EC}, /* East Asian ideograph */ - {"\x28", 0, 0x72DE}, /* East Asian ideograph */ - {"\x29", 0, 0x83B7}, /* East Asian ideograph */ - {"\x2A", 0, 0x72B7}, /* East Asian ideograph */ - {"\x2B", 0, 0x517D}, /* East Asian ideograph */ - {"\x2C", 0, 0x730E}, /* East Asian ideograph */ - {"\x2D", 0, 0x736D}, /* East Asian ideograph */ - {"\x2E", 0, 0x732E}, /* East Asian ideograph */ - {"\x2F", 0, 0x7321}, /* East Asian ideograph */ - {"\x47", 0, 0x73B0}, /* East Asian ideograph */ - {"\x57", 0, 0x73F2}, /* East Asian ideograph */ - {"\x5E", 0, 0x739B}, /* East Asian ideograph */ - {"\x5F", 0, 0x7410}, /* East Asian ideograph */ - {"\x64", 0, 0x7391}, /* East Asian ideograph */ - {"\x67", 0, 0x73AF}, /* East Asian ideograph */ - {"\x68", 0, 0x7477}, /* East Asian ideograph */ - {"\x69", 0, 0x73BA}, /* East Asian ideograph */ - {"\x6B", 0, 0x73D1}, /* East Asian ideograph */ - {"\x74", 0, 0x74EF}, /* East Asian ideograph */ - {"\x7A", 0, 0x4EA7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page268 = { - marc8_31page268_flat, 0 -}; -/* PAGE 267 */ -struct yaz_iconv_trie_flat marc8_31page267_flat[] = { - {"\x21", 0, 0x70BD}, /* East Asian ideograph */ - {"\x22", 0, 0x7096}, /* East Asian ideograph */ - {"\x24", 0, 0x706F}, /* East Asian ideograph */ - {"\x25", 0, 0x7116}, /* East Asian ideograph */ - {"\x26", 0, 0x70E7}, /* East Asian ideograph */ - {"\x2E", 0, 0x8425}, /* East Asian ideograph */ - {"\x30", 0, 0x70DB}, /* East Asian ideograph */ - {"\x31", 0, 0x707F}, /* East Asian ideograph */ - {"\x33", 0, 0x70E9}, /* East Asian ideograph */ - {"\x36", 0, 0x70C1}, /* East Asian ideograph */ - {"\x37", 0, 0x7089}, /* East Asian ideograph */ - {"\x38", 0, 0x70C2}, /* East Asian ideograph */ - {"\x42", 0, 0x7237}, /* East Asian ideograph */ - {"\x45", 0, 0x5C14}, /* East Asian ideograph */ - {"\x46", 0, 0x5899}, /* East Asian ideograph */ - {"\x4C", 0, 0x724D}, /* East Asian ideograph */ - {"\x53", 0, 0x5B83}, /* East Asian ideograph */ - {"\x5A", 0, 0x7275}, /* East Asian ideograph */ - {"\x5E", 0, 0x8366}, /* East Asian ideograph */ - {"\x61", 0, 0x728A}, /* East Asian ideograph */ - {"\x62", 0, 0x727A}, /* East Asian ideograph */ - {"\x68", 0, 0x72B6}, /* East Asian ideograph */ - {"\x70", 0, 0x72ED}, /* East Asian ideograph */ - {"\x72", 0, 0x72C8}, /* East Asian ideograph */ - {"\x79", 0, 0x72B9}, /* East Asian ideograph */ - {"\x7E", 0, 0x72F1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page267 = { - marc8_31page267_flat, 0 -}; -/* PAGE 266 */ -struct yaz_iconv_trie_flat marc8_31page266_flat[] = { - {"\x21", 0, 0x6CFD}, /* East Asian ideograph */ - {"\x22", 0, 0x6D4A}, /* East Asian ideograph */ - {"\x26", 0, 0x6D4E}, /* East Asian ideograph */ - {"\x27", 0, 0x6CDE}, /* East Asian ideograph */ - {"\x28", 0, 0x6EE8}, /* East Asian ideograph */ - {"\x2B", 0, 0x6EE5}, /* East Asian ideograph */ - {"\x2D", 0, 0x6D9B}, /* East Asian ideograph */ - {"\x2E", 0, 0x6DA9}, /* East Asian ideograph */ - {"\x31", 0, 0x6C88}, /* East Asian ideograph */ - {"\x32", 0, 0x6CFB}, /* East Asian ideograph */ - {"\x33", 0, 0x6E0E}, /* East Asian ideograph */ - {"\x34", 0, 0x6E85}, /* East Asian ideograph */ - {"\x36", 0, 0x6EE4}, /* East Asian ideograph */ - {"\x37", 0, 0x6D4F}, /* East Asian ideograph */ - {"\x3A", 0, 0x6FD1}, /* East Asian ideograph */ - {"\x3B", 0, 0x6CA5}, /* East Asian ideograph */ - {"\x3C", 0, 0x6FD2}, /* East Asian ideograph */ - {"\x3D", 0, 0x6F47}, /* East Asian ideograph */ - {"\x3F", 0, 0x6F9C}, /* East Asian ideograph */ - {"\x41", 0, 0x6D12}, /* East Asian ideograph */ - {"\x42", 0, 0x6EE9}, /* East Asian ideograph */ - {"\x43", 0, 0x6E7E}, /* East Asian ideograph */ - {"\x44", 0, 0x6EE6}, /* East Asian ideograph */ - {"\x4A", 0, 0x707E}, /* East Asian ideograph */ - {"\x51", 0, 0x4E3A}, /* East Asian ideograph */ - {"\x5D", 0, 0x4E4C}, /* East Asian ideograph */ - {"\x66", 0, 0x65E0}, /* East Asian ideograph */ - {"\x6A", 0, 0x70BC}, /* East Asian ideograph */ - {"\x6D", 0, 0x70E6}, /* East Asian ideograph */ - {"\x6F", 0, 0x7080}, /* East Asian ideograph */ - {"\x75", 0, 0x6247}, /* East Asian ideograph */ - {"\x7D", 0, 0x70ED}, /* East Asian ideograph */ - {"\x7E", 0, 0x70EB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page266 = { - marc8_31page266_flat, 0 -}; -/* PAGE 265 */ -struct yaz_iconv_trie_flat marc8_31page265_flat[] = { - {"\x2D", 0, 0x6C64}, /* East Asian ideograph */ - {"\x30", 0, 0x6D4B}, /* East Asian ideograph */ - {"\x31", 0, 0x6DA1}, /* East Asian ideograph */ - {"\x33", 0, 0x6D51}, /* East Asian ideograph */ - {"\x3D", 0, 0x6C9F}, /* East Asian ideograph */ - {"\x41", 0, 0x6C85}, /* East Asian ideograph */ - {"\x42", 0, 0x706D}, /* East Asian ideograph */ - {"\x44", 0, 0x6E7F}, /* East Asian ideograph */ - {"\x48", 0, 0x6CA7}, /* East Asian ideograph */ - {"\x4B", 0, 0x51C6}, /* East Asian ideograph */ - {"\x4F", 0, 0x6CAA}, /* East Asian ideograph */ - {"\x54", 0, 0x6E0D}, /* East Asian ideograph */ - {"\x55", 0, 0x6DA8}, /* East Asian ideograph */ - {"\x57", 0, 0x6C49}, /* East Asian ideograph */ - {"\x58", 0, 0x6EE1}, /* East Asian ideograph */ - {"\x59", 0, 0x6D9F}, /* East Asian ideograph */ - {"\x5A", 0, 0x6E10}, /* East Asian ideograph */ - {"\x5F", 0, 0x6EDE}, /* East Asian ideograph */ - {"\x63", 0, 0x6D46}, /* East Asian ideograph */ - {"\x64", 0, 0x6E17}, /* East Asian ideograph */ - {"\x65", 0, 0x6E14}, /* East Asian ideograph */ - {"\x6C", 0, 0x6CFC}, /* East Asian ideograph */ - {"\x6D", 0, 0x6DA6}, /* East Asian ideograph */ - {"\x6E", 0, 0x6DA7}, /* East Asian ideograph */ - {"\x6F", 0, 0x6D01}, /* East Asian ideograph */ - {"\x71", 0, 0x6D47}, /* East Asian ideograph */ - {"\x78", 0, 0x6E83}, /* East Asian ideograph */ - {"\x7B", 0, 0x6DC0}, /* East Asian ideograph */ - {"\x7C", 0, 0x6D53}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page265 = { - marc8_31page265_flat, 0 -}; -/* PAGE 264 */ -struct yaz_iconv_trie_flat marc8_31page264_flat[] = { - {"\x4E", 0, 0x6CFE}, /* East Asian ideograph */ - {"\x59", 0, 0x6CEA}, /* East Asian ideograph */ - {"\x68", 0, 0x6D45}, /* East Asian ideograph */ - {"\x74", 0, 0x6E0A}, /* East Asian ideograph */ - {"\x77", 0, 0x6CA6}, /* East Asian ideograph */ - {"\x7D", 0, 0x6D8C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page264 = { - marc8_31page264_flat, 0 -}; -/* PAGE 263 */ -struct yaz_iconv_trie_flat marc8_31page263_flat[] = { - {"\x21", 0, 0x6B22}, /* East Asian ideograph */ - {"\x29", 0, 0x5C81}, /* East Asian ideograph */ - {"\x2A", 0, 0x5386}, /* East Asian ideograph */ - {"\x2B", 0, 0x5F52}, /* East Asian ideograph */ - {"\x33", 0, 0x6B8B}, /* East Asian ideograph */ - {"\x35", 0, 0x6B87}, /* East Asian ideograph */ - {"\x36", 0, 0x6B93}, /* East Asian ideograph */ - {"\x37", 0, 0x6BA1}, /* East Asian ideograph */ - {"\x38", 0, 0x6B7C}, /* East Asian ideograph */ - {"\x3B", 0, 0x6740}, /* East Asian ideograph */ - {"\x3C", 0, 0x58F3}, /* East Asian ideograph */ - {"\x40", 0, 0x6BB4}, /* East Asian ideograph */ - {"\x55", 0, 0x6C14}, /* East Asian ideograph */ - {"\x58", 0, 0x6C22}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page263 = { - marc8_31page263_flat, 0 -}; -/* PAGE 262 */ -struct yaz_iconv_trie_flat marc8_31page262_flat[] = { - {"\x26", 0, 0x6781}, /* East Asian ideograph */ - {"\x2A", 0, 0x6768}, /* East Asian ideograph */ - {"\x2B", 0, 0x6862}, /* East Asian ideograph */ - {"\x2D", 0, 0x4E1A}, /* East Asian ideograph */ - {"\x2F", 0, 0x67AB}, /* East Asian ideograph */ - {"\x37", 0, 0x8363}, /* East Asian ideograph */ - {"\x39", 0, 0x6784}, /* East Asian ideograph */ - {"\x40", 0, 0x67AA}, /* East Asian ideograph */ - {"\x44", 0, 0x6837}, /* East Asian ideograph */ - {"\x46", 0, 0x6869}, /* East Asian ideograph */ - {"\x47", 0, 0x6807}, /* East Asian ideograph */ - {"\x49", 0, 0x67A2}, /* East Asian ideograph */ - {"\x4A", 0, 0x697C}, /* East Asian ideograph */ - {"\x4C", 0, 0x6868}, /* East Asian ideograph */ - {"\x4E", 0, 0x4E50}, /* East Asian ideograph */ - {"\x4F", 0, 0x679E}, /* East Asian ideograph */ - {"\x53", 0, 0x692D}, /* East Asian ideograph */ - {"\x55", 0, 0x6811}, /* East Asian ideograph */ - {"\x57", 0, 0x6866}, /* East Asian ideograph */ - {"\x58", 0, 0x6734}, /* East Asian ideograph */ - {"\x5B", 0, 0x6865}, /* East Asian ideograph */ - {"\x5D", 0, 0x673A}, /* East Asian ideograph */ - {"\x5F", 0, 0x6863}, /* East Asian ideograph */ - {"\x61", 0, 0x68C0}, /* East Asian ideograph */ - {"\x62", 0, 0x6867}, /* East Asian ideograph */ - {"\x63", 0, 0x67E0}, /* East Asian ideograph */ - {"\x64", 0, 0x69DF}, /* East Asian ideograph */ - {"\x65", 0, 0x67DC}, /* East Asian ideograph */ - {"\x66", 0, 0x69DB}, /* East Asian ideograph */ - {"\x6A", 0, 0x6988}, /* East Asian ideograph */ - {"\x6B", 0, 0x691F}, /* East Asian ideograph */ - {"\x6C", 0, 0x6809}, /* East Asian ideograph */ - {"\x6D", 0, 0x6A79}, /* East Asian ideograph */ - {"\x6E", 0, 0x680F}, /* East Asian ideograph */ - {"\x6F", 0, 0x6A31}, /* East Asian ideograph */ - {"\x70", 0, 0x6743}, /* East Asian ideograph */ - {"\x71", 0, 0x6984}, /* East Asian ideograph */ - {"\x78", 0, 0x94A6}, /* East Asian ideograph */ - {"\x7A", 0, 0x6B20}, /* East Asian ideograph (duplicate simplified) */ - {"\x7C", 0, 0x6B27}, /* East Asian ideograph */ - {"\x7E", 0, 0x6B24}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page262 = { - marc8_31page262_flat, 0 -}; -/* PAGE 261 */ -struct yaz_iconv_trie_flat marc8_31page261_flat[] = { - {"\x26", 0, 0x4E1C}, /* East Asian ideograph */ - {"\x63", 0, 0x6761}, /* East Asian ideograph */ - {"\x68", 0, 0x67AD}, /* East Asian ideograph */ - {"\x69", 0, 0x6800}, /* East Asian ideograph */ - {"\x6D", 0, 0x5F03}, /* East Asian ideograph */ - {"\x6E", 0, 0x6816}, /* East Asian ideograph */ - {"\x71", 0, 0x680B}, /* East Asian ideograph */ - {"\x76", 0, 0x6808}, /* East Asian ideograph */ - {"\x7A", 0, 0x67A3}, /* East Asian ideograph */ - {"\x7C", 0, 0x832D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page261 = { - marc8_31page261_flat, 0 -}; -/* PAGE 260 */ -struct yaz_iconv_trie_flat marc8_31page260_flat[] = { - {"\x2D", 0, 0x65F6}, /* East Asian ideograph */ - {"\x32", 0, 0x663C}, /* East Asian ideograph */ - {"\x40", 0, 0x6656}, /* East Asian ideograph */ - {"\x41", 0, 0x6655}, /* East Asian ideograph */ - {"\x43", 0, 0x7545}, /* East Asian ideograph */ - {"\x44", 0, 0x6682}, /* East Asian ideograph */ - {"\x48", 0, 0x6653}, /* East Asian ideograph */ - {"\x49", 0, 0x5386}, /* East Asian ideograph (duplicate simplified) */ - {"\x4B", 0, 0x66A7}, /* East Asian ideograph */ - {"\x4D", 0, 0x65F7}, /* East Asian ideograph */ - {"\x55", 0, 0x4E66}, /* East Asian ideograph */ - {"\x5A", 0, 0x4F1A}, /* East Asian ideograph */ - {"\x66", 0, 0x80E7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page260 = { - marc8_31page260_flat, 0 -}; -/* PAGE 259 */ -struct yaz_iconv_trie_flat marc8_31page259_flat[] = { - {"\x22", 0, 0x62C5}, /* East Asian ideograph */ - {"\x24", 0, 0x6361}, /* East Asian ideograph */ - {"\x25", 0, 0x6324}, /* East Asian ideograph */ - {"\x26", 0, 0x62E7}, /* East Asian ideograph */ - {"\x28", 0, 0x62DF}, /* East Asian ideograph */ - {"\x29", 0, 0x6401}, /* East Asian ideograph */ - {"\x2A", 0, 0x6269}, /* East Asian ideograph */ - {"\x2B", 0, 0x63B7}, /* East Asian ideograph */ - {"\x2C", 0, 0x64B5}, /* East Asian ideograph */ - {"\x2E", 0, 0x6270}, /* East Asian ideograph */ - {"\x2F", 0, 0x64DE}, /* East Asian ideograph */ - {"\x30", 0, 0x6446}, /* East Asian ideograph */ - {"\x31", 0, 0x62E2}, /* East Asian ideograph */ - {"\x33", 0, 0x62E6}, /* East Asian ideograph */ - {"\x34", 0, 0x6400}, /* East Asian ideograph */ - {"\x35", 0, 0x6444}, /* East Asian ideograph */ - {"\x37", 0, 0x631B}, /* East Asian ideograph */ - {"\x38", 0, 0x644A}, /* East Asian ideograph */ - {"\x3A", 0, 0x6405}, /* East Asian ideograph */ - {"\x3B", 0, 0x63FD}, /* East Asian ideograph */ - {"\x47", 0, 0x8D25}, /* East Asian ideograph */ - {"\x4F", 0, 0x542F}, /* East Asian ideograph */ - {"\x52", 0, 0x654C}, /* East Asian ideograph */ - {"\x54", 0, 0x6570}, /* East Asian ideograph */ - {"\x56", 0, 0x655B}, /* East Asian ideograph */ - {"\x57", 0, 0x6BD9}, /* East Asian ideograph */ - {"\x63", 0, 0x65A9}, /* East Asian ideograph */ - {"\x66", 0, 0x65AD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page259 = { - marc8_31page259_flat, 0 -}; -/* PAGE 258 */ -struct yaz_iconv_trie_flat marc8_31page258_flat[] = { - {"\x23", 0, 0x6302}, /* East Asian ideograph */ - {"\x36", 0, 0x62A1}, /* East Asian ideograph */ - {"\x3C", 0, 0x62E3}, /* East Asian ideograph */ - {"\x3F", 0, 0x626C}, /* East Asian ideograph */ - {"\x42", 0, 0x6325}, /* East Asian ideograph */ - {"\x4F", 0, 0x635F}, /* East Asian ideograph */ - {"\x53", 0, 0x6363}, /* East Asian ideograph */ - {"\x55", 0, 0x62A2}, /* East Asian ideograph */ - {"\x5A", 0, 0x5C4F}, /* East Asian ideograph */ - {"\x5B", 0, 0x631A}, /* East Asian ideograph */ - {"\x5F", 0, 0x6402}, /* East Asian ideograph */ - {"\x60", 0, 0x63B4}, /* East Asian ideograph */ - {"\x65", 0, 0x635E}, /* East Asian ideograph */ - {"\x66", 0, 0x62E8}, /* East Asian ideograph */ - {"\x68", 0, 0x6320}, /* East Asian ideograph */ - {"\x6E", 0, 0x6251}, /* East Asian ideograph */ - {"\x71", 0, 0x629A}, /* East Asian ideograph */ - {"\x74", 0, 0x62E5}, /* East Asian ideograph */ - {"\x76", 0, 0x51FB}, /* East Asian ideograph */ - {"\x77", 0, 0x631E}, /* East Asian ideograph */ - {"\x7A", 0, 0x6321}, /* East Asian ideograph */ - {"\x7C", 0, 0x636E}, /* East Asian ideograph */ - {"\x7D", 0, 0x63B3}, /* East Asian ideograph */ - {"\x7E", 0, 0x62E9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page258 = { - marc8_31page258_flat, 0 -}; -/* PAGE 257 */ -struct yaz_iconv_trie_flat marc8_31page257_flat[] = { - {"\x6C", 0, 0x631F}, /* East Asian ideograph */ - {"\x7B", 0, 0x5377}, /* East Asian ideograph */ - {"\x7D", 0, 0x626B}, /* East Asian ideograph */ - {"\x7E", 0, 0x626A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page257 = { - marc8_31page257_flat, 0 -}; -/* PAGE 256 */ -struct yaz_iconv_trie_flat marc8_31page256_flat[] = { - {"\x28", 0, 0x6001}, /* East Asian ideograph */ - {"\x29", 0, 0x5FFE}, /* East Asian ideograph */ - {"\x2B", 0, 0x6006}, /* East Asian ideograph */ - {"\x2E", 0, 0x5E86}, /* East Asian ideograph */ - {"\x31", 0, 0x60ED}, /* East Asian ideograph */ - {"\x33", 0, 0x5FE7}, /* East Asian ideograph */ - {"\x36", 0, 0x8651}, /* East Asian ideograph */ - {"\x38", 0, 0x60E8}, /* East Asian ideograph */ - {"\x39", 0, 0x60EF}, /* East Asian ideograph */ - {"\x3A", 0, 0x6078}, /* East Asian ideograph */ - {"\x3B", 0, 0x6002}, /* East Asian ideograph */ - {"\x3C", 0, 0x6B32}, /* East Asian ideograph */ - {"\x3E", 0, 0x5BAA}, /* East Asian ideograph */ - {"\x3F", 0, 0x51ED}, /* East Asian ideograph */ - {"\x41", 0, 0x60AF}, /* East Asian ideograph */ - {"\x42", 0, 0x6124}, /* East Asian ideograph */ - {"\x44", 0, 0x60EE}, /* East Asian ideograph */ - {"\x45", 0, 0x6187}, /* East Asian ideograph */ - {"\x47", 0, 0x60EB}, /* East Asian ideograph */ - {"\x48", 0, 0x5FC6}, /* East Asian ideograph */ - {"\x4A", 0, 0x5E94}, /* East Asian ideograph */ - {"\x4B", 0, 0x601C}, /* East Asian ideograph */ - {"\x4E", 0, 0x6073}, /* East Asian ideograph */ - {"\x54", 0, 0x6000}, /* East Asian ideograph */ - {"\x55", 0, 0x61D2}, /* East Asian ideograph */ - {"\x56", 0, 0x60AC}, /* East Asian ideograph */ - {"\x58", 0, 0x5FCF}, /* East Asian ideograph */ - {"\x59", 0, 0x6151}, /* East Asian ideograph */ - {"\x5B", 0, 0x60E7}, /* East Asian ideograph */ - {"\x5C", 0, 0x604B}, /* East Asian ideograph */ - {"\x6E", 0, 0x6218}, /* East Asian ideograph */ - {"\x6F", 0, 0x620F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page256 = { - marc8_31page256_flat, 0 -}; -/* PAGE 255 */ -struct yaz_iconv_trie_flat marc8_31page255_flat[] = { - {"\x57", 0, 0x5FF0}, /* East Asian ideograph */ - {"\x5C", 0, 0x95F7}, /* East Asian ideograph */ - {"\x5E", 0, 0x6005}, /* East Asian ideograph */ - {"\x61", 0, 0x6076}, /* East Asian ideograph */ - {"\x6C", 0, 0x60EC}, /* East Asian ideograph */ - {"\x70", 0, 0x607B}, /* East Asian ideograph */ - {"\x77", 0, 0x7231}, /* East Asian ideograph */ - {"\x7E", 0, 0x607C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page255 = { - marc8_31page255_flat, 0 -}; -/* PAGE 254 */ -struct yaz_iconv_trie_flat marc8_31page254_flat[] = { - {"\x27", 0, 0x5E9F}, /* East Asian ideograph */ - {"\x2A", 0, 0x5E7F}, /* East Asian ideograph */ - {"\x2B", 0, 0x5E99}, /* East Asian ideograph */ - {"\x2C", 0, 0x5382}, /* East Asian ideograph */ - {"\x2D", 0, 0x5E9E}, /* East Asian ideograph */ - {"\x2E", 0, 0x5E90}, /* East Asian ideograph */ - {"\x2F", 0, 0x5385}, /* East Asian ideograph */ - {"\x47", 0, 0x5F20}, /* East Asian ideograph */ - {"\x4B", 0, 0x5F39}, /* East Asian ideograph */ - {"\x4C", 0, 0x5F25}, /* East Asian ideograph */ - {"\x4D", 0, 0x5F2F}, /* East Asian ideograph */ - {"\x4F", 0, 0x6C47}, /* East Asian ideograph (duplicate simplified) */ - {"\x65", 0, 0x540E}, /* East Asian ideograph */ - {"\x67", 0, 0x5F84}, /* East Asian ideograph */ - {"\x6C", 0, 0x4ECE}, /* East Asian ideograph */ - {"\x6F", 0, 0x590D}, /* East Asian ideograph */ - {"\x74", 0, 0x5F7B}, /* East Asian ideograph */ - {"\x76", 0, 0x5F81}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page254 = { - marc8_31page254_flat, 0 -}; -/* PAGE 253 */ -struct yaz_iconv_trie_flat marc8_31page253_flat[] = { - {"\x28", 0, 0x5C9A}, /* East Asian ideograph */ - {"\x2A", 0, 0x5D2D}, /* East Asian ideograph */ - {"\x2B", 0, 0x5C96}, /* East Asian ideograph */ - {"\x2D", 0, 0x5C7F}, /* East Asian ideograph */ - {"\x2E", 0, 0x5CB3}, /* East Asian ideograph */ - {"\x31", 0, 0x5CE6}, /* East Asian ideograph */ - {"\x32", 0, 0x5DC5}, /* East Asian ideograph */ - {"\x33", 0, 0x5CA9}, /* East Asian ideograph */ - {"\x4F", 0, 0x5E05}, /* East Asian ideograph */ - {"\x51", 0, 0x5E08}, /* East Asian ideograph */ - {"\x52", 0, 0x5E10}, /* East Asian ideograph */ - {"\x53", 0, 0x5E26}, /* East Asian ideograph */ - {"\x58", 0, 0x5E27}, /* East Asian ideograph */ - {"\x5C", 0, 0x5E3C}, /* East Asian ideograph */ - {"\x5E", 0, 0x5E01}, /* East Asian ideograph */ - {"\x60", 0, 0x5E1C}, /* East Asian ideograph */ - {"\x61", 0, 0x5E2E}, /* East Asian ideograph */ - {"\x67", 0, 0x5E72}, /* East Asian ideograph (Version J extension) */ - {"\x6B", 0, 0x51E0}, /* East Asian ideograph */ - {"\x76", 0, 0x5E93}, /* East Asian ideograph */ - {"\x77", 0, 0x5750}, /* East Asian ideograph */ - {"\x7E", 0, 0x5395}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page253 = { - marc8_31page253_flat, 0 -}; -/* PAGE 252 */ -struct yaz_iconv_trie_flat marc8_31page252_flat[] = { - {"\x2E", 0, 0x5BDD}, /* East Asian ideograph */ - {"\x31", 0, 0x5B9E}, /* East Asian ideograph */ - {"\x32", 0, 0x5B81}, /* East Asian ideograph */ - {"\x35", 0, 0x5BBD}, /* East Asian ideograph */ - {"\x36", 0, 0x5BA1}, /* East Asian ideograph */ - {"\x37", 0, 0x5199}, /* East Asian ideograph */ - {"\x38", 0, 0x5BA0}, /* East Asian ideograph */ - {"\x39", 0, 0x5B9D}, /* East Asian ideograph */ - {"\x3F", 0, 0x4E13}, /* East Asian ideograph */ - {"\x40", 0, 0x5C06}, /* East Asian ideograph */ - {"\x42", 0, 0x5BFB}, /* East Asian ideograph */ - {"\x43", 0, 0x5BF9}, /* East Asian ideograph */ - {"\x44", 0, 0x5BFC}, /* East Asian ideograph */ - {"\x4C", 0, 0x5C34}, /* East Asian ideograph */ - {"\x60", 0, 0x5C61}, /* East Asian ideograph */ - {"\x61", 0, 0x5C42}, /* East Asian ideograph */ - {"\x63", 0, 0x5C5E}, /* East Asian ideograph */ - {"\x6E", 0, 0x5188}, /* East Asian ideograph */ - {"\x74", 0, 0x5CE1}, /* East Asian ideograph */ - {"\x79", 0, 0x5C9B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page252 = { - marc8_31page252_flat, 0 -}; -/* PAGE 251 */ -struct yaz_iconv_trie_flat marc8_31page251_flat[] = { - {"\x27", 0, 0x5987}, /* East Asian ideograph */ - {"\x28", 0, 0x5A04}, /* East Asian ideograph */ - {"\x36", 0, 0x5988}, /* East Asian ideograph */ - {"\x3B", 0, 0x59AA}, /* East Asian ideograph */ - {"\x41", 0, 0x5A34}, /* East Asian ideograph */ - {"\x43", 0, 0x5A75}, /* East Asian ideograph */ - {"\x44", 0, 0x5A07}, /* East Asian ideograph */ - {"\x45", 0, 0x59A9}, /* East Asian ideograph */ - {"\x48", 0, 0x5AD4}, /* East Asian ideograph */ - {"\x4A", 0, 0x5A74}, /* East Asian ideograph */ - {"\x4B", 0, 0x5A76}, /* East Asian ideograph */ - {"\x5B", 0, 0x5B59}, /* East Asian ideograph */ - {"\x5F", 0, 0x5B5A}, /* East Asian ideograph */ - {"\x60", 0, 0x5B66}, /* East Asian ideograph */ - {"\x63", 0, 0x5B6A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page251 = { - marc8_31page251_flat, 0 -}; -/* PAGE 250 */ -struct yaz_iconv_trie_flat marc8_31page250_flat[] = { - {"\x23", 0, 0x4F19}, /* East Asian ideograph */ - {"\x24", 0, 0x68A6}, /* East Asian ideograph */ - {"\x2E", 0, 0x5939}, /* East Asian ideograph */ - {"\x3F", 0, 0x5941}, /* East Asian ideograph */ - {"\x40", 0, 0x593A}, /* East Asian ideograph */ - {"\x41", 0, 0x594B}, /* East Asian ideograph */ - {"\x53", 0, 0x5986}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page250 = { - marc8_31page250_flat, 0 -}; -/* PAGE 249 */ -struct yaz_iconv_trie_flat marc8_31page249_flat[] = { - {"\x3B", 0, 0x6267}, /* East Asian ideograph */ - {"\x3E", 0, 0x57A9}, /* East Asian ideograph */ - {"\x44", 0, 0x62A5}, /* East Asian ideograph */ - {"\x45", 0, 0x5C27}, /* East Asian ideograph */ - {"\x4A", 0, 0x573A}, /* East Asian ideograph */ - {"\x4D", 0, 0x6D82}, /* East Asian ideograph */ - {"\x55", 0, 0x575E}, /* East Asian ideograph */ - {"\x56", 0, 0x5757}, /* East Asian ideograph */ - {"\x59", 0, 0x5C18}, /* East Asian ideograph */ - {"\x5A", 0, 0x57AB}, /* East Asian ideograph */ - {"\x5B", 0, 0x5811}, /* East Asian ideograph */ - {"\x60", 0, 0x575F}, /* East Asian ideograph */ - {"\x61", 0, 0x5760}, /* East Asian ideograph */ - {"\x62", 0, 0x5815}, /* East Asian ideograph */ - {"\x64", 0, 0x575B}, /* East Asian ideograph */ - {"\x67", 0, 0x57A6}, /* East Asian ideograph */ - {"\x69", 0, 0x538B}, /* East Asian ideograph */ - {"\x6B", 0, 0x5739}, /* East Asian ideograph */ - {"\x6C", 0, 0x5792}, /* East Asian ideograph */ - {"\x6D", 0, 0x5784}, /* East Asian ideograph */ - {"\x6E", 0, 0x574F}, /* East Asian ideograph */ - {"\x6F", 0, 0x575C}, /* East Asian ideograph */ - {"\x71", 0, 0x575D}, /* East Asian ideograph */ - {"\x74", 0, 0x58EE}, /* East Asian ideograph */ - {"\x76", 0, 0x58F6}, /* East Asian ideograph */ - {"\x77", 0, 0x5BFF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page249 = { - marc8_31page249_flat, 0 -}; -/* PAGE 248 */ -struct yaz_iconv_trie_flat marc8_31page248_flat[] = { - {"\x21", 0, 0x545C}, /* East Asian ideograph */ - {"\x22", 0, 0x545B}, /* East Asian ideograph */ - {"\x27", 0, 0x5567}, /* East Asian ideograph */ - {"\x2C", 0, 0x53F9}, /* East Asian ideograph */ - {"\x2E", 0, 0x5455}, /* East Asian ideograph */ - {"\x30", 0, 0x5C1D}, /* East Asian ideograph */ - {"\x31", 0, 0x55BD}, /* East Asian ideograph */ - {"\x32", 0, 0x5520}, /* East Asian ideograph */ - {"\x33", 0, 0x5578}, /* East Asian ideograph */ - {"\x3D", 0, 0x5480}, /* East Asian ideograph */ - {"\x40", 0, 0x53FD}, /* East Asian ideograph */ - {"\x44", 0, 0x5428}, /* East Asian ideograph */ - {"\x45", 0, 0x55B7}, /* East Asian ideograph */ - {"\x46", 0, 0x5F53}, /* East Asian ideograph (duplicate simplified) */ - {"\x47", 0, 0x54DD}, /* East Asian ideograph */ - {"\x4B", 0, 0x55F3}, /* East Asian ideograph */ - {"\x4E", 0, 0x549B}, /* East Asian ideograph */ - {"\x51", 0, 0x5413}, /* East Asian ideograph */ - {"\x54", 0, 0x565C}, /* East Asian ideograph */ - {"\x55", 0, 0x5411}, /* East Asian ideograph */ - {"\x56", 0, 0x5499}, /* East Asian ideograph */ - {"\x5A", 0, 0x4E25}, /* East Asian ideograph */ - {"\x5B", 0, 0x5624}, /* East Asian ideograph */ - {"\x5C", 0, 0x556D}, /* East Asian ideograph */ - {"\x5D", 0, 0x55EB}, /* East Asian ideograph */ - {"\x5E", 0, 0x56A3}, /* East Asian ideograph */ - {"\x61", 0, 0x7F57}, /* East Asian ideograph (duplicate simplified) */ - {"\x62", 0, 0x5453}, /* East Asian ideograph */ - {"\x64", 0, 0x5631}, /* East Asian ideograph */ - {"\x6F", 0, 0x56EF}, /* East Asian ideograph */ - {"\x70", 0, 0x56F4}, /* East Asian ideograph */ - {"\x71", 0, 0x56ED}, /* East Asian ideograph */ - {"\x72", 0, 0x5706}, /* East Asian ideograph */ - {"\x73", 0, 0x56E2}, /* East Asian ideograph */ - {"\x74", 0, 0x56FE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page248 = { - marc8_31page248_flat, 0 -}; -/* PAGE 247 */ -struct yaz_iconv_trie_flat marc8_31page247_flat[] = { - {"\x3E", 0, 0x5458}, /* East Asian ideograph */ - {"\x48", 0, 0x95EE}, /* East Asian ideograph */ - {"\x49", 0, 0x54D1}, /* East Asian ideograph */ - {"\x63", 0, 0x4E27}, /* East Asian ideograph */ - {"\x68", 0, 0x5355}, /* East Asian ideograph */ - {"\x6D", 0, 0x5524}, /* East Asian ideograph */ - {"\x6F", 0, 0x4E54}, /* East Asian ideograph */ - {"\x71", 0, 0x54DF}, /* East Asian ideograph */ - {"\x78", 0, 0x556C}, /* East Asian ideograph */ - {"\x7A", 0, 0x5417}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page247 = { - marc8_31page247_flat, 0 -}; -/* PAGE 246 */ -struct yaz_iconv_trie_flat marc8_31page246_flat[] = { - {"\x2B", 0, 0x4E1B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page246 = { - marc8_31page246_flat, 0 -}; -/* PAGE 245 */ -struct yaz_iconv_trie_flat marc8_31page245_flat[] = { - {"\x21", 0, 0x5251}, /* East Asian ideograph */ - {"\x22", 0, 0x5218}, /* East Asian ideograph */ - {"\x23", 0, 0x5242}, /* East Asian ideograph */ - {"\x2F", 0, 0x52B2}, /* East Asian ideograph */ - {"\x33", 0, 0x52A1}, /* East Asian ideograph */ - {"\x34", 0, 0x52A8}, /* East Asian ideograph */ - {"\x35", 0, 0x52B3}, /* East Asian ideograph */ - {"\x36", 0, 0x52CB}, /* East Asian ideograph */ - {"\x37", 0, 0x80DC}, /* East Asian ideograph */ - {"\x38", 0, 0x52BF}, /* East Asian ideograph */ - {"\x3C", 0, 0x52B1}, /* East Asian ideograph */ - {"\x3D", 0, 0x529D}, /* East Asian ideograph */ - {"\x51", 0, 0x6C47}, /* East Asian ideograph */ - {"\x52", 0, 0x532E}, /* East Asian ideograph */ - {"\x55", 0, 0x533A}, /* East Asian ideograph */ - {"\x5F", 0, 0x5346}, /* East Asian ideograph */ - {"\x60", 0, 0x534F}, /* East Asian ideograph */ - {"\x7A", 0, 0x538C}, /* East Asian ideograph */ - {"\x7B", 0, 0x5389}, /* East Asian ideograph */ - {"\x7D", 0, 0x53C2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page245 = { - marc8_31page245_flat, 0 -}; -/* PAGE 244 */ -struct yaz_iconv_trie_flat marc8_31page244_flat[] = { - {"\x23", 0, 0x4E24}, /* East Asian ideograph */ - {"\x40", 0, 0x51BB}, /* East Asian ideograph */ - {"\x48", 0, 0x51EF}, /* East Asian ideograph */ - {"\x6B", 0, 0x514B}, /* East Asian ideograph */ - {"\x6D", 0, 0x5219}, /* East Asian ideograph */ - {"\x70", 0, 0x521A}, /* East Asian ideograph */ - {"\x76", 0, 0x5240}, /* East Asian ideograph */ - {"\x78", 0, 0x521B}, /* East Asian ideograph */ - {"\x7C", 0, 0x5212}, /* East Asian ideograph */ - {"\x7E", 0, 0x5267}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page244 = { - marc8_31page244_flat, 0 -}; -/* PAGE 243 */ -struct yaz_iconv_trie_flat marc8_31page243_flat[] = { - {"\x24", 0, 0x4E2A}, /* East Asian ideograph */ - {"\x26", 0, 0x4F25}, /* East Asian ideograph */ - {"\x2D", 0, 0x4F26}, /* East Asian ideograph */ - {"\x2E", 0, 0x4EC3}, /* East Asian ideograph (duplicate simplified) */ - {"\x33", 0, 0x4F1F}, /* East Asian ideograph */ - {"\x35", 0, 0x4FA7}, /* East Asian ideograph */ - {"\x38", 0, 0x4FA6}, /* East Asian ideograph */ - {"\x3E", 0, 0x5BB6}, /* East Asian ideograph */ - {"\x40", 0, 0x5907}, /* East Asian ideograph */ - {"\x41", 0, 0x6770}, /* East Asian ideograph */ - {"\x43", 0, 0x4F27}, /* East Asian ideograph */ - {"\x44", 0, 0x4F1E}, /* East Asian ideograph */ - {"\x46", 0, 0x4F20}, /* East Asian ideograph */ - {"\x47", 0, 0x503A}, /* East Asian ideograph */ - {"\x49", 0, 0x4EC5}, /* East Asian ideograph */ - {"\x4A", 0, 0x503E}, /* East Asian ideograph */ - {"\x4C", 0, 0x4F24}, /* East Asian ideograph */ - {"\x51", 0, 0x4FA5}, /* East Asian ideograph */ - {"\x55", 0, 0x4EC6}, /* East Asian ideograph */ - {"\x56", 0, 0x4F2A}, /* East Asian ideograph */ - {"\x57", 0, 0x8C61}, /* East Asian ideograph */ - {"\x58", 0, 0x4FA8}, /* East Asian ideograph */ - {"\x59", 0, 0x4EEA}, /* East Asian ideograph */ - {"\x5A", 0, 0x4EBF}, /* East Asian ideograph */ - {"\x5D", 0, 0x4EF7}, /* East Asian ideograph */ - {"\x5E", 0, 0x4FAC}, /* East Asian ideograph */ - {"\x60", 0, 0x4FA9}, /* East Asian ideograph */ - {"\x61", 0, 0x4FED}, /* East Asian ideograph */ - {"\x62", 0, 0x50A7}, /* East Asian ideograph */ - {"\x63", 0, 0x5C3D}, /* East Asian ideograph (duplicate simplified) */ - {"\x65", 0, 0x4FE6}, /* East Asian ideograph */ - {"\x66", 0, 0x4F18}, /* East Asian ideograph */ - {"\x67", 0, 0x507F}, /* East Asian ideograph */ - {"\x69", 0, 0x50A8}, /* East Asian ideograph */ - {"\x6A", 0, 0x4FEA}, /* East Asian ideograph */ - {"\x6B", 0, 0x4FE8}, /* East Asian ideograph */ - {"\x73", 0, 0x51F6}, /* East Asian ideograph */ - {"\x7A", 0, 0x513F}, /* East Asian ideograph */ - {"\x7A", 0, 0x513F}, /* East Asian ideograph */ - {"\x7B", 0, 0x5156}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page243 = { - marc8_31page243_flat, 0 -}; -/* PAGE 242 */ -struct yaz_iconv_trie_flat marc8_31page242_flat[] = { - {"\x38", 0, 0x5E03}, /* East Asian ideograph */ - {"\x3C", 0, 0x5360}, /* East Asian ideograph */ - {"\x4C", 0, 0x6765}, /* East Asian ideograph */ - {"\x4F", 0, 0x4ED1}, /* East Asian ideograph */ - {"\x5D", 0, 0x4FA0}, /* East Asian ideograph */ - {"\x69", 0, 0x7CFB}, /* East Asian ideograph (duplicate simplified) */ - {"\x6C", 0, 0x4ED3}, /* East Asian ideograph */ - {"\x73", 0, 0x4EEC}, /* East Asian ideograph */ - {"\x79", 0, 0x4FE9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page242 = { - marc8_31page242_flat, 0 -}; -/* PAGE 241 */ -struct yaz_iconv_trie_flat marc8_31page241_flat[] = { - {"\x32", 0, 0x5E76}, /* East Asian ideograph */ - {"\x4C", 0, 0x5E72}, /* East Asian ideograph */ - {"\x4D", 0, 0x4E71}, /* East Asian ideograph */ - {"\x58", 0, 0x4E9A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page241 = { - marc8_31page241_flat, 0 -}; -/* PAGE 240 */ -struct yaz_iconv_trie_dir marc8_31page240_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {242, 0, 0}, - {243, 0, 0}, - {244, 0, 0}, - {245, 0, 0}, - {246, 0, 0}, - {247, 0, 0}, - {248, 0, 0}, - {249, 0, 0}, - {250, 0, 0}, - {251, 0, 0}, - {252, 0, 0}, - {253, 0, 0}, - {254, 0, 0}, - {255, 0, 0}, - {256, 0, 0}, - {257, 0, 0}, - {258, 0, 0}, - {259, 0, 0}, - {260, 0, 0}, - {261, 0, 0}, - {262, 0, 0}, - {263, 0, 0}, - {264, 0, 0}, - {265, 0, 0}, - {266, 0, 0}, - {267, 0, 0}, - {268, 0, 0}, - {269, 0, 0}, - {270, 0, 0}, - {271, 0, 0}, - {272, 0, 0}, - {273, 0, 0}, - {274, 0, 0}, - {275, 0, 0}, - {276, 0, 0}, - {277, 0, 0}, - {278, 0, 0}, - {279, 0, 0}, - {280, 0, 0}, - {281, 0, 0}, - {282, 0, 0}, - {283, 0, 0}, - {284, 0, 0}, - {285, 0, 0}, - {286, 0, 0}, - {287, 0, 0}, - {288, 0, 0}, - {289, 0, 0}, - {290, 0, 0}, - {291, 0, 0}, - {292, 0, 0}, - {293, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {294, 0, 0}, - {295, 0, 0}, - {296, 0, 0}, - {297, 0, 0}, - {0, 0, 0}, - {298, 0, 0}, - {0, 0, 0}, - {299, 0, 0}, - {300, 0, 0}, - {301, 0, 0}, - {302, 0, 0}, - {303, 0, 0}, - {304, 0, 0}, - {305, 0, 0}, - {306, 0, 0}, - {0, 0, 0}, - {307, 0, 0}, - {308, 0, 0}, - {309, 0, 0}, - {310, 0, 0}, - {0, 0, 0}, - {311, 0, 0}, - {312, 0, 0}, - {313, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page240 = { - 0, marc8_31page240_dir -}; -/* PAGE 239 */ -struct yaz_iconv_trie_flat marc8_31page239_flat[] = { - {"\x23", 0, 0x9F57}, /* East Asian ideograph */ - {"\x28", 0, 0x9F60}, /* East Asian ideograph */ - {"\x3F", 0, 0x9F6E}, /* East Asian ideograph */ - {"\x40", 0, 0x9F6F}, /* East Asian ideograph */ - {"\x47", 0, 0x9F76}, /* East Asian ideograph */ - {"\x5B", 0, 0x9F8E}, /* East Asian ideograph */ - {"\x61", 0, 0x9F93}, /* East Asian ideograph */ - {"\x62", 0, 0x9F95}, /* East Asian ideograph */ - {"\x6B", 0, 0x9FA0}, /* East Asian ideograph */ - {"\x71", 0, 0x9FA5}, /* East Asian ideograph */ - {"\x72", 0, 0x9FA4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page239 = { - marc8_31page239_flat, 0 -}; -/* PAGE 238 */ -struct yaz_iconv_trie_flat marc8_31page238_flat[] = { - {"\x2F", 0, 0x9F0F}, /* East Asian ideograph */ - {"\x31", 0, 0x9F10}, /* East Asian ideograph */ - {"\x32", 0, 0x9F12}, /* East Asian ideograph */ - {"\x33", 0, 0x9F16}, /* East Asian ideograph */ - {"\x34", 0, 0x9F17}, /* East Asian ideograph */ - {"\x37", 0, 0x9F1A}, /* East Asian ideograph */ - {"\x45", 0, 0x9F22}, /* East Asian ideograph */ - {"\x48", 0, 0x9F2B}, /* East Asian ideograph */ - {"\x49", 0, 0x9F26}, /* East Asian ideograph */ - {"\x53", 0, 0x9F2F}, /* East Asian ideograph */ - {"\x5E", 0, 0x9F39}, /* East Asian ideograph */ - {"\x5F", 0, 0x9F37}, /* East Asian ideograph */ - {"\x64", 0, 0x9F3D}, /* East Asian ideograph */ - {"\x69", 0, 0x9F41}, /* East Asian ideograph */ - {"\x6D", 0, 0x9F45}, /* East Asian ideograph */ - {"\x6F", 0, 0x9F46}, /* East Asian ideograph */ - {"\x71", 0, 0x9F48}, /* East Asian ideograph */ - {"\x73", 0, 0x9F49}, /* East Asian ideograph */ - {"\x79", 0, 0x9F4E}, /* East Asian ideograph */ - {"\x7B", 0, 0x9F4F}, /* East Asian ideograph */ - {"\x7C", 0, 0x9F54}, /* East Asian ideograph */ - {"\x7E", 0, 0x9F55}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page238 = { - marc8_31page238_flat, 0 -}; -/* PAGE 237 */ -struct yaz_iconv_trie_flat marc8_31page237_flat[] = { - {"\x30", 0, 0x9EC1}, /* East Asian ideograph */ - {"\x35", 0, 0x9EC6}, /* East Asian ideograph */ - {"\x37", 0, 0x9EC8}, /* East Asian ideograph */ - {"\x42", 0, 0x9ECC}, /* East Asian ideograph */ - {"\x4A", 0, 0x9ED0}, /* East Asian ideograph */ - {"\x4C", 0, 0x9ED3}, /* East Asian ideograph */ - {"\x53", 0, 0x9EDA}, /* East Asian ideograph */ - {"\x55", 0, 0x9EDF}, /* East Asian ideograph */ - {"\x57", 0, 0x9EE3}, /* East Asian ideograph */ - {"\x59", 0, 0x9EE5}, /* East Asian ideograph */ - {"\x5C", 0, 0x9EE7}, /* East Asian ideograph */ - {"\x60", 0, 0x9EEE}, /* East Asian ideograph */ - {"\x66", 0, 0x9EF0}, /* East Asian ideograph */ - {"\x6F", 0, 0x9EF6}, /* East Asian ideograph */ - {"\x74", 0, 0x9EF9}, /* East Asian ideograph */ - {"\x76", 0, 0x9EFB}, /* East Asian ideograph */ - {"\x77", 0, 0x9EFC}, /* East Asian ideograph */ - {"\x7A", 0, 0x9EFD}, /* East Asian ideograph */ - {"\x7B", 0, 0x9EFE}, /* East Asian ideograph */ - {"\x7C", 0, 0x9EFF}, /* East Asian ideograph */ - {"\x7D", 0, 0x9F02}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page237 = { - marc8_31page237_flat, 0 -}; -/* PAGE 236 */ -struct yaz_iconv_trie_flat marc8_31page236_flat[] = { - {"\x27", 0, 0x9E0E}, /* East Asian ideograph */ - {"\x2B", 0, 0x9E11}, /* East Asian ideograph */ - {"\x36", 0, 0x9E15}, /* East Asian ideograph */ - {"\x37", 0, 0x9E18}, /* East Asian ideograph */ - {"\x39", 0, 0x9E1C}, /* East Asian ideograph */ - {"\x3A", 0, 0x9E1B}, /* East Asian ideograph */ - {"\x3B", 0, 0x9E1D}, /* East Asian ideograph */ - {"\x3C", 0, 0x9E75}, /* East Asian ideograph */ - {"\x42", 0, 0x9E7A}, /* East Asian ideograph */ - {"\x43", 0, 0x9E7B}, /* East Asian ideograph */ - {"\x47", 0, 0x9E80}, /* East Asian ideograph */ - {"\x48", 0, 0x9E83}, /* East Asian ideograph */ - {"\x49", 0, 0x9E84}, /* East Asian ideograph */ - {"\x4B", 0, 0x9E88}, /* East Asian ideograph */ - {"\x4F", 0, 0x9E87}, /* East Asian ideograph */ - {"\x55", 0, 0x9E90}, /* East Asian ideograph */ - {"\x58", 0, 0x9E8C}, /* East Asian ideograph */ - {"\x5A", 0, 0x9E95}, /* East Asian ideograph */ - {"\x5C", 0, 0x9E91}, /* East Asian ideograph */ - {"\x5D", 0, 0x9E9B}, /* East Asian ideograph */ - {"\x66", 0, 0x9E9E}, /* East Asian ideograph */ - {"\x77", 0, 0x9EAD}, /* East Asian ideograph */ - {"\x79", 0, 0x9EAF}, /* East Asian ideograph */ - {"\x7A", 0, 0x9EB0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page236 = { - marc8_31page236_flat, 0 -}; -/* PAGE 235 */ -struct yaz_iconv_trie_flat marc8_31page235_flat[] = { - {"\x22", 0, 0x9DC7}, /* East Asian ideograph */ - {"\x27", 0, 0x9DC3}, /* East Asian ideograph */ - {"\x28", 0, 0x9DBB}, /* East Asian ideograph */ - {"\x32", 0, 0x9DB9}, /* East Asian ideograph */ - {"\x34", 0, 0x9DAC}, /* East Asian ideograph */ - {"\x36", 0, 0x9DB2}, /* East Asian ideograph */ - {"\x3A", 0, 0x9DDF}, /* East Asian ideograph */ - {"\x3E", 0, 0x9DD9}, /* East Asian ideograph */ - {"\x45", 0, 0x9DD6}, /* East Asian ideograph */ - {"\x46", 0, 0x9DDE}, /* East Asian ideograph */ - {"\x4F", 0, 0x9DE9}, /* East Asian ideograph */ - {"\x57", 0, 0x9DF2}, /* East Asian ideograph */ - {"\x5B", 0, 0x9DF8}, /* East Asian ideograph */ - {"\x5C", 0, 0x9DFC}, /* East Asian ideograph */ - {"\x5F", 0, 0x9DEB}, /* East Asian ideograph */ - {"\x65", 0, 0x9DEF}, /* East Asian ideograph */ - {"\x6A", 0, 0x9DED}, /* East Asian ideograph */ - {"\x6C", 0, 0x9DE6}, /* East Asian ideograph */ - {"\x6D", 0, 0x9DEE}, /* East Asian ideograph */ - {"\x71", 0, 0x9E07}, /* East Asian ideograph */ - {"\x7E", 0, 0x9DFD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page235 = { - marc8_31page235_flat, 0 -}; -/* PAGE 234 */ -struct yaz_iconv_trie_flat marc8_31page234_flat[] = { - {"\x26", 0, 0x9D5A}, /* East Asian ideograph */ - {"\x2A", 0, 0x9D52}, /* East Asian ideograph */ - {"\x2C", 0, 0x9D77}, /* East Asian ideograph */ - {"\x2E", 0, 0x9D8A}, /* East Asian ideograph */ - {"\x2F", 0, 0x9D7A}, /* East Asian ideograph */ - {"\x35", 0, 0x9D87}, /* East Asian ideograph */ - {"\x3F", 0, 0x9D78}, /* East Asian ideograph */ - {"\x42", 0, 0x9D7E}, /* East Asian ideograph */ - {"\x47", 0, 0x9D69}, /* East Asian ideograph */ - {"\x4D", 0, 0x9D7B}, /* East Asian ideograph */ - {"\x4F", 0, 0x9D83}, /* East Asian ideograph */ - {"\x52", 0, 0x9D6F}, /* East Asian ideograph */ - {"\x59", 0, 0x9DA9}, /* East Asian ideograph */ - {"\x5E", 0, 0x9D92}, /* East Asian ideograph */ - {"\x60", 0, 0x9D98}, /* East Asian ideograph */ - {"\x66", 0, 0x9DA4}, /* East Asian ideograph */ - {"\x67", 0, 0x9DAA}, /* East Asian ideograph */ - {"\x6A", 0, 0x9DA1}, /* East Asian ideograph */ - {"\x6B", 0, 0x9D9A}, /* East Asian ideograph */ - {"\x70", 0, 0x9D96}, /* East Asian ideograph */ - {"\x74", 0, 0x9DB1}, /* East Asian ideograph */ - {"\x76", 0, 0x9DB6}, /* East Asian ideograph */ - {"\x77", 0, 0x9DBC}, /* East Asian ideograph */ - {"\x79", 0, 0x9DC0}, /* East Asian ideograph */ - {"\x7A", 0, 0x9DC1}, /* East Asian ideograph */ - {"\x7B", 0, 0x9DB8}, /* East Asian ideograph */ - {"\x7C", 0, 0x9DBA}, /* East Asian ideograph */ - {"\x7E", 0, 0x9DCF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page234 = { - marc8_31page234_flat, 0 -}; -/* PAGE 233 */ -struct yaz_iconv_trie_flat marc8_31page233_flat[] = { - {"\x21", 0, 0x9D02}, /* East Asian ideograph */ - {"\x22", 0, 0x9D03}, /* East Asian ideograph */ - {"\x23", 0, 0x9CF7}, /* East Asian ideograph */ - {"\x24", 0, 0x9D04}, /* East Asian ideograph */ - {"\x28", 0, 0x9D07}, /* East Asian ideograph */ - {"\x2C", 0, 0x9CF8}, /* East Asian ideograph */ - {"\x2F", 0, 0x9D2A}, /* East Asian ideograph */ - {"\x30", 0, 0x9D25}, /* East Asian ideograph */ - {"\x3F", 0, 0x9D1E}, /* East Asian ideograph */ - {"\x44", 0, 0x9D1D}, /* East Asian ideograph */ - {"\x48", 0, 0x9D1F}, /* East Asian ideograph */ - {"\x4F", 0, 0x9D41}, /* East Asian ideograph */ - {"\x53", 0, 0x9D36}, /* East Asian ideograph */ - {"\x63", 0, 0x9D3E}, /* East Asian ideograph */ - {"\x65", 0, 0x9D30}, /* East Asian ideograph */ - {"\x68", 0, 0x9D42}, /* East Asian ideograph */ - {"\x69", 0, 0x9D40}, /* East Asian ideograph */ - {"\x6B", 0, 0x9D3D}, /* East Asian ideograph */ - {"\x70", 0, 0x9D5C}, /* East Asian ideograph */ - {"\x75", 0, 0x9D53}, /* East Asian ideograph */ - {"\x7B", 0, 0x9D59}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page233 = { - marc8_31page233_flat, 0 -}; -/* PAGE 232 */ -struct yaz_iconv_trie_flat marc8_31page232_flat[] = { - {"\x25", 0, 0x9C32}, /* East Asian ideograph */ - {"\x26", 0, 0x9C44}, /* East Asian ideograph */ - {"\x28", 0, 0x9C48}, /* East Asian ideograph */ - {"\x29", 0, 0x9C39}, /* East Asian ideograph */ - {"\x2A", 0, 0x9C33}, /* East Asian ideograph */ - {"\x30", 0, 0x9C47}, /* East Asian ideograph */ - {"\x32", 0, 0x9C35}, /* East Asian ideograph */ - {"\x34", 0, 0x9C37}, /* East Asian ideograph */ - {"\x38", 0, 0x9C52}, /* East Asian ideograph */ - {"\x3B", 0, 0x9C58}, /* East Asian ideograph */ - {"\x45", 0, 0x9C51}, /* East Asian ideograph */ - {"\x49", 0, 0x9C63}, /* East Asian ideograph */ - {"\x4F", 0, 0x9C67}, /* East Asian ideograph */ - {"\x55", 0, 0x9C5F}, /* East Asian ideograph */ - {"\x56", 0, 0x9C60}, /* East Asian ideograph */ - {"\x58", 0, 0x9C6D}, /* East Asian ideograph */ - {"\x5B", 0, 0x9C68}, /* East Asian ideograph */ - {"\x5C", 0, 0x9C6F}, /* East Asian ideograph */ - {"\x5E", 0, 0x9C6E}, /* East Asian ideograph */ - {"\x6B", 0, 0x9C7A}, /* East Asian ideograph */ - {"\x73", 0, 0x9CE7}, /* East Asian ideograph */ - {"\x74", 0, 0x9CF0}, /* East Asian ideograph */ - {"\x77", 0, 0x9CF2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page232 = { - marc8_31page232_flat, 0 -}; -/* PAGE 231 */ -struct yaz_iconv_trie_flat marc8_31page231_flat[] = { - {"\x23", 0, 0x9BD5}, /* East Asian ideograph */ - {"\x27", 0, 0x9BE4}, /* East Asian ideograph */ - {"\x2B", 0, 0x9BF1}, /* East Asian ideograph */ - {"\x2C", 0, 0x9BE1}, /* East Asian ideograph */ - {"\x2D", 0, 0x9BDB}, /* East Asian ideograph */ - {"\x2F", 0, 0x9BE2}, /* East Asian ideograph */ - {"\x31", 0, 0x9BF0}, /* East Asian ideograph */ - {"\x34", 0, 0x9BD4}, /* East Asian ideograph */ - {"\x3E", 0, 0x9BFF}, /* East Asian ideograph */ - {"\x43", 0, 0x9C06}, /* East Asian ideograph */ - {"\x44", 0, 0x9C15}, /* East Asian ideograph */ - {"\x49", 0, 0x9C0A}, /* East Asian ideograph */ - {"\x4B", 0, 0x9C08}, /* East Asian ideograph */ - {"\x4C", 0, 0x9C14}, /* East Asian ideograph */ - {"\x4D", 0, 0x9C04}, /* East Asian ideograph */ - {"\x52", 0, 0x9C02}, /* East Asian ideograph */ - {"\x54", 0, 0x9C10}, /* East Asian ideograph */ - {"\x59", 0, 0x9C12}, /* East Asian ideograph */ - {"\x5C", 0, 0x9C09}, /* East Asian ideograph */ - {"\x66", 0, 0x9C1C}, /* East Asian ideograph */ - {"\x69", 0, 0x9C2F}, /* East Asian ideograph */ - {"\x6E", 0, 0x9C23}, /* East Asian ideograph */ - {"\x70", 0, 0x9C2E}, /* East Asian ideograph */ - {"\x71", 0, 0x9C28}, /* East Asian ideograph */ - {"\x78", 0, 0x9C21}, /* East Asian ideograph */ - {"\x79", 0, 0x9C24}, /* East Asian ideograph */ - {"\x7E", 0, 0x9C46}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page231 = { - marc8_31page231_flat, 0 -}; -/* PAGE 230 */ -struct yaz_iconv_trie_flat marc8_31page230_flat[] = { - {"\x21", 0, 0x9B83}, /* East Asian ideograph */ - {"\x29", 0, 0x9B8E}, /* East Asian ideograph */ - {"\x2B", 0, 0x9B90}, /* East Asian ideograph */ - {"\x2E", 0, 0x9B93}, /* East Asian ideograph */ - {"\x2F", 0, 0x9B97}, /* East Asian ideograph */ - {"\x31", 0, 0x9B92}, /* East Asian ideograph */ - {"\x32", 0, 0x9B98}, /* East Asian ideograph */ - {"\x36", 0, 0x9B9F}, /* East Asian ideograph */ - {"\x39", 0, 0x9B9D}, /* East Asian ideograph */ - {"\x3C", 0, 0x9BAD}, /* East Asian ideograph */ - {"\x3D", 0, 0x9B9A}, /* East Asian ideograph */ - {"\x3F", 0, 0x9BA8}, /* East Asian ideograph */ - {"\x42", 0, 0x9B9E}, /* East Asian ideograph */ - {"\x43", 0, 0x9B99}, /* East Asian ideograph */ - {"\x49", 0, 0x9B86}, /* East Asian ideograph */ - {"\x4E", 0, 0x9BA0}, /* East Asian ideograph */ - {"\x56", 0, 0x9BC7}, /* East Asian ideograph */ - {"\x59", 0, 0x9BD2}, /* East Asian ideograph */ - {"\x5D", 0, 0x9BC6}, /* East Asian ideograph */ - {"\x5E", 0, 0x9BBF}, /* East Asian ideograph */ - {"\x5F", 0, 0x9BC1}, /* East Asian ideograph */ - {"\x66", 0, 0x9BB9}, /* East Asian ideograph */ - {"\x6B", 0, 0x9BBB}, /* East Asian ideograph */ - {"\x6C", 0, 0x9BD3}, /* East Asian ideograph */ - {"\x6E", 0, 0x9BC0}, /* East Asian ideograph */ - {"\x72", 0, 0x9BC8}, /* East Asian ideograph */ - {"\x77", 0, 0x9BD7}, /* East Asian ideograph */ - {"\x7A", 0, 0x9BD6}, /* East Asian ideograph */ - {"\x7C", 0, 0x9BEB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page230 = { - marc8_31page230_flat, 0 -}; -/* PAGE 229 */ -struct yaz_iconv_trie_flat marc8_31page229_flat[] = { - {"\x22", 0, 0x9B35}, /* East Asian ideograph */ - {"\x23", 0, 0x9B37}, /* East Asian ideograph */ - {"\x36", 0, 0x9B43}, /* East Asian ideograph */ - {"\x3A", 0, 0x9B48}, /* East Asian ideograph */ - {"\x3C", 0, 0x9B4E}, /* East Asian ideograph */ - {"\x3E", 0, 0x9B4D}, /* East Asian ideograph */ - {"\x41", 0, 0x9B4B}, /* East Asian ideograph */ - {"\x47", 0, 0x9B51}, /* East Asian ideograph */ - {"\x5D", 0, 0x9B74}, /* East Asian ideograph */ - {"\x63", 0, 0x9B68}, /* East Asian ideograph */ - {"\x72", 0, 0x9B80}, /* East Asian ideograph */ - {"\x73", 0, 0x9B8C}, /* East Asian ideograph */ - {"\x7A", 0, 0x9B95}, /* East Asian ideograph */ - {"\x7B", 0, 0x9B7D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page229 = { - marc8_31page229_flat, 0 -}; -/* PAGE 228 */ -struct yaz_iconv_trie_flat marc8_31page228_flat[] = { - {"\x21", 0, 0x9AE7}, /* East Asian ideograph */ - {"\x27", 0, 0x9AEB}, /* East Asian ideograph */ - {"\x28", 0, 0x9AF2}, /* East Asian ideograph */ - {"\x2A", 0, 0x9AEF}, /* East Asian ideograph */ - {"\x32", 0, 0x9AF9}, /* East Asian ideograph */ - {"\x35", 0, 0x9AFD}, /* East Asian ideograph */ - {"\x36", 0, 0x9B01}, /* East Asian ideograph */ - {"\x38", 0, 0x9B02}, /* East Asian ideograph */ - {"\x3B", 0, 0x9B00}, /* East Asian ideograph */ - {"\x3C", 0, 0x9B08}, /* East Asian ideograph */ - {"\x3E", 0, 0x9B04}, /* East Asian ideograph */ - {"\x41", 0, 0x9B05}, /* East Asian ideograph */ - {"\x43", 0, 0x9B0B}, /* East Asian ideograph */ - {"\x47", 0, 0x9B0E}, /* East Asian ideograph */ - {"\x4E", 0, 0x9B11}, /* East Asian ideograph */ - {"\x4F", 0, 0x9B10}, /* East Asian ideograph */ - {"\x54", 0, 0x9B18}, /* East Asian ideograph */ - {"\x56", 0, 0x9B1D}, /* East Asian ideograph */ - {"\x5E", 0, 0x9B1F}, /* East Asian ideograph */ - {"\x66", 0, 0x9B23}, /* East Asian ideograph */ - {"\x6C", 0, 0x9B29}, /* East Asian ideograph */ - {"\x73", 0, 0x9B2D}, /* East Asian ideograph */ - {"\x74", 0, 0x9B2E}, /* East Asian ideograph */ - {"\x76", 0, 0x9B2F}, /* East Asian ideograph */ - {"\x7D", 0, 0x9B34}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page228 = { - marc8_31page228_flat, 0 -}; -/* PAGE 227 */ -struct yaz_iconv_trie_flat marc8_31page227_flat[] = { - {"\x22", 0, 0x9A4D}, /* East Asian ideograph */ - {"\x24", 0, 0x9A52}, /* East Asian ideograph */ - {"\x27", 0, 0x9A4A}, /* East Asian ideograph */ - {"\x2A", 0, 0x9A58}, /* East Asian ideograph */ - {"\x2C", 0, 0x9A56}, /* East Asian ideograph */ - {"\x33", 0, 0x9A64}, /* East Asian ideograph */ - {"\x34", 0, 0x9A66}, /* East Asian ideograph */ - {"\x3A", 0, 0x9A6B}, /* East Asian ideograph */ - {"\x3F", 0, 0x9AAD}, /* East Asian ideograph */ - {"\x41", 0, 0x9AAB}, /* East Asian ideograph */ - {"\x43", 0, 0x9AB1}, /* East Asian ideograph */ - {"\x45", 0, 0x9AB3}, /* East Asian ideograph */ - {"\x49", 0, 0x9AB6}, /* East Asian ideograph */ - {"\x4C", 0, 0x9ABB}, /* East Asian ideograph */ - {"\x50", 0, 0x9ABA}, /* East Asian ideograph */ - {"\x54", 0, 0x9ABD}, /* East Asian ideograph */ - {"\x57", 0, 0x9AC1}, /* East Asian ideograph */ - {"\x59", 0, 0x9AC0}, /* East Asian ideograph */ - {"\x5A", 0, 0x9AC2}, /* East Asian ideograph */ - {"\x5D", 0, 0x9AC8}, /* East Asian ideograph */ - {"\x66", 0, 0x9AD0}, /* East Asian ideograph */ - {"\x6A", 0, 0x9AD1}, /* East Asian ideograph */ - {"\x6D", 0, 0x9AD6}, /* East Asian ideograph */ - {"\x72", 0, 0x9ADC}, /* East Asian ideograph */ - {"\x74", 0, 0x9ADF}, /* East Asian ideograph */ - {"\x76", 0, 0x9AE0}, /* East Asian ideograph */ - {"\x77", 0, 0x9AE2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page227 = { - marc8_31page227_flat, 0 -}; -/* PAGE 226 */ -struct yaz_iconv_trie_flat marc8_31page226_flat[] = { - {"\x24", 0, 0x9A02}, /* East Asian ideograph */ - {"\x29", 0, 0x99F8}, /* East Asian ideograph */ - {"\x2A", 0, 0x99F4}, /* East Asian ideograph */ - {"\x30", 0, 0x99FB}, /* East Asian ideograph */ - {"\x31", 0, 0x99FD}, /* East Asian ideograph */ - {"\x3D", 0, 0x9A0F}, /* East Asian ideograph */ - {"\x3E", 0, 0x9A0B}, /* East Asian ideograph */ - {"\x3F", 0, 0x9A09}, /* East Asian ideograph */ - {"\x44", 0, 0x9A04}, /* East Asian ideograph */ - {"\x45", 0, 0x9A11}, /* East Asian ideograph */ - {"\x47", 0, 0x9A05}, /* East Asian ideograph */ - {"\x48", 0, 0x9A10}, /* East Asian ideograph */ - {"\x4C", 0, 0x9A24}, /* East Asian ideograph */ - {"\x4D", 0, 0x9A22}, /* East Asian ideograph */ - {"\x4F", 0, 0x9A20}, /* East Asian ideograph */ - {"\x52", 0, 0x9A27}, /* East Asian ideograph */ - {"\x59", 0, 0x9A2F}, /* East Asian ideograph */ - {"\x5A", 0, 0x9A38}, /* East Asian ideograph */ - {"\x60", 0, 0x9A2D}, /* East Asian ideograph */ - {"\x61", 0, 0x9A35}, /* East Asian ideograph */ - {"\x64", 0, 0x9A32}, /* East Asian ideograph */ - {"\x69", 0, 0x9A36}, /* East Asian ideograph */ - {"\x6A", 0, 0x9A2E}, /* East Asian ideograph */ - {"\x70", 0, 0x9A41}, /* East Asian ideograph */ - {"\x74", 0, 0x9A3B}, /* East Asian ideograph */ - {"\x79", 0, 0x9A42}, /* East Asian ideograph */ - {"\x7A", 0, 0x9A44}, /* East Asian ideograph */ - {"\x7D", 0, 0x9A48}, /* East Asian ideograph */ - {"\x7E", 0, 0x9A4C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page226 = { - marc8_31page226_flat, 0 -}; -/* PAGE 225 */ -struct yaz_iconv_trie_flat marc8_31page225_flat[] = { - {"\x22", 0, 0x9957}, /* East Asian ideograph (variant of EACC 475222) */ - {"\x29", 0, 0x995D}, /* East Asian ideograph */ - {"\x2B", 0, 0x995F}, /* East Asian ideograph */ - {"\x2F", 0, 0x9997}, /* East Asian ideograph */ - {"\x30", 0, 0x9998}, /* East Asian ideograph */ - {"\x3B", 0, 0x99A3}, /* East Asian ideograph */ - {"\x3C", 0, 0x99A1}, /* East Asian ideograph */ - {"\x3E", 0, 0x99A6}, /* East Asian ideograph */ - {"\x41", 0, 0x99A9}, /* East Asian ideograph */ - {"\x42", 0, 0x99AA}, /* East Asian ideograph */ - {"\x49", 0, 0x99B5}, /* East Asian ideograph */ - {"\x4D", 0, 0x99BF}, /* East Asian ideograph */ - {"\x4E", 0, 0x99BC}, /* East Asian ideograph */ - {"\x4F", 0, 0x99C3}, /* East Asian ideograph */ - {"\x53", 0, 0x99B9}, /* East Asian ideograph */ - {"\x54", 0, 0x99BD}, /* East Asian ideograph */ - {"\x61", 0, 0x99D3}, /* East Asian ideograph */ - {"\x63", 0, 0x99D4}, /* East Asian ideograph */ - {"\x65", 0, 0x99C9}, /* East Asian ideograph */ - {"\x69", 0, 0x99D8}, /* East Asian ideograph */ - {"\x74", 0, 0x99EC}, /* East Asian ideograph */ - {"\x7A", 0, 0x99F0}, /* East Asian ideograph */ - {"\x7B", 0, 0x99E3}, /* East Asian ideograph */ - {"\x7C", 0, 0x99EA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page225 = { - marc8_31page225_flat, 0 -}; -/* PAGE 224 */ -struct yaz_iconv_trie_flat marc8_31page224_flat[] = { - {"\x24", 0, 0x9907}, /* East Asian ideograph */ - {"\x28", 0, 0x9902}, /* East Asian ideograph */ - {"\x2F", 0, 0x9916}, /* East Asian ideograph */ - {"\x30", 0, 0x9914}, /* East Asian ideograph */ - {"\x31", 0, 0x9917}, /* East Asian ideograph */ - {"\x32", 0, 0x9911}, /* East Asian ideograph */ - {"\x38", 0, 0x9915}, /* East Asian ideograph */ - {"\x3A", 0, 0x9924}, /* East Asian ideograph */ - {"\x3B", 0, 0x991F}, /* East Asian ideograph */ - {"\x40", 0, 0x991C}, /* East Asian ideograph */ - {"\x43", 0, 0x9929}, /* East Asian ideograph */ - {"\x45", 0, 0x9927}, /* East Asian ideograph */ - {"\x47", 0, 0x991A}, /* East Asian ideograph */ - {"\x4F", 0, 0x992E}, /* East Asian ideograph */ - {"\x50", 0, 0x992C}, /* East Asian ideograph */ - {"\x51", 0, 0x992A}, /* East Asian ideograph */ - {"\x53", 0, 0x9933}, /* East Asian ideograph */ - {"\x54", 0, 0x9942}, /* East Asian ideograph (variant of EACC 4D5154) */ - {"\x55", 0, 0x9932}, /* East Asian ideograph */ - {"\x56", 0, 0x992B}, /* East Asian ideograph */ - {"\x58", 0, 0x9931}, /* East Asian ideograph */ - {"\x5C", 0, 0x993B}, /* East Asian ideograph */ - {"\x60", 0, 0x993A}, /* East Asian ideograph */ - {"\x61", 0, 0x9941}, /* East Asian ideograph */ - {"\x64", 0, 0x9940}, /* East Asian ideograph */ - {"\x66", 0, 0x993C}, /* East Asian ideograph */ - {"\x6A", 0, 0x9948}, /* East Asian ideograph */ - {"\x6C", 0, 0x9947}, /* East Asian ideograph */ - {"\x6D", 0, 0x9949}, /* East Asian ideograph */ - {"\x70", 0, 0x9943}, /* East Asian ideograph */ - {"\x71", 0, 0x994D}, /* East Asian ideograph */ - {"\x72", 0, 0x994C}, /* East Asian ideograph */ - {"\x73", 0, 0x994E}, /* East Asian ideograph */ - {"\x74", 0, 0x9950}, /* East Asian ideograph */ - {"\x7A", 0, 0x9958}, /* East Asian ideograph */ - {"\x7B", 0, 0x9954}, /* East Asian ideograph */ - {"\x7E", 0, 0x9955}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page224 = { - marc8_31page224_flat, 0 -}; -/* PAGE 223 */ -struct yaz_iconv_trie_flat marc8_31page223_flat[] = { - {"\x21", 0, 0x9865}, /* East Asian ideograph */ - {"\x22", 0, 0x9866}, /* East Asian ideograph */ - {"\x29", 0, 0x986C}, /* East Asian ideograph */ - {"\x30", 0, 0x9873}, /* East Asian ideograph */ - {"\x31", 0, 0x9874}, /* East Asian ideograph */ - {"\x39", 0, 0x98AD}, /* East Asian ideograph */ - {"\x40", 0, 0x98B4}, /* East Asian ideograph */ - {"\x48", 0, 0x98B8}, /* East Asian ideograph */ - {"\x4A", 0, 0x98BF}, /* East Asian ideograph */ - {"\x4D", 0, 0x98BB}, /* East Asian ideograph */ - {"\x4E", 0, 0x98C0}, /* East Asian ideograph */ - {"\x53", 0, 0x98C6}, /* East Asian ideograph */ - {"\x5F", 0, 0x98E1}, /* East Asian ideograph */ - {"\x60", 0, 0x98E3}, /* East Asian ideograph */ - {"\x61", 0, 0x98E4}, /* East Asian ideograph */ - {"\x63", 0, 0x98E5}, /* East Asian ideograph */ - {"\x68", 0, 0x98F1}, /* East Asian ideograph */ - {"\x6C", 0, 0x98EB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page223 = { - marc8_31page223_flat, 0 -}; -/* PAGE 222 */ -struct yaz_iconv_trie_flat marc8_31page222_flat[] = { - {"\x23", 0, 0x980E}, /* East Asian ideograph */ - {"\x26", 0, 0x9816}, /* East Asian ideograph */ - {"\x2C", 0, 0x9826}, /* East Asian ideograph */ - {"\x2D", 0, 0x981E}, /* East Asian ideograph */ - {"\x34", 0, 0x982B}, /* East Asian ideograph */ - {"\x37", 0, 0x9820}, /* East Asian ideograph */ - {"\x38", 0, 0x981F}, /* East Asian ideograph */ - {"\x3D", 0, 0x9833}, /* East Asian ideograph */ - {"\x40", 0, 0x982E}, /* East Asian ideograph */ - {"\x44", 0, 0x982F}, /* East Asian ideograph */ - {"\x45", 0, 0x9832}, /* East Asian ideograph */ - {"\x4B", 0, 0x9847}, /* East Asian ideograph */ - {"\x4E", 0, 0x9844}, /* East Asian ideograph */ - {"\x60", 0, 0x9852}, /* East Asian ideograph */ - {"\x62", 0, 0x984B}, /* East Asian ideograph */ - {"\x66", 0, 0x983F}, /* East Asian ideograph */ - {"\x6A", 0, 0x985C}, /* East Asian ideograph */ - {"\x6B", 0, 0x9859}, /* East Asian ideograph */ - {"\x6F", 0, 0x9857}, /* East Asian ideograph */ - {"\x72", 0, 0x9856}, /* East Asian ideograph */ - {"\x77", 0, 0x9862}, /* East Asian ideograph */ - {"\x7E", 0, 0x9868}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page222 = { - marc8_31page222_flat, 0 -}; -/* PAGE 221 */ -struct yaz_iconv_trie_flat marc8_31page221_flat[] = { - {"\x24", 0, 0x97B3}, /* East Asian ideograph */ - {"\x26", 0, 0x97B5}, /* East Asian ideograph */ - {"\x29", 0, 0x97B9}, /* East Asian ideograph */ - {"\x2D", 0, 0x97B8}, /* East Asian ideograph */ - {"\x35", 0, 0x97BE}, /* East Asian ideograph */ - {"\x38", 0, 0x97C0}, /* East Asian ideograph */ - {"\x3B", 0, 0x97C5}, /* East Asian ideograph */ - {"\x43", 0, 0x97C9}, /* East Asian ideograph */ - {"\x4B", 0, 0x97CE}, /* East Asian ideograph */ - {"\x4C", 0, 0x97CD}, /* East Asian ideograph */ - {"\x4E", 0, 0x97D0}, /* East Asian ideograph */ - {"\x51", 0, 0x97D4}, /* East Asian ideograph */ - {"\x53", 0, 0x97D8}, /* East Asian ideograph */ - {"\x54", 0, 0x97D9}, /* East Asian ideograph */ - {"\x59", 0, 0x97DD}, /* East Asian ideograph */ - {"\x5C", 0, 0x97DE}, /* East Asian ideograph */ - {"\x5E", 0, 0x97E0}, /* East Asian ideograph */ - {"\x60", 0, 0x97E1}, /* East Asian ideograph */ - {"\x6C", 0, 0x97F5}, /* East Asian ideograph */ - {"\x73", 0, 0x97FA}, /* East Asian ideograph */ - {"\x79", 0, 0x9807}, /* East Asian ideograph */ - {"\x7B", 0, 0x980F}, /* East Asian ideograph */ - {"\x7E", 0, 0x980D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page221 = { - marc8_31page221_flat, 0 -}; -/* PAGE 220 */ -struct yaz_iconv_trie_flat marc8_31page220_flat[] = { - {"\x25", 0, 0x9767}, /* East Asian ideograph */ - {"\x2C", 0, 0x976B}, /* East Asian ideograph */ - {"\x30", 0, 0x976E}, /* East Asian ideograph */ - {"\x31", 0, 0x9777}, /* East Asian ideograph */ - {"\x32", 0, 0x9778}, /* East Asian ideograph */ - {"\x35", 0, 0x9773}, /* East Asian ideograph */ - {"\x37", 0, 0x9783}, /* East Asian ideograph */ - {"\x38", 0, 0x977A}, /* East Asian ideograph */ - {"\x3A", 0, 0x9780}, /* East Asian ideograph */ - {"\x3C", 0, 0x9781}, /* East Asian ideograph */ - {"\x40", 0, 0x9784}, /* East Asian ideograph */ - {"\x43", 0, 0x977F}, /* East Asian ideograph */ - {"\x49", 0, 0x9789}, /* East Asian ideograph */ - {"\x54", 0, 0x9794}, /* East Asian ideograph */ - {"\x59", 0, 0x979B}, /* East Asian ideograph */ - {"\x5A", 0, 0x979F}, /* East Asian ideograph */ - {"\x5C", 0, 0x979A}, /* East Asian ideograph */ - {"\x62", 0, 0x979C}, /* East Asian ideograph */ - {"\x6A", 0, 0x97AC}, /* East Asian ideograph */ - {"\x70", 0, 0x97AE}, /* East Asian ideograph */ - {"\x71", 0, 0x97A8}, /* East Asian ideograph */ - {"\x74", 0, 0x97AB}, /* East Asian ideograph */ - {"\x78", 0, 0x97A5}, /* East Asian ideograph */ - {"\x7A", 0, 0x97B2}, /* East Asian ideograph */ - {"\x7C", 0, 0x97B4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page220 = { - marc8_31page220_flat, 0 -}; -/* PAGE 219 */ -struct yaz_iconv_trie_flat marc8_31page219_flat[] = { - {"\x22", 0, 0x96FF}, /* East Asian ideograph */ - {"\x27", 0, 0x9702}, /* East Asian ideograph */ - {"\x29", 0, 0x9708}, /* East Asian ideograph */ - {"\x2A", 0, 0x9705}, /* East Asian ideograph */ - {"\x38", 0, 0x971B}, /* East Asian ideograph */ - {"\x3D", 0, 0x971D}, /* East Asian ideograph */ - {"\x3E", 0, 0x9719}, /* East Asian ideograph */ - {"\x47", 0, 0x9723}, /* East Asian ideograph */ - {"\x49", 0, 0x9722}, /* East Asian ideograph */ - {"\x4A", 0, 0x9724}, /* East Asian ideograph */ - {"\x4E", 0, 0x9728}, /* East Asian ideograph */ - {"\x50", 0, 0x9726}, /* East Asian ideograph */ - {"\x52", 0, 0x9731}, /* East Asian ideograph */ - {"\x58", 0, 0x9730}, /* East Asian ideograph */ - {"\x5C", 0, 0x9736}, /* East Asian ideograph */ - {"\x6A", 0, 0x9741}, /* East Asian ideograph */ - {"\x6B", 0, 0x9747}, /* East Asian ideograph */ - {"\x6C", 0, 0x9746}, /* East Asian ideograph */ - {"\x6E", 0, 0x9749}, /* East Asian ideograph */ - {"\x75", 0, 0x9758}, /* East Asian ideograph */ - {"\x76", 0, 0x975A}, /* East Asian ideograph */ - {"\x78", 0, 0x975D}, /* East Asian ideograph */ - {"\x7B", 0, 0x975F}, /* East Asian ideograph */ - {"\x7D", 0, 0x9764}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page219 = { - marc8_31page219_flat, 0 -}; -/* PAGE 218 */ -struct yaz_iconv_trie_flat marc8_31page218_flat[] = { - {"\x2F", 0, 0x96A4}, /* East Asian ideograph */ - {"\x35", 0, 0x96A9}, /* East Asian ideograph */ - {"\x37", 0, 0x96AE}, /* East Asian ideograph */ - {"\x3B", 0, 0x96B0}, /* East Asian ideograph */ - {"\x3C", 0, 0x96B2}, /* East Asian ideograph */ - {"\x3E", 0, 0x96B3}, /* East Asian ideograph */ - {"\x48", 0, 0x96B9}, /* East Asian ideograph */ - {"\x49", 0, 0x96BC}, /* East Asian ideograph */ - {"\x52", 0, 0x96CE}, /* East Asian ideograph */ - {"\x53", 0, 0x96CA}, /* East Asian ideograph */ - {"\x57", 0, 0x96D2}, /* East Asian ideograph */ - {"\x64", 0, 0x96DF}, /* East Asian ideograph */ - {"\x66", 0, 0x96D8}, /* East Asian ideograph */ - {"\x67", 0, 0x96DD}, /* East Asian ideograph */ - {"\x71", 0, 0x96E9}, /* East Asian ideograph */ - {"\x74", 0, 0x96F1}, /* East Asian ideograph */ - {"\x76", 0, 0x96F0}, /* East Asian ideograph */ - {"\x77", 0, 0x96F4}, /* East Asian ideograph */ - {"\x78", 0, 0x96FA}, /* East Asian ideograph */ - {"\x7A", 0, 0x96F5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page218 = { - marc8_31page218_flat, 0 -}; -/* PAGE 217 */ -struct yaz_iconv_trie_flat marc8_31page217_flat[] = { - {"\x21", 0, 0x9627}, /* East Asian ideograph */ - {"\x2F", 0, 0x9642}, /* East Asian ideograph */ - {"\x30", 0, 0x963D}, /* East Asian ideograph */ - {"\x32", 0, 0x963C}, /* East Asian ideograph */ - {"\x3C", 0, 0x9651}, /* East Asian ideograph */ - {"\x42", 0, 0x9660}, /* East Asian ideograph */ - {"\x44", 0, 0x965C}, /* East Asian ideograph */ - {"\x46", 0, 0x9658}, /* East Asian ideograph */ - {"\x4A", 0, 0x965F}, /* East Asian ideograph */ - {"\x4B", 0, 0x9656}, /* East Asian ideograph */ - {"\x51", 0, 0x966C}, /* East Asian ideograph */ - {"\x5D", 0, 0x967B}, /* East Asian ideograph */ - {"\x5E", 0, 0x967F}, /* East Asian ideograph */ - {"\x62", 0, 0x967E}, /* East Asian ideograph */ - {"\x63", 0, 0x9684}, /* East Asian ideograph */ - {"\x65", 0, 0x9688}, /* East Asian ideograph */ - {"\x6C", 0, 0x9689}, /* East Asian ideograph */ - {"\x6D", 0, 0x9682}, /* East Asian ideograph */ - {"\x6E", 0, 0x9683}, /* East Asian ideograph */ - {"\x79", 0, 0x9696}, /* East Asian ideograph */ - {"\x7A", 0, 0x9697}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page217 = { - marc8_31page217_flat, 0 -}; -/* PAGE 216 */ -struct yaz_iconv_trie_flat marc8_31page216_flat[] = { - {"\x2E", 0, 0x9585}, /* East Asian ideograph */ - {"\x30", 0, 0x9588}, /* East Asian ideograph */ - {"\x31", 0, 0x958C}, /* East Asian ideograph */ - {"\x34", 0, 0x9597}, /* East Asian ideograph */ - {"\x36", 0, 0x958E}, /* East Asian ideograph */ - {"\x38", 0, 0x959F}, /* East Asian ideograph */ - {"\x3A", 0, 0x95A0}, /* East Asian ideograph */ - {"\x42", 0, 0x95AC}, /* East Asian ideograph */ - {"\x44", 0, 0x95AB}, /* East Asian ideograph */ - {"\x48", 0, 0x95BC}, /* East Asian ideograph */ - {"\x49", 0, 0x95BE}, /* East Asian ideograph */ - {"\x4A", 0, 0x95CD}, /* East Asian ideograph */ - {"\x4D", 0, 0x95B9}, /* East Asian ideograph */ - {"\x4E", 0, 0x95BA}, /* East Asian ideograph */ - {"\x4F", 0, 0x95B6}, /* East Asian ideograph */ - {"\x50", 0, 0x95BF}, /* East Asian ideograph */ - {"\x52", 0, 0x95BD}, /* East Asian ideograph */ - {"\x59", 0, 0x95C9}, /* East Asian ideograph */ - {"\x5D", 0, 0x95CE}, /* East Asian ideograph */ - {"\x60", 0, 0x95D5}, /* East Asian ideograph */ - {"\x62", 0, 0x95D2}, /* East Asian ideograph */ - {"\x63", 0, 0x95D3}, /* East Asian ideograph */ - {"\x64", 0, 0x95D1}, /* East Asian ideograph */ - {"\x65", 0, 0x95C3}, /* East Asian ideograph */ - {"\x66", 0, 0x95DA}, /* East Asian ideograph */ - {"\x69", 0, 0x95DE}, /* East Asian ideograph */ - {"\x6A", 0, 0x95E0}, /* East Asian ideograph */ - {"\x6F", 0, 0x95E5}, /* East Asian ideograph */ - {"\x72", 0, 0x95E4}, /* East Asian ideograph */ - {"\x76", 0, 0x95E7}, /* East Asian ideograph */ - {"\x7A", 0, 0x961E}, /* East Asian ideograph */ - {"\x7B", 0, 0x9624}, /* East Asian ideograph */ - {"\x7C", 0, 0x9622}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page216 = { - marc8_31page216_flat, 0 -}; -/* PAGE 215 */ -struct yaz_iconv_trie_flat marc8_31page215_flat[] = { - {"\x27", 0, 0x93F4}, /* East Asian ideograph */ - {"\x28", 0, 0x9436}, /* East Asian ideograph */ - {"\x2B", 0, 0x943B}, /* East Asian ideograph */ - {"\x2D", 0, 0x9424}, /* East Asian ideograph */ - {"\x30", 0, 0x9437}, /* East Asian ideograph */ - {"\x32", 0, 0x9440}, /* East Asian ideograph */ - {"\x35", 0, 0x942B}, /* East Asian ideograph */ - {"\x36", 0, 0x942D}, /* East Asian ideograph */ - {"\x37", 0, 0x9441}, /* East Asian ideograph */ - {"\x38", 0, 0x9431}, /* East Asian ideograph */ - {"\x3D", 0, 0x9467}, /* East Asian ideograph */ - {"\x3E", 0, 0x944C}, /* East Asian ideograph */ - {"\x40", 0, 0x9445}, /* East Asian ideograph */ - {"\x42", 0, 0x9450}, /* East Asian ideograph */ - {"\x4A", 0, 0x944A}, /* East Asian ideograph */ - {"\x53", 0, 0x9466}, /* East Asian ideograph */ - {"\x57", 0, 0x9464}, /* East Asian ideograph */ - {"\x58", 0, 0x9462}, /* East Asian ideograph */ - {"\x5C", 0, 0x9465}, /* East Asian ideograph */ - {"\x5D", 0, 0x9455}, /* East Asian ideograph */ - {"\x5E", 0, 0x945E}, /* East Asian ideograph */ - {"\x62", 0, 0x946A}, /* East Asian ideograph */ - {"\x68", 0, 0x946B}, /* East Asian ideograph */ - {"\x69", 0, 0x946D}, /* East Asian ideograph */ - {"\x6C", 0, 0x946F}, /* East Asian ideograph */ - {"\x6D", 0, 0x9471}, /* East Asian ideograph */ - {"\x71", 0, 0x9477}, /* East Asian ideograph */ - {"\x7B", 0, 0x9482}, /* East Asian ideograph */ - {"\x7C", 0, 0x9481}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page215 = { - marc8_31page215_flat, 0 -}; -/* PAGE 214 */ -struct yaz_iconv_trie_flat marc8_31page214_flat[] = { - {"\x2C", 0, 0x93D3}, /* East Asian ideograph */ - {"\x2F", 0, 0x93A9}, /* East Asian ideograph */ - {"\x30", 0, 0x93E6}, /* East Asian ideograph */ - {"\x32", 0, 0x940B}, /* East Asian ideograph */ - {"\x34", 0, 0x9413}, /* East Asian ideograph */ - {"\x3B", 0, 0x940F}, /* East Asian ideograph */ - {"\x3C", 0, 0x9420}, /* East Asian ideograph */ - {"\x3D", 0, 0x93FB}, /* East Asian ideograph */ - {"\x49", 0, 0x93FA}, /* East Asian ideograph */ - {"\x4D", 0, 0x9419}, /* East Asian ideograph */ - {"\x4E", 0, 0x940D}, /* East Asian ideograph */ - {"\x50", 0, 0x9426}, /* East Asian ideograph */ - {"\x51", 0, 0x9427}, /* East Asian ideograph */ - {"\x55", 0, 0x9409}, /* East Asian ideograph */ - {"\x58", 0, 0x9414}, /* East Asian ideograph */ - {"\x59", 0, 0x9404}, /* East Asian ideograph */ - {"\x5C", 0, 0x9422}, /* East Asian ideograph */ - {"\x5D", 0, 0x9406}, /* East Asian ideograph */ - {"\x60", 0, 0x9410}, /* East Asian ideograph */ - {"\x62", 0, 0x9423}, /* East Asian ideograph */ - {"\x67", 0, 0x93F5}, /* East Asian ideograph */ - {"\x69", 0, 0x93F7}, /* East Asian ideograph */ - {"\x6A", 0, 0x9407}, /* East Asian ideograph */ - {"\x6F", 0, 0x940E}, /* East Asian ideograph */ - {"\x71", 0, 0x9411}, /* East Asian ideograph */ - {"\x74", 0, 0x943F}, /* East Asian ideograph */ - {"\x79", 0, 0x9429}, /* East Asian ideograph */ - {"\x7C", 0, 0x943D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page214 = { - marc8_31page214_flat, 0 -}; -/* PAGE 213 */ -struct yaz_iconv_trie_flat marc8_31page213_flat[] = { - {"\x21", 0, 0x93B5}, /* East Asian ideograph */ - {"\x22", 0, 0x938C}, /* East Asian ideograph */ - {"\x23", 0, 0x9388}, /* East Asian ideograph */ - {"\x25", 0, 0x93B9}, /* East Asian ideograph */ - {"\x27", 0, 0x93A1}, /* East Asian ideograph */ - {"\x28", 0, 0x93B0}, /* East Asian ideograph */ - {"\x29", 0, 0x93A3}, /* East Asian ideograph */ - {"\x2A", 0, 0x93B7}, /* East Asian ideograph */ - {"\x2B", 0, 0x939B}, /* East Asian ideograph */ - {"\x2D", 0, 0x9398}, /* East Asian ideograph */ - {"\x3C", 0, 0x9389}, /* East Asian ideograph */ - {"\x3D", 0, 0x93A4}, /* East Asian ideograph */ - {"\x40", 0, 0x93BC}, /* East Asian ideograph */ - {"\x42", 0, 0x93A7}, /* East Asian ideograph */ - {"\x44", 0, 0x93BD}, /* East Asian ideograph */ - {"\x47", 0, 0x93A6}, /* East Asian ideograph */ - {"\x48", 0, 0x939A}, /* East Asian ideograph */ - {"\x4A", 0, 0x93AA}, /* East Asian ideograph */ - {"\x4D", 0, 0x939E}, /* East Asian ideograph */ - {"\x4F", 0, 0x9397}, /* East Asian ideograph */ - {"\x51", 0, 0x93BB}, /* East Asian ideograph */ - {"\x53", 0, 0x93F1}, /* East Asian ideograph */ - {"\x56", 0, 0x93DE}, /* East Asian ideograph */ - {"\x57", 0, 0x93EE}, /* East Asian ideograph */ - {"\x5A", 0, 0x93C7}, /* East Asian ideograph */ - {"\x5B", 0, 0x93F2}, /* East Asian ideograph */ - {"\x5D", 0, 0x93D4}, /* East Asian ideograph */ - {"\x5F", 0, 0x93E5}, /* East Asian ideograph */ - {"\x62", 0, 0x93F9}, /* East Asian ideograph */ - {"\x63", 0, 0x93CA}, /* East Asian ideograph */ - {"\x64", 0, 0x93C4}, /* East Asian ideograph */ - {"\x66", 0, 0x93E8}, /* East Asian ideograph */ - {"\x67", 0, 0x93E7}, /* East Asian ideograph */ - {"\x72", 0, 0x93DA}, /* East Asian ideograph */ - {"\x73", 0, 0x93D0}, /* East Asian ideograph */ - {"\x74", 0, 0x93EF}, /* East Asian ideograph */ - {"\x75", 0, 0x93DB}, /* East Asian ideograph */ - {"\x7C", 0, 0x93CC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page213 = { - marc8_31page213_flat, 0 -}; -/* PAGE 212 */ -struct yaz_iconv_trie_flat marc8_31page212_flat[] = { - {"\x22", 0, 0x9314}, /* East Asian ideograph */ - {"\x28", 0, 0x92FE}, /* East Asian ideograph */ - {"\x2F", 0, 0x9342}, /* East Asian ideograph */ - {"\x31", 0, 0x9341}, /* East Asian ideograph */ - {"\x32", 0, 0x9319}, /* East Asian ideograph */ - {"\x35", 0, 0x934C}, /* East Asian ideograph */ - {"\x41", 0, 0x9379}, /* East Asian ideograph */ - {"\x44", 0, 0x9386}, /* East Asian ideograph */ - {"\x47", 0, 0x936A}, /* East Asian ideograph */ - {"\x48", 0, 0x935C}, /* East Asian ideograph */ - {"\x4C", 0, 0x934F}, /* East Asian ideograph */ - {"\x4D", 0, 0x9347}, /* East Asian ideograph */ - {"\x51", 0, 0x937A}, /* East Asian ideograph */ - {"\x53", 0, 0x9356}, /* East Asian ideograph */ - {"\x54", 0, 0x9371}, /* East Asian ideograph */ - {"\x56", 0, 0x937C}, /* East Asian ideograph */ - {"\x5C", 0, 0x9377}, /* East Asian ideograph */ - {"\x5D", 0, 0x9349}, /* East Asian ideograph */ - {"\x5E", 0, 0x9358}, /* East Asian ideograph */ - {"\x5F", 0, 0x935A}, /* East Asian ideograph */ - {"\x60", 0, 0x93BE}, /* East Asian ideograph */ - {"\x62", 0, 0x935F}, /* East Asian ideograph */ - {"\x64", 0, 0x9376}, /* East Asian ideograph */ - {"\x66", 0, 0x9355}, /* East Asian ideograph */ - {"\x67", 0, 0x9354}, /* East Asian ideograph */ - {"\x6A", 0, 0x9348}, /* East Asian ideograph */ - {"\x6B", 0, 0x9374}, /* East Asian ideograph */ - {"\x6E", 0, 0x9351}, /* East Asian ideograph */ - {"\x6F", 0, 0x9364}, /* East Asian ideograph */ - {"\x71", 0, 0x936B}, /* East Asian ideograph */ - {"\x72", 0, 0x936D}, /* East Asian ideograph */ - {"\x73", 0, 0x9360}, /* East Asian ideograph */ - {"\x77", 0, 0x936E}, /* East Asian ideograph */ - {"\x79", 0, 0x938F}, /* East Asian ideograph */ - {"\x7A", 0, 0x93AC}, /* East Asian ideograph */ - {"\x7B", 0, 0x9395}, /* East Asian ideograph */ - {"\x7E", 0, 0x938B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page212 = { - marc8_31page212_flat, 0 -}; -/* PAGE 211 */ -struct yaz_iconv_trie_flat marc8_31page211_flat[] = { - {"\x21", 0, 0x92C6}, /* East Asian ideograph */ - {"\x25", 0, 0x92F4}, /* East Asian ideograph */ - {"\x27", 0, 0x92CF}, /* East Asian ideograph */ - {"\x2A", 0, 0x92B2}, /* East Asian ideograph */ - {"\x2C", 0, 0x92E7}, /* East Asian ideograph */ - {"\x2D", 0, 0x92C7}, /* East Asian ideograph */ - {"\x2E", 0, 0x92F0}, /* East Asian ideograph */ - {"\x2F", 0, 0x92DB}, /* East Asian ideograph */ - {"\x30", 0, 0x92DC}, /* East Asian ideograph */ - {"\x31", 0, 0x92D8}, /* East Asian ideograph */ - {"\x33", 0, 0x92E9}, /* East Asian ideograph */ - {"\x35", 0, 0x92DD}, /* East Asian ideograph */ - {"\x39", 0, 0x92D1}, /* East Asian ideograph */ - {"\x3A", 0, 0x92CA}, /* East Asian ideograph */ - {"\x3C", 0, 0x92C2}, /* East Asian ideograph */ - {"\x3E", 0, 0x92CC}, /* East Asian ideograph */ - {"\x40", 0, 0x92EF}, /* East Asian ideograph */ - {"\x41", 0, 0x92E8}, /* East Asian ideograph */ - {"\x43", 0, 0x92EB}, /* East Asian ideograph */ - {"\x45", 0, 0x92F5}, /* East Asian ideograph */ - {"\x48", 0, 0x92F2}, /* East Asian ideograph */ - {"\x4C", 0, 0x9303}, /* East Asian ideograph */ - {"\x4D", 0, 0x9307}, /* East Asian ideograph */ - {"\x4E", 0, 0x931E}, /* East Asian ideograph */ - {"\x4F", 0, 0x9344}, /* East Asian ideograph */ - {"\x53", 0, 0x931D}, /* East Asian ideograph */ - {"\x54", 0, 0x92FA}, /* East Asian ideograph */ - {"\x58", 0, 0x931F}, /* East Asian ideograph */ - {"\x5A", 0, 0x9331}, /* East Asian ideograph */ - {"\x5B", 0, 0x9306}, /* East Asian ideograph */ - {"\x5D", 0, 0x92F9}, /* East Asian ideograph */ - {"\x5F", 0, 0x930F}, /* East Asian ideograph */ - {"\x62", 0, 0x9302}, /* East Asian ideograph */ - {"\x64", 0, 0x9324}, /* East Asian ideograph */ - {"\x66", 0, 0x9312}, /* East Asian ideograph */ - {"\x69", 0, 0x9338}, /* East Asian ideograph */ - {"\x6A", 0, 0x9323}, /* East Asian ideograph */ - {"\x6C", 0, 0x9321}, /* East Asian ideograph */ - {"\x71", 0, 0x9340}, /* East Asian ideograph */ - {"\x72", 0, 0x9301}, /* East Asian ideograph */ - {"\x74", 0, 0x9315}, /* East Asian ideograph */ - {"\x76", 0, 0x9329}, /* East Asian ideograph */ - {"\x78", 0, 0x932E}, /* East Asian ideograph */ - {"\x79", 0, 0x932A}, /* East Asian ideograph */ - {"\x7B", 0, 0x933F}, /* East Asian ideograph */ - {"\x7C", 0, 0x933A}, /* East Asian ideograph */ - {"\x7E", 0, 0x9335}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page211 = { - marc8_31page211_flat, 0 -}; -/* PAGE 210 */ -struct yaz_iconv_trie_flat marc8_31page210_flat[] = { - {"\x23", 0, 0x924E}, /* East Asian ideograph */ - {"\x26", 0, 0x924C}, /* East Asian ideograph */ - {"\x27", 0, 0x9256}, /* East Asian ideograph */ - {"\x2B", 0, 0x925A}, /* East Asian ideograph */ - {"\x2E", 0, 0x9241}, /* East Asian ideograph */ - {"\x2F", 0, 0x9283}, /* East Asian ideograph */ - {"\x31", 0, 0x92A5}, /* East Asian ideograph */ - {"\x33", 0, 0x9282}, /* East Asian ideograph */ - {"\x35", 0, 0x92A8}, /* East Asian ideograph */ - {"\x37", 0, 0x927C}, /* East Asian ideograph */ - {"\x38", 0, 0x92A4}, /* East Asian ideograph */ - {"\x3E", 0, 0x9276}, /* East Asian ideograph */ - {"\x3F", 0, 0x928D}, /* East Asian ideograph */ - {"\x40", 0, 0x92EE}, /* East Asian ideograph */ - {"\x42", 0, 0x9288}, /* East Asian ideograph */ - {"\x43", 0, 0x927A}, /* East Asian ideograph */ - {"\x45", 0, 0x928E}, /* East Asian ideograph */ - {"\x46", 0, 0x92A0}, /* East Asian ideograph */ - {"\x47", 0, 0x9277}, /* East Asian ideograph */ - {"\x49", 0, 0x92AA}, /* East Asian ideograph */ - {"\x50", 0, 0x92A6}, /* East Asian ideograph */ - {"\x54", 0, 0x927E}, /* East Asian ideograph */ - {"\x55", 0, 0x929A}, /* East Asian ideograph */ - {"\x58", 0, 0x92AB}, /* East Asian ideograph */ - {"\x5B", 0, 0x9291}, /* East Asian ideograph */ - {"\x5D", 0, 0x929B}, /* East Asian ideograph */ - {"\x62", 0, 0x927F}, /* East Asian ideograph */ - {"\x64", 0, 0x92A3}, /* East Asian ideograph */ - {"\x66", 0, 0x92C8}, /* East Asian ideograph */ - {"\x6A", 0, 0x92C3}, /* East Asian ideograph */ - {"\x6F", 0, 0x92D0}, /* East Asian ideograph */ - {"\x71", 0, 0x92F1}, /* East Asian ideograph */ - {"\x72", 0, 0x92DF}, /* East Asian ideograph */ - {"\x75", 0, 0x92E6}, /* East Asian ideograph */ - {"\x76", 0, 0x92B6}, /* East Asian ideograph */ - {"\x77", 0, 0x92C0}, /* East Asian ideograph */ - {"\x79", 0, 0x92BE}, /* East Asian ideograph */ - {"\x7A", 0, 0x92D9}, /* East Asian ideograph */ - {"\x7E", 0, 0x92D5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page210 = { - marc8_31page210_flat, 0 -}; -/* PAGE 209 */ -struct yaz_iconv_trie_flat marc8_31page209_flat[] = { - {"\x21", 0, 0x91F9}, /* East Asian ideograph */ - {"\x22", 0, 0x91E4}, /* East Asian ideograph */ - {"\x23", 0, 0x9204}, /* East Asian ideograph */ - {"\x25", 0, 0x9201}, /* East Asian ideograph */ - {"\x26", 0, 0x922B}, /* East Asian ideograph */ - {"\x27", 0, 0x920A}, /* East Asian ideograph */ - {"\x28", 0, 0x9225}, /* East Asian ideograph */ - {"\x2A", 0, 0x9292}, /* East Asian ideograph */ - {"\x2C", 0, 0x9228}, /* East Asian ideograph */ - {"\x2E", 0, 0x9207}, /* East Asian ideograph */ - {"\x2F", 0, 0x9203}, /* East Asian ideograph */ - {"\x31", 0, 0x9200}, /* East Asian ideograph */ - {"\x32", 0, 0x9218}, /* East Asian ideograph */ - {"\x33", 0, 0x91FE}, /* East Asian ideograph */ - {"\x36", 0, 0x9208}, /* East Asian ideograph */ - {"\x37", 0, 0x9226}, /* East Asian ideograph */ - {"\x38", 0, 0x921C}, /* East Asian ideograph */ - {"\x3B", 0, 0x9224}, /* East Asian ideograph */ - {"\x43", 0, 0x9212}, /* East Asian ideograph */ - {"\x48", 0, 0x91FF}, /* East Asian ideograph */ - {"\x4A", 0, 0x9216}, /* East Asian ideograph */ - {"\x4B", 0, 0x9211}, /* East Asian ideograph */ - {"\x4E", 0, 0x9206}, /* East Asian ideograph */ - {"\x4F", 0, 0x92A2}, /* East Asian ideograph */ - {"\x51", 0, 0x9230}, /* East Asian ideograph */ - {"\x52", 0, 0x9249}, /* East Asian ideograph */ - {"\x54", 0, 0x924D}, /* East Asian ideograph */ - {"\x55", 0, 0x9248}, /* East Asian ideograph */ - {"\x58", 0, 0x923A}, /* East Asian ideograph */ - {"\x5C", 0, 0x922E}, /* East Asian ideograph */ - {"\x5F", 0, 0x9233}, /* East Asian ideograph */ - {"\x61", 0, 0x9266}, /* East Asian ideograph */ - {"\x64", 0, 0x925E}, /* East Asian ideograph */ - {"\x68", 0, 0x9235}, /* East Asian ideograph */ - {"\x6B", 0, 0x9250}, /* East Asian ideograph */ - {"\x6C", 0, 0x926B}, /* East Asian ideograph */ - {"\x6D", 0, 0x9239}, /* East Asian ideograph */ - {"\x6F", 0, 0x926D}, /* East Asian ideograph */ - {"\x70", 0, 0x926C}, /* East Asian ideograph */ - {"\x71", 0, 0x924F}, /* East Asian ideograph */ - {"\x74", 0, 0x923F}, /* East Asian ideograph */ - {"\x77", 0, 0x9260}, /* East Asian ideograph */ - {"\x7E", 0, 0x9236}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page209 = { - marc8_31page209_flat, 0 -}; -/* PAGE 208 */ -struct yaz_iconv_trie_flat marc8_31page208_flat[] = { - {"\x24", 0, 0x918D}, /* East Asian ideograph */ - {"\x25", 0, 0x9193}, /* East Asian ideograph */ - {"\x2B", 0, 0x919D}, /* East Asian ideograph */ - {"\x2C", 0, 0x919A}, /* East Asian ideograph */ - {"\x30", 0, 0x91A2}, /* East Asian ideograph */ - {"\x34", 0, 0x919B}, /* East Asian ideograph (variant of EACC 4D4134) */ - {"\x37", 0, 0x91A8}, /* East Asian ideograph */ - {"\x3D", 0, 0x91AA}, /* East Asian ideograph */ - {"\x41", 0, 0x91AF}, /* East Asian ideograph */ - {"\x42", 0, 0x91B1}, /* East Asian ideograph */ - {"\x47", 0, 0x91AD}, /* East Asian ideograph */ - {"\x48", 0, 0x91AE}, /* East Asian ideograph */ - {"\x4B", 0, 0x91B4}, /* East Asian ideograph */ - {"\x4C", 0, 0x91B2}, /* East Asian ideograph */ - {"\x4D", 0, 0x91B5}, /* East Asian ideograph */ - {"\x56", 0, 0x91BF}, /* East Asian ideograph */ - {"\x57", 0, 0x91BD}, /* East Asian ideograph */ - {"\x5A", 0, 0x91C2}, /* East Asian ideograph */ - {"\x5B", 0, 0x91C4}, /* East Asian ideograph */ - {"\x5C", 0, 0x91C3}, /* East Asian ideograph */ - {"\x61", 0, 0x91D4}, /* East Asian ideograph */ - {"\x62", 0, 0x91D3}, /* East Asian ideograph */ - {"\x63", 0, 0x91D5}, /* East Asian ideograph */ - {"\x64", 0, 0x91D9}, /* East Asian ideograph */ - {"\x68", 0, 0x91E2}, /* East Asian ideograph */ - {"\x69", 0, 0x91ED}, /* East Asian ideograph */ - {"\x6A", 0, 0x91F7}, /* East Asian ideograph */ - {"\x6B", 0, 0x91FA}, /* East Asian ideograph */ - {"\x6F", 0, 0x91F2}, /* East Asian ideograph */ - {"\x71", 0, 0x91E8}, /* East Asian ideograph */ - {"\x72", 0, 0x91F6}, /* East Asian ideograph */ - {"\x73", 0, 0x91EE}, /* East Asian ideograph */ - {"\x74", 0, 0x91F4}, /* East Asian ideograph */ - {"\x77", 0, 0x91F1}, /* East Asian ideograph */ - {"\x79", 0, 0x91E9}, /* East Asian ideograph */ - {"\x7A", 0, 0x91F8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page208 = { - marc8_31page208_flat, 0 -}; -/* PAGE 207 */ -struct yaz_iconv_trie_flat marc8_31page207_flat[] = { - {"\x21", 0, 0x9132}, /* East Asian ideograph */ - {"\x24", 0, 0x9126}, /* East Asian ideograph */ - {"\x2B", 0, 0x9134}, /* East Asian ideograph */ - {"\x2C", 0, 0x9136}, /* East Asian ideograph */ - {"\x31", 0, 0x913A}, /* East Asian ideograph */ - {"\x32", 0, 0x913B}, /* East Asian ideograph */ - {"\x3B", 0, 0x9143}, /* East Asian ideograph */ - {"\x3E", 0, 0x9146}, /* East Asian ideograph */ - {"\x3F", 0, 0x9145}, /* East Asian ideograph */ - {"\x40", 0, 0x9148}, /* East Asian ideograph */ - {"\x41", 0, 0x9147}, /* East Asian ideograph */ - {"\x42", 0, 0x9150}, /* East Asian ideograph */ - {"\x43", 0, 0x914E}, /* East Asian ideograph */ - {"\x48", 0, 0x9159}, /* East Asian ideograph */ - {"\x49", 0, 0x915C}, /* East Asian ideograph */ - {"\x4D", 0, 0x9156}, /* East Asian ideograph */ - {"\x50", 0, 0x9158}, /* East Asian ideograph */ - {"\x52", 0, 0x915A}, /* East Asian ideograph */ - {"\x53", 0, 0x9161}, /* East Asian ideograph */ - {"\x56", 0, 0x9164}, /* East Asian ideograph */ - {"\x61", 0, 0x916F}, /* East Asian ideograph */ - {"\x62", 0, 0x916E}, /* East Asian ideograph */ - {"\x66", 0, 0x917A}, /* East Asian ideograph */ - {"\x68", 0, 0x9172}, /* East Asian ideograph */ - {"\x69", 0, 0x9179}, /* East Asian ideograph */ - {"\x6A", 0, 0x9176}, /* East Asian ideograph */ - {"\x6B", 0, 0x9174}, /* East Asian ideograph */ - {"\x6C", 0, 0x9173}, /* East Asian ideograph */ - {"\x6D", 0, 0x9185}, /* East Asian ideograph */ - {"\x6F", 0, 0x9182}, /* East Asian ideograph */ - {"\x70", 0, 0x918A}, /* East Asian ideograph */ - {"\x71", 0, 0x9186}, /* East Asian ideograph */ - {"\x72", 0, 0x918C}, /* East Asian ideograph */ - {"\x73", 0, 0x9181}, /* East Asian ideograph */ - {"\x7B", 0, 0x9191}, /* East Asian ideograph */ - {"\x7D", 0, 0x9190}, /* East Asian ideograph */ - {"\x7E", 0, 0x918E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page207 = { - marc8_31page207_flat, 0 -}; -/* PAGE 206 */ -struct yaz_iconv_trie_flat marc8_31page206_flat[] = { - {"\x22", 0, 0x90DD}, /* East Asian ideograph */ - {"\x23", 0, 0x90DF}, /* East Asian ideograph */ - {"\x26", 0, 0x90E2}, /* East Asian ideograph */ - {"\x27", 0, 0x90D8}, /* East Asian ideograph */ - {"\x28", 0, 0x90DB}, /* East Asian ideograph */ - {"\x2A", 0, 0x90DC}, /* East Asian ideograph */ - {"\x2C", 0, 0x90D7}, /* East Asian ideograph */ - {"\x2D", 0, 0x90E4}, /* East Asian ideograph */ - {"\x2E", 0, 0x90EF}, /* East Asian ideograph */ - {"\x2F", 0, 0x90EA}, /* East Asian ideograph */ - {"\x32", 0, 0x90F0}, /* East Asian ideograph */ - {"\x33", 0, 0x90F4}, /* East Asian ideograph */ - {"\x34", 0, 0x90F2}, /* East Asian ideograph */ - {"\x3E", 0, 0x90EB}, /* East Asian ideograph */ - {"\x3F", 0, 0x90F3}, /* East Asian ideograph */ - {"\x46", 0, 0x90FC}, /* East Asian ideograph */ - {"\x47", 0, 0x90FE}, /* East Asian ideograph */ - {"\x49", 0, 0x9104}, /* East Asian ideograph */ - {"\x4A", 0, 0x90FF}, /* East Asian ideograph */ - {"\x4C", 0, 0x9106}, /* East Asian ideograph */ - {"\x4E", 0, 0x9100}, /* East Asian ideograph */ - {"\x50", 0, 0x9107}, /* East Asian ideograph */ - {"\x57", 0, 0x910F}, /* East Asian ideograph */ - {"\x58", 0, 0x9111}, /* East Asian ideograph */ - {"\x5A", 0, 0x9116}, /* East Asian ideograph */ - {"\x5C", 0, 0x9114}, /* East Asian ideograph */ - {"\x60", 0, 0x910B}, /* East Asian ideograph */ - {"\x62", 0, 0x9123}, /* East Asian ideograph (Version J extension) */ - {"\x63", 0, 0x9118}, /* East Asian ideograph */ - {"\x64", 0, 0x911C}, /* East Asian ideograph */ - {"\x66", 0, 0x9120}, /* East Asian ideograph */ - {"\x67", 0, 0x9122}, /* East Asian ideograph */ - {"\x6A", 0, 0x911E}, /* East Asian ideograph */ - {"\x71", 0, 0x9124}, /* East Asian ideograph */ - {"\x72", 0, 0x911A}, /* East Asian ideograph */ - {"\x74", 0, 0x9125}, /* East Asian ideograph */ - {"\x77", 0, 0x912F}, /* East Asian ideograph */ - {"\x79", 0, 0x912B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page206 = { - marc8_31page206_flat, 0 -}; -/* PAGE 205 */ -struct yaz_iconv_trie_flat marc8_31page205_flat[] = { - {"\x21", 0, 0x9070}, /* East Asian ideograph */ - {"\x25", 0, 0x906F}, /* East Asian ideograph */ - {"\x26", 0, 0x9079}, /* East Asian ideograph */ - {"\x28", 0, 0x9076}, /* East Asian ideograph */ - {"\x2A", 0, 0x907B}, /* East Asian ideograph */ - {"\x2C", 0, 0x9085}, /* East Asian ideograph */ - {"\x34", 0, 0x9083}, /* East Asian ideograph */ - {"\x37", 0, 0x9088}, /* East Asian ideograph */ - {"\x3A", 0, 0x908B}, /* East Asian ideograph */ - {"\x3F", 0, 0x9099}, /* East Asian ideograph */ - {"\x40", 0, 0x9097}, /* East Asian ideograph */ - {"\x43", 0, 0x909B}, /* East Asian ideograph */ - {"\x44", 0, 0x909C}, /* East Asian ideograph */ - {"\x48", 0, 0x90A1}, /* East Asian ideograph */ - {"\x51", 0, 0x90A8}, /* East Asian ideograph */ - {"\x54", 0, 0x90A0}, /* East Asian ideograph */ - {"\x58", 0, 0x90AF}, /* East Asian ideograph */ - {"\x59", 0, 0x90B3}, /* East Asian ideograph */ - {"\x5B", 0, 0x90B6}, /* East Asian ideograph */ - {"\x5D", 0, 0x90B0}, /* East Asian ideograph */ - {"\x5F", 0, 0x90AD}, /* East Asian ideograph */ - {"\x61", 0, 0x90B2}, /* East Asian ideograph */ - {"\x68", 0, 0x90C9}, /* East Asian ideograph */ - {"\x6A", 0, 0x90BD}, /* East Asian ideograph */ - {"\x6F", 0, 0x90D5}, /* East Asian ideograph */ - {"\x72", 0, 0x90BE}, /* East Asian ideograph */ - {"\x75", 0, 0x90C7}, /* East Asian ideograph */ - {"\x78", 0, 0x90C8}, /* East Asian ideograph */ - {"\x79", 0, 0x90C3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page205 = { - marc8_31page205_flat, 0 -}; -/* PAGE 204 */ -struct yaz_iconv_trie_flat marc8_31page204_flat[] = { - {"\x21", 0, 0x8FDA}, /* East Asian ideograph */ - {"\x22", 0, 0x8FD5}, /* East Asian ideograph */ - {"\x2F", 0, 0x8FE4}, /* East Asian ideograph */ - {"\x30", 0, 0x8FEE}, /* East Asian ideograph */ - {"\x35", 0, 0x8FF9}, /* East Asian ideograph */ - {"\x3C", 0, 0x8FFB}, /* East Asian ideograph */ - {"\x3F", 0, 0x9004}, /* East Asian ideograph */ - {"\x40", 0, 0x9008}, /* East Asian ideograph */ - {"\x44", 0, 0x9011}, /* East Asian ideograph */ - {"\x45", 0, 0x900B}, /* East Asian ideograph */ - {"\x48", 0, 0x900C}, /* East Asian ideograph */ - {"\x49", 0, 0x9021}, /* East Asian ideograph */ - {"\x4A", 0, 0x902D}, /* East Asian ideograph */ - {"\x4E", 0, 0x902C}, /* East Asian ideograph */ - {"\x56", 0, 0x9037}, /* East Asian ideograph */ - {"\x57", 0, 0x9034}, /* East Asian ideograph */ - {"\x58", 0, 0x902F}, /* East Asian ideograph */ - {"\x59", 0, 0x9036}, /* East Asian ideograph */ - {"\x5B", 0, 0x9046}, /* East Asian ideograph */ - {"\x5D", 0, 0x9052}, /* East Asian ideograph */ - {"\x67", 0, 0x9049}, /* East Asian ideograph */ - {"\x6A", 0, 0x9044}, /* East Asian ideograph */ - {"\x74", 0, 0x9062}, /* East Asian ideograph */ - {"\x75", 0, 0x905D}, /* East Asian ideograph */ - {"\x78", 0, 0x905B}, /* East Asian ideograph */ - {"\x7B", 0, 0x906B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page204 = { - marc8_31page204_flat, 0 -}; -/* PAGE 203 */ -struct yaz_iconv_trie_flat marc8_31page203_flat[] = { - {"\x26", 0, 0x8F39}, /* East Asian ideograph */ - {"\x27", 0, 0x8F34}, /* East Asian ideograph */ - {"\x2D", 0, 0x8F40}, /* East Asian ideograph */ - {"\x30", 0, 0x8F46}, /* East Asian ideograph */ - {"\x31", 0, 0x8F4A}, /* East Asian ideograph */ - {"\x33", 0, 0x8F47}, /* East Asian ideograph */ - {"\x3D", 0, 0x8F52}, /* East Asian ideograph */ - {"\x48", 0, 0x8F56}, /* East Asian ideograph */ - {"\x49", 0, 0x8F57}, /* East Asian ideograph */ - {"\x4B", 0, 0x8F55}, /* East Asian ideograph */ - {"\x4C", 0, 0x8F58}, /* East Asian ideograph */ - {"\x4D", 0, 0x8F5C}, /* East Asian ideograph */ - {"\x4E", 0, 0x8F5E}, /* East Asian ideograph */ - {"\x53", 0, 0x8F5D}, /* East Asian ideograph */ - {"\x57", 0, 0x8F62}, /* East Asian ideograph */ - {"\x59", 0, 0x8F63}, /* East Asian ideograph */ - {"\x5A", 0, 0x8F64}, /* East Asian ideograph */ - {"\x65", 0, 0x8FA4}, /* East Asian ideograph */ - {"\x66", 0, 0x8FA5}, /* East Asian ideograph */ - {"\x6C", 0, 0x8FB5}, /* East Asian ideograph */ - {"\x6D", 0, 0x8FB7}, /* East Asian ideograph */ - {"\x6E", 0, 0x8FBB}, /* East Asian ideograph */ - {"\x70", 0, 0x8FBC}, /* East Asian ideograph */ - {"\x74", 0, 0x8FBF}, /* East Asian ideograph */ - {"\x75", 0, 0x8FD2}, /* East Asian ideograph */ - {"\x77", 0, 0x8FCB}, /* East Asian ideograph */ - {"\x7A", 0, 0x8FCA}, /* East Asian ideograph */ - {"\x7B", 0, 0x8FD3}, /* East Asian ideograph */ - {"\x7D", 0, 0x8FCD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page203 = { - marc8_31page203_flat, 0 -}; -/* PAGE 202 */ -struct yaz_iconv_trie_flat marc8_31page202_flat[] = { - {"\x2E", 0, 0x8EC9}, /* East Asian ideograph */ - {"\x2F", 0, 0x8ECF}, /* East Asian ideograph */ - {"\x31", 0, 0x8ECE}, /* East Asian ideograph */ - {"\x33", 0, 0x8ED5}, /* East Asian ideograph */ - {"\x3F", 0, 0x8EFA}, /* East Asian ideograph */ - {"\x42", 0, 0x8EF9}, /* East Asian ideograph */ - {"\x4B", 0, 0x8EE8}, /* East Asian ideograph */ - {"\x4F", 0, 0x8EEB}, /* East Asian ideograph */ - {"\x51", 0, 0x8EFF}, /* East Asian ideograph */ - {"\x56", 0, 0x8F00}, /* East Asian ideograph */ - {"\x59", 0, 0x8F05}, /* East Asian ideograph */ - {"\x5A", 0, 0x8F08}, /* East Asian ideograph */ - {"\x5B", 0, 0x8F07}, /* East Asian ideograph */ - {"\x63", 0, 0x8F27}, /* East Asian ideograph */ - {"\x64", 0, 0x8F2C}, /* East Asian ideograph */ - {"\x6B", 0, 0x8F1E}, /* East Asian ideograph */ - {"\x6D", 0, 0x8F25}, /* East Asian ideograph */ - {"\x6E", 0, 0x8F20}, /* East Asian ideograph */ - {"\x75", 0, 0x8F17}, /* East Asian ideograph */ - {"\x78", 0, 0x8F36}, /* East Asian ideograph */ - {"\x79", 0, 0x8F2E}, /* East Asian ideograph */ - {"\x7A", 0, 0x8F33}, /* East Asian ideograph */ - {"\x7D", 0, 0x8F2D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page202 = { - marc8_31page202_flat, 0 -}; -/* PAGE 201 */ -struct yaz_iconv_trie_flat marc8_31page201_flat[] = { - {"\x21", 0, 0x8E30}, /* East Asian ideograph */ - {"\x24", 0, 0x8E47}, /* East Asian ideograph */ - {"\x26", 0, 0x8E46}, /* East Asian ideograph */ - {"\x2E", 0, 0x8E4C}, /* East Asian ideograph */ - {"\x30", 0, 0x8E50}, /* East Asian ideograph */ - {"\x32", 0, 0x8E4F}, /* East Asian ideograph */ - {"\x34", 0, 0x8E5C}, /* East Asian ideograph */ - {"\x35", 0, 0x8E62}, /* East Asian ideograph */ - {"\x36", 0, 0x8E60}, /* East Asian ideograph */ - {"\x3A", 0, 0x8E54}, /* East Asian ideograph */ - {"\x3B", 0, 0x8E67}, /* East Asian ideograph */ - {"\x3E", 0, 0x8E5A}, /* East Asian ideograph */ - {"\x3F", 0, 0x8E5E}, /* East Asian ideograph */ - {"\x40", 0, 0x8E55}, /* East Asian ideograph */ - {"\x41", 0, 0x8E61}, /* East Asian ideograph */ - {"\x43", 0, 0x8E5D}, /* East Asian ideograph */ - {"\x44", 0, 0x8E75}, /* East Asian ideograph */ - {"\x45", 0, 0x8E74}, /* East Asian ideograph */ - {"\x46", 0, 0x8E95}, /* East Asian ideograph */ - {"\x48", 0, 0x8E6D}, /* East Asian ideograph */ - {"\x4B", 0, 0x8E69}, /* East Asian ideograph */ - {"\x52", 0, 0x8E83}, /* East Asian ideograph */ - {"\x53", 0, 0x8E84}, /* East Asian ideograph */ - {"\x57", 0, 0x8E8B}, /* East Asian ideograph */ - {"\x5D", 0, 0x8E94}, /* East Asian ideograph */ - {"\x5E", 0, 0x8E9A}, /* East Asian ideograph */ - {"\x5F", 0, 0x8E92}, /* East Asian ideograph */ - {"\x60", 0, 0x8E93}, /* East Asian ideograph */ - {"\x62", 0, 0x8E90}, /* East Asian ideograph */ - {"\x63", 0, 0x8E98}, /* East Asian ideograph */ - {"\x64", 0, 0x8E9E}, /* East Asian ideograph */ - {"\x6B", 0, 0x8EA5}, /* East Asian ideograph */ - {"\x6F", 0, 0x8EA7}, /* East Asian ideograph */ - {"\x71", 0, 0x8EA9}, /* East Asian ideograph */ - {"\x72", 0, 0x8E99}, /* East Asian ideograph */ - {"\x78", 0, 0x8EB3}, /* East Asian ideograph */ - {"\x7A", 0, 0x8EBC}, /* East Asian ideograph */ - {"\x7D", 0, 0x8EB6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page201 = { - marc8_31page201_flat, 0 -}; -/* PAGE 200 */ -struct yaz_iconv_trie_flat marc8_31page200_flat[] = { - {"\x21", 0, 0x8DCF}, /* East Asian ideograph */ - {"\x22", 0, 0x8DD6}, /* East Asian ideograph */ - {"\x27", 0, 0x8DD0}, /* East Asian ideograph */ - {"\x2B", 0, 0x8DC5}, /* East Asian ideograph */ - {"\x2F", 0, 0x8DE4}, /* East Asian ideograph */ - {"\x34", 0, 0x8DEC}, /* East Asian ideograph */ - {"\x35", 0, 0x8DEB}, /* East Asian ideograph */ - {"\x36", 0, 0x8DF4}, /* East Asian ideograph */ - {"\x38", 0, 0x8DE9}, /* East Asian ideograph */ - {"\x3A", 0, 0x8DE6}, /* East Asian ideograph */ - {"\x3B", 0, 0x8DE3}, /* East Asian ideograph */ - {"\x3D", 0, 0x8DE7}, /* East Asian ideograph */ - {"\x3E", 0, 0x8DF2}, /* East Asian ideograph */ - {"\x3F", 0, 0x8E09}, /* East Asian ideograph */ - {"\x41", 0, 0x8DFD}, /* East Asian ideograph */ - {"\x44", 0, 0x8DFF}, /* East Asian ideograph */ - {"\x46", 0, 0x8E05}, /* East Asian ideograph */ - {"\x49", 0, 0x8E01}, /* East Asian ideograph */ - {"\x4E", 0, 0x8E04}, /* East Asian ideograph */ - {"\x50", 0, 0x8E06}, /* East Asian ideograph */ - {"\x52", 0, 0x8E2A}, /* East Asian ideograph */ - {"\x54", 0, 0x8E23}, /* East Asian ideograph */ - {"\x57", 0, 0x8E2E}, /* East Asian ideograph */ - {"\x58", 0, 0x8E21}, /* East Asian ideograph */ - {"\x5C", 0, 0x8E1E}, /* East Asian ideograph */ - {"\x64", 0, 0x8E16}, /* East Asian ideograph */ - {"\x66", 0, 0x8E26}, /* East Asian ideograph */ - {"\x67", 0, 0x8E27}, /* East Asian ideograph */ - {"\x68", 0, 0x8E14}, /* East Asian ideograph */ - {"\x69", 0, 0x8E18}, /* East Asian ideograph */ - {"\x6F", 0, 0x8E41}, /* East Asian ideograph */ - {"\x77", 0, 0x8E40}, /* East Asian ideograph */ - {"\x79", 0, 0x8E36}, /* East Asian ideograph */ - {"\x7E", 0, 0x8E3D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page200 = { - marc8_31page200_flat, 0 -}; -/* PAGE 199 */ -struct yaz_iconv_trie_flat marc8_31page199_flat[] = { - {"\x22", 0, 0x8D96}, /* East Asian ideograph */ - {"\x2F", 0, 0x8DA1}, /* East Asian ideograph */ - {"\x33", 0, 0x8DA6}, /* East Asian ideograph */ - {"\x52", 0, 0x8DAB}, /* East Asian ideograph */ - {"\x59", 0, 0x8DAF}, /* East Asian ideograph */ - {"\x5A", 0, 0x8DB0}, /* East Asian ideograph */ - {"\x66", 0, 0x8DB2}, /* East Asian ideograph */ - {"\x6E", 0, 0x8DBC}, /* East Asian ideograph */ - {"\x6F", 0, 0x8DBA}, /* East Asian ideograph */ - {"\x70", 0, 0x8DB9}, /* East Asian ideograph */ - {"\x71", 0, 0x8DC2}, /* East Asian ideograph */ - {"\x72", 0, 0x8DC1}, /* East Asian ideograph */ - {"\x73", 0, 0x8DBF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page199 = { - marc8_31page199_flat, 0 -}; -/* PAGE 198 */ -struct yaz_iconv_trie_flat marc8_31page198_flat[] = { - {"\x21", 0, 0x8CF7}, /* East Asian ideograph */ - {"\x25", 0, 0x8D04}, /* East Asian ideograph */ - {"\x26", 0, 0x8CFE}, /* East Asian ideograph */ - {"\x2B", 0, 0x8D07}, /* East Asian ideograph */ - {"\x2D", 0, 0x8D09}, /* East Asian ideograph */ - {"\x32", 0, 0x8D0C}, /* East Asian ideograph */ - {"\x39", 0, 0x8D11}, /* East Asian ideograph */ - {"\x3A", 0, 0x8D10}, /* East Asian ideograph */ - {"\x3B", 0, 0x8D12}, /* East Asian ideograph */ - {"\x3D", 0, 0x8D14}, /* East Asian ideograph */ - {"\x3E", 0, 0x8D18}, /* East Asian ideograph */ - {"\x48", 0, 0x8D6C}, /* East Asian ideograph */ - {"\x52", 0, 0x8D78}, /* East Asian ideograph */ - {"\x5C", 0, 0x8D7A}, /* East Asian ideograph */ - {"\x61", 0, 0x8D84}, /* East Asian ideograph */ - {"\x71", 0, 0x8D94}, /* East Asian ideograph */ - {"\x75", 0, 0x8D8D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page198 = { - marc8_31page198_flat, 0 -}; -/* PAGE 197 */ -struct yaz_iconv_trie_flat marc8_31page197_flat[] = { - {"\x2A", 0, 0x8C86}, /* East Asian ideograph */ - {"\x2D", 0, 0x8C85}, /* East Asian ideograph */ - {"\x2E", 0, 0x8C88}, /* East Asian ideograph */ - {"\x39", 0, 0x8C94}, /* East Asian ideograph */ - {"\x41", 0, 0x8C9B}, /* East Asian ideograph */ - {"\x43", 0, 0x8C9F}, /* East Asian ideograph */ - {"\x44", 0, 0x8CA4}, /* East Asian ideograph */ - {"\x4E", 0, 0x8CB0}, /* East Asian ideograph */ - {"\x51", 0, 0x8CBA}, /* East Asian ideograph */ - {"\x52", 0, 0x8CB5}, /* East Asian ideograph */ - {"\x53", 0, 0x8CB9}, /* East Asian ideograph */ - {"\x57", 0, 0x8CCD}, /* East Asian ideograph */ - {"\x5E", 0, 0x8CD8}, /* East Asian ideograph */ - {"\x5F", 0, 0x8CD5}, /* East Asian ideograph */ - {"\x67", 0, 0x8CE8}, /* East Asian ideograph */ - {"\x68", 0, 0x8CE9}, /* East Asian ideograph */ - {"\x6A", 0, 0x8CE1}, /* East Asian ideograph */ - {"\x6F", 0, 0x8CEB}, /* East Asian ideograph */ - {"\x70", 0, 0x8CDA}, /* East Asian ideograph */ - {"\x72", 0, 0x8CDD}, /* East Asian ideograph */ - {"\x74", 0, 0x8CD9}, /* East Asian ideograph */ - {"\x76", 0, 0x8CEE}, /* East Asian ideograph */ - {"\x7B", 0, 0x8CF1}, /* East Asian ideograph */ - {"\x7C", 0, 0x8CF5}, /* East Asian ideograph */ - {"\x7E", 0, 0x8CFB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page197 = { - marc8_31page197_flat, 0 -}; -/* PAGE 196 */ -struct yaz_iconv_trie_flat marc8_31page196_flat[] = { - {"\x23", 0, 0x8B8B}, /* East Asian ideograph */ - {"\x26", 0, 0x8B87}, /* East Asian ideograph */ - {"\x2D", 0, 0x8B95}, /* East Asian ideograph */ - {"\x2E", 0, 0x8B94}, /* East Asian ideograph */ - {"\x37", 0, 0x8B9C}, /* East Asian ideograph */ - {"\x3A", 0, 0x8B9F}, /* East Asian ideograph */ - {"\x3D", 0, 0x8C3A}, /* East Asian ideograph */ - {"\x44", 0, 0x8C40}, /* East Asian ideograph */ - {"\x45", 0, 0x8C42}, /* East Asian ideograph */ - {"\x4B", 0, 0x8C47}, /* East Asian ideograph */ - {"\x4D", 0, 0x8C4B}, /* East Asian ideograph */ - {"\x50", 0, 0x8C4F}, /* East Asian ideograph */ - {"\x52", 0, 0x8C55}, /* East Asian ideograph */ - {"\x54", 0, 0x8C57}, /* East Asian ideograph */ - {"\x55", 0, 0x8C5C}, /* East Asian ideograph */ - {"\x56", 0, 0x8C5D}, /* East Asian ideograph */ - {"\x5C", 0, 0x86C3}, /* East Asian ideograph */ - {"\x63", 0, 0x8C68}, /* East Asian ideograph */ - {"\x65", 0, 0x8C6D}, /* East Asian ideograph */ - {"\x6D", 0, 0x8C73}, /* East Asian ideograph */ - {"\x6F", 0, 0x8C74}, /* East Asian ideograph */ - {"\x71", 0, 0x8C75}, /* East Asian ideograph */ - {"\x73", 0, 0x8C77}, /* East Asian ideograph */ - {"\x74", 0, 0x8C76}, /* East Asian ideograph */ - {"\x7B", 0, 0x8C78}, /* East Asian ideograph */ - {"\x7D", 0, 0x8C7B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page196 = { - marc8_31page196_flat, 0 -}; -/* PAGE 195 */ -struct yaz_iconv_trie_flat marc8_31page195_flat[] = { - {"\x22", 0, 0x8B2B}, /* East Asian ideograph */ - {"\x2A", 0, 0x8B37}, /* East Asian ideograph */ - {"\x2D", 0, 0x8B26}, /* East Asian ideograph */ - {"\x30", 0, 0x8B33}, /* East Asian ideograph */ - {"\x38", 0, 0x8B3E}, /* East Asian ideograph */ - {"\x3A", 0, 0x8B29}, /* East Asian ideograph */ - {"\x42", 0, 0x8B48}, /* East Asian ideograph */ - {"\x44", 0, 0x8B54}, /* East Asian ideograph */ - {"\x48", 0, 0x8B53}, /* East Asian ideograph */ - {"\x49", 0, 0x8B4A}, /* East Asian ideograph */ - {"\x4A", 0, 0x8B46}, /* East Asian ideograph */ - {"\x4D", 0, 0x8B56}, /* East Asian ideograph */ - {"\x4F", 0, 0x8B3F}, /* East Asian ideograph */ - {"\x59", 0, 0x8B59}, /* East Asian ideograph */ - {"\x5F", 0, 0x8B4D}, /* East Asian ideograph */ - {"\x68", 0, 0x8B6B}, /* East Asian ideograph */ - {"\x6B", 0, 0x8B6D}, /* East Asian ideograph */ - {"\x70", 0, 0x8B78}, /* East Asian ideograph */ - {"\x73", 0, 0x8B45}, /* East Asian ideograph */ - {"\x78", 0, 0x8B85}, /* East Asian ideograph */ - {"\x79", 0, 0x8B81}, /* East Asian ideograph */ - {"\x7B", 0, 0x8B7E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page195 = { - marc8_31page195_flat, 0 -}; -/* PAGE 194 */ -struct yaz_iconv_trie_flat marc8_31page194_flat[] = { - {"\x21", 0, 0x8ABE}, /* East Asian ideograph */ - {"\x25", 0, 0x8ACF}, /* East Asian ideograph */ - {"\x27", 0, 0x8AC6}, /* East Asian ideograph */ - {"\x2C", 0, 0x8AD1}, /* East Asian ideograph */ - {"\x2D", 0, 0x8AD3}, /* East Asian ideograph */ - {"\x31", 0, 0x8AAF}, /* East Asian ideograph */ - {"\x33", 0, 0x8AD4}, /* East Asian ideograph */ - {"\x36", 0, 0x8ACD}, /* East Asian ideograph */ - {"\x38", 0, 0x8AB9}, /* East Asian ideograph */ - {"\x3B", 0, 0x8ADB}, /* East Asian ideograph */ - {"\x3F", 0, 0x8AD0}, /* East Asian ideograph */ - {"\x40", 0, 0x8AD7}, /* East Asian ideograph */ - {"\x44", 0, 0x8AF3}, /* East Asian ideograph */ - {"\x45", 0, 0x8AE2}, /* East Asian ideograph */ - {"\x49", 0, 0x8B4C}, /* East Asian ideograph */ - {"\x4C", 0, 0x8ADD}, /* East Asian ideograph */ - {"\x4E", 0, 0x8AF6}, /* East Asian ideograph */ - {"\x4F", 0, 0x8AF4}, /* East Asian ideograph */ - {"\x50", 0, 0x8AF5}, /* East Asian ideograph */ - {"\x53", 0, 0x8ADF}, /* East Asian ideograph */ - {"\x56", 0, 0x8B03}, /* East Asian ideograph */ - {"\x57", 0, 0x8AE4}, /* East Asian ideograph */ - {"\x59", 0, 0x8B14}, /* East Asian ideograph */ - {"\x5D", 0, 0x8AFC}, /* East Asian ideograph */ - {"\x62", 0, 0x8ADE}, /* East Asian ideograph */ - {"\x63", 0, 0x8AE1}, /* East Asian ideograph */ - {"\x64", 0, 0x8B07}, /* East Asian ideograph */ - {"\x6B", 0, 0x8B0C}, /* East Asian ideograph */ - {"\x6F", 0, 0x8B1C}, /* East Asian ideograph */ - {"\x73", 0, 0x8B16}, /* East Asian ideograph */ - {"\x76", 0, 0x8B1F}, /* East Asian ideograph */ - {"\x78", 0, 0x8B0B}, /* East Asian ideograph */ - {"\x79", 0, 0x8B06}, /* East Asian ideograph */ - {"\x7A", 0, 0x8B05}, /* East Asian ideograph */ - {"\x7C", 0, 0x8B0F}, /* East Asian ideograph */ - {"\x7D", 0, 0x8B10}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page194 = { - marc8_31page194_flat, 0 -}; -/* PAGE 193 */ -struct yaz_iconv_trie_flat marc8_31page193_flat[] = { - {"\x25", 0, 0x8A22}, /* East Asian ideograph */ - {"\x27", 0, 0x8A51}, /* East Asian ideograph */ - {"\x28", 0, 0x8A4A}, /* East Asian ideograph */ - {"\x2A", 0, 0x8A4E}, /* East Asian ideograph */ - {"\x30", 0, 0x8A56}, /* East Asian ideograph */ - {"\x37", 0, 0x8A57}, /* East Asian ideograph */ - {"\x39", 0, 0x8A48}, /* East Asian ideograph */ - {"\x3B", 0, 0x8A58}, /* East Asian ideograph */ - {"\x3C", 0, 0x8A52}, /* East Asian ideograph */ - {"\x40", 0, 0x8A3D}, /* East Asian ideograph */ - {"\x42", 0, 0x8A45}, /* East Asian ideograph */ - {"\x4F", 0, 0x8A7F}, /* East Asian ideograph */ - {"\x50", 0, 0x8A86}, /* East Asian ideograph */ - {"\x56", 0, 0x8A61}, /* East Asian ideograph */ - {"\x58", 0, 0x8A3E}, /* East Asian ideograph */ - {"\x59", 0, 0x8A82}, /* East Asian ideograph */ - {"\x5D", 0, 0x8A84}, /* East Asian ideograph */ - {"\x5E", 0, 0x8A75}, /* East Asian ideograph */ - {"\x69", 0, 0x8A8F}, /* East Asian ideograph */ - {"\x6F", 0, 0x8A96}, /* East Asian ideograph */ - {"\x71", 0, 0x8A9A}, /* East Asian ideograph */ - {"\x7E", 0, 0x8AB6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page193 = { - marc8_31page193_flat, 0 -}; -/* PAGE 192 */ -struct yaz_iconv_trie_flat marc8_31page192_flat[] = { - {"\x2A", 0, 0x89B8}, /* East Asian ideograph */ - {"\x2B", 0, 0x89B7}, /* East Asian ideograph */ - {"\x2C", 0, 0x89B6}, /* East Asian ideograph */ - {"\x2F", 0, 0x89BC}, /* East Asian ideograph */ - {"\x32", 0, 0x89BF}, /* East Asian ideograph */ - {"\x3A", 0, 0x89D6}, /* East Asian ideograph */ - {"\x3B", 0, 0x89D5}, /* East Asian ideograph */ - {"\x3F", 0, 0x89DA}, /* East Asian ideograph */ - {"\x43", 0, 0x89E5}, /* East Asian ideograph */ - {"\x45", 0, 0x89DC}, /* East Asian ideograph */ - {"\x47", 0, 0x89E1}, /* East Asian ideograph */ - {"\x4C", 0, 0x89E9}, /* East Asian ideograph */ - {"\x4D", 0, 0x89EB}, /* East Asian ideograph */ - {"\x53", 0, 0x89ED}, /* East Asian ideograph */ - {"\x58", 0, 0x89F1}, /* East Asian ideograph */ - {"\x5C", 0, 0x89F3}, /* East Asian ideograph */ - {"\x5E", 0, 0x89F5}, /* East Asian ideograph */ - {"\x60", 0, 0x89F6}, /* East Asian ideograph */ - {"\x64", 0, 0x89F7}, /* East Asian ideograph */ - {"\x6B", 0, 0x89FF}, /* East Asian ideograph */ - {"\x6C", 0, 0x8A06}, /* East Asian ideograph */ - {"\x6D", 0, 0x8A07}, /* East Asian ideograph */ - {"\x6E", 0, 0x8A04}, /* East Asian ideograph */ - {"\x70", 0, 0x8A0F}, /* East Asian ideograph */ - {"\x71", 0, 0x8A11}, /* East Asian ideograph */ - {"\x72", 0, 0x8A12}, /* East Asian ideograph */ - {"\x73", 0, 0x8A0D}, /* East Asian ideograph */ - {"\x7A", 0, 0x8A27}, /* East Asian ideograph */ - {"\x7D", 0, 0x8A29}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page192 = { - marc8_31page192_flat, 0 -}; -/* PAGE 191 */ -struct yaz_iconv_trie_flat marc8_31page191_flat[] = { - {"\x21", 0, 0x894D}, /* East Asian ideograph */ - {"\x23", 0, 0x8962}, /* East Asian ideograph */ - {"\x24", 0, 0x895A}, /* East Asian ideograph */ - {"\x25", 0, 0x895E}, /* East Asian ideograph */ - {"\x29", 0, 0x895B}, /* East Asian ideograph */ - {"\x2C", 0, 0x895C}, /* East Asian ideograph */ - {"\x2D", 0, 0x895D}, /* East Asian ideograph */ - {"\x31", 0, 0x8966}, /* East Asian ideograph */ - {"\x37", 0, 0x896D}, /* East Asian ideograph */ - {"\x3A", 0, 0x896B}, /* East Asian ideograph */ - {"\x3B", 0, 0x896E}, /* East Asian ideograph */ - {"\x3C", 0, 0x896C}, /* East Asian ideograph */ - {"\x41", 0, 0x8976}, /* East Asian ideograph */ - {"\x42", 0, 0x8974}, /* East Asian ideograph */ - {"\x49", 0, 0x897B}, /* East Asian ideograph */ - {"\x4A", 0, 0x897C}, /* East Asian ideograph */ - {"\x53", 0, 0x8984}, /* East Asian ideograph */ - {"\x55", 0, 0x8985}, /* East Asian ideograph */ - {"\x62", 0, 0x8991}, /* East Asian ideograph */ - {"\x64", 0, 0x8997}, /* East Asian ideograph */ - {"\x66", 0, 0x8998}, /* East Asian ideograph */ - {"\x6B", 0, 0x899C}, /* East Asian ideograph */ - {"\x6F", 0, 0x89A1}, /* East Asian ideograph */ - {"\x76", 0, 0x89A5}, /* East Asian ideograph */ - {"\x79", 0, 0x89A9}, /* East Asian ideograph */ - {"\x7D", 0, 0x89AF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page191 = { - marc8_31page191_flat, 0 -}; -/* PAGE 190 */ -struct yaz_iconv_trie_flat marc8_31page190_flat[] = { - {"\x21", 0, 0x88FC}, /* East Asian ideograph */ - {"\x23", 0, 0x88EF}, /* East Asian ideograph */ - {"\x24", 0, 0x8903}, /* East Asian ideograph */ - {"\x2D", 0, 0x8909}, /* East Asian ideograph */ - {"\x2F", 0, 0x8918}, /* East Asian ideograph */ - {"\x35", 0, 0x8906}, /* East Asian ideograph */ - {"\x36", 0, 0x890C}, /* East Asian ideograph */ - {"\x37", 0, 0x8919}, /* East Asian ideograph */ - {"\x3D", 0, 0x890A}, /* East Asian ideograph */ - {"\x43", 0, 0x8915}, /* East Asian ideograph */ - {"\x45", 0, 0x892F}, /* East Asian ideograph */ - {"\x47", 0, 0x8930}, /* East Asian ideograph */ - {"\x4E", 0, 0x8921}, /* East Asian ideograph */ - {"\x4F", 0, 0x8927}, /* East Asian ideograph */ - {"\x51", 0, 0x891F}, /* East Asian ideograph */ - {"\x53", 0, 0x8931}, /* East Asian ideograph */ - {"\x54", 0, 0x891E}, /* East Asian ideograph */ - {"\x56", 0, 0x8926}, /* East Asian ideograph */ - {"\x57", 0, 0x8922}, /* East Asian ideograph */ - {"\x5A", 0, 0x8935}, /* East Asian ideograph */ - {"\x5D", 0, 0x8941}, /* East Asian ideograph */ - {"\x60", 0, 0x8933}, /* East Asian ideograph */ - {"\x66", 0, 0x8954}, /* East Asian ideograph */ - {"\x6F", 0, 0x894F}, /* East Asian ideograph */ - {"\x72", 0, 0x8947}, /* East Asian ideograph */ - {"\x7A", 0, 0x894C}, /* East Asian ideograph */ - {"\x7B", 0, 0x8946}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page190 = { - marc8_31page190_flat, 0 -}; -/* PAGE 189 */ -struct yaz_iconv_trie_flat marc8_31page189_flat[] = { - {"\x28", 0, 0x88A2}, /* East Asian ideograph */ - {"\x2A", 0, 0x88A4}, /* East Asian ideograph */ - {"\x2F", 0, 0x88AA}, /* East Asian ideograph */ - {"\x34", 0, 0x889A}, /* East Asian ideograph */ - {"\x3A", 0, 0x8890}, /* East Asian ideograph */ - {"\x3B", 0, 0x888C}, /* East Asian ideograph */ - {"\x3D", 0, 0x88A0}, /* East Asian ideograph */ - {"\x40", 0, 0x8899}, /* East Asian ideograph */ - {"\x45", 0, 0x8897}, /* East Asian ideograph */ - {"\x48", 0, 0x88C9}, /* East Asian ideograph */ - {"\x49", 0, 0x88BF}, /* East Asian ideograph */ - {"\x4A", 0, 0x88BA}, /* East Asian ideograph */ - {"\x4F", 0, 0x88C0}, /* East Asian ideograph */ - {"\x51", 0, 0x88B2}, /* East Asian ideograph */ - {"\x54", 0, 0x88BC}, /* East Asian ideograph */ - {"\x57", 0, 0x88B7}, /* East Asian ideograph */ - {"\x59", 0, 0x88BD}, /* East Asian ideograph */ - {"\x5A", 0, 0x88C4}, /* East Asian ideograph */ - {"\x5E", 0, 0x88CB}, /* East Asian ideograph */ - {"\x60", 0, 0x88CC}, /* East Asian ideograph */ - {"\x62", 0, 0x88DB}, /* East Asian ideograph */ - {"\x64", 0, 0x88CE}, /* East Asian ideograph */ - {"\x68", 0, 0x88D2}, /* East Asian ideograph */ - {"\x71", 0, 0x88F1}, /* East Asian ideograph */ - {"\x72", 0, 0x88FE}, /* East Asian ideograph */ - {"\x75", 0, 0x88F2}, /* East Asian ideograph */ - {"\x78", 0, 0x8900}, /* East Asian ideograph */ - {"\x7A", 0, 0x88F0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page189 = { - marc8_31page189_flat, 0 -}; -/* PAGE 188 */ -struct yaz_iconv_trie_flat marc8_31page188_flat[] = { - {"\x23", 0, 0x8828}, /* East Asian ideograph */ - {"\x2A", 0, 0x8832}, /* East Asian ideograph */ - {"\x2E", 0, 0x882E}, /* East Asian ideograph */ - {"\x32", 0, 0x882D}, /* East Asian ideograph */ - {"\x3C", 0, 0x883C}, /* East Asian ideograph */ - {"\x41", 0, 0x8841}, /* East Asian ideograph */ - {"\x42", 0, 0x4610}, /* East Asian ideograph */ - {"\x44", 0, 0x8844}, /* East Asian ideograph */ - {"\x4B", 0, 0x8847}, /* East Asian ideograph */ - {"\x51", 0, 0x884A}, /* East Asian ideograph */ - {"\x53", 0, 0x884E}, /* East Asian ideograph */ - {"\x56", 0, 0x8852}, /* East Asian ideograph */ - {"\x57", 0, 0x8850}, /* East Asian ideograph */ - {"\x59", 0, 0x8856}, /* East Asian ideograph */ - {"\x5A", 0, 0x8855}, /* East Asian ideograph */ - {"\x5E", 0, 0x885C}, /* East Asian ideograph */ - {"\x5F", 0, 0x885A}, /* East Asian ideograph */ - {"\x69", 0, 0x8869}, /* East Asian ideograph */ - {"\x6D", 0, 0x886D}, /* East Asian ideograph */ - {"\x6E", 0, 0x887A}, /* East Asian ideograph */ - {"\x71", 0, 0x8875}, /* East Asian ideograph */ - {"\x75", 0, 0x8872}, /* East Asian ideograph */ - {"\x79", 0, 0x887D}, /* East Asian ideograph */ - {"\x7C", 0, 0x8879}, /* East Asian ideograph */ - {"\x7D", 0, 0x887F}, /* East Asian ideograph */ - {"\x7E", 0, 0x887E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page188 = { - marc8_31page188_flat, 0 -}; -/* PAGE 187 */ -struct yaz_iconv_trie_flat marc8_31page187_flat[] = { - {"\x24", 0, 0x87BD}, /* East Asian ideograph */ - {"\x2C", 0, 0x87EE}, /* East Asian ideograph */ - {"\x30", 0, 0x87F3}, /* East Asian ideograph */ - {"\x31", 0, 0x87F0}, /* East Asian ideograph */ - {"\x34", 0, 0x87EA}, /* East Asian ideograph */ - {"\x36", 0, 0x87DB}, /* East Asian ideograph */ - {"\x37", 0, 0x87E2}, /* East Asian ideograph */ - {"\x39", 0, 0x87EB}, /* East Asian ideograph */ - {"\x3A", 0, 0x87D6}, /* East Asian ideograph */ - {"\x3F", 0, 0x87F5}, /* East Asian ideograph */ - {"\x47", 0, 0x87E0}, /* East Asian ideograph */ - {"\x48", 0, 0x87D3}, /* East Asian ideograph */ - {"\x49", 0, 0x87DC}, /* East Asian ideograph */ - {"\x4C", 0, 0x87E3}, /* East Asian ideograph */ - {"\x4D", 0, 0x8801}, /* East Asian ideograph */ - {"\x4F", 0, 0x8803}, /* East Asian ideograph */ - {"\x50", 0, 0x880A}, /* East Asian ideograph */ - {"\x55", 0, 0x87F6}, /* East Asian ideograph */ - {"\x57", 0, 0x87F7}, /* East Asian ideograph */ - {"\x5C", 0, 0x880B}, /* East Asian ideograph */ - {"\x5D", 0, 0x8806}, /* East Asian ideograph */ - {"\x5F", 0, 0x87FE}, /* East Asian ideograph */ - {"\x61", 0, 0x8810}, /* East Asian ideograph */ - {"\x63", 0, 0x8819}, /* East Asian ideograph */ - {"\x64", 0, 0x8811}, /* East Asian ideograph */ - {"\x66", 0, 0x8818}, /* East Asian ideograph */ - {"\x6A", 0, 0x8813}, /* East Asian ideograph */ - {"\x6B", 0, 0x8816}, /* East Asian ideograph */ - {"\x72", 0, 0x8834}, /* East Asian ideograph */ - {"\x73", 0, 0x881C}, /* East Asian ideograph */ - {"\x7A", 0, 0x881B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page187 = { - marc8_31page187_flat, 0 -}; -/* PAGE 186 */ -struct yaz_iconv_trie_flat marc8_31page186_flat[] = { - {"\x21", 0, 0x8761}, /* East Asian ideograph */ - {"\x24", 0, 0x876A}, /* East Asian ideograph */ - {"\x27", 0, 0x874E}, /* East Asian ideograph */ - {"\x28", 0, 0x875F}, /* East Asian ideograph */ - {"\x2D", 0, 0x876F}, /* East Asian ideograph */ - {"\x2E", 0, 0x875D}, /* East Asian ideograph */ - {"\x30", 0, 0x876E}, /* East Asian ideograph */ - {"\x33", 0, 0x874D}, /* East Asian ideograph */ - {"\x35", 0, 0x8753}, /* East Asian ideograph */ - {"\x3A", 0, 0x87A3}, /* East Asian ideograph */ - {"\x3D", 0, 0x8793}, /* East Asian ideograph */ - {"\x45", 0, 0x8799}, /* East Asian ideograph */ - {"\x48", 0, 0x8788}, /* East Asian ideograph */ - {"\x4C", 0, 0x8798}, /* East Asian ideograph */ - {"\x53", 0, 0x8785}, /* East Asian ideograph */ - {"\x54", 0, 0x878B}, /* East Asian ideograph */ - {"\x55", 0, 0x8784}, /* East Asian ideograph */ - {"\x58", 0, 0x87A9}, /* East Asian ideograph */ - {"\x5D", 0, 0x8789}, /* East Asian ideograph */ - {"\x60", 0, 0x87AD}, /* East Asian ideograph */ - {"\x66", 0, 0x87BE}, /* East Asian ideograph */ - {"\x6E", 0, 0x87C4}, /* East Asian ideograph */ - {"\x6F", 0, 0x87AF}, /* East Asian ideograph */ - {"\x72", 0, 0x87AC}, /* East Asian ideograph */ - {"\x78", 0, 0x87AE}, /* East Asian ideograph */ - {"\x7E", 0, 0x87BF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page186 = { - marc8_31page186_flat, 0 -}; -/* PAGE 185 */ -struct yaz_iconv_trie_flat marc8_31page185_flat[] = { - {"\x25", 0, 0x870B}, /* East Asian ideograph */ - {"\x2F", 0, 0x86FA}, /* East Asian ideograph */ - {"\x33", 0, 0x86F8}, /* East Asian ideograph */ - {"\x34", 0, 0x8706}, /* East Asian ideograph */ - {"\x36", 0, 0x870E}, /* East Asian ideograph */ - {"\x38", 0, 0x8709}, /* East Asian ideograph */ - {"\x3A", 0, 0x870A}, /* East Asian ideograph */ - {"\x3E", 0, 0x870D}, /* East Asian ideograph */ - {"\x42", 0, 0x874A}, /* East Asian ideograph */ - {"\x43", 0, 0x8723}, /* East Asian ideograph */ - {"\x44", 0, 0x8737}, /* East Asian ideograph */ - {"\x45", 0, 0x8728}, /* East Asian ideograph */ - {"\x49", 0, 0x8740}, /* East Asian ideograph */ - {"\x4B", 0, 0x872E}, /* East Asian ideograph */ - {"\x4C", 0, 0x873D}, /* East Asian ideograph */ - {"\x4E", 0, 0x871E}, /* East Asian ideograph */ - {"\x53", 0, 0x8743}, /* East Asian ideograph */ - {"\x55", 0, 0x8744}, /* East Asian ideograph */ - {"\x57", 0, 0x873E}, /* East Asian ideograph */ - {"\x59", 0, 0x8729}, /* East Asian ideograph */ - {"\x5A", 0, 0x8739}, /* East Asian ideograph */ - {"\x5F", 0, 0x871A}, /* East Asian ideograph */ - {"\x64", 0, 0x8731}, /* East Asian ideograph */ - {"\x65", 0, 0x8711}, /* East Asian ideograph */ - {"\x66", 0, 0x8712}, /* East Asian ideograph */ - {"\x6B", 0, 0x874F}, /* East Asian ideograph */ - {"\x6C", 0, 0x8771}, /* East Asian ideograph */ - {"\x6D", 0, 0x8763}, /* East Asian ideograph */ - {"\x71", 0, 0x8764}, /* East Asian ideograph */ - {"\x73", 0, 0x8765}, /* East Asian ideograph */ - {"\x74", 0, 0x877D}, /* East Asian ideograph */ - {"\x79", 0, 0x8758}, /* East Asian ideograph */ - {"\x7B", 0, 0x877B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page185 = { - marc8_31page185_flat, 0 -}; -/* PAGE 184 */ -struct yaz_iconv_trie_flat marc8_31page184_flat[] = { - {"\x25", 0, 0x867A}, /* East Asian ideograph */ - {"\x26", 0, 0x8673}, /* East Asian ideograph */ - {"\x27", 0, 0x867C}, /* East Asian ideograph */ - {"\x2E", 0, 0x8696}, /* East Asian ideograph */ - {"\x2F", 0, 0x86A8}, /* East Asian ideograph */ - {"\x36", 0, 0x8691}, /* East Asian ideograph */ - {"\x37", 0, 0x869C}, /* East Asian ideograph */ - {"\x39", 0, 0x8698}, /* East Asian ideograph */ - {"\x3C", 0, 0x868D}, /* East Asian ideograph */ - {"\x3D", 0, 0x868B}, /* East Asian ideograph */ - {"\x40", 0, 0x86A6}, /* East Asian ideograph */ - {"\x42", 0, 0x869D}, /* East Asian ideograph */ - {"\x46", 0, 0x86A0}, /* East Asian ideograph */ - {"\x48", 0, 0x86A7}, /* East Asian ideograph */ - {"\x4B", 0, 0x86BF}, /* East Asian ideograph */ - {"\x58", 0, 0x86BA}, /* East Asian ideograph */ - {"\x59", 0, 0x86B0}, /* East Asian ideograph */ - {"\x60", 0, 0x86B3}, /* East Asian ideograph */ - {"\x62", 0, 0x86C9}, /* East Asian ideograph */ - {"\x63", 0, 0x86B4}, /* East Asian ideograph */ - {"\x67", 0, 0x86D8}, /* East Asian ideograph */ - {"\x6E", 0, 0x86E3}, /* East Asian ideograph */ - {"\x6F", 0, 0x86E9}, /* East Asian ideograph */ - {"\x71", 0, 0x86EC}, /* East Asian ideograph */ - {"\x74", 0, 0x86D5}, /* East Asian ideograph */ - {"\x77", 0, 0x86D0}, /* East Asian ideograph */ - {"\x7A", 0, 0x86D1}, /* East Asian ideograph */ - {"\x7E", 0, 0x86DE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page184 = { - marc8_31page184_flat, 0 -}; -/* PAGE 183 */ -struct yaz_iconv_trie_flat marc8_31page183_flat[] = { - {"\x22", 0, 0x8627}, /* East Asian ideograph */ - {"\x26", 0, 0x8629}, /* East Asian ideograph */ - {"\x32", 0, 0x8637}, /* East Asian ideograph */ - {"\x38", 0, 0x8636}, /* East Asian ideograph */ - {"\x3E", 0, 0x863C}, /* East Asian ideograph */ - {"\x3F", 0, 0x8640}, /* East Asian ideograph */ - {"\x40", 0, 0x863A}, /* East Asian ideograph */ - {"\x4C", 0, 0x8645}, /* East Asian ideograph */ - {"\x59", 0, 0x864D}, /* East Asian ideograph */ - {"\x5A", 0, 0x8653}, /* East Asian ideograph */ - {"\x5E", 0, 0x8659}, /* East Asian ideograph */ - {"\x66", 0, 0x8661}, /* East Asian ideograph */ - {"\x69", 0, 0x8662}, /* East Asian ideograph */ - {"\x6A", 0, 0x8663}, /* East Asian ideograph */ - {"\x71", 0, 0x8669}, /* East Asian ideograph */ - {"\x78", 0, 0x866C}, /* East Asian ideograph */ - {"\x7B", 0, 0x8672}, /* East Asian ideograph */ - {"\x7C", 0, 0x866F}, /* East Asian ideograph */ - {"\x7E", 0, 0x867B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page183 = { - marc8_31page183_flat, 0 -}; -/* PAGE 182 */ -struct yaz_iconv_trie_flat marc8_31page182_flat[] = { - {"\x24", 0, 0x8624}, /* East Asian ideograph */ - {"\x28", 0, 0x85F7}, /* East Asian ideograph */ - {"\x2C", 0, 0x85E6}, /* East Asian ideograph */ - {"\x2E", 0, 0x85D4}, /* East Asian ideograph */ - {"\x31", 0, 0x85ED}, /* East Asian ideograph */ - {"\x39", 0, 0x85DA}, /* East Asian ideograph */ - {"\x43", 0, 0x85DF}, /* East Asian ideograph */ - {"\x45", 0, 0x85D8}, /* East Asian ideograph */ - {"\x4C", 0, 0x85DC}, /* East Asian ideograph */ - {"\x4E", 0, 0x85F5}, /* East Asian ideograph */ - {"\x52", 0, 0x8622}, /* East Asian ideograph */ - {"\x54", 0, 0x8610}, /* East Asian ideograph */ - {"\x57", 0, 0x85FC}, /* East Asian ideograph */ - {"\x5B", 0, 0x85FF}, /* East Asian ideograph */ - {"\x5E", 0, 0x85FE}, /* East Asian ideograph */ - {"\x60", 0, 0x8600}, /* East Asian ideograph */ - {"\x68", 0, 0x8604}, /* East Asian ideograph */ - {"\x71", 0, 0x8605}, /* East Asian ideograph */ - {"\x75", 0, 0x862B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page182 = { - marc8_31page182_flat, 0 -}; -/* PAGE 181 */ -struct yaz_iconv_trie_flat marc8_31page181_flat[] = { - {"\x25", 0, 0x8580}, /* East Asian ideograph */ - {"\x28", 0, 0x858F}, /* East Asian ideograph */ - {"\x2D", 0, 0x8579}, /* East Asian ideograph */ - {"\x32", 0, 0x857F}, /* East Asian ideograph */ - {"\x33", 0, 0x8577}, /* East Asian ideograph */ - {"\x34", 0, 0x8578}, /* East Asian ideograph */ - {"\x35", 0, 0x8598}, /* East Asian ideograph */ - {"\x36", 0, 0x857B}, /* East Asian ideograph */ - {"\x3D", 0, 0x85A4}, /* East Asian ideograph */ - {"\x42", 0, 0x857A}, /* East Asian ideograph */ - {"\x44", 0, 0x8597}, /* East Asian ideograph */ - {"\x45", 0, 0x8557}, /* East Asian ideograph */ - {"\x49", 0, 0x85A8}, /* East Asian ideograph */ - {"\x4E", 0, 0x8586}, /* East Asian ideograph */ - {"\x50", 0, 0x8599}, /* East Asian ideograph */ - {"\x51", 0, 0x858A}, /* East Asian ideograph */ - {"\x52", 0, 0x85A2}, /* East Asian ideograph */ - {"\x54", 0, 0x8590}, /* East Asian ideograph */ - {"\x56", 0, 0x8585}, /* East Asian ideograph */ - {"\x57", 0, 0x8588}, /* East Asian ideograph */ - {"\x5A", 0, 0x85B8}, /* East Asian ideograph */ - {"\x5D", 0, 0x85C1}, /* East Asian ideograph */ - {"\x61", 0, 0x85BA}, /* East Asian ideograph */ - {"\x68", 0, 0x85CE}, /* East Asian ideograph */ - {"\x6A", 0, 0x85C2}, /* East Asian ideograph */ - {"\x6B", 0, 0x85B7}, /* East Asian ideograph */ - {"\x6C", 0, 0x85B9}, /* East Asian ideograph */ - {"\x6E", 0, 0x85B3}, /* East Asian ideograph */ - {"\x6F", 0, 0x85BD}, /* East Asian ideograph */ - {"\x70", 0, 0x85C4}, /* East Asian ideograph */ - {"\x72", 0, 0x85BF}, /* East Asian ideograph */ - {"\x75", 0, 0x85BE}, /* East Asian ideograph */ - {"\x7E", 0, 0x85B6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page181 = { - marc8_31page181_flat, 0 -}; -/* PAGE 180 */ -struct yaz_iconv_trie_flat marc8_31page180_flat[] = { - {"\x24", 0, 0x851E}, /* East Asian ideograph */ - {"\x2A", 0, 0x8518}, /* East Asian ideograph */ - {"\x2D", 0, 0x8526}, /* East Asian ideograph */ - {"\x2E", 0, 0x8507}, /* East Asian ideograph (variant of EACC 2F252E) */ - {"\x2F", 0, 0x84E7}, /* East Asian ideograph */ - {"\x34", 0, 0x84F0}, /* East Asian ideograph */ - {"\x35", 0, 0x84EF}, /* East Asian ideograph */ - {"\x36", 0, 0x8556}, /* East Asian ideograph */ - {"\x46", 0, 0x8541}, /* East Asian ideograph */ - {"\x4B", 0, 0x8558}, /* East Asian ideograph */ - {"\x4D", 0, 0x8553}, /* East Asian ideograph */ - {"\x4E", 0, 0x8561}, /* East Asian ideograph */ - {"\x4F", 0, 0x8540}, /* East Asian ideograph */ - {"\x5A", 0, 0x8546}, /* East Asian ideograph */ - {"\x5C", 0, 0x8564}, /* East Asian ideograph */ - {"\x5D", 0, 0x855E}, /* East Asian ideograph */ - {"\x5E", 0, 0x8573}, /* East Asian ideograph */ - {"\x5F", 0, 0x8551}, /* East Asian ideograph */ - {"\x64", 0, 0x8562}, /* East Asian ideograph */ - {"\x6B", 0, 0x8563}, /* East Asian ideograph */ - {"\x6C", 0, 0x848D}, /* East Asian ideograph */ - {"\x6D", 0, 0x8542}, /* East Asian ideograph */ - {"\x71", 0, 0x854E}, /* East Asian ideograph */ - {"\x74", 0, 0x8555}, /* East Asian ideograph */ - {"\x76", 0, 0x855D}, /* East Asian ideograph */ - {"\x77", 0, 0x858C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page180 = { - marc8_31page180_flat, 0 -}; -/* PAGE 179 */ -struct yaz_iconv_trie_flat marc8_31page179_flat[] = { - {"\x21", 0, 0x8495}, /* East Asian ideograph */ - {"\x27", 0, 0x84AF}, /* East Asian ideograph */ - {"\x29", 0, 0x84AD}, /* East Asian ideograph */ - {"\x32", 0, 0x84A8}, /* East Asian ideograph */ - {"\x33", 0, 0x84D6}, /* East Asian ideograph */ - {"\x35", 0, 0x84DA}, /* East Asian ideograph */ - {"\x3A", 0, 0x8493}, /* East Asian ideograph */ - {"\x3F", 0, 0x84CF}, /* East Asian ideograph */ - {"\x41", 0, 0x84CA}, /* East Asian ideograph */ - {"\x46", 0, 0x8506}, /* East Asian ideograph */ - {"\x47", 0, 0x850B}, /* East Asian ideograph */ - {"\x4D", 0, 0x8500}, /* East Asian ideograph */ - {"\x59", 0, 0x851F}, /* East Asian ideograph */ - {"\x5C", 0, 0x853B}, /* East Asian ideograph */ - {"\x5F", 0, 0x84EA}, /* East Asian ideograph */ - {"\x66", 0, 0x84F4}, /* East Asian ideograph */ - {"\x6A", 0, 0x850C}, /* East Asian ideograph */ - {"\x72", 0, 0x852F}, /* East Asian ideograph */ - {"\x75", 0, 0x8515}, /* East Asian ideograph */ - {"\x77", 0, 0x84F7}, /* East Asian ideograph */ - {"\x7A", 0, 0x84FC}, /* East Asian ideograph */ - {"\x7C", 0, 0x84EB}, /* East Asian ideograph */ - {"\x7D", 0, 0x84FD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page179 = { - marc8_31page179_flat, 0 -}; -/* PAGE 178 */ -struct yaz_iconv_trie_flat marc8_31page178_flat[] = { - {"\x24", 0, 0x8432}, /* East Asian ideograph */ - {"\x29", 0, 0x845C}, /* East Asian ideograph */ - {"\x2D", 0, 0x842A}, /* East Asian ideograph */ - {"\x2E", 0, 0x8429}, /* East Asian ideograph */ - {"\x32", 0, 0x8471}, /* East Asian ideograph */ - {"\x35", 0, 0x845F}, /* East Asian ideograph */ - {"\x36", 0, 0x8460}, /* East Asian ideograph */ - {"\x37", 0, 0x846E}, /* East Asian ideograph */ - {"\x3A", 0, 0x8446}, /* East Asian ideograph */ - {"\x3C", 0, 0x8452}, /* East Asian ideograph */ - {"\x3F", 0, 0x844A}, /* East Asian ideograph */ - {"\x45", 0, 0x844E}, /* East Asian ideograph */ - {"\x49", 0, 0x8497}, /* East Asian ideograph */ - {"\x50", 0, 0x84A1}, /* East Asian ideograph */ - {"\x53", 0, 0x849F}, /* East Asian ideograph */ - {"\x56", 0, 0x84BA}, /* East Asian ideograph */ - {"\x58", 0, 0x84B9}, /* East Asian ideograph */ - {"\x5C", 0, 0x84B4}, /* East Asian ideograph */ - {"\x5E", 0, 0x84C1}, /* East Asian ideograph */ - {"\x5F", 0, 0x84BB}, /* East Asian ideograph */ - {"\x68", 0, 0x84CD}, /* East Asian ideograph */ - {"\x70", 0, 0x84B1}, /* East Asian ideograph */ - {"\x71", 0, 0x849D}, /* East Asian ideograph */ - {"\x72", 0, 0x84D0}, /* East Asian ideograph */ - {"\x75", 0, 0x8494}, /* East Asian ideograph */ - {"\x79", 0, 0x84C7}, /* East Asian ideograph */ - {"\x79", 0, 0x84C7}, /* East Asian ideograph */ - {"\x7A", 0, 0x84BD}, /* East Asian ideograph */ - {"\x7C", 0, 0x84C2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page178 = { - marc8_31page178_flat, 0 -}; -/* PAGE 177 */ -struct yaz_iconv_trie_flat marc8_31page177_flat[] = { - {"\x23", 0, 0x83FD}, /* East Asian ideograph */ - {"\x25", 0, 0x841E}, /* East Asian ideograph */ - {"\x29", 0, 0x83C9}, /* East Asian ideograph */ - {"\x2A", 0, 0x83DF}, /* East Asian ideograph */ - {"\x2C", 0, 0x841F}, /* East Asian ideograph */ - {"\x2E", 0, 0x840F}, /* East Asian ideograph */ - {"\x30", 0, 0x8411}, /* East Asian ideograph */ - {"\x36", 0, 0x839A}, /* East Asian ideograph */ - {"\x3C", 0, 0x83F3}, /* East Asian ideograph */ - {"\x43", 0, 0x83D1}, /* East Asian ideograph */ - {"\x48", 0, 0x8453}, /* East Asian ideograph */ - {"\x4A", 0, 0x848E}, /* East Asian ideograph */ - {"\x4C", 0, 0x8439}, /* East Asian ideograph */ - {"\x4D", 0, 0x8476}, /* East Asian ideograph */ - {"\x4E", 0, 0x8479}, /* East Asian ideograph */ - {"\x5C", 0, 0x8451}, /* East Asian ideograph */ - {"\x5F", 0, 0x847D}, /* East Asian ideograph */ - {"\x62", 0, 0x845A}, /* East Asian ideograph */ - {"\x66", 0, 0x8459}, /* East Asian ideograph */ - {"\x69", 0, 0x8473}, /* East Asian ideograph */ - {"\x6E", 0, 0x843E}, /* East Asian ideograph */ - {"\x71", 0, 0x846D}, /* East Asian ideograph */ - {"\x78", 0, 0x847A}, /* East Asian ideograph */ - {"\x7B", 0, 0x8484}, /* East Asian ideograph */ - {"\x7C", 0, 0x8478}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page177 = { - marc8_31page177_flat, 0 -}; -/* PAGE 176 */ -struct yaz_iconv_trie_dir marc8_31page176_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {178, 0, 0}, - {179, 0, 0}, - {180, 0, 0}, - {181, 0, 0}, - {182, 0, 0}, - {183, 0, 0}, - {184, 0, 0}, - {185, 0, 0}, - {186, 0, 0}, - {187, 0, 0}, - {188, 0, 0}, - {189, 0, 0}, - {190, 0, 0}, - {191, 0, 0}, - {192, 0, 0}, - {193, 0, 0}, - {194, 0, 0}, - {195, 0, 0}, - {196, 0, 0}, - {197, 0, 0}, - {198, 0, 0}, - {199, 0, 0}, - {200, 0, 0}, - {201, 0, 0}, - {202, 0, 0}, - {203, 0, 0}, - {204, 0, 0}, - {205, 0, 0}, - {206, 0, 0}, - {207, 0, 0}, - {208, 0, 0}, - {209, 0, 0}, - {210, 0, 0}, - {211, 0, 0}, - {212, 0, 0}, - {213, 0, 0}, - {214, 0, 0}, - {215, 0, 0}, - {216, 0, 0}, - {217, 0, 0}, - {218, 0, 0}, - {219, 0, 0}, - {220, 0, 0}, - {221, 0, 0}, - {222, 0, 0}, - {223, 0, 0}, - {224, 0, 0}, - {225, 0, 0}, - {226, 0, 0}, - {227, 0, 0}, - {228, 0, 0}, - {229, 0, 0}, - {230, 0, 0}, - {231, 0, 0}, - {232, 0, 0}, - {233, 0, 0}, - {234, 0, 0}, - {235, 0, 0}, - {236, 0, 0}, - {237, 0, 0}, - {238, 0, 0}, - {239, 0, 0}, - {240, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page176 = { - 0, marc8_31page176_dir -}; -/* PAGE 175 */ -struct yaz_iconv_trie_flat marc8_31page175_flat[] = { - {"\x21", 0, 0x837F}, /* East Asian ideograph */ - {"\x22", 0, 0x8399}, /* East Asian ideograph */ - {"\x23", 0, 0x83A6}, /* East Asian ideograph */ - {"\x25", 0, 0x8387}, /* East Asian ideograph */ - {"\x26", 0, 0x83B9}, /* East Asian ideograph */ - {"\x2B", 0, 0x83A9}, /* East Asian ideograph */ - {"\x2F", 0, 0x839B}, /* East Asian ideograph */ - {"\x33", 0, 0x83AA}, /* East Asian ideograph */ - {"\x37", 0, 0x839C}, /* East Asian ideograph */ - {"\x38", 0, 0x839F}, /* East Asian ideograph */ - {"\x41", 0, 0x83CF}, /* East Asian ideograph */ - {"\x43", 0, 0x83F9}, /* East Asian ideograph */ - {"\x45", 0, 0x8421}, /* East Asian ideograph */ - {"\x51", 0, 0x8423}, /* East Asian ideograph */ - {"\x52", 0, 0x83EA}, /* East Asian ideograph */ - {"\x53", 0, 0x8413}, /* East Asian ideograph */ - {"\x56", 0, 0x83FC}, /* East Asian ideograph */ - {"\x57", 0, 0x83F6}, /* East Asian ideograph */ - {"\x59", 0, 0x8410}, /* East Asian ideograph */ - {"\x5A", 0, 0x83E1}, /* East Asian ideograph */ - {"\x60", 0, 0x83C6}, /* East Asian ideograph */ - {"\x61", 0, 0x8407}, /* East Asian ideograph */ - {"\x63", 0, 0x83EB}, /* East Asian ideograph */ - {"\x6A", 0, 0x83BF}, /* East Asian ideograph */ - {"\x6B", 0, 0x83E2}, /* East Asian ideograph */ - {"\x6D", 0, 0x8401}, /* East Asian ideograph */ - {"\x71", 0, 0x83D8}, /* East Asian ideograph */ - {"\x72", 0, 0x83E5}, /* East Asian ideograph */ - {"\x74", 0, 0x8418}, /* East Asian ideograph */ - {"\x79", 0, 0x83CE}, /* East Asian ideograph */ - {"\x7B", 0, 0x83D3}, /* East Asian ideograph */ - {"\x7D", 0, 0x83D6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page175 = { - marc8_31page175_flat, 0 -}; -/* PAGE 174 */ -struct yaz_iconv_trie_flat marc8_31page174_flat[] = { - {"\x21", 0, 0x830C}, /* East Asian ideograph */ - {"\x22", 0, 0x82FB}, /* East Asian ideograph */ - {"\x24", 0, 0x82FD}, /* East Asian ideograph */ - {"\x26", 0, 0x8333}, /* East Asian ideograph */ - {"\x29", 0, 0x8328}, /* East Asian ideograph */ - {"\x2B", 0, 0x8344}, /* East Asian ideograph */ - {"\x2E", 0, 0x8351}, /* East Asian ideograph */ - {"\x35", 0, 0x831B}, /* East Asian ideograph */ - {"\x3B", 0, 0x8356}, /* East Asian ideograph */ - {"\x3F", 0, 0x8322}, /* East Asian ideograph */ - {"\x40", 0, 0x832C}, /* East Asian ideograph */ - {"\x48", 0, 0x833C}, /* East Asian ideograph */ - {"\x4A", 0, 0x834D}, /* East Asian ideograph */ - {"\x4D", 0, 0x8343}, /* East Asian ideograph (variant of EACC 4C7D4D) */ - {"\x52", 0, 0x832F}, /* East Asian ideograph */ - {"\x53", 0, 0x8348}, /* East Asian ideograph */ - {"\x54", 0, 0x8312}, /* East Asian ideograph */ - {"\x56", 0, 0x8316}, /* East Asian ideograph */ - {"\x58", 0, 0x831A}, /* East Asian ideograph */ - {"\x5F", 0, 0x8347}, /* East Asian ideograph */ - {"\x62", 0, 0x83A8}, /* East Asian ideograph */ - {"\x67", 0, 0x83AD}, /* East Asian ideograph */ - {"\x6D", 0, 0x8373}, /* East Asian ideograph */ - {"\x72", 0, 0x83B0}, /* East Asian ideograph */ - {"\x76", 0, 0x831D}, /* East Asian ideograph */ - {"\x7A", 0, 0x838F}, /* East Asian ideograph */ - {"\x7C", 0, 0x8395}, /* East Asian ideograph */ - {"\x7E", 0, 0x8375}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page174 = { - marc8_31page174_flat, 0 -}; -/* PAGE 173 */ -struct yaz_iconv_trie_flat marc8_31page173_flat[] = { - {"\x24", 0, 0x828E}, /* East Asian ideograph */ - {"\x25", 0, 0x8291}, /* East Asian ideograph */ - {"\x27", 0, 0x828F}, /* East Asian ideograph */ - {"\x28", 0, 0x8284}, /* East Asian ideograph */ - {"\x2D", 0, 0x8283}, /* East Asian ideograph */ - {"\x2E", 0, 0x828A}, /* East Asian ideograph */ - {"\x31", 0, 0x82AF}, /* East Asian ideograph */ - {"\x34", 0, 0x82A7}, /* East Asian ideograph */ - {"\x38", 0, 0x82AB}, /* East Asian ideograph */ - {"\x3A", 0, 0x82B0}, /* East Asian ideograph */ - {"\x3C", 0, 0x82A4}, /* East Asian ideograph */ - {"\x3F", 0, 0x829A}, /* East Asian ideograph */ - {"\x42", 0, 0x82A3}, /* East Asian ideograph */ - {"\x44", 0, 0x82B7}, /* East Asian ideograph */ - {"\x45", 0, 0x82AE}, /* East Asian ideograph (variant of EACC 4C7C45) */ - {"\x46", 0, 0x82A9}, /* East Asian ideograph */ - {"\x49", 0, 0x82BC}, /* East Asian ideograph */ - {"\x4C", 0, 0x82A8}, /* East Asian ideograph */ - {"\x4E", 0, 0x82B4}, /* East Asian ideograph */ - {"\x50", 0, 0x82A1}, /* East Asian ideograph */ - {"\x53", 0, 0x82AA}, /* East Asian ideograph */ - {"\x55", 0, 0x82D9}, /* East Asian ideograph */ - {"\x57", 0, 0x82FE}, /* East Asian ideograph */ - {"\x5A", 0, 0x82E0}, /* East Asian ideograph */ - {"\x5B", 0, 0x82D0}, /* East Asian ideograph */ - {"\x5C", 0, 0x8300}, /* East Asian ideograph */ - {"\x5F", 0, 0x82EA}, /* East Asian ideograph */ - {"\x60", 0, 0x82F7}, /* East Asian ideograph */ - {"\x62", 0, 0x82EF}, /* East Asian ideograph */ - {"\x63", 0, 0x833A}, /* East Asian ideograph */ - {"\x64", 0, 0x82E4}, /* East Asian ideograph */ - {"\x65", 0, 0x82D5}, /* East Asian ideograph */ - {"\x67", 0, 0x8307}, /* East Asian ideograph */ - {"\x68", 0, 0x82FA}, /* East Asian ideograph */ - {"\x69", 0, 0x82F4}, /* East Asian ideograph */ - {"\x6A", 0, 0x82E2}, /* East Asian ideograph */ - {"\x6D", 0, 0x82D2}, /* East Asian ideograph */ - {"\x6E", 0, 0x8314}, /* East Asian ideograph */ - {"\x71", 0, 0x82EB}, /* East Asian ideograph */ - {"\x72", 0, 0x82D8}, /* East Asian ideograph */ - {"\x73", 0, 0x82E1}, /* East Asian ideograph */ - {"\x75", 0, 0x82F6}, /* East Asian ideograph */ - {"\x7B", 0, 0x8310}, /* East Asian ideograph */ - {"\x7C", 0, 0x82F3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page173 = { - marc8_31page173_flat, 0 -}; -/* PAGE 172 */ -struct yaz_iconv_trie_flat marc8_31page172_flat[] = { - {"\x27", 0, 0x821D}, /* East Asian ideograph */ - {"\x29", 0, 0x8220}, /* East Asian ideograph */ - {"\x2E", 0, 0x822D}, /* East Asian ideograph */ - {"\x2F", 0, 0x822F}, /* East Asian ideograph */ - {"\x32", 0, 0x8238}, /* East Asian ideograph */ - {"\x34", 0, 0x823A}, /* East Asian ideograph */ - {"\x35", 0, 0x8233}, /* East Asian ideograph */ - {"\x36", 0, 0x8234}, /* East Asian ideograph */ - {"\x3A", 0, 0x8232}, /* East Asian ideograph */ - {"\x42", 0, 0x8248}, /* East Asian ideograph */ - {"\x43", 0, 0x8249}, /* East Asian ideograph */ - {"\x45", 0, 0x8244}, /* East Asian ideograph */ - {"\x47", 0, 0x8240}, /* East Asian ideograph */ - {"\x48", 0, 0x8241}, /* East Asian ideograph */ - {"\x4A", 0, 0x8245}, /* East Asian ideograph */ - {"\x4B", 0, 0x824B}, /* East Asian ideograph */ - {"\x50", 0, 0x824F}, /* East Asian ideograph */ - {"\x53", 0, 0x824E}, /* East Asian ideograph */ - {"\x56", 0, 0x8256}, /* East Asian ideograph */ - {"\x57", 0, 0x8257}, /* East Asian ideograph */ - {"\x5E", 0, 0x825A}, /* East Asian ideograph */ - {"\x62", 0, 0x825F}, /* East Asian ideograph */ - {"\x67", 0, 0x8262}, /* East Asian ideograph */ - {"\x6B", 0, 0x8268}, /* East Asian ideograph */ - {"\x6F", 0, 0x826D}, /* East Asian ideograph */ - {"\x77", 0, 0x8278}, /* East Asian ideograph */ - {"\x7D", 0, 0x827F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page172 = { - marc8_31page172_flat, 0 -}; -/* PAGE 171 */ -struct yaz_iconv_trie_flat marc8_31page171_flat[] = { - {"\x2C", 0, 0x81B5}, /* East Asian ideograph */ - {"\x2E", 0, 0x81B0}, /* East Asian ideograph */ - {"\x2F", 0, 0x81B4}, /* East Asian ideograph */ - {"\x33", 0, 0x81B7}, /* East Asian ideograph */ - {"\x37", 0, 0x81BB}, /* East Asian ideograph */ - {"\x38", 0, 0x81C1}, /* East Asian ideograph */ - {"\x39", 0, 0x81CC}, /* East Asian ideograph */ - {"\x3A", 0, 0x81CA}, /* East Asian ideograph */ - {"\x3B", 0, 0x81C4}, /* East Asian ideograph */ - {"\x40", 0, 0x81D1}, /* East Asian ideograph */ - {"\x41", 0, 0x81CE}, /* East Asian ideograph */ - {"\x43", 0, 0x81D0}, /* East Asian ideograph */ - {"\x4B", 0, 0x81DB}, /* East Asian ideograph */ - {"\x4F", 0, 0x81DD}, /* East Asian ideograph */ - {"\x53", 0, 0x81DE}, /* East Asian ideograph */ - {"\x56", 0, 0x81E0}, /* East Asian ideograph */ - {"\x57", 0, 0x81E2}, /* East Asian ideograph */ - {"\x5B", 0, 0x81E7}, /* East Asian ideograph */ - {"\x60", 0, 0x81EF}, /* East Asian ideograph */ - {"\x65", 0, 0x81F2}, /* East Asian ideograph */ - {"\x68", 0, 0x81F6}, /* East Asian ideograph */ - {"\x70", 0, 0x8201}, /* East Asian ideograph */ - {"\x72", 0, 0x8201}, /* East Asian ideograph */ - {"\x74", 0, 0x8203}, /* East Asian ideograph */ - {"\x75", 0, 0x8204}, /* East Asian ideograph */ - {"\x77", 0, 0x820B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page171 = { - marc8_31page171_flat, 0 -}; -/* PAGE 170 */ -struct yaz_iconv_trie_flat marc8_31page170_flat[] = { - {"\x25", 0, 0x814D}, /* East Asian ideograph */ - {"\x2E", 0, 0x6720}, /* East Asian ideograph */ - {"\x32", 0, 0x8160}, /* East Asian ideograph */ - {"\x3B", 0, 0x8169}, /* East Asian ideograph */ - {"\x3C", 0, 0x817C}, /* East Asian ideograph */ - {"\x41", 0, 0x8161}, /* East Asian ideograph */ - {"\x46", 0, 0x8176}, /* East Asian ideograph */ - {"\x47", 0, 0x8174}, /* East Asian ideograph */ - {"\x48", 0, 0x8167}, /* East Asian ideograph */ - {"\x4B", 0, 0x816F}, /* East Asian ideograph */ - {"\x4D", 0, 0x8182}, /* East Asian ideograph */ - {"\x51", 0, 0x818B}, /* East Asian ideograph */ - {"\x52", 0, 0x8186}, /* East Asian ideograph */ - {"\x59", 0, 0x8183}, /* East Asian ideograph */ - {"\x6A", 0, 0x819F}, /* East Asian ideograph */ - {"\x6B", 0, 0x81A3}, /* East Asian ideograph */ - {"\x70", 0, 0x8198}, /* East Asian ideograph */ - {"\x75", 0, 0x8195}, /* East Asian ideograph */ - {"\x77", 0, 0x8197}, /* East Asian ideograph */ - {"\x7C", 0, 0x81AA}, /* East Asian ideograph */ - {"\x7D", 0, 0x81A6}, /* East Asian ideograph */ - {"\x7E", 0, 0x6725}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page170 = { - marc8_31page170_flat, 0 -}; -/* PAGE 169 */ -struct yaz_iconv_trie_flat marc8_31page169_flat[] = { - {"\x27", 0, 0x80D9}, /* East Asian ideograph */ - {"\x2A", 0, 0x80DD}, /* East Asian ideograph */ - {"\x2D", 0, 0x80CF}, /* East Asian ideograph */ - {"\x2F", 0, 0x80CD}, /* East Asian ideograph */ - {"\x30", 0, 0x80D7}, /* East Asian ideograph */ - {"\x33", 0, 0x80F2}, /* East Asian ideograph */ - {"\x34", 0, 0x80FA}, /* East Asian ideograph */ - {"\x38", 0, 0x80FE}, /* East Asian ideograph */ - {"\x3C", 0, 0x8103}, /* East Asian ideograph */ - {"\x40", 0, 0x80F9}, /* East Asian ideograph */ - {"\x41", 0, 0x80EF}, /* East Asian ideograph */ - {"\x42", 0, 0x80D4}, /* East Asian ideograph */ - {"\x49", 0, 0x811D}, /* East Asian ideograph */ - {"\x4B", 0, 0x8118}, /* East Asian ideograph */ - {"\x50", 0, 0x8130}, /* East Asian ideograph */ - {"\x54", 0, 0x8124}, /* East Asian ideograph */ - {"\x55", 0, 0x811B}, /* East Asian ideograph */ - {"\x60", 0, 0x812A}, /* East Asian ideograph */ - {"\x61", 0, 0x811E}, /* East Asian ideograph */ - {"\x64", 0, 0x8121}, /* East Asian ideograph */ - {"\x66", 0, 0x8117}, /* East Asian ideograph */ - {"\x69", 0, 0x813A}, /* East Asian ideograph */ - {"\x6A", 0, 0x815A}, /* East Asian ideograph */ - {"\x6D", 0, 0x8148}, /* East Asian ideograph */ - {"\x77", 0, 0x814C}, /* East Asian ideograph */ - {"\x7C", 0, 0x8153}, /* East Asian ideograph */ - {"\x7D", 0, 0x8141}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page169 = { - marc8_31page169_flat, 0 -}; -/* PAGE 168 */ -struct yaz_iconv_trie_flat marc8_31page168_flat[] = { - {"\x28", 0, 0x8063}, /* East Asian ideograph */ - {"\x32", 0, 0x806C}, /* East Asian ideograph */ - {"\x39", 0, 0x8075}, /* East Asian ideograph */ - {"\x3E", 0, 0x807B}, /* East Asian ideograph */ - {"\x3F", 0, 0x8079}, /* East Asian ideograph */ - {"\x47", 0, 0x808A}, /* East Asian ideograph */ - {"\x49", 0, 0x808E}, /* East Asian ideograph */ - {"\x4E", 0, 0x809F}, /* East Asian ideograph */ - {"\x5C", 0, 0x670A}, /* East Asian ideograph */ - {"\x60", 0, 0x80A7}, /* East Asian ideograph */ - {"\x61", 0, 0x80B0}, /* East Asian ideograph */ - {"\x68", 0, 0x80B8}, /* East Asian ideograph */ - {"\x69", 0, 0x80B5}, /* East Asian ideograph */ - {"\x6A", 0, 0x80A6}, /* East Asian ideograph */ - {"\x73", 0, 0x80E0}, /* East Asian ideograph */ - {"\x75", 0, 0x6711}, /* East Asian ideograph */ - {"\x7B", 0, 0x80DF}, /* East Asian ideograph */ - {"\x7D", 0, 0x80C2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page168 = { - marc8_31page168_flat, 0 -}; -/* PAGE 167 */ -struct yaz_iconv_trie_flat marc8_31page167_flat[] = { - {"\x29", 0, 0x7FFD}, /* East Asian ideograph */ - {"\x2A", 0, 0x7FFE}, /* East Asian ideograph */ - {"\x2C", 0, 0x7FFF}, /* East Asian ideograph */ - {"\x2E", 0, 0x8004}, /* East Asian ideograph */ - {"\x31", 0, 0x8008}, /* East Asian ideograph */ - {"\x33", 0, 0x800B}, /* East Asian ideograph */ - {"\x34", 0, 0x800E}, /* East Asian ideograph */ - {"\x35", 0, 0x8011}, /* East Asian ideograph */ - {"\x36", 0, 0x800F}, /* East Asian ideograph */ - {"\x37", 0, 0x8014}, /* East Asian ideograph */ - {"\x39", 0, 0x8016}, /* East Asian ideograph */ - {"\x3B", 0, 0x801F}, /* East Asian ideograph */ - {"\x3D", 0, 0x801E}, /* East Asian ideograph */ - {"\x3E", 0, 0x801D}, /* East Asian ideograph */ - {"\x4B", 0, 0x8025}, /* East Asian ideograph */ - {"\x4C", 0, 0x8026}, /* East Asian ideograph */ - {"\x4D", 0, 0x802A}, /* East Asian ideograph */ - {"\x4E", 0, 0x8029}, /* East Asian ideograph */ - {"\x4F", 0, 0x8028}, /* East Asian ideograph */ - {"\x5B", 0, 0x8030}, /* East Asian ideograph */ - {"\x5D", 0, 0x8031}, /* East Asian ideograph */ - {"\x60", 0, 0x8035}, /* East Asian ideograph */ - {"\x69", 0, 0x8039}, /* East Asian ideograph */ - {"\x6B", 0, 0x8041}, /* East Asian ideograph */ - {"\x70", 0, 0x8043}, /* East Asian ideograph */ - {"\x7B", 0, 0x8052}, /* East Asian ideograph */ - {"\x7E", 0, 0x8062}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page167 = { - marc8_31page167_flat, 0 -}; -/* PAGE 166 */ -struct yaz_iconv_trie_flat marc8_31page166_flat[] = { - {"\x23", 0, 0x7F97}, /* East Asian ideograph */ - {"\x24", 0, 0x7F95}, /* East Asian ideograph */ - {"\x2C", 0, 0x7FA2}, /* East Asian ideograph */ - {"\x33", 0, 0x7FA7}, /* East Asian ideograph */ - {"\x3B", 0, 0x7FB0}, /* East Asian ideograph */ - {"\x3C", 0, 0x7FAD}, /* East Asian ideograph */ - {"\x3F", 0, 0x7FB1}, /* East Asian ideograph */ - {"\x40", 0, 0x7FB4}, /* East Asian ideograph */ - {"\x42", 0, 0x7FB5}, /* East Asian ideograph */ - {"\x4A", 0, 0x7FBC}, /* East Asian ideograph */ - {"\x4C", 0, 0x7FBE}, /* East Asian ideograph */ - {"\x51", 0, 0x7FC3}, /* East Asian ideograph */ - {"\x57", 0, 0x7FCA}, /* East Asian ideograph */ - {"\x67", 0, 0x7FDB}, /* East Asian ideograph */ - {"\x68", 0, 0x7FE3}, /* East Asian ideograph */ - {"\x6C", 0, 0x7FE6}, /* East Asian ideograph */ - {"\x6F", 0, 0x7FE5}, /* East Asian ideograph */ - {"\x72", 0, 0x7FEC}, /* East Asian ideograph */ - {"\x73", 0, 0x7FEB}, /* East Asian ideograph */ - {"\x77", 0, 0x7FEF}, /* East Asian ideograph */ - {"\x7A", 0, 0x7FEE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page166 = { - marc8_31page166_flat, 0 -}; -/* PAGE 165 */ -struct yaz_iconv_trie_flat marc8_31page165_flat[] = { - {"\x25", 0, 0x7F43}, /* East Asian ideograph */ - {"\x27", 0, 0x7F46}, /* East Asian ideograph */ - {"\x28", 0, 0x7F45}, /* East Asian ideograph */ - {"\x2B", 0, 0x7F4B}, /* East Asian ideograph */ - {"\x2E", 0, 0x7F4C}, /* East Asian ideograph */ - {"\x2F", 0, 0x7F4D}, /* East Asian ideograph */ - {"\x31", 0, 0x7F4E}, /* East Asian ideograph */ - {"\x32", 0, 0x7F4F}, /* East Asian ideograph */ - {"\x3E", 0, 0x7F60}, /* East Asian ideograph */ - {"\x3F", 0, 0x7F61}, /* East Asian ideograph */ - {"\x43", 0, 0x7F5D}, /* East Asian ideograph */ - {"\x45", 0, 0x7F5B}, /* East Asian ideograph */ - {"\x47", 0, 0x7F63}, /* East Asian ideograph */ - {"\x50", 0, 0x7F65}, /* East Asian ideograph */ - {"\x51", 0, 0x7F66}, /* East Asian ideograph */ - {"\x53", 0, 0x7F6D}, /* East Asian ideograph */ - {"\x54", 0, 0x7F6B}, /* East Asian ideograph */ - {"\x55", 0, 0x7F67}, /* East Asian ideograph */ - {"\x57", 0, 0x7F68}, /* East Asian ideograph */ - {"\x5E", 0, 0x7F71}, /* East Asian ideograph */ - {"\x60", 0, 0x7F73}, /* East Asian ideograph */ - {"\x63", 0, 0x7F76}, /* East Asian ideograph */ - {"\x6A", 0, 0x7F7F}, /* East Asian ideograph */ - {"\x6B", 0, 0x7F7E}, /* East Asian ideograph */ - {"\x6C", 0, 0x7F7D}, /* East Asian ideograph */ - {"\x72", 0, 0x7F86}, /* East Asian ideograph */ - {"\x7A", 0, 0x7F91}, /* East Asian ideograph */ - {"\x7E", 0, 0x7F96}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page165 = { - marc8_31page165_flat, 0 -}; -/* PAGE 164 */ -struct yaz_iconv_trie_flat marc8_31page164_flat[] = { - {"\x21", 0, 0x7E35}, /* East Asian ideograph */ - {"\x26", 0, 0x7E3F}, /* East Asian ideograph */ - {"\x28", 0, 0x7E47}, /* East Asian ideograph */ - {"\x2D", 0, 0x7E52}, /* East Asian ideograph */ - {"\x2F", 0, 0x7E51}, /* East Asian ideograph */ - {"\x33", 0, 0x7E50}, /* East Asian ideograph */ - {"\x34", 0, 0x7E67}, /* East Asian ideograph */ - {"\x37", 0, 0x7E56}, /* East Asian ideograph */ - {"\x48", 0, 0x7E68}, /* East Asian ideograph */ - {"\x49", 0, 0x7E6E}, /* East Asian ideograph */ - {"\x4E", 0, 0x7E70}, /* East Asian ideograph */ - {"\x51", 0, 0x7E6F}, /* East Asian ideograph */ - {"\x52", 0, 0x7E73}, /* East Asian ideograph */ - {"\x58", 0, 0x7E7B}, /* East Asian ideograph */ - {"\x59", 0, 0x7E7E}, /* East Asian ideograph */ - {"\x5B", 0, 0x7E81}, /* East Asian ideograph */ - {"\x5D", 0, 0x7E8A}, /* East Asian ideograph */ - {"\x5E", 0, 0x7E87}, /* East Asian ideograph */ - {"\x60", 0, 0x7E88}, /* East Asian ideograph */ - {"\x64", 0, 0x7E86}, /* East Asian ideograph */ - {"\x6A", 0, 0x7E91}, /* East Asian ideograph */ - {"\x6B", 0, 0x7E95}, /* East Asian ideograph */ - {"\x6D", 0, 0x7E94}, /* East Asian ideograph */ - {"\x70", 0, 0x7E9B}, /* East Asian ideograph */ - {"\x71", 0, 0x7E9A}, /* East Asian ideograph */ - {"\x73", 0, 0x7E99}, /* East Asian ideograph */ - {"\x74", 0, 0x7E98}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page164 = { - marc8_31page164_flat, 0 -}; -/* PAGE 163 */ -struct yaz_iconv_trie_flat marc8_31page163_flat[] = { - {"\x22", 0, 0x7D9F}, /* East Asian ideograph */ - {"\x29", 0, 0x7DE1}, /* East Asian ideograph */ - {"\x2A", 0, 0x7DD9}, /* East Asian ideograph */ - {"\x2B", 0, 0x7DE4}, /* East Asian ideograph */ - {"\x31", 0, 0x7DD7}, /* East Asian ideograph */ - {"\x36", 0, 0x7DF9}, /* East Asian ideograph */ - {"\x3A", 0, 0x7E06}, /* East Asian ideograph */ - {"\x3C", 0, 0x7DF2}, /* East Asian ideograph */ - {"\x3E", 0, 0x7DE6}, /* East Asian ideograph */ - {"\x46", 0, 0x7DDC}, /* East Asian ideograph */ - {"\x47", 0, 0x7DF1}, /* East Asian ideograph */ - {"\x48", 0, 0x7DF6}, /* East Asian ideograph */ - {"\x49", 0, 0x7DE5}, /* East Asian ideograph */ - {"\x4B", 0, 0x7DF5}, /* East Asian ideograph */ - {"\x50", 0, 0x7E17}, /* East Asian ideograph */ - {"\x51", 0, 0x7E1E}, /* East Asian ideograph */ - {"\x52", 0, 0x7E21}, /* East Asian ideograph */ - {"\x53", 0, 0x7E0B}, /* East Asian ideograph */ - {"\x55", 0, 0x7E12}, /* East Asian ideograph */ - {"\x56", 0, 0x7E22}, /* East Asian ideograph */ - {"\x5B", 0, 0x7E20}, /* East Asian ideograph */ - {"\x5D", 0, 0x7E1D}, /* East Asian ideograph */ - {"\x5E", 0, 0x7E09}, /* East Asian ideograph */ - {"\x5F", 0, 0x7E1F}, /* East Asian ideograph */ - {"\x65", 0, 0x7E15}, /* East Asian ideograph */ - {"\x69", 0, 0x7E10}, /* East Asian ideograph */ - {"\x6A", 0, 0x7E0F}, /* East Asian ideograph */ - {"\x6D", 0, 0x7E3B}, /* East Asian ideograph */ - {"\x71", 0, 0x7E34}, /* East Asian ideograph */ - {"\x72", 0, 0x7E2D}, /* East Asian ideograph */ - {"\x73", 0, 0x7E2F}, /* East Asian ideograph */ - {"\x75", 0, 0x7E36}, /* East Asian ideograph */ - {"\x77", 0, 0x7E3A}, /* East Asian ideograph */ - {"\x79", 0, 0x7E39}, /* East Asian ideograph */ - {"\x7D", 0, 0x7E44}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page163 = { - marc8_31page163_flat, 0 -}; -/* PAGE 162 */ -struct yaz_iconv_trie_flat marc8_31page162_flat[] = { - {"\x22", 0, 0x7D70}, /* East Asian ideograph */ - {"\x29", 0, 0x7D67}, /* East Asian ideograph */ - {"\x2B", 0, 0x7D6A}, /* East Asian ideograph */ - {"\x2C", 0, 0x7D6B}, /* East Asian ideograph */ - {"\x30", 0, 0x7D73}, /* East Asian ideograph */ - {"\x34", 0, 0x7D4E}, /* East Asian ideograph */ - {"\x37", 0, 0x7D8B}, /* East Asian ideograph */ - {"\x39", 0, 0x7D88}, /* East Asian ideograph */ - {"\x3B", 0, 0x7D85}, /* East Asian ideograph */ - {"\x3D", 0, 0x7D8E}, /* East Asian ideograph */ - {"\x42", 0, 0x7D7F}, /* East Asian ideograph */ - {"\x44", 0, 0x7D86}, /* East Asian ideograph */ - {"\x48", 0, 0x7D8D}, /* East Asian ideograph */ - {"\x4B", 0, 0x7D9B}, /* East Asian ideograph */ - {"\x4D", 0, 0x7D83}, /* East Asian ideograph */ - {"\x4F", 0, 0x7D7D}, /* East Asian ideograph */ - {"\x54", 0, 0x7D7B}, /* East Asian ideograph */ - {"\x58", 0, 0x7D7A}, /* East Asian ideograph */ - {"\x59", 0, 0x7D96}, /* East Asian ideograph */ - {"\x5A", 0, 0x7D5B}, /* East Asian ideograph */ - {"\x5B", 0, 0x7D8C}, /* East Asian ideograph */ - {"\x61", 0, 0x7DA3}, /* East Asian ideograph */ - {"\x62", 0, 0x7DAE}, /* East Asian ideograph */ - {"\x67", 0, 0x7DCB}, /* East Asian ideograph */ - {"\x69", 0, 0x7DAA}, /* East Asian ideograph */ - {"\x6A", 0, 0x7DCE}, /* East Asian ideograph */ - {"\x6B", 0, 0x7DC9}, /* East Asian ideograph */ - {"\x6E", 0, 0x7DC5}, /* East Asian ideograph */ - {"\x6F", 0, 0x7DA6}, /* East Asian ideograph */ - {"\x74", 0, 0x7DC4}, /* East Asian ideograph */ - {"\x78", 0, 0x7DAC}, /* East Asian ideograph */ - {"\x7D", 0, 0x7DB9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page162 = { - marc8_31page162_flat, 0 -}; -/* PAGE 161 */ -struct yaz_iconv_trie_flat marc8_31page161_flat[] = { - {"\x22", 0, 0x7CDD}, /* East Asian ideograph */ - {"\x28", 0, 0x7CED}, /* East Asian ideograph */ - {"\x2E", 0, 0x7CF0}, /* East Asian ideograph */ - {"\x30", 0, 0x7CF2}, /* East Asian ideograph */ - {"\x35", 0, 0x7CF4}, /* East Asian ideograph */ - {"\x39", 0, 0x7CF6}, /* East Asian ideograph */ - {"\x42", 0, 0x7D06}, /* East Asian ideograph */ - {"\x44", 0, 0x7D03}, /* East Asian ideograph */ - {"\x45", 0, 0x7D08}, /* East Asian ideograph */ - {"\x49", 0, 0x7D0F}, /* East Asian ideograph */ - {"\x4A", 0, 0x7D13}, /* East Asian ideograph */ - {"\x50", 0, 0x7D18}, /* East Asian ideograph */ - {"\x51", 0, 0x7D1E}, /* East Asian ideograph */ - {"\x52", 0, 0x7D1D}, /* East Asian ideograph */ - {"\x59", 0, 0x7D35}, /* East Asian ideograph */ - {"\x5A", 0, 0x7D3D}, /* East Asian ideograph */ - {"\x61", 0, 0x7D3A}, /* East Asian ideograph */ - {"\x62", 0, 0x7D32}, /* East Asian ideograph */ - {"\x65", 0, 0x7D31}, /* East Asian ideograph */ - {"\x68", 0, 0x7D45}, /* East Asian ideograph */ - {"\x6A", 0, 0x7D3F}, /* East Asian ideograph */ - {"\x6C", 0, 0x7D29}, /* East Asian ideograph */ - {"\x6F", 0, 0x7D41}, /* East Asian ideograph */ - {"\x71", 0, 0x7D3E}, /* East Asian ideograph */ - {"\x7A", 0, 0x7D5C}, /* East Asian ideograph */ - {"\x7C", 0, 0x7D53}, /* East Asian ideograph */ - {"\x7E", 0, 0x7D5A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page161 = { - marc8_31page161_flat, 0 -}; -/* PAGE 160 */ -struct yaz_iconv_trie_flat marc8_31page160_flat[] = { - {"\x21", 0, 0x7C81}, /* East Asian ideograph */ - {"\x28", 0, 0x7C8E}, /* East Asian ideograph */ - {"\x29", 0, 0x7C91}, /* East Asian ideograph */ - {"\x2A", 0, 0x7C83}, /* East Asian ideograph */ - {"\x2C", 0, 0x7C8D}, /* East Asian ideograph */ - {"\x3A", 0, 0x7C99}, /* East Asian ideograph */ - {"\x3B", 0, 0x7C98}, /* East Asian ideograph */ - {"\x3E", 0, 0x7C9C}, /* East Asian ideograph */ - {"\x40", 0, 0x7C95}, /* East Asian ideograph */ - {"\x42", 0, 0x7CA7}, /* East Asian ideograph */ - {"\x43", 0, 0x7CA2}, /* East Asian ideograph */ - {"\x45", 0, 0x7C9E}, /* East Asian ideograph */ - {"\x46", 0, 0x7CA9}, /* East Asian ideograph */ - {"\x48", 0, 0x7CA8}, /* East Asian ideograph */ - {"\x49", 0, 0x7CA1}, /* East Asian ideograph */ - {"\x4A", 0, 0x7CAC}, /* East Asian ideograph */ - {"\x4C", 0, 0x7CA6}, /* East Asian ideograph */ - {"\x54", 0, 0x7CB2}, /* East Asian ideograph */ - {"\x58", 0, 0x7CBB}, /* East Asian ideograph */ - {"\x59", 0, 0x7CBF}, /* East Asian ideograph */ - {"\x5E", 0, 0x7CBA}, /* East Asian ideograph */ - {"\x5F", 0, 0x7CBC}, /* East Asian ideograph */ - {"\x64", 0, 0x7CC2}, /* East Asian ideograph */ - {"\x66", 0, 0x7CCE}, /* East Asian ideograph */ - {"\x68", 0, 0x7CC8}, /* East Asian ideograph */ - {"\x69", 0, 0x7CC5}, /* East Asian ideograph */ - {"\x6D", 0, 0x7CCC}, /* East Asian ideograph */ - {"\x6F", 0, 0x7CC9}, /* East Asian ideograph */ - {"\x71", 0, 0x7CD2}, /* East Asian ideograph */ - {"\x75", 0, 0x7CD7}, /* East Asian ideograph */ - {"\x77", 0, 0x7CE1}, /* East Asian ideograph */ - {"\x7B", 0, 0x7CE8}, /* East Asian ideograph (variant of EACC 4C6F7B) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page160 = { - marc8_31page160_flat, 0 -}; -/* PAGE 159 */ -struct yaz_iconv_trie_flat marc8_31page159_flat[] = { - {"\x27", 0, 0x7C35}, /* East Asian ideograph */ - {"\x2A", 0, 0x7C40}, /* East Asian ideograph */ - {"\x30", 0, 0x7C39}, /* East Asian ideograph */ - {"\x34", 0, 0x7C3B}, /* East Asian ideograph */ - {"\x35", 0, 0x7C34}, /* East Asian ideograph */ - {"\x3B", 0, 0x7C42}, /* East Asian ideograph */ - {"\x46", 0, 0x7C4E}, /* East Asian ideograph */ - {"\x54", 0, 0x7C5D}, /* East Asian ideograph */ - {"\x56", 0, 0x7C5C}, /* East Asian ideograph */ - {"\x57", 0, 0x7C5A}, /* East Asian ideograph */ - {"\x58", 0, 0x7C5B}, /* East Asian ideograph */ - {"\x59", 0, 0x7C59}, /* East Asian ideograph */ - {"\x5B", 0, 0x7C5E}, /* East Asian ideograph */ - {"\x5C", 0, 0x7C67}, /* East Asian ideograph */ - {"\x5E", 0, 0x7C63}, /* East Asian ideograph */ - {"\x61", 0, 0x7C68}, /* East Asian ideograph */ - {"\x62", 0, 0x7C65}, /* East Asian ideograph */ - {"\x6F", 0, 0x7C6F}, /* East Asian ideograph */ - {"\x75", 0, 0x7C75}, /* East Asian ideograph */ - {"\x79", 0, 0x7C7E}, /* East Asian ideograph */ - {"\x7A", 0, 0x7C78}, /* East Asian ideograph */ - {"\x7D", 0, 0x7C7D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page159 = { - marc8_31page159_flat, 0 -}; -/* PAGE 158 */ -struct yaz_iconv_trie_flat marc8_31page158_flat[] = { - {"\x22", 0, 0x7BDD}, /* East Asian ideograph */ - {"\x24", 0, 0x7BE5}, /* East Asian ideograph */ - {"\x29", 0, 0x7BE8}, /* East Asian ideograph */ - {"\x2E", 0, 0x7BF9}, /* East Asian ideograph */ - {"\x2F", 0, 0x7BD4}, /* East Asian ideograph */ - {"\x32", 0, 0x7BDF}, /* East Asian ideograph */ - {"\x35", 0, 0x7BD8}, /* East Asian ideograph */ - {"\x37", 0, 0x7BEA}, /* East Asian ideograph (unrelated variant of EACC 3A6A7C) */ - {"\x3B", 0, 0x7C06}, /* East Asian ideograph */ - {"\x3E", 0, 0x7BF0}, /* East Asian ideograph */ - {"\x41", 0, 0x7C0F}, /* East Asian ideograph */ - {"\x46", 0, 0x7C0B}, /* East Asian ideograph */ - {"\x47", 0, 0x7C00}, /* East Asian ideograph */ - {"\x4B", 0, 0x7C0C}, /* East Asian ideograph */ - {"\x4F", 0, 0x7BF4}, /* East Asian ideograph */ - {"\x54", 0, 0x7BF3}, /* East Asian ideograph */ - {"\x5A", 0, 0x7C09}, /* East Asian ideograph */ - {"\x5B", 0, 0x7C03}, /* East Asian ideograph */ - {"\x5C", 0, 0x7BFC}, /* East Asian ideograph */ - {"\x5F", 0, 0x7C1C}, /* East Asian ideograph */ - {"\x61", 0, 0x7C26}, /* East Asian ideograph */ - {"\x62", 0, 0x7C28}, /* East Asian ideograph */ - {"\x63", 0, 0x7C20}, /* East Asian ideograph */ - {"\x66", 0, 0x7C1F}, /* East Asian ideograph */ - {"\x68", 0, 0x7C2F}, /* East Asian ideograph */ - {"\x75", 0, 0x7C30}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page158 = { - marc8_31page158_flat, 0 -}; -/* PAGE 157 */ -struct yaz_iconv_trie_flat marc8_31page157_flat[] = { - {"\x26", 0, 0x7B71}, /* East Asian ideograph */ - {"\x27", 0, 0x7B70}, /* East Asian ideograph */ - {"\x29", 0, 0x7B73}, /* East Asian ideograph */ - {"\x2D", 0, 0x7B9C}, /* East Asian ideograph */ - {"\x33", 0, 0x7B92}, /* East Asian ideograph */ - {"\x34", 0, 0x7B91}, /* East Asian ideograph */ - {"\x35", 0, 0x7B90}, /* East Asian ideograph */ - {"\x38", 0, 0x7BA3}, /* East Asian ideograph */ - {"\x3A", 0, 0x7B8D}, /* East Asian ideograph */ - {"\x41", 0, 0x7B85}, /* East Asian ideograph */ - {"\x43", 0, 0x7B8E}, /* East Asian ideograph */ - {"\x44", 0, 0x7B98}, /* East Asian ideograph */ - {"\x46", 0, 0x7B86}, /* East Asian ideograph */ - {"\x48", 0, 0x7B99}, /* East Asian ideograph */ - {"\x52", 0, 0x7BB2}, /* East Asian ideograph */ - {"\x58", 0, 0x7BCB}, /* East Asian ideograph */ - {"\x59", 0, 0x7BB8}, /* East Asian ideograph */ - {"\x5A", 0, 0x7BCF}, /* East Asian ideograph */ - {"\x5C", 0, 0x7BD0}, /* East Asian ideograph */ - {"\x60", 0, 0x7BBE}, /* East Asian ideograph */ - {"\x6F", 0, 0x7BCC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page157 = { - marc8_31page157_flat, 0 -}; -/* PAGE 156 */ -struct yaz_iconv_trie_flat marc8_31page156_flat[] = { - {"\x27", 0, 0x7B39}, /* East Asian ideograph */ - {"\x2D", 0, 0x7B0F}, /* East Asian ideograph */ - {"\x2E", 0, 0x7B08}, /* East Asian ideograph */ - {"\x33", 0, 0x7B0A}, /* East Asian ideograph */ - {"\x35", 0, 0x7B35}, /* East Asian ideograph */ - {"\x36", 0, 0x7B25}, /* East Asian ideograph */ - {"\x39", 0, 0x7B38}, /* East Asian ideograph */ - {"\x3B", 0, 0x7B3B}, /* East Asian ideograph */ - {"\x3F", 0, 0x7B24}, /* East Asian ideograph */ - {"\x40", 0, 0x7B33}, /* East Asian ideograph */ - {"\x42", 0, 0x7B2A}, /* East Asian ideograph */ - {"\x44", 0, 0x7B18}, /* East Asian ideograph */ - {"\x47", 0, 0x7B31}, /* East Asian ideograph */ - {"\x4A", 0, 0x7B2B}, /* East Asian ideograph */ - {"\x4B", 0, 0x7B37}, /* East Asian ideograph */ - {"\x4D", 0, 0x7B1F}, /* East Asian ideograph */ - {"\x52", 0, 0x7B4A}, /* East Asian ideograph */ - {"\x53", 0, 0x7B59}, /* East Asian ideograph */ - {"\x54", 0, 0x7B04}, /* East Asian ideograph (variant of EACC 2E6B54) */ - {"\x55", 0, 0x7B47}, /* East Asian ideograph */ - {"\x59", 0, 0x7B58}, /* East Asian ideograph */ - {"\x5B", 0, 0x7B6C}, /* East Asian ideograph */ - {"\x60", 0, 0x7B48}, /* East Asian ideograph */ - {"\x61", 0, 0x7B45}, /* East Asian ideograph */ - {"\x62", 0, 0x7B4C}, /* East Asian ideograph */ - {"\x63", 0, 0x7B4E}, /* East Asian ideograph */ - {"\x68", 0, 0x7B66}, /* East Asian ideograph */ - {"\x6C", 0, 0x7B64}, /* East Asian ideograph */ - {"\x6E", 0, 0x7B69}, /* East Asian ideograph */ - {"\x70", 0, 0x7B6D}, /* East Asian ideograph */ - {"\x74", 0, 0x7B62}, /* East Asian ideograph */ - {"\x75", 0, 0x7B6E}, /* East Asian ideograph */ - {"\x76", 0, 0x7B74}, /* East Asian ideograph */ - {"\x79", 0, 0x7B72}, /* East Asian ideograph */ - {"\x7A", 0, 0x7B78}, /* East Asian ideograph */ - {"\x7B", 0, 0x7B6F}, /* East Asian ideograph */ - {"\x7C", 0, 0x7B67}, /* East Asian ideograph */ - {"\x7E", 0, 0x7B65}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page156 = { - marc8_31page156_flat, 0 -}; -/* PAGE 155 */ -struct yaz_iconv_trie_flat marc8_31page155_flat[] = { - {"\x28", 0, 0x7AA3}, /* East Asian ideograph */ - {"\x2B", 0, 0x7A9E}, /* East Asian ideograph */ - {"\x2C", 0, 0x7AA7}, /* East Asian ideograph */ - {"\x2E", 0, 0x7AA8}, /* East Asian ideograph */ - {"\x31", 0, 0x7AAC}, /* East Asian ideograph */ - {"\x36", 0, 0x7AB3}, /* East Asian ideograph */ - {"\x3A", 0, 0x7ABD}, /* East Asian ideograph */ - {"\x3C", 0, 0x7AB6}, /* East Asian ideograph */ - {"\x3D", 0, 0x7AB8}, /* East Asian ideograph */ - {"\x3E", 0, 0x7AB5}, /* East Asian ideograph */ - {"\x3F", 0, 0x7ABB}, /* East Asian ideograph */ - {"\x43", 0, 0x7ABF}, /* East Asian ideograph */ - {"\x49", 0, 0x7ACD}, /* East Asian ideograph */ - {"\x4B", 0, 0x7ACF}, /* East Asian ideograph */ - {"\x4F", 0, 0x7AD1}, /* East Asian ideograph */ - {"\x51", 0, 0x7AD3}, /* East Asian ideograph */ - {"\x52", 0, 0x7AD4}, /* East Asian ideograph */ - {"\x54", 0, 0x7AD5}, /* East Asian ideograph */ - {"\x55", 0, 0x7ADA}, /* East Asian ideograph */ - {"\x5A", 0, 0x7AE1}, /* East Asian ideograph */ - {"\x5E", 0, 0x7AE6}, /* East Asian ideograph */ - {"\x66", 0, 0x7AEB}, /* East Asian ideograph */ - {"\x6B", 0, 0x7AF0}, /* East Asian ideograph */ - {"\x76", 0, 0x7AF5}, /* East Asian ideograph */ - {"\x7C", 0, 0x7AFE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page155 = { - marc8_31page155_flat, 0 -}; -/* PAGE 154 */ -struct yaz_iconv_trie_flat marc8_31page154_flat[] = { - {"\x22", 0, 0x7A2C}, /* East Asian ideograph */ - {"\x39", 0, 0x7A48}, /* East Asian ideograph */ - {"\x3D", 0, 0x7A4B}, /* East Asian ideograph */ - {"\x3E", 0, 0x7A47}, /* East Asian ideograph */ - {"\x3F", 0, 0x7A44}, /* East Asian ideograph */ - {"\x40", 0, 0x7A5C}, /* East Asian ideograph */ - {"\x4D", 0, 0x7A5F}, /* East Asian ideograph */ - {"\x4F", 0, 0x7A60}, /* East Asian ideograph */ - {"\x57", 0, 0x7A6E}, /* East Asian ideograph */ - {"\x5F", 0, 0x7A70}, /* East Asian ideograph */ - {"\x66", 0, 0x7A75}, /* East Asian ideograph */ - {"\x69", 0, 0x7A78}, /* East Asian ideograph */ - {"\x6B", 0, 0x7A80}, /* East Asian ideograph */ - {"\x70", 0, 0x7A85}, /* East Asian ideograph */ - {"\x75", 0, 0x7A86}, /* East Asian ideograph */ - {"\x78", 0, 0x7A8A}, /* East Asian ideograph */ - {"\x7A", 0, 0x7A94}, /* East Asian ideograph */ - {"\x7E", 0, 0x68A5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page154 = { - marc8_31page154_flat, 0 -}; -/* PAGE 153 */ -struct yaz_iconv_trie_flat marc8_31page153_flat[] = { - {"\x22", 0, 0x79B8}, /* East Asian ideograph */ - {"\x23", 0, 0x79BA}, /* East Asian ideograph */ - {"\x25", 0, 0x79BC}, /* East Asian ideograph */ - {"\x28", 0, 0x79C6}, /* East Asian ideograph */ - {"\x2A", 0, 0x79C8}, /* East Asian ideograph */ - {"\x2D", 0, 0x79D4}, /* East Asian ideograph */ - {"\x2E", 0, 0x79D5}, /* East Asian ideograph */ - {"\x32", 0, 0x79D6}, /* East Asian ideograph */ - {"\x3D", 0, 0x79EC}, /* East Asian ideograph */ - {"\x3E", 0, 0x79EB}, /* East Asian ideograph (variant of EACC 4C683E) */ - {"\x42", 0, 0x79E1}, /* East Asian ideograph */ - {"\x44", 0, 0x79DD}, /* East Asian ideograph */ - {"\x45", 0, 0x79ED}, /* East Asian ideograph */ - {"\x48", 0, 0x79F8}, /* East Asian ideograph */ - {"\x4F", 0, 0x7A02}, /* East Asian ideograph */ - {"\x50", 0, 0x7A0A}, /* East Asian ideograph */ - {"\x54", 0, 0x7A09}, /* East Asian ideograph */ - {"\x5C", 0, 0x7A03}, /* East Asian ideograph */ - {"\x61", 0, 0x7A0C}, /* East Asian ideograph */ - {"\x6B", 0, 0x7A11}, /* East Asian ideograph */ - {"\x6C", 0, 0x7A18}, /* East Asian ideograph */ - {"\x6F", 0, 0x7A19}, /* East Asian ideograph (variant of EACC 2E686F) */ - {"\x71", 0, 0x7A1E}, /* East Asian ideograph */ - {"\x76", 0, 0x7A17}, /* East Asian ideograph */ - {"\x7E", 0, 0x7A2D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page153 = { - marc8_31page153_flat, 0 -}; -/* PAGE 152 */ -struct yaz_iconv_trie_flat marc8_31page152_flat[] = { - {"\x21", 0, 0x7951}, /* East Asian ideograph */ - {"\x23", 0, 0x7954}, /* East Asian ideograph */ - {"\x2A", 0, 0x7967}, /* East Asian ideograph */ - {"\x2D", 0, 0x796B}, /* East Asian ideograph */ - {"\x30", 0, 0x7972}, /* East Asian ideograph */ - {"\x3E", 0, 0x797C}, /* East Asian ideograph */ - {"\x4A", 0, 0x7998}, /* East Asian ideograph */ - {"\x4B", 0, 0x798A}, /* East Asian ideograph */ - {"\x4D", 0, 0x7999}, /* East Asian ideograph */ - {"\x4E", 0, 0x7995}, /* East Asian ideograph */ - {"\x4F", 0, 0x798B}, /* East Asian ideograph */ - {"\x50", 0, 0x7996}, /* East Asian ideograph */ - {"\x54", 0, 0x7994}, /* East Asian ideograph */ - {"\x55", 0, 0x7993}, /* East Asian ideograph */ - {"\x5C", 0, 0x799A}, /* East Asian ideograph */ - {"\x5F", 0, 0x79A1}, /* East Asian ideograph */ - {"\x60", 0, 0x799B}, /* East Asian ideograph */ - {"\x61", 0, 0x79A3}, /* East Asian ideograph */ - {"\x64", 0, 0x799D}, /* East Asian ideograph */ - {"\x6E", 0, 0x79A9}, /* East Asian ideograph */ - {"\x70", 0, 0x79AB}, /* East Asian ideograph */ - {"\x71", 0, 0x79A8}, /* East Asian ideograph */ - {"\x75", 0, 0x79B0}, /* East Asian ideograph */ - {"\x7A", 0, 0x79B3}, /* East Asian ideograph */ - {"\x7B", 0, 0x79B4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page152 = { - marc8_31page152_flat, 0 -}; -/* PAGE 151 */ -struct yaz_iconv_trie_flat marc8_31page151_flat[] = { - {"\x21", 0, 0x78F9}, /* East Asian ideograph */ - {"\x22", 0, 0x78FD}, /* East Asian ideograph */ - {"\x27", 0, 0x78FE}, /* East Asian ideograph */ - {"\x29", 0, 0x78FB}, /* East Asian ideograph */ - {"\x2B", 0, 0x7904}, /* East Asian ideograph */ - {"\x2E", 0, 0x7912}, /* East Asian ideograph */ - {"\x32", 0, 0x790C}, /* East Asian ideograph */ - {"\x34", 0, 0x7913}, /* East Asian ideograph */ - {"\x35", 0, 0x7911}, /* East Asian ideograph */ - {"\x43", 0, 0x791E}, /* East Asian ideograph */ - {"\x46", 0, 0x7922}, /* East Asian ideograph */ - {"\x4C", 0, 0x7924}, /* East Asian ideograph */ - {"\x4D", 0, 0x7927}, /* East Asian ideograph */ - {"\x50", 0, 0x7929}, /* East Asian ideograph */ - {"\x55", 0, 0x7931}, /* East Asian ideograph */ - {"\x5D", 0, 0x7934}, /* East Asian ideograph */ - {"\x60", 0, 0x7936}, /* East Asian ideograph */ - {"\x65", 0, 0x793D}, /* East Asian ideograph */ - {"\x67", 0, 0x7942}, /* East Asian ideograph */ - {"\x68", 0, 0x793F}, /* East Asian ideograph */ - {"\x6A", 0, 0x794A}, /* East Asian ideograph */ - {"\x6B", 0, 0x794D}, /* East Asian ideograph */ - {"\x75", 0, 0x7946}, /* East Asian ideograph */ - {"\x77", 0, 0x7958}, /* East Asian ideograph */ - {"\x79", 0, 0x795B}, /* East Asian ideograph */ - {"\x7A", 0, 0x795C}, /* East Asian ideograph */ - {"\x7B", 0, 0x794F}, /* East Asian ideograph */ - {"\x7C", 0, 0x7953}, /* East Asian ideograph */ - {"\x7D", 0, 0x7953}, /* East Asian ideograph (unrelated variant of EACC 22667C) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page151 = { - marc8_31page151_flat, 0 -}; -/* PAGE 150 */ -struct yaz_iconv_trie_flat marc8_31page150_flat[] = { - {"\x29", 0, 0x7893}, /* East Asian ideograph */ - {"\x2C", 0, 0x7892}, /* East Asian ideograph */ - {"\x2D", 0, 0x7896}, /* East Asian ideograph */ - {"\x2F", 0, 0x78B2}, /* East Asian ideograph */ - {"\x31", 0, 0x78A1}, /* East Asian ideograph */ - {"\x32", 0, 0x78B6}, /* East Asian ideograph */ - {"\x39", 0, 0x78B7}, /* East Asian ideograph */ - {"\x3B", 0, 0x78A4}, /* East Asian ideograph */ - {"\x3E", 0, 0x78B4}, /* East Asian ideograph */ - {"\x40", 0, 0x78AD}, /* East Asian ideograph */ - {"\x41", 0, 0x78A3}, /* East Asian ideograph */ - {"\x43", 0, 0x789E}, /* East Asian ideograph */ - {"\x44", 0, 0x78A8}, /* East Asian ideograph */ - {"\x48", 0, 0x78AB}, /* East Asian ideograph */ - {"\x4E", 0, 0x78BB}, /* East Asian ideograph */ - {"\x55", 0, 0x78CC}, /* East Asian ideograph */ - {"\x56", 0, 0x78C9}, /* East Asian ideograph */ - {"\x58", 0, 0x78D1}, /* East Asian ideograph */ - {"\x5A", 0, 0x78D8}, /* East Asian ideograph */ - {"\x5E", 0, 0x78C8}, /* East Asian ideograph */ - {"\x60", 0, 0x78D4}, /* East Asian ideograph */ - {"\x68", 0, 0x78DF}, /* East Asian ideograph */ - {"\x6A", 0, 0x78E7}, /* East Asian ideograph */ - {"\x6E", 0, 0x78DB}, /* East Asian ideograph */ - {"\x6F", 0, 0x78E1}, /* East Asian ideograph */ - {"\x73", 0, 0x78E0}, /* East Asian ideograph */ - {"\x76", 0, 0x78EE}, /* East Asian ideograph */ - {"\x77", 0, 0x78E3}, /* East Asian ideograph */ - {"\x79", 0, 0x78F2}, /* East Asian ideograph */ - {"\x7E", 0, 0x7905}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page150 = { - marc8_31page150_flat, 0 -}; -/* PAGE 149 */ -struct yaz_iconv_trie_flat marc8_31page149_flat[] = { - {"\x24", 0, 0x781B}, /* East Asian ideograph */ - {"\x26", 0, 0x782C}, /* East Asian ideograph */ - {"\x27", 0, 0x7823}, /* East Asian ideograph */ - {"\x28", 0, 0x782B}, /* East Asian ideograph */ - {"\x2A", 0, 0x7829}, /* East Asian ideograph */ - {"\x2D", 0, 0x7822}, /* East Asian ideograph */ - {"\x31", 0, 0x7835}, /* East Asian ideograph */ - {"\x32", 0, 0x7833}, /* East Asian ideograph */ - {"\x33", 0, 0x782E}, /* East Asian ideograph */ - {"\x35", 0, 0x7820}, /* East Asian ideograph */ - {"\x38", 0, 0x783D}, /* East Asian ideograph */ - {"\x3B", 0, 0x781F}, /* East Asian ideograph */ - {"\x3D", 0, 0x7831}, /* East Asian ideograph */ - {"\x44", 0, 0x784D}, /* East Asian ideograph */ - {"\x48", 0, 0x7848}, /* East Asian ideograph */ - {"\x49", 0, 0x7853}, /* East Asian ideograph */ - {"\x4A", 0, 0x7854}, /* East Asian ideograph */ - {"\x4B", 0, 0x7845}, /* East Asian ideograph */ - {"\x4C", 0, 0x7852}, /* East Asian ideograph */ - {"\x4E", 0, 0x7850}, /* East Asian ideograph */ - {"\x4F", 0, 0x7858}, /* East Asian ideograph */ - {"\x50", 0, 0x7826}, /* East Asian ideograph */ - {"\x52", 0, 0x7847}, /* East Asian ideograph */ - {"\x56", 0, 0x784C}, /* East Asian ideograph */ - {"\x5A", 0, 0x7868}, /* East Asian ideograph */ - {"\x5B", 0, 0x786D}, /* East Asian ideograph */ - {"\x60", 0, 0x7864}, /* East Asian ideograph */ - {"\x61", 0, 0x785C}, /* East Asian ideograph */ - {"\x64", 0, 0x7876}, /* East Asian ideograph */ - {"\x66", 0, 0x786A}, /* East Asian ideograph */ - {"\x69", 0, 0x7886}, /* East Asian ideograph */ - {"\x6B", 0, 0x789A}, /* East Asian ideograph */ - {"\x6C", 0, 0x787F}, /* East Asian ideograph */ - {"\x6D", 0, 0x7887}, /* East Asian ideograph */ - {"\x70", 0, 0x7894}, /* East Asian ideograph */ - {"\x76", 0, 0x788F}, /* East Asian ideograph */ - {"\x7E", 0, 0x7899}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page149 = { - marc8_31page149_flat, 0 -}; -/* PAGE 148 */ -struct yaz_iconv_trie_flat marc8_31page148_flat[] = { - {"\x23", 0, 0x77B6}, /* East Asian ideograph */ - {"\x29", 0, 0x77BE}, /* East Asian ideograph */ - {"\x2B", 0, 0x77B9}, /* East Asian ideograph */ - {"\x2C", 0, 0x77BC}, /* East Asian ideograph */ - {"\x35", 0, 0x77CD}, /* East Asian ideograph */ - {"\x3A", 0, 0x77D1}, /* East Asian ideograph */ - {"\x45", 0, 0x77DE}, /* East Asian ideograph */ - {"\x46", 0, 0x77DF}, /* East Asian ideograph */ - {"\x4F", 0, 0x77E7}, /* East Asian ideograph */ - {"\x52", 0, 0x77E6}, /* East Asian ideograph */ - {"\x55", 0, 0x77EC}, /* East Asian ideograph */ - {"\x59", 0, 0x77F0}, /* East Asian ideograph */ - {"\x5A", 0, 0x77F1}, /* East Asian ideograph */ - {"\x5C", 0, 0x77F4}, /* East Asian ideograph */ - {"\x60", 0, 0x77FC}, /* East Asian ideograph */ - {"\x67", 0, 0x77F8}, /* East Asian ideograph */ - {"\x68", 0, 0x77FB}, /* East Asian ideograph */ - {"\x70", 0, 0x7809}, /* East Asian ideograph */ - {"\x71", 0, 0x7806}, /* East Asian ideograph */ - {"\x73", 0, 0x7819}, /* East Asian ideograph */ - {"\x74", 0, 0x7811}, /* East Asian ideograph */ - {"\x78", 0, 0x7812}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page148 = { - marc8_31page148_flat, 0 -}; -/* PAGE 147 */ -struct yaz_iconv_trie_flat marc8_31page147_flat[] = { - {"\x22", 0, 0x7725}, /* East Asian ideograph */ - {"\x25", 0, 0x7735}, /* East Asian ideograph */ - {"\x26", 0, 0x7734}, /* East Asian ideograph */ - {"\x2D", 0, 0x7747}, /* East Asian ideograph */ - {"\x31", 0, 0x7745}, /* East Asian ideograph */ - {"\x32", 0, 0x774D}, /* East Asian ideograph */ - {"\x33", 0, 0x774A}, /* East Asian ideograph */ - {"\x35", 0, 0x7743}, /* East Asian ideograph */ - {"\x37", 0, 0x774E}, /* East Asian ideograph */ - {"\x3A", 0, 0x775F}, /* East Asian ideograph */ - {"\x3D", 0, 0x7760}, /* East Asian ideograph */ - {"\x3E", 0, 0x7752}, /* East Asian ideograph */ - {"\x42", 0, 0x7758}, /* East Asian ideograph */ - {"\x44", 0, 0x7756}, /* East Asian ideograph */ - {"\x45", 0, 0x775A}, /* East Asian ideograph */ - {"\x4F", 0, 0x7762}, /* East Asian ideograph */ - {"\x52", 0, 0x7780}, /* East Asian ideograph */ - {"\x56", 0, 0x776F}, /* East Asian ideograph */ - {"\x5D", 0, 0x777E}, /* East Asian ideograph */ - {"\x5F", 0, 0x7785}, /* East Asian ideograph */ - {"\x60", 0, 0x777A}, /* East Asian ideograph */ - {"\x66", 0, 0x778B}, /* East Asian ideograph (variant of EACC 4C6266) */ - {"\x6A", 0, 0x778D}, /* East Asian ideograph */ - {"\x72", 0, 0x7798}, /* East Asian ideograph */ - {"\x73", 0, 0x7796}, /* East Asian ideograph */ - {"\x75", 0, 0x77A2}, /* East Asian ideograph */ - {"\x76", 0, 0x7799}, /* East Asian ideograph */ - {"\x7A", 0, 0x77B5}, /* East Asian ideograph */ - {"\x7D", 0, 0x77B7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page147 = { - marc8_31page147_flat, 0 -}; -/* PAGE 146 */ -struct yaz_iconv_trie_flat marc8_31page146_flat[] = { - {"\x23", 0, 0x76CB}, /* East Asian ideograph */ - {"\x26", 0, 0x76CC}, /* East Asian ideograph */ - {"\x3B", 0, 0x76E6}, /* East Asian ideograph */ - {"\x3C", 0, 0x76E9}, /* East Asian ideograph */ - {"\x40", 0, 0x76EC}, /* East Asian ideograph */ - {"\x44", 0, 0x76ED}, /* East Asian ideograph */ - {"\x48", 0, 0x76F1}, /* East Asian ideograph */ - {"\x4B", 0, 0x7704}, /* East Asian ideograph */ - {"\x4F", 0, 0x7708}, /* East Asian ideograph */ - {"\x50", 0, 0x7707}, /* East Asian ideograph */ - {"\x53", 0, 0x76F7}, /* East Asian ideograph */ - {"\x54", 0, 0x770A}, /* East Asian ideograph */ - {"\x59", 0, 0x76FB}, /* East Asian ideograph */ - {"\x5E", 0, 0x772B}, /* East Asian ideograph */ - {"\x60", 0, 0x770E}, /* East Asian ideograph */ - {"\x62", 0, 0x771B}, /* East Asian ideograph */ - {"\x63", 0, 0x7724}, /* East Asian ideograph */ - {"\x6C", 0, 0x7722}, /* East Asian ideograph */ - {"\x6D", 0, 0x771A}, /* East Asian ideograph */ - {"\x6F", 0, 0x7721}, /* East Asian ideograph */ - {"\x74", 0, 0x7740}, /* East Asian ideograph */ - {"\x75", 0, 0x7739}, /* East Asian ideograph */ - {"\x76", 0, 0x772F}, /* East Asian ideograph */ - {"\x77", 0, 0x7731}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page146 = { - marc8_31page146_flat, 0 -}; -/* PAGE 145 */ -struct yaz_iconv_trie_flat marc8_31page145_flat[] = { - {"\x22", 0, 0x7664}, /* East Asian ideograph */ - {"\x24", 0, 0x7659}, /* East Asian ideograph */ - {"\x2B", 0, 0x765F}, /* East Asian ideograph */ - {"\x32", 0, 0x7667}, /* East Asian ideograph */ - {"\x35", 0, 0x766A}, /* East Asian ideograph */ - {"\x37", 0, 0x766D}, /* East Asian ideograph */ - {"\x38", 0, 0x766F}, /* East Asian ideograph */ - {"\x3A", 0, 0x7670}, /* East Asian ideograph */ - {"\x40", 0, 0x7676}, /* East Asian ideograph */ - {"\x41", 0, 0x7677}, /* East Asian ideograph */ - {"\x48", 0, 0x7680}, /* East Asian ideograph */ - {"\x4A", 0, 0x768B}, /* East Asian ideograph */ - {"\x52", 0, 0x7695}, /* East Asian ideograph */ - {"\x55", 0, 0x656B}, /* East Asian ideograph */ - {"\x59", 0, 0x7699}, /* East Asian ideograph */ - {"\x5D", 0, 0x769C}, /* East Asian ideograph */ - {"\x5F", 0, 0x769D}, /* East Asian ideograph */ - {"\x65", 0, 0x76A4}, /* East Asian ideograph */ - {"\x66", 0, 0x76A5}, /* East Asian ideograph */ - {"\x67", 0, 0x76A6}, /* East Asian ideograph */ - {"\x6A", 0, 0x76AA}, /* East Asian ideograph */ - {"\x6D", 0, 0x76AD}, /* East Asian ideograph */ - {"\x74", 0, 0x76B8}, /* East Asian ideograph */ - {"\x77", 0, 0x76BD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page145 = { - marc8_31page145_flat, 0 -}; -/* PAGE 144 */ -struct yaz_iconv_trie_flat marc8_31page144_flat[] = { - {"\x21", 0, 0x75F9}, /* East Asian ideograph */ - {"\x22", 0, 0x75FC}, /* East Asian ideograph */ - {"\x29", 0, 0x7616}, /* East Asian ideograph */ - {"\x2C", 0, 0x7608}, /* East Asian ideograph */ - {"\x2D", 0, 0x7615}, /* East Asian ideograph */ - {"\x2E", 0, 0x760C}, /* East Asian ideograph */ - {"\x2F", 0, 0x760F}, /* East Asian ideograph */ - {"\x3B", 0, 0x7610}, /* East Asian ideograph */ - {"\x3C", 0, 0x760A}, /* East Asian ideograph */ - {"\x3E", 0, 0x7625}, /* East Asian ideograph */ - {"\x3F", 0, 0x761A}, /* East Asian ideograph */ - {"\x40", 0, 0x761B}, /* East Asian ideograph */ - {"\x47", 0, 0x7619}, /* East Asian ideograph */ - {"\x48", 0, 0x761E}, /* East Asian ideograph */ - {"\x4C", 0, 0x761D}, /* East Asian ideograph */ - {"\x50", 0, 0x7622}, /* East Asian ideograph */ - {"\x51", 0, 0x762F}, /* East Asian ideograph */ - {"\x54", 0, 0x762D}, /* East Asian ideograph */ - {"\x5C", 0, 0x7633}, /* East Asian ideograph */ - {"\x5E", 0, 0x763B}, /* East Asian ideograph */ - {"\x5F", 0, 0x7630}, /* East Asian ideograph */ - {"\x60", 0, 0x763C}, /* East Asian ideograph */ - {"\x62", 0, 0x7635}, /* East Asian ideograph */ - {"\x67", 0, 0x7648}, /* East Asian ideograph */ - {"\x68", 0, 0x764E}, /* East Asian ideograph */ - {"\x69", 0, 0x7647}, /* East Asian ideograph */ - {"\x6A", 0, 0x7643}, /* East Asian ideograph */ - {"\x6E", 0, 0x764D}, /* East Asian ideograph */ - {"\x6F", 0, 0x7649}, /* East Asian ideograph */ - {"\x75", 0, 0x7654}, /* East Asian ideograph */ - {"\x7A", 0, 0x765C}, /* East Asian ideograph */ - {"\x7B", 0, 0x7657}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page144 = { - marc8_31page144_flat, 0 -}; -/* PAGE 143 */ -struct yaz_iconv_trie_flat marc8_31page143_flat[] = { - {"\x25", 0, 0x7583}, /* East Asian ideograph */ - {"\x2C", 0, 0x7590}, /* East Asian ideograph */ - {"\x2D", 0, 0x7592}, /* East Asian ideograph */ - {"\x2E", 0, 0x7594}, /* East Asian ideograph */ - {"\x31", 0, 0x7595}, /* East Asian ideograph */ - {"\x35", 0, 0x7598}, /* East Asian ideograph */ - {"\x37", 0, 0x75A2}, /* East Asian ideograph */ - {"\x3B", 0, 0x75A3}, /* East Asian ideograph */ - {"\x3E", 0, 0x75BA}, /* East Asian ideograph */ - {"\x43", 0, 0x75B0}, /* East Asian ideograph */ - {"\x44", 0, 0x75C3}, /* East Asian ideograph */ - {"\x46", 0, 0x75BF}, /* East Asian ideograph */ - {"\x47", 0, 0x75B4}, /* East Asian ideograph */ - {"\x4A", 0, 0x75C2}, /* East Asian ideograph */ - {"\x4E", 0, 0x75C1}, /* East Asian ideograph */ - {"\x50", 0, 0x75B1}, /* East Asian ideograph */ - {"\x51", 0, 0x75C4}, /* East Asian ideograph */ - {"\x58", 0, 0x75CD}, /* East Asian ideograph */ - {"\x5C", 0, 0x75CF}, /* East Asian ideograph */ - {"\x5E", 0, 0x75CC}, /* East Asian ideograph */ - {"\x5F", 0, 0x75D0}, /* East Asian ideograph */ - {"\x63", 0, 0x75E7}, /* East Asian ideograph */ - {"\x66", 0, 0x75E1}, /* East Asian ideograph */ - {"\x67", 0, 0x75E6}, /* East Asian ideograph */ - {"\x71", 0, 0x75E4}, /* East Asian ideograph */ - {"\x72", 0, 0x75E0}, /* East Asian ideograph */ - {"\x73", 0, 0x75D7}, /* East Asian ideograph */ - {"\x7A", 0, 0x7602}, /* East Asian ideograph */ - {"\x7E", 0, 0x7603}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page143 = { - marc8_31page143_flat, 0 -}; -/* PAGE 142 */ -struct yaz_iconv_trie_flat marc8_31page142_flat[] = { - {"\x25", 0, 0x750E}, /* East Asian ideograph */ - {"\x28", 0, 0x750D}, /* East Asian ideograph */ - {"\x2C", 0, 0x7511}, /* East Asian ideograph */ - {"\x2D", 0, 0x750F}, /* East Asian ideograph */ - {"\x32", 0, 0x7512}, /* East Asian ideograph */ - {"\x33", 0, 0x7513}, /* East Asian ideograph */ - {"\x39", 0, 0x7517}, /* East Asian ideograph */ - {"\x42", 0, 0x7521}, /* East Asian ideograph */ - {"\x44", 0, 0x7524}, /* East Asian ideograph */ - {"\x49", 0, 0x752F}, /* East Asian ideograph */ - {"\x4D", 0, 0x753A}, /* East Asian ideograph */ - {"\x4F", 0, 0x753F}, /* East Asian ideograph */ - {"\x51", 0, 0x7540}, /* East Asian ideograph */ - {"\x52", 0, 0x753E}, /* East Asian ideograph */ - {"\x55", 0, 0x754A}, /* East Asian ideograph */ - {"\x57", 0, 0x754E}, /* East Asian ideograph */ - {"\x58", 0, 0x7547}, /* East Asian ideograph */ - {"\x59", 0, 0x754B}, /* East Asian ideograph */ - {"\x5A", 0, 0x7548}, /* East Asian ideograph */ - {"\x5F", 0, 0x755F}, /* East Asian ideograph */ - {"\x60", 0, 0x755B}, /* East Asian ideograph */ - {"\x62", 0, 0x7564}, /* East Asian ideograph */ - {"\x67", 0, 0x7563}, /* East Asian ideograph */ - {"\x69", 0, 0x756F}, /* East Asian ideograph */ - {"\x6B", 0, 0x756C}, /* East Asian ideograph */ - {"\x6D", 0, 0x7579}, /* East Asian ideograph */ - {"\x6E", 0, 0x757A}, /* East Asian ideograph */ - {"\x71", 0, 0x7577}, /* East Asian ideograph */ - {"\x75", 0, 0x7571}, /* East Asian ideograph */ - {"\x79", 0, 0x757D}, /* East Asian ideograph */ - {"\x7E", 0, 0x757F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page142 = { - marc8_31page142_flat, 0 -}; -/* PAGE 141 */ -struct yaz_iconv_trie_flat marc8_31page141_flat[] = { - {"\x25", 0, 0x74BF}, /* East Asian ideograph */ - {"\x28", 0, 0x74B5}, /* East Asian ideograph */ - {"\x29", 0, 0x74BA}, /* East Asian ideograph */ - {"\x30", 0, 0x74C8}, /* East Asian ideograph */ - {"\x31", 0, 0x74C5}, /* East Asian ideograph */ - {"\x32", 0, 0x74CC}, /* East Asian ideograph */ - {"\x38", 0, 0x74D6}, /* East Asian ideograph */ - {"\x3A", 0, 0x74D4}, /* East Asian ideograph */ - {"\x3D", 0, 0x74D8}, /* East Asian ideograph */ - {"\x40", 0, 0x74DA}, /* East Asian ideograph */ - {"\x41", 0, 0x74DB}, /* East Asian ideograph */ - {"\x47", 0, 0x74DE}, /* East Asian ideograph */ - {"\x50", 0, 0x74E4}, /* East Asian ideograph */ - {"\x52", 0, 0x74E7}, /* East Asian ideograph */ - {"\x54", 0, 0x74E9}, /* East Asian ideograph */ - {"\x58", 0, 0x74F1}, /* East Asian ideograph */ - {"\x5A", 0, 0x74F0}, /* East Asian ideograph */ - {"\x5C", 0, 0x74EE}, /* East Asian ideograph */ - {"\x61", 0, 0x74F4}, /* East Asian ideograph */ - {"\x63", 0, 0x74F8}, /* East Asian ideograph */ - {"\x66", 0, 0x74FB}, /* East Asian ideograph */ - {"\x67", 0, 0x74FF}, /* East Asian ideograph */ - {"\x71", 0, 0x7505}, /* East Asian ideograph */ - {"\x77", 0, 0x7503}, /* East Asian ideograph */ - {"\x7D", 0, 0x7507}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page141 = { - marc8_31page141_flat, 0 -}; -/* PAGE 140 */ -struct yaz_iconv_trie_flat marc8_31page140_flat[] = { - {"\x21", 0, 0x7489}, /* East Asian ideograph */ - {"\x22", 0, 0x747C}, /* East Asian ideograph */ - {"\x27", 0, 0x7482}, /* East Asian ideograph */ - {"\x28", 0, 0x747E}, /* East Asian ideograph */ - {"\x2A", 0, 0x748A}, /* East Asian ideograph */ - {"\x2D", 0, 0x7486}, /* East Asian ideograph */ - {"\x30", 0, 0x747A}, /* East Asian ideograph */ - {"\x38", 0, 0x7480}, /* East Asian ideograph */ - {"\x3C", 0, 0x7481}, /* East Asian ideograph */ - {"\x3E", 0, 0x747D}, /* East Asian ideograph */ - {"\x3F", 0, 0x7485}, /* East Asian ideograph */ - {"\x40", 0, 0x7497}, /* East Asian ideograph */ - {"\x43", 0, 0x7498}, /* East Asian ideograph */ - {"\x45", 0, 0x749A}, /* East Asian ideograph */ - {"\x4D", 0, 0x74A4}, /* East Asian ideograph */ - {"\x54", 0, 0x749F}, /* East Asian ideograph */ - {"\x55", 0, 0x749D}, /* East Asian ideograph */ - {"\x56", 0, 0x748D}, /* East Asian ideograph */ - {"\x57", 0, 0x749E}, /* East Asian ideograph */ - {"\x59", 0, 0x74A0}, /* East Asian ideograph */ - {"\x5D", 0, 0x74A1}, /* East Asian ideograph */ - {"\x60", 0, 0x74B2}, /* East Asian ideograph */ - {"\x61", 0, 0x74B1}, /* East Asian ideograph */ - {"\x66", 0, 0x74B4}, /* East Asian ideograph */ - {"\x67", 0, 0x74AB}, /* East Asian ideograph */ - {"\x69", 0, 0x74AA}, /* East Asian ideograph */ - {"\x6A", 0, 0x7490}, /* East Asian ideograph */ - {"\x6C", 0, 0x74A5}, /* East Asian ideograph */ - {"\x6E", 0, 0x74A8}, /* East Asian ideograph */ - {"\x76", 0, 0x74B8}, /* East Asian ideograph */ - {"\x7A", 0, 0x74C0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page140 = { - marc8_31page140_flat, 0 -}; -/* PAGE 139 */ -struct yaz_iconv_trie_flat marc8_31page139_flat[] = { - {"\x21", 0, 0x7428}, /* East Asian ideograph */ - {"\x23", 0, 0x7429}, /* East Asian ideograph */ - {"\x28", 0, 0x7420}, /* East Asian ideograph */ - {"\x2A", 0, 0x741B}, /* East Asian ideograph */ - {"\x2B", 0, 0x7424}, /* East Asian ideograph */ - {"\x2C", 0, 0x7432}, /* East Asian ideograph */ - {"\x2D", 0, 0x742D}, /* East Asian ideograph */ - {"\x30", 0, 0x7415}, /* East Asian ideograph */ - {"\x32", 0, 0x743B}, /* East Asian ideograph */ - {"\x36", 0, 0x7444}, /* East Asian ideograph */ - {"\x40", 0, 0x7447}, /* East Asian ideograph */ - {"\x43", 0, 0x7458}, /* East Asian ideograph */ - {"\x45", 0, 0x7442}, /* East Asian ideograph */ - {"\x47", 0, 0x744B}, /* East Asian ideograph */ - {"\x4A", 0, 0x744A}, /* East Asian ideograph */ - {"\x4F", 0, 0x7452}, /* East Asian ideograph */ - {"\x55", 0, 0x7457}, /* East Asian ideograph */ - {"\x56", 0, 0x7451}, /* East Asian ideograph */ - {"\x5A", 0, 0x745D}, /* East Asian ideograph */ - {"\x5B", 0, 0x7454}, /* East Asian ideograph */ - {"\x5D", 0, 0x7440}, /* East Asian ideograph */ - {"\x60", 0, 0x746D}, /* East Asian ideograph */ - {"\x61", 0, 0x7462}, /* East Asian ideograph */ - {"\x62", 0, 0x7473}, /* East Asian ideograph */ - {"\x68", 0, 0x7474}, /* East Asian ideograph */ - {"\x69", 0, 0x746E}, /* East Asian ideograph */ - {"\x6A", 0, 0x7471}, /* East Asian ideograph */ - {"\x6B", 0, 0x7468}, /* East Asian ideograph */ - {"\x78", 0, 0x7460}, /* East Asian ideograph */ - {"\x79", 0, 0x7472}, /* East Asian ideograph */ - {"\x7A", 0, 0x7484}, /* East Asian ideograph */ - {"\x7B", 0, 0x7487}, /* East Asian ideograph */ - {"\x7E", 0, 0x7488}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page139 = { - marc8_31page139_flat, 0 -}; -/* PAGE 138 */ -struct yaz_iconv_trie_flat marc8_31page138_flat[] = { - {"\x21", 0, 0x73D3}, /* East Asian ideograph */ - {"\x27", 0, 0x73EA}, /* East Asian ideograph */ - {"\x28", 0, 0x73E5}, /* East Asian ideograph */ - {"\x2A", 0, 0x73D9}, /* East Asian ideograph */ - {"\x2B", 0, 0x73EF}, /* East Asian ideograph */ - {"\x2F", 0, 0x73D4}, /* East Asian ideograph */ - {"\x30", 0, 0x73DB}, /* East Asian ideograph */ - {"\x32", 0, 0x73D6}, /* East Asian ideograph */ - {"\x35", 0, 0x73BC}, /* East Asian ideograph */ - {"\x36", 0, 0x73E7}, /* East Asian ideograph */ - {"\x38", 0, 0x73E3}, /* East Asian ideograph */ - {"\x3A", 0, 0x73DE}, /* East Asian ideograph */ - {"\x3C", 0, 0x73E6}, /* East Asian ideograph */ - {"\x3F", 0, 0x73E9}, /* East Asian ideograph */ - {"\x45", 0, 0x73F6}, /* East Asian ideograph */ - {"\x47", 0, 0x73FA}, /* East Asian ideograph */ - {"\x4A", 0, 0x73F8}, /* East Asian ideograph */ - {"\x54", 0, 0x73F5}, /* East Asian ideograph */ - {"\x5A", 0, 0x73FD}, /* East Asian ideograph */ - {"\x5C", 0, 0x7407}, /* East Asian ideograph */ - {"\x5E", 0, 0x7412}, /* East Asian ideograph */ - {"\x63", 0, 0x743C}, /* East Asian ideograph */ - {"\x66", 0, 0x742E}, /* East Asian ideograph */ - {"\x67", 0, 0x742F}, /* East Asian ideograph */ - {"\x69", 0, 0x7414}, /* East Asian ideograph */ - {"\x6A", 0, 0x742C}, /* East Asian ideograph */ - {"\x6C", 0, 0x7430}, /* East Asian ideograph */ - {"\x6E", 0, 0x742B}, /* East Asian ideograph */ - {"\x70", 0, 0x73F7}, /* East Asian ideograph */ - {"\x71", 0, 0x741A}, /* East Asian ideograph */ - {"\x78", 0, 0x7416}, /* East Asian ideograph */ - {"\x7A", 0, 0x7426}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page138 = { - marc8_31page138_flat, 0 -}; -/* PAGE 137 */ -struct yaz_iconv_trie_flat marc8_31page137_flat[] = { - {"\x21", 0, 0x734B}, /* East Asian ideograph */ - {"\x25", 0, 0x7367}, /* East Asian ideograph */ - {"\x29", 0, 0x736C}, /* East Asian ideograph */ - {"\x2B", 0, 0x736B}, /* East Asian ideograph */ - {"\x2F", 0, 0x736F}, /* East Asian ideograph */ - {"\x36", 0, 0x737C}, /* East Asian ideograph */ - {"\x38", 0, 0x737E}, /* East Asian ideograph */ - {"\x3B", 0, 0x7381}, /* East Asian ideograph */ - {"\x3F", 0, 0x7388}, /* East Asian ideograph */ - {"\x42", 0, 0x738E}, /* East Asian ideograph */ - {"\x46", 0, 0x7395}, /* East Asian ideograph */ - {"\x47", 0, 0x7392}, /* East Asian ideograph */ - {"\x48", 0, 0x7397}, /* East Asian ideograph */ - {"\x4C", 0, 0x7393}, /* East Asian ideograph */ - {"\x4D", 0, 0x7394}, /* East Asian ideograph */ - {"\x51", 0, 0x739E}, /* East Asian ideograph */ - {"\x52", 0, 0x73A6}, /* East Asian ideograph */ - {"\x5D", 0, 0x73A5}, /* East Asian ideograph */ - {"\x62", 0, 0x73A2}, /* East Asian ideograph */ - {"\x63", 0, 0x73A0}, /* East Asian ideograph */ - {"\x67", 0, 0x73B6}, /* East Asian ideograph */ - {"\x68", 0, 0x73CF}, /* East Asian ideograph */ - {"\x6A", 0, 0x73C2}, /* East Asian ideograph */ - {"\x6B", 0, 0x73D0}, /* East Asian ideograph */ - {"\x6F", 0, 0x73BF}, /* East Asian ideograph */ - {"\x70", 0, 0x73C8}, /* East Asian ideograph */ - {"\x7D", 0, 0x73CC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page137 = { - marc8_31page137_flat, 0 -}; -/* PAGE 136 */ -struct yaz_iconv_trie_flat marc8_31page136_flat[] = { - {"\x24", 0, 0x72F4}, /* East Asian ideograph */ - {"\x25", 0, 0x72FE}, /* East Asian ideograph */ - {"\x29", 0, 0x7302}, /* East Asian ideograph */ - {"\x2C", 0, 0x72FB}, /* East Asian ideograph */ - {"\x2D", 0, 0x7301}, /* East Asian ideograph */ - {"\x2E", 0, 0x72F3}, /* East Asian ideograph */ - {"\x31", 0, 0x731D}, /* East Asian ideograph */ - {"\x35", 0, 0x730B}, /* East Asian ideograph */ - {"\x36", 0, 0x7317}, /* East Asian ideograph */ - {"\x3B", 0, 0x7307}, /* East Asian ideograph */ - {"\x3E", 0, 0x7318}, /* East Asian ideograph */ - {"\x42", 0, 0x731E}, /* East Asian ideograph */ - {"\x46", 0, 0x7331}, /* East Asian ideograph */ - {"\x49", 0, 0x7338}, /* East Asian ideograph */ - {"\x4A", 0, 0x7322}, /* East Asian ideograph */ - {"\x4C", 0, 0x7332}, /* East Asian ideograph */ - {"\x4D", 0, 0x732C}, /* East Asian ideograph */ - {"\x4E", 0, 0x7327}, /* East Asian ideograph */ - {"\x4F", 0, 0x732B}, /* East Asian ideograph */ - {"\x52", 0, 0x732F}, /* East Asian ideograph */ - {"\x55", 0, 0x7328}, /* East Asian ideograph */ - {"\x5A", 0, 0x7347}, /* East Asian ideograph */ - {"\x5B", 0, 0x7348}, /* East Asian ideograph */ - {"\x5C", 0, 0x7349}, /* East Asian ideograph */ - {"\x5F", 0, 0x733B}, /* East Asian ideograph */ - {"\x62", 0, 0x733A}, /* East Asian ideograph */ - {"\x65", 0, 0x7340}, /* East Asian ideograph */ - {"\x68", 0, 0x734D}, /* East Asian ideograph */ - {"\x6B", 0, 0x7352}, /* East Asian ideograph */ - {"\x72", 0, 0x735E}, /* East Asian ideograph */ - {"\x74", 0, 0x735D}, /* East Asian ideograph */ - {"\x79", 0, 0x7360}, /* East Asian ideograph */ - {"\x7B", 0, 0x7358}, /* East Asian ideograph */ - {"\x7E", 0, 0x7362}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page136 = { - marc8_31page136_flat, 0 -}; -/* PAGE 135 */ -struct yaz_iconv_trie_flat marc8_31page135_flat[] = { - {"\x22", 0, 0x728D}, /* East Asian ideograph */ - {"\x28", 0, 0x728F}, /* East Asian ideograph */ - {"\x48", 0, 0x72A8}, /* East Asian ideograph */ - {"\x4C", 0, 0x72AB}, /* East Asian ideograph */ - {"\x4E", 0, 0x72B0}, /* East Asian ideograph */ - {"\x4F", 0, 0x72B4}, /* East Asian ideograph */ - {"\x51", 0, 0x72C6}, /* East Asian ideograph */ - {"\x52", 0, 0x72B5}, /* East Asian ideograph */ - {"\x56", 0, 0x72BC}, /* East Asian ideograph */ - {"\x58", 0, 0x72C3}, /* East Asian ideograph */ - {"\x5B", 0, 0x72C1}, /* East Asian ideograph */ - {"\x60", 0, 0x72D6}, /* East Asian ideograph */ - {"\x64", 0, 0x72D2}, /* East Asian ideograph */ - {"\x67", 0, 0x72C9}, /* East Asian ideograph */ - {"\x6C", 0, 0x72CC}, /* East Asian ideograph */ - {"\x6E", 0, 0x72DB}, /* East Asian ideograph */ - {"\x6F", 0, 0x72CD}, /* East Asian ideograph */ - {"\x73", 0, 0x72E8}, /* East Asian ideograph */ - {"\x76", 0, 0x72EB}, /* East Asian ideograph */ - {"\x79", 0, 0x72E5}, /* East Asian ideograph */ - {"\x7E", 0, 0x72FA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page135 = { - marc8_31page135_flat, 0 -}; -/* PAGE 134 */ -struct yaz_iconv_trie_flat marc8_31page134_flat[] = { - {"\x21", 0, 0x721D}, /* East Asian ideograph */ - {"\x29", 0, 0x7225}, /* East Asian ideograph */ - {"\x2A", 0, 0x7226}, /* East Asian ideograph */ - {"\x41", 0, 0x723F}, /* East Asian ideograph */ - {"\x43", 0, 0x7241}, /* East Asian ideograph */ - {"\x44", 0, 0x7242}, /* East Asian ideograph */ - {"\x4F", 0, 0x7250}, /* East Asian ideograph */ - {"\x51", 0, 0x724F}, /* East Asian ideograph */ - {"\x52", 0, 0x7253}, /* East Asian ideograph */ - {"\x53", 0, 0x7255}, /* East Asian ideograph */ - {"\x56", 0, 0x725A}, /* East Asian ideograph */ - {"\x59", 0, 0x7263}, /* East Asian ideograph */ - {"\x61", 0, 0x7273}, /* East Asian ideograph */ - {"\x63", 0, 0x726E}, /* East Asian ideograph */ - {"\x66", 0, 0x7276}, /* East Asian ideograph */ - {"\x68", 0, 0x7277}, /* East Asian ideograph */ - {"\x6B", 0, 0x727E}, /* East Asian ideograph */ - {"\x6D", 0, 0x727C}, /* East Asian ideograph */ - {"\x71", 0, 0x727F}, /* East Asian ideograph */ - {"\x74", 0, 0x7289}, /* East Asian ideograph */ - {"\x7C", 0, 0x728B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page134 = { - marc8_31page134_flat, 0 -}; -/* PAGE 133 */ -struct yaz_iconv_trie_flat marc8_31page133_flat[] = { - {"\x21", 0, 0x71DD}, /* East Asian ideograph */ - {"\x22", 0, 0x71C0}, /* East Asian ideograph */ - {"\x24", 0, 0x71C1}, /* East Asian ideograph */ - {"\x26", 0, 0x71D4}, /* East Asian ideograph */ - {"\x29", 0, 0x71CB}, /* East Asian ideograph */ - {"\x2A", 0, 0x71DE}, /* East Asian ideograph */ - {"\x32", 0, 0x71EB}, /* East Asian ideograph */ - {"\x36", 0, 0x71E8}, /* East Asian ideograph */ - {"\x3A", 0, 0x71F5}, /* East Asian ideograph */ - {"\x3D", 0, 0x71F3}, /* East Asian ideograph */ - {"\x3F", 0, 0x71E1}, /* East Asian ideograph */ - {"\x47", 0, 0x71E0}, /* East Asian ideograph */ - {"\x4B", 0, 0x720C}, /* East Asian ideograph */ - {"\x4F", 0, 0x71FC}, /* East Asian ideograph */ - {"\x56", 0, 0x71F9}, /* East Asian ideograph */ - {"\x5B", 0, 0x720E}, /* East Asian ideograph */ - {"\x5C", 0, 0x5911}, /* East Asian ideograph */ - {"\x5E", 0, 0x720A}, /* East Asian ideograph */ - {"\x60", 0, 0x7217}, /* East Asian ideograph */ - {"\x61", 0, 0x7207}, /* East Asian ideograph */ - {"\x66", 0, 0x7215}, /* East Asian ideograph */ - {"\x69", 0, 0x7213}, /* East Asian ideograph */ - {"\x6E", 0, 0x7218}, /* East Asian ideograph */ - {"\x71", 0, 0x720B}, /* East Asian ideograph */ - {"\x79", 0, 0x721A}, /* East Asian ideograph */ - {"\x7D", 0, 0x721F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page133 = { - marc8_31page133_flat, 0 -}; -/* PAGE 132 */ -struct yaz_iconv_trie_flat marc8_31page132_flat[] = { - {"\x23", 0, 0x7192}, /* East Asian ideograph */ - {"\x2B", 0, 0x7180}, /* East Asian ideograph */ - {"\x2C", 0, 0x7189}, /* East Asian ideograph */ - {"\x32", 0, 0x7185}, /* East Asian ideograph */ - {"\x33", 0, 0x7196}, /* East Asian ideograph */ - {"\x36", 0, 0x717C}, /* East Asian ideograph */ - {"\x39", 0, 0x7198}, /* East Asian ideograph */ - {"\x3C", 0, 0x7197}, /* East Asian ideograph */ - {"\x3E", 0, 0x71B5}, /* East Asian ideograph */ - {"\x3F", 0, 0x71A9}, /* East Asian ideograph */ - {"\x42", 0, 0x71A5}, /* East Asian ideograph */ - {"\x46", 0, 0x719E}, /* East Asian ideograph */ - {"\x47", 0, 0x71B2}, /* East Asian ideograph */ - {"\x4A", 0, 0x719B}, /* East Asian ideograph */ - {"\x4E", 0, 0x71AF}, /* East Asian ideograph */ - {"\x51", 0, 0x71A4}, /* East Asian ideograph */ - {"\x52", 0, 0x71A0}, /* East Asian ideograph */ - {"\x55", 0, 0x719A}, /* East Asian ideograph */ - {"\x57", 0, 0x71B3}, /* East Asian ideograph */ - {"\x59", 0, 0x71B4}, /* East Asian ideograph */ - {"\x67", 0, 0x71D1}, /* East Asian ideograph */ - {"\x69", 0, 0x71C7}, /* East Asian ideograph */ - {"\x6A", 0, 0x71B7}, /* East Asian ideograph */ - {"\x6D", 0, 0x71CA}, /* East Asian ideograph */ - {"\x6F", 0, 0x71CF}, /* East Asian ideograph */ - {"\x70", 0, 0x71D6}, /* East Asian ideograph */ - {"\x72", 0, 0x71BA}, /* East Asian ideograph */ - {"\x75", 0, 0x71C2}, /* East Asian ideograph */ - {"\x77", 0, 0x71C5}, /* East Asian ideograph */ - {"\x7A", 0, 0x71BF}, /* East Asian ideograph */ - {"\x7C", 0, 0x71B8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page132 = { - marc8_31page132_flat, 0 -}; -/* PAGE 131 */ -struct yaz_iconv_trie_flat marc8_31page131_flat[] = { - {"\x27", 0, 0x7139}, /* East Asian ideograph */ - {"\x28", 0, 0x7135}, /* East Asian ideograph */ - {"\x2C", 0, 0x713B}, /* East Asian ideograph */ - {"\x2E", 0, 0x711C}, /* East Asian ideograph */ - {"\x32", 0, 0x713D}, /* East Asian ideograph */ - {"\x35", 0, 0x712F}, /* East Asian ideograph */ - {"\x3B", 0, 0x7129}, /* East Asian ideograph */ - {"\x43", 0, 0x712E}, /* East Asian ideograph */ - {"\x48", 0, 0x7177}, /* East Asian ideograph */ - {"\x51", 0, 0x7146}, /* East Asian ideograph */ - {"\x52", 0, 0x7152}, /* East Asian ideograph */ - {"\x54", 0, 0x714F}, /* East Asian ideograph */ - {"\x55", 0, 0x715D}, /* East Asian ideograph */ - {"\x56", 0, 0x7141}, /* East Asian ideograph */ - {"\x57", 0, 0x7160}, /* East Asian ideograph */ - {"\x59", 0, 0x7175}, /* East Asian ideograph */ - {"\x5A", 0, 0x7173}, /* East Asian ideograph */ - {"\x5C", 0, 0x7143}, /* East Asian ideograph */ - {"\x5D", 0, 0x715A}, /* East Asian ideograph */ - {"\x5E", 0, 0x7176}, /* East Asian ideograph */ - {"\x60", 0, 0x714B}, /* East Asian ideograph */ - {"\x62", 0, 0x7147}, /* East Asian ideograph */ - {"\x65", 0, 0x7168}, /* East Asian ideograph */ - {"\x66", 0, 0x7171}, /* East Asian ideograph */ - {"\x67", 0, 0x715F}, /* East Asian ideograph */ - {"\x69", 0, 0x7150}, /* East Asian ideograph */ - {"\x6B", 0, 0x7153}, /* East Asian ideograph */ - {"\x70", 0, 0x7144}, /* East Asian ideograph */ - {"\x76", 0, 0x7172}, /* East Asian ideograph */ - {"\x78", 0, 0x7178}, /* East Asian ideograph */ - {"\x7B", 0, 0x7187}, /* East Asian ideograph */ - {"\x7C", 0, 0x717B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page131 = { - marc8_31page131_flat, 0 -}; -/* PAGE 130 */ -struct yaz_iconv_trie_flat marc8_31page130_flat[] = { - {"\x22", 0, 0x70DD}, /* East Asian ideograph */ - {"\x23", 0, 0x70E1}, /* East Asian ideograph */ - {"\x26", 0, 0x70E3}, /* East Asian ideograph */ - {"\x28", 0, 0x70E0}, /* East Asian ideograph */ - {"\x2B", 0, 0x70D4}, /* East Asian ideograph */ - {"\x2E", 0, 0x70D1}, /* East Asian ideograph */ - {"\x38", 0, 0x70CB}, /* East Asian ideograph */ - {"\x3A", 0, 0x70D0}, /* East Asian ideograph */ - {"\x3B", 0, 0x70C7}, /* East Asian ideograph */ - {"\x3C", 0, 0x70DA}, /* East Asian ideograph */ - {"\x3D", 0, 0x70C6}, /* East Asian ideograph */ - {"\x3F", 0, 0x70FA}, /* East Asian ideograph */ - {"\x42", 0, 0x70F7}, /* East Asian ideograph */ - {"\x44", 0, 0x7104}, /* East Asian ideograph */ - {"\x48", 0, 0x70F3}, /* East Asian ideograph */ - {"\x4A", 0, 0x7110}, /* East Asian ideograph */ - {"\x4C", 0, 0x7103}, /* East Asian ideograph */ - {"\x50", 0, 0x70F4}, /* East Asian ideograph */ - {"\x55", 0, 0x7111}, /* East Asian ideograph */ - {"\x56", 0, 0x7112}, /* East Asian ideograph */ - {"\x5C", 0, 0x710C}, /* East Asian ideograph */ - {"\x60", 0, 0x70F6}, /* East Asian ideograph */ - {"\x66", 0, 0x7113}, /* East Asian ideograph */ - {"\x67", 0, 0x70EF}, /* East Asian ideograph */ - {"\x68", 0, 0x7100}, /* East Asian ideograph */ - {"\x6C", 0, 0x711E}, /* East Asian ideograph */ - {"\x6D", 0, 0x7134}, /* East Asian ideograph */ - {"\x6E", 0, 0x7120}, /* East Asian ideograph */ - {"\x6F", 0, 0x713F}, /* East Asian ideograph */ - {"\x74", 0, 0x7131}, /* East Asian ideograph */ - {"\x75", 0, 0x712D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page130 = { - marc8_31page130_flat, 0 -}; -/* PAGE 129 */ -struct yaz_iconv_trie_flat marc8_31page129_flat[] = { - {"\x21", 0, 0x9E02}, /* East Asian ideograph */ - {"\x25", 0, 0x7066}, /* East Asian ideograph */ - {"\x27", 0, 0x7065}, /* East Asian ideograph */ - {"\x28", 0, 0x7068}, /* East Asian ideograph */ - {"\x29", 0, 0x7054}, /* East Asian ideograph */ - {"\x39", 0, 0x7074}, /* East Asian ideograph */ - {"\x3B", 0, 0x707A}, /* East Asian ideograph */ - {"\x40", 0, 0x7093}, /* East Asian ideograph */ - {"\x42", 0, 0x7086}, /* East Asian ideograph */ - {"\x48", 0, 0x7096}, /* East Asian ideograph */ - {"\x49", 0, 0x7084}, /* East Asian ideograph */ - {"\x4A", 0, 0x7081}, /* East Asian ideograph */ - {"\x56", 0, 0x7088}, /* East Asian ideograph */ - {"\x57", 0, 0x7098}, /* East Asian ideograph */ - {"\x59", 0, 0x708C}, /* East Asian ideograph */ - {"\x5C", 0, 0x70B7}, /* East Asian ideograph */ - {"\x62", 0, 0x70A1}, /* East Asian ideograph */ - {"\x63", 0, 0x70A3}, /* East Asian ideograph */ - {"\x68", 0, 0x7551}, /* East Asian ideograph */ - {"\x6F", 0, 0x70A7}, /* East Asian ideograph */ - {"\x70", 0, 0x79CC}, /* East Asian ideograph */ - {"\x71", 0, 0x70B5}, /* East Asian ideograph */ - {"\x72", 0, 0x70BF}, /* East Asian ideograph */ - {"\x73", 0, 0x70A9}, /* East Asian ideograph */ - {"\x78", 0, 0x70EA}, /* East Asian ideograph */ - {"\x7B", 0, 0x70E5}, /* East Asian ideograph */ - {"\x7C", 0, 0x70DC}, /* East Asian ideograph */ - {"\x7D", 0, 0x70D3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page129 = { - marc8_31page129_flat, 0 -}; -/* PAGE 128 */ -struct yaz_iconv_trie_flat marc8_31page128_flat[] = { - {"\x24", 0, 0x7020}, /* East Asian ideograph */ - {"\x26", 0, 0x7027}, /* East Asian ideograph */ - {"\x2B", 0, 0x701E}, /* East Asian ideograph (variant of EACC 4C4F2B) */ - {"\x2F", 0, 0x702E}, /* East Asian ideograph */ - {"\x31", 0, 0x702D}, /* East Asian ideograph */ - {"\x35", 0, 0x7021}, /* East Asian ideograph */ - {"\x39", 0, 0x7018}, /* East Asian ideograph */ - {"\x3A", 0, 0x7023}, /* East Asian ideograph */ - {"\x41", 0, 0x703C}, /* East Asian ideograph */ - {"\x44", 0, 0x7035}, /* East Asian ideograph */ - {"\x51", 0, 0x7034}, /* East Asian ideograph */ - {"\x53", 0, 0x7039}, /* East Asian ideograph */ - {"\x54", 0, 0x703A}, /* East Asian ideograph */ - {"\x5D", 0, 0x7043}, /* East Asian ideograph */ - {"\x61", 0, 0x7044}, /* East Asian ideograph */ - {"\x67", 0, 0x7047}, /* East Asian ideograph */ - {"\x69", 0, 0x7049}, /* East Asian ideograph */ - {"\x6B", 0, 0x7055}, /* East Asian ideograph */ - {"\x71", 0, 0x7052}, /* East Asian ideograph */ - {"\x73", 0, 0x705C}, /* East Asian ideograph */ - {"\x78", 0, 0x7059}, /* East Asian ideograph */ - {"\x7B", 0, 0x705E}, /* East Asian ideograph */ - {"\x7C", 0, 0x7061}, /* East Asian ideograph */ - {"\x7D", 0, 0x705D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page128 = { - marc8_31page128_flat, 0 -}; -/* PAGE 127 */ -struct yaz_iconv_trie_flat marc8_31page127_flat[] = { - {"\x21", 0, 0x6FAA}, /* East Asian ideograph */ - {"\x25", 0, 0x6FBF}, /* East Asian ideograph */ - {"\x26", 0, 0x6FC7}, /* East Asian ideograph */ - {"\x2D", 0, 0x6FC9}, /* East Asian ideograph */ - {"\x2E", 0, 0x6F5E}, /* East Asian ideograph */ - {"\x2F", 0, 0x6FC8}, /* East Asian ideograph */ - {"\x30", 0, 0x6FA0}, /* East Asian ideograph */ - {"\x32", 0, 0x6FCA}, /* East Asian ideograph */ - {"\x35", 0, 0x6FB4}, /* East Asian ideograph */ - {"\x37", 0, 0x6FAF}, /* East Asian ideograph */ - {"\x3C", 0, 0x6FA8}, /* East Asian ideograph */ - {"\x40", 0, 0x6FA5}, /* East Asian ideograph */ - {"\x41", 0, 0x6FB0}, /* East Asian ideograph */ - {"\x42", 0, 0x6FAE}, /* East Asian ideograph */ - {"\x43", 0, 0x6FD9}, /* East Asian ideograph */ - {"\x44", 0, 0x6FDA}, /* East Asian ideograph */ - {"\x50", 0, 0x6FD4}, /* East Asian ideograph */ - {"\x56", 0, 0x6FE9}, /* East Asian ideograph */ - {"\x57", 0, 0x6FF8}, /* East Asian ideograph */ - {"\x5D", 0, 0x6FDE}, /* East Asian ideograph */ - {"\x5E", 0, 0x6FEE}, /* East Asian ideograph */ - {"\x62", 0, 0x6FF0}, /* East Asian ideograph */ - {"\x66", 0, 0x7005}, /* East Asian ideograph */ - {"\x67", 0, 0x700C}, /* East Asian ideograph */ - {"\x6A", 0, 0x700D}, /* East Asian ideograph */ - {"\x72", 0, 0x7026}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page127 = { - marc8_31page127_flat, 0 -}; -/* PAGE 126 */ -struct yaz_iconv_trie_flat marc8_31page126_flat[] = { - {"\x23", 0, 0x6F7E}, /* East Asian ideograph */ - {"\x24", 0, 0x6F9D}, /* East Asian ideograph */ - {"\x27", 0, 0x6F87}, /* East Asian ideograph */ - {"\x2B", 0, 0x6F6F}, /* East Asian ideograph */ - {"\x2F", 0, 0x6F5A}, /* East Asian ideograph */ - {"\x30", 0, 0x6F60}, /* East Asian ideograph */ - {"\x35", 0, 0x6F90}, /* East Asian ideograph */ - {"\x37", 0, 0x6F8D}, /* East Asian ideograph */ - {"\x39", 0, 0x6F92}, /* East Asian ideograph */ - {"\x3A", 0, 0x6F89}, /* East Asian ideograph */ - {"\x3C", 0, 0x6F8C}, /* East Asian ideograph */ - {"\x3D", 0, 0x6F62}, /* East Asian ideograph (variant of EACC 4C4D3D) */ - {"\x44", 0, 0x6F0B}, /* East Asian ideograph */ - {"\x4B", 0, 0x6F6C}, /* East Asian ideograph */ - {"\x4D", 0, 0x6F8B}, /* East Asian ideograph */ - {"\x58", 0, 0x6E88}, /* East Asian ideograph */ - {"\x5A", 0, 0x6F55}, /* East Asian ideograph */ - {"\x5F", 0, 0x6F72}, /* East Asian ideograph */ - {"\x62", 0, 0x6F57}, /* East Asian ideograph */ - {"\x63", 0, 0x6F5F}, /* East Asian ideograph */ - {"\x68", 0, 0x6F5D}, /* East Asian ideograph */ - {"\x73", 0, 0x6FB6}, /* East Asian ideograph */ - {"\x74", 0, 0x6F9F}, /* East Asian ideograph */ - {"\x79", 0, 0x6FA6}, /* East Asian ideograph */ - {"\x7C", 0, 0x6FC6}, /* East Asian ideograph */ - {"\x7D", 0, 0x6FBC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page126 = { - marc8_31page126_flat, 0 -}; -/* PAGE 125 */ -struct yaz_iconv_trie_flat marc8_31page125_flat[] = { - {"\x21", 0, 0x6EC3}, /* East Asian ideograph */ - {"\x24", 0, 0x6EB4}, /* East Asian ideograph */ - {"\x26", 0, 0x6EB2}, /* East Asian ideograph */ - {"\x29", 0, 0x6EB5}, /* East Asian ideograph */ - {"\x2E", 0, 0x6EF8}, /* East Asian ideograph */ - {"\x30", 0, 0x6F37}, /* East Asian ideograph */ - {"\x34", 0, 0x6EFD}, /* East Asian ideograph */ - {"\x35", 0, 0x6F09}, /* East Asian ideograph */ - {"\x3C", 0, 0x6F3B}, /* East Asian ideograph */ - {"\x3D", 0, 0x6F63}, /* East Asian ideograph */ - {"\x3E", 0, 0x6F12}, /* East Asian ideograph */ - {"\x3F", 0, 0x6F26}, /* East Asian ideograph */ - {"\x41", 0, 0x6F1A}, /* East Asian ideograph */ - {"\x42", 0, 0x6EF6}, /* East Asian ideograph */ - {"\x43", 0, 0x6F19}, /* East Asian ideograph */ - {"\x44", 0, 0x6F00}, /* East Asian ideograph */ - {"\x4B", 0, 0x6F24}, /* East Asian ideograph */ - {"\x51", 0, 0x6F18}, /* East Asian ideograph */ - {"\x57", 0, 0x6F1F}, /* East Asian ideograph */ - {"\x5A", 0, 0x6F0A}, /* East Asian ideograph */ - {"\x5E", 0, 0x6F36}, /* East Asian ideograph */ - {"\x60", 0, 0x6EF9}, /* East Asian ideograph */ - {"\x61", 0, 0x6EEE}, /* East Asian ideograph */ - {"\x62", 0, 0x6F41}, /* East Asian ideograph */ - {"\x64", 0, 0x6F95}, /* East Asian ideograph */ - {"\x65", 0, 0x6F2D}, /* East Asian ideograph */ - {"\x67", 0, 0x6F34}, /* East Asian ideograph */ - {"\x6B", 0, 0x6F49}, /* East Asian ideograph */ - {"\x6D", 0, 0x6F30}, /* East Asian ideograph */ - {"\x76", 0, 0x6EFA}, /* East Asian ideograph */ - {"\x77", 0, 0x6EEB}, /* East Asian ideograph */ - {"\x78", 0, 0x6F08}, /* East Asian ideograph */ - {"\x79", 0, 0x6F0E}, /* East Asian ideograph */ - {"\x7B", 0, 0x6F35}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page125 = { - marc8_31page125_flat, 0 -}; -/* PAGE 124 */ -struct yaz_iconv_trie_flat marc8_31page124_flat[] = { - {"\x22", 0, 0x6E28}, /* East Asian ideograph */ - {"\x24", 0, 0x6E5C}, /* East Asian ideograph */ - {"\x26", 0, 0x6E31}, /* East Asian ideograph */ - {"\x28", 0, 0x6E5E}, /* East Asian ideograph */ - {"\x2C", 0, 0x6E84}, /* East Asian ideograph */ - {"\x2E", 0, 0x6E2E}, /* East Asian ideograph */ - {"\x30", 0, 0x6E36}, /* East Asian ideograph */ - {"\x31", 0, 0x6E5D}, /* East Asian ideograph */ - {"\x32", 0, 0x6E72}, /* East Asian ideograph */ - {"\x33", 0, 0x6E30}, /* East Asian ideograph */ - {"\x34", 0, 0x6E53}, /* East Asian ideograph */ - {"\x36", 0, 0x6E39}, /* East Asian ideograph */ - {"\x37", 0, 0x6E71}, /* East Asian ideograph */ - {"\x38", 0, 0x6E69}, /* East Asian ideograph */ - {"\x39", 0, 0x6E6B}, /* East Asian ideograph */ - {"\x3B", 0, 0x6E8B}, /* East Asian ideograph */ - {"\x3E", 0, 0x6E76}, /* East Asian ideograph */ - {"\x40", 0, 0x6E2A}, /* East Asian ideograph */ - {"\x41", 0, 0x6E4C}, /* East Asian ideograph */ - {"\x42", 0, 0x6E22}, /* East Asian ideograph */ - {"\x43", 0, 0x6ECE}, /* East Asian ideograph */ - {"\x45", 0, 0x6E9B}, /* East Asian ideograph */ - {"\x46", 0, 0x6E9F}, /* East Asian ideograph */ - {"\x48", 0, 0x6EC8}, /* East Asian ideograph */ - {"\x49", 0, 0x6ED8}, /* East Asian ideograph */ - {"\x4A", 0, 0x6E8F}, /* East Asian ideograph */ - {"\x4D", 0, 0x6E93}, /* East Asian ideograph */ - {"\x4F", 0, 0x6EA0}, /* East Asian ideograph */ - {"\x51", 0, 0x6EB1}, /* East Asian ideograph */ - {"\x57", 0, 0x6EA8}, /* East Asian ideograph */ - {"\x59", 0, 0x6E92}, /* East Asian ideograph */ - {"\x5A", 0, 0x6EA7}, /* East Asian ideograph */ - {"\x5E", 0, 0x6E8E}, /* East Asian ideograph */ - {"\x60", 0, 0x6ED9}, /* East Asian ideograph */ - {"\x61", 0, 0x6EBD}, /* East Asian ideograph */ - {"\x63", 0, 0x6EC1}, /* East Asian ideograph */ - {"\x69", 0, 0x6EBB}, /* East Asian ideograph */ - {"\x6A", 0, 0x6EC9}, /* East Asian ideograph */ - {"\x6C", 0, 0x6EB3}, /* East Asian ideograph */ - {"\x6D", 0, 0x6EB7}, /* East Asian ideograph */ - {"\x75", 0, 0x6EA4}, /* East Asian ideograph */ - {"\x79", 0, 0x6ECF}, /* East Asian ideograph */ - {"\x7C", 0, 0x6ECA}, /* East Asian ideograph */ - {"\x7D", 0, 0x6ED5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page124 = { - marc8_31page124_flat, 0 -}; -/* PAGE 123 */ -struct yaz_iconv_trie_flat marc8_31page123_flat[] = { - {"\x2A", 0, 0x6DDF}, /* East Asian ideograph */ - {"\x2D", 0, 0x6DD3}, /* East Asian ideograph */ - {"\x32", 0, 0x6DFC}, /* East Asian ideograph */ - {"\x35", 0, 0x6DDD}, /* East Asian ideograph */ - {"\x36", 0, 0x6DDC}, /* East Asian ideograph */ - {"\x39", 0, 0x6DDB}, /* East Asian ideograph */ - {"\x3D", 0, 0x6DA4}, /* East Asian ideograph */ - {"\x44", 0, 0x6E12}, /* East Asian ideograph */ - {"\x46", 0, 0x6DF0}, /* East Asian ideograph */ - {"\x4A", 0, 0x6DE6}, /* East Asian ideograph */ - {"\x4C", 0, 0x6E1F}, /* East Asian ideograph */ - {"\x50", 0, 0x6E27}, /* East Asian ideograph */ - {"\x55", 0, 0x6E49}, /* East Asian ideograph */ - {"\x58", 0, 0x6E3C}, /* East Asian ideograph */ - {"\x60", 0, 0x6E8A}, /* East Asian ideograph */ - {"\x62", 0, 0x6E4B}, /* East Asian ideograph */ - {"\x66", 0, 0x6E62}, /* East Asian ideograph */ - {"\x6A", 0, 0x6E51}, /* East Asian ideograph */ - {"\x6B", 0, 0x6E44}, /* East Asian ideograph */ - {"\x6D", 0, 0x6E63}, /* East Asian ideograph */ - {"\x71", 0, 0x6E73}, /* East Asian ideograph */ - {"\x74", 0, 0x6E4F}, /* East Asian ideograph */ - {"\x77", 0, 0x6E4E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page123 = { - marc8_31page123_flat, 0 -}; -/* PAGE 122 */ -struct yaz_iconv_trie_flat marc8_31page122_flat[] = { - {"\x25", 0, 0x6D6D}, /* East Asian ideograph */ - {"\x26", 0, 0x6D6F}, /* East Asian ideograph */ - {"\x28", 0, 0x6D61}, /* East Asian ideograph */ - {"\x29", 0, 0x6D91}, /* East Asian ideograph */ - {"\x2C", 0, 0x6D81}, /* East Asian ideograph */ - {"\x2E", 0, 0x6D8A}, /* East Asian ideograph */ - {"\x2F", 0, 0x6D34}, /* East Asian ideograph (variant of EACC 34492F) */ - {"\x34", 0, 0x6D79}, /* East Asian ideograph */ - {"\x35", 0, 0x6DEF}, /* East Asian ideograph */ - {"\x39", 0, 0x6D7F}, /* East Asian ideograph */ - {"\x3B", 0, 0x6D85}, /* East Asian ideograph */ - {"\x3C", 0, 0x6D65}, /* East Asian ideograph */ - {"\x3E", 0, 0x6D5E}, /* East Asian ideograph */ - {"\x40", 0, 0x6D67}, /* East Asian ideograph */ - {"\x43", 0, 0x6D94}, /* East Asian ideograph */ - {"\x46", 0, 0x6D60}, /* East Asian ideograph */ - {"\x48", 0, 0x6D98}, /* East Asian ideograph */ - {"\x4B", 0, 0x6D7C}, /* East Asian ideograph */ - {"\x4C", 0, 0x6D70}, /* East Asian ideograph */ - {"\x4F", 0, 0x6D96}, /* East Asian ideograph */ - {"\x59", 0, 0x6DAB}, /* East Asian ideograph */ - {"\x5A", 0, 0x6DB4}, /* East Asian ideograph */ - {"\x5C", 0, 0x6DAA}, /* East Asian ideograph */ - {"\x60", 0, 0x6DEC}, /* East Asian ideograph */ - {"\x6A", 0, 0x6DAC}, /* East Asian ideograph */ - {"\x6B", 0, 0x6DB7}, /* East Asian ideograph */ - {"\x6C", 0, 0x6DE2}, /* East Asian ideograph */ - {"\x6D", 0, 0x6DD5}, /* East Asian ideograph */ - {"\x6E", 0, 0x6DE9}, /* East Asian ideograph */ - {"\x71", 0, 0x6DF6}, /* East Asian ideograph */ - {"\x79", 0, 0x6E0F}, /* East Asian ideograph */ - {"\x7B", 0, 0x6DBF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page122 = { - marc8_31page122_flat, 0 -}; -/* PAGE 121 */ -struct yaz_iconv_trie_flat marc8_31page121_flat[] = { - {"\x24", 0, 0x6CD8}, /* East Asian ideograph */ - {"\x26", 0, 0x6CC6}, /* East Asian ideograph */ - {"\x28", 0, 0x6CCE}, /* East Asian ideograph */ - {"\x29", 0, 0x6CE9}, /* East Asian ideograph */ - {"\x2D", 0, 0x6CF2}, /* East Asian ideograph */ - {"\x2F", 0, 0x6CE0}, /* East Asian ideograph */ - {"\x30", 0, 0x6CD1}, /* East Asian ideograph */ - {"\x32", 0, 0x6CD2}, /* East Asian ideograph */ - {"\x33", 0, 0x6CB4}, /* East Asian ideograph */ - {"\x37", 0, 0x6D1D}, /* East Asian ideograph */ - {"\x3B", 0, 0x6D28}, /* East Asian ideograph */ - {"\x44", 0, 0x6D39}, /* East Asian ideograph */ - {"\x4D", 0, 0x6D26}, /* East Asian ideograph */ - {"\x4E", 0, 0x6D27}, /* East Asian ideograph */ - {"\x4F", 0, 0x6D0F}, /* East Asian ideograph */ - {"\x50", 0, 0x6D0A}, /* East Asian ideograph */ - {"\x51", 0, 0x6D3F}, /* East Asian ideograph */ - {"\x5A", 0, 0x6D07}, /* East Asian ideograph */ - {"\x5B", 0, 0x6D04}, /* East Asian ideograph */ - {"\x5C", 0, 0x6CDA}, /* East Asian ideograph */ - {"\x60", 0, 0x6D2E}, /* East Asian ideograph */ - {"\x61", 0, 0x6D35}, /* East Asian ideograph */ - {"\x62", 0, 0x6D3A}, /* East Asian ideograph */ - {"\x64", 0, 0x6D19}, /* East Asian ideograph */ - {"\x67", 0, 0x6D0E}, /* East Asian ideograph */ - {"\x6A", 0, 0x6D2B}, /* East Asian ideograph */ - {"\x6B", 0, 0x6D11}, /* East Asian ideograph */ - {"\x6C", 0, 0x6D00}, /* East Asian ideograph */ - {"\x6D", 0, 0x6D24}, /* East Asian ideograph */ - {"\x6F", 0, 0x6D33}, /* East Asian ideograph */ - {"\x73", 0, 0x6D63}, /* East Asian ideograph */ - {"\x77", 0, 0x6DA5}, /* East Asian ideograph */ - {"\x7D", 0, 0x6D92}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page121 = { - marc8_31page121_flat, 0 -}; -/* PAGE 120 */ -struct yaz_iconv_trie_flat marc8_31page120_flat[] = { - {"\x24", 0, 0x6C5C}, /* East Asian ideograph */ - {"\x26", 0, 0x6C5B}, /* East Asian ideograph */ - {"\x27", 0, 0x6C4D}, /* East Asian ideograph */ - {"\x2B", 0, 0x6C4B}, /* East Asian ideograph */ - {"\x2C", 0, 0x6C54}, /* East Asian ideograph */ - {"\x2D", 0, 0x6C63}, /* East Asian ideograph */ - {"\x30", 0, 0x6C78}, /* East Asian ideograph */ - {"\x31", 0, 0x6C74}, /* East Asian ideograph */ - {"\x32", 0, 0x6C86}, /* East Asian ideograph */ - {"\x33", 0, 0x6C76}, /* East Asian ideograph */ - {"\x38", 0, 0x6C6C}, /* East Asian ideograph */ - {"\x39", 0, 0x6C67}, /* East Asian ideograph */ - {"\x3B", 0, 0x6C84}, /* East Asian ideograph */ - {"\x3E", 0, 0x6C94}, /* East Asian ideograph */ - {"\x40", 0, 0x6C8F}, /* East Asian ideograph */ - {"\x42", 0, 0x6C65}, /* East Asian ideograph */ - {"\x47", 0, 0x6C6F}, /* East Asian ideograph */ - {"\x49", 0, 0x6C9D}, /* East Asian ideograph */ - {"\x4A", 0, 0x6C69}, /* East Asian ideograph */ - {"\x4B", 0, 0x6C9A}, /* East Asian ideograph */ - {"\x4C", 0, 0x6C6D}, /* East Asian ideograph */ - {"\x4D", 0, 0x6C93}, /* East Asian ideograph */ - {"\x51", 0, 0x6C87}, /* East Asian ideograph */ - {"\x52", 0, 0x6C6E}, /* East Asian ideograph */ - {"\x56", 0, 0x6C95}, /* East Asian ideograph */ - {"\x5A", 0, 0x6C82}, /* East Asian ideograph */ - {"\x5C", 0, 0x6CA0}, /* East Asian ideograph */ - {"\x62", 0, 0x6CEB}, /* East Asian ideograph */ - {"\x63", 0, 0x6CEE}, /* East Asian ideograph */ - {"\x64", 0, 0x6CC0}, /* East Asian ideograph */ - {"\x66", 0, 0x6CEF}, /* East Asian ideograph */ - {"\x67", 0, 0x6CAC}, /* East Asian ideograph */ - {"\x6E", 0, 0x6CAD}, /* East Asian ideograph (variant of EACC 4C476E) */ - {"\x70", 0, 0x6CAF}, /* East Asian ideograph */ - {"\x72", 0, 0x6CF5}, /* East Asian ideograph */ - {"\x7A", 0, 0x6CBA}, /* East Asian ideograph */ - {"\x7B", 0, 0x7553}, /* East Asian ideograph */ - {"\x7D", 0, 0x6CC2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page120 = { - marc8_31page120_flat, 0 -}; -/* PAGE 119 */ -struct yaz_iconv_trie_flat marc8_31page119_flat[] = { - {"\x2A", 0, 0x6BF6}, /* East Asian ideograph */ - {"\x2C", 0, 0x6BF3}, /* East Asian ideograph */ - {"\x33", 0, 0x6BF8}, /* East Asian ideograph */ - {"\x37", 0, 0x6BFA}, /* East Asian ideograph */ - {"\x38", 0, 0x6BF9}, /* East Asian ideograph */ - {"\x42", 0, 0x6BFF}, /* East Asian ideograph */ - {"\x44", 0, 0x6C06}, /* East Asian ideograph */ - {"\x48", 0, 0x6C04}, /* East Asian ideograph */ - {"\x4A", 0, 0x6C05}, /* East Asian ideograph */ - {"\x4C", 0, 0x6C08}, /* East Asian ideograph */ - {"\x51", 0, 0x6C0C}, /* East Asian ideograph */ - {"\x52", 0, 0x6C0D}, /* East Asian ideograph */ - {"\x59", 0, 0x6C15}, /* East Asian ideograph */ - {"\x5A", 0, 0x6C18}, /* East Asian ideograph */ - {"\x5B", 0, 0x6C19}, /* East Asian ideograph */ - {"\x5C", 0, 0x6C1A}, /* East Asian ideograph */ - {"\x5E", 0, 0x6C1D}, /* East Asian ideograph */ - {"\x60", 0, 0x6C20}, /* East Asian ideograph */ - {"\x62", 0, 0x6C21}, /* East Asian ideograph */ - {"\x64", 0, 0x6C2A}, /* East Asian ideograph */ - {"\x66", 0, 0x6C2D}, /* East Asian ideograph */ - {"\x67", 0, 0x6C30}, /* East Asian ideograph */ - {"\x68", 0, 0x6C2C}, /* East Asian ideograph */ - {"\x69", 0, 0x6C31}, /* East Asian ideograph */ - {"\x70", 0, 0x6C3B}, /* East Asian ideograph */ - {"\x74", 0, 0x6C3F}, /* East Asian ideograph */ - {"\x78", 0, 0x6C46}, /* East Asian ideograph */ - {"\x7A", 0, 0x6C52}, /* East Asian ideograph */ - {"\x7B", 0, 0x6C62}, /* East Asian ideograph */ - {"\x7C", 0, 0x6C4A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page119 = { - marc8_31page119_flat, 0 -}; -/* PAGE 118 */ -struct yaz_iconv_trie_flat marc8_31page118_flat[] = { - {"\x25", 0, 0x6B99}, /* East Asian ideograph */ - {"\x29", 0, 0x6B9B}, /* East Asian ideograph */ - {"\x35", 0, 0x6BA3}, /* East Asian ideograph */ - {"\x36", 0, 0x6BA2}, /* East Asian ideograph */ - {"\x38", 0, 0x6BAA}, /* East Asian ideograph */ - {"\x39", 0, 0x6BAB}, /* East Asian ideograph */ - {"\x3B", 0, 0x6BAD}, /* East Asian ideograph */ - {"\x3D", 0, 0x6BB0}, /* East Asian ideograph */ - {"\x3F", 0, 0x6BB3}, /* East Asian ideograph */ - {"\x47", 0, 0x6BBD}, /* East Asian ideograph */ - {"\x4D", 0, 0x6996}, /* East Asian ideograph */ - {"\x54", 0, 0x6BC8}, /* East Asian ideograph */ - {"\x5B", 0, 0x6BD6}, /* East Asian ideograph */ - {"\x60", 0, 0x6BDA}, /* East Asian ideograph */ - {"\x62", 0, 0x6BDC}, /* East Asian ideograph */ - {"\x63", 0, 0x6BDD}, /* East Asian ideograph */ - {"\x65", 0, 0x6BDF}, /* East Asian ideograph */ - {"\x6F", 0, 0x6BE7}, /* East Asian ideograph */ - {"\x70", 0, 0x6BEA}, /* East Asian ideograph */ - {"\x71", 0, 0x6BE8}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page118 = { - marc8_31page118_flat, 0 -}; -/* PAGE 117 */ -struct yaz_iconv_trie_flat marc8_31page117_flat[] = { - {"\x2A", 0, 0x6B35}, /* East Asian ideograph */ - {"\x2C", 0, 0x6B37}, /* East Asian ideograph */ - {"\x2D", 0, 0x6B3B}, /* East Asian ideograph */ - {"\x32", 0, 0x6B39}, /* East Asian ideograph */ - {"\x35", 0, 0x6B3F}, /* East Asian ideograph */ - {"\x37", 0, 0x6B46}, /* East Asian ideograph */ - {"\x38", 0, 0x6B41}, /* East Asian ideograph */ - {"\x3A", 0, 0x6B40}, /* East Asian ideograph */ - {"\x3B", 0, 0x6B42}, /* East Asian ideograph */ - {"\x3C", 0, 0x6B43}, /* East Asian ideograph */ - {"\x3E", 0, 0x6B48}, /* East Asian ideograph */ - {"\x3F", 0, 0x6B4A}, /* East Asian ideograph */ - {"\x46", 0, 0x6B4E}, /* East Asian ideograph (variant of EACC 4C4446) */ - {"\x4A", 0, 0x6B57}, /* East Asian ideograph */ - {"\x4C", 0, 0x6B54}, /* East Asian ideograph */ - {"\x4E", 0, 0x6B55}, /* East Asian ideograph */ - {"\x51", 0, 0x6B5C}, /* East Asian ideograph */ - {"\x53", 0, 0x6B5E}, /* East Asian ideograph */ - {"\x54", 0, 0x6B60}, /* East Asian ideograph */ - {"\x5B", 0, 0x6B6B}, /* East Asian ideograph */ - {"\x5D", 0, 0x6B6C}, /* East Asian ideograph */ - {"\x5F", 0, 0x6B6E}, /* East Asian ideograph */ - {"\x61", 0, 0x6B71}, /* East Asian ideograph */ - {"\x6B", 0, 0x6B7E}, /* East Asian ideograph */ - {"\x71", 0, 0x6B82}, /* East Asian ideograph */ - {"\x73", 0, 0x6B84}, /* East Asian ideograph */ - {"\x79", 0, 0x6B8D}, /* East Asian ideograph */ - {"\x7B", 0, 0x6B95}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page117 = { - marc8_31page117_flat, 0 -}; -/* PAGE 116 */ -struct yaz_iconv_trie_flat marc8_31page116_flat[] = { - {"\x25", 0, 0x6ACC}, /* East Asian ideograph */ - {"\x28", 0, 0x6AD1}, /* East Asian ideograph */ - {"\x33", 0, 0x6ADF}, /* East Asian ideograph */ - {"\x34", 0, 0x6ACD}, /* East Asian ideograph */ - {"\x35", 0, 0x6ADE}, /* East Asian ideograph */ - {"\x37", 0, 0x6AEC}, /* East Asian ideograph */ - {"\x39", 0, 0x6AF3}, /* East Asian ideograph */ - {"\x3A", 0, 0x6AE7}, /* East Asian ideograph */ - {"\x3F", 0, 0x6AEB}, /* East Asian ideograph */ - {"\x40", 0, 0x6AEA}, /* East Asian ideograph */ - {"\x44", 0, 0x6AF1}, /* East Asian ideograph */ - {"\x45", 0, 0x6AE8}, /* East Asian ideograph */ - {"\x48", 0, 0x6AF5}, /* East Asian ideograph */ - {"\x4E", 0, 0x6AFD}, /* East Asian ideograph */ - {"\x50", 0, 0x6AFA}, /* East Asian ideograph */ - {"\x52", 0, 0x6B01}, /* East Asian ideograph */ - {"\x58", 0, 0x6B03}, /* East Asian ideograph */ - {"\x59", 0, 0x6AF8}, /* East Asian ideograph */ - {"\x5F", 0, 0x6B0D}, /* East Asian ideograph */ - {"\x60", 0, 0x6B09}, /* East Asian ideograph */ - {"\x61", 0, 0x6B0E}, /* East Asian ideograph */ - {"\x67", 0, 0x6B11}, /* East Asian ideograph */ - {"\x6D", 0, 0x6B19}, /* East Asian ideograph */ - {"\x6E", 0, 0x6B17}, /* East Asian ideograph */ - {"\x72", 0, 0x6B1E}, /* East Asian ideograph */ - {"\x7E", 0, 0x6B2C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page116 = { - marc8_31page116_flat, 0 -}; -/* PAGE 115 */ -struct yaz_iconv_trie_flat marc8_31page115_flat[] = { - {"\x22", 0, 0x6A7F}, /* East Asian ideograph */ - {"\x23", 0, 0x6A89}, /* East Asian ideograph */ - {"\x24", 0, 0x6A91}, /* East Asian ideograph */ - {"\x26", 0, 0x6A9F}, /* East Asian ideograph */ - {"\x2A", 0, 0x6A92}, /* East Asian ideograph */ - {"\x2B", 0, 0x6AA3}, /* East Asian ideograph */ - {"\x34", 0, 0x6A99}, /* East Asian ideograph */ - {"\x35", 0, 0x6A9D}, /* East Asian ideograph */ - {"\x36", 0, 0x6A7E}, /* East Asian ideograph */ - {"\x37", 0, 0x6A9B}, /* East Asian ideograph */ - {"\x42", 0, 0x6AA0}, /* East Asian ideograph */ - {"\x47", 0, 0x6A90}, /* East Asian ideograph */ - {"\x49", 0, 0x6A9E}, /* East Asian ideograph */ - {"\x4A", 0, 0x6A87}, /* East Asian ideograph */ - {"\x4B", 0, 0x6A8E}, /* East Asian ideograph */ - {"\x51", 0, 0x6AAB}, /* East Asian ideograph */ - {"\x55", 0, 0x6AC8}, /* East Asian ideograph */ - {"\x57", 0, 0x6AAE}, /* East Asian ideograph */ - {"\x5D", 0, 0x6ABF}, /* East Asian ideograph */ - {"\x64", 0, 0x6ACA}, /* East Asian ideograph */ - {"\x68", 0, 0x6AB4}, /* East Asian ideograph */ - {"\x79", 0, 0x6AE6}, /* East Asian ideograph */ - {"\x7E", 0, 0x6AED}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page115 = { - marc8_31page115_flat, 0 -}; -/* PAGE 114 */ -struct yaz_iconv_trie_flat marc8_31page114_flat[] = { - {"\x23", 0, 0x69F0}, /* East Asian ideograph */ - {"\x24", 0, 0x69F2}, /* East Asian ideograph */ - {"\x28", 0, 0x6A14}, /* East Asian ideograph */ - {"\x29", 0, 0x6A63}, /* East Asian ideograph */ - {"\x37", 0, 0x6A67}, /* East Asian ideograph */ - {"\x39", 0, 0x6A43}, /* East Asian ideograph */ - {"\x3A", 0, 0x6A33}, /* East Asian ideograph */ - {"\x3B", 0, 0x6A32}, /* East Asian ideograph */ - {"\x3C", 0, 0x6A5A}, /* East Asian ideograph */ - {"\x3F", 0, 0x6A28}, /* East Asian ideograph */ - {"\x40", 0, 0x6A48}, /* East Asian ideograph */ - {"\x41", 0, 0x6A50}, /* East Asian ideograph */ - {"\x42", 0, 0x6A52}, /* East Asian ideograph */ - {"\x43", 0, 0x6A72}, /* East Asian ideograph */ - {"\x45", 0, 0x6A3E}, /* East Asian ideograph */ - {"\x46", 0, 0x6A77}, /* East Asian ideograph */ - {"\x47", 0, 0x6A5B}, /* East Asian ideograph */ - {"\x4A", 0, 0x6A5E}, /* East Asian ideograph */ - {"\x4B", 0, 0x6A5C}, /* East Asian ideograph */ - {"\x4F", 0, 0x6A51}, /* East Asian ideograph */ - {"\x51", 0, 0x6A56}, /* East Asian ideograph */ - {"\x53", 0, 0x6A36}, /* East Asian ideograph */ - {"\x56", 0, 0x6A7A}, /* East Asian ideograph */ - {"\x58", 0, 0x6A3F}, /* East Asian ideograph */ - {"\x6C", 0, 0x69F9}, /* East Asian ideograph */ - {"\x6D", 0, 0x6A64}, /* East Asian ideograph */ - {"\x73", 0, 0x6A8D}, /* East Asian ideograph */ - {"\x75", 0, 0x6AA8}, /* East Asian ideograph */ - {"\x77", 0, 0x6AA5}, /* East Asian ideograph */ - {"\x79", 0, 0x6A96}, /* East Asian ideograph */ - {"\x7E", 0, 0x6A7D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page114 = { - marc8_31page114_flat, 0 -}; -/* PAGE 113 */ -struct yaz_iconv_trie_flat marc8_31page113_flat[] = { - {"\x27", 0, 0x69BF}, /* East Asian ideograph */ - {"\x2D", 0, 0x69A3}, /* East Asian ideograph */ - {"\x2E", 0, 0x69A4}, /* East Asian ideograph */ - {"\x34", 0, 0x69D4}, /* East Asian ideograph */ - {"\x38", 0, 0x69C3}, /* East Asian ideograph */ - {"\x3D", 0, 0x6A12}, /* East Asian ideograph */ - {"\x3E", 0, 0x6A11}, /* East Asian ideograph */ - {"\x41", 0, 0x6A00}, /* East Asian ideograph */ - {"\x46", 0, 0x69E6}, /* East Asian ideograph */ - {"\x4B", 0, 0x6A0B}, /* East Asian ideograph */ - {"\x4C", 0, 0x69E5}, /* East Asian ideograph */ - {"\x4D", 0, 0x69E9}, /* East Asian ideograph */ - {"\x50", 0, 0x69FC}, /* East Asian ideograph */ - {"\x54", 0, 0x6A17}, /* East Asian ideograph */ - {"\x56", 0, 0x69E7}, /* East Asian ideograph */ - {"\x57", 0, 0x69EB}, /* East Asian ideograph */ - {"\x5B", 0, 0x69F1}, /* East Asian ideograph */ - {"\x5E", 0, 0x6A2B}, /* East Asian ideograph */ - {"\x5F", 0, 0x69FF}, /* East Asian ideograph */ - {"\x60", 0, 0x6A20}, /* East Asian ideograph */ - {"\x64", 0, 0x69ED}, /* East Asian ideograph */ - {"\x67", 0, 0x6A1B}, /* East Asian ideograph */ - {"\x68", 0, 0x6A2D}, /* East Asian ideograph */ - {"\x6E", 0, 0x6A18}, /* East Asian ideograph */ - {"\x72", 0, 0x6A1D}, /* East Asian ideograph */ - {"\x75", 0, 0x6A0C}, /* East Asian ideograph */ - {"\x76", 0, 0x6A0F}, /* East Asian ideograph */ - {"\x7C", 0, 0x69EE}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page113 = { - marc8_31page113_flat, 0 -}; -/* PAGE 112 */ -struct yaz_iconv_trie_flat marc8_31page112_flat[] = { - {"\x21", 0, 0x6952}, /* East Asian ideograph */ - {"\x25", 0, 0x695B}, /* East Asian ideograph */ - {"\x2D", 0, 0x6985}, /* East Asian ideograph */ - {"\x32", 0, 0x693D}, /* East Asian ideograph */ - {"\x35", 0, 0x6978}, /* East Asian ideograph */ - {"\x37", 0, 0x697B}, /* East Asian ideograph */ - {"\x3A", 0, 0x6934}, /* East Asian ideograph */ - {"\x3B", 0, 0x6969}, /* East Asian ideograph */ - {"\x3D", 0, 0x6944}, /* East Asian ideograph */ - {"\x3E", 0, 0x696F}, /* East Asian ideograph */ - {"\x44", 0, 0x698A}, /* East Asian ideograph */ - {"\x45", 0, 0x69A0}, /* East Asian ideograph */ - {"\x46", 0, 0x69B1}, /* East Asian ideograph */ - {"\x50", 0, 0x69CE}, /* East Asian ideograph */ - {"\x51", 0, 0x69CA}, /* East Asian ideograph */ - {"\x59", 0, 0x698D}, /* East Asian ideograph */ - {"\x5A", 0, 0x6991}, /* East Asian ideograph */ - {"\x5C", 0, 0x69AA}, /* East Asian ideograph */ - {"\x60", 0, 0x69BC}, /* East Asian ideograph */ - {"\x61", 0, 0x69A7}, /* East Asian ideograph */ - {"\x65", 0, 0x699E}, /* East Asian ideograph */ - {"\x68", 0, 0x69D9}, /* East Asian ideograph */ - {"\x6A", 0, 0x698E}, /* East Asian ideograph */ - {"\x6D", 0, 0x69D6}, /* East Asian ideograph */ - {"\x75", 0, 0x69A5}, /* East Asian ideograph */ - {"\x77", 0, 0x69BE}, /* East Asian ideograph */ - {"\x78", 0, 0x69D1}, /* East Asian ideograph */ - {"\x7A", 0, 0x69F6}, /* East Asian ideograph */ - {"\x7E", 0, 0x69D5}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page112 = { - marc8_31page112_flat, 0 -}; -/* PAGE 111 */ -struct yaz_iconv_trie_flat marc8_31page111_flat[] = { - {"\x21", 0, 0x6907}, /* East Asian ideograph */ - {"\x23", 0, 0x691A}, /* East Asian ideograph */ - {"\x24", 0, 0x6919}, /* East Asian ideograph */ - {"\x2A", 0, 0x68DE}, /* East Asian ideograph */ - {"\x2B", 0, 0x691B}, /* East Asian ideograph */ - {"\x2D", 0, 0x68FB}, /* East Asian ideograph */ - {"\x33", 0, 0x68E1}, /* East Asian ideograph */ - {"\x37", 0, 0x68D1}, /* East Asian ideograph */ - {"\x38", 0, 0x68D0}, /* East Asian ideograph */ - {"\x39", 0, 0x6908}, /* East Asian ideograph */ - {"\x3E", 0, 0x68E8}, /* East Asian ideograph */ - {"\x3F", 0, 0x68F0}, /* East Asian ideograph */ - {"\x40", 0, 0x68C3}, /* East Asian ideograph */ - {"\x44", 0, 0x6911}, /* East Asian ideograph */ - {"\x46", 0, 0x68D4}, /* East Asian ideograph */ - {"\x47", 0, 0x68EF}, /* East Asian ideograph */ - {"\x49", 0, 0x68C6}, /* East Asian ideograph */ - {"\x4B", 0, 0x68C7}, /* East Asian ideograph */ - {"\x53", 0, 0x6974}, /* East Asian ideograph */ - {"\x55", 0, 0x6938}, /* East Asian ideograph */ - {"\x58", 0, 0x6962}, /* East Asian ideograph */ - {"\x5D", 0, 0x6958}, /* East Asian ideograph */ - {"\x5F", 0, 0x6957}, /* East Asian ideograph */ - {"\x60", 0, 0x693F}, /* East Asian ideograph */ - {"\x61", 0, 0x6971}, /* East Asian ideograph */ - {"\x64", 0, 0x6945}, /* East Asian ideograph */ - {"\x65", 0, 0x695D}, /* East Asian ideograph */ - {"\x66", 0, 0x6932}, /* East Asian ideograph */ - {"\x69", 0, 0x696E}, /* East Asian ideograph */ - {"\x6A", 0, 0x6963}, /* East Asian ideograph */ - {"\x6B", 0, 0x6948}, /* East Asian ideograph */ - {"\x6E", 0, 0x6939}, /* East Asian ideograph */ - {"\x70", 0, 0x696A}, /* East Asian ideograph */ - {"\x73", 0, 0x6937}, /* East Asian ideograph */ - {"\x7A", 0, 0x696C}, /* East Asian ideograph */ - {"\x7B", 0, 0x694E}, /* East Asian ideograph */ - {"\x7D", 0, 0x6980}, /* East Asian ideograph */ - {"\x7E", 0, 0x6933}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page111 = { - marc8_31page111_flat, 0 -}; -/* PAGE 110 */ -struct yaz_iconv_trie_flat marc8_31page110_flat[] = { - {"\x21", 0, 0x6872}, /* East Asian ideograph */ - {"\x22", 0, 0x689C}, /* East Asian ideograph */ - {"\x25", 0, 0x686D}, /* East Asian ideograph */ - {"\x2E", 0, 0x68A9}, /* East Asian ideograph */ - {"\x30", 0, 0x6898}, /* East Asian ideograph */ - {"\x32", 0, 0x688B}, /* East Asian ideograph */ - {"\x33", 0, 0x68A0}, /* East Asian ideograph */ - {"\x34", 0, 0x686F}, /* East Asian ideograph */ - {"\x39", 0, 0x68A3}, /* East Asian ideograph */ - {"\x3B", 0, 0x6874}, /* East Asian ideograph */ - {"\x3C", 0, 0x6875}, /* East Asian ideograph */ - {"\x3F", 0, 0x6877}, /* East Asian ideograph */ - {"\x40", 0, 0x688F}, /* East Asian ideograph */ - {"\x43", 0, 0x687B}, /* East Asian ideograph */ - {"\x44", 0, 0x688E}, /* East Asian ideograph */ - {"\x4B", 0, 0x68B4}, /* East Asian ideograph */ - {"\x50", 0, 0x692C}, /* East Asian ideograph */ - {"\x51", 0, 0x6917}, /* East Asian ideograph */ - {"\x53", 0, 0x690C}, /* East Asian ideograph */ - {"\x56", 0, 0x690B}, /* East Asian ideograph */ - {"\x58", 0, 0x68D3}, /* East Asian ideograph */ - {"\x59", 0, 0x6904}, /* East Asian ideograph */ - {"\x5B", 0, 0x690A}, /* East Asian ideograph */ - {"\x5C", 0, 0x6909}, /* East Asian ideograph */ - {"\x5D", 0, 0x6929}, /* East Asian ideograph */ - {"\x62", 0, 0x68EC}, /* East Asian ideograph */ - {"\x63", 0, 0x692A}, /* East Asian ideograph */ - {"\x64", 0, 0x68EA}, /* East Asian ideograph */ - {"\x65", 0, 0x681F}, /* East Asian ideograph */ - {"\x66", 0, 0x7439}, /* East Asian ideograph */ - {"\x6A", 0, 0x6910}, /* East Asian ideograph */ - {"\x6E", 0, 0x68D6}, /* East Asian ideograph */ - {"\x6F", 0, 0x68EB}, /* East Asian ideograph */ - {"\x73", 0, 0x68F1}, /* East Asian ideograph */ - {"\x78", 0, 0x68FD}, /* East Asian ideograph */ - {"\x79", 0, 0x68FC}, /* East Asian ideograph */ - {"\x7B", 0, 0x68F3}, /* East Asian ideograph */ - {"\x7C", 0, 0x6913}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page110 = { - marc8_31page110_flat, 0 -}; -/* PAGE 109 */ -struct yaz_iconv_trie_flat marc8_31page109_flat[] = { - {"\x21", 0, 0x67B9}, /* East Asian ideograph */ - {"\x23", 0, 0x67C2}, /* East Asian ideograph */ - {"\x24", 0, 0x67E3}, /* East Asian ideograph */ - {"\x26", 0, 0x67CA}, /* East Asian ideograph */ - {"\x28", 0, 0x67CE}, /* East Asian ideograph */ - {"\x29", 0, 0x67E2}, /* East Asian ideograph */ - {"\x2A", 0, 0x67F2}, /* East Asian ideograph */ - {"\x2B", 0, 0x67C3}, /* East Asian ideograph */ - {"\x2D", 0, 0x67DD}, /* East Asian ideograph */ - {"\x2F", 0, 0x67E7}, /* East Asian ideograph */ - {"\x30", 0, 0x6849}, /* East Asian ideograph */ - {"\x31", 0, 0x683E}, /* East Asian ideograph */ - {"\x36", 0, 0x6814}, /* East Asian ideograph */ - {"\x37", 0, 0x684B}, /* East Asian ideograph */ - {"\x38", 0, 0x681E}, /* East Asian ideograph */ - {"\x3B", 0, 0x6833}, /* East Asian ideograph */ - {"\x40", 0, 0x6831}, /* East Asian ideograph */ - {"\x41", 0, 0x6832}, /* East Asian ideograph */ - {"\x42", 0, 0x6835}, /* East Asian ideograph */ - {"\x43", 0, 0x683B}, /* East Asian ideograph */ - {"\x44", 0, 0x684E}, /* East Asian ideograph */ - {"\x47", 0, 0x682B}, /* East Asian ideograph */ - {"\x48", 0, 0x682D}, /* East Asian ideograph */ - {"\x4A", 0, 0x684D}, /* East Asian ideograph */ - {"\x4F", 0, 0x6844}, /* East Asian ideograph */ - {"\x55", 0, 0x685D}, /* East Asian ideograph */ - {"\x56", 0, 0x685E}, /* East Asian ideograph */ - {"\x58", 0, 0x6834}, /* East Asian ideograph */ - {"\x59", 0, 0x6812}, /* East Asian ideograph */ - {"\x65", 0, 0x685A}, /* East Asian ideograph */ - {"\x68", 0, 0x686B}, /* East Asian ideograph */ - {"\x69", 0, 0x686C}, /* East Asian ideograph */ - {"\x6B", 0, 0x6879}, /* East Asian ideograph */ - {"\x6E", 0, 0x68B2}, /* East Asian ideograph */ - {"\x71", 0, 0x689B}, /* East Asian ideograph */ - {"\x72", 0, 0x687E}, /* East Asian ideograph */ - {"\x74", 0, 0x68B6}, /* East Asian ideograph */ - {"\x76", 0, 0x6882}, /* East Asian ideograph */ - {"\x7A", 0, 0x6890}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page109 = { - marc8_31page109_flat, 0 -}; -/* PAGE 108 */ -struct yaz_iconv_trie_flat marc8_31page108_flat[] = { - {"\x21", 0, 0x677B}, /* East Asian ideograph */ - {"\x22", 0, 0x6792}, /* East Asian ideograph */ - {"\x23", 0, 0x6776}, /* East Asian ideograph */ - {"\x25", 0, 0x6791}, /* East Asian ideograph */ - {"\x26", 0, 0x6799}, /* East Asian ideograph */ - {"\x28", 0, 0x67A4}, /* East Asian ideograph */ - {"\x2E", 0, 0x678F}, /* East Asian ideograph */ - {"\x30", 0, 0x6772}, /* East Asian ideograph */ - {"\x31", 0, 0x6798}, /* East Asian ideograph (variant of EACC 4C3B31) */ - {"\x32", 0, 0x676A}, /* East Asian ideograph */ - {"\x39", 0, 0x67AC}, /* East Asian ideograph */ - {"\x3B", 0, 0x67A0}, /* East Asian ideograph */ - {"\x3F", 0, 0x67A1}, /* East Asian ideograph */ - {"\x44", 0, 0x67F9}, /* East Asian ideograph */ - {"\x48", 0, 0x678D}, /* East Asian ideograph */ - {"\x49", 0, 0x678C}, /* East Asian ideograph */ - {"\x4C", 0, 0x67FC}, /* East Asian ideograph */ - {"\x4E", 0, 0x6810}, /* East Asian ideograph */ - {"\x51", 0, 0x67C8}, /* East Asian ideograph */ - {"\x54", 0, 0x67CC}, /* East Asian ideograph */ - {"\x58", 0, 0x67C5}, /* East Asian ideograph */ - {"\x5C", 0, 0x67BB}, /* East Asian ideograph */ - {"\x5F", 0, 0x67B0}, /* East Asian ideograph */ - {"\x60", 0, 0x6803}, /* East Asian ideograph */ - {"\x61", 0, 0x67F8}, /* East Asian ideograph */ - {"\x63", 0, 0x67D8}, /* East Asian ideograph */ - {"\x64", 0, 0x67B7}, /* East Asian ideograph */ - {"\x6D", 0, 0x6802}, /* East Asian ideograph */ - {"\x6F", 0, 0x67E4}, /* East Asian ideograph */ - {"\x70", 0, 0x67D9}, /* East Asian ideograph */ - {"\x71", 0, 0x67DB}, /* East Asian ideograph */ - {"\x72", 0, 0x67B5}, /* East Asian ideograph */ - {"\x74", 0, 0x67DF}, /* East Asian ideograph */ - {"\x75", 0, 0x67F7}, /* East Asian ideograph */ - {"\x77", 0, 0x67B3}, /* East Asian ideograph */ - {"\x78", 0, 0x6806}, /* East Asian ideograph */ - {"\x79", 0, 0x67AE}, /* East Asian ideograph */ - {"\x7A", 0, 0x67F6}, /* East Asian ideograph */ - {"\x7C", 0, 0x67EE}, /* East Asian ideograph */ - {"\x7D", 0, 0x6AAF}, /* East Asian ideograph */ - {"\x7E", 0, 0x67B2}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page108 = { - marc8_31page108_flat, 0 -}; -/* PAGE 107 */ -struct yaz_iconv_trie_flat marc8_31page107_flat[] = { - {"\x28", 0, 0x6705}, /* East Asian ideograph */ - {"\x30", 0, 0x670F}, /* East Asian ideograph */ - {"\x31", 0, 0x6710}, /* East Asian ideograph */ - {"\x33", 0, 0x6712}, /* East Asian ideograph */ - {"\x34", 0, 0x6713}, /* East Asian ideograph */ - {"\x38", 0, 0x6719}, /* East Asian ideograph */ - {"\x39", 0, 0x6718}, /* East Asian ideograph */ - {"\x47", 0, 0x6723}, /* East Asian ideograph */ - {"\x4C", 0, 0x673E}, /* East Asian ideograph */ - {"\x4E", 0, 0x673F}, /* East Asian ideograph */ - {"\x58", 0, 0x6757}, /* East Asian ideograph */ - {"\x5B", 0, 0x6745}, /* East Asian ideograph */ - {"\x5C", 0, 0x6747}, /* East Asian ideograph */ - {"\x60", 0, 0x675D}, /* East Asian ideograph */ - {"\x61", 0, 0x6755}, /* East Asian ideograph */ - {"\x66", 0, 0x674C}, /* East Asian ideograph */ - {"\x67", 0, 0x6759}, /* East Asian ideograph */ - {"\x68", 0, 0x6748}, /* East Asian ideograph */ - {"\x6B", 0, 0x6763}, /* East Asian ideograph */ - {"\x6E", 0, 0x6753}, /* East Asian ideograph */ - {"\x71", 0, 0x674A}, /* East Asian ideograph */ - {"\x75", 0, 0x6793}, /* East Asian ideograph */ - {"\x78", 0, 0x677C}, /* East Asian ideograph */ - {"\x7A", 0, 0x679F}, /* East Asian ideograph */ - {"\x7C", 0, 0x6785}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page107 = { - marc8_31page107_flat, 0 -}; -/* PAGE 106 */ -struct yaz_iconv_trie_flat marc8_31page106_flat[] = { - {"\x24", 0, 0x7A25}, /* East Asian ideograph */ - {"\x2A", 0, 0x66A0}, /* East Asian ideograph */ - {"\x30", 0, 0x5C21}, /* East Asian ideograph */ - {"\x32", 0, 0x669D}, /* East Asian ideograph */ - {"\x3A", 0, 0x66B2}, /* East Asian ideograph */ - {"\x40", 0, 0x66B5}, /* East Asian ideograph */ - {"\x41", 0, 0x66AA}, /* East Asian ideograph */ - {"\x43", 0, 0x66AC}, /* East Asian ideograph */ - {"\x47", 0, 0x66B1}, /* East Asian ideograph */ - {"\x4E", 0, 0x66C8}, /* East Asian ideograph */ - {"\x4F", 0, 0x66BE}, /* East Asian ideograph */ - {"\x54", 0, 0x66C0}, /* East Asian ideograph */ - {"\x55", 0, 0x66C7}, /* East Asian ideograph */ - {"\x5A", 0, 0x66BB}, /* East Asian ideograph */ - {"\x5C", 0, 0x66C4}, /* East Asian ideograph */ - {"\x60", 0, 0x66CF}, /* East Asian ideograph */ - {"\x71", 0, 0x66DA}, /* East Asian ideograph */ - {"\x72", 0, 0x66DB}, /* East Asian ideograph */ - {"\x73", 0, 0x66E2}, /* East Asian ideograph */ - {"\x76", 0, 0x66E1}, /* East Asian ideograph */ - {"\x78", 0, 0x66E8}, /* East Asian ideograph */ - {"\x7C", 0, 0x66E9}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page106 = { - marc8_31page106_flat, 0 -}; -/* PAGE 105 */ -struct yaz_iconv_trie_flat marc8_31page105_flat[] = { - {"\x27", 0, 0x6633}, /* East Asian ideograph */ - {"\x28", 0, 0x662B}, /* East Asian ideograph */ - {"\x2B", 0, 0x6634}, /* East Asian ideograph */ - {"\x2C", 0, 0x6624}, /* East Asian ideograph */ - {"\x31", 0, 0x6645}, /* East Asian ideograph */ - {"\x32", 0, 0x665F}, /* East Asian ideograph */ - {"\x3D", 0, 0x6665}, /* East Asian ideograph */ - {"\x3E", 0, 0x665C}, /* East Asian ideograph */ - {"\x3F", 0, 0x6661}, /* East Asian ideograph */ - {"\x48", 0, 0x665B}, /* East Asian ideograph */ - {"\x49", 0, 0x6659}, /* East Asian ideograph */ - {"\x4A", 0, 0x6667}, /* East Asian ideograph */ - {"\x4C", 0, 0x665E}, /* East Asian ideograph */ - {"\x4D", 0, 0x6657}, /* East Asian ideograph */ - {"\x50", 0, 0x667E}, /* East Asian ideograph */ - {"\x51", 0, 0x666C}, /* East Asian ideograph */ - {"\x5A", 0, 0x6678}, /* East Asian ideograph */ - {"\x60", 0, 0x6673}, /* East Asian ideograph */ - {"\x66", 0, 0x666D}, /* East Asian ideograph */ - {"\x68", 0, 0x6677}, /* East Asian ideograph */ - {"\x70", 0, 0x6684}, /* East Asian ideograph */ - {"\x71", 0, 0x668C}, /* East Asian ideograph */ - {"\x72", 0, 0x6693}, /* East Asian ideograph */ - {"\x75", 0, 0x668B}, /* East Asian ideograph */ - {"\x76", 0, 0x6690}, /* East Asian ideograph */ - {"\x79", 0, 0x6694}, /* East Asian ideograph */ - {"\x7A", 0, 0x668A}, /* East Asian ideograph */ - {"\x7C", 0, 0x6698}, /* East Asian ideograph */ - {"\x7D", 0, 0x668D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page105 = { - marc8_31page105_flat, 0 -}; -/* PAGE 104 */ -struct yaz_iconv_trie_flat marc8_31page104_flat[] = { - {"\x22", 0, 0x65A8}, /* East Asian ideograph */ - {"\x23", 0, 0x65A6}, /* East Asian ideograph */ - {"\x27", 0, 0x65AE}, /* East Asian ideograph */ - {"\x2A", 0, 0x65B6}, /* East Asian ideograph */ - {"\x2C", 0, 0x65B8}, /* East Asian ideograph */ - {"\x2F", 0, 0x65BF}, /* East Asian ideograph */ - {"\x31", 0, 0x65C6}, /* East Asian ideograph */ - {"\x32", 0, 0x65C3}, /* East Asian ideograph */ - {"\x33", 0, 0x65C4}, /* East Asian ideograph */ - {"\x34", 0, 0x65C2}, /* East Asian ideograph */ - {"\x3B", 0, 0x65D0}, /* East Asian ideograph */ - {"\x3C", 0, 0x65D2}, /* East Asian ideograph */ - {"\x44", 0, 0x65DB}, /* East Asian ideograph */ - {"\x45", 0, 0x65DC}, /* East Asian ideograph */ - {"\x47", 0, 0x65DD}, /* East Asian ideograph */ - {"\x48", 0, 0x65DF}, /* East Asian ideograph */ - {"\x4A", 0, 0x65E1}, /* East Asian ideograph */ - {"\x4E", 0, 0x65E4}, /* East Asian ideograph */ - {"\x54", 0, 0x65F4}, /* East Asian ideograph */ - {"\x55", 0, 0x65F0}, /* East Asian ideograph */ - {"\x5A", 0, 0x6609}, /* East Asian ideograph */ - {"\x5B", 0, 0x65FB}, /* East Asian ideograph */ - {"\x5C", 0, 0x65FC}, /* East Asian ideograph */ - {"\x5E", 0, 0x660A}, /* East Asian ideograph */ - {"\x64", 0, 0x6603}, /* East Asian ideograph */ - {"\x6A", 0, 0x6611}, /* East Asian ideograph */ - {"\x6B", 0, 0x6615}, /* East Asian ideograph */ - {"\x6D", 0, 0x6604}, /* East Asian ideograph */ - {"\x6E", 0, 0x6631}, /* East Asian ideograph */ - {"\x72", 0, 0x6621}, /* East Asian ideograph */ - {"\x75", 0, 0x662C}, /* East Asian ideograph */ - {"\x77", 0, 0x6635}, /* East Asian ideograph */ - {"\x7C", 0, 0x661E}, /* East Asian ideograph */ - {"\x7D", 0, 0x663A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page104 = { - marc8_31page104_flat, 0 -}; -/* PAGE 103 */ -struct yaz_iconv_trie_flat marc8_31page103_flat[] = { - {"\x2C", 0, 0x6538}, /* East Asian ideograph */ - {"\x34", 0, 0x6542}, /* East Asian ideograph */ - {"\x36", 0, 0x6549}, /* East Asian ideograph */ - {"\x3E", 0, 0x6554}, /* East Asian ideograph */ - {"\x3F", 0, 0x6555}, /* East Asian ideograph */ - {"\x45", 0, 0x6567}, /* East Asian ideograph */ - {"\x47", 0, 0x6561}, /* East Asian ideograph */ - {"\x4F", 0, 0x656D}, /* East Asian ideograph */ - {"\x54", 0, 0x657A}, /* East Asian ideograph */ - {"\x64", 0, 0x6585}, /* East Asian ideograph */ - {"\x6E", 0, 0x658C}, /* East Asian ideograph */ - {"\x70", 0, 0x6592}, /* East Asian ideograph */ - {"\x71", 0, 0x6595}, /* East Asian ideograph */ - {"\x75", 0, 0x659B}, /* East Asian ideograph */ - {"\x77", 0, 0x659D}, /* East Asian ideograph */ - {"\x7A", 0, 0x65A0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page103 = { - marc8_31page103_flat, 0 -}; -/* PAGE 102 */ -struct yaz_iconv_trie_flat marc8_31page102_flat[] = { - {"\x2A", 0, 0x64EF}, /* East Asian ideograph */ - {"\x2D", 0, 0x64E1}, /* East Asian ideograph */ - {"\x2E", 0, 0x64E5}, /* East Asian ideograph */ - {"\x31", 0, 0x64EB}, /* East Asian ideograph */ - {"\x33", 0, 0x64E2}, /* East Asian ideograph */ - {"\x36", 0, 0x64ED}, /* East Asian ideograph */ - {"\x38", 0, 0x64E4}, /* East Asian ideograph */ - {"\x42", 0, 0x64F7}, /* East Asian ideograph */ - {"\x46", 0, 0x6504}, /* East Asian ideograph */ - {"\x4B", 0, 0x64FD}, /* East Asian ideograph */ - {"\x4F", 0, 0x6508}, /* East Asian ideograph */ - {"\x53", 0, 0x6509}, /* East Asian ideograph */ - {"\x59", 0, 0x651A}, /* East Asian ideograph */ - {"\x5B", 0, 0x6516}, /* East Asian ideograph */ - {"\x61", 0, 0x651B}, /* East Asian ideograph */ - {"\x69", 0, 0x6527}, /* East Asian ideograph */ - {"\x6D", 0, 0x6522}, /* East Asian ideograph */ - {"\x6F", 0, 0x6529}, /* East Asian ideograph */ - {"\x72", 0, 0x6525}, /* East Asian ideograph */ - {"\x77", 0, 0x652E}, /* East Asian ideograph */ - {"\x7C", 0, 0x6541}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page102 = { - marc8_31page102_flat, 0 -}; -/* PAGE 101 */ -struct yaz_iconv_trie_flat marc8_31page101_flat[] = { - {"\x23", 0, 0x644E}, /* East Asian ideograph */ - {"\x24", 0, 0x6464}, /* East Asian ideograph */ - {"\x27", 0, 0x6482}, /* East Asian ideograph */ - {"\x28", 0, 0x645E}, /* East Asian ideograph */ - {"\x2C", 0, 0x647B}, /* East Asian ideograph */ - {"\x2E", 0, 0x645C}, /* East Asian ideograph */ - {"\x3C", 0, 0x649D}, /* East Asian ideograph */ - {"\x3F", 0, 0x6499}, /* East Asian ideograph */ - {"\x42", 0, 0x648F}, /* East Asian ideograph */ - {"\x4D", 0, 0x6496}, /* East Asian ideograph */ - {"\x4E", 0, 0x64A2}, /* East Asian ideograph */ - {"\x54", 0, 0x6490}, /* East Asian ideograph */ - {"\x5B", 0, 0x64B6}, /* East Asian ideograph */ - {"\x61", 0, 0x6498}, /* East Asian ideograph */ - {"\x62", 0, 0x649F}, /* East Asian ideograph */ - {"\x65", 0, 0x64A7}, /* East Asian ideograph */ - {"\x66", 0, 0x64B3}, /* East Asian ideograph */ - {"\x6A", 0, 0x64D7}, /* East Asian ideograph */ - {"\x6C", 0, 0x64D3}, /* East Asian ideograph */ - {"\x74", 0, 0x64BE}, /* East Asian ideograph */ - {"\x75", 0, 0x64D0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page101 = { - marc8_31page101_flat, 0 -}; -/* PAGE 100 */ -struct yaz_iconv_trie_flat marc8_31page100_flat[] = { - {"\x22", 0, 0x6410}, /* East Asian ideograph */ - {"\x24", 0, 0x6434}, /* East Asian ideograph */ - {"\x29", 0, 0x641B}, /* East Asian ideograph */ - {"\x2B", 0, 0x6420}, /* East Asian ideograph */ - {"\x2C", 0, 0x6424}, /* East Asian ideograph */ - {"\x2F", 0, 0x6426}, /* East Asian ideograph */ - {"\x31", 0, 0x640C}, /* East Asian ideograph */ - {"\x36", 0, 0x6415}, /* East Asian ideograph */ - {"\x37", 0, 0x6418}, /* East Asian ideograph */ - {"\x38", 0, 0x640E}, /* East Asian ideograph */ - {"\x39", 0, 0x22C4D}, /* East Asian ideograph (Unicode CJK Extension B) */ - {"\x3B", 0, 0x6422}, /* East Asian ideograph */ - {"\x3D", 0, 0x6421}, /* East Asian ideograph */ - {"\x44", 0, 0x6430}, /* East Asian ideograph */ - {"\x45", 0, 0x6441}, /* East Asian ideograph */ - {"\x48", 0, 0x6435}, /* East Asian ideograph */ - {"\x4C", 0, 0x6409}, /* East Asian ideograph */ - {"\x51", 0, 0x640A}, /* East Asian ideograph */ - {"\x53", 0, 0x6440}, /* East Asian ideograph */ - {"\x59", 0, 0x6407}, /* East Asian ideograph */ - {"\x5B", 0, 0x643B}, /* East Asian ideograph */ - {"\x5D", 0, 0x643F}, /* East Asian ideograph */ - {"\x68", 0, 0x645B}, /* East Asian ideograph */ - {"\x6A", 0, 0x644F}, /* East Asian ideograph */ - {"\x6C", 0, 0x646B}, /* East Asian ideograph */ - {"\x6F", 0, 0x6476}, /* East Asian ideograph */ - {"\x76", 0, 0x6474}, /* East Asian ideograph */ - {"\x78", 0, 0x647D}, /* East Asian ideograph */ - {"\x7B", 0, 0x6473}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page100 = { - marc8_31page100_flat, 0 -}; -/* PAGE 99 */ -struct yaz_iconv_trie_flat marc8_31page99_flat[] = { - {"\x25", 0, 0x6387}, /* East Asian ideograph */ - {"\x26", 0, 0x637A}, /* East Asian ideograph */ - {"\x27", 0, 0x638E}, /* East Asian ideograph */ - {"\x2A", 0, 0x6386}, /* East Asian ideograph */ - {"\x2F", 0, 0x6375}, /* East Asian ideograph */ - {"\x30", 0, 0x63AF}, /* East Asian ideograph */ - {"\x37", 0, 0x63B1}, /* East Asian ideograph */ - {"\x38", 0, 0x63B0}, /* East Asian ideograph */ - {"\x39", 0, 0x63AE}, /* East Asian ideograph */ - {"\x3A", 0, 0x637C}, /* East Asian ideograph */ - {"\x3B", 0, 0x6390}, /* East Asian ideograph */ - {"\x3D", 0, 0x63AD}, /* East Asian ideograph */ - {"\x41", 0, 0x636D}, /* East Asian ideograph */ - {"\x43", 0, 0x63DE}, /* East Asian ideograph */ - {"\x44", 0, 0x63E5}, /* East Asian ideograph */ - {"\x47", 0, 0x63D3}, /* East Asian ideograph */ - {"\x4F", 0, 0x63BD}, /* East Asian ideograph */ - {"\x50", 0, 0x63C3}, /* East Asian ideograph */ - {"\x52", 0, 0x63F5}, /* East Asian ideograph */ - {"\x58", 0, 0x63E6}, /* East Asian ideograph */ - {"\x5B", 0, 0x63E0}, /* East Asian ideograph */ - {"\x5C", 0, 0x63D5}, /* East Asian ideograph */ - {"\x5D", 0, 0x63F6}, /* East Asian ideograph */ - {"\x5E", 0, 0x63F2}, /* East Asian ideograph */ - {"\x5F", 0, 0x63F8}, /* East Asian ideograph */ - {"\x66", 0, 0x63C5}, /* East Asian ideograph */ - {"\x6A", 0, 0x63F9}, /* East Asian ideograph */ - {"\x70", 0, 0x63BE}, /* East Asian ideograph */ - {"\x72", 0, 0x63EB}, /* East Asian ideograph */ - {"\x73", 0, 0x63DD}, /* East Asian ideograph */ - {"\x76", 0, 0x63D1}, /* East Asian ideograph */ - {"\x79", 0, 0x63C4}, /* East Asian ideograph */ - {"\x7A", 0, 0x63DC}, /* East Asian ideograph */ - {"\x7B", 0, 0x63D7}, /* East Asian ideograph */ - {"\x7E", 0, 0x6412}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page99 = { - marc8_31page99_flat, 0 -}; -/* PAGE 98 */ -struct yaz_iconv_trie_flat marc8_31page98_flat[] = { - {"\x25", 0, 0x62F5}, /* East Asian ideograph */ - {"\x31", 0, 0x630C}, /* East Asian ideograph */ - {"\x32", 0, 0x6360}, /* East Asian ideograph */ - {"\x37", 0, 0x62F6}, /* East Asian ideograph */ - {"\x3A", 0, 0x6331}, /* East Asian ideograph */ - {"\x42", 0, 0x6345}, /* East Asian ideograph */ - {"\x44", 0, 0x6343}, /* East Asian ideograph */ - {"\x45", 0, 0x6335}, /* East Asian ideograph */ - {"\x47", 0, 0x6353}, /* East Asian ideograph */ - {"\x48", 0, 0x6364}, /* East Asian ideograph */ - {"\x49", 0, 0x6336}, /* East Asian ideograph */ - {"\x4A", 0, 0x6344}, /* East Asian ideograph */ - {"\x54", 0, 0x6339}, /* East Asian ideograph */ - {"\x58", 0, 0x6357}, /* East Asian ideograph */ - {"\x5A", 0, 0x633C}, /* East Asian ideograph */ - {"\x5B", 0, 0x6358}, /* East Asian ideograph */ - {"\x5C", 0, 0x634B}, /* East Asian ideograph */ - {"\x5F", 0, 0x6354}, /* East Asian ideograph */ - {"\x68", 0, 0x637D}, /* East Asian ideograph */ - {"\x6A", 0, 0x63B6}, /* East Asian ideograph */ - {"\x6B", 0, 0x6382}, /* East Asian ideograph */ - {"\x6C", 0, 0x636C}, /* East Asian ideograph */ - {"\x6E", 0, 0x639F}, /* East Asian ideograph */ - {"\x72", 0, 0x639E}, /* East Asian ideograph */ - {"\x73", 0, 0x637F}, /* East Asian ideograph */ - {"\x79", 0, 0x6381}, /* East Asian ideograph */ - {"\x7B", 0, 0x6397}, /* East Asian ideograph */ - {"\x7D", 0, 0x63AB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page98 = { - marc8_31page98_flat, 0 -}; -/* PAGE 97 */ -struct yaz_iconv_trie_flat marc8_31page97_flat[] = { - {"\x26", 0, 0x6268}, /* East Asian ideograph */ - {"\x28", 0, 0x6260}, /* East Asian ideograph */ - {"\x2B", 0, 0x625A}, /* East Asian ideograph */ - {"\x2C", 0, 0x6262}, /* East Asian ideograph */ - {"\x2D", 0, 0x6266}, /* East Asian ideograph */ - {"\x31", 0, 0x6286}, /* East Asian ideograph */ - {"\x32", 0, 0x628E}, /* East Asian ideograph */ - {"\x41", 0, 0x62A3}, /* East Asian ideograph */ - {"\x43", 0, 0x6282}, /* East Asian ideograph */ - {"\x46", 0, 0x6285}, /* East Asian ideograph */ - {"\x4B", 0, 0x629D}, /* East Asian ideograph */ - {"\x56", 0, 0x62A6}, /* East Asian ideograph */ - {"\x57", 0, 0x62D1}, /* East Asian ideograph */ - {"\x61", 0, 0x62E4}, /* East Asian ideograph */ - {"\x69", 0, 0x62B6}, /* East Asian ideograph */ - {"\x6A", 0, 0x62C3}, /* East Asian ideograph */ - {"\x72", 0, 0x630D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page97 = { - marc8_31page97_flat, 0 -}; -/* PAGE 96 */ -struct yaz_iconv_trie_flat marc8_31page96_flat[] = { - {"\x29", 0, 0x61F3}, /* East Asian ideograph */ - {"\x3D", 0, 0x6201}, /* East Asian ideograph */ - {"\x41", 0, 0x6204}, /* East Asian ideograph */ - {"\x43", 0, 0x6207}, /* East Asian ideograph */ - {"\x44", 0, 0x6209}, /* East Asian ideograph */ - {"\x47", 0, 0x6214}, /* East Asian ideograph */ - {"\x56", 0, 0x6223}, /* East Asian ideograph */ - {"\x5B", 0, 0x6225}, /* East Asian ideograph */ - {"\x5D", 0, 0x6224}, /* East Asian ideograph */ - {"\x61", 0, 0x6229}, /* East Asian ideograph */ - {"\x67", 0, 0x622D}, /* East Asian ideograph */ - {"\x69", 0, 0x97EF}, /* East Asian ideograph */ - {"\x6E", 0, 0x6239}, /* East Asian ideograph */ - {"\x6F", 0, 0x623A}, /* East Asian ideograph */ - {"\x70", 0, 0x623D}, /* East Asian ideograph */ - {"\x75", 0, 0x6243}, /* East Asian ideograph */ - {"\x77", 0, 0x6246}, /* East Asian ideograph */ - {"\x78", 0, 0x6245}, /* East Asian ideograph */ - {"\x79", 0, 0x624A}, /* East Asian ideograph */ - {"\x7A", 0, 0x6250}, /* East Asian ideograph */ - {"\x7C", 0, 0x625E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page96 = { - marc8_31page96_flat, 0 -}; -/* PAGE 95 */ -struct yaz_iconv_trie_flat marc8_31page95_flat[] = { - {"\x23", 0, 0x618B}, /* East Asian ideograph */ - {"\x2C", 0, 0x616F}, /* East Asian ideograph */ - {"\x2D", 0, 0x6165}, /* East Asian ideograph */ - {"\x2F", 0, 0x615C}, /* East Asian ideograph */ - {"\x32", 0, 0x619D}, /* East Asian ideograph */ - {"\x33", 0, 0x61A6}, /* East Asian ideograph */ - {"\x3D", 0, 0x61A2}, /* East Asian ideograph */ - {"\x40", 0, 0x61A8}, /* East Asian ideograph */ - {"\x42", 0, 0x619C}, /* East Asian ideograph */ - {"\x43", 0, 0x61AF}, /* East Asian ideograph */ - {"\x45", 0, 0x6196}, /* East Asian ideograph */ - {"\x46", 0, 0x6197}, /* East Asian ideograph */ - {"\x47", 0, 0x61AD}, /* East Asian ideograph */ - {"\x4C", 0, 0x6192}, /* East Asian ideograph */ - {"\x52", 0, 0x61AE}, /* East Asian ideograph */ - {"\x55", 0, 0x618D}, /* East Asian ideograph */ - {"\x5A", 0, 0x61CB}, /* East Asian ideograph */ - {"\x5C", 0, 0x61CC}, /* East Asian ideograph */ - {"\x5D", 0, 0x61C6}, /* East Asian ideograph */ - {"\x68", 0, 0x61BA}, /* East Asian ideograph */ - {"\x6A", 0, 0x61B8}, /* East Asian ideograph */ - {"\x71", 0, 0x61E0}, /* East Asian ideograph */ - {"\x77", 0, 0x61E5}, /* East Asian ideograph */ - {"\x7D", 0, 0x61DC}, /* East Asian ideograph */ - {"\x7E", 0, 0x61DF}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page95 = { - marc8_31page95_flat, 0 -}; -/* PAGE 94 */ -struct yaz_iconv_trie_flat marc8_31page94_flat[] = { - {"\x2A", 0, 0x610A}, /* East Asian ideograph */ - {"\x2C", 0, 0x6110}, /* East Asian ideograph */ - {"\x32", 0, 0x6112}, /* East Asian ideograph */ - {"\x34", 0, 0x60F2}, /* East Asian ideograph */ - {"\x37", 0, 0x6125}, /* East Asian ideograph */ - {"\x3B", 0, 0x60F8}, /* East Asian ideograph */ - {"\x3F", 0, 0x6121}, /* East Asian ideograph */ - {"\x41", 0, 0x60FC}, /* East Asian ideograph */ - {"\x43", 0, 0x6106}, /* East Asian ideograph */ - {"\x48", 0, 0x6149}, /* East Asian ideograph */ - {"\x4A", 0, 0x614A}, /* East Asian ideograph */ - {"\x4E", 0, 0x612B}, /* East Asian ideograph */ - {"\x50", 0, 0x6129}, /* East Asian ideograph */ - {"\x51", 0, 0x6150}, /* East Asian ideograph */ - {"\x56", 0, 0x53AF}, /* East Asian ideograph */ - {"\x58", 0, 0x6130}, /* East Asian ideograph */ - {"\x5B", 0, 0x6141}, /* East Asian ideograph */ - {"\x5E", 0, 0x6137}, /* East Asian ideograph */ - {"\x61", 0, 0x6146}, /* East Asian ideograph */ - {"\x66", 0, 0x615E}, /* East Asian ideograph */ - {"\x67", 0, 0x6175}, /* East Asian ideograph */ - {"\x68", 0, 0x6174}, /* East Asian ideograph */ - {"\x6B", 0, 0x6183}, /* East Asian ideograph */ - {"\x70", 0, 0x6171}, /* East Asian ideograph */ - {"\x74", 0, 0x616A}, /* East Asian ideograph */ - {"\x77", 0, 0x6173}, /* East Asian ideograph */ - {"\x79", 0, 0x6164}, /* East Asian ideograph */ - {"\x7B", 0, 0x6153}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page94 = { - marc8_31page94_flat, 0 -}; -/* PAGE 93 */ -struct yaz_iconv_trie_flat marc8_31page93_flat[] = { - {"\x24", 0, 0x608A}, /* East Asian ideograph */ - {"\x2B", 0, 0x6092}, /* East Asian ideograph */ - {"\x2C", 0, 0x609D}, /* East Asian ideograph */ - {"\x2D", 0, 0x6081}, /* East Asian ideograph */ - {"\x2F", 0, 0x609E}, /* East Asian ideograph */ - {"\x30", 0, 0x6083}, /* East Asian ideograph */ - {"\x32", 0, 0x6097}, /* East Asian ideograph */ - {"\x34", 0, 0x60A7}, /* East Asian ideograph */ - {"\x3A", 0, 0x6095}, /* East Asian ideograph */ - {"\x3E", 0, 0x60C7}, /* East Asian ideograph */ - {"\x42", 0, 0x60B0}, /* East Asian ideograph */ - {"\x46", 0, 0x60BE}, /* East Asian ideograph */ - {"\x47", 0, 0x60D3}, /* East Asian ideograph */ - {"\x48", 0, 0x60D4}, /* East Asian ideograph */ - {"\x4E", 0, 0x60CE}, /* East Asian ideograph */ - {"\x51", 0, 0x60CF}, /* East Asian ideograph */ - {"\x53", 0, 0x60D9}, /* East Asian ideograph */ - {"\x54", 0, 0x60B3}, /* East Asian ideograph */ - {"\x56", 0, 0x60DD}, /* East Asian ideograph */ - {"\x5D", 0, 0x60C4}, /* East Asian ideograph */ - {"\x60", 0, 0x60B1}, /* East Asian ideograph */ - {"\x62", 0, 0x60E3}, /* East Asian ideograph */ - {"\x66", 0, 0x60E2}, /* East Asian ideograph */ - {"\x67", 0, 0x60E5}, /* East Asian ideograph */ - {"\x69", 0, 0x60DB}, /* East Asian ideograph */ - {"\x6E", 0, 0x60E9}, /* East Asian ideograph */ - {"\x70", 0, 0x6114}, /* East Asian ideograph */ - {"\x73", 0, 0x6103}, /* East Asian ideograph */ - {"\x75", 0, 0x6119}, /* East Asian ideograph */ - {"\x7C", 0, 0x60FD}, /* East Asian ideograph */ - {"\x7D", 0, 0x610D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page93 = { - marc8_31page93_flat, 0 -}; -/* PAGE 92 */ -struct yaz_iconv_trie_flat marc8_31page92_flat[] = { - {"\x24", 0, 0x5FEA}, /* East Asian ideograph */ - {"\x2A", 0, 0x6026}, /* East Asian ideograph */ - {"\x2C", 0, 0x6029}, /* East Asian ideograph */ - {"\x2D", 0, 0x602B}, /* East Asian ideograph */ - {"\x30", 0, 0x6019}, /* East Asian ideograph */ - {"\x31", 0, 0x6008}, /* East Asian ideograph */ - {"\x36", 0, 0x600A}, /* East Asian ideograph */ - {"\x37", 0, 0x600C}, /* East Asian ideograph */ - {"\x38", 0, 0x601B}, /* East Asian ideograph */ - {"\x3C", 0, 0x6017}, /* East Asian ideograph */ - {"\x3D", 0, 0x6033}, /* East Asian ideograph */ - {"\x45", 0, 0x600D}, /* East Asian ideograph */ - {"\x46", 0, 0x6010}, /* East Asian ideograph */ - {"\x4B", 0, 0x6039}, /* East Asian ideograph */ - {"\x50", 0, 0x6013}, /* East Asian ideograph */ - {"\x53", 0, 0x6054}, /* East Asian ideograph */ - {"\x57", 0, 0x605D}, /* East Asian ideograph */ - {"\x5A", 0, 0x6047}, /* East Asian ideograph */ - {"\x5E", 0, 0x6049}, /* East Asian ideograph */ - {"\x5F", 0, 0x6053}, /* East Asian ideograph */ - {"\x68", 0, 0x6067}, /* East Asian ideograph */ - {"\x6F", 0, 0x604C}, /* East Asian ideograph */ - {"\x71", 0, 0x6041}, /* East Asian ideograph */ - {"\x72", 0, 0x6077}, /* East Asian ideograph */ - {"\x74", 0, 0x6042}, /* East Asian ideograph */ - {"\x76", 0, 0x605F}, /* East Asian ideograph */ - {"\x7A", 0, 0x6061}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page92 = { - marc8_31page92_flat, 0 -}; -/* PAGE 91 */ -struct yaz_iconv_trie_flat marc8_31page91_flat[] = { - {"\x23", 0, 0x5F82}, /* East Asian ideograph */ - {"\x27", 0, 0x5F89}, /* East Asian ideograph */ - {"\x2B", 0, 0x5F94}, /* East Asian ideograph */ - {"\x34", 0, 0x2251B}, /* East Asian ideograph (Unicode CJK Extension B) */ - {"\x39", 0, 0x5F9C}, /* East Asian ideograph */ - {"\x3D", 0, 0x5F9A}, /* East Asian ideograph */ - {"\x46", 0, 0x5FAF}, /* East Asian ideograph */ - {"\x50", 0, 0x5FBC}, /* East Asian ideograph */ - {"\x57", 0, 0x5FC9}, /* East Asian ideograph */ - {"\x5F", 0, 0x5FD1}, /* East Asian ideograph */ - {"\x61", 0, 0x5FD2}, /* East Asian ideograph */ - {"\x63", 0, 0x5FD0}, /* East Asian ideograph */ - {"\x67", 0, 0x5FCE}, /* East Asian ideograph */ - {"\x68", 0, 0x5FED}, /* East Asian ideograph */ - {"\x72", 0, 0x5FEE}, /* East Asian ideograph */ - {"\x73", 0, 0x5FF8}, /* East Asian ideograph */ - {"\x78", 0, 0x5FE1}, /* East Asian ideograph */ - {"\x7B", 0, 0x5FE4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page91 = { - marc8_31page91_flat, 0 -}; -/* PAGE 90 */ -struct yaz_iconv_trie_flat marc8_31page90_flat[] = { - {"\x21", 0, 0x5EF1}, /* East Asian ideograph */ - {"\x23", 0, 0x5EF4}, /* East Asian ideograph */ - {"\x35", 0, 0x5F07}, /* East Asian ideograph */ - {"\x3A", 0, 0x5F0B}, /* East Asian ideograph */ - {"\x4A", 0, 0x5F28}, /* East Asian ideograph */ - {"\x4B", 0, 0x5F22}, /* East Asian ideograph */ - {"\x4C", 0, 0x5F23}, /* East Asian ideograph */ - {"\x4D", 0, 0x5F24}, /* East Asian ideograph */ - {"\x51", 0, 0x5F33}, /* East Asian ideograph */ - {"\x52", 0, 0x5F30}, /* East Asian ideograph */ - {"\x58", 0, 0x5F38}, /* East Asian ideograph */ - {"\x5C", 0, 0x5F40}, /* East Asian ideograph */ - {"\x5F", 0, 0x5F44}, /* East Asian ideograph */ - {"\x62", 0, 0x5F4D}, /* East Asian ideograph */ - {"\x68", 0, 0x5F50}, /* East Asian ideograph */ - {"\x69", 0, 0x5F54}, /* East Asian ideograph */ - {"\x6A", 0, 0x5F56}, /* East Asian ideograph */ - {"\x6C", 0, 0x5F58}, /* East Asian ideograph */ - {"\x70", 0, 0x5F60}, /* East Asian ideograph */ - {"\x71", 0, 0x5F61}, /* East Asian ideograph */ - {"\x72", 0, 0x5F63}, /* East Asian ideograph */ - {"\x73", 0, 0x809C}, /* East Asian ideograph */ - {"\x74", 0, 0x5F67}, /* East Asian ideograph */ - {"\x78", 0, 0x5F72}, /* East Asian ideograph */ - {"\x79", 0, 0x5F73}, /* East Asian ideograph */ - {"\x7C", 0, 0x5F74}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page90 = { - marc8_31page90_flat, 0 -}; -/* PAGE 89 */ -struct yaz_iconv_trie_flat marc8_31page89_flat[] = { - {"\x2F", 0, 0x5EA4}, /* East Asian ideograph */ - {"\x35", 0, 0x5EA5}, /* East Asian ideograph */ - {"\x36", 0, 0x5EAF}, /* East Asian ideograph */ - {"\x42", 0, 0x5EB9}, /* East Asian ideograph */ - {"\x4B", 0, 0x5EB3}, /* East Asian ideograph */ - {"\x4C", 0, 0x5EC4}, /* East Asian ideograph */ - {"\x51", 0, 0x5ECC}, /* East Asian ideograph */ - {"\x55", 0, 0x5ECB}, /* East Asian ideograph */ - {"\x57", 0, 0x5ECD}, /* East Asian ideograph */ - {"\x5A", 0, 0x5ED2}, /* East Asian ideograph */ - {"\x5B", 0, 0x5ED1}, /* East Asian ideograph */ - {"\x5C", 0, 0x5ED5}, /* East Asian ideograph */ - {"\x5F", 0, 0x5ED4}, /* East Asian ideograph */ - {"\x60", 0, 0x5ED9}, /* East Asian ideograph */ - {"\x61", 0, 0x5ECE}, /* East Asian ideograph */ - {"\x68", 0, 0x5EE1}, /* East Asian ideograph */ - {"\x6D", 0, 0x5EE7}, /* East Asian ideograph */ - {"\x71", 0, 0x5EE8}, /* East Asian ideograph */ - {"\x7C", 0, 0x5EED}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page89 = { - marc8_31page89_flat, 0 -}; -/* PAGE 88 */ -struct yaz_iconv_trie_flat marc8_31page88_flat[] = { - {"\x22", 0, 0x5E22}, /* East Asian ideograph */ - {"\x24", 0, 0x5E28}, /* East Asian ideograph */ - {"\x35", 0, 0x5E44}, /* East Asian ideograph */ - {"\x36", 0, 0x5E43}, /* East Asian ideograph */ - {"\x39", 0, 0x5E42}, /* East Asian ideograph */ - {"\x3F", 0, 0x5E4E}, /* East Asian ideograph */ - {"\x47", 0, 0x5E58}, /* East Asian ideograph */ - {"\x48", 0, 0x5E48}, /* East Asian ideograph */ - {"\x57", 0, 0x5E5E}, /* East Asian ideograph */ - {"\x58", 0, 0x5E61}, /* East Asian ideograph */ - {"\x5D", 0, 0x5E68}, /* East Asian ideograph */ - {"\x5F", 0, 0x5E6C}, /* East Asian ideograph */ - {"\x60", 0, 0x5E6A}, /* East Asian ideograph */ - {"\x63", 0, 0x5E6E}, /* East Asian ideograph */ - {"\x64", 0, 0x5E6D}, /* East Asian ideograph */ - {"\x65", 0, 0x5E70}, /* East Asian ideograph */ - {"\x6D", 0, 0x5E75}, /* East Asian ideograph */ - {"\x77", 0, 0x5E80}, /* East Asian ideograph */ - {"\x7E", 0, 0x5E8B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page88 = { - marc8_31page88_flat, 0 -}; -/* PAGE 87 */ -struct yaz_iconv_trie_flat marc8_31page87_flat[] = { - {"\x26", 0, 0x5DA7}, /* East Asian ideograph */ - {"\x2A", 0, 0x5DB0}, /* East Asian ideograph */ - {"\x2E", 0, 0x5DB4}, /* East Asian ideograph */ - {"\x2F", 0, 0x5DAE}, /* East Asian ideograph */ - {"\x30", 0, 0x5DB6}, /* East Asian ideograph */ - {"\x32", 0, 0x5DB8}, /* East Asian ideograph */ - {"\x34", 0, 0x5DBF}, /* East Asian ideograph */ - {"\x36", 0, 0x5DB7}, /* East Asian ideograph */ - {"\x3E", 0, 0x5DC3}, /* East Asian ideograph */ - {"\x44", 0, 0x5DC7}, /* East Asian ideograph */ - {"\x46", 0, 0x5DC9}, /* East Asian ideograph */ - {"\x47", 0, 0x5DCB}, /* East Asian ideograph */ - {"\x4E", 0, 0x5DD8}, /* East Asian ideograph */ - {"\x50", 0, 0x5DDB}, /* East Asian ideograph */ - {"\x52", 0, 0x5DDC}, /* East Asian ideograph */ - {"\x56", 0, 0x5DE4}, /* East Asian ideograph */ - {"\x62", 0, 0x5E00}, /* East Asian ideograph */ - {"\x64", 0, 0x51E7}, /* East Asian ideograph */ - {"\x72", 0, 0x5E14}, /* East Asian ideograph */ - {"\x73", 0, 0x5E17}, /* East Asian ideograph */ - {"\x76", 0, 0x5E19}, /* East Asian ideograph */ - {"\x77", 0, 0x5E12}, /* East Asian ideograph */ - {"\x78", 0, 0x5E1F}, /* East Asian ideograph */ - {"\x7A", 0, 0x5E23}, /* East Asian ideograph */ - {"\x7B", 0, 0x5E21}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page87 = { - marc8_31page87_flat, 0 -}; -/* PAGE 86 */ -struct yaz_iconv_trie_flat marc8_31page86_flat[] = { - {"\x25", 0, 0x5D3F}, /* East Asian ideograph */ - {"\x26", 0, 0x5D52}, /* East Asian ideograph */ - {"\x27", 0, 0x5D3D}, /* East Asian ideograph */ - {"\x28", 0, 0x5D4E}, /* East Asian ideograph */ - {"\x2C", 0, 0x5D59}, /* East Asian ideograph */ - {"\x2D", 0, 0x5D47}, /* East Asian ideograph */ - {"\x2F", 0, 0x5D32}, /* East Asian ideograph */ - {"\x31", 0, 0x5D42}, /* East Asian ideograph */ - {"\x34", 0, 0x5D74}, /* East Asian ideograph */ - {"\x39", 0, 0x5D6F}, /* East Asian ideograph */ - {"\x3A", 0, 0x5D6B}, /* East Asian ideograph */ - {"\x3F", 0, 0x5D75}, /* East Asian ideograph */ - {"\x44", 0, 0x5D4A}, /* East Asian ideograph */ - {"\x49", 0, 0x5D6C}, /* East Asian ideograph */ - {"\x4A", 0, 0x5D62}, /* East Asian ideograph */ - {"\x4D", 0, 0x5D82}, /* East Asian ideograph */ - {"\x50", 0, 0x5D79}, /* East Asian ideograph */ - {"\x51", 0, 0x5D8E}, /* East Asian ideograph */ - {"\x5A", 0, 0x5D81}, /* East Asian ideograph */ - {"\x60", 0, 0x5D7E}, /* East Asian ideograph */ - {"\x66", 0, 0x5D92}, /* East Asian ideograph */ - {"\x68", 0, 0x5D99}, /* East Asian ideograph */ - {"\x69", 0, 0x5D97}, /* East Asian ideograph */ - {"\x6A", 0, 0x5DA2}, /* East Asian ideograph */ - {"\x73", 0, 0x5DA1}, /* East Asian ideograph */ - {"\x75", 0, 0x5D93}, /* East Asian ideograph */ - {"\x77", 0, 0x5DA0}, /* East Asian ideograph */ - {"\x7B", 0, 0x5D94}, /* East Asian ideograph */ - {"\x7E", 0, 0x5DAC}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page86 = { - marc8_31page86_flat, 0 -}; -/* PAGE 85 */ -struct yaz_iconv_trie_flat marc8_31page85_flat[] = { - {"\x26", 0, 0x5CE0}, /* East Asian ideograph */ - {"\x28", 0, 0x5CD2}, /* East Asian ideograph */ - {"\x29", 0, 0x5CDD}, /* East Asian ideograph */ - {"\x2B", 0, 0x5CCB}, /* East Asian ideograph */ - {"\x30", 0, 0x5CC7}, /* East Asian ideograph */ - {"\x31", 0, 0x5CDC}, /* East Asian ideograph */ - {"\x34", 0, 0x5D00}, /* East Asian ideograph */ - {"\x34", 0, 0x5D00}, /* East Asian ideograph */ - {"\x3B", 0, 0x5CFF}, /* East Asian ideograph */ - {"\x3C", 0, 0x5CEB}, /* East Asian ideograph */ - {"\x41", 0, 0x5CF4}, /* East Asian ideograph */ - {"\x46", 0, 0x5CF1}, /* East Asian ideograph */ - {"\x49", 0, 0x5D1E}, /* East Asian ideograph */ - {"\x4A", 0, 0x5D12}, /* East Asian ideograph */ - {"\x50", 0, 0x5D1A}, /* East Asian ideograph */ - {"\x52", 0, 0x5D0C}, /* East Asian ideograph */ - {"\x53", 0, 0x5D20}, /* East Asian ideograph */ - {"\x54", 0, 0x5D21}, /* East Asian ideograph */ - {"\x57", 0, 0x5D27}, /* East Asian ideograph */ - {"\x58", 0, 0x5D0D}, /* East Asian ideograph */ - {"\x5A", 0, 0x5D26}, /* East Asian ideograph */ - {"\x5D", 0, 0x5D2E}, /* East Asian ideograph */ - {"\x69", 0, 0x5D24}, /* East Asian ideograph */ - {"\x71", 0, 0x5D36}, /* East Asian ideograph */ - {"\x72", 0, 0x5D3E}, /* East Asian ideograph */ - {"\x74", 0, 0x5D4B}, /* East Asian ideograph */ - {"\x76", 0, 0x5D57}, /* East Asian ideograph */ - {"\x77", 0, 0x5D34}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page85 = { - marc8_31page85_flat, 0 -}; -/* PAGE 84 */ -struct yaz_iconv_trie_flat marc8_31page84_flat[] = { - {"\x23", 0, 0x5C63}, /* East Asian ideograph */ - {"\x29", 0, 0x5C67}, /* East Asian ideograph */ - {"\x2B", 0, 0x5C68}, /* East Asian ideograph */ - {"\x30", 0, 0x5C6D}, /* East Asian ideograph */ - {"\x31", 0, 0x5C6E}, /* East Asian ideograph */ - {"\x37", 0, 0x5C74}, /* East Asian ideograph */ - {"\x39", 0, 0x5C73}, /* East Asian ideograph */ - {"\x3B", 0, 0x5C77}, /* East Asian ideograph */ - {"\x3C", 0, 0x5C7A}, /* East Asian ideograph */ - {"\x40", 0, 0x5C7C}, /* East Asian ideograph */ - {"\x46", 0, 0x5C8F}, /* East Asian ideograph */ - {"\x49", 0, 0x5C88}, /* East Asian ideograph */ - {"\x4B", 0, 0x5C8D}, /* East Asian ideograph */ - {"\x4D", 0, 0x5C99}, /* East Asian ideograph */ - {"\x55", 0, 0x5CA6}, /* East Asian ideograph */ - {"\x57", 0, 0x5CA0}, /* East Asian ideograph */ - {"\x5C", 0, 0x5CA2}, /* East Asian ideograph */ - {"\x60", 0, 0x5CB5}, /* East Asian ideograph */ - {"\x61", 0, 0x5CA7}, /* East Asian ideograph */ - {"\x66", 0, 0x5CA8}, /* East Asian ideograph */ - {"\x67", 0, 0x5CAC}, /* East Asian ideograph */ - {"\x6B", 0, 0x5CA3}, /* East Asian ideograph */ - {"\x6C", 0, 0x5CB6}, /* East Asian ideograph */ - {"\x6D", 0, 0x5CC1}, /* East Asian ideograph */ - {"\x6F", 0, 0x5CAD}, /* East Asian ideograph */ - {"\x70", 0, 0x5CD5}, /* East Asian ideograph */ - {"\x78", 0, 0x5CD3}, /* East Asian ideograph */ - {"\x79", 0, 0x5C8D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page84 = { - marc8_31page84_flat, 0 -}; -/* PAGE 83 */ -struct yaz_iconv_trie_flat marc8_31page83_flat[] = { - {"\x24", 0, 0x5BF0}, /* East Asian ideograph */ - {"\x25", 0, 0x5BEF}, /* East Asian ideograph */ - {"\x33", 0, 0x5C00}, /* East Asian ideograph */ - {"\x35", 0, 0x5C57}, /* East Asian ideograph */ - {"\x3C", 0, 0x5C15}, /* East Asian ideograph */ - {"\x46", 0, 0x5C22}, /* East Asian ideograph */ - {"\x48", 0, 0x5C25}, /* East Asian ideograph */ - {"\x4B", 0, 0x5C2A}, /* East Asian ideograph */ - {"\x52", 0, 0x5C2F}, /* East Asian ideograph */ - {"\x5B", 0, 0x5C32}, /* East Asian ideograph */ - {"\x63", 0, 0x5C3B}, /* East Asian ideograph */ - {"\x65", 0, 0x5C44}, /* East Asian ideograph */ - {"\x67", 0, 0x5C49}, /* East Asian ideograph */ - {"\x79", 0, 0x5C59}, /* East Asian ideograph */ - {"\x7B", 0, 0x5C5D}, /* East Asian ideograph */ - {"\x7C", 0, 0x5C5F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page83 = { - marc8_31page83_flat, 0 -}; -/* PAGE 82 */ -struct yaz_iconv_trie_dir marc8_31page82_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {84, 0, 0}, - {85, 0, 0}, - {86, 0, 0}, - {87, 0, 0}, - {88, 0, 0}, - {89, 0, 0}, - {90, 0, 0}, - {91, 0, 0}, - {92, 0, 0}, - {93, 0, 0}, - {94, 0, 0}, - {95, 0, 0}, - {96, 0, 0}, - {97, 0, 0}, - {98, 0, 0}, - {99, 0, 0}, - {100, 0, 0}, - {101, 0, 0}, - {102, 0, 0}, - {103, 0, 0}, - {104, 0, 0}, - {105, 0, 0}, - {106, 0, 0}, - {107, 0, 0}, - {108, 0, 0}, - {109, 0, 0}, - {110, 0, 0}, - {111, 0, 0}, - {112, 0, 0}, - {113, 0, 0}, - {114, 0, 0}, - {115, 0, 0}, - {116, 0, 0}, - {117, 0, 0}, - {118, 0, 0}, - {119, 0, 0}, - {120, 0, 0}, - {121, 0, 0}, - {122, 0, 0}, - {123, 0, 0}, - {124, 0, 0}, - {125, 0, 0}, - {126, 0, 0}, - {127, 0, 0}, - {128, 0, 0}, - {129, 0, 0}, - {130, 0, 0}, - {131, 0, 0}, - {132, 0, 0}, - {133, 0, 0}, - {134, 0, 0}, - {135, 0, 0}, - {136, 0, 0}, - {137, 0, 0}, - {138, 0, 0}, - {139, 0, 0}, - {140, 0, 0}, - {141, 0, 0}, - {142, 0, 0}, - {143, 0, 0}, - {144, 0, 0}, - {145, 0, 0}, - {146, 0, 0}, - {147, 0, 0}, - {148, 0, 0}, - {149, 0, 0}, - {150, 0, 0}, - {151, 0, 0}, - {152, 0, 0}, - {153, 0, 0}, - {154, 0, 0}, - {155, 0, 0}, - {156, 0, 0}, - {157, 0, 0}, - {158, 0, 0}, - {159, 0, 0}, - {160, 0, 0}, - {161, 0, 0}, - {162, 0, 0}, - {163, 0, 0}, - {164, 0, 0}, - {165, 0, 0}, - {166, 0, 0}, - {167, 0, 0}, - {168, 0, 0}, - {169, 0, 0}, - {170, 0, 0}, - {171, 0, 0}, - {172, 0, 0}, - {173, 0, 0}, - {174, 0, 0}, - {175, 0, 0}, - {176, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page82 = { - 0, marc8_31page82_dir -}; -/* PAGE 81 */ -struct yaz_iconv_trie_flat marc8_31page81_flat[] = { - {"\x21", 0, 0x5B5B}, /* East Asian ideograph */ - {"\x23", 0, 0x5B62}, /* East Asian ideograph */ - {"\x24", 0, 0x5B65}, /* East Asian ideograph */ - {"\x25", 0, 0x5B67}, /* East Asian ideograph */ - {"\x27", 0, 0x5C58}, /* East Asian ideograph */ - {"\x28", 0, 0x5B6C}, /* East Asian ideograph */ - {"\x2A", 0, 0x5B6E}, /* East Asian ideograph */ - {"\x30", 0, 0x5B7B}, /* East Asian ideograph */ - {"\x31", 0, 0x5B7C}, /* East Asian ideograph */ - {"\x32", 0, 0x5B80}, /* East Asian ideograph */ - {"\x34", 0, 0x5B84}, /* East Asian ideograph */ - {"\x35", 0, 0x5B82}, /* East Asian ideograph */ - {"\x40", 0, 0x5B95}, /* East Asian ideograph */ - {"\x43", 0, 0x5B93}, /* East Asian ideograph */ - {"\x49", 0, 0x5BAC}, /* East Asian ideograph */ - {"\x52", 0, 0x5BA7}, /* East Asian ideograph */ - {"\x55", 0, 0x5BB7}, /* East Asian ideograph */ - {"\x59", 0, 0x5BC1}, /* East Asian ideograph */ - {"\x5B", 0, 0x3761}, /* East Asian ideograph (Unicode CJK Extension A) */ - {"\x60", 0, 0x5BC9}, /* East Asian ideograph */ - {"\x68", 0, 0x5BD4}, /* East Asian ideograph */ - {"\x6A", 0, 0x5BC3}, /* East Asian ideograph */ - {"\x6E", 0, 0x5BD6}, /* East Asian ideograph */ - {"\x75", 0, 0x5BD7}, /* East Asian ideograph */ - {"\x79", 0, 0x5BE0}, /* East Asian ideograph */ - {"\x7E", 0, 0x5BEA}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page81 = { - marc8_31page81_flat, 0 -}; -/* PAGE 80 */ -struct yaz_iconv_trie_flat marc8_31page80_flat[] = { - {"\x26", 0, 0x5AFF}, /* East Asian ideograph */ - {"\x2A", 0, 0x5AFD}, /* East Asian ideograph */ - {"\x2B", 0, 0x5B08}, /* East Asian ideograph */ - {"\x2E", 0, 0x5B0D}, /* East Asian ideograph */ - {"\x38", 0, 0x5B03}, /* East Asian ideograph */ - {"\x3D", 0, 0x5B17}, /* East Asian ideograph */ - {"\x3E", 0, 0x5B16}, /* East Asian ideograph */ - {"\x40", 0, 0x5B19}, /* East Asian ideograph */ - {"\x47", 0, 0x5B1B}, /* East Asian ideograph */ - {"\x48", 0, 0x5B21}, /* East Asian ideograph */ - {"\x52", 0, 0x5B2C}, /* East Asian ideograph */ - {"\x59", 0, 0x5B32}, /* East Asian ideograph */ - {"\x63", 0, 0x5B3F}, /* East Asian ideograph */ - {"\x6E", 0, 0x5B45}, /* East Asian ideograph */ - {"\x74", 0, 0x5B4C}, /* East Asian ideograph */ - {"\x76", 0, 0x5B4B}, /* East Asian ideograph */ - {"\x7C", 0, 0x5B56}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page80 = { - marc8_31page80_flat, 0 -}; -/* PAGE 79 */ -struct yaz_iconv_trie_flat marc8_31page79_flat[] = { - {"\x21", 0, 0x5AA6}, /* East Asian ideograph */ - {"\x22", 0, 0x5A8C}, /* East Asian ideograph */ - {"\x24", 0, 0x5AA7}, /* East Asian ideograph */ - {"\x25", 0, 0x5A9E}, /* East Asian ideograph */ - {"\x26", 0, 0x5AA2}, /* East Asian ideograph */ - {"\x27", 0, 0x5A9C}, /* East Asian ideograph */ - {"\x28", 0, 0x5A7C}, /* East Asian ideograph */ - {"\x29", 0, 0x5A96}, /* East Asian ideograph */ - {"\x30", 0, 0x5A93}, /* East Asian ideograph */ - {"\x31", 0, 0x5AAC}, /* East Asian ideograph */ - {"\x34", 0, 0x5AAE}, /* East Asian ideograph */ - {"\x35", 0, 0x5A95}, /* East Asian ideograph */ - {"\x36", 0, 0x5AAF}, /* East Asian ideograph */ - {"\x39", 0, 0x5AC8}, /* East Asian ideograph */ - {"\x3E", 0, 0x5AB5}, /* East Asian ideograph */ - {"\x41", 0, 0x5AC4}, /* East Asian ideograph */ - {"\x45", 0, 0x5AB7}, /* East Asian ideograph */ - {"\x49", 0, 0x5AD1}, /* East Asian ideograph */ - {"\x4A", 0, 0x5A90}, /* East Asian ideograph */ - {"\x4F", 0, 0x5AB8}, /* East Asian ideograph */ - {"\x50", 0, 0x5ABA}, /* East Asian ideograph */ - {"\x52", 0, 0x5AAA}, /* East Asian ideograph */ - {"\x59", 0, 0x5AD3}, /* East Asian ideograph */ - {"\x5B", 0, 0x5AB1}, /* East Asian ideograph */ - {"\x60", 0, 0x5ADC}, /* East Asian ideograph */ - {"\x6D", 0, 0x5AE5}, /* East Asian ideograph */ - {"\x6E", 0, 0x5AE0}, /* East Asian ideograph */ - {"\x72", 0, 0x5AEA}, /* East Asian ideograph */ - {"\x7B", 0, 0x5ADA}, /* East Asian ideograph */ - {"\x7C", 0, 0x5AEB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page79 = { - marc8_31page79_flat, 0 -}; -/* PAGE 78 */ -struct yaz_iconv_trie_flat marc8_31page78_flat[] = { - {"\x2C", 0, 0x5A60}, /* East Asian ideograph */ - {"\x31", 0, 0x5A67}, /* East Asian ideograph */ - {"\x3A", 0, 0x5A38}, /* East Asian ideograph */ - {"\x3B", 0, 0x5A5E}, /* East Asian ideograph */ - {"\x3C", 0, 0x5A6D}, /* East Asian ideograph */ - {"\x3D", 0, 0x5A35}, /* East Asian ideograph */ - {"\x3E", 0, 0x5A55}, /* East Asian ideograph */ - {"\x41", 0, 0x5A2C}, /* East Asian ideograph */ - {"\x48", 0, 0x5A50}, /* East Asian ideograph */ - {"\x49", 0, 0x5A65}, /* East Asian ideograph */ - {"\x52", 0, 0x5A64}, /* East Asian ideograph */ - {"\x65", 0, 0x5A8A}, /* East Asian ideograph */ - {"\x69", 0, 0x5ACF}, /* East Asian ideograph */ - {"\x6A", 0, 0x5A7A}, /* East Asian ideograph */ - {"\x71", 0, 0x5A9F}, /* East Asian ideograph */ - {"\x75", 0, 0x5AA0}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page78 = { - marc8_31page78_flat, 0 -}; -/* PAGE 77 */ -struct yaz_iconv_trie_flat marc8_31page77_flat[] = { - {"\x21", 0, 0x5990}, /* East Asian ideograph */ - {"\x24", 0, 0x59C5}, /* East Asian ideograph */ - {"\x25", 0, 0x59B5}, /* East Asian ideograph */ - {"\x28", 0, 0x59CF}, /* East Asian ideograph */ - {"\x2A", 0, 0x59BA}, /* East Asian ideograph */ - {"\x2C", 0, 0x59B8}, /* East Asian ideograph */ - {"\x35", 0, 0x59B2}, /* East Asian ideograph */ - {"\x3A", 0, 0x59B7}, /* East Asian ideograph */ - {"\x3E", 0, 0x59C1}, /* East Asian ideograph */ - {"\x43", 0, 0x59F9}, /* East Asian ideograph */ - {"\x44", 0, 0x59F8}, /* East Asian ideograph */ - {"\x4F", 0, 0x59EE}, /* East Asian ideograph */ - {"\x50", 0, 0x59F1}, /* East Asian ideograph */ - {"\x51", 0, 0x5A00}, /* East Asian ideograph */ - {"\x52", 0, 0x59DE}, /* East Asian ideograph */ - {"\x56", 0, 0x59FD}, /* East Asian ideograph */ - {"\x5D", 0, 0x59F6}, /* East Asian ideograph */ - {"\x5E", 0, 0x59DD}, /* East Asian ideograph */ - {"\x5F", 0, 0x59FA}, /* East Asian ideograph */ - {"\x61", 0, 0x59E4}, /* East Asian ideograph */ - {"\x6E", 0, 0x5A2A}, /* East Asian ideograph */ - {"\x75", 0, 0x5A16}, /* East Asian ideograph */ - {"\x78", 0, 0x5A09}, /* East Asian ideograph */ - {"\x7E", 0, 0x5A12}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page77 = { - marc8_31page77_flat, 0 -}; -/* PAGE 76 */ -struct yaz_iconv_trie_flat marc8_31page76_flat[] = { - {"\x28", 0, 0x592C}, /* East Asian ideograph */ - {"\x2B", 0, 0x592F}, /* East Asian ideograph */ - {"\x30", 0, 0x593C}, /* East Asian ideograph */ - {"\x33", 0, 0x5940}, /* East Asian ideograph */ - {"\x38", 0, 0x594D}, /* East Asian ideograph */ - {"\x43", 0, 0x5953}, /* East Asian ideograph */ - {"\x4B", 0, 0x595C}, /* East Asian ideograph */ - {"\x4F", 0, 0x5961}, /* East Asian ideograph */ - {"\x54", 0, 0x596C}, /* East Asian ideograph */ - {"\x55", 0, 0x596D}, /* East Asian ideograph */ - {"\x65", 0, 0x597C}, /* East Asian ideograph */ - {"\x69", 0, 0x59A7}, /* East Asian ideograph */ - {"\x6B", 0, 0x5998}, /* East Asian ideograph */ - {"\x6F", 0, 0x599A}, /* East Asian ideograph */ - {"\x71", 0, 0x59A0}, /* East Asian ideograph */ - {"\x7C", 0, 0x5997}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page76 = { - marc8_31page76_flat, 0 -}; -/* PAGE 75 */ -struct yaz_iconv_trie_flat marc8_31page75_flat[] = { - {"\x24", 0, 0x58B1}, /* East Asian ideograph */ - {"\x2B", 0, 0x58AD}, /* East Asian ideograph */ - {"\x2E", 0, 0x58A0}, /* East Asian ideograph */ - {"\x30", 0, 0x58A3}, /* East Asian ideograph */ - {"\x32", 0, 0x58A6}, /* East Asian ideograph */ - {"\x3A", 0, 0x58C8}, /* East Asian ideograph */ - {"\x41", 0, 0x58BC}, /* East Asian ideograph */ - {"\x49", 0, 0x58BF}, /* East Asian ideograph */ - {"\x4B", 0, 0x58C6}, /* East Asian ideograph */ - {"\x4C", 0, 0x58BA}, /* East Asian ideograph */ - {"\x50", 0, 0x58D6}, /* East Asian ideograph */ - {"\x54", 0, 0x58D2}, /* East Asian ideograph */ - {"\x56", 0, 0x58CE}, /* East Asian ideograph */ - {"\x5A", 0, 0x58E0}, /* East Asian ideograph */ - {"\x5E", 0, 0x58DA}, /* East Asian ideograph */ - {"\x6C", 0, 0x58FC}, /* East Asian ideograph */ - {"\x70", 0, 0x5902}, /* East Asian ideograph */ - {"\x73", 0, 0x5906}, /* East Asian ideograph */ - {"\x74", 0, 0x6535}, /* East Asian ideograph */ - {"\x7A", 0, 0x5910}, /* East Asian ideograph */ - {"\x7C", 0, 0x8641}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page75 = { - marc8_31page75_flat, 0 -}; -/* PAGE 74 */ -struct yaz_iconv_trie_flat marc8_31page74_flat[] = { - {"\x21", 0, 0x5848}, /* East Asian ideograph */ - {"\x23", 0, 0x5818}, /* East Asian ideograph */ - {"\x26", 0, 0x57F5}, /* East Asian ideograph */ - {"\x29", 0, 0x582D}, /* East Asian ideograph */ - {"\x2B", 0, 0x5820}, /* East Asian ideograph */ - {"\x30", 0, 0x584E}, /* East Asian ideograph */ - {"\x33", 0, 0x585D}, /* East Asian ideograph */ - {"\x35", 0, 0x5859}, /* East Asian ideograph */ - {"\x37", 0, 0x584B}, /* East Asian ideograph */ - {"\x3D", 0, 0x5865}, /* East Asian ideograph */ - {"\x40", 0, 0x586C}, /* East Asian ideograph */ - {"\x42", 0, 0x5852}, /* East Asian ideograph */ - {"\x45", 0, 0x5864}, /* East Asian ideograph */ - {"\x47", 0, 0x5853}, /* East Asian ideograph */ - {"\x48", 0, 0x584F}, /* East Asian ideograph */ - {"\x49", 0, 0x583D}, /* East Asian ideograph */ - {"\x4D", 0, 0x584D}, /* East Asian ideograph */ - {"\x4E", 0, 0x5856}, /* East Asian ideograph */ - {"\x55", 0, 0x589A}, /* East Asian ideograph */ - {"\x58", 0, 0x5892}, /* East Asian ideograph */ - {"\x5A", 0, 0x588E}, /* East Asian ideograph */ - {"\x5C", 0, 0x5889}, /* East Asian ideograph */ - {"\x5F", 0, 0x5840}, /* East Asian ideograph */ - {"\x60", 0, 0x589B}, /* East Asian ideograph */ - {"\x61", 0, 0x587C}, /* East Asian ideograph */ - {"\x63", 0, 0x5888}, /* East Asian ideograph */ - {"\x65", 0, 0x5890}, /* East Asian ideograph */ - {"\x68", 0, 0x5898}, /* East Asian ideograph */ - {"\x6B", 0, 0x587D}, /* East Asian ideograph */ - {"\x6F", 0, 0x587F}, /* East Asian ideograph */ - {"\x70", 0, 0x5881}, /* East Asian ideograph */ - {"\x7B", 0, 0x58A9}, /* East Asian ideograph */ - {"\x7E", 0, 0x58A1}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page74 = { - marc8_31page74_flat, 0 -}; -/* PAGE 73 */ -struct yaz_iconv_trie_flat marc8_31page73_flat[] = { - {"\x22", 0, 0x57C4}, /* East Asian ideograph */ - {"\x27", 0, 0x70FE}, /* East Asian ideograph */ - {"\x29", 0, 0x57E3}, /* East Asian ideograph */ - {"\x2A", 0, 0x57FB}, /* East Asian ideograph */ - {"\x2B", 0, 0x5803}, /* East Asian ideograph */ - {"\x2C", 0, 0x57F6}, /* East Asian ideograph */ - {"\x2D", 0, 0x57E6}, /* East Asian ideograph */ - {"\x31", 0, 0x57ED}, /* East Asian ideograph */ - {"\x33", 0, 0x5800}, /* East Asian ideograph */ - {"\x35", 0, 0x57EC}, /* East Asian ideograph */ - {"\x36", 0, 0x5807}, /* East Asian ideograph */ - {"\x39", 0, 0x580E}, /* East Asian ideograph */ - {"\x3B", 0, 0x580F}, /* East Asian ideograph */ - {"\x3D", 0, 0x57F4}, /* East Asian ideograph */ - {"\x3E", 0, 0x5810}, /* East Asian ideograph */ - {"\x40", 0, 0x580D}, /* East Asian ideograph */ - {"\x43", 0, 0x57EF}, /* East Asian ideograph */ - {"\x48", 0, 0x5801}, /* East Asian ideograph */ - {"\x49", 0, 0x5812}, /* East Asian ideograph */ - {"\x4D", 0, 0x57FD}, /* East Asian ideograph */ - {"\x4E", 0, 0x57F8}, /* East Asian ideograph */ - {"\x50", 0, 0x580C}, /* East Asian ideograph */ - {"\x51", 0, 0x5813}, /* East Asian ideograph */ - {"\x52", 0, 0x57F0}, /* East Asian ideograph */ - {"\x56", 0, 0x580B}, /* East Asian ideograph */ - {"\x58", 0, 0x57F3}, /* East Asian ideograph */ - {"\x59", 0, 0x5804}, /* East Asian ideograph */ - {"\x5A", 0, 0x57CF}, /* East Asian ideograph */ - {"\x5B", 0, 0x57DD}, /* East Asian ideograph */ - {"\x5F", 0, 0x5847}, /* East Asian ideograph */ - {"\x67", 0, 0x581B}, /* East Asian ideograph */ - {"\x69", 0, 0x5819}, /* East Asian ideograph */ - {"\x6A", 0, 0x5833}, /* East Asian ideograph */ - {"\x6C", 0, 0x581E}, /* East Asian ideograph */ - {"\x6D", 0, 0x583F}, /* East Asian ideograph */ - {"\x71", 0, 0x5827}, /* East Asian ideograph */ - {"\x76", 0, 0x5828}, /* East Asian ideograph */ - {"\x78", 0, 0x582E}, /* East Asian ideograph */ - {"\x7A", 0, 0x581D}, /* East Asian ideograph */ - {"\x7D", 0, 0x5844}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page73 = { - marc8_31page73_flat, 0 -}; -/* PAGE 72 */ -struct yaz_iconv_trie_flat marc8_31page72_flat[] = { - {"\x26", 0, 0x5770}, /* East Asian ideograph */ - {"\x28", 0, 0x5771}, /* East Asian ideograph */ - {"\x2A", 0, 0x576E}, /* East Asian ideograph */ - {"\x2D", 0, 0x5776}, /* East Asian ideograph */ - {"\x2E", 0, 0x5789}, /* East Asian ideograph */ - {"\x30", 0, 0x577F}, /* East Asian ideograph */ - {"\x31", 0, 0x5775}, /* East Asian ideograph */ - {"\x32", 0, 0x577B}, /* East Asian ideograph */ - {"\x33", 0, 0x5788}, /* East Asian ideograph */ - {"\x35", 0, 0x5773}, /* East Asian ideograph */ - {"\x38", 0, 0x579F}, /* East Asian ideograph */ - {"\x39", 0, 0x5790}, /* East Asian ideograph */ - {"\x3A", 0, 0x5793}, /* East Asian ideograph */ - {"\x3F", 0, 0x579E}, /* East Asian ideograph */ - {"\x40", 0, 0x57B5}, /* East Asian ideograph */ - {"\x43", 0, 0x579A}, /* East Asian ideograph */ - {"\x45", 0, 0x5794}, /* East Asian ideograph */ - {"\x47", 0, 0x57A4}, /* East Asian ideograph */ - {"\x48", 0, 0x5799}, /* East Asian ideograph */ - {"\x49", 0, 0x578C}, /* East Asian ideograph */ - {"\x4B", 0, 0x5797}, /* East Asian ideograph */ - {"\x4E", 0, 0x579D}, /* East Asian ideograph */ - {"\x52", 0, 0x579C}, /* East Asian ideograph */ - {"\x54", 0, 0x57A7}, /* East Asian ideograph */ - {"\x57", 0, 0x57A1}, /* East Asian ideograph */ - {"\x59", 0, 0x212C4}, /* East Asian ideograph (Unicode CJK Extension B) */ - {"\x5B", 0, 0x5795}, /* East Asian ideograph */ - {"\x5F", 0, 0x57B8}, /* East Asian ideograph */ - {"\x60", 0, 0x57C7}, /* East Asian ideograph */ - {"\x6A", 0, 0x5809}, /* East Asian ideograph */ - {"\x6C", 0, 0x57BE}, /* East Asian ideograph */ - {"\x71", 0, 0x57DB}, /* East Asian ideograph */ - {"\x73", 0, 0x57D5}, /* East Asian ideograph */ - {"\x77", 0, 0x57D2}, /* East Asian ideograph */ - {"\x7E", 0, 0x57C6}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page72 = { - marc8_31page72_flat, 0 -}; -/* PAGE 71 */ -struct yaz_iconv_trie_flat marc8_31page71_flat[] = { - {"\x21", 0, 0x56F9}, /* East Asian ideograph */ - {"\x24", 0, 0x56FF}, /* East Asian ideograph */ - {"\x27", 0, 0x5705}, /* East Asian ideograph */ - {"\x28", 0, 0x5704}, /* East Asian ideograph */ - {"\x29", 0, 0x5702}, /* East Asian ideograph */ - {"\x2C", 0, 0x570A}, /* East Asian ideograph */ - {"\x2D", 0, 0x5709}, /* East Asian ideograph */ - {"\x2E", 0, 0x5707}, /* East Asian ideograph */ - {"\x30", 0, 0x570C}, /* East Asian ideograph */ - {"\x31", 0, 0x5715}, /* East Asian ideograph */ - {"\x32", 0, 0x5714}, /* East Asian ideograph */ - {"\x35", 0, 0x571A}, /* East Asian ideograph */ - {"\x36", 0, 0x571B}, /* East Asian ideograph */ - {"\x37", 0, 0x571C}, /* East Asian ideograph */ - {"\x39", 0, 0x571D}, /* East Asian ideograph */ - {"\x3A", 0, 0x571E}, /* East Asian ideograph */ - {"\x41", 0, 0x5724}, /* East Asian ideograph */ - {"\x42", 0, 0x572E}, /* East Asian ideograph */ - {"\x43", 0, 0x5729}, /* East Asian ideograph */ - {"\x48", 0, 0x5738}, /* East Asian ideograph */ - {"\x4C", 0, 0x572A}, /* East Asian ideograph */ - {"\x63", 0, 0x5749}, /* East Asian ideograph */ - {"\x65", 0, 0x5745}, /* East Asian ideograph */ - {"\x68", 0, 0x574B}, /* East Asian ideograph */ - {"\x69", 0, 0x574C}, /* East Asian ideograph */ - {"\x6A", 0, 0x573F}, /* East Asian ideograph */ - {"\x70", 0, 0x5768}, /* East Asian ideograph */ - {"\x75", 0, 0x578A}, /* East Asian ideograph */ - {"\x77", 0, 0x576D}, /* East Asian ideograph */ - {"\x79", 0, 0x5774}, /* East Asian ideograph */ - {"\x7A", 0, 0x5767}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page71 = { - marc8_31page71_flat, 0 -}; -/* PAGE 70 */ -struct yaz_iconv_trie_flat marc8_31page70_flat[] = { - {"\x25", 0, 0x5693}, /* East Asian ideograph */ - {"\x28", 0, 0x568C}, /* East Asian ideograph */ - {"\x32", 0, 0x56BA}, /* East Asian ideograph */ - {"\x34", 0, 0x5686}, /* East Asian ideograph */ - {"\x35", 0, 0x5684}, /* East Asian ideograph */ - {"\x36", 0, 0x5691}, /* East Asian ideograph */ - {"\x37", 0, 0x568A}, /* East Asian ideograph */ - {"\x3E", 0, 0x569E}, /* East Asian ideograph */ - {"\x41", 0, 0x569C}, /* East Asian ideograph */ - {"\x42", 0, 0x569A}, /* East Asian ideograph */ - {"\x45", 0, 0x5699}, /* East Asian ideograph */ - {"\x4B", 0, 0x56AD}, /* East Asian ideograph */ - {"\x4C", 0, 0x56A6}, /* East Asian ideograph */ - {"\x4E", 0, 0x56AC}, /* East Asian ideograph */ - {"\x53", 0, 0x56B2}, /* East Asian ideograph */ - {"\x5A", 0, 0x56B3}, /* East Asian ideograph */ - {"\x5B", 0, 0x56C3}, /* East Asian ideograph */ - {"\x60", 0, 0x56C5}, /* East Asian ideograph */ - {"\x62", 0, 0x56CF}, /* East Asian ideograph */ - {"\x67", 0, 0x56CD}, /* East Asian ideograph */ - {"\x6A", 0, 0x56D4}, /* East Asian ideograph */ - {"\x6B", 0, 0x56D7}, /* East Asian ideograph */ - {"\x6D", 0, 0x56DD}, /* East Asian ideograph */ - {"\x6F", 0, 0x56E1}, /* East Asian ideograph */ - {"\x70", 0, 0x56DF}, /* East Asian ideograph */ - {"\x75", 0, 0x56EB}, /* East Asian ideograph */ - {"\x76", 0, 0x56EE}, /* East Asian ideograph */ - {"\x77", 0, 0x56E7}, /* East Asian ideograph */ - {"\x79", 0, 0x56FB}, /* East Asian ideograph */ - {"\x7E", 0, 0x56F7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page70 = { - marc8_31page70_flat, 0 -}; -/* PAGE 69 */ -struct yaz_iconv_trie_flat marc8_31page69_flat[] = { - {"\x24", 0, 0x55FB}, /* East Asian ideograph */ - {"\x25", 0, 0x5612}, /* East Asian ideograph */ - {"\x27", 0, 0x55F8}, /* East Asian ideograph */ - {"\x28", 0, 0x560F}, /* East Asian ideograph */ - {"\x2B", 0, 0x55F9}, /* East Asian ideograph */ - {"\x2E", 0, 0x561E}, /* East Asian ideograph */ - {"\x31", 0, 0x560C}, /* East Asian ideograph */ - {"\x34", 0, 0x561C}, /* East Asian ideograph */ - {"\x35", 0, 0x5610}, /* East Asian ideograph */ - {"\x36", 0, 0x5601}, /* East Asian ideograph */ - {"\x38", 0, 0x5613}, /* East Asian ideograph */ - {"\x39", 0, 0x55F6}, /* East Asian ideograph */ - {"\x3C", 0, 0x5602}, /* East Asian ideograph */ - {"\x42", 0, 0x561D}, /* East Asian ideograph */ - {"\x44", 0, 0x55FF}, /* East Asian ideograph */ - {"\x47", 0, 0x5642}, /* East Asian ideograph */ - {"\x48", 0, 0x564C}, /* East Asian ideograph */ - {"\x4B", 0, 0x564B}, /* East Asian ideograph */ - {"\x52", 0, 0x5640}, /* East Asian ideograph */ - {"\x55", 0, 0x5635}, /* East Asian ideograph */ - {"\x57", 0, 0x5649}, /* East Asian ideograph */ - {"\x58", 0, 0x5641}, /* East Asian ideograph */ - {"\x5C", 0, 0x5658}, /* East Asian ideograph */ - {"\x5D", 0, 0x5620}, /* East Asian ideograph */ - {"\x5E", 0, 0x5654}, /* East Asian ideograph */ - {"\x60", 0, 0x562A}, /* East Asian ideograph */ - {"\x61", 0, 0x563D}, /* East Asian ideograph */ - {"\x64", 0, 0x562C}, /* East Asian ideograph */ - {"\x67", 0, 0x5638}, /* East Asian ideograph */ - {"\x69", 0, 0x564D}, /* East Asian ideograph */ - {"\x6B", 0, 0x562B}, /* East Asian ideograph */ - {"\x6C", 0, 0x564F}, /* East Asian ideograph */ - {"\x6E", 0, 0x5670}, /* East Asian ideograph */ - {"\x6F", 0, 0x565F}, /* East Asian ideograph */ - {"\x70", 0, 0x567C}, /* East Asian ideograph */ - {"\x72", 0, 0x5660}, /* East Asian ideograph */ - {"\x78", 0, 0x5676}, /* East Asian ideograph */ - {"\x7A", 0, 0x5666}, /* East Asian ideograph */ - {"\x7B", 0, 0x5673}, /* East Asian ideograph */ - {"\x7C", 0, 0x566D}, /* East Asian ideograph */ - {"\x7E", 0, 0x5672}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page69 = { - marc8_31page69_flat, 0 -}; -/* PAGE 68 */ -struct yaz_iconv_trie_flat marc8_31page68_flat[] = { - {"\x23", 0, 0x5591}, /* East Asian ideograph */ - {"\x25", 0, 0x5577}, /* East Asian ideograph */ - {"\x26", 0, 0x55A8}, /* East Asian ideograph */ - {"\x27", 0, 0x55AD}, /* East Asian ideograph */ - {"\x2A", 0, 0x5605}, /* East Asian ideograph */ - {"\x2D", 0, 0x5593}, /* East Asian ideograph */ - {"\x2F", 0, 0x5586}, /* East Asian ideograph */ - {"\x34", 0, 0x5588}, /* East Asian ideograph */ - {"\x36", 0, 0x55B4}, /* East Asian ideograph */ - {"\x43", 0, 0x55E2}, /* East Asian ideograph (variant of EACC 2D7143) */ - {"\x44", 0, 0x5581}, /* East Asian ideograph */ - {"\x45", 0, 0x558E}, /* East Asian ideograph */ - {"\x47", 0, 0x55B5}, /* East Asian ideograph */ - {"\x49", 0, 0x558F}, /* East Asian ideograph */ - {"\x4B", 0, 0x5559}, /* East Asian ideograph */ - {"\x50", 0, 0x55A4}, /* East Asian ideograph */ - {"\x51", 0, 0x5592}, /* East Asian ideograph */ - {"\x52", 0, 0x5599}, /* East Asian ideograph */ - {"\x56", 0, 0x55F4}, /* East Asian ideograph */ - {"\x58", 0, 0x55CC}, /* East Asian ideograph */ - {"\x59", 0, 0x55D0}, /* East Asian ideograph */ - {"\x5A", 0, 0x55DB}, /* East Asian ideograph */ - {"\x5B", 0, 0x55CD}, /* East Asian ideograph */ - {"\x5C", 0, 0x55DE}, /* East Asian ideograph */ - {"\x5D", 0, 0x55D9}, /* East Asian ideograph */ - {"\x5E", 0, 0x55C3}, /* East Asian ideograph */ - {"\x5F", 0, 0x55C9}, /* East Asian ideograph */ - {"\x61", 0, 0x55CA}, /* East Asian ideograph */ - {"\x62", 0, 0x55DD}, /* East Asian ideograph */ - {"\x64", 0, 0x55D4}, /* East Asian ideograph */ - {"\x65", 0, 0x55C4}, /* East Asian ideograph */ - {"\x69", 0, 0x55E9}, /* East Asian ideograph */ - {"\x6F", 0, 0x55CF}, /* East Asian ideograph */ - {"\x70", 0, 0x55D2}, /* East Asian ideograph */ - {"\x75", 0, 0x55E5}, /* East Asian ideograph */ - {"\x77", 0, 0x55D6}, /* East Asian ideograph */ - {"\x78", 0, 0x55C1}, /* East Asian ideograph */ - {"\x79", 0, 0x55F2}, /* East Asian ideograph */ - {"\x7E", 0, 0x5627}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page68 = { - marc8_31page68_flat, 0 -}; -/* PAGE 67 */ -struct yaz_iconv_trie_flat marc8_31page67_flat[] = { - {"\x23", 0, 0x5517}, /* East Asian ideograph */ - {"\x24", 0, 0x54FD}, /* East Asian ideograph */ - {"\x25", 0, 0x54E7}, /* East Asian ideograph */ - {"\x27", 0, 0x54F3}, /* East Asian ideograph */ - {"\x2A", 0, 0x54E4}, /* East Asian ideograph */ - {"\x2B", 0, 0x550A}, /* East Asian ideograph */ - {"\x2D", 0, 0x54FF}, /* East Asian ideograph */ - {"\x2E", 0, 0x5518}, /* East Asian ideograph */ - {"\x30", 0, 0x5504}, /* East Asian ideograph */ - {"\x32", 0, 0x54EF}, /* East Asian ideograph */ - {"\x34", 0, 0x5508}, /* East Asian ideograph */ - {"\x38", 0, 0x54F6}, /* East Asian ideograph */ - {"\x39", 0, 0x54F7}, /* East Asian ideograph */ - {"\x3E", 0, 0x550E}, /* East Asian ideograph */ - {"\x44", 0, 0x5523}, /* East Asian ideograph */ - {"\x46", 0, 0x550F}, /* East Asian ideograph */ - {"\x47", 0, 0x5511}, /* East Asian ideograph */ - {"\x4B", 0, 0x5575}, /* East Asian ideograph */ - {"\x4D", 0, 0x5573}, /* East Asian ideograph */ - {"\x4E", 0, 0x554C}, /* East Asian ideograph */ - {"\x4F", 0, 0x5576}, /* East Asian ideograph */ - {"\x50", 0, 0x554D}, /* East Asian ideograph */ - {"\x51", 0, 0x555A}, /* East Asian ideograph */ - {"\x53", 0, 0x553C}, /* East Asian ideograph */ - {"\x55", 0, 0x5550}, /* East Asian ideograph */ - {"\x57", 0, 0x5539}, /* East Asian ideograph */ - {"\x58", 0, 0x5548}, /* East Asian ideograph */ - {"\x59", 0, 0x552D}, /* East Asian ideograph */ - {"\x5A", 0, 0x5551}, /* East Asian ideograph */ - {"\x5D", 0, 0x552A}, /* East Asian ideograph */ - {"\x60", 0, 0x5562}, /* East Asian ideograph */ - {"\x61", 0, 0x5536}, /* East Asian ideograph */ - {"\x64", 0, 0x5549}, /* East Asian ideograph */ - {"\x68", 0, 0x5530}, /* East Asian ideograph */ - {"\x6A", 0, 0x5540}, /* East Asian ideograph */ - {"\x6B", 0, 0x5535}, /* East Asian ideograph */ - {"\x70", 0, 0x5545}, /* East Asian ideograph */ - {"\x79", 0, 0x553F}, /* East Asian ideograph */ - {"\x7B", 0, 0x5541}, /* East Asian ideograph */ - {"\x7D", 0, 0x5565}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page67 = { - marc8_31page67_flat, 0 -}; -/* PAGE 66 */ -struct yaz_iconv_trie_flat marc8_31page66_flat[] = { - {"\x21", 0, 0x544F}, /* East Asian ideograph */ - {"\x24", 0, 0x542A}, /* East Asian ideograph */ - {"\x26", 0, 0x5422}, /* East Asian ideograph */ - {"\x27", 0, 0x5423}, /* East Asian ideograph */ - {"\x2E", 0, 0x545F}, /* East Asian ideograph */ - {"\x2F", 0, 0x549C}, /* East Asian ideograph */ - {"\x35", 0, 0x5488}, /* East Asian ideograph */ - {"\x37", 0, 0x547F}, /* East Asian ideograph */ - {"\x39", 0, 0x5482}, /* East Asian ideograph */ - {"\x3A", 0, 0x546D}, /* East Asian ideograph */ - {"\x3B", 0, 0x5491}, /* East Asian ideograph */ - {"\x42", 0, 0x5494}, /* East Asian ideograph */ - {"\x43", 0, 0x546B}, /* East Asian ideograph */ - {"\x49", 0, 0x548D}, /* East Asian ideograph */ - {"\x4A", 0, 0x5463}, /* East Asian ideograph */ - {"\x4B", 0, 0x5474}, /* East Asian ideograph */ - {"\x52", 0, 0x5466}, /* East Asian ideograph */ - {"\x53", 0, 0x5464}, /* East Asian ideograph */ - {"\x55", 0, 0x54A4}, /* East Asian ideograph */ - {"\x58", 0, 0x54A1}, /* East Asian ideograph */ - {"\x5A", 0, 0x54AD}, /* East Asian ideograph */ - {"\x5B", 0, 0x54BA}, /* East Asian ideograph */ - {"\x5C", 0, 0x54CF}, /* East Asian ideograph */ - {"\x5E", 0, 0x54BE}, /* East Asian ideograph */ - {"\x60", 0, 0x54A5}, /* East Asian ideograph */ - {"\x63", 0, 0x54A7}, /* East Asian ideograph */ - {"\x64", 0, 0x54B5}, /* East Asian ideograph */ - {"\x66", 0, 0x54A2}, /* East Asian ideograph */ - {"\x67", 0, 0x5472}, /* East Asian ideograph */ - {"\x68", 0, 0x5470}, /* East Asian ideograph */ - {"\x69", 0, 0x54BC}, /* East Asian ideograph */ - {"\x6A", 0, 0x54B7}, /* East Asian ideograph */ - {"\x6B", 0, 0x54DE}, /* East Asian ideograph */ - {"\x6C", 0, 0x54D6}, /* East Asian ideograph */ - {"\x6D", 0, 0x54AE}, /* East Asian ideograph */ - {"\x71", 0, 0x54BF}, /* East Asian ideograph */ - {"\x74", 0, 0x54C6}, /* East Asian ideograph */ - {"\x7B", 0, 0x551A}, /* East Asian ideograph */ - {"\x7C", 0, 0x54E2}, /* East Asian ideograph */ - {"\x7D", 0, 0x5507}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page66 = { - marc8_31page66_flat, 0 -}; -/* PAGE 65 */ -struct yaz_iconv_trie_flat marc8_31page65_flat[] = { - {"\x2C", 0, 0x53B5}, /* East Asian ideograph */ - {"\x2E", 0, 0x53B9}, /* East Asian ideograph */ - {"\x3E", 0, 0x53D0}, /* East Asian ideograph */ - {"\x48", 0, 0x53DA}, /* East Asian ideograph */ - {"\x57", 0, 0x53FB}, /* East Asian ideograph */ - {"\x58", 0, 0x535F}, /* East Asian ideograph */ - {"\x61", 0, 0x5414}, /* East Asian ideograph */ - {"\x68", 0, 0x5406}, /* East Asian ideograph */ - {"\x6C", 0, 0x544C}, /* East Asian ideograph */ - {"\x6D", 0, 0x5445}, /* East Asian ideograph */ - {"\x6F", 0, 0x541A}, /* East Asian ideograph */ - {"\x70", 0, 0x5432}, /* East Asian ideograph */ - {"\x76", 0, 0x5421}, /* East Asian ideograph */ - {"\x78", 0, 0x5430}, /* East Asian ideograph */ - {"\x79", 0, 0x5454}, /* East Asian ideograph */ - {"\x7D", 0, 0x543D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page65 = { - marc8_31page65_flat, 0 -}; -/* PAGE 64 */ -struct yaz_iconv_trie_flat marc8_31page64_flat[] = { - {"\x23", 0, 0x531A}, /* East Asian ideograph */ - {"\x24", 0, 0x531C}, /* East Asian ideograph */ - {"\x25", 0, 0x531F}, /* East Asian ideograph */ - {"\x2E", 0, 0x532D}, /* East Asian ideograph */ - {"\x33", 0, 0x5330}, /* East Asian ideograph */ - {"\x36", 0, 0x5335}, /* East Asian ideograph */ - {"\x3A", 0, 0x5338}, /* East Asian ideograph */ - {"\x3E", 0, 0x533D}, /* East Asian ideograph */ - {"\x41", 0, 0x534C}, /* East Asian ideograph */ - {"\x42", 0, 0x534D}, /* East Asian ideograph */ - {"\x4B", 0, 0x535D}, /* East Asian ideograph */ - {"\x4C", 0, 0x5363}, /* East Asian ideograph */ - {"\x4E", 0, 0x5365}, /* East Asian ideograph */ - {"\x53", 0, 0x536C}, /* East Asian ideograph */ - {"\x57", 0, 0x5372}, /* East Asian ideograph */ - {"\x58", 0, 0x537A}, /* East Asian ideograph */ - {"\x5D", 0, 0x5380}, /* East Asian ideograph */ - {"\x64", 0, 0x538E}, /* East Asian ideograph */ - {"\x66", 0, 0x5393}, /* East Asian ideograph */ - {"\x67", 0, 0x5394}, /* East Asian ideograph */ - {"\x6D", 0, 0x5399}, /* East Asian ideograph */ - {"\x74", 0, 0x8652}, /* East Asian ideograph */ - {"\x7A", 0, 0x53A4}, /* East Asian ideograph */ - {"\x7B", 0, 0x53AB}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page64 = { - marc8_31page64_flat, 0 -}; -/* PAGE 63 */ -struct yaz_iconv_trie_flat marc8_31page63_flat[] = { - {"\x21", 0, 0x5293}, /* East Asian ideograph */ - {"\x27", 0, 0x5296}, /* East Asian ideograph */ - {"\x29", 0, 0x5298}, /* East Asian ideograph */ - {"\x2B", 0, 0x529A}, /* East Asian ideograph */ - {"\x2C", 0, 0x5299}, /* East Asian ideograph */ - {"\x2E", 0, 0x52A6}, /* East Asian ideograph */ - {"\x31", 0, 0x52AD}, /* East Asian ideograph */ - {"\x33", 0, 0x52AE}, /* East Asian ideograph */ - {"\x37", 0, 0x52BB}, /* East Asian ideograph */ - {"\x38", 0, 0x52BC}, /* East Asian ideograph */ - {"\x3C", 0, 0x52CA}, /* East Asian ideograph */ - {"\x3D", 0, 0x52CD}, /* East Asian ideograph */ - {"\x40", 0, 0x52D0}, /* East Asian ideograph */ - {"\x41", 0, 0x52D1}, /* East Asian ideograph */ - {"\x46", 0, 0x52D4}, /* East Asian ideograph */ - {"\x48", 0, 0x52D6}, /* East Asian ideograph */ - {"\x4C", 0, 0x52E3}, /* East Asian ideograph */ - {"\x4E", 0, 0x52E1}, /* East Asian ideograph */ - {"\x50", 0, 0x55E7}, /* East Asian ideograph */ - {"\x53", 0, 0x52E9}, /* East Asian ideograph */ - {"\x58", 0, 0x52F0}, /* East Asian ideograph */ - {"\x5A", 0, 0x52F1}, /* East Asian ideograph */ - {"\x5E", 0, 0x52F7}, /* East Asian ideograph */ - {"\x61", 0, 0x52F9}, /* East Asian ideograph */ - {"\x62", 0, 0x52FA}, /* East Asian ideograph */ - {"\x64", 0, 0x52FC}, /* East Asian ideograph */ - {"\x69", 0, 0x5307}, /* East Asian ideograph */ - {"\x6A", 0, 0x5303}, /* East Asian ideograph */ - {"\x6B", 0, 0x5306}, /* East Asian ideograph */ - {"\x6E", 0, 0x530A}, /* East Asian ideograph */ - {"\x6F", 0, 0x530B}, /* East Asian ideograph */ - {"\x77", 0, 0x5311}, /* East Asian ideograph */ - {"\x7B", 0, 0x6706}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page63 = { - marc8_31page63_flat, 0 -}; -/* PAGE 62 */ -struct yaz_iconv_trie_flat marc8_31page62_flat[] = { - {"\x24", 0, 0x5213}, /* East Asian ideograph */ - {"\x26", 0, 0x5216}, /* East Asian ideograph */ - {"\x2A", 0, 0x521C}, /* East Asian ideograph */ - {"\x33", 0, 0x5231}, /* East Asian ideograph */ - {"\x36", 0, 0x5235}, /* East Asian ideograph */ - {"\x37", 0, 0x5232}, /* East Asian ideograph */ - {"\x39", 0, 0x5233}, /* East Asian ideograph */ - {"\x3E", 0, 0x5244}, /* East Asian ideograph */ - {"\x43", 0, 0x5249}, /* East Asian ideograph */ - {"\x47", 0, 0x5260}, /* East Asian ideograph */ - {"\x4B", 0, 0x525A}, /* East Asian ideograph */ - {"\x4C", 0, 0x5252}, /* East Asian ideograph */ - {"\x4D", 0, 0x525E}, /* East Asian ideograph */ - {"\x50", 0, 0x525F}, /* East Asian ideograph */ - {"\x53", 0, 0x5255}, /* East Asian ideograph */ - {"\x5B", 0, 0x526E}, /* East Asian ideograph */ - {"\x5E", 0, 0x5268}, /* East Asian ideograph */ - {"\x5F", 0, 0x7B9A}, /* East Asian ideograph */ - {"\x6B", 0, 0x5278}, /* East Asian ideograph */ - {"\x74", 0, 0x5282}, /* East Asian ideograph */ - {"\x75", 0, 0x5281}, /* East Asian ideograph */ - {"\x79", 0, 0x528C}, /* East Asian ideograph */ - {"\x7A", 0, 0x528A}, /* East Asian ideograph */ - {"\x7C", 0, 0x5290}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page62 = { - marc8_31page62_flat, 0 -}; -/* PAGE 61 */ -struct yaz_iconv_trie_flat marc8_31page61_flat[] = { - {"\x22", 0, 0x51AA}, /* East Asian ideograph */ - {"\x23", 0, 0x51AB}, /* East Asian ideograph */ - {"\x26", 0, 0x51B1}, /* East Asian ideograph */ - {"\x35", 0, 0x51BC}, /* East Asian ideograph */ - {"\x43", 0, 0x51CA}, /* East Asian ideograph */ - {"\x46", 0, 0x51C7}, /* East Asian ideograph */ - {"\x4E", 0, 0x51D1}, /* East Asian ideograph */ - {"\x4F", 0, 0x51D0}, /* East Asian ideograph */ - {"\x54", 0, 0x51D3}, /* East Asian ideograph */ - {"\x63", 0, 0x51D9}, /* East Asian ideograph */ - {"\x66", 0, 0x51DF}, /* East Asian ideograph */ - {"\x68", 0, 0x51E2}, /* East Asian ideograph */ - {"\x73", 0, 0x5160}, /* East Asian ideograph */ - {"\x78", 0, 0x51F5}, /* East Asian ideograph */ - {"\x79", 0, 0x51F7}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page61 = { - marc8_31page61_flat, 0 -}; -/* PAGE 60 */ -struct yaz_iconv_trie_flat marc8_31page60_flat[] = { - {"\x29", 0, 0x5124}, /* East Asian ideograph */ - {"\x2B", 0, 0x5129}, /* East Asian ideograph */ - {"\x30", 0, 0x5131}, /* East Asian ideograph */ - {"\x3E", 0, 0x5135}, /* East Asian ideograph */ - {"\x40", 0, 0x5133}, /* East Asian ideograph */ - {"\x44", 0, 0x513A}, /* East Asian ideograph */ - {"\x47", 0, 0x5139}, /* East Asian ideograph */ - {"\x48", 0, 0x513B}, /* East Asian ideograph */ - {"\x51", 0, 0x5159}, /* East Asian ideograph */ - {"\x52", 0, 0x515B}, /* East Asian ideograph */ - {"\x55", 0, 0x515D}, /* East Asian ideograph */ - {"\x56", 0, 0x515E}, /* East Asian ideograph */ - {"\x58", 0, 0x515F}, /* East Asian ideograph */ - {"\x59", 0, 0x5161}, /* East Asian ideograph */ - {"\x5C", 0, 0x5163}, /* East Asian ideograph */ - {"\x67", 0, 0x5182}, /* East Asian ideograph */ - {"\x69", 0, 0x5184}, /* East Asian ideograph */ - {"\x6E", 0, 0x518F}, /* East Asian ideograph */ - {"\x70", 0, 0x5194}, /* East Asian ideograph */ - {"\x71", 0, 0x5193}, /* East Asian ideograph */ - {"\x75", 0, 0x5196}, /* East Asian ideograph */ - {"\x7B", 0, 0x51A1}, /* East Asian ideograph */ - {"\x7C", 0, 0x51A3}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page60 = { - marc8_31page60_flat, 0 -}; -/* PAGE 59 */ -struct yaz_iconv_trie_flat marc8_31page59_flat[] = { - {"\x22", 0, 0x50C2}, /* East Asian ideograph */ - {"\x2C", 0, 0x50BA}, /* East Asian ideograph */ - {"\x2E", 0, 0x50CD}, /* East Asian ideograph */ - {"\x32", 0, 0x50D4}, /* East Asian ideograph */ - {"\x34", 0, 0x50EF}, /* East Asian ideograph */ - {"\x35", 0, 0x50E6}, /* East Asian ideograph */ - {"\x3A", 0, 0x50F4}, /* East Asian ideograph */ - {"\x3B", 0, 0x50CE}, /* East Asian ideograph */ - {"\x3C", 0, 0x50DD}, /* East Asian ideograph */ - {"\x41", 0, 0x50F3}, /* East Asian ideograph */ - {"\x42", 0, 0x50E8}, /* East Asian ideograph */ - {"\x44", 0, 0x50F0}, /* East Asian ideograph */ - {"\x46", 0, 0x50D9}, /* East Asian ideograph */ - {"\x55", 0, 0x50EC}, /* East Asian ideograph */ - {"\x5B", 0, 0x510E}, /* East Asian ideograph */ - {"\x5F", 0, 0x5105}, /* East Asian ideograph */ - {"\x61", 0, 0x50FC}, /* East Asian ideograph */ - {"\x65", 0, 0x5106}, /* East Asian ideograph */ - {"\x66", 0, 0x5107}, /* East Asian ideograph */ - {"\x67", 0, 0x510F}, /* East Asian ideograph */ - {"\x68", 0, 0x50FE}, /* East Asian ideograph */ - {"\x69", 0, 0x510B}, /* East Asian ideograph */ - {"\x6A", 0, 0x50FD}, /* East Asian ideograph */ - {"\x6D", 0, 0x5101}, /* East Asian ideograph */ - {"\x71", 0, 0x5115}, /* East Asian ideograph */ - {"\x72", 0, 0x5113}, /* East Asian ideograph */ - {"\x78", 0, 0x511A}, /* East Asian ideograph */ - {"\x79", 0, 0x9797}, /* East Asian ideograph */ - {"\x7E", 0, 0x5126}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page59 = { - marc8_31page59_flat, 0 -}; -/* PAGE 58 */ -struct yaz_iconv_trie_flat marc8_31page58_flat[] = { - {"\x22", 0, 0x506F}, /* East Asian ideograph */ - {"\x23", 0, 0x5050}, /* East Asian ideograph */ - {"\x25", 0, 0x5070}, /* East Asian ideograph */ - {"\x29", 0, 0x5053}, /* East Asian ideograph */ - {"\x2A", 0, 0x506A}, /* East Asian ideograph */ - {"\x2C", 0, 0x5056}, /* East Asian ideograph */ - {"\x31", 0, 0x506D}, /* East Asian ideograph */ - {"\x38", 0, 0x505D}, /* East Asian ideograph */ - {"\x39", 0, 0x5048}, /* East Asian ideograph */ - {"\x3B", 0, 0x5058}, /* East Asian ideograph */ - {"\x3C", 0, 0x5072}, /* East Asian ideograph */ - {"\x41", 0, 0x5041}, /* East Asian ideograph */ - {"\x46", 0, 0x5015}, /* East Asian ideograph */ - {"\x48", 0, 0x507A}, /* East Asian ideograph */ - {"\x4A", 0, 0x506C}, /* East Asian ideograph */ - {"\x4B", 0, 0x505F}, /* East Asian ideograph */ - {"\x4D", 0, 0x506B}, /* East Asian ideograph */ - {"\x4E", 0, 0x5094}, /* East Asian ideograph */ - {"\x50", 0, 0x509E}, /* East Asian ideograph */ - {"\x52", 0, 0x509B}, /* East Asian ideograph */ - {"\x53", 0, 0x509A}, /* East Asian ideograph */ - {"\x57", 0, 0x50A3}, /* East Asian ideograph */ - {"\x5A", 0, 0x508C}, /* East Asian ideograph */ - {"\x5C", 0, 0x5088}, /* East Asian ideograph */ - {"\x62", 0, 0x508E}, /* East Asian ideograph */ - {"\x64", 0, 0x5095}, /* East Asian ideograph */ - {"\x67", 0, 0x50A6}, /* East Asian ideograph */ - {"\x6A", 0, 0x5092}, /* East Asian ideograph */ - {"\x6C", 0, 0x509C}, /* East Asian ideograph */ - {"\x71", 0, 0x50C7}, /* East Asian ideograph */ - {"\x75", 0, 0x50C9}, /* East Asian ideograph */ - {"\x7B", 0, 0x50CA}, /* East Asian ideograph */ - {"\x7C", 0, 0x50B4}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page58 = { - marc8_31page58_flat, 0 -}; -/* PAGE 57 */ -struct yaz_iconv_trie_flat marc8_31page57_flat[] = { - {"\x22", 0, 0x4FE4}, /* East Asian ideograph */ - {"\x26", 0, 0x4FB7}, /* East Asian ideograph */ - {"\x27", 0, 0x4FC5}, /* East Asian ideograph */ - {"\x29", 0, 0x4FC9}, /* East Asian ideograph */ - {"\x2A", 0, 0x4FE5}, /* East Asian ideograph */ - {"\x2C", 0, 0x4FE7}, /* East Asian ideograph */ - {"\x33", 0, 0x4FDC}, /* East Asian ideograph */ - {"\x35", 0, 0x4FD4}, /* East Asian ideograph */ - {"\x37", 0, 0x4FC1}, /* East Asian ideograph */ - {"\x3B", 0, 0x4FDB}, /* East Asian ideograph */ - {"\x3E", 0, 0x4FC6}, /* East Asian ideograph */ - {"\x43", 0, 0x4FB9}, /* East Asian ideograph */ - {"\x46", 0, 0x501E}, /* East Asian ideograph */ - {"\x48", 0, 0x503F}, /* East Asian ideograph */ - {"\x49", 0, 0x5005}, /* East Asian ideograph */ - {"\x4C", 0, 0x5007}, /* East Asian ideograph */ - {"\x4D", 0, 0x5013}, /* East Asian ideograph */ - {"\x4E", 0, 0x5022}, /* East Asian ideograph */ - {"\x52", 0, 0x4FF5}, /* East Asian ideograph */ - {"\x59", 0, 0x4FF4}, /* East Asian ideograph */ - {"\x5B", 0, 0x5037}, /* East Asian ideograph */ - {"\x5E", 0, 0x502E}, /* East Asian ideograph */ - {"\x61", 0, 0x4FF6}, /* East Asian ideograph */ - {"\x62", 0, 0x501C}, /* East Asian ideograph */ - {"\x66", 0, 0x502C}, /* East Asian ideograph */ - {"\x69", 0, 0x5010}, /* East Asian ideograph */ - {"\x79", 0, 0x503D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page57 = { - marc8_31page57_flat, 0 -}; -/* PAGE 56 */ -struct yaz_iconv_trie_flat marc8_31page56_flat[] = { - {"\x27", 0, 0x4EF5}, /* East Asian ideograph */ - {"\x28", 0, 0x4F07}, /* East Asian ideograph */ - {"\x2A", 0, 0x4F00}, /* East Asian ideograph */ - {"\x2C", 0, 0x4F0B}, /* East Asian ideograph */ - {"\x32", 0, 0x4F3B}, /* East Asian ideograph */ - {"\x36", 0, 0x4F58}, /* East Asian ideograph */ - {"\x37", 0, 0x4F62}, /* East Asian ideograph */ - {"\x39", 0, 0x4F64}, /* East Asian ideograph */ - {"\x3A", 0, 0x4F49}, /* East Asian ideograph */ - {"\x3F", 0, 0x4F3E}, /* East Asian ideograph */ - {"\x40", 0, 0x4F66}, /* East Asian ideograph */ - {"\x44", 0, 0x4F67}, /* East Asian ideograph */ - {"\x4D", 0, 0x4F68}, /* East Asian ideograph */ - {"\x4E", 0, 0x4F5A}, /* East Asian ideograph */ - {"\x4F", 0, 0x4F5F}, /* East Asian ideograph */ - {"\x56", 0, 0x4F82}, /* East Asian ideograph */ - {"\x57", 0, 0x4F7C}, /* East Asian ideograph */ - {"\x5A", 0, 0x4F98}, /* East Asian ideograph */ - {"\x5B", 0, 0x4F92}, /* East Asian ideograph */ - {"\x5C", 0, 0x4F7D}, /* East Asian ideograph */ - {"\x60", 0, 0x4F80}, /* East Asian ideograph */ - {"\x61", 0, 0x4F74}, /* East Asian ideograph */ - {"\x62", 0, 0x4F76}, /* East Asian ideograph */ - {"\x64", 0, 0x4FA2}, /* East Asian ideograph */ - {"\x66", 0, 0x4F91}, /* East Asian ideograph */ - {"\x67", 0, 0x4F95}, /* East Asian ideograph */ - {"\x6C", 0, 0x4F4C}, /* East Asian ideograph */ - {"\x6D", 0, 0x4F97}, /* East Asian ideograph */ - {"\x6E", 0, 0x4F94}, /* East Asian ideograph */ - {"\x70", 0, 0x4F79}, /* East Asian ideograph */ - {"\x71", 0, 0x4F9A}, /* East Asian ideograph */ - {"\x72", 0, 0x4F81}, /* East Asian ideograph */ - {"\x73", 0, 0x4F78}, /* East Asian ideograph */ - {"\x76", 0, 0x4F9C}, /* East Asian ideograph */ - {"\x77", 0, 0x4F90}, /* East Asian ideograph */ - {"\x7B", 0, 0x4F7A}, /* East Asian ideograph */ - {"\x7C", 0, 0x4FCD}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page56 = { - marc8_31page56_flat, 0 -}; -/* PAGE 55 */ -struct yaz_iconv_trie_flat marc8_31page55_flat[] = { - {"\x24", 0, 0x4E0F}, /* East Asian ideograph */ - {"\x25", 0, 0x5187}, /* East Asian ideograph */ - {"\x29", 0, 0x4E28}, /* East Asian ideograph */ - {"\x2E", 0, 0x4E31}, /* East Asian ideograph */ - {"\x31", 0, 0x4E36}, /* East Asian ideograph */ - {"\x33", 0, 0x4E3F}, /* East Asian ideograph */ - {"\x34", 0, 0x4E42}, /* East Asian ideograph */ - {"\x37", 0, 0x738D}, /* East Asian ideograph */ - {"\x3C", 0, 0x4E5C}, /* East Asian ideograph */ - {"\x3F", 0, 0x6C39}, /* East Asian ideograph */ - {"\x46", 0, 0x4E85}, /* East Asian ideograph */ - {"\x50", 0, 0x4EA0}, /* East Asian ideograph */ - {"\x51", 0, 0x4EA2}, /* East Asian ideograph */ - {"\x52", 0, 0x4EB3}, /* East Asian ideograph */ - {"\x55", 0, 0x4EB6}, /* East Asian ideograph (variant of EACC 4B6455) */ - {"\x58", 0, 0x4EB9}, /* East Asian ideograph */ - {"\x5A", 0, 0x4EBC}, /* East Asian ideograph */ - {"\x5E", 0, 0x4EC9}, /* East Asian ideograph */ - {"\x61", 0, 0x4EC8}, /* East Asian ideograph */ - {"\x62", 0, 0x4ECE}, /* East Asian ideograph */ - {"\x63", 0, 0x4EE8}, /* East Asian ideograph */ - {"\x6B", 0, 0x4EE1}, /* East Asian ideograph */ - {"\x72", 0, 0x4F08}, /* East Asian ideograph */ - {"\x73", 0, 0x4F0E}, /* East Asian ideograph */ - {"\x75", 0, 0x4F03}, /* East Asian ideograph */ - {"\x7C", 0, 0x4F22}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page55 = { - marc8_31page55_flat, 0 -}; -/* PAGE 54 */ -struct yaz_iconv_trie_flat marc8_31page54_flat[] = { - {"\x21", 0, 0x9F52}, /* East Asian ideograph */ - {"\x22", 0, 0x9F5F}, /* East Asian ideograph */ - {"\x23", 0, 0x9F63}, /* East Asian ideograph */ - {"\x24", 0, 0x9F61}, /* East Asian ideograph (variant of EACC 456324) */ - {"\x25", 0, 0x9F66}, /* East Asian ideograph */ - {"\x26", 0, 0x9F5C}, /* East Asian ideograph */ - {"\x27", 0, 0x9F6C}, /* East Asian ideograph */ - {"\x28", 0, 0x9F6A}, /* East Asian ideograph */ - {"\x29", 0, 0x9F77}, /* East Asian ideograph */ - {"\x2A", 0, 0x9F72}, /* East Asian ideograph */ - {"\x2B", 0, 0x9F8D}, /* East Asian ideograph */ - {"\x2C", 0, 0x9F94}, /* East Asian ideograph */ - {"\x2D", 0, 0x9F9C}, /* East Asian ideograph */ - {"\x30", 0, 0x8288}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page54 = { - marc8_31page54_flat, 0 -}; -/* PAGE 53 */ -struct yaz_iconv_trie_dir marc8_31page53_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9C13} /* East Asian ideograph */, - {0, 0, 0x9C0D} /* East Asian ideograph */, - {0, 0, 0x9BFD} /* East Asian ideograph */, - {0, 0, 0x9C2D} /* East Asian ideograph */, - {0, 0, 0x9C25} /* East Asian ideograph */, - {0, 0, 0x9C31} /* East Asian ideograph */, - {0, 0, 0x9C3E} /* East Asian ideograph */, - {0, 0, 0x9C3B} /* East Asian ideograph */, - {0, 0, 0x9C54} /* East Asian ideograph */, - {0, 0, 0x9C57} /* East Asian ideograph */, - {0, 0, 0x9C56} /* East Asian ideograph */, - {0, 0, 0x9C49} /* East Asian ideograph */, - {0, 0, 0x9C77} /* East Asian ideograph */, - {0, 0, 0x9C78} /* East Asian ideograph */, - {0, 0, 0x9CE5} /* East Asian ideograph */, - {0, 0, 0x9CE9} /* East Asian ideograph */, - {0, 0, 0x9CF6} /* East Asian ideograph */, - {0, 0, 0x9CF4} /* East Asian ideograph */, - {0, 0, 0x9CF3} /* East Asian ideograph */, - {0, 0, 0x9D06} /* East Asian ideograph */, - {0, 0, 0x9D09} /* East Asian ideograph */, - {0, 0, 0x9D15} /* East Asian ideograph */, - {0, 0, 0x9D23} /* East Asian ideograph */, - {0, 0, 0x9D28} /* East Asian ideograph */, - {0, 0, 0x9D26} /* East Asian ideograph */, - {0, 0, 0x9D1B} /* East Asian ideograph */, - {0, 0, 0x9D12} /* East Asian ideograph (variant of EACC 4B623B) */, - {0, 0, 0x9D3B} /* East Asian ideograph */, - {0, 0, 0x9D3F} /* East Asian ideograph */, - {0, 0, 0x9D61} /* East Asian ideograph */, - {0, 0, 0x9D51} /* East Asian ideograph */, - {0, 0, 0x9D60} /* East Asian ideograph */, - {0, 0, 0x9D5D} /* East Asian ideograph */, - {0, 0, 0x9D89} /* East Asian ideograph */, - {0, 0, 0x9D72} /* East Asian ideograph */, - {0, 0, 0x9D6A} /* East Asian ideograph */, - {0, 0, 0x9D6C} /* East Asian ideograph */, - {0, 0, 0x9DB4} /* East Asian ideograph */, - {0, 0, 0x9DAF} /* East Asian ideograph */, - {0, 0, 0x9DC2} /* East Asian ideograph */, - {0, 0, 0x9DD3} /* East Asian ideograph */, - {0, 0, 0x9DD7} /* East Asian ideograph */, - {0, 0, 0x9DE5} /* East Asian ideograph */, - {0, 0, 0x9DF9} /* East Asian ideograph */, - {0, 0, 0x9DFA} /* East Asian ideograph */, - {0, 0, 0x9E1A} /* East Asian ideograph */, - {0, 0, 0x9E1E} /* East Asian ideograph */, - {0, 0, 0x9E79} /* East Asian ideograph */, - {0, 0, 0x9E7D} /* East Asian ideograph */, - {0, 0, 0x9E7C} /* East Asian ideograph */, - {0, 0, 0x9E7F} /* East Asian ideograph */, - {0, 0, 0x9E82} /* East Asian ideograph */, - {0, 0, 0x9E8B} /* East Asian ideograph */, - {0, 0, 0x9E97} /* East Asian ideograph */, - {0, 0, 0x9E92} /* East Asian ideograph */, - {0, 0, 0x9E93} /* East Asian ideograph */, - {0, 0, 0x9E9D} /* East Asian ideograph */, - {0, 0, 0x9E9F} /* East Asian ideograph */, - {0, 0, 0x9EA5} /* East Asian ideograph */, - {0, 0, 0x9EA9} /* East Asian ideograph */, - {0, 0, 0x9EB4} /* East Asian ideograph */, - {0, 0, 0x9EB5} /* East Asian ideograph */, - {0, 0, 0x9EBB} /* East Asian ideograph */, - {0, 0, 0x9EBC} /* East Asian ideograph */, - {0, 0, 0x9EBE} /* East Asian ideograph */, - {0, 0, 0x9EC3} /* East Asian ideograph */, - {0, 0, 0x9ECD} /* East Asian ideograph */, - {0, 0, 0x9ECE} /* East Asian ideograph */, - {0, 0, 0x9ECF} /* East Asian ideograph */, - {0, 0, 0x9ED1} /* East Asian ideograph */, - {0, 0, 0x58A8} /* East Asian ideograph */, - {0, 0, 0x9ED8} /* East Asian ideograph */, - {0, 0, 0x9ED4} /* East Asian ideograph */, - {0, 0, 0x9EDE} /* East Asian ideograph */, - {0, 0, 0x9EDC} /* East Asian ideograph */, - {0, 0, 0x9EDB} /* East Asian ideograph */, - {0, 0, 0x9EDD} /* East Asian ideograph */, - {0, 0, 0x9EE0} /* East Asian ideograph */, - {0, 0, 0x9EE8} /* East Asian ideograph */, - {0, 0, 0x9EEF} /* East Asian ideograph */, - {0, 0, 0x9EF4} /* East Asian ideograph */, - {0, 0, 0x9EF7} /* East Asian ideograph */, - {0, 0, 0x9F07} /* East Asian ideograph */, - {0, 0, 0x9F0E} /* East Asian ideograph */, - {0, 0, 0x9F13} /* East Asian ideograph */, - {0, 0, 0x9F15} /* East Asian ideograph */, - {0, 0, 0x9F19} /* East Asian ideograph */, - {0, 0, 0x9F20} /* East Asian ideograph */, - {0, 0, 0x9F2C} /* East Asian ideograph */, - {0, 0, 0x9F34} /* East Asian ideograph */, - {0, 0, 0x9F3B} /* East Asian ideograph */, - {0, 0, 0x9F3E} /* East Asian ideograph */, - {0, 0, 0x9F4A} /* East Asian ideograph */, - {0, 0, 0x9F4B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page53 = { - 0, marc8_31page53_dir -}; -/* PAGE 52 */ -struct yaz_iconv_trie_dir marc8_31page52_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x993F} /* East Asian ideograph */, - {0, 0, 0x993D} /* East Asian ideograph */, - {0, 0, 0x9945} /* East Asian ideograph */, - {0, 0, 0x9952} /* East Asian ideograph */, - {0, 0, 0x9951} /* East Asian ideograph */, - {0, 0, 0x995C} /* East Asian ideograph */, - {0, 0, 0x995E} /* East Asian ideograph */, - {0, 0, 0x9996} /* East Asian ideograph */, - {0, 0, 0x9999} /* East Asian ideograph */, - {0, 0, 0x99A5} /* East Asian ideograph */, - {0, 0, 0x99A8} /* East Asian ideograph */, - {0, 0, 0x99AC} /* East Asian ideograph */, - {0, 0, 0x99AE} /* East Asian ideograph */, - {0, 0, 0x99AD} /* East Asian ideograph */, - {0, 0, 0x99B3} /* East Asian ideograph */, - {0, 0, 0x99B1} /* East Asian ideograph */, - {0, 0, 0x99B4} /* East Asian ideograph */, - {0, 0, 0x99C1} /* East Asian ideograph */, - {0, 0, 0x99D0} /* East Asian ideograph */, - {0, 0, 0x99DD} /* East Asian ideograph */, - {0, 0, 0x99D5} /* East Asian ideograph */, - {0, 0, 0x99DF} /* East Asian ideograph */, - {0, 0, 0x99DB} /* East Asian ideograph */, - {0, 0, 0x99D2} /* East Asian ideograph */, - {0, 0, 0x99D9} /* East Asian ideograph */, - {0, 0, 0x99D1} /* East Asian ideograph */, - {0, 0, 0x99ED} /* East Asian ideograph */, - {0, 0, 0x99F1} /* East Asian ideograph */, - {0, 0, 0x9A01} /* East Asian ideograph */, - {0, 0, 0x99FF} /* East Asian ideograph */, - {0, 0, 0x99E2} /* East Asian ideograph */, - {0, 0, 0x9A0E} /* East Asian ideograph */, - {0, 0, 0x9A19} /* East Asian ideograph */, - {0, 0, 0x9A16} /* East Asian ideograph */, - {0, 0, 0x9A2B} /* East Asian ideograph */, - {0, 0, 0x9A30} /* East Asian ideograph */, - {0, 0, 0x9A37} /* East Asian ideograph */, - {0, 0, 0x9A43} /* East Asian ideograph */, - {0, 0, 0x9A45} /* East Asian ideograph */, - {0, 0, 0x9A40} /* East Asian ideograph */, - {0, 0, 0x9A3E} /* East Asian ideograph */, - {0, 0, 0x9A55} /* East Asian ideograph */, - {0, 0, 0x9A5A} /* East Asian ideograph */, - {0, 0, 0x9A5B} /* East Asian ideograph */, - {0, 0, 0x9A57} /* East Asian ideograph */, - {0, 0, 0x9A5F} /* East Asian ideograph */, - {0, 0, 0x9A62} /* East Asian ideograph */, - {0, 0, 0x9A65} /* East Asian ideograph */, - {0, 0, 0x9A6A} /* East Asian ideograph */, - {0, 0, 0x9AA8} /* East Asian ideograph */, - {0, 0, 0x9AAF} /* East Asian ideograph */, - {0, 0, 0x9AB0} /* East Asian ideograph */, - {0, 0, 0x9AB7} /* East Asian ideograph */, - {0, 0, 0x9AB8} /* East Asian ideograph */, - {0, 0, 0x9ABC} /* East Asian ideograph */, - {0, 0, 0x9ACF} /* East Asian ideograph */, - {0, 0, 0x9AD3} /* East Asian ideograph */, - {0, 0, 0x9AD4} /* East Asian ideograph */, - {0, 0, 0x9AD2} /* East Asian ideograph */, - {0, 0, 0x9AD8} /* East Asian ideograph */, - {0, 0, 0x9AE5} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9AEE} /* East Asian ideograph */, - {0, 0, 0x9AFB} /* East Asian ideograph */, - {0, 0, 0x9AED} /* East Asian ideograph */, - {0, 0, 0x9B03} /* East Asian ideograph */, - {0, 0, 0x9B06} /* East Asian ideograph */, - {0, 0, 0x9B0D} /* East Asian ideograph */, - {0, 0, 0x9B1A} /* East Asian ideograph */, - {0, 0, 0x9B22} /* East Asian ideograph */, - {0, 0, 0x9B25} /* East Asian ideograph */, - {0, 0, 0x9B27} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9B31} /* East Asian ideograph */, - {0, 0, 0x9B32} /* East Asian ideograph */, - {0, 0, 0x9B3C} /* East Asian ideograph */, - {0, 0, 0x9B41} /* East Asian ideograph */, - {0, 0, 0x9B42} /* East Asian ideograph */, - {0, 0, 0x9B45} /* East Asian ideograph */, - {0, 0, 0x9B44} /* East Asian ideograph */, - {0, 0, 0x9B4F} /* East Asian ideograph */, - {0, 0, 0x9B54} /* East Asian ideograph */, - {0, 0, 0x9B58} /* East Asian ideograph */, - {0, 0, 0x9B5A} /* East Asian ideograph */, - {0, 0, 0x9B77} /* East Asian ideograph */, - {0, 0, 0x9B6F} /* East Asian ideograph */, - {0, 0, 0x9B91} /* East Asian ideograph */, - {0, 0, 0x9BAB} /* East Asian ideograph */, - {0, 0, 0x9BAE} /* East Asian ideograph */, - {0, 0, 0x9BAA} /* East Asian ideograph */, - {0, 0, 0x9BCA} /* East Asian ideograph */, - {0, 0, 0x9BC9} /* East Asian ideograph */, - {0, 0, 0x9BE8} /* East Asian ideograph */, - {0, 0, 0x9BE7} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page52 = { - 0, marc8_31page52_dir -}; -/* PAGE 51 */ -struct yaz_iconv_trie_dir marc8_31page51_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x978D} /* East Asian ideograph */, - {0, 0, 0x978B} /* East Asian ideograph */, - {0, 0, 0x978F} /* East Asian ideograph */, - {0, 0, 0x9798} /* East Asian ideograph */, - {0, 0, 0x97A0} /* East Asian ideograph */, - {0, 0, 0x97A3} /* East Asian ideograph */, - {0, 0, 0x97A6} /* East Asian ideograph */, - {0, 0, 0x97AD} /* East Asian ideograph */, - {0, 0, 0x97C3} /* East Asian ideograph */, - {0, 0, 0x97C1} /* East Asian ideograph */, - {0, 0, 0x97C6} /* East Asian ideograph */, - {0, 0, 0x97CB} /* East Asian ideograph */, - {0, 0, 0x97CC} /* East Asian ideograph */, - {0, 0, 0x97D3} /* East Asian ideograph */, - {0, 0, 0x97DC} /* East Asian ideograph */, - {0, 0, 0x97ED} /* East Asian ideograph */, - {0, 0, 0x97F3} /* East Asian ideograph */, - {0, 0, 0x7AE0} /* East Asian ideograph */, - {0, 0, 0x7ADF} /* East Asian ideograph */, - {0, 0, 0x97F6} /* East Asian ideograph */, - {0, 0, 0x97FB} /* East Asian ideograph */, - {0, 0, 0x97FF} /* East Asian ideograph (variant of EACC 456036) */, - {0, 0, 0x9801} /* East Asian ideograph */, - {0, 0, 0x9802} /* East Asian ideograph */, - {0, 0, 0x9803} /* East Asian ideograph */, - {0, 0, 0x9805} /* East Asian ideograph */, - {0, 0, 0x9806} /* East Asian ideograph */, - {0, 0, 0x9808} /* East Asian ideograph */, - {0, 0, 0x9810} /* East Asian ideograph */, - {0, 0, 0x980A} /* East Asian ideograph */, - {0, 0, 0x9811} /* East Asian ideograph */, - {0, 0, 0x9813} /* East Asian ideograph */, - {0, 0, 0x9812} /* East Asian ideograph */, - {0, 0, 0x980C} /* East Asian ideograph */, - {0, 0, 0x9817} /* East Asian ideograph */, - {0, 0, 0x9818} /* East Asian ideograph (variant of EACC 4B6044) */, - {0, 0, 0x9821} /* East Asian ideograph */, - {0, 0, 0x982D} /* East Asian ideograph */, - {0, 0, 0x9830} /* East Asian ideograph */, - {0, 0, 0x9838} /* East Asian ideograph */, - {0, 0, 0x983B} /* East Asian ideograph */, - {0, 0, 0x9839} /* East Asian ideograph */, - {0, 0, 0x9837} /* East Asian ideograph */, - {0, 0, 0x9824} /* East Asian ideograph */, - {0, 0, 0x9846} /* East Asian ideograph */, - {0, 0, 0x9854} /* East Asian ideograph */, - {0, 0, 0x984D} /* East Asian ideograph */, - {0, 0, 0x984C} /* East Asian ideograph */, - {0, 0, 0x984E} /* East Asian ideograph */, - {0, 0, 0x9853} /* East Asian ideograph */, - {0, 0, 0x985E} /* East Asian ideograph (variant of EACC 4B6053) */, - {0, 0, 0x985A} /* East Asian ideograph */, - {0, 0, 0x9858} /* East Asian ideograph */, - {0, 0, 0x9867} /* East Asian ideograph */, - {0, 0, 0x986B} /* East Asian ideograph */, - {0, 0, 0x986F} /* East Asian ideograph */, - {0, 0, 0x9871} /* East Asian ideograph */, - {0, 0, 0x9870} /* East Asian ideograph */, - {0, 0, 0x98A8} /* East Asian ideograph */, - {0, 0, 0x98AF} /* East Asian ideograph */, - {0, 0, 0x98B1} /* East Asian ideograph */, - {0, 0, 0x98B3} /* East Asian ideograph */, - {0, 0, 0x98B6} /* East Asian ideograph */, - {0, 0, 0x98BA} /* East Asian ideograph */, - {0, 0, 0x98BC} /* East Asian ideograph */, - {0, 0, 0x98C4} /* East Asian ideograph */, - {0, 0, 0x98DB} /* East Asian ideograph */, - {0, 0, 0x98DF} /* East Asian ideograph */, - {0, 0, 0x98E2} /* East Asian ideograph */, - {0, 0, 0x98E7} /* East Asian ideograph */, - {0, 0, 0x98E9} /* East Asian ideograph */, - {0, 0, 0x98ED} /* East Asian ideograph */, - {0, 0, 0x98EA} /* East Asian ideograph */, - {0, 0, 0x98EE} /* East Asian ideograph */, - {0, 0, 0x98EF} /* East Asian ideograph */, - {0, 0, 0x98FC} /* East Asian ideograph */, - {0, 0, 0x98F4} /* East Asian ideograph */, - {0, 0, 0x98FD} /* East Asian ideograph */, - {0, 0, 0x98FE} /* East Asian ideograph */, - {0, 0, 0x9903} /* East Asian ideograph */, - {0, 0, 0x990A} /* East Asian ideograph */, - {0, 0, 0x990C} /* East Asian ideograph */, - {0, 0, 0x9909} /* East Asian ideograph */, - {0, 0, 0x9910} /* East Asian ideograph */, - {0, 0, 0x9912} /* East Asian ideograph */, - {0, 0, 0x9918} /* East Asian ideograph */, - {0, 0, 0x9913} /* East Asian ideograph */, - {0, 0, 0x9905} /* East Asian ideograph */, - {0, 0, 0x9928} /* East Asian ideograph */, - {0, 0, 0x991E} /* East Asian ideograph */, - {0, 0, 0x991B} /* East Asian ideograph */, - {0, 0, 0x9921} /* East Asian ideograph */, - {0, 0, 0x9935} /* East Asian ideograph */, - {0, 0, 0x993E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page51 = { - 0, marc8_31page51_dir -}; -/* PAGE 50 */ -struct yaz_iconv_trie_dir marc8_31page50_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9664} /* East Asian ideograph */, - {0, 0, 0x966A} /* East Asian ideograph */, - {0, 0, 0x9673} /* East Asian ideograph */, - {0, 0, 0x9678} /* East Asian ideograph */, - {0, 0, 0x9675} /* East Asian ideograph */, - {0, 0, 0x9672} /* East Asian ideograph */, - {0, 0, 0x9676} /* East Asian ideograph */, - {0, 0, 0x9677} /* East Asian ideograph */, - {0, 0, 0x9674} /* East Asian ideograph */, - {0, 0, 0x9670} /* East Asian ideograph */, - {0, 0, 0x968A} /* East Asian ideograph */, - {0, 0, 0x968E} /* East Asian ideograph */, - {0, 0, 0x968B} /* East Asian ideograph */, - {0, 0, 0x967D} /* East Asian ideograph */, - {0, 0, 0x9685} /* East Asian ideograph */, - {0, 0, 0x9686} /* East Asian ideograph */, - {0, 0, 0x968D} /* East Asian ideograph */, - {0, 0, 0x9698} /* East Asian ideograph */, - {0, 0, 0x9694} /* East Asian ideograph */, - {0, 0, 0x9699} /* East Asian ideograph */, - {0, 0, 0x9695} /* East Asian ideograph */, - {0, 0, 0x969C} /* East Asian ideograph */, - {0, 0, 0x969B} /* East Asian ideograph */, - {0, 0, 0x96A7} /* East Asian ideograph */, - {0, 0, 0x96A8} /* East Asian ideograph */, - {0, 0, 0x96AA} /* East Asian ideograph */, - {0, 0, 0x96B1} /* East Asian ideograph */, - {0, 0, 0x96B4} /* East Asian ideograph */, - {0, 0, 0x96B8} /* East Asian ideograph */, - {0, 0, 0x96BB} /* East Asian ideograph */, - {0, 0, 0x96C0} /* East Asian ideograph */, - {0, 0, 0x96C7} /* East Asian ideograph */, - {0, 0, 0x96C6} /* East Asian ideograph */, - {0, 0, 0x96C4} /* East Asian ideograph */, - {0, 0, 0x96C1} /* East Asian ideograph */, - {0, 0, 0x96C5} /* East Asian ideograph */, - {0, 0, 0x96CD} /* East Asian ideograph */, - {0, 0, 0x96CB} /* East Asian ideograph */, - {0, 0, 0x96C9} /* East Asian ideograph */, - {0, 0, 0x96CC} /* East Asian ideograph */, - {0, 0, 0x96D5} /* East Asian ideograph */, - {0, 0, 0x96D6} /* East Asian ideograph */, - {0, 0, 0x96DC} /* East Asian ideograph */, - {0, 0, 0x96DE} /* East Asian ideograph */, - {0, 0, 0x96DB} /* East Asian ideograph */, - {0, 0, 0x96D9} /* East Asian ideograph */, - {0, 0, 0x96E2} /* East Asian ideograph */, - {0, 0, 0x96E3} /* East Asian ideograph (variant of EACC 4B5F50) */, - {0, 0, 0x96E8} /* East Asian ideograph */, - {0, 0, 0x96EA} /* East Asian ideograph */, - {0, 0, 0x96EF} /* East Asian ideograph */, - {0, 0, 0x96F2} /* East Asian ideograph */, - {0, 0, 0x96FB} /* East Asian ideograph */, - {0, 0, 0x96F7} /* East Asian ideograph */, - {0, 0, 0x96F9} /* East Asian ideograph */, - {0, 0, 0x96F6} /* East Asian ideograph */, - {0, 0, 0x9700} /* East Asian ideograph */, - {0, 0, 0x9707} /* East Asian ideograph */, - {0, 0, 0x9704} /* East Asian ideograph */, - {0, 0, 0x9709} /* East Asian ideograph */, - {0, 0, 0x9706} /* East Asian ideograph */, - {0, 0, 0x9711} /* East Asian ideograph */, - {0, 0, 0x970E} /* East Asian ideograph */, - {0, 0, 0x9716} /* East Asian ideograph */, - {0, 0, 0x970F} /* East Asian ideograph */, - {0, 0, 0x970D} /* East Asian ideograph */, - {0, 0, 0x9713} /* East Asian ideograph */, - {0, 0, 0x971C} /* East Asian ideograph */, - {0, 0, 0x971E} /* East Asian ideograph */, - {0, 0, 0x972A} /* East Asian ideograph */, - {0, 0, 0x9727} /* East Asian ideograph */, - {0, 0, 0x9738} /* East Asian ideograph */, - {0, 0, 0x9739} /* East Asian ideograph */, - {0, 0, 0x9732} /* East Asian ideograph */, - {0, 0, 0x973D} /* East Asian ideograph */, - {0, 0, 0x973E} /* East Asian ideograph */, - {0, 0, 0x9744} /* East Asian ideograph */, - {0, 0, 0x9742} /* East Asian ideograph */, - {0, 0, 0x9748} /* East Asian ideograph */, - {0, 0, 0x9751} /* East Asian ideograph */, - {0, 0, 0x9756} /* East Asian ideograph (variant of EACC 4B5F71) */, - {0, 0, 0x975B} /* East Asian ideograph (variant of EACC 4B5F72) */, - {0, 0, 0x975C} /* East Asian ideograph */, - {0, 0, 0x975E} /* East Asian ideograph */, - {0, 0, 0x9760} /* East Asian ideograph */, - {0, 0, 0x9761} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9766} /* East Asian ideograph */, - {0, 0, 0x9768} /* East Asian ideograph */, - {0, 0, 0x9769} /* East Asian ideograph */, - {0, 0, 0x9776} /* East Asian ideograph */, - {0, 0, 0x9774} /* East Asian ideograph */, - {0, 0, 0x977C} /* East Asian ideograph */, - {0, 0, 0x9785} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page50 = { - 0, marc8_31page50_dir -}; -/* PAGE 49 */ -struct yaz_iconv_trie_dir marc8_31page49_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x937E} /* East Asian ideograph */, - {0, 0, 0x9318} /* East Asian ideograph */, - {0, 0, 0x936C} /* East Asian ideograph */, - {0, 0, 0x935B} /* East Asian ideograph */, - {0, 0, 0x938A} /* East Asian ideograph */, - {0, 0, 0x9394} /* East Asian ideograph */, - {0, 0, 0x93AE} /* East Asian ideograph */, - {0, 0, 0x9396} /* East Asian ideograph */, - {0, 0, 0x93A2} /* East Asian ideograph */, - {0, 0, 0x93B3} /* East Asian ideograph */, - {0, 0, 0x93E1} /* East Asian ideograph */, - {0, 0, 0x93D1} /* East Asian ideograph */, - {0, 0, 0x93D6} /* East Asian ideograph */, - {0, 0, 0x93C3} /* East Asian ideograph */, - {0, 0, 0x93DF} /* East Asian ideograph */, - {0, 0, 0x93D7} /* East Asian ideograph */, - {0, 0, 0x93C8} /* East Asian ideograph */, - {0, 0, 0x93E2} /* East Asian ideograph */, - {0, 0, 0x93DC} /* East Asian ideograph */, - {0, 0, 0x93E4} /* East Asian ideograph */, - {0, 0, 0x93DD} /* East Asian ideograph */, - {0, 0, 0x93CD} /* East Asian ideograph */, - {0, 0, 0x93D8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9403} /* East Asian ideograph */, - {0, 0, 0x942E} /* East Asian ideograph */, - {0, 0, 0x93FD} /* East Asian ideograph */, - {0, 0, 0x9433} /* East Asian ideograph */, - {0, 0, 0x9435} /* East Asian ideograph */, - {0, 0, 0x943A} /* East Asian ideograph */, - {0, 0, 0x9438} /* East Asian ideograph */, - {0, 0, 0x9432} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9451} /* East Asian ideograph */, - {0, 0, 0x9444} /* East Asian ideograph */, - {0, 0, 0x9463} /* East Asian ideograph */, - {0, 0, 0x9460} /* East Asian ideograph */, - {0, 0, 0x9472} /* East Asian ideograph */, - {0, 0, 0x9470} /* East Asian ideograph */, - {0, 0, 0x947E} /* East Asian ideograph */, - {0, 0, 0x947C} /* East Asian ideograph */, - {0, 0, 0x947D} /* East Asian ideograph */, - {0, 0, 0x947F} /* East Asian ideograph */, - {0, 0, 0x9577} /* East Asian ideograph */, - {0, 0, 0x9580} /* East Asian ideograph */, - {0, 0, 0x9582} /* East Asian ideograph */, - {0, 0, 0x9583} /* East Asian ideograph */, - {0, 0, 0x9589} /* East Asian ideograph */, - {0, 0, 0x9594} /* East Asian ideograph */, - {0, 0, 0x958F} /* East Asian ideograph */, - {0, 0, 0x958B} /* East Asian ideograph */, - {0, 0, 0x9591} /* East Asian ideograph */, - {0, 0, 0x9593} /* East Asian ideograph */, - {0, 0, 0x9592} /* East Asian ideograph */, - {0, 0, 0x9598} /* East Asian ideograph */, - {0, 0, 0x95A1} /* East Asian ideograph */, - {0, 0, 0x95A8} /* East Asian ideograph */, - {0, 0, 0x95A9} /* East Asian ideograph */, - {0, 0, 0x95A3} /* East Asian ideograph */, - {0, 0, 0x95A5} /* East Asian ideograph */, - {0, 0, 0x95A4} /* East Asian ideograph */, - {0, 0, 0x95B1} /* East Asian ideograph */, - {0, 0, 0x95AD} /* East Asian ideograph */, - {0, 0, 0x95BB} /* East Asian ideograph */, - {0, 0, 0x95CA} /* East Asian ideograph */, - {0, 0, 0x95CB} /* East Asian ideograph */, - {0, 0, 0x95CC} /* East Asian ideograph */, - {0, 0, 0x95C8} /* East Asian ideograph */, - {0, 0, 0x95C6} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x95D6} /* East Asian ideograph */, - {0, 0, 0x95D0} /* East Asian ideograph */, - {0, 0, 0x95DC} /* East Asian ideograph */, - {0, 0, 0x95E1} /* East Asian ideograph */, - {0, 0, 0x95E2} /* East Asian ideograph */, - {0, 0, 0x961C} /* East Asian ideograph */, - {0, 0, 0x9621} /* East Asian ideograph */, - {0, 0, 0x9632} /* East Asian ideograph */, - {0, 0, 0x9631} /* East Asian ideograph */, - {0, 0, 0x962E} /* East Asian ideograph */, - {0, 0, 0x962A} /* East Asian ideograph */, - {0, 0, 0x9640} /* East Asian ideograph */, - {0, 0, 0x963F} /* East Asian ideograph */, - {0, 0, 0x963B} /* East Asian ideograph */, - {0, 0, 0x9644} /* East Asian ideograph */, - {0, 0, 0x9650} /* East Asian ideograph */, - {0, 0, 0x964C} /* East Asian ideograph */, - {0, 0, 0x964B} /* East Asian ideograph */, - {0, 0, 0x964D} /* East Asian ideograph */, - {0, 0, 0x9662} /* East Asian ideograph */, - {0, 0, 0x9663} /* East Asian ideograph */, - {0, 0, 0x965B} /* East Asian ideograph */, - {0, 0, 0x9661} /* East Asian ideograph */, - {0, 0, 0x965D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page49 = { - 0, marc8_31page49_dir -}; -/* PAGE 48 */ -struct yaz_iconv_trie_dir marc8_31page48_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9163} /* East Asian ideograph */, - {0, 0, 0x9165} /* East Asian ideograph */, - {0, 0, 0x916C} /* East Asian ideograph */, - {0, 0, 0x9169} /* East Asian ideograph */, - {0, 0, 0x916A} /* East Asian ideograph */, - {0, 0, 0x9175} /* East Asian ideograph */, - {0, 0, 0x9178} /* East Asian ideograph */, - {0, 0, 0x9177} /* East Asian ideograph */, - {0, 0, 0x9187} /* East Asian ideograph */, - {0, 0, 0x9189} /* East Asian ideograph */, - {0, 0, 0x918B} /* East Asian ideograph */, - {0, 0, 0x9183} /* East Asian ideograph */, - {0, 0, 0x9192} /* East Asian ideograph */, - {0, 0, 0x91A3} /* East Asian ideograph */, - {0, 0, 0x919E} /* East Asian ideograph */, - {0, 0, 0x919C} /* East Asian ideograph */, - {0, 0, 0x91AB} /* East Asian ideograph */, - {0, 0, 0x91AC} /* East Asian ideograph */, - {0, 0, 0x91BA} /* East Asian ideograph */, - {0, 0, 0x91C0} /* East Asian ideograph */, - {0, 0, 0x91C1} /* East Asian ideograph */, - {0, 0, 0x91C7} /* East Asian ideograph */, - {0, 0, 0x91C9} /* East Asian ideograph */, - {0, 0, 0x91CB} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x91CD} /* East Asian ideograph */, - {0, 0, 0x91CE} /* East Asian ideograph */, - {0, 0, 0x91CF} /* East Asian ideograph */, - {0, 0, 0x91D0} /* East Asian ideograph */, - {0, 0, 0x91D1} /* East Asian ideograph */, - {0, 0, 0x91DD} /* East Asian ideograph */, - {0, 0, 0x91D8} /* East Asian ideograph */, - {0, 0, 0x91D7} /* East Asian ideograph */, - {0, 0, 0x91DC} /* East Asian ideograph */, - {0, 0, 0x91F5} /* East Asian ideograph */, - {0, 0, 0x91E6} /* East Asian ideograph */, - {0, 0, 0x91E3} /* East Asian ideograph */, - {0, 0, 0x91E7} /* East Asian ideograph */, - {0, 0, 0x9223} /* East Asian ideograph */, - {0, 0, 0x920D} /* East Asian ideograph */, - {0, 0, 0x9215} /* East Asian ideograph */, - {0, 0, 0x9209} /* East Asian ideograph */, - {0, 0, 0x9214} /* East Asian ideograph */, - {0, 0, 0x921E} /* East Asian ideograph */, - {0, 0, 0x9210} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9237} /* East Asian ideograph */, - {0, 0, 0x9238} /* East Asian ideograph */, - {0, 0, 0x923D} /* East Asian ideograph */, - {0, 0, 0x923E} /* East Asian ideograph */, - {0, 0, 0x9240} /* East Asian ideograph */, - {0, 0, 0x924B} /* East Asian ideograph */, - {0, 0, 0x925B} /* East Asian ideograph */, - {0, 0, 0x9264} /* East Asian ideograph */, - {0, 0, 0x9251} /* East Asian ideograph */, - {0, 0, 0x9234} /* East Asian ideograph (variant of EACC 4B5D58) */, - {0, 0, 0x9278} /* East Asian ideograph */, - {0, 0, 0x9280} /* East Asian ideograph */, - {0, 0, 0x92AC} /* East Asian ideograph */, - {0, 0, 0x9285} /* East Asian ideograph */, - {0, 0, 0x9298} /* East Asian ideograph */, - {0, 0, 0x9296} /* East Asian ideograph */, - {0, 0, 0x927B} /* East Asian ideograph */, - {0, 0, 0x9293} /* East Asian ideograph */, - {0, 0, 0x929C} /* East Asian ideograph */, - {0, 0, 0x92C5} /* East Asian ideograph */, - {0, 0, 0x92BB} /* East Asian ideograph */, - {0, 0, 0x92B3} /* East Asian ideograph */, - {0, 0, 0x92EA} /* East Asian ideograph */, - {0, 0, 0x92B7} /* East Asian ideograph */, - {0, 0, 0x92C1} /* East Asian ideograph */, - {0, 0, 0x92E4} /* East Asian ideograph */, - {0, 0, 0x92BC} /* East Asian ideograph */, - {0, 0, 0x92D2} /* East Asian ideograph */, - {0, 0, 0x9320} /* East Asian ideograph */, - {0, 0, 0x9336} /* East Asian ideograph */, - {0, 0, 0x92F8} /* East Asian ideograph */, - {0, 0, 0x9333} /* East Asian ideograph */, - {0, 0, 0x932F} /* East Asian ideograph */, - {0, 0, 0x9322} /* East Asian ideograph */, - {0, 0, 0x92FC} /* East Asian ideograph */, - {0, 0, 0x932B} /* East Asian ideograph */, - {0, 0, 0x931A} /* East Asian ideograph */, - {0, 0, 0x9304} /* East Asian ideograph */, - {0, 0, 0x9310} /* East Asian ideograph */, - {0, 0, 0x9326} /* East Asian ideograph */, - {0, 0, 0x934D} /* East Asian ideograph */, - {0, 0, 0x9382} /* East Asian ideograph */, - {0, 0, 0x9375} /* East Asian ideograph */, - {0, 0, 0x9365} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x934B} /* East Asian ideograph */, - {0, 0, 0x9328} /* East Asian ideograph */, - {0, 0, 0x9370} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page48 = { - 0, marc8_31page48_dir -}; -/* PAGE 47 */ -struct yaz_iconv_trie_dir marc8_31page47_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x901F} /* East Asian ideograph */, - {0, 0, 0x9017} /* East Asian ideograph */, - {0, 0, 0x901D} /* East Asian ideograph */, - {0, 0, 0x9010} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x900D} /* East Asian ideograph */, - {0, 0, 0x901E} /* East Asian ideograph */, - {0, 0, 0x901A} /* East Asian ideograph */, - {0, 0, 0x9020} /* East Asian ideograph */, - {0, 0, 0x900F} /* East Asian ideograph */, - {0, 0, 0x9022} /* East Asian ideograph */, - {0, 0, 0x9016} /* East Asian ideograph */, - {0, 0, 0x901B} /* East Asian ideograph */, - {0, 0, 0x9014} /* East Asian ideograph */, - {0, 0, 0x902E} /* East Asian ideograph */, - {0, 0, 0x9035} /* East Asian ideograph */, - {0, 0, 0x9031} /* East Asian ideograph */, - {0, 0, 0x9038} /* East Asian ideograph (variant of EACC 4B5C32) */, - {0, 0, 0x9032} /* East Asian ideograph */, - {0, 0, 0x904B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x9053} /* East Asian ideograph */, - {0, 0, 0x9042} /* East Asian ideograph */, - {0, 0, 0x9050} /* East Asian ideograph */, - {0, 0, 0x9054} /* East Asian ideograph */, - {0, 0, 0x9055} /* East Asian ideograph */, - {0, 0, 0x903C} /* East Asian ideograph */, - {0, 0, 0x9047} /* East Asian ideograph */, - {0, 0, 0x904F} /* East Asian ideograph */, - {0, 0, 0x904E} /* East Asian ideograph */, - {0, 0, 0x904D} /* East Asian ideograph */, - {0, 0, 0x9051} /* East Asian ideograph */, - {0, 0, 0x9041} /* East Asian ideograph */, - {0, 0, 0x903E} /* East Asian ideograph */, - {0, 0, 0x9058} /* East Asian ideograph */, - {0, 0, 0x9060} /* East Asian ideograph */, - {0, 0, 0x905C} /* East Asian ideograph */, - {0, 0, 0x9063} /* East Asian ideograph */, - {0, 0, 0x9065} /* East Asian ideograph */, - {0, 0, 0x905E} /* East Asian ideograph */, - {0, 0, 0x9069} /* East Asian ideograph */, - {0, 0, 0x906E} /* East Asian ideograph */, - {0, 0, 0x9068} /* East Asian ideograph */, - {0, 0, 0x906D} /* East Asian ideograph */, - {0, 0, 0x9075} /* East Asian ideograph */, - {0, 0, 0x9074} /* East Asian ideograph */, - {0, 0, 0x9078} /* East Asian ideograph */, - {0, 0, 0x9072} /* East Asian ideograph */, - {0, 0, 0x9077} /* East Asian ideograph */, - {0, 0, 0x907C} /* East Asian ideograph */, - {0, 0, 0x907A} /* East Asian ideograph */, - {0, 0, 0x907F} /* East Asian ideograph */, - {0, 0, 0x907D} /* East Asian ideograph */, - {0, 0, 0x9081} /* East Asian ideograph */, - {0, 0, 0x9084} /* East Asian ideograph */, - {0, 0, 0x9082} /* East Asian ideograph */, - {0, 0, 0x9080} /* East Asian ideograph */, - {0, 0, 0x9087} /* East Asian ideograph */, - {0, 0, 0x908A} /* East Asian ideograph */, - {0, 0, 0x9090} /* East Asian ideograph */, - {0, 0, 0x908F} /* East Asian ideograph */, - {0, 0, 0x9091} /* East Asian ideograph */, - {0, 0, 0x9095} /* East Asian ideograph */, - {0, 0, 0x90A3} /* East Asian ideograph */, - {0, 0, 0x90A2} /* East Asian ideograph */, - {0, 0, 0x90AA} /* East Asian ideograph */, - {0, 0, 0x90A6} /* East Asian ideograph */, - {0, 0, 0x90B5} /* East Asian ideograph */, - {0, 0, 0x90B1} /* East Asian ideograph */, - {0, 0, 0x90B8} /* East Asian ideograph */, - {0, 0, 0x90CE} /* East Asian ideograph */, - {0, 0, 0x90CA} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x90E1} /* East Asian ideograph */, - {0, 0, 0x90E8} /* East Asian ideograph */, - {0, 0, 0x90ED} /* East Asian ideograph */, - {0, 0, 0x90F5} /* East Asian ideograph */, - {0, 0, 0x90FD} /* East Asian ideograph */, - {0, 0, 0x9102} /* East Asian ideograph */, - {0, 0, 0x9109} /* East Asian ideograph */, - {0, 0, 0x9112} /* East Asian ideograph */, - {0, 0, 0x9119} /* East Asian ideograph */, - {0, 0, 0x912D} /* East Asian ideograph */, - {0, 0, 0x9130} /* East Asian ideograph */, - {0, 0, 0x9127} /* East Asian ideograph */, - {0, 0, 0x9131} /* East Asian ideograph */, - {0, 0, 0x9139} /* East Asian ideograph (variant of EACC 4B5C77) */, - {0, 0, 0x9149} /* East Asian ideograph */, - {0, 0, 0x914B} /* East Asian ideograph */, - {0, 0, 0x914A} /* East Asian ideograph */, - {0, 0, 0x9152} /* East Asian ideograph */, - {0, 0, 0x914D} /* East Asian ideograph */, - {0, 0, 0x914C} /* East Asian ideograph */, - {0, 0, 0x9157} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page47 = { - 0, marc8_31page47_dir -}; -/* PAGE 46 */ -struct yaz_iconv_trie_dir marc8_31page46_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8E76} /* East Asian ideograph */, - {0, 0, 0x8E7C} /* East Asian ideograph */, - {0, 0, 0x8E82} /* East Asian ideograph */, - {0, 0, 0x8E81} /* East Asian ideograph */, - {0, 0, 0x8E87} /* East Asian ideograph */, - {0, 0, 0x8E89} /* East Asian ideograph */, - {0, 0, 0x8E85} /* East Asian ideograph */, - {0, 0, 0x8E8A} /* East Asian ideograph */, - {0, 0, 0x8E8D} /* East Asian ideograph (variant of EACC 4B5B29) */, - {0, 0, 0x8E91} /* East Asian ideograph */, - {0, 0, 0x8EA1} /* East Asian ideograph */, - {0, 0, 0x8EAA} /* East Asian ideograph */, - {0, 0, 0x8EAB} /* East Asian ideograph */, - {0, 0, 0x8EAC} /* East Asian ideograph */, - {0, 0, 0x8EB2} /* East Asian ideograph */, - {0, 0, 0x8EBA} /* East Asian ideograph */, - {0, 0, 0x8EC0} /* East Asian ideograph */, - {0, 0, 0x8ECA} /* East Asian ideograph */, - {0, 0, 0x8ECB} /* East Asian ideograph */, - {0, 0, 0x8ECD} /* East Asian ideograph */, - {0, 0, 0x8ECC} /* East Asian ideograph */, - {0, 0, 0x8ED2} /* East Asian ideograph */, - {0, 0, 0x8ED4} /* East Asian ideograph */, - {0, 0, 0x8EDF} /* East Asian ideograph */, - {0, 0, 0x8EDB} /* East Asian ideograph */, - {0, 0, 0x8EFB} /* East Asian ideograph */, - {0, 0, 0x8EF8} /* East Asian ideograph */, - {0, 0, 0x8EFC} /* East Asian ideograph */, - {0, 0, 0x8F03} /* East Asian ideograph */, - {0, 0, 0x8EFE} /* East Asian ideograph */, - {0, 0, 0x8F09} /* East Asian ideograph */, - {0, 0, 0x8F0A} /* East Asian ideograph */, - {0, 0, 0x8F14} /* East Asian ideograph */, - {0, 0, 0x8F12} /* East Asian ideograph */, - {0, 0, 0x8F15} /* East Asian ideograph */, - {0, 0, 0x8F13} /* East Asian ideograph */, - {0, 0, 0x8F26} /* East Asian ideograph */, - {0, 0, 0x8F1B} /* East Asian ideograph */, - {0, 0, 0x8F1F} /* East Asian ideograph */, - {0, 0, 0x8F1D} /* East Asian ideograph */, - {0, 0, 0x8F29} /* East Asian ideograph */, - {0, 0, 0x8F2A} /* East Asian ideograph */, - {0, 0, 0x8F1C} /* East Asian ideograph */, - {0, 0, 0x8F3B} /* East Asian ideograph */, - {0, 0, 0x8F2F} /* East Asian ideograph */, - {0, 0, 0x8F38} /* East Asian ideograph */, - {0, 0, 0x8F44} /* East Asian ideograph */, - {0, 0, 0x8F3E} /* East Asian ideograph */, - {0, 0, 0x8F45} /* East Asian ideograph */, - {0, 0, 0x8F42} /* East Asian ideograph (variant of EACC 4B5B52) */, - {0, 0, 0x8F3F} /* East Asian ideograph */, - {0, 0, 0x8F4D} /* East Asian ideograph */, - {0, 0, 0x8F49} /* East Asian ideograph */, - {0, 0, 0x8F54} /* East Asian ideograph */, - {0, 0, 0x8F4E} /* East Asian ideograph */, - {0, 0, 0x8F5F} /* East Asian ideograph */, - {0, 0, 0x8F61} /* East Asian ideograph */, - {0, 0, 0x8F9B} /* East Asian ideograph */, - {0, 0, 0x8F9C} /* East Asian ideograph */, - {0, 0, 0x8F9F} /* East Asian ideograph */, - {0, 0, 0x8FA3} /* East Asian ideograph */, - {0, 0, 0x8FA8} /* East Asian ideograph */, - {0, 0, 0x8FA6} /* East Asian ideograph */, - {0, 0, 0x8FAD} /* East Asian ideograph */, - {0, 0, 0x8FAF} /* East Asian ideograph */, - {0, 0, 0x8FB0} /* East Asian ideograph */, - {0, 0, 0x8FB1} /* East Asian ideograph */, - {0, 0, 0x8FB2} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8FC6} /* East Asian ideograph */, - {0, 0, 0x8FC5} /* East Asian ideograph */, - {0, 0, 0x8FC4} /* East Asian ideograph */, - {0, 0, 0x5DE1} /* East Asian ideograph */, - {0, 0, 0x8FCE} /* East Asian ideograph */, - {0, 0, 0x8FD1} /* East Asian ideograph */, - {0, 0, 0x8FD4} /* East Asian ideograph */, - {0, 0, 0x8FF0} /* East Asian ideograph (variant of EACC 275B6D) */, - {0, 0, 0x8FE6} /* East Asian ideograph */, - {0, 0, 0x8FE2} /* East Asian ideograph */, - {0, 0, 0x8FEA} /* East Asian ideograph */, - {0, 0, 0x8FE5} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8FEB} /* East Asian ideograph */, - {0, 0, 0x9001} /* East Asian ideograph */, - {0, 0, 0x9006} /* East Asian ideograph */, - {0, 0, 0x8FF7} /* East Asian ideograph */, - {0, 0, 0x9000} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x9003} /* East Asian ideograph */, - {0, 0, 0x8FFD} /* East Asian ideograph */, - {0, 0, 0x9005} /* East Asian ideograph */, - {0, 0, 0x9019} /* East Asian ideograph */, - {0, 0, 0x9023} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page46 = { - 0, marc8_31page46_dir -}; -/* PAGE 45 */ -struct yaz_iconv_trie_dir marc8_31page45_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8CC5} /* East Asian ideograph */, - {0, 0, 0x8CC7} /* East Asian ideograph */, - {0, 0, 0x8CCA} /* East Asian ideograph */, - {0, 0, 0x8CC8} /* East Asian ideograph */, - {0, 0, 0x8CC4} /* East Asian ideograph */, - {0, 0, 0x8CB2} /* East Asian ideograph */, - {0, 0, 0x8CC3} /* East Asian ideograph */, - {0, 0, 0x8CC2} /* East Asian ideograph */, - {0, 0, 0x8CD3} /* East Asian ideograph */, - {0, 0, 0x8CD1} /* East Asian ideograph */, - {0, 0, 0x8CD2} /* East Asian ideograph */, - {0, 0, 0x8CE0} /* East Asian ideograph */, - {0, 0, 0x8CE6} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8CE3} /* East Asian ideograph */, - {0, 0, 0x8CE2} /* East Asian ideograph */, - {0, 0, 0x8CE4} /* East Asian ideograph */, - {0, 0, 0x8CDE} /* East Asian ideograph */, - {0, 0, 0x8CDC} /* East Asian ideograph */, - {0, 0, 0x8CEA} /* East Asian ideograph */, - {0, 0, 0x8CED} /* East Asian ideograph */, - {0, 0, 0x8CF4} /* East Asian ideograph */, - {0, 0, 0x8CFD} /* East Asian ideograph */, - {0, 0, 0x8CFA} /* East Asian ideograph */, - {0, 0, 0x8D05} /* East Asian ideograph */, - {0, 0, 0x8CFC} /* East Asian ideograph */, - {0, 0, 0x8D08} /* East Asian ideograph (variant of EACC 4B5A3B) */, - {0, 0, 0x8D0B} /* East Asian ideograph */, - {0, 0, 0x8D0A} /* East Asian ideograph */, - {0, 0, 0x8D0F} /* East Asian ideograph */, - {0, 0, 0x8D0D} /* East Asian ideograph */, - {0, 0, 0x8D13} /* East Asian ideograph */, - {0, 0, 0x8D16} /* East Asian ideograph */, - {0, 0, 0x8D1B} /* East Asian ideograph */, - {0, 0, 0x8D64} /* East Asian ideograph */, - {0, 0, 0x8D67} /* East Asian ideograph */, - {0, 0, 0x8D66} /* East Asian ideograph */, - {0, 0, 0x8D6B} /* East Asian ideograph */, - {0, 0, 0x8D6D} /* East Asian ideograph */, - {0, 0, 0x8D70} /* East Asian ideograph */, - {0, 0, 0x8D74} /* East Asian ideograph */, - {0, 0, 0x8D73} /* East Asian ideograph */, - {0, 0, 0x8D77} /* East Asian ideograph */, - {0, 0, 0x8D85} /* East Asian ideograph */, - {0, 0, 0x8D8A} /* East Asian ideograph */, - {0, 0, 0x8D81} /* East Asian ideograph */, - {0, 0, 0x8D99} /* East Asian ideograph */, - {0, 0, 0x8D95} /* East Asian ideograph */, - {0, 0, 0x8DA3} /* East Asian ideograph */, - {0, 0, 0x8D9F} /* East Asian ideograph */, - {0, 0, 0x8DA8} /* East Asian ideograph */, - {0, 0, 0x8DB3} /* East Asian ideograph */, - {0, 0, 0x8DB4} /* East Asian ideograph */, - {0, 0, 0x8DBE} /* East Asian ideograph */, - {0, 0, 0x8DCE} /* East Asian ideograph */, - {0, 0, 0x8DDD} /* East Asian ideograph */, - {0, 0, 0x8DDB} /* East Asian ideograph */, - {0, 0, 0x8DCB} /* East Asian ideograph */, - {0, 0, 0x8DDA} /* East Asian ideograph */, - {0, 0, 0x8DC6} /* East Asian ideograph */, - {0, 0, 0x8DD1} /* East Asian ideograph */, - {0, 0, 0x8DCC} /* East Asian ideograph */, - {0, 0, 0x8DE1} /* East Asian ideograph */, - {0, 0, 0x8DDF} /* East Asian ideograph */, - {0, 0, 0x8DE8} /* East Asian ideograph */, - {0, 0, 0x8DF3} /* East Asian ideograph */, - {0, 0, 0x8DFA} /* East Asian ideograph */, - {0, 0, 0x8DEA} /* East Asian ideograph */, - {0, 0, 0x8DEF} /* East Asian ideograph */, - {0, 0, 0x8DFC} /* East Asian ideograph */, - {0, 0, 0x8E2B} /* East Asian ideograph */, - {0, 0, 0x8E10} /* East Asian ideograph */, - {0, 0, 0x8E22} /* East Asian ideograph */, - {0, 0, 0x8E1D} /* East Asian ideograph */, - {0, 0, 0x8E0F} /* East Asian ideograph */, - {0, 0, 0x8E29} /* East Asian ideograph */, - {0, 0, 0x8E1F} /* East Asian ideograph */, - {0, 0, 0x8E44} /* East Asian ideograph */, - {0, 0, 0x8E31} /* East Asian ideograph */, - {0, 0, 0x8E42} /* East Asian ideograph */, - {0, 0, 0x8E34} /* East Asian ideograph */, - {0, 0, 0x8E39} /* East Asian ideograph */, - {0, 0, 0x8E35} /* East Asian ideograph */, - {0, 0, 0x8E49} /* East Asian ideograph */, - {0, 0, 0x8E4B} /* East Asian ideograph */, - {0, 0, 0x8E48} /* East Asian ideograph */, - {0, 0, 0x8E4A} /* East Asian ideograph */, - {0, 0, 0x8E63} /* East Asian ideograph */, - {0, 0, 0x8E59} /* East Asian ideograph */, - {0, 0, 0x8E66} /* East Asian ideograph */, - {0, 0, 0x8E64} /* East Asian ideograph */, - {0, 0, 0x8E72} /* East Asian ideograph */, - {0, 0, 0x8E6C} /* East Asian ideograph */, - {0, 0, 0x8E7A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page45 = { - 0, marc8_31page45_dir -}; -/* PAGE 44 */ -struct yaz_iconv_trie_dir marc8_31page44_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8AC2} /* East Asian ideograph */, - {0, 0, 0x8AB0} /* East Asian ideograph */, - {0, 0, 0x8A95} /* East Asian ideograph */, - {0, 0, 0x8AD6} /* East Asian ideograph */, - {0, 0, 0x8AE6} /* East Asian ideograph */, - {0, 0, 0x8AFA} /* East Asian ideograph */, - {0, 0, 0x8AEB} /* East Asian ideograph */, - {0, 0, 0x8AF1} /* East Asian ideograph */, - {0, 0, 0x8AE7} /* East Asian ideograph */, - {0, 0, 0x8ADC} /* East Asian ideograph */, - {0, 0, 0x8B00} /* East Asian ideograph */, - {0, 0, 0x8B01} /* East Asian ideograph (variant of EACC 2D592C) */, - {0, 0, 0x8B02} /* East Asian ideograph */, - {0, 0, 0x8AFE} /* East Asian ideograph */, - {0, 0, 0x8AF7} /* East Asian ideograph */, - {0, 0, 0x8AED} /* East Asian ideograph */, - {0, 0, 0x8B17} /* East Asian ideograph */, - {0, 0, 0x8B19} /* East Asian ideograph */, - {0, 0, 0x8B0E} /* East Asian ideograph */, - {0, 0, 0x8B1B} /* East Asian ideograph */, - {0, 0, 0x8B0A} /* East Asian ideograph */, - {0, 0, 0x8B21} /* East Asian ideograph */, - {0, 0, 0x8B04} /* East Asian ideograph */, - {0, 0, 0x8B1D} /* East Asian ideograph */, - {0, 0, 0x8B39} /* East Asian ideograph */, - {0, 0, 0x8B2C} /* East Asian ideograph */, - {0, 0, 0x8B28} /* East Asian ideograph */, - {0, 0, 0x8B58} /* East Asian ideograph */, - {0, 0, 0x8B5C} /* East Asian ideograph */, - {0, 0, 0x8B4E} /* East Asian ideograph */, - {0, 0, 0x8B49} /* East Asian ideograph */, - {0, 0, 0x8B5A} /* East Asian ideograph */, - {0, 0, 0x8B41} /* East Asian ideograph */, - {0, 0, 0x8B4F} /* East Asian ideograph */, - {0, 0, 0x8B70} /* East Asian ideograph */, - {0, 0, 0x8B6C} /* East Asian ideograph */, - {0, 0, 0x8B66} /* East Asian ideograph */, - {0, 0, 0x8B6F} /* East Asian ideograph */, - {0, 0, 0x8B74} /* East Asian ideograph */, - {0, 0, 0x8B77} /* East Asian ideograph */, - {0, 0, 0x8B7D} /* East Asian ideograph */, - {0, 0, 0x8B80} /* East Asian ideograph */, - {0, 0, 0x8B8A} /* East Asian ideograph */, - {0, 0, 0x8B93} /* East Asian ideograph */, - {0, 0, 0x8B96} /* East Asian ideograph */, - {0, 0, 0x8B92} /* East Asian ideograph */, - {0, 0, 0x8B9A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8C41} /* East Asian ideograph */, - {0, 0, 0x8C3F} /* East Asian ideograph */, - {0, 0, 0x8C46} /* East Asian ideograph */, - {0, 0, 0x8C48} /* East Asian ideograph */, - {0, 0, 0x8C49} /* East Asian ideograph */, - {0, 0, 0x8C4C} /* East Asian ideograph */, - {0, 0, 0x8C4E} /* East Asian ideograph */, - {0, 0, 0x8C50} /* East Asian ideograph */, - {0, 0, 0x8C54} /* East Asian ideograph */, - {0, 0, 0x8C5A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8C62} /* East Asian ideograph */, - {0, 0, 0x8C6A} /* East Asian ideograph */, - {0, 0, 0x8C6B} /* East Asian ideograph */, - {0, 0, 0x8C6C} /* East Asian ideograph */, - {0, 0, 0x8C7A} /* East Asian ideograph */, - {0, 0, 0x8C79} /* East Asian ideograph */, - {0, 0, 0x8C82} /* East Asian ideograph */, - {0, 0, 0x8C8A} /* East Asian ideograph */, - {0, 0, 0x8C89} /* East Asian ideograph */, - {0, 0, 0x8C8D} /* East Asian ideograph */, - {0, 0, 0x8C8C} /* East Asian ideograph */, - {0, 0, 0x8C93} /* East Asian ideograph */, - {0, 0, 0x8C9D} /* East Asian ideograph */, - {0, 0, 0x8C9E} /* East Asian ideograph */, - {0, 0, 0x8CA0} /* East Asian ideograph */, - {0, 0, 0x8CA2} /* East Asian ideograph */, - {0, 0, 0x8CA1} /* East Asian ideograph */, - {0, 0, 0x8CAC} /* East Asian ideograph */, - {0, 0, 0x8CAB} /* East Asian ideograph */, - {0, 0, 0x8CA8} /* East Asian ideograph */, - {0, 0, 0x8CAA} /* East Asian ideograph */, - {0, 0, 0x8CA7} /* East Asian ideograph */, - {0, 0, 0x8CA9} /* East Asian ideograph */, - {0, 0, 0x8CAF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8CBB} /* East Asian ideograph */, - {0, 0, 0x8CC1} /* East Asian ideograph */, - {0, 0, 0x8CC0} /* East Asian ideograph */, - {0, 0, 0x8CB4} /* East Asian ideograph */, - {0, 0, 0x8CBC} /* East Asian ideograph */, - {0, 0, 0x8CB7} /* East Asian ideograph */, - {0, 0, 0x8CB6} /* East Asian ideograph */, - {0, 0, 0x8CBD} /* East Asian ideograph */, - {0, 0, 0x8CB8} /* East Asian ideograph */, - {0, 0, 0x8CBF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page44 = { - 0, marc8_31page44_dir -}; -/* PAGE 43 */ -struct yaz_iconv_trie_dir marc8_31page43_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x896A} /* East Asian ideograph */, - {0, 0, 0x896F} /* East Asian ideograph */, - {0, 0, 0x8972} /* East Asian ideograph */, - {0, 0, 0x897F} /* East Asian ideograph */, - {0, 0, 0x8981} /* East Asian ideograph */, - {0, 0, 0x8983} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x898B} /* East Asian ideograph */, - {0, 0, 0x898F} /* East Asian ideograph */, - {0, 0, 0x8993} /* East Asian ideograph */, - {0, 0, 0x8996} /* East Asian ideograph */, - {0, 0, 0x89AA} /* East Asian ideograph */, - {0, 0, 0x89A6} /* East Asian ideograph */, - {0, 0, 0x89AC} /* East Asian ideograph */, - {0, 0, 0x89B2} /* East Asian ideograph */, - {0, 0, 0x89BA} /* East Asian ideograph */, - {0, 0, 0x89BD} /* East Asian ideograph */, - {0, 0, 0x89C0} /* East Asian ideograph */, - {0, 0, 0x89D2} /* East Asian ideograph */, - {0, 0, 0x89E3} /* East Asian ideograph */, - {0, 0, 0x89F4} /* East Asian ideograph */, - {0, 0, 0x89F8} /* East Asian ideograph */, - {0, 0, 0x8A00} /* East Asian ideograph */, - {0, 0, 0x8A08} /* East Asian ideograph */, - {0, 0, 0x8A02} /* East Asian ideograph */, - {0, 0, 0x8A03} /* East Asian ideograph */, - {0, 0, 0x8A10} /* East Asian ideograph */, - {0, 0, 0x8A18} /* East Asian ideograph */, - {0, 0, 0x8A0E} /* East Asian ideograph */, - {0, 0, 0x8A0C} /* East Asian ideograph */, - {0, 0, 0x8A15} /* East Asian ideograph */, - {0, 0, 0x8A0A} /* East Asian ideograph */, - {0, 0, 0x8A16} /* East Asian ideograph */, - {0, 0, 0x8A17} /* East Asian ideograph */, - {0, 0, 0x8A13} /* East Asian ideograph */, - {0, 0, 0x8A2A} /* East Asian ideograph */, - {0, 0, 0x8A23} /* East Asian ideograph */, - {0, 0, 0x8A1D} /* East Asian ideograph */, - {0, 0, 0x8A25} /* East Asian ideograph */, - {0, 0, 0x8A31} /* East Asian ideograph */, - {0, 0, 0x8A2D} /* East Asian ideograph */, - {0, 0, 0x8A1B} /* East Asian ideograph */, - {0, 0, 0x8A1F} /* East Asian ideograph */, - {0, 0, 0x8A3B} /* East Asian ideograph */, - {0, 0, 0x8A60} /* East Asian ideograph */, - {0, 0, 0x8A55} /* East Asian ideograph */, - {0, 0, 0x8A5E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8A41} /* East Asian ideograph */, - {0, 0, 0x8A54} /* East Asian ideograph */, - {0, 0, 0x8A5B} /* East Asian ideograph */, - {0, 0, 0x8A50} /* East Asian ideograph */, - {0, 0, 0x8A46} /* East Asian ideograph */, - {0, 0, 0x8A34} /* East Asian ideograph */, - {0, 0, 0x8A3A} /* East Asian ideograph */, - {0, 0, 0x8A6B} /* East Asian ideograph */, - {0, 0, 0x8A72} /* East Asian ideograph */, - {0, 0, 0x8A73} /* East Asian ideograph */, - {0, 0, 0x8A66} /* East Asian ideograph */, - {0, 0, 0x8A69} /* East Asian ideograph */, - {0, 0, 0x8A70} /* East Asian ideograph */, - {0, 0, 0x8A63} /* East Asian ideograph */, - {0, 0, 0x8A7C} /* East Asian ideograph */, - {0, 0, 0x8AA0} /* East Asian ideograph */, - {0, 0, 0x8A87} /* East Asian ideograph */, - {0, 0, 0x8A85} /* East Asian ideograph */, - {0, 0, 0x8A6D} /* East Asian ideograph */, - {0, 0, 0x8A79} /* East Asian ideograph */, - {0, 0, 0x8A62} /* East Asian ideograph */, - {0, 0, 0x8A71} /* East Asian ideograph */, - {0, 0, 0x8A6E} /* East Asian ideograph */, - {0, 0, 0x8A6C} /* East Asian ideograph */, - {0, 0, 0x8AAA} /* East Asian ideograph */, - {0, 0, 0x8AA6} /* East Asian ideograph */, - {0, 0, 0x8AA1} /* East Asian ideograph */, - {0, 0, 0x8A9E} /* East Asian ideograph */, - {0, 0, 0x8A8C} /* East Asian ideograph */, - {0, 0, 0x8A93} /* East Asian ideograph */, - {0, 0, 0x8AA3} /* East Asian ideograph */, - {0, 0, 0x8A8D} /* East Asian ideograph */, - {0, 0, 0x8AA4} /* East Asian ideograph (variant of EACC 4B5871) */, - {0, 0, 0x8AA8} /* East Asian ideograph */, - {0, 0, 0x8AA5} /* East Asian ideograph */, - {0, 0, 0x8A98} /* East Asian ideograph */, - {0, 0, 0x8A91} /* East Asian ideograph */, - {0, 0, 0x8ABC} /* East Asian ideograph */, - {0, 0, 0x8AC4} /* East Asian ideograph */, - {0, 0, 0x8AD2} /* East Asian ideograph */, - {0, 0, 0x8AC7} /* East Asian ideograph */, - {0, 0, 0x8ACB} /* East Asian ideograph (variant of EACC 4B587A) */, - {0, 0, 0x8AF8} /* East Asian ideograph */, - {0, 0, 0x8AB2} /* East Asian ideograph */, - {0, 0, 0x8ABF} /* East Asian ideograph */, - {0, 0, 0x8AC9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page43 = { - 0, marc8_31page43_dir -}; -/* PAGE 42 */ -struct yaz_iconv_trie_dir marc8_31page42_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8759} /* East Asian ideograph */, - {0, 0, 0x8783} /* East Asian ideograph */, - {0, 0, 0x8782} /* East Asian ideograph */, - {0, 0, 0x87A2} /* East Asian ideograph */, - {0, 0, 0x879E} /* East Asian ideograph */, - {0, 0, 0x878D} /* East Asian ideograph */, - {0, 0, 0x879F} /* East Asian ideograph */, - {0, 0, 0x87D1} /* East Asian ideograph */, - {0, 0, 0x87C0} /* East Asian ideograph */, - {0, 0, 0x87AB} /* East Asian ideograph */, - {0, 0, 0x87B3} /* East Asian ideograph */, - {0, 0, 0x87BB} /* East Asian ideograph */, - {0, 0, 0x87C8} /* East Asian ideograph */, - {0, 0, 0x87D2} /* East Asian ideograph */, - {0, 0, 0x87BA} /* East Asian ideograph */, - {0, 0, 0x87C6} /* East Asian ideograph */, - {0, 0, 0x87CB} /* East Asian ideograph */, - {0, 0, 0x87EF} /* East Asian ideograph */, - {0, 0, 0x87F2} /* East Asian ideograph */, - {0, 0, 0x87EC} /* East Asian ideograph */, - {0, 0, 0x87FB} /* East Asian ideograph */, - {0, 0, 0x8805} /* East Asian ideograph */, - {0, 0, 0x880D} /* East Asian ideograph */, - {0, 0, 0x87F9} /* East Asian ideograph */, - {0, 0, 0x8814} /* East Asian ideograph */, - {0, 0, 0x8815} /* East Asian ideograph */, - {0, 0, 0x8822} /* East Asian ideograph */, - {0, 0, 0x8823} /* East Asian ideograph */, - {0, 0, 0x8821} /* East Asian ideograph */, - {0, 0, 0x881F} /* East Asian ideograph */, - {0, 0, 0x8831} /* East Asian ideograph */, - {0, 0, 0x8839} /* East Asian ideograph */, - {0, 0, 0x8836} /* East Asian ideograph */, - {0, 0, 0x883B} /* East Asian ideograph */, - {0, 0, 0x8840} /* East Asian ideograph */, - {0, 0, 0x884C} /* East Asian ideograph */, - {0, 0, 0x884D} /* East Asian ideograph */, - {0, 0, 0x8853} /* East Asian ideograph (variant of EACC 4B5746) */, - {0, 0, 0x8857} /* East Asian ideograph */, - {0, 0, 0x8859} /* East Asian ideograph */, - {0, 0, 0x885B} /* East Asian ideograph */, - {0, 0, 0x885D} /* East Asian ideograph */, - {0, 0, 0x8861} /* East Asian ideograph */, - {0, 0, 0x8862} /* East Asian ideograph */, - {0, 0, 0x8863} /* East Asian ideograph */, - {0, 0, 0x521D} /* East Asian ideograph */, - {0, 0, 0x8868} /* East Asian ideograph */, - {0, 0, 0x886B} /* East Asian ideograph */, - {0, 0, 0x8882} /* East Asian ideograph */, - {0, 0, 0x8881} /* East Asian ideograph */, - {0, 0, 0x8870} /* East Asian ideograph */, - {0, 0, 0x8877} /* East Asian ideograph */, - {0, 0, 0x8888} /* East Asian ideograph */, - {0, 0, 0x88AB} /* East Asian ideograph */, - {0, 0, 0x8892} /* East Asian ideograph */, - {0, 0, 0x8896} /* East Asian ideograph */, - {0, 0, 0x888D} /* East Asian ideograph */, - {0, 0, 0x888B} /* East Asian ideograph */, - {0, 0, 0x889E} /* East Asian ideograph */, - {0, 0, 0x88C1} /* East Asian ideograph */, - {0, 0, 0x88C2} /* East Asian ideograph */, - {0, 0, 0x88B1} /* East Asian ideograph */, - {0, 0, 0x88DF} /* East Asian ideograph */, - {0, 0, 0x88D9} /* East Asian ideograph */, - {0, 0, 0x88D8} /* East Asian ideograph */, - {0, 0, 0x88DC} /* East Asian ideograph */, - {0, 0, 0x88CF} /* East Asian ideograph */, - {0, 0, 0x88D4} /* East Asian ideograph */, - {0, 0, 0x88DD} /* East Asian ideograph */, - {0, 0, 0x88D5} /* East Asian ideograph */, - {0, 0, 0x8902} /* East Asian ideograph */, - {0, 0, 0x88F3} /* East Asian ideograph */, - {0, 0, 0x88F8} /* East Asian ideograph */, - {0, 0, 0x88F9} /* East Asian ideograph */, - {0, 0, 0x88F4} /* East Asian ideograph */, - {0, 0, 0x88FD} /* East Asian ideograph */, - {0, 0, 0x88E8} /* East Asian ideograph */, - {0, 0, 0x891A} /* East Asian ideograph */, - {0, 0, 0x8910} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8913} /* East Asian ideograph */, - {0, 0, 0x8912} /* East Asian ideograph */, - {0, 0, 0x8932} /* East Asian ideograph */, - {0, 0, 0x892A} /* East Asian ideograph */, - {0, 0, 0x8925} /* East Asian ideograph */, - {0, 0, 0x892B} /* East Asian ideograph */, - {0, 0, 0x893B} /* East Asian ideograph */, - {0, 0, 0x8936} /* East Asian ideograph */, - {0, 0, 0x8938} /* East Asian ideograph */, - {0, 0, 0x8944} /* East Asian ideograph */, - {0, 0, 0x895F} /* East Asian ideograph */, - {0, 0, 0x8960} /* East Asian ideograph */, - {0, 0, 0x8956} /* East Asian ideograph */, - {0, 0, 0x8964} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page42 = { - 0, marc8_31page42_dir -}; -/* PAGE 41 */ -struct yaz_iconv_trie_dir marc8_31page41_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x85AA} /* East Asian ideograph */, - {0, 0, 0x856D} /* East Asian ideograph */, - {0, 0, 0x859B} /* East Asian ideograph */, - {0, 0, 0x8591} /* East Asian ideograph */, - {0, 0, 0x857E} /* East Asian ideograph */, - {0, 0, 0x8594} /* East Asian ideograph */, - {0, 0, 0x859C} /* East Asian ideograph */, - {0, 0, 0x8587} /* East Asian ideograph */, - {0, 0, 0x85CD} /* East Asian ideograph (variant of EACC 4B5629) */, - {0, 0, 0x85A9} /* East Asian ideograph */, - {0, 0, 0x85CF} /* East Asian ideograph */, - {0, 0, 0x85AF} /* East Asian ideograph */, - {0, 0, 0x85D0} /* East Asian ideograph */, - {0, 0, 0x85C9} /* East Asian ideograph */, - {0, 0, 0x85B0} /* East Asian ideograph */, - {0, 0, 0x85E9} /* East Asian ideograph */, - {0, 0, 0x85DD} /* East Asian ideograph */, - {0, 0, 0x85EA} /* East Asian ideograph */, - {0, 0, 0x85E4} /* East Asian ideograph */, - {0, 0, 0x85D5} /* East Asian ideograph */, - {0, 0, 0x85E5} /* East Asian ideograph */, - {0, 0, 0x85FB} /* East Asian ideograph */, - {0, 0, 0x85F9} /* East Asian ideograph */, - {0, 0, 0x8611} /* East Asian ideograph */, - {0, 0, 0x85FA} /* East Asian ideograph */, - {0, 0, 0x8606} /* East Asian ideograph */, - {0, 0, 0x860B} /* East Asian ideograph */, - {0, 0, 0x8607} /* East Asian ideograph */, - {0, 0, 0x860A} /* East Asian ideograph */, - {0, 0, 0x862D} /* East Asian ideograph */, - {0, 0, 0x8617} /* East Asian ideograph */, - {0, 0, 0x861A} /* East Asian ideograph */, - {0, 0, 0x8638} /* East Asian ideograph */, - {0, 0, 0x863F} /* East Asian ideograph */, - {0, 0, 0x864E} /* East Asian ideograph */, - {0, 0, 0x8650} /* East Asian ideograph */, - {0, 0, 0x8654} /* East Asian ideograph */, - {0, 0, 0x5F6A} /* East Asian ideograph */, - {0, 0, 0x8655} /* East Asian ideograph */, - {0, 0, 0x865C} /* East Asian ideograph */, - {0, 0, 0x865B} /* East Asian ideograph */, - {0, 0, 0x865F} /* East Asian ideograph */, - {0, 0, 0x865E} /* East Asian ideograph */, - {0, 0, 0x8667} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8679} /* East Asian ideograph */, - {0, 0, 0x86A9} /* East Asian ideograph */, - {0, 0, 0x86AA} /* East Asian ideograph */, - {0, 0, 0x868A} /* East Asian ideograph */, - {0, 0, 0x8693} /* East Asian ideograph */, - {0, 0, 0x86A4} /* East Asian ideograph */, - {0, 0, 0x868C} /* East Asian ideograph */, - {0, 0, 0x86A3} /* East Asian ideograph */, - {0, 0, 0x86C0} /* East Asian ideograph */, - {0, 0, 0x86C7} /* East Asian ideograph */, - {0, 0, 0x86B5} /* East Asian ideograph */, - {0, 0, 0x86CB} /* East Asian ideograph */, - {0, 0, 0x86B6} /* East Asian ideograph */, - {0, 0, 0x86C4} /* East Asian ideograph */, - {0, 0, 0x86C6} /* East Asian ideograph */, - {0, 0, 0x86B1} /* East Asian ideograph */, - {0, 0, 0x86AF} /* East Asian ideograph */, - {0, 0, 0x86DF} /* East Asian ideograph */, - {0, 0, 0x86D9} /* East Asian ideograph */, - {0, 0, 0x86ED} /* East Asian ideograph */, - {0, 0, 0x86D4} /* East Asian ideograph */, - {0, 0, 0x86DB} /* East Asian ideograph */, - {0, 0, 0x86E4} /* East Asian ideograph */, - {0, 0, 0x86FB} /* East Asian ideograph */, - {0, 0, 0x86F9} /* East Asian ideograph */, - {0, 0, 0x8707} /* East Asian ideograph */, - {0, 0, 0x8703} /* East Asian ideograph */, - {0, 0, 0x8708} /* East Asian ideograph */, - {0, 0, 0x8700} /* East Asian ideograph */, - {0, 0, 0x86FE} /* East Asian ideograph */, - {0, 0, 0x8713} /* East Asian ideograph */, - {0, 0, 0x8702} /* East Asian ideograph */, - {0, 0, 0x871C} /* East Asian ideograph */, - {0, 0, 0x873F} /* East Asian ideograph */, - {0, 0, 0x873B} /* East Asian ideograph */, - {0, 0, 0x8722} /* East Asian ideograph */, - {0, 0, 0x8725} /* East Asian ideograph */, - {0, 0, 0x8734} /* East Asian ideograph */, - {0, 0, 0x8718} /* East Asian ideograph */, - {0, 0, 0x8755} /* East Asian ideograph */, - {0, 0, 0x8760} /* East Asian ideograph */, - {0, 0, 0x8776} /* East Asian ideograph */, - {0, 0, 0x8774} /* East Asian ideograph */, - {0, 0, 0x8766} /* East Asian ideograph */, - {0, 0, 0x8778} /* East Asian ideograph */, - {0, 0, 0x8768} /* East Asian ideograph */, - {0, 0, 0x874C} /* East Asian ideograph */, - {0, 0, 0x8757} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page41 = { - 0, marc8_31page41_dir -}; -/* PAGE 40 */ -struct yaz_iconv_trie_dir marc8_31page40_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5179} /* East Asian ideograph */, - {0, 0, 0x834F} /* East Asian ideograph */, - {0, 0, 0x8339} /* East Asian ideograph */, - {0, 0, 0x838E} /* East Asian ideograph */, - {0, 0, 0x8398} /* East Asian ideograph */, - {0, 0, 0x839E} /* East Asian ideograph */, - {0, 0, 0x8378} /* East Asian ideograph */, - {0, 0, 0x83A2} /* East Asian ideograph */, - {0, 0, 0x8396} /* East Asian ideograph */, - {0, 0, 0x83A7} /* East Asian ideograph */, - {0, 0, 0x83AB} /* East Asian ideograph */, - {0, 0, 0x8392} /* East Asian ideograph (variant of EACC 4B552C) */, - {0, 0, 0x838A} /* East Asian ideograph */, - {0, 0, 0x8393} /* East Asian ideograph */, - {0, 0, 0x83A0} /* East Asian ideograph */, - {0, 0, 0x8389} /* East Asian ideograph */, - {0, 0, 0x8377} /* East Asian ideograph */, - {0, 0, 0x837C} /* East Asian ideograph */, - {0, 0, 0x837B} /* East Asian ideograph */, - {0, 0, 0x840D} /* East Asian ideograph */, - {0, 0, 0x83E0} /* East Asian ideograph */, - {0, 0, 0x83E9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8403} /* East Asian ideograph */, - {0, 0, 0x83C5} /* East Asian ideograph */, - {0, 0, 0x83C1} /* East Asian ideograph */, - {0, 0, 0x840B} /* East Asian ideograph */, - {0, 0, 0x83EF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x83F1} /* East Asian ideograph */, - {0, 0, 0x83BD} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x840A} /* East Asian ideograph */, - {0, 0, 0x840C} /* East Asian ideograph */, - {0, 0, 0x83CC} /* East Asian ideograph */, - {0, 0, 0x83DC} /* East Asian ideograph */, - {0, 0, 0x83CA} /* East Asian ideograph */, - {0, 0, 0x83F2} /* East Asian ideograph */, - {0, 0, 0x840E} /* East Asian ideograph */, - {0, 0, 0x8404} /* East Asian ideograph */, - {0, 0, 0x843D} /* East Asian ideograph */, - {0, 0, 0x8482} /* East Asian ideograph */, - {0, 0, 0x8431} /* East Asian ideograph */, - {0, 0, 0x8475} /* East Asian ideograph */, - {0, 0, 0x8466} /* East Asian ideograph */, - {0, 0, 0x8457} /* East Asian ideograph */, - {0, 0, 0x8449} /* East Asian ideograph */, - {0, 0, 0x846C} /* East Asian ideograph */, - {0, 0, 0x846B} /* East Asian ideograph */, - {0, 0, 0x845B} /* East Asian ideograph */, - {0, 0, 0x8477} /* East Asian ideograph */, - {0, 0, 0x843C} /* East Asian ideograph */, - {0, 0, 0x8435} /* East Asian ideograph */, - {0, 0, 0x8461} /* East Asian ideograph */, - {0, 0, 0x8463} /* East Asian ideograph */, - {0, 0, 0x8469} /* East Asian ideograph */, - {0, 0, 0x8438} /* East Asian ideograph */, - {0, 0, 0x84B2} /* East Asian ideograph */, - {0, 0, 0x849E} /* East Asian ideograph */, - {0, 0, 0x84BF} /* East Asian ideograph */, - {0, 0, 0x84C6} /* East Asian ideograph */, - {0, 0, 0x84C4} /* East Asian ideograph */, - {0, 0, 0x84C9} /* East Asian ideograph */, - {0, 0, 0x849C} /* East Asian ideograph */, - {0, 0, 0x84CB} /* East Asian ideograph */, - {0, 0, 0x84B8} /* East Asian ideograph */, - {0, 0, 0x84C0} /* East Asian ideograph */, - {0, 0, 0x8499} /* East Asian ideograph */, - {0, 0, 0x84D3} /* East Asian ideograph */, - {0, 0, 0x8490} /* East Asian ideograph */, - {0, 0, 0x84BC} /* East Asian ideograph */, - {0, 0, 0x853D} /* East Asian ideograph */, - {0, 0, 0x84FF} /* East Asian ideograph */, - {0, 0, 0x8517} /* East Asian ideograph */, - {0, 0, 0x851A} /* East Asian ideograph */, - {0, 0, 0x84EE} /* East Asian ideograph */, - {0, 0, 0x852C} /* East Asian ideograph */, - {0, 0, 0x852D} /* East Asian ideograph */, - {0, 0, 0x8513} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8523} /* East Asian ideograph */, - {0, 0, 0x8521} /* East Asian ideograph */, - {0, 0, 0x8514} /* East Asian ideograph */, - {0, 0, 0x84EC} /* East Asian ideograph */, - {0, 0, 0x8525} /* East Asian ideograph */, - {0, 0, 0x8569} /* East Asian ideograph */, - {0, 0, 0x854A} /* East Asian ideograph */, - {0, 0, 0x8559} /* East Asian ideograph */, - {0, 0, 0x8548} /* East Asian ideograph */, - {0, 0, 0x8568} /* East Asian ideograph */, - {0, 0, 0x8543} /* East Asian ideograph */, - {0, 0, 0x856A} /* East Asian ideograph */, - {0, 0, 0x8549} /* East Asian ideograph */, - {0, 0, 0x8584} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page40 = { - 0, marc8_31page40_dir -}; -/* PAGE 39 */ -struct yaz_iconv_trie_dir marc8_31page39_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x81DA} /* East Asian ideograph */, - {0, 0, 0x81DF} /* East Asian ideograph */, - {0, 0, 0x81E3} /* East Asian ideograph */, - {0, 0, 0x81E5} /* East Asian ideograph */, - {0, 0, 0x81E8} /* East Asian ideograph */, - {0, 0, 0x81EA} /* East Asian ideograph */, - {0, 0, 0x81EC} /* East Asian ideograph */, - {0, 0, 0x81ED} /* East Asian ideograph */, - {0, 0, 0x81F3} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x81FA} /* East Asian ideograph */, - {0, 0, 0x81FB} /* East Asian ideograph */, - {0, 0, 0x81FC} /* East Asian ideograph */, - {0, 0, 0x81FE} /* East Asian ideograph */, - {0, 0, 0x8200} /* East Asian ideograph */, - {0, 0, 0x8202} /* East Asian ideograph */, - {0, 0, 0x8205} /* East Asian ideograph */, - {0, 0, 0x8207} /* East Asian ideograph */, - {0, 0, 0x8208} /* East Asian ideograph */, - {0, 0, 0x8209} /* East Asian ideograph */, - {0, 0, 0x820A} /* East Asian ideograph */, - {0, 0, 0x820C} /* East Asian ideograph */, - {0, 0, 0x820D} /* East Asian ideograph */, - {0, 0, 0x8210} /* East Asian ideograph */, - {0, 0, 0x8212} /* East Asian ideograph */, - {0, 0, 0x8214} /* East Asian ideograph */, - {0, 0, 0x821B} /* East Asian ideograph */, - {0, 0, 0x821C} /* East Asian ideograph */, - {0, 0, 0x821E} /* East Asian ideograph */, - {0, 0, 0x821F} /* East Asian ideograph */, - {0, 0, 0x8222} /* East Asian ideograph */, - {0, 0, 0x822A} /* East Asian ideograph */, - {0, 0, 0x822B} /* East Asian ideograph */, - {0, 0, 0x822C} /* East Asian ideograph */, - {0, 0, 0x8228} /* East Asian ideograph */, - {0, 0, 0x8237} /* East Asian ideograph */, - {0, 0, 0x8235} /* East Asian ideograph */, - {0, 0, 0x8239} /* East Asian ideograph */, - {0, 0, 0x8236} /* East Asian ideograph */, - {0, 0, 0x8247} /* East Asian ideograph */, - {0, 0, 0x8258} /* East Asian ideograph */, - {0, 0, 0x8259} /* East Asian ideograph */, - {0, 0, 0x8266} /* East Asian ideograph */, - {0, 0, 0x826E} /* East Asian ideograph */, - {0, 0, 0x826F} /* East Asian ideograph */, - {0, 0, 0x8271} /* East Asian ideograph */, - {0, 0, 0x8272} /* East Asian ideograph */, - {0, 0, 0x827E} /* East Asian ideograph */, - {0, 0, 0x8292} /* East Asian ideograph */, - {0, 0, 0x828B} /* East Asian ideograph */, - {0, 0, 0x828D} /* East Asian ideograph */, - {0, 0, 0x82B3} /* East Asian ideograph */, - {0, 0, 0x829D} /* East Asian ideograph */, - {0, 0, 0x8299} /* East Asian ideograph */, - {0, 0, 0x82BD} /* East Asian ideograph */, - {0, 0, 0x82AD} /* East Asian ideograph */, - {0, 0, 0x82AC} /* East Asian ideograph */, - {0, 0, 0x82A5} /* East Asian ideograph */, - {0, 0, 0x829F} /* East Asian ideograph */, - {0, 0, 0x82BB} /* East Asian ideograph */, - {0, 0, 0x82B1} /* East Asian ideograph */, - {0, 0, 0x82B9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x82E7} /* East Asian ideograph */, - {0, 0, 0x8305} /* East Asian ideograph */, - {0, 0, 0x8309} /* East Asian ideograph */, - {0, 0, 0x82E3} /* East Asian ideograph */, - {0, 0, 0x82DB} /* East Asian ideograph */, - {0, 0, 0x82E6} /* East Asian ideograph */, - {0, 0, 0x8304} /* East Asian ideograph */, - {0, 0, 0x82E5} /* East Asian ideograph */, - {0, 0, 0x8302} /* East Asian ideograph */, - {0, 0, 0x82DC} /* East Asian ideograph */, - {0, 0, 0x82D7} /* East Asian ideograph */, - {0, 0, 0x82F1} /* East Asian ideograph */, - {0, 0, 0x8301} /* East Asian ideograph */, - {0, 0, 0x82D3} /* East Asian ideograph */, - {0, 0, 0x82D4} /* East Asian ideograph */, - {0, 0, 0x82D1} /* East Asian ideograph */, - {0, 0, 0x82DE} /* East Asian ideograph */, - {0, 0, 0x82DF} /* East Asian ideograph */, - {0, 0, 0x832B} /* East Asian ideograph */, - {0, 0, 0x8352} /* East Asian ideograph */, - {0, 0, 0x834A} /* East Asian ideograph */, - {0, 0, 0x8338} /* East Asian ideograph */, - {0, 0, 0x8354} /* East Asian ideograph */, - {0, 0, 0x8350} /* East Asian ideograph */, - {0, 0, 0x8349} /* East Asian ideograph */, - {0, 0, 0x8335} /* East Asian ideograph */, - {0, 0, 0x8334} /* East Asian ideograph */, - {0, 0, 0x8336} /* East Asian ideograph */, - {0, 0, 0x8331} /* East Asian ideograph */, - {0, 0, 0x8340} /* East Asian ideograph */, - {0, 0, 0x8317} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page39 = { - 0, marc8_31page39_dir -}; -/* PAGE 38 */ -struct yaz_iconv_trie_dir marc8_31page38_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x8085} /* East Asian ideograph */, - {0, 0, 0x8087} /* East Asian ideograph */, - {0, 0, 0x8089} /* East Asian ideograph */, - {0, 0, 0x808B} /* East Asian ideograph */, - {0, 0, 0x808C} /* East Asian ideograph */, - {0, 0, 0x8093} /* East Asian ideograph */, - {0, 0, 0x809D} /* East Asian ideograph */, - {0, 0, 0x8098} /* East Asian ideograph */, - {0, 0, 0x809B} /* East Asian ideograph */, - {0, 0, 0x809A} /* East Asian ideograph */, - {0, 0, 0x8096} /* East Asian ideograph */, - {0, 0, 0x80B2} /* East Asian ideograph */, - {0, 0, 0x80AA} /* East Asian ideograph */, - {0, 0, 0x80BA} /* East Asian ideograph */, - {0, 0, 0x80A5} /* East Asian ideograph */, - {0, 0, 0x80A2} /* East Asian ideograph */, - {0, 0, 0x80AB} /* East Asian ideograph */, - {0, 0, 0x80B1} /* East Asian ideograph */, - {0, 0, 0x80AF} /* East Asian ideograph */, - {0, 0, 0x80A1} /* East Asian ideograph */, - {0, 0, 0x80A9} /* East Asian ideograph */, - {0, 0, 0x80B4} /* East Asian ideograph */, - {0, 0, 0x80D6} /* East Asian ideograph */, - {0, 0, 0x80CC} /* East Asian ideograph */, - {0, 0, 0x80E5} /* East Asian ideograph */, - {0, 0, 0x80DA} /* East Asian ideograph */, - {0, 0, 0x80E1} /* East Asian ideograph */, - {0, 0, 0x80C3} /* East Asian ideograph */, - {0, 0, 0x80DB} /* East Asian ideograph */, - {0, 0, 0x80C4} /* East Asian ideograph */, - {0, 0, 0x80CE} /* East Asian ideograph */, - {0, 0, 0x80DE} /* East Asian ideograph */, - {0, 0, 0x80E4} /* East Asian ideograph */, - {0, 0, 0x80F0} /* East Asian ideograph */, - {0, 0, 0x8102} /* East Asian ideograph */, - {0, 0, 0x8105} /* East Asian ideograph */, - {0, 0, 0x80F1} /* East Asian ideograph */, - {0, 0, 0x80F4} /* East Asian ideograph */, - {0, 0, 0x80ED} /* East Asian ideograph */, - {0, 0, 0x80FD} /* East Asian ideograph */, - {0, 0, 0x8106} /* East Asian ideograph */, - {0, 0, 0x80F3} /* East Asian ideograph */, - {0, 0, 0x80F8} /* East Asian ideograph */, - {0, 0, 0x810A} /* East Asian ideograph */, - {0, 0, 0x8108} /* East Asian ideograph */, - {0, 0, 0x812B} /* East Asian ideograph */, - {0, 0, 0x812F} /* East Asian ideograph */, - {0, 0, 0x8116} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8129} /* East Asian ideograph */, - {0, 0, 0x8155} /* East Asian ideograph */, - {0, 0, 0x8154} /* East Asian ideograph */, - {0, 0, 0x814B} /* East Asian ideograph */, - {0, 0, 0x8151} /* East Asian ideograph */, - {0, 0, 0x8150} /* East Asian ideograph */, - {0, 0, 0x814E} /* East Asian ideograph */, - {0, 0, 0x8139} /* East Asian ideograph */, - {0, 0, 0x8146} /* East Asian ideograph */, - {0, 0, 0x813E} /* East Asian ideograph */, - {0, 0, 0x8171} /* East Asian ideograph */, - {0, 0, 0x8170} /* East Asian ideograph */, - {0, 0, 0x8178} /* East Asian ideograph */, - {0, 0, 0x8165} /* East Asian ideograph */, - {0, 0, 0x816E} /* East Asian ideograph */, - {0, 0, 0x8173} /* East Asian ideograph */, - {0, 0, 0x816B} /* East Asian ideograph */, - {0, 0, 0x8179} /* East Asian ideograph */, - {0, 0, 0x817A} /* East Asian ideograph */, - {0, 0, 0x8166} /* East Asian ideograph */, - {0, 0, 0x8180} /* East Asian ideograph */, - {0, 0, 0x818F} /* East Asian ideograph */, - {0, 0, 0x817F} /* East Asian ideograph */, - {0, 0, 0x818A} /* East Asian ideograph */, - {0, 0, 0x8188} /* East Asian ideograph */, - {0, 0, 0x819D} /* East Asian ideograph */, - {0, 0, 0x81A0} /* East Asian ideograph */, - {0, 0, 0x819B} /* East Asian ideograph */, - {0, 0, 0x819A} /* East Asian ideograph */, - {0, 0, 0x819C} /* East Asian ideograph */, - {0, 0, 0x81B3} /* East Asian ideograph */, - {0, 0, 0x81A9} /* East Asian ideograph */, - {0, 0, 0x81A8} /* East Asian ideograph */, - {0, 0, 0x81C6} /* East Asian ideograph */, - {0, 0, 0x81BA} /* East Asian ideograph */, - {0, 0, 0x81C3} /* East Asian ideograph */, - {0, 0, 0x81C0} /* East Asian ideograph */, - {0, 0, 0x81C2} /* East Asian ideograph */, - {0, 0, 0x81BF} /* East Asian ideograph */, - {0, 0, 0x81BD} /* East Asian ideograph */, - {0, 0, 0x81C9} /* East Asian ideograph */, - {0, 0, 0x81BE} /* East Asian ideograph */, - {0, 0, 0x81CD} /* East Asian ideograph */, - {0, 0, 0x81CF} /* East Asian ideograph */, - {0, 0, 0x81D8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page38 = { - 0, marc8_31page38_dir -}; -/* PAGE 37 */ -struct yaz_iconv_trie_dir marc8_31page37_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x7E8C} /* East Asian ideograph */, - {0, 0, 0x7E93} /* East Asian ideograph */, - {0, 0, 0x7E96} /* East Asian ideograph */, - {0, 0, 0x7E9C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7F38} /* East Asian ideograph */, - {0, 0, 0x7F3A} /* East Asian ideograph */, - {0, 0, 0x7F3D} /* East Asian ideograph */, - {0, 0, 0x7F44} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7F50} /* East Asian ideograph */, - {0, 0, 0x7F55} /* East Asian ideograph */, - {0, 0, 0x7F54} /* East Asian ideograph */, - {0, 0, 0x7F5F} /* East Asian ideograph */, - {0, 0, 0x7F72} /* East Asian ideograph */, - {0, 0, 0x7F6E} /* East Asian ideograph */, - {0, 0, 0x7F69} /* East Asian ideograph */, - {0, 0, 0x7F6A} /* East Asian ideograph */, - {0, 0, 0x7F70} /* East Asian ideograph */, - {0, 0, 0x7F75} /* East Asian ideograph */, - {0, 0, 0x7F77} /* East Asian ideograph */, - {0, 0, 0x7F79} /* East Asian ideograph */, - {0, 0, 0x7F85} /* East Asian ideograph */, - {0, 0, 0x7F88} /* East Asian ideograph */, - {0, 0, 0x7F8A} /* East Asian ideograph */, - {0, 0, 0x7F8C} /* East Asian ideograph */, - {0, 0, 0x7F8E} /* East Asian ideograph */, - {0, 0, 0x7F94} /* East Asian ideograph */, - {0, 0, 0x7F9E} /* East Asian ideograph */, - {0, 0, 0x7F9A} /* East Asian ideograph */, - {0, 0, 0x5584} /* East Asian ideograph */, - {0, 0, 0x7FA8} /* East Asian ideograph */, - {0, 0, 0x7FA4} /* East Asian ideograph */, - {0, 0, 0x7FA9} /* East Asian ideograph */, - {0, 0, 0x7FAF} /* East Asian ideograph */, - {0, 0, 0x7FB2} /* East Asian ideograph */, - {0, 0, 0x7FB6} /* East Asian ideograph */, - {0, 0, 0x7FB8} /* East Asian ideograph */, - {0, 0, 0x7FB9} /* East Asian ideograph */, - {0, 0, 0x7FBD} /* East Asian ideograph */, - {0, 0, 0x7FBF} /* East Asian ideograph */, - {0, 0, 0x7FC5} /* East Asian ideograph */, - {0, 0, 0x7FC1} /* East Asian ideograph */, - {0, 0, 0x7FCC} /* East Asian ideograph */, - {0, 0, 0x7FD2} /* East Asian ideograph */, - {0, 0, 0x7FCE} /* East Asian ideograph (variant of EACC 4B524E) */, - {0, 0, 0x7FD4} /* East Asian ideograph */, - {0, 0, 0x7FD5} /* East Asian ideograph */, - {0, 0, 0x7FE0} /* East Asian ideograph */, - {0, 0, 0x7FE1} /* East Asian ideograph */, - {0, 0, 0x7FDF} /* East Asian ideograph */, - {0, 0, 0x7FE9} /* East Asian ideograph */, - {0, 0, 0x7FF0} /* East Asian ideograph */, - {0, 0, 0x7FF3} /* East Asian ideograph */, - {0, 0, 0x7FFC} /* East Asian ideograph */, - {0, 0, 0x7FF9} /* East Asian ideograph */, - {0, 0, 0x7FFB} /* East Asian ideograph */, - {0, 0, 0x7FF1} /* East Asian ideograph */, - {0, 0, 0x8000} /* East Asian ideograph */, - {0, 0, 0x8001} /* East Asian ideograph */, - {0, 0, 0x8003} /* East Asian ideograph */, - {0, 0, 0x8006} /* East Asian ideograph */, - {0, 0, 0x8005} /* East Asian ideograph */, - {0, 0, 0x800C} /* East Asian ideograph */, - {0, 0, 0x8010} /* East Asian ideograph */, - {0, 0, 0x800D} /* East Asian ideograph */, - {0, 0, 0x8012} /* East Asian ideograph */, - {0, 0, 0x8015} /* East Asian ideograph */, - {0, 0, 0x8018} /* East Asian ideograph */, - {0, 0, 0x8019} /* East Asian ideograph */, - {0, 0, 0x8017} /* East Asian ideograph */, - {0, 0, 0x801C} /* East Asian ideograph */, - {0, 0, 0x8033} /* East Asian ideograph */, - {0, 0, 0x8036} /* East Asian ideograph */, - {0, 0, 0x803F} /* East Asian ideograph */, - {0, 0, 0x803D} /* East Asian ideograph */, - {0, 0, 0x804A} /* East Asian ideograph */, - {0, 0, 0x8046} /* East Asian ideograph */, - {0, 0, 0x8056} /* East Asian ideograph */, - {0, 0, 0x8058} /* East Asian ideograph */, - {0, 0, 0x805E} /* East Asian ideograph */, - {0, 0, 0x805A} /* East Asian ideograph */, - {0, 0, 0x8071} /* East Asian ideograph */, - {0, 0, 0x8072} /* East Asian ideograph */, - {0, 0, 0x8073} /* East Asian ideograph */, - {0, 0, 0x8070} /* East Asian ideograph */, - {0, 0, 0x806F} /* East Asian ideograph */, - {0, 0, 0x8077} /* East Asian ideograph */, - {0, 0, 0x8076} /* East Asian ideograph */, - {0, 0, 0x807E} /* East Asian ideograph */, - {0, 0, 0x807D} /* East Asian ideograph */, - {0, 0, 0x807F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x8084} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page37 = { - 0, marc8_31page37_dir -}; -/* PAGE 36 */ -struct yaz_iconv_trie_dir marc8_31page36_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x7D17} /* East Asian ideograph */, - {0, 0, 0x7D0D} /* East Asian ideograph (variant of EACC 455122) */, - {0, 0, 0x7D1A} /* East Asian ideograph */, - {0, 0, 0x7D19} /* East Asian ideograph */, - {0, 0, 0x7D1B} /* East Asian ideograph */, - {0, 0, 0x7D46} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7D3C} /* East Asian ideograph */, - {0, 0, 0x7D2E} /* East Asian ideograph */, - {0, 0, 0x7D39} /* East Asian ideograph */, - {0, 0, 0x7D44} /* East Asian ideograph */, - {0, 0, 0x7D30} /* East Asian ideograph */, - {0, 0, 0x7D33} /* East Asian ideograph */, - {0, 0, 0x7D2F} /* East Asian ideograph */, - {0, 0, 0x7D40} /* East Asian ideograph */, - {0, 0, 0x7D42} /* East Asian ideograph */, - {0, 0, 0x7D71} /* East Asian ideograph */, - {0, 0, 0x7D5E} /* East Asian ideograph */, - {0, 0, 0x7D68} /* East Asian ideograph */, - {0, 0, 0x7D50} /* East Asian ideograph */, - {0, 0, 0x7D2B} /* East Asian ideograph */, - {0, 0, 0x7D62} /* East Asian ideograph */, - {0, 0, 0x7D76} /* East Asian ideograph */, - {0, 0, 0x7D61} /* East Asian ideograph */, - {0, 0, 0x7D66} /* East Asian ideograph */, - {0, 0, 0x7D6E} /* East Asian ideograph */, - {0, 0, 0x7D72} /* East Asian ideograph */, - {0, 0, 0x7D93} /* East Asian ideograph */, - {0, 0, 0x7D91} /* East Asian ideograph */, - {0, 0, 0x7D79} /* East Asian ideograph */, - {0, 0, 0x7D8F} /* East Asian ideograph */, - {0, 0, 0x7D81} /* East Asian ideograph */, - {0, 0, 0x7D9C} /* East Asian ideograph */, - {0, 0, 0x7DBB} /* East Asian ideograph */, - {0, 0, 0x7DB0} /* East Asian ideograph */, - {0, 0, 0x7DCA} /* East Asian ideograph */, - {0, 0, 0x7DBE} /* East Asian ideograph */, - {0, 0, 0x7DB4} /* East Asian ideograph */, - {0, 0, 0x7DBA} /* East Asian ideograph */, - {0, 0, 0x7DB2} /* East Asian ideograph */, - {0, 0, 0x7DB1} /* East Asian ideograph */, - {0, 0, 0x7DBD} /* East Asian ideograph */, - {0, 0, 0x7DB5} /* East Asian ideograph */, - {0, 0, 0x7DA0} /* East Asian ideograph */, - {0, 0, 0x7DA2} /* East Asian ideograph */, - {0, 0, 0x7DAD} /* East Asian ideograph */, - {0, 0, 0x7DBF} /* East Asian ideograph */, - {0, 0, 0x7DB8} /* East Asian ideograph */, - {0, 0, 0x7DC7} /* East Asian ideograph */, - {0, 0, 0x7DE0} /* East Asian ideograph */, - {0, 0, 0x7DEF} /* East Asian ideograph */, - {0, 0, 0x7DF4} /* East Asian ideograph (variant of EACC 4B5154) */, - {0, 0, 0x7DD6} /* East Asian ideograph */, - {0, 0, 0x7DD8} /* East Asian ideograph */, - {0, 0, 0x7DEC} /* East Asian ideograph */, - {0, 0, 0x7DDD} /* East Asian ideograph */, - {0, 0, 0x7DE9} /* East Asian ideograph */, - {0, 0, 0x7DE3} /* East Asian ideograph */, - {0, 0, 0x7DE8} /* East Asian ideograph */, - {0, 0, 0x7DDA} /* East Asian ideograph */, - {0, 0, 0x7D9E} /* East Asian ideograph */, - {0, 0, 0x7DDE} /* East Asian ideograph */, - {0, 0, 0x7E11} /* East Asian ideograph */, - {0, 0, 0x7E0A} /* East Asian ideograph */, - {0, 0, 0x7E08} /* East Asian ideograph */, - {0, 0, 0x7E1B} /* East Asian ideograph */, - {0, 0, 0x7DFB} /* East Asian ideograph */, - {0, 0, 0x7E23} /* East Asian ideograph */, - {0, 0, 0x7E2E} /* East Asian ideograph */, - {0, 0, 0x7E3E} /* East Asian ideograph */, - {0, 0, 0x7E46} /* East Asian ideograph */, - {0, 0, 0x7E37} /* East Asian ideograph */, - {0, 0, 0x7E32} /* East Asian ideograph */, - {0, 0, 0x7E43} /* East Asian ideograph */, - {0, 0, 0x7E41} /* East Asian ideograph */, - {0, 0, 0x7E2B} /* East Asian ideograph */, - {0, 0, 0x7E3D} /* East Asian ideograph */, - {0, 0, 0x7E31} /* East Asian ideograph */, - {0, 0, 0x7E45} /* East Asian ideograph */, - {0, 0, 0x7E55} /* East Asian ideograph */, - {0, 0, 0x7E54} /* East Asian ideograph */, - {0, 0, 0x7E61} /* East Asian ideograph */, - {0, 0, 0x7E5E} /* East Asian ideograph */, - {0, 0, 0x7E5A} /* East Asian ideograph */, - {0, 0, 0x7E6B} /* East Asian ideograph */, - {0, 0, 0x7E69} /* East Asian ideograph */, - {0, 0, 0x7E6D} /* East Asian ideograph */, - {0, 0, 0x7E79} /* East Asian ideograph */, - {0, 0, 0x7E6A} /* East Asian ideograph */, - {0, 0, 0x8FAE} /* East Asian ideograph */, - {0, 0, 0x7E7D} /* East Asian ideograph */, - {0, 0, 0x7E82} /* East Asian ideograph */, - {0, 0, 0x7E7C} /* East Asian ideograph */, - {0, 0, 0x7E8F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page36 = { - 0, marc8_31page36_dir -}; -/* PAGE 35 */ -struct yaz_iconv_trie_dir marc8_31page35_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x7B4D} /* East Asian ideograph */, - {0, 0, 0x7B4F} /* East Asian ideograph */, - {0, 0, 0x7B54} /* East Asian ideograph */, - {0, 0, 0x7B60} /* East Asian ideograph */, - {0, 0, 0x7B77} /* East Asian ideograph */, - {0, 0, 0x7B75} /* East Asian ideograph */, - {0, 0, 0x7BA1} /* East Asian ideograph */, - {0, 0, 0x7B94} /* East Asian ideograph */, - {0, 0, 0x7B95} /* East Asian ideograph */, - {0, 0, 0x7B9D} /* East Asian ideograph */, - {0, 0, 0x7B8B} /* East Asian ideograph */, - {0, 0, 0x7B97} /* East Asian ideograph */, - {0, 0, 0x7B8F} /* East Asian ideograph */, - {0, 0, 0x7BC7} /* East Asian ideograph */, - {0, 0, 0x7BAD} /* East Asian ideograph */, - {0, 0, 0x7BC4} /* East Asian ideograph */, - {0, 0, 0x7BB1} /* East Asian ideograph */, - {0, 0, 0x7BB4} /* East Asian ideograph */, - {0, 0, 0x7BC0} /* East Asian ideograph */, - {0, 0, 0x7BC6} /* East Asian ideograph */, - {0, 0, 0x7BC1} /* East Asian ideograph */, - {0, 0, 0x7C11} /* East Asian ideograph */, - {0, 0, 0x7BD9} /* East Asian ideograph */, - {0, 0, 0x7BDB} /* East Asian ideograph */, - {0, 0, 0x7BE4} /* East Asian ideograph */, - {0, 0, 0x7BC9} /* East Asian ideograph */, - {0, 0, 0x7BE1} /* East Asian ideograph */, - {0, 0, 0x7BE9} /* East Asian ideograph */, - {0, 0, 0x7C07} /* East Asian ideograph */, - {0, 0, 0x7C0D} /* East Asian ideograph */, - {0, 0, 0x7BFE} /* East Asian ideograph */, - {0, 0, 0x7BF7} /* East Asian ideograph */, - {0, 0, 0x7C21} /* East Asian ideograph */, - {0, 0, 0x7C2B} /* East Asian ideograph */, - {0, 0, 0x7C2A} /* East Asian ideograph */, - {0, 0, 0x7C27} /* East Asian ideograph */, - {0, 0, 0x7C1E} /* East Asian ideograph */, - {0, 0, 0x7C23} /* East Asian ideograph */, - {0, 0, 0x7C3F} /* East Asian ideograph */, - {0, 0, 0x7C3E} /* East Asian ideograph */, - {0, 0, 0x7C38} /* East Asian ideograph */, - {0, 0, 0x7C37} /* East Asian ideograph */, - {0, 0, 0x7C3D} /* East Asian ideograph */, - {0, 0, 0x7C43} /* East Asian ideograph */, - {0, 0, 0x7C4C} /* East Asian ideograph */, - {0, 0, 0x7C4D} /* East Asian ideograph */, - {0, 0, 0x7C50} /* East Asian ideograph */, - {0, 0, 0x7C60} /* East Asian ideograph */, - {0, 0, 0x7C5F} /* East Asian ideograph */, - {0, 0, 0x7C64} /* East Asian ideograph */, - {0, 0, 0x7C6C} /* East Asian ideograph */, - {0, 0, 0x7C6E} /* East Asian ideograph */, - {0, 0, 0x7C72} /* East Asian ideograph */, - {0, 0, 0x7C73} /* East Asian ideograph */, - {0, 0, 0x7C89} /* East Asian ideograph */, - {0, 0, 0x7C92} /* East Asian ideograph */, - {0, 0, 0x7C97} /* East Asian ideograph */, - {0, 0, 0x7C9F} /* East Asian ideograph */, - {0, 0, 0x7CA5} /* East Asian ideograph */, - {0, 0, 0x7CA4} /* East Asian ideograph */, - {0, 0, 0x7CB1} /* East Asian ideograph */, - {0, 0, 0x7CB3} /* East Asian ideograph */, - {0, 0, 0x7CBD} /* East Asian ideograph */, - {0, 0, 0x7CB9} /* East Asian ideograph */, - {0, 0, 0x7CBE} /* East Asian ideograph (variant of EACC 4B5061) */, - {0, 0, 0x7CCA} /* East Asian ideograph */, - {0, 0, 0x7CD6} /* East Asian ideograph */, - {0, 0, 0x7CD5} /* East Asian ideograph */, - {0, 0, 0x7CE0} /* East Asian ideograph */, - {0, 0, 0x7CDC} /* East Asian ideograph */, - {0, 0, 0x7CDF} /* East Asian ideograph */, - {0, 0, 0x7CDE} /* East Asian ideograph */, - {0, 0, 0x7CE2} /* East Asian ideograph */, - {0, 0, 0x7CD9} /* East Asian ideograph */, - {0, 0, 0x7CE7} /* East Asian ideograph */, - {0, 0, 0x7CEF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7CFB} /* East Asian ideograph */, - {0, 0, 0x7CFE} /* East Asian ideograph */, - {0, 0, 0x7D00} /* East Asian ideograph */, - {0, 0, 0x7D02} /* East Asian ideograph */, - {0, 0, 0x7D05} /* East Asian ideograph */, - {0, 0, 0x7D09} /* East Asian ideograph */, - {0, 0, 0x7D04} /* East Asian ideograph */, - {0, 0, 0x7D07} /* East Asian ideograph */, - {0, 0, 0x7D21} /* East Asian ideograph */, - {0, 0, 0x7D0B} /* East Asian ideograph */, - {0, 0, 0x7D0A} /* East Asian ideograph */, - {0, 0, 0x7D20} /* East Asian ideograph */, - {0, 0, 0x7D1C} /* East Asian ideograph */, - {0, 0, 0x7D22} /* East Asian ideograph */, - {0, 0, 0x7D15} /* East Asian ideograph */, - {0, 0, 0x7D14} /* East Asian ideograph */, - {0, 0, 0x7D10} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page35 = { - 0, marc8_31page35_dir -}; -/* PAGE 34 */ -struct yaz_iconv_trie_dir marc8_31page34_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x79BD} /* East Asian ideograph */, - {0, 0, 0x842C} /* East Asian ideograph */, - {0, 0, 0x79BE} /* East Asian ideograph */, - {0, 0, 0x79C0} /* East Asian ideograph */, - {0, 0, 0x79C1} /* East Asian ideograph */, - {0, 0, 0x79BF} /* East Asian ideograph */, - {0, 0, 0x79C9} /* East Asian ideograph */, - {0, 0, 0x79D1} /* East Asian ideograph */, - {0, 0, 0x79CB} /* East Asian ideograph */, - {0, 0, 0x79D2} /* East Asian ideograph */, - {0, 0, 0x79E4} /* East Asian ideograph */, - {0, 0, 0x79E6} /* East Asian ideograph */, - {0, 0, 0x79E3} /* East Asian ideograph */, - {0, 0, 0x79DF} /* East Asian ideograph */, - {0, 0, 0x79E7} /* East Asian ideograph */, - {0, 0, 0x79E9} /* East Asian ideograph */, - {0, 0, 0x79FB} /* East Asian ideograph */, - {0, 0, 0x7A05} /* East Asian ideograph */, - {0, 0, 0x7A0D} /* East Asian ideograph */, - {0, 0, 0x7A08} /* East Asian ideograph */, - {0, 0, 0x7A0B} /* East Asian ideograph */, - {0, 0, 0x7A00} /* East Asian ideograph */, - {0, 0, 0x7A1F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7A20} /* East Asian ideograph */, - {0, 0, 0x7A1A} /* East Asian ideograph */, - {0, 0, 0x7A14} /* East Asian ideograph */, - {0, 0, 0x7A31} /* East Asian ideograph */, - {0, 0, 0x7A2E} /* East Asian ideograph */, - {0, 0, 0x7A3F} /* East Asian ideograph */, - {0, 0, 0x7A3C} /* East Asian ideograph */, - {0, 0, 0x7A40} /* East Asian ideograph */, - {0, 0, 0x7A3D} /* East Asian ideograph */, - {0, 0, 0x7A37} /* East Asian ideograph */, - {0, 0, 0x7A3B} /* East Asian ideograph */, - {0, 0, 0x7A4D} /* East Asian ideograph */, - {0, 0, 0x7A4E} /* East Asian ideograph */, - {0, 0, 0x7A4C} /* East Asian ideograph */, - {0, 0, 0x7A46} /* East Asian ideograph */, - {0, 0, 0x7A57} /* East Asian ideograph */, - {0, 0, 0x7A61} /* East Asian ideograph */, - {0, 0, 0x7A62} /* East Asian ideograph */, - {0, 0, 0x7A6B} /* East Asian ideograph */, - {0, 0, 0x7A69} /* East Asian ideograph */, - {0, 0, 0x7A74} /* East Asian ideograph */, - {0, 0, 0x7A76} /* East Asian ideograph */, - {0, 0, 0x7A79} /* East Asian ideograph */, - {0, 0, 0x7A7A} /* East Asian ideograph */, - {0, 0, 0x7A7F} /* East Asian ideograph */, - {0, 0, 0x7A81} /* East Asian ideograph */, - {0, 0, 0x7A84} /* East Asian ideograph */, - {0, 0, 0x7A88} /* East Asian ideograph */, - {0, 0, 0x7A92} /* East Asian ideograph */, - {0, 0, 0x7A95} /* East Asian ideograph */, - {0, 0, 0x7A98} /* East Asian ideograph */, - {0, 0, 0x7A96} /* East Asian ideograph */, - {0, 0, 0x7A97} /* East Asian ideograph */, - {0, 0, 0x7A9F} /* East Asian ideograph */, - {0, 0, 0x7AA0} /* East Asian ideograph */, - {0, 0, 0x7AAA} /* East Asian ideograph */, - {0, 0, 0x7AA9} /* East Asian ideograph */, - {0, 0, 0x7AAF} /* East Asian ideograph */, - {0, 0, 0x7AAE} /* East Asian ideograph */, - {0, 0, 0x7ABA} /* East Asian ideograph */, - {0, 0, 0x7AC5} /* East Asian ideograph */, - {0, 0, 0x7AC4} /* East Asian ideograph */, - {0, 0, 0x7AC7} /* East Asian ideograph */, - {0, 0, 0x7ACA} /* East Asian ideograph */, - {0, 0, 0x7ACB} /* East Asian ideograph */, - {0, 0, 0x7AD9} /* East Asian ideograph */, - {0, 0, 0x7AE5} /* East Asian ideograph */, - {0, 0, 0x7AE3} /* East Asian ideograph */, - {0, 0, 0x7AED} /* East Asian ideograph */, - {0, 0, 0x7AEF} /* East Asian ideograph */, - {0, 0, 0x7AF6} /* East Asian ideograph */, - {0, 0, 0x7AF9} /* East Asian ideograph */, - {0, 0, 0x7AFA} /* East Asian ideograph */, - {0, 0, 0x7AFF} /* East Asian ideograph */, - {0, 0, 0x7AFD} /* East Asian ideograph */, - {0, 0, 0x7B06} /* East Asian ideograph */, - {0, 0, 0x7B11} /* East Asian ideograph */, - {0, 0, 0x7B20} /* East Asian ideograph */, - {0, 0, 0x7B2C} /* East Asian ideograph */, - {0, 0, 0x7B28} /* East Asian ideograph */, - {0, 0, 0x7B1B} /* East Asian ideograph */, - {0, 0, 0x7B1E} /* East Asian ideograph */, - {0, 0, 0x7B19} /* East Asian ideograph */, - {0, 0, 0x7B26} /* East Asian ideograph */, - {0, 0, 0x7B46} /* East Asian ideograph */, - {0, 0, 0x7B49} /* East Asian ideograph */, - {0, 0, 0x7B50} /* East Asian ideograph */, - {0, 0, 0x7B56} /* East Asian ideograph */, - {0, 0, 0x7B52} /* East Asian ideograph */, - {0, 0, 0x7B4B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page34 = { - 0, marc8_31page34_dir -}; -/* PAGE 33 */ -struct yaz_iconv_trie_dir marc8_31page33_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x77E2} /* East Asian ideograph */, - {0, 0, 0x77E3} /* East Asian ideograph */, - {0, 0, 0x77E5} /* East Asian ideograph */, - {0, 0, 0x77E9} /* East Asian ideograph */, - {0, 0, 0x77ED} /* East Asian ideograph */, - {0, 0, 0x77EE} /* East Asian ideograph */, - {0, 0, 0x77EF} /* East Asian ideograph */, - {0, 0, 0x77F3} /* East Asian ideograph */, - {0, 0, 0x77FD} /* East Asian ideograph */, - {0, 0, 0x7802} /* East Asian ideograph */, - {0, 0, 0x780D} /* East Asian ideograph */, - {0, 0, 0x780C} /* East Asian ideograph */, - {0, 0, 0x65AB} /* East Asian ideograph */, - {0, 0, 0x7830} /* East Asian ideograph */, - {0, 0, 0x781D} /* East Asian ideograph */, - {0, 0, 0x7834} /* East Asian ideograph */, - {0, 0, 0x7838} /* East Asian ideograph */, - {0, 0, 0x7837} /* East Asian ideograph */, - {0, 0, 0x7827} /* East Asian ideograph */, - {0, 0, 0x782D} /* East Asian ideograph */, - {0, 0, 0x7825} /* East Asian ideograph */, - {0, 0, 0x786B} /* East Asian ideograph */, - {0, 0, 0x784F} /* East Asian ideograph */, - {0, 0, 0x7843} /* East Asian ideograph */, - {0, 0, 0x786C} /* East Asian ideograph */, - {0, 0, 0x785D} /* East Asian ideograph */, - {0, 0, 0x786F} /* East Asian ideograph */, - {0, 0, 0x78B0} /* East Asian ideograph */, - {0, 0, 0x7897} /* East Asian ideograph */, - {0, 0, 0x788E} /* East Asian ideograph */, - {0, 0, 0x7898} /* East Asian ideograph */, - {0, 0, 0x7889} /* East Asian ideograph */, - {0, 0, 0x7891} /* East Asian ideograph */, - {0, 0, 0x787C} /* East Asian ideograph */, - {0, 0, 0x788C} /* East Asian ideograph */, - {0, 0, 0x78A7} /* East Asian ideograph */, - {0, 0, 0x78A9} /* East Asian ideograph */, - {0, 0, 0x789F} /* East Asian ideograph */, - {0, 0, 0x78B3} /* East Asian ideograph */, - {0, 0, 0x78CB} /* East Asian ideograph */, - {0, 0, 0x78BA} /* East Asian ideograph */, - {0, 0, 0x78C1} /* East Asian ideograph */, - {0, 0, 0x78C5} /* East Asian ideograph */, - {0, 0, 0x78BC} /* East Asian ideograph */, - {0, 0, 0x78D5} /* East Asian ideograph */, - {0, 0, 0x78BE} /* East Asian ideograph */, - {0, 0, 0x78CA} /* East Asian ideograph */, - {0, 0, 0x78D0} /* East Asian ideograph */, - {0, 0, 0x78E8} /* East Asian ideograph */, - {0, 0, 0x78EC} /* East Asian ideograph */, - {0, 0, 0x78DA} /* East Asian ideograph */, - {0, 0, 0x78F7} /* East Asian ideograph */, - {0, 0, 0x78F4} /* East Asian ideograph */, - {0, 0, 0x78FA} /* East Asian ideograph (variant of EACC 4B4E56) */, - {0, 0, 0x7901} /* East Asian ideograph */, - {0, 0, 0x78EF} /* East Asian ideograph */, - {0, 0, 0x790E} /* East Asian ideograph */, - {0, 0, 0x7919} /* East Asian ideograph */, - {0, 0, 0x7926} /* East Asian ideograph */, - {0, 0, 0x792C} /* East Asian ideograph */, - {0, 0, 0x792A} /* East Asian ideograph */, - {0, 0, 0x792B} /* East Asian ideograph */, - {0, 0, 0x793A} /* East Asian ideograph */, - {0, 0, 0x7940} /* East Asian ideograph */, - {0, 0, 0x793E} /* East Asian ideograph */, - {0, 0, 0x7941} /* East Asian ideograph */, - {0, 0, 0x7945} /* East Asian ideograph */, - {0, 0, 0x7949} /* East Asian ideograph */, - {0, 0, 0x7948} /* East Asian ideograph */, - {0, 0, 0x7947} /* East Asian ideograph */, - {0, 0, 0x7955} /* East Asian ideograph */, - {0, 0, 0x7960} /* East Asian ideograph */, - {0, 0, 0x7950} /* East Asian ideograph */, - {0, 0, 0x7956} /* East Asian ideograph */, - {0, 0, 0x795E} /* East Asian ideograph */, - {0, 0, 0x795D} /* East Asian ideograph */, - {0, 0, 0x795F} /* East Asian ideograph */, - {0, 0, 0x795A} /* East Asian ideograph */, - {0, 0, 0x7957} /* East Asian ideograph */, - {0, 0, 0x7965} /* East Asian ideograph */, - {0, 0, 0x7968} /* East Asian ideograph */, - {0, 0, 0x796D} /* East Asian ideograph */, - {0, 0, 0x797A} /* East Asian ideograph */, - {0, 0, 0x7981} /* East Asian ideograph */, - {0, 0, 0x797F} /* East Asian ideograph */, - {0, 0, 0x798F} /* East Asian ideograph */, - {0, 0, 0x798D} /* East Asian ideograph */, - {0, 0, 0x798E} /* East Asian ideograph */, - {0, 0, 0x79A6} /* East Asian ideograph */, - {0, 0, 0x79A7} /* East Asian ideograph */, - {0, 0, 0x79AA} /* East Asian ideograph */, - {0, 0, 0x79AE} /* East Asian ideograph */, - {0, 0, 0x79B1} /* East Asian ideograph */, - {0, 0, 0x79B9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page33 = { - 0, marc8_31page33_dir -}; -/* PAGE 32 */ -struct yaz_iconv_trie_dir marc8_31page32_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x7682} /* East Asian ideograph */, - {0, 0, 0x7684} /* East Asian ideograph */, - {0, 0, 0x7687} /* East Asian ideograph */, - {0, 0, 0x7686} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x768E} /* East Asian ideograph */, - {0, 0, 0x7696} /* East Asian ideograph */, - {0, 0, 0x7693} /* East Asian ideograph */, - {0, 0, 0x769A} /* East Asian ideograph */, - {0, 0, 0x76AE} /* East Asian ideograph */, - {0, 0, 0x76B0} /* East Asian ideograph */, - {0, 0, 0x76B4} /* East Asian ideograph */, - {0, 0, 0x76BA} /* East Asian ideograph */, - {0, 0, 0x76BF} /* East Asian ideograph */, - {0, 0, 0x76C2} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x76C8} /* East Asian ideograph */, - {0, 0, 0x76C6} /* East Asian ideograph */, - {0, 0, 0x76CA} /* East Asian ideograph */, - {0, 0, 0x76CD} /* East Asian ideograph */, - {0, 0, 0x76CE} /* East Asian ideograph */, - {0, 0, 0x76D4} /* East Asian ideograph */, - {0, 0, 0x76D2} /* East Asian ideograph */, - {0, 0, 0x76DC} /* East Asian ideograph */, - {0, 0, 0x76DB} /* East Asian ideograph */, - {0, 0, 0x76DE} /* East Asian ideograph */, - {0, 0, 0x76DF} /* East Asian ideograph */, - {0, 0, 0x76E1} /* East Asian ideograph */, - {0, 0, 0x76E3} /* East Asian ideograph */, - {0, 0, 0x76E4} /* East Asian ideograph */, - {0, 0, 0x76E7} /* East Asian ideograph */, - {0, 0, 0x76E5} /* East Asian ideograph */, - {0, 0, 0x76EA} /* East Asian ideograph */, - {0, 0, 0x76EE} /* East Asian ideograph */, - {0, 0, 0x76EF} /* East Asian ideograph */, - {0, 0, 0x76F2} /* East Asian ideograph */, - {0, 0, 0x76F4} /* East Asian ideograph */, - {0, 0, 0x7709} /* East Asian ideograph */, - {0, 0, 0x76F9} /* East Asian ideograph */, - {0, 0, 0x76F8} /* East Asian ideograph */, - {0, 0, 0x7701} /* East Asian ideograph */, - {0, 0, 0x770B} /* East Asian ideograph */, - {0, 0, 0x76FC} /* East Asian ideograph */, - {0, 0, 0x76FE} /* East Asian ideograph */, - {0, 0, 0x7729} /* East Asian ideograph */, - {0, 0, 0x7720} /* East Asian ideograph */, - {0, 0, 0x771E} /* East Asian ideograph */, - {0, 0, 0x7728} /* East Asian ideograph */, - {0, 0, 0x7737} /* East Asian ideograph */, - {0, 0, 0x773C} /* East Asian ideograph */, - {0, 0, 0x7736} /* East Asian ideograph */, - {0, 0, 0x7738} /* East Asian ideograph */, - {0, 0, 0x773A} /* East Asian ideograph */, - {0, 0, 0x773E} /* East Asian ideograph */, - {0, 0, 0x774F} /* East Asian ideograph */, - {0, 0, 0x776B} /* East Asian ideograph */, - {0, 0, 0x775B} /* East Asian ideograph */, - {0, 0, 0x776A} /* East Asian ideograph */, - {0, 0, 0x7766} /* East Asian ideograph */, - {0, 0, 0x7779} /* East Asian ideograph */, - {0, 0, 0x775E} /* East Asian ideograph */, - {0, 0, 0x7763} /* East Asian ideograph */, - {0, 0, 0x775C} /* East Asian ideograph */, - {0, 0, 0x776C} /* East Asian ideograph */, - {0, 0, 0x7768} /* East Asian ideograph */, - {0, 0, 0x7765} /* East Asian ideograph */, - {0, 0, 0x777D} /* East Asian ideograph */, - {0, 0, 0x7771} /* East Asian ideograph */, - {0, 0, 0x777F} /* East Asian ideograph */, - {0, 0, 0x7784} /* East Asian ideograph */, - {0, 0, 0x7761} /* East Asian ideograph */, - {0, 0, 0x7787} /* East Asian ideograph */, - {0, 0, 0x778E} /* East Asian ideograph */, - {0, 0, 0x778C} /* East Asian ideograph */, - {0, 0, 0x7791} /* East Asian ideograph */, - {0, 0, 0x779F} /* East Asian ideograph */, - {0, 0, 0x779E} /* East Asian ideograph */, - {0, 0, 0x77A0} /* East Asian ideograph */, - {0, 0, 0x77A5} /* East Asian ideograph */, - {0, 0, 0x77B3} /* East Asian ideograph */, - {0, 0, 0x77AA} /* East Asian ideograph */, - {0, 0, 0x77B0} /* East Asian ideograph */, - {0, 0, 0x77AD} /* East Asian ideograph */, - {0, 0, 0x77AC} /* East Asian ideograph */, - {0, 0, 0x77A7} /* East Asian ideograph */, - {0, 0, 0x77BD} /* East Asian ideograph */, - {0, 0, 0x77BF} /* East Asian ideograph */, - {0, 0, 0x77BB} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x77D3} /* East Asian ideograph */, - {0, 0, 0x77D7} /* East Asian ideograph */, - {0, 0, 0x77DA} /* East Asian ideograph */, - {0, 0, 0x77DB} /* East Asian ideograph */, - {0, 0, 0x77DC} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page32 = { - 0, marc8_31page32_dir -}; -/* PAGE 31 */ -struct yaz_iconv_trie_dir marc8_31page31_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x752C} /* East Asian ideograph */, - {0, 0, 0x752B} /* East Asian ideograph */, - {0, 0, 0x752D} /* East Asian ideograph */, - {0, 0, 0x7530} /* East Asian ideograph */, - {0, 0, 0x7532} /* East Asian ideograph */, - {0, 0, 0x7531} /* East Asian ideograph */, - {0, 0, 0x7533} /* East Asian ideograph */, - {0, 0, 0x7537} /* East Asian ideograph */, - {0, 0, 0x7538} /* East Asian ideograph */, - {0, 0, 0x753D} /* East Asian ideograph */, - {0, 0, 0x754F} /* East Asian ideograph */, - {0, 0, 0x754C} /* East Asian ideograph */, - {0, 0, 0x755D} /* East Asian ideograph */, - {0, 0, 0x755C} /* East Asian ideograph */, - {0, 0, 0x7554} /* East Asian ideograph */, - {0, 0, 0x755A} /* East Asian ideograph */, - {0, 0, 0x7559} /* East Asian ideograph */, - {0, 0, 0x7566} /* East Asian ideograph */, - {0, 0, 0x7562} /* East Asian ideograph */, - {0, 0, 0x7570} /* East Asian ideograph */, - {0, 0, 0x7565} /* East Asian ideograph */, - {0, 0, 0x756B} /* East Asian ideograph */, - {0, 0, 0x756A} /* East Asian ideograph */, - {0, 0, 0x7578} /* East Asian ideograph */, - {0, 0, 0x7576} /* East Asian ideograph */, - {0, 0, 0x7586} /* East Asian ideograph */, - {0, 0, 0x7587} /* East Asian ideograph */, - {0, 0, 0x758A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x758F} /* East Asian ideograph */, - {0, 0, 0x7591} /* East Asian ideograph */, - {0, 0, 0x759D} /* East Asian ideograph */, - {0, 0, 0x7599} /* East Asian ideograph */, - {0, 0, 0x759A} /* East Asian ideograph */, - {0, 0, 0x75A4} /* East Asian ideograph */, - {0, 0, 0x75AB} /* East Asian ideograph */, - {0, 0, 0x75A5} /* East Asian ideograph */, - {0, 0, 0x75C7} /* East Asian ideograph */, - {0, 0, 0x75C5} /* East Asian ideograph */, - {0, 0, 0x75B3} /* East Asian ideograph */, - {0, 0, 0x75B2} /* East Asian ideograph */, - {0, 0, 0x75BD} /* East Asian ideograph */, - {0, 0, 0x75BE} /* East Asian ideograph */, - {0, 0, 0x75BC} /* East Asian ideograph */, - {0, 0, 0x75B9} /* East Asian ideograph */, - {0, 0, 0x75D5} /* East Asian ideograph */, - {0, 0, 0x75D4} /* East Asian ideograph */, - {0, 0, 0x75B5} /* East Asian ideograph */, - {0, 0, 0x75CA} /* East Asian ideograph (variant of EACC 4B4C51) */, - {0, 0, 0x75DB} /* East Asian ideograph */, - {0, 0, 0x75E3} /* East Asian ideograph */, - {0, 0, 0x75D8} /* East Asian ideograph */, - {0, 0, 0x75DE} /* East Asian ideograph */, - {0, 0, 0x75D9} /* East Asian ideograph */, - {0, 0, 0x75E2} /* East Asian ideograph */, - {0, 0, 0x7601} /* East Asian ideograph */, - {0, 0, 0x7600} /* East Asian ideograph */, - {0, 0, 0x75F0} /* East Asian ideograph */, - {0, 0, 0x75F2} /* East Asian ideograph */, - {0, 0, 0x75F1} /* East Asian ideograph */, - {0, 0, 0x75F4} /* East Asian ideograph */, - {0, 0, 0x75FF} /* East Asian ideograph */, - {0, 0, 0x75FA} /* East Asian ideograph */, - {0, 0, 0x760D} /* East Asian ideograph */, - {0, 0, 0x7627} /* East Asian ideograph */, - {0, 0, 0x7613} /* East Asian ideograph */, - {0, 0, 0x760B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7620} /* East Asian ideograph */, - {0, 0, 0x7629} /* East Asian ideograph */, - {0, 0, 0x761F} /* East Asian ideograph */, - {0, 0, 0x7624} /* East Asian ideograph */, - {0, 0, 0x7626} /* East Asian ideograph */, - {0, 0, 0x7621} /* East Asian ideograph */, - {0, 0, 0x7634} /* East Asian ideograph */, - {0, 0, 0x7638} /* East Asian ideograph */, - {0, 0, 0x7646} /* East Asian ideograph */, - {0, 0, 0x7642} /* East Asian ideograph */, - {0, 0, 0x764C} /* East Asian ideograph */, - {0, 0, 0x7656} /* East Asian ideograph */, - {0, 0, 0x7658} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7662} /* East Asian ideograph */, - {0, 0, 0x7665} /* East Asian ideograph */, - {0, 0, 0x7669} /* East Asian ideograph */, - {0, 0, 0x766E} /* East Asian ideograph */, - {0, 0, 0x766C} /* East Asian ideograph */, - {0, 0, 0x7671} /* East Asian ideograph */, - {0, 0, 0x7672} /* East Asian ideograph (variant of EACC 4B4C79) */, - {0, 0, 0x7678} /* East Asian ideograph */, - {0, 0, 0x767C} /* East Asian ideograph */, - {0, 0, 0x767B} /* East Asian ideograph */, - {0, 0, 0x767D} /* East Asian ideograph */, - {0, 0, 0x767E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page31 = { - 0, marc8_31page31_dir -}; -/* PAGE 30 */ -struct yaz_iconv_trie_dir marc8_31page30_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x733F} /* East Asian ideograph */, - {0, 0, 0x733E} /* East Asian ideograph */, - {0, 0, 0x7345} /* East Asian ideograph */, - {0, 0, 0x7350} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7357} /* East Asian ideograph */, - {0, 0, 0x7368} /* East Asian ideograph */, - {0, 0, 0x7370} /* East Asian ideograph */, - {0, 0, 0x7372} /* East Asian ideograph */, - {0, 0, 0x7377} /* East Asian ideograph */, - {0, 0, 0x7378} /* East Asian ideograph */, - {0, 0, 0x7375} /* East Asian ideograph */, - {0, 0, 0x737A} /* East Asian ideograph */, - {0, 0, 0x737B} /* East Asian ideograph */, - {0, 0, 0x7380} /* East Asian ideograph */, - {0, 0, 0x7384} /* East Asian ideograph */, - {0, 0, 0x7387} /* East Asian ideograph */, - {0, 0, 0x7389} /* East Asian ideograph */, - {0, 0, 0x738B} /* East Asian ideograph */, - {0, 0, 0x7396} /* East Asian ideograph */, - {0, 0, 0x739F} /* East Asian ideograph */, - {0, 0, 0x73A8} /* East Asian ideograph */, - {0, 0, 0x73A9} /* East Asian ideograph */, - {0, 0, 0x73AB} /* East Asian ideograph */, - {0, 0, 0x73BB} /* East Asian ideograph */, - {0, 0, 0x73CA} /* East Asian ideograph */, - {0, 0, 0x73B7} /* East Asian ideograph */, - {0, 0, 0x73C0} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x73B2} /* East Asian ideograph */, - {0, 0, 0x73CD} /* East Asian ideograph */, - {0, 0, 0x73ED} /* East Asian ideograph */, - {0, 0, 0x73EE} /* East Asian ideograph */, - {0, 0, 0x73E0} /* East Asian ideograph */, - {0, 0, 0x7405} /* East Asian ideograph */, - {0, 0, 0x7409} /* East Asian ideograph */, - {0, 0, 0x7403} /* East Asian ideograph */, - {0, 0, 0x740A} /* East Asian ideograph */, - {0, 0, 0x73FE} /* East Asian ideograph */, - {0, 0, 0x7406} /* East Asian ideograph */, - {0, 0, 0x740D} /* East Asian ideograph */, - {0, 0, 0x743A} /* East Asian ideograph */, - {0, 0, 0x7435} /* East Asian ideograph */, - {0, 0, 0x7436} /* East Asian ideograph */, - {0, 0, 0x7434} /* East Asian ideograph */, - {0, 0, 0x742A} /* East Asian ideograph */, - {0, 0, 0x7433} /* East Asian ideograph */, - {0, 0, 0x7422} /* East Asian ideograph */, - {0, 0, 0x7425} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7455} /* East Asian ideograph */, - {0, 0, 0x745F} /* East Asian ideograph */, - {0, 0, 0x745A} /* East Asian ideograph */, - {0, 0, 0x7441} /* East Asian ideograph */, - {0, 0, 0x743F} /* East Asian ideograph */, - {0, 0, 0x745B} /* East Asian ideograph */, - {0, 0, 0x745E} /* East Asian ideograph */, - {0, 0, 0x745C} /* East Asian ideograph */, - {0, 0, 0x7459} /* East Asian ideograph */, - {0, 0, 0x7483} /* East Asian ideograph */, - {0, 0, 0x7469} /* East Asian ideograph */, - {0, 0, 0x746A} /* East Asian ideograph */, - {0, 0, 0x7463} /* East Asian ideograph */, - {0, 0, 0x7464} /* East Asian ideograph */, - {0, 0, 0x7470} /* East Asian ideograph */, - {0, 0, 0x748B} /* East Asian ideograph */, - {0, 0, 0x749C} /* East Asian ideograph (variant of EACC 4B4B63) */, - {0, 0, 0x74A3} /* East Asian ideograph */, - {0, 0, 0x74A7} /* East Asian ideograph */, - {0, 0, 0x74A9} /* East Asian ideograph */, - {0, 0, 0x74B0} /* East Asian ideograph */, - {0, 0, 0x74A6} /* East Asian ideograph */, - {0, 0, 0x74BD} /* East Asian ideograph */, - {0, 0, 0x74CA} /* East Asian ideograph */, - {0, 0, 0x74CF} /* East Asian ideograph */, - {0, 0, 0x74DC} /* East Asian ideograph */, - {0, 0, 0x74E0} /* East Asian ideograph */, - {0, 0, 0x74E2} /* East Asian ideograph */, - {0, 0, 0x74E3} /* East Asian ideograph */, - {0, 0, 0x74E6} /* East Asian ideograph */, - {0, 0, 0x74F6} /* East Asian ideograph */, - {0, 0, 0x74F7} /* East Asian ideograph */, - {0, 0, 0x7504} /* East Asian ideograph */, - {0, 0, 0x750C} /* East Asian ideograph */, - {0, 0, 0x7515} /* East Asian ideograph */, - {0, 0, 0x7518} /* East Asian ideograph */, - {0, 0, 0x751A} /* East Asian ideograph */, - {0, 0, 0x751C} /* East Asian ideograph */, - {0, 0, 0x751F} /* East Asian ideograph */, - {0, 0, 0x7522} /* East Asian ideograph */, - {0, 0, 0x7526} /* East Asian ideograph */, - {0, 0, 0x7525} /* East Asian ideograph */, - {0, 0, 0x7528} /* East Asian ideograph */, - {0, 0, 0x7529} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page30 = { - 0, marc8_31page30_dir -}; -/* PAGE 29 */ -struct yaz_iconv_trie_dir marc8_31page29_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x71BE} /* East Asian ideograph */, - {0, 0, 0x71C9} /* East Asian ideograph */, - {0, 0, 0x71D0} /* East Asian ideograph */, - {0, 0, 0x71C8} /* East Asian ideograph */, - {0, 0, 0x71DC} /* East Asian ideograph */, - {0, 0, 0x71D2} /* East Asian ideograph */, - {0, 0, 0x71B9} /* East Asian ideograph */, - {0, 0, 0x71D5} /* East Asian ideograph */, - {0, 0, 0x71CE} /* East Asian ideograph */, - {0, 0, 0x71C3} /* East Asian ideograph */, - {0, 0, 0x71C4} /* East Asian ideograph */, - {0, 0, 0x71EE} /* East Asian ideograph */, - {0, 0, 0x71E7} /* East Asian ideograph */, - {0, 0, 0x71DF} /* East Asian ideograph */, - {0, 0, 0x71E5} /* East Asian ideograph */, - {0, 0, 0x71ED} /* East Asian ideograph */, - {0, 0, 0x71E6} /* East Asian ideograph */, - {0, 0, 0x71EC} /* East Asian ideograph */, - {0, 0, 0x71F4} /* East Asian ideograph */, - {0, 0, 0x71FB} /* East Asian ideograph */, - {0, 0, 0x7206} /* East Asian ideograph */, - {0, 0, 0x720D} /* East Asian ideograph */, - {0, 0, 0x7210} /* East Asian ideograph */, - {0, 0, 0x721B} /* East Asian ideograph */, - {0, 0, 0x7228} /* East Asian ideograph */, - {0, 0, 0x722A} /* East Asian ideograph */, - {0, 0, 0x722D} /* East Asian ideograph */, - {0, 0, 0x722C} /* East Asian ideograph */, - {0, 0, 0x7230} /* East Asian ideograph */, - {0, 0, 0x7235} /* East Asian ideograph (variant of EACC 4B4A3E) */, - {0, 0, 0x7236} /* East Asian ideograph */, - {0, 0, 0x7238} /* East Asian ideograph */, - {0, 0, 0x7239} /* East Asian ideograph */, - {0, 0, 0x723A} /* East Asian ideograph */, - {0, 0, 0x723B} /* East Asian ideograph */, - {0, 0, 0x723D} /* East Asian ideograph */, - {0, 0, 0x723E} /* East Asian ideograph */, - {0, 0, 0x7246} /* East Asian ideograph */, - {0, 0, 0x7247} /* East Asian ideograph */, - {0, 0, 0x7248} /* East Asian ideograph */, - {0, 0, 0x724C} /* East Asian ideograph */, - {0, 0, 0x7252} /* East Asian ideograph */, - {0, 0, 0x7256} /* East Asian ideograph */, - {0, 0, 0x7258} /* East Asian ideograph */, - {0, 0, 0x7259} /* East Asian ideograph */, - {0, 0, 0x725B} /* East Asian ideograph */, - {0, 0, 0x725F} /* East Asian ideograph */, - {0, 0, 0x725D} /* East Asian ideograph */, - {0, 0, 0x7262} /* East Asian ideograph */, - {0, 0, 0x7261} /* East Asian ideograph */, - {0, 0, 0x7260} /* East Asian ideograph */, - {0, 0, 0x7267} /* East Asian ideograph */, - {0, 0, 0x7269} /* East Asian ideograph */, - {0, 0, 0x726F} /* East Asian ideograph */, - {0, 0, 0x7272} /* East Asian ideograph */, - {0, 0, 0x7274} /* East Asian ideograph */, - {0, 0, 0x7279} /* East Asian ideograph */, - {0, 0, 0x727D} /* East Asian ideograph */, - {0, 0, 0x7281} /* East Asian ideograph */, - {0, 0, 0x7280} /* East Asian ideograph */, - {0, 0, 0x7284} /* East Asian ideograph */, - {0, 0, 0x7296} /* East Asian ideograph */, - {0, 0, 0x7292} /* East Asian ideograph */, - {0, 0, 0x729B} /* East Asian ideograph */, - {0, 0, 0x72A2} /* East Asian ideograph */, - {0, 0, 0x72A7} /* East Asian ideograph */, - {0, 0, 0x72AC} /* East Asian ideograph */, - {0, 0, 0x72AF} /* East Asian ideograph */, - {0, 0, 0x72C4} /* East Asian ideograph */, - {0, 0, 0x72C2} /* East Asian ideograph */, - {0, 0, 0x72D9} /* East Asian ideograph */, - {0, 0, 0x72C0} /* East Asian ideograph */, - {0, 0, 0x72CE} /* East Asian ideograph */, - {0, 0, 0x72D7} /* East Asian ideograph */, - {0, 0, 0x72D0} /* East Asian ideograph */, - {0, 0, 0x72E1} /* East Asian ideograph */, - {0, 0, 0x72E9} /* East Asian ideograph */, - {0, 0, 0x72E0} /* East Asian ideograph */, - {0, 0, 0x72FC} /* East Asian ideograph */, - {0, 0, 0x72F9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x72FD} /* East Asian ideograph */, - {0, 0, 0x72F7} /* East Asian ideograph */, - {0, 0, 0x731C} /* East Asian ideograph */, - {0, 0, 0x731B} /* East Asian ideograph */, - {0, 0, 0x7313} /* East Asian ideograph */, - {0, 0, 0x7316} /* East Asian ideograph */, - {0, 0, 0x7319} /* East Asian ideograph */, - {0, 0, 0x7336} /* East Asian ideograph */, - {0, 0, 0x7337} /* East Asian ideograph */, - {0, 0, 0x7329} /* East Asian ideograph */, - {0, 0, 0x7325} /* East Asian ideograph */, - {0, 0, 0x7334} /* East Asian ideograph */, - {0, 0, 0x7344} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page29 = { - 0, marc8_31page29_dir -}; -/* PAGE 28 */ -struct yaz_iconv_trie_dir marc8_31page28_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6FA4} /* East Asian ideograph */, - {0, 0, 0x6FC1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6FC0} /* East Asian ideograph */, - {0, 0, 0x6FB3} /* East Asian ideograph */, - {0, 0, 0x6FDF} /* East Asian ideograph */, - {0, 0, 0x6FD8} /* East Asian ideograph */, - {0, 0, 0x6FF1} /* East Asian ideograph */, - {0, 0, 0x6FE0} /* East Asian ideograph */, - {0, 0, 0x6FEF} /* East Asian ideograph */, - {0, 0, 0x6FEB} /* East Asian ideograph (variant of EACC 4B492B) */, - {0, 0, 0x6FE1} /* East Asian ideograph */, - {0, 0, 0x6FE4} /* East Asian ideograph */, - {0, 0, 0x6F80} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x700B} /* East Asian ideograph */, - {0, 0, 0x7009} /* East Asian ideograph */, - {0, 0, 0x7006} /* East Asian ideograph */, - {0, 0, 0x6FFA} /* East Asian ideograph */, - {0, 0, 0x7011} /* East Asian ideograph */, - {0, 0, 0x6FFE} /* East Asian ideograph */, - {0, 0, 0x700F} /* East Asian ideograph */, - {0, 0, 0x701B} /* East Asian ideograph */, - {0, 0, 0x701A} /* East Asian ideograph */, - {0, 0, 0x7028} /* East Asian ideograph */, - {0, 0, 0x701D} /* East Asian ideograph */, - {0, 0, 0x7015} /* East Asian ideograph */, - {0, 0, 0x701F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x703E} /* East Asian ideograph */, - {0, 0, 0x704C} /* East Asian ideograph */, - {0, 0, 0x7051} /* East Asian ideograph */, - {0, 0, 0x7058} /* East Asian ideograph */, - {0, 0, 0x7063} /* East Asian ideograph */, - {0, 0, 0x7064} /* East Asian ideograph */, - {0, 0, 0x706B} /* East Asian ideograph */, - {0, 0, 0x7070} /* East Asian ideograph */, - {0, 0, 0x7076} /* East Asian ideograph */, - {0, 0, 0x707C} /* East Asian ideograph */, - {0, 0, 0x7078} /* East Asian ideograph */, - {0, 0, 0x707D} /* East Asian ideograph */, - {0, 0, 0x7095} /* East Asian ideograph */, - {0, 0, 0x708E} /* East Asian ideograph */, - {0, 0, 0x7092} /* East Asian ideograph */, - {0, 0, 0x7099} /* East Asian ideograph */, - {0, 0, 0x708A} /* East Asian ideograph */, - {0, 0, 0x70AB} /* East Asian ideograph */, - {0, 0, 0x70BA} /* East Asian ideograph */, - {0, 0, 0x70AC} /* East Asian ideograph */, - {0, 0, 0x70B3} /* East Asian ideograph */, - {0, 0, 0x70AF} /* East Asian ideograph */, - {0, 0, 0x70AD} /* East Asian ideograph */, - {0, 0, 0x70AE} /* East Asian ideograph */, - {0, 0, 0x70B8} /* East Asian ideograph */, - {0, 0, 0x70CA} /* East Asian ideograph */, - {0, 0, 0x70E4} /* East Asian ideograph */, - {0, 0, 0x70D8} /* East Asian ideograph */, - {0, 0, 0x70C8} /* East Asian ideograph */, - {0, 0, 0x70D9} /* East Asian ideograph */, - {0, 0, 0x70CF} /* East Asian ideograph */, - {0, 0, 0x70F9} /* East Asian ideograph */, - {0, 0, 0x7109} /* East Asian ideograph */, - {0, 0, 0x710A} /* East Asian ideograph */, - {0, 0, 0x70FD} /* East Asian ideograph */, - {0, 0, 0x7119} /* East Asian ideograph */, - {0, 0, 0x716E} /* East Asian ideograph */, - {0, 0, 0x711A} /* East Asian ideograph */, - {0, 0, 0x7136} /* East Asian ideograph */, - {0, 0, 0x7121} /* East Asian ideograph */, - {0, 0, 0x7130} /* East Asian ideograph */, - {0, 0, 0x7126} /* East Asian ideograph */, - {0, 0, 0x714E} /* East Asian ideograph */, - {0, 0, 0x7149} /* East Asian ideograph */, - {0, 0, 0x7159} /* East Asian ideograph */, - {0, 0, 0x7164} /* East Asian ideograph */, - {0, 0, 0x7169} /* East Asian ideograph */, - {0, 0, 0x715C} /* East Asian ideograph */, - {0, 0, 0x716C} /* East Asian ideograph */, - {0, 0, 0x7166} /* East Asian ideograph */, - {0, 0, 0x7167} /* East Asian ideograph */, - {0, 0, 0x715E} /* East Asian ideograph */, - {0, 0, 0x7165} /* East Asian ideograph */, - {0, 0, 0x714C} /* East Asian ideograph */, - {0, 0, 0x717D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x7199} /* East Asian ideograph */, - {0, 0, 0x718A} /* East Asian ideograph */, - {0, 0, 0x7184} /* East Asian ideograph */, - {0, 0, 0x719F} /* East Asian ideograph */, - {0, 0, 0x71A8} /* East Asian ideograph */, - {0, 0, 0x71AC} /* East Asian ideograph */, - {0, 0, 0x71B1} /* East Asian ideograph */, - {0, 0, 0x71D9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page28 = { - 0, marc8_31page28_dir -}; -/* PAGE 27 */ -struct yaz_iconv_trie_dir marc8_31page27_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6E5B} /* East Asian ideograph */, - {0, 0, 0x6E1A} /* East Asian ideograph */, - {0, 0, 0x6E56} /* East Asian ideograph */, - {0, 0, 0x6E2F} /* East Asian ideograph */, - {0, 0, 0x6E6E} /* East Asian ideograph */, - {0, 0, 0x6E58} /* East Asian ideograph */, - {0, 0, 0x6E23} /* East Asian ideograph */, - {0, 0, 0x6E24} /* East Asian ideograph */, - {0, 0, 0x6E1B} /* East Asian ideograph */, - {0, 0, 0x6E25} /* East Asian ideograph */, - {0, 0, 0x6E4A} /* East Asian ideograph */, - {0, 0, 0x6E3A} /* East Asian ideograph */, - {0, 0, 0x6E6F} /* East Asian ideograph */, - {0, 0, 0x6E2D} /* East Asian ideograph */, - {0, 0, 0x6E34} /* East Asian ideograph */, - {0, 0, 0x6E2C} /* East Asian ideograph */, - {0, 0, 0x6E26} /* East Asian ideograph */, - {0, 0, 0x6E4D} /* East Asian ideograph */, - {0, 0, 0x6E3E} /* East Asian ideograph */, - {0, 0, 0x6E43} /* East Asian ideograph */, - {0, 0, 0x6E19} /* East Asian ideograph */, - {0, 0, 0x6E1D} /* East Asian ideograph */, - {0, 0, 0x6ED3} /* East Asian ideograph */, - {0, 0, 0x6EB6} /* East Asian ideograph */, - {0, 0, 0x6EC2} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6EAF} /* East Asian ideograph */, - {0, 0, 0x6EA2} /* East Asian ideograph */, - {0, 0, 0x6E9D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6EA5} /* East Asian ideograph */, - {0, 0, 0x6E98} /* East Asian ideograph */, - {0, 0, 0x6E90} /* East Asian ideograph */, - {0, 0, 0x6EC5} /* East Asian ideograph */, - {0, 0, 0x6EC7} /* East Asian ideograph */, - {0, 0, 0x6EBC} /* East Asian ideograph */, - {0, 0, 0x6EAB} /* East Asian ideograph */, - {0, 0, 0x6ED1} /* East Asian ideograph */, - {0, 0, 0x6ECB} /* East Asian ideograph */, - {0, 0, 0x6EC4} /* East Asian ideograph */, - {0, 0, 0x6ED4} /* East Asian ideograph */, - {0, 0, 0x6EAA} /* East Asian ideograph */, - {0, 0, 0x6E96} /* East Asian ideograph */, - {0, 0, 0x6E9C} /* East Asian ideograph */, - {0, 0, 0x6F33} /* East Asian ideograph */, - {0, 0, 0x6EF4} /* East Asian ideograph */, - {0, 0, 0x6EEC} /* East Asian ideograph */, - {0, 0, 0x6EFE} /* East Asian ideograph */, - {0, 0, 0x6F29} /* East Asian ideograph */, - {0, 0, 0x6F14} /* East Asian ideograph */, - {0, 0, 0x6F3E} /* East Asian ideograph */, - {0, 0, 0x6F2C} /* East Asian ideograph */, - {0, 0, 0x6F32} /* East Asian ideograph */, - {0, 0, 0x6F0F} /* East Asian ideograph */, - {0, 0, 0x6F22} /* East Asian ideograph (variant of EACC 4B4857) */, - {0, 0, 0x6EFF} /* East Asian ideograph */, - {0, 0, 0x6F23} /* East Asian ideograph */, - {0, 0, 0x6F38} /* East Asian ideograph */, - {0, 0, 0x6F15} /* East Asian ideograph */, - {0, 0, 0x6F31} /* East Asian ideograph */, - {0, 0, 0x6F02} /* East Asian ideograph */, - {0, 0, 0x6F06} /* East Asian ideograph */, - {0, 0, 0x6EEF} /* East Asian ideograph */, - {0, 0, 0x6F2B} /* East Asian ideograph */, - {0, 0, 0x6F2F} /* East Asian ideograph */, - {0, 0, 0x6F20} /* East Asian ideograph */, - {0, 0, 0x6F3F} /* East Asian ideograph */, - {0, 0, 0x6EF2} /* East Asian ideograph */, - {0, 0, 0x6F01} /* East Asian ideograph */, - {0, 0, 0x6F11} /* East Asian ideograph */, - {0, 0, 0x6ECC} /* East Asian ideograph */, - {0, 0, 0x6F2A} /* East Asian ideograph */, - {0, 0, 0x6F7C} /* East Asian ideograph */, - {0, 0, 0x6F88} /* East Asian ideograph */, - {0, 0, 0x6F84} /* East Asian ideograph */, - {0, 0, 0x6F51} /* East Asian ideograph */, - {0, 0, 0x6F64} /* East Asian ideograph */, - {0, 0, 0x6F97} /* East Asian ideograph */, - {0, 0, 0x6F54} /* East Asian ideograph */, - {0, 0, 0x6F7A} /* East Asian ideograph */, - {0, 0, 0x6F86} /* East Asian ideograph */, - {0, 0, 0x6F8E} /* East Asian ideograph */, - {0, 0, 0x6F6D} /* East Asian ideograph */, - {0, 0, 0x6F5B} /* East Asian ideograph */, - {0, 0, 0x6F6E} /* East Asian ideograph */, - {0, 0, 0x6F78} /* East Asian ideograph */, - {0, 0, 0x6F66} /* East Asian ideograph */, - {0, 0, 0x6F70} /* East Asian ideograph */, - {0, 0, 0x6F58} /* East Asian ideograph */, - {0, 0, 0x6FC2} /* East Asian ideograph */, - {0, 0, 0x6FB1} /* East Asian ideograph */, - {0, 0, 0x6FC3} /* East Asian ideograph */, - {0, 0, 0x6FA7} /* East Asian ideograph */, - {0, 0, 0x6FA1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page27 = { - 0, marc8_31page27_dir -}; -/* PAGE 26 */ -struct yaz_iconv_trie_dir marc8_31page26_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6CE3} /* East Asian ideograph */, - {0, 0, 0x6CF0} /* East Asian ideograph */, - {0, 0, 0x6CB8} /* East Asian ideograph */, - {0, 0, 0x6CD3} /* East Asian ideograph */, - {0, 0, 0x6CAB} /* East Asian ideograph */, - {0, 0, 0x6CE5} /* East Asian ideograph */, - {0, 0, 0x6CBD} /* East Asian ideograph */, - {0, 0, 0x6CB3} /* East Asian ideograph */, - {0, 0, 0x6CC4} /* East Asian ideograph */, - {0, 0, 0x6CD5} /* East Asian ideograph */, - {0, 0, 0x6CE2} /* East Asian ideograph */, - {0, 0, 0x6CBC} /* East Asian ideograph */, - {0, 0, 0x6CAE} /* East Asian ideograph */, - {0, 0, 0x6CB9} /* East Asian ideograph */, - {0, 0, 0x6CF1} /* East Asian ideograph */, - {0, 0, 0x6CC1} /* East Asian ideograph */, - {0, 0, 0x6CBE} /* East Asian ideograph */, - {0, 0, 0x6CC5} /* East Asian ideograph */, - {0, 0, 0x6CD7} /* East Asian ideograph */, - {0, 0, 0x6CBB} /* East Asian ideograph */, - {0, 0, 0x6CDB} /* East Asian ideograph */, - {0, 0, 0x6CE1} /* East Asian ideograph */, - {0, 0, 0x6CBF} /* East Asian ideograph */, - {0, 0, 0x6CCA} /* East Asian ideograph */, - {0, 0, 0x6CCC} /* East Asian ideograph */, - {0, 0, 0x6CC9} /* East Asian ideograph */, - {0, 0, 0x6D41} /* East Asian ideograph */, - {0, 0, 0x6D0B} /* East Asian ideograph */, - {0, 0, 0x6D32} /* East Asian ideograph */, - {0, 0, 0x6D25} /* East Asian ideograph */, - {0, 0, 0x6D31} /* East Asian ideograph */, - {0, 0, 0x6D2A} /* East Asian ideograph */, - {0, 0, 0x6D0C} /* East Asian ideograph */, - {0, 0, 0x6D1E} /* East Asian ideograph */, - {0, 0, 0x6D17} /* East Asian ideograph */, - {0, 0, 0x6D3B} /* East Asian ideograph */, - {0, 0, 0x6D1B} /* East Asian ideograph */, - {0, 0, 0x6D36} /* East Asian ideograph */, - {0, 0, 0x6D3D} /* East Asian ideograph */, - {0, 0, 0x6D3E} /* East Asian ideograph */, - {0, 0, 0x6D6A} /* East Asian ideograph */, - {0, 0, 0x6D95} /* East Asian ideograph */, - {0, 0, 0x6D78} /* East Asian ideograph */, - {0, 0, 0x6D66} /* East Asian ideograph */, - {0, 0, 0x6D59} /* East Asian ideograph */, - {0, 0, 0x6D87} /* East Asian ideograph */, - {0, 0, 0x6D88} /* East Asian ideograph */, - {0, 0, 0x6D6C} /* East Asian ideograph */, - {0, 0, 0x6D93} /* East Asian ideograph */, - {0, 0, 0x6D89} /* East Asian ideograph */, - {0, 0, 0x6D6E} /* East Asian ideograph */, - {0, 0, 0x6D74} /* East Asian ideograph */, - {0, 0, 0x6D5A} /* East Asian ideograph */, - {0, 0, 0x6D69} /* East Asian ideograph */, - {0, 0, 0x6D77} /* East Asian ideograph */, - {0, 0, 0x6DD9} /* East Asian ideograph */, - {0, 0, 0x6DDA} /* East Asian ideograph */, - {0, 0, 0x6DF3} /* East Asian ideograph */, - {0, 0, 0x6DBC} /* East Asian ideograph */, - {0, 0, 0x6DE4} /* East Asian ideograph */, - {0, 0, 0x6DB2} /* East Asian ideograph */, - {0, 0, 0x6DE1} /* East Asian ideograph */, - {0, 0, 0x6DD2} /* East Asian ideograph */, - {0, 0, 0x6DAE} /* East Asian ideograph */, - {0, 0, 0x6DF8} /* East Asian ideograph */, - {0, 0, 0x6DC7} /* East Asian ideograph */, - {0, 0, 0x6DCB} /* East Asian ideograph */, - {0, 0, 0x6DC5} /* East Asian ideograph */, - {0, 0, 0x6DDE} /* East Asian ideograph */, - {0, 0, 0x6DAF} /* East Asian ideograph */, - {0, 0, 0x6DB5} /* East Asian ideograph */, - {0, 0, 0x6DFA} /* East Asian ideograph */, - {0, 0, 0x6DF9} /* East Asian ideograph */, - {0, 0, 0x6DCC} /* East Asian ideograph */, - {0, 0, 0x6DF7} /* East Asian ideograph */, - {0, 0, 0x6DB8} /* East Asian ideograph */, - {0, 0, 0x6DD1} /* East Asian ideograph */, - {0, 0, 0x6DF1} /* East Asian ideograph */, - {0, 0, 0x6DE8} /* East Asian ideograph */, - {0, 0, 0x6DEB} /* East Asian ideograph */, - {0, 0, 0x6DD8} /* East Asian ideograph */, - {0, 0, 0x6DFB} /* East Asian ideograph */, - {0, 0, 0x6DEE} /* East Asian ideograph */, - {0, 0, 0x6DF5} /* East Asian ideograph */, - {0, 0, 0x6D8E} /* East Asian ideograph */, - {0, 0, 0x6DC6} /* East Asian ideograph */, - {0, 0, 0x6DEA} /* East Asian ideograph */, - {0, 0, 0x6DC4} /* East Asian ideograph */, - {0, 0, 0x6E54} /* East Asian ideograph */, - {0, 0, 0x6E21} /* East Asian ideograph */, - {0, 0, 0x6E38} /* East Asian ideograph */, - {0, 0, 0x6E32} /* East Asian ideograph */, - {0, 0, 0x6E67} /* East Asian ideograph */, - {0, 0, 0x6E20} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page26 = { - 0, marc8_31page26_dir -}; -/* PAGE 25 */ -struct yaz_iconv_trie_dir marc8_31page25_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6B61} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6B63} /* East Asian ideograph */, - {0, 0, 0x6B64} /* East Asian ideograph */, - {0, 0, 0x6B65} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6B66} /* East Asian ideograph */, - {0, 0, 0x6B6A} /* East Asian ideograph */, - {0, 0, 0x6B72} /* East Asian ideograph */, - {0, 0, 0x6B77} /* East Asian ideograph */, - {0, 0, 0x6B78} /* East Asian ideograph */, - {0, 0, 0x6B79} /* East Asian ideograph */, - {0, 0, 0x6B7B} /* East Asian ideograph */, - {0, 0, 0x6B7F} /* East Asian ideograph */, - {0, 0, 0x6B83} /* East Asian ideograph */, - {0, 0, 0x6B86} /* East Asian ideograph */, - {0, 0, 0x6B8A} /* East Asian ideograph */, - {0, 0, 0x6B89} /* East Asian ideograph */, - {0, 0, 0x6B98} /* East Asian ideograph */, - {0, 0, 0x6B96} /* East Asian ideograph */, - {0, 0, 0x6BA4} /* East Asian ideograph */, - {0, 0, 0x6BAE} /* East Asian ideograph */, - {0, 0, 0x6BAF} /* East Asian ideograph */, - {0, 0, 0x6BB2} /* East Asian ideograph */, - {0, 0, 0x6BB5} /* East Asian ideograph */, - {0, 0, 0x6BB7} /* East Asian ideograph */, - {0, 0, 0x6BBA} /* East Asian ideograph */, - {0, 0, 0x6BBC} /* East Asian ideograph */, - {0, 0, 0x6BC0} /* East Asian ideograph */, - {0, 0, 0x6BBF} /* East Asian ideograph */, - {0, 0, 0x6BC5} /* East Asian ideograph */, - {0, 0, 0x6BC6} /* East Asian ideograph */, - {0, 0, 0x6BCB} /* East Asian ideograph */, - {0, 0, 0x6BCD} /* East Asian ideograph */, - {0, 0, 0x6BCF} /* East Asian ideograph */, - {0, 0, 0x6BD2} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6BD4} /* East Asian ideograph */, - {0, 0, 0x6BD7} /* East Asian ideograph */, - {0, 0, 0x6BDB} /* East Asian ideograph */, - {0, 0, 0x6BEB} /* East Asian ideograph */, - {0, 0, 0x6BEF} /* East Asian ideograph */, - {0, 0, 0x6BFD} /* East Asian ideograph */, - {0, 0, 0x6C0F} /* East Asian ideograph */, - {0, 0, 0x6C11} /* East Asian ideograph */, - {0, 0, 0x6C10} /* East Asian ideograph */, - {0, 0, 0x6C13} /* East Asian ideograph */, - {0, 0, 0x6C16} /* East Asian ideograph */, - {0, 0, 0x6C1B} /* East Asian ideograph */, - {0, 0, 0x6C1F} /* East Asian ideograph */, - {0, 0, 0x6C27} /* East Asian ideograph */, - {0, 0, 0x6C26} /* East Asian ideograph */, - {0, 0, 0x6C23} /* East Asian ideograph */, - {0, 0, 0x6C28} /* East Asian ideograph */, - {0, 0, 0x6C24} /* East Asian ideograph */, - {0, 0, 0x6C2B} /* East Asian ideograph */, - {0, 0, 0x6C2E} /* East Asian ideograph */, - {0, 0, 0x6C33} /* East Asian ideograph */, - {0, 0, 0x6C2F} /* East Asian ideograph (variant of EACC 45465B) */, - {0, 0, 0x6C34} /* East Asian ideograph */, - {0, 0, 0x6C38} /* East Asian ideograph */, - {0, 0, 0x6C41} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6C40} /* East Asian ideograph */, - {0, 0, 0x6C42} /* East Asian ideograph */, - {0, 0, 0x6C5E} /* East Asian ideograph */, - {0, 0, 0x6C57} /* East Asian ideograph */, - {0, 0, 0x6C5F} /* East Asian ideograph */, - {0, 0, 0x6C59} /* East Asian ideograph */, - {0, 0, 0x6C60} /* East Asian ideograph */, - {0, 0, 0x6C55} /* East Asian ideograph */, - {0, 0, 0x6C50} /* East Asian ideograph */, - {0, 0, 0x6C5D} /* East Asian ideograph */, - {0, 0, 0x6C9B} /* East Asian ideograph */, - {0, 0, 0x6C81} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6C7A} /* East Asian ideograph */, - {0, 0, 0x6C6A} /* East Asian ideograph */, - {0, 0, 0x6C8C} /* East Asian ideograph */, - {0, 0, 0x6C90} /* East Asian ideograph */, - {0, 0, 0x6C72} /* East Asian ideograph */, - {0, 0, 0x6C70} /* East Asian ideograph */, - {0, 0, 0x6C68} /* East Asian ideograph */, - {0, 0, 0x6C96} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6C89} /* East Asian ideograph (variant of EACC 4B4676) */, - {0, 0, 0x6C99} /* East Asian ideograph */, - {0, 0, 0x6C7E} /* East Asian ideograph */, - {0, 0, 0x6C7D} /* East Asian ideograph */, - {0, 0, 0x6C92} /* East Asian ideograph */, - {0, 0, 0x6C83} /* East Asian ideograph */, - {0, 0, 0x6CB1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6CF3} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page25 = { - 0, marc8_31page25_dir -}; -/* PAGE 24 */ -struct yaz_iconv_trie_dir marc8_31page24_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x690E} /* East Asian ideograph */, - {0, 0, 0x68C9} /* East Asian ideograph */, - {0, 0, 0x6954} /* East Asian ideograph */, - {0, 0, 0x6930} /* East Asian ideograph */, - {0, 0, 0x6977} /* East Asian ideograph */, - {0, 0, 0x6975} /* East Asian ideograph */, - {0, 0, 0x695A} /* East Asian ideograph */, - {0, 0, 0x6960} /* East Asian ideograph */, - {0, 0, 0x696B} /* East Asian ideograph */, - {0, 0, 0x694A} /* East Asian ideograph */, - {0, 0, 0x6968} /* East Asian ideograph */, - {0, 0, 0x695E} /* East Asian ideograph */, - {0, 0, 0x696D} /* East Asian ideograph */, - {0, 0, 0x6979} /* East Asian ideograph */, - {0, 0, 0x6953} /* East Asian ideograph */, - {0, 0, 0x6986} /* East Asian ideograph */, - {0, 0, 0x69A8} /* East Asian ideograph */, - {0, 0, 0x6995} /* East Asian ideograph */, - {0, 0, 0x699C} /* East Asian ideograph */, - {0, 0, 0x6994} /* East Asian ideograph */, - {0, 0, 0x69C1} /* East Asian ideograph */, - {0, 0, 0x69B7} /* East Asian ideograph */, - {0, 0, 0x69AE} /* East Asian ideograph */, - {0, 0, 0x699B} /* East Asian ideograph */, - {0, 0, 0x69CB} /* East Asian ideograph */, - {0, 0, 0x69D3} /* East Asian ideograph */, - {0, 0, 0x69BB} /* East Asian ideograph */, - {0, 0, 0x69AB} /* East Asian ideograph */, - {0, 0, 0x69CC} /* East Asian ideograph */, - {0, 0, 0x69AD} /* East Asian ideograph */, - {0, 0, 0x69D0} /* East Asian ideograph */, - {0, 0, 0x69CD} /* East Asian ideograph */, - {0, 0, 0x69B4} /* East Asian ideograph */, - {0, 0, 0x6A1F} /* East Asian ideograph */, - {0, 0, 0x69E8} /* East Asian ideograph */, - {0, 0, 0x6A23} /* East Asian ideograph */, - {0, 0, 0x69EA} /* East Asian ideograph */, - {0, 0, 0x6A01} /* East Asian ideograph */, - {0, 0, 0x6A19} /* East Asian ideograph */, - {0, 0, 0x69FD} /* East Asian ideograph */, - {0, 0, 0x6A1E} /* East Asian ideograph */, - {0, 0, 0x6A13} /* East Asian ideograph */, - {0, 0, 0x6A21} /* East Asian ideograph */, - {0, 0, 0x69F3} /* East Asian ideograph */, - {0, 0, 0x6A0A} /* East Asian ideograph */, - {0, 0, 0x6A02} /* East Asian ideograph */, - {0, 0, 0x6A05} /* East Asian ideograph */, - {0, 0, 0x6A3D} /* East Asian ideograph */, - {0, 0, 0x6A58} /* East Asian ideograph */, - {0, 0, 0x6A59} /* East Asian ideograph */, - {0, 0, 0x6A62} /* East Asian ideograph */, - {0, 0, 0x6A44} /* East Asian ideograph */, - {0, 0, 0x6A39} /* East Asian ideograph */, - {0, 0, 0x6A6B} /* East Asian ideograph */, - {0, 0, 0x6A3A} /* East Asian ideograph */, - {0, 0, 0x6A38} /* East Asian ideograph */, - {0, 0, 0x6A47} /* East Asian ideograph */, - {0, 0, 0x6A61} /* East Asian ideograph */, - {0, 0, 0x6A4B} /* East Asian ideograph */, - {0, 0, 0x6A35} /* East Asian ideograph */, - {0, 0, 0x6A5F} /* East Asian ideograph */, - {0, 0, 0x6A80} /* East Asian ideograph */, - {0, 0, 0x6A94} /* East Asian ideograph */, - {0, 0, 0x6A84} /* East Asian ideograph */, - {0, 0, 0x6AA2} /* East Asian ideograph */, - {0, 0, 0x6A9C} /* East Asian ideograph */, - {0, 0, 0x6AB8} /* East Asian ideograph */, - {0, 0, 0x6AB3} /* East Asian ideograph */, - {0, 0, 0x6AC3} /* East Asian ideograph */, - {0, 0, 0x6ABB} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6AAC} /* East Asian ideograph */, - {0, 0, 0x6AE5} /* East Asian ideograph */, - {0, 0, 0x6ADA} /* East Asian ideograph */, - {0, 0, 0x6ADD} /* East Asian ideograph */, - {0, 0, 0x6ADB} /* East Asian ideograph */, - {0, 0, 0x6AD3} /* East Asian ideograph */, - {0, 0, 0x6B04} /* East Asian ideograph */, - {0, 0, 0x6AFB} /* East Asian ideograph */, - {0, 0, 0x6B0A} /* East Asian ideograph */, - {0, 0, 0x6B16} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6B21} /* East Asian ideograph */, - {0, 0, 0x6B23} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6B3E} /* East Asian ideograph */, - {0, 0, 0x6B3A} /* East Asian ideograph */, - {0, 0, 0x6B3D} /* East Asian ideograph */, - {0, 0, 0x6B47} /* East Asian ideograph */, - {0, 0, 0x6B49} /* East Asian ideograph */, - {0, 0, 0x6B4C} /* East Asian ideograph */, - {0, 0, 0x6B50} /* East Asian ideograph */, - {0, 0, 0x6B59} /* East Asian ideograph */, - {0, 0, 0x6B5F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page24 = { - 0, marc8_31page24_dir -}; -/* PAGE 23 */ -struct yaz_iconv_trie_dir marc8_31page23_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6787} /* East Asian ideograph */, - {0, 0, 0x6777} /* East Asian ideograph */, - {0, 0, 0x679D} /* East Asian ideograph */, - {0, 0, 0x6797} /* East Asian ideograph */, - {0, 0, 0x676F} /* East Asian ideograph */, - {0, 0, 0x6771} /* East Asian ideograph */, - {0, 0, 0x6773} /* East Asian ideograph */, - {0, 0, 0x679C} /* East Asian ideograph */, - {0, 0, 0x6775} /* East Asian ideograph */, - {0, 0, 0x679A} /* East Asian ideograph */, - {0, 0, 0x6790} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x677E} /* East Asian ideograph */, - {0, 0, 0x67D3} /* East Asian ideograph */, - {0, 0, 0x67F1} /* East Asian ideograph */, - {0, 0, 0x67FF} /* East Asian ideograph */, - {0, 0, 0x67D4} /* East Asian ideograph */, - {0, 0, 0x67C4} /* East Asian ideograph */, - {0, 0, 0x67AF} /* East Asian ideograph */, - {0, 0, 0x67D0} /* East Asian ideograph */, - {0, 0, 0x67D1} /* East Asian ideograph */, - {0, 0, 0x67EF} /* East Asian ideograph */, - {0, 0, 0x67E9} /* East Asian ideograph */, - {0, 0, 0x67B6} /* East Asian ideograph */, - {0, 0, 0x67EC} /* East Asian ideograph */, - {0, 0, 0x67E5} /* East Asian ideograph */, - {0, 0, 0x67FA} /* East Asian ideograph */, - {0, 0, 0x67DA} /* East Asian ideograph */, - {0, 0, 0x6805} /* East Asian ideograph */, - {0, 0, 0x67DE} /* East Asian ideograph */, - {0, 0, 0x67B8} /* East Asian ideograph */, - {0, 0, 0x67CF} /* East Asian ideograph */, - {0, 0, 0x67F3} /* East Asian ideograph */, - {0, 0, 0x6848} /* East Asian ideograph */, - {0, 0, 0x6821} /* East Asian ideograph */, - {0, 0, 0x6838} /* East Asian ideograph */, - {0, 0, 0x6853} /* East Asian ideograph */, - {0, 0, 0x6846} /* East Asian ideograph */, - {0, 0, 0x6842} /* East Asian ideograph */, - {0, 0, 0x6854} /* East Asian ideograph */, - {0, 0, 0x6817} /* East Asian ideograph */, - {0, 0, 0x683D} /* East Asian ideograph */, - {0, 0, 0x6851} /* East Asian ideograph */, - {0, 0, 0x6829} /* East Asian ideograph */, - {0, 0, 0x6850} /* East Asian ideograph */, - {0, 0, 0x6839} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x67F4} /* East Asian ideograph */, - {0, 0, 0x6843} /* East Asian ideograph */, - {0, 0, 0x6840} /* East Asian ideograph */, - {0, 0, 0x682A} /* East Asian ideograph */, - {0, 0, 0x6845} /* East Asian ideograph */, - {0, 0, 0x683C} /* East Asian ideograph */, - {0, 0, 0x6813} /* East Asian ideograph (variant of EACC 4B4456) */, - {0, 0, 0x6881} /* East Asian ideograph */, - {0, 0, 0x6893} /* East Asian ideograph */, - {0, 0, 0x68AF} /* East Asian ideograph */, - {0, 0, 0x6876} /* East Asian ideograph */, - {0, 0, 0x68B0} /* East Asian ideograph */, - {0, 0, 0x68A7} /* East Asian ideograph */, - {0, 0, 0x6897} /* East Asian ideograph */, - {0, 0, 0x68B5} /* East Asian ideograph */, - {0, 0, 0x68B3} /* East Asian ideograph */, - {0, 0, 0x68A2} /* East Asian ideograph */, - {0, 0, 0x687F} /* East Asian ideograph */, - {0, 0, 0x68B1} /* East Asian ideograph */, - {0, 0, 0x689D} /* East Asian ideograph */, - {0, 0, 0x68AD} /* East Asian ideograph */, - {0, 0, 0x6886} /* East Asian ideograph */, - {0, 0, 0x6885} /* East Asian ideograph */, - {0, 0, 0x68A8} /* East Asian ideograph */, - {0, 0, 0x689F} /* East Asian ideograph */, - {0, 0, 0x6894} /* East Asian ideograph */, - {0, 0, 0x6883} /* East Asian ideograph */, - {0, 0, 0x68D5} /* East Asian ideograph */, - {0, 0, 0x68FA} /* East Asian ideograph */, - {0, 0, 0x68C4} /* East Asian ideograph */, - {0, 0, 0x68F2} /* East Asian ideograph */, - {0, 0, 0x68D2} /* East Asian ideograph */, - {0, 0, 0x68E3} /* East Asian ideograph */, - {0, 0, 0x68DF} /* East Asian ideograph */, - {0, 0, 0x68CB} /* East Asian ideograph */, - {0, 0, 0x68EE} /* East Asian ideograph */, - {0, 0, 0x690D} /* East Asian ideograph */, - {0, 0, 0x6905} /* East Asian ideograph */, - {0, 0, 0x68E7} /* East Asian ideograph */, - {0, 0, 0x68E0} /* East Asian ideograph */, - {0, 0, 0x68F5} /* East Asian ideograph */, - {0, 0, 0x68CD} /* East Asian ideograph */, - {0, 0, 0x68D7} /* East Asian ideograph */, - {0, 0, 0x68D8} /* East Asian ideograph */, - {0, 0, 0x6912} /* East Asian ideograph */, - {0, 0, 0x68F9} /* East Asian ideograph */, - {0, 0, 0x68DA} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page23 = { - 0, marc8_31page23_dir -}; -/* PAGE 22 */ -struct yaz_iconv_trie_dir marc8_31page22_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x660E} /* East Asian ideograph */, - {0, 0, 0x6613} /* East Asian ideograph */, - {0, 0, 0x6602} /* East Asian ideograph */, - {0, 0, 0x660F} /* East Asian ideograph */, - {0, 0, 0x6625} /* East Asian ideograph */, - {0, 0, 0x6627} /* East Asian ideograph */, - {0, 0, 0x662F} /* East Asian ideograph */, - {0, 0, 0x662D} /* East Asian ideograph */, - {0, 0, 0x6620} /* East Asian ideograph */, - {0, 0, 0x661F} /* East Asian ideograph */, - {0, 0, 0x6628} /* East Asian ideograph */, - {0, 0, 0x664F} /* East Asian ideograph */, - {0, 0, 0x6642} /* East Asian ideograph */, - {0, 0, 0x6652} /* East Asian ideograph */, - {0, 0, 0x6649} /* East Asian ideograph */, - {0, 0, 0x6643} /* East Asian ideograph */, - {0, 0, 0x664C} /* East Asian ideograph */, - {0, 0, 0x665D} /* East Asian ideograph */, - {0, 0, 0x6664} /* East Asian ideograph */, - {0, 0, 0x6668} /* East Asian ideograph */, - {0, 0, 0x6666} /* East Asian ideograph */, - {0, 0, 0x665A} /* East Asian ideograph */, - {0, 0, 0x666F} /* East Asian ideograph */, - {0, 0, 0x666E} /* East Asian ideograph */, - {0, 0, 0x6674} /* East Asian ideograph (variant of EACC 4B4339) */, - {0, 0, 0x6691} /* East Asian ideograph */, - {0, 0, 0x6670} /* East Asian ideograph */, - {0, 0, 0x6676} /* East Asian ideograph */, - {0, 0, 0x667A} /* East Asian ideograph */, - {0, 0, 0x6697} /* East Asian ideograph */, - {0, 0, 0x6687} /* East Asian ideograph */, - {0, 0, 0x6689} /* East Asian ideograph */, - {0, 0, 0x6688} /* East Asian ideograph */, - {0, 0, 0x6696} /* East Asian ideograph */, - {0, 0, 0x66A2} /* East Asian ideograph */, - {0, 0, 0x66AB} /* East Asian ideograph */, - {0, 0, 0x66B4} /* East Asian ideograph */, - {0, 0, 0x66AE} /* East Asian ideograph */, - {0, 0, 0x66C1} /* East Asian ideograph */, - {0, 0, 0x66C9} /* East Asian ideograph */, - {0, 0, 0x66C6} /* East Asian ideograph */, - {0, 0, 0x66B9} /* East Asian ideograph */, - {0, 0, 0x66D6} /* East Asian ideograph */, - {0, 0, 0x66D9} /* East Asian ideograph */, - {0, 0, 0x66E0} /* East Asian ideograph */, - {0, 0, 0x66DD} /* East Asian ideograph */, - {0, 0, 0x66E6} /* East Asian ideograph */, - {0, 0, 0x66F0} /* East Asian ideograph */, - {0, 0, 0x66F2} /* East Asian ideograph */, - {0, 0, 0x66F3} /* East Asian ideograph */, - {0, 0, 0x66F4} /* East Asian ideograph */, - {0, 0, 0x66F7} /* East Asian ideograph */, - {0, 0, 0x66F8} /* East Asian ideograph */, - {0, 0, 0x66F9} /* East Asian ideograph */, - {0, 0, 0x52D7} /* East Asian ideograph */, - {0, 0, 0x66FE} /* East Asian ideograph */, - {0, 0, 0x66FF} /* East Asian ideograph */, - {0, 0, 0x6703} /* East Asian ideograph */, - {0, 0, 0x6708} /* East Asian ideograph */, - {0, 0, 0x6709} /* East Asian ideograph */, - {0, 0, 0x670D} /* East Asian ideograph */, - {0, 0, 0x670B} /* East Asian ideograph */, - {0, 0, 0x6717} /* East Asian ideograph */, - {0, 0, 0x6715} /* East Asian ideograph */, - {0, 0, 0x6714} /* East Asian ideograph */, - {0, 0, 0x671B} /* East Asian ideograph */, - {0, 0, 0x671D} /* East Asian ideograph */, - {0, 0, 0x671F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6727} /* East Asian ideograph */, - {0, 0, 0x6728} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x672C} /* East Asian ideograph */, - {0, 0, 0x672B} /* East Asian ideograph */, - {0, 0, 0x672A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x673D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6731} /* East Asian ideograph */, - {0, 0, 0x6735} /* East Asian ideograph */, - {0, 0, 0x675E} /* East Asian ideograph */, - {0, 0, 0x6751} /* East Asian ideograph */, - {0, 0, 0x674E} /* East Asian ideograph */, - {0, 0, 0x675C} /* East Asian ideograph */, - {0, 0, 0x6750} /* East Asian ideograph */, - {0, 0, 0x6756} /* East Asian ideograph */, - {0, 0, 0x675F} /* East Asian ideograph */, - {0, 0, 0x674F} /* East Asian ideograph */, - {0, 0, 0x6749} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x676D} /* East Asian ideograph */, - {0, 0, 0x678B} /* East Asian ideograph */, - {0, 0, 0x6795} /* East Asian ideograph */, - {0, 0, 0x6789} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page22 = { - 0, marc8_31page22_dir -}; -/* PAGE 21 */ -struct yaz_iconv_trie_dir marc8_31page21_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x64CE} /* East Asian ideograph */, - {0, 0, 0x64D4} /* East Asian ideograph */, - {0, 0, 0x64D2} /* East Asian ideograph */, - {0, 0, 0x64BF} /* East Asian ideograph */, - {0, 0, 0x64E0} /* East Asian ideograph */, - {0, 0, 0x64F0} /* East Asian ideograph */, - {0, 0, 0x64E6} /* East Asian ideograph */, - {0, 0, 0x64EC} /* East Asian ideograph */, - {0, 0, 0x64F1} /* East Asian ideograph */, - {0, 0, 0x64F4} /* East Asian ideograph */, - {0, 0, 0x64F2} /* East Asian ideograph */, - {0, 0, 0x6506} /* East Asian ideograph */, - {0, 0, 0x6500} /* East Asian ideograph */, - {0, 0, 0x64FE} /* East Asian ideograph */, - {0, 0, 0x64FB} /* East Asian ideograph */, - {0, 0, 0x64FA} /* East Asian ideograph */, - {0, 0, 0x650F} /* East Asian ideograph */, - {0, 0, 0x6518} /* East Asian ideograph */, - {0, 0, 0x6514} /* East Asian ideograph */, - {0, 0, 0x6519} /* East Asian ideograph */, - {0, 0, 0x651D} /* East Asian ideograph */, - {0, 0, 0x651C} /* East Asian ideograph */, - {0, 0, 0x6523} /* East Asian ideograph */, - {0, 0, 0x6524} /* East Asian ideograph */, - {0, 0, 0x652B} /* East Asian ideograph */, - {0, 0, 0x652A} /* East Asian ideograph */, - {0, 0, 0x652C} /* East Asian ideograph */, - {0, 0, 0x652F} /* East Asian ideograph */, - {0, 0, 0x6536} /* East Asian ideograph */, - {0, 0, 0x6539} /* East Asian ideograph */, - {0, 0, 0x653B} /* East Asian ideograph */, - {0, 0, 0x653E} /* East Asian ideograph */, - {0, 0, 0x653F} /* East Asian ideograph */, - {0, 0, 0x6545} /* East Asian ideograph */, - {0, 0, 0x6548} /* East Asian ideograph */, - {0, 0, 0x654E} /* East Asian ideograph */, - {0, 0, 0x6556} /* East Asian ideograph */, - {0, 0, 0x6551} /* East Asian ideograph */, - {0, 0, 0x6557} /* East Asian ideograph */, - {0, 0, 0x655D} /* East Asian ideograph */, - {0, 0, 0x6558} /* East Asian ideograph */, - {0, 0, 0x654F} /* East Asian ideograph */, - {0, 0, 0x6566} /* East Asian ideograph */, - {0, 0, 0x6562} /* East Asian ideograph */, - {0, 0, 0x6563} /* East Asian ideograph */, - {0, 0, 0x655E} /* East Asian ideograph */, - {0, 0, 0x5553} /* East Asian ideograph */, - {0, 0, 0x656C} /* East Asian ideograph */, - {0, 0, 0x6572} /* East Asian ideograph */, - {0, 0, 0x6575} /* East Asian ideograph */, - {0, 0, 0x6577} /* East Asian ideograph */, - {0, 0, 0x6578} /* East Asian ideograph */, - {0, 0, 0x6574} /* East Asian ideograph */, - {0, 0, 0x6582} /* East Asian ideograph */, - {0, 0, 0x6583} /* East Asian ideograph */, - {0, 0, 0x6587} /* East Asian ideograph */, - {0, 0, 0x6591} /* East Asian ideograph */, - {0, 0, 0x6590} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6599} /* East Asian ideograph */, - {0, 0, 0x659C} /* East Asian ideograph */, - {0, 0, 0x659F} /* East Asian ideograph */, - {0, 0, 0x65A1} /* East Asian ideograph */, - {0, 0, 0x65A4} /* East Asian ideograph */, - {0, 0, 0x65A5} /* East Asian ideograph */, - {0, 0, 0x65A7} /* East Asian ideograph */, - {0, 0, 0x65AC} /* East Asian ideograph */, - {0, 0, 0x65AF} /* East Asian ideograph */, - {0, 0, 0x65B0} /* East Asian ideograph */, - {0, 0, 0x65B7} /* East Asian ideograph */, - {0, 0, 0x65B9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x65BD} /* East Asian ideograph */, - {0, 0, 0x65C1} /* East Asian ideograph */, - {0, 0, 0x65C5} /* East Asian ideograph */, - {0, 0, 0x65CE} /* East Asian ideograph */, - {0, 0, 0x65CB} /* East Asian ideograph */, - {0, 0, 0x65CC} /* East Asian ideograph */, - {0, 0, 0x65CF} /* East Asian ideograph */, - {0, 0, 0x65D7} /* East Asian ideograph */, - {0, 0, 0x65D6} /* East Asian ideograph */, - {0, 0, 0x65E2} /* East Asian ideograph */, - {0, 0, 0x65E5} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x65E9} /* East Asian ideograph */, - {0, 0, 0x65EC} /* East Asian ideograph */, - {0, 0, 0x65ED} /* East Asian ideograph */, - {0, 0, 0x65E8} /* East Asian ideograph */, - {0, 0, 0x65F1} /* East Asian ideograph */, - {0, 0, 0x65FA} /* East Asian ideograph */, - {0, 0, 0x6606} /* East Asian ideograph */, - {0, 0, 0x6614} /* East Asian ideograph */, - {0, 0, 0x660C} /* East Asian ideograph */, - {0, 0, 0x6600} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page21 = { - 0, marc8_31page21_dir -}; -/* PAGE 20 */ -struct yaz_iconv_trie_dir marc8_31page20_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6367} /* East Asian ideograph */, - {0, 0, 0x6398} /* East Asian ideograph */, - {0, 0, 0x639B} /* East Asian ideograph */, - {0, 0, 0x63AA} /* East Asian ideograph */, - {0, 0, 0x6371} /* East Asian ideograph */, - {0, 0, 0x63A9} /* East Asian ideograph */, - {0, 0, 0x638C} /* East Asian ideograph */, - {0, 0, 0x6389} /* East Asian ideograph */, - {0, 0, 0x63A2} /* East Asian ideograph */, - {0, 0, 0x6399} /* East Asian ideograph */, - {0, 0, 0x63A1} /* East Asian ideograph */, - {0, 0, 0x6388} /* East Asian ideograph */, - {0, 0, 0x63AC} /* East Asian ideograph */, - {0, 0, 0x633D} /* East Asian ideograph */, - {0, 0, 0x6392} /* East Asian ideograph */, - {0, 0, 0x63A3} /* East Asian ideograph */, - {0, 0, 0x6376} /* East Asian ideograph */, - {0, 0, 0x638F} /* East Asian ideograph */, - {0, 0, 0x63A8} /* East Asian ideograph */, - {0, 0, 0x637B} /* East Asian ideograph */, - {0, 0, 0x6368} /* East Asian ideograph (variant of EACC 4B4135) */, - {0, 0, 0x6384} /* East Asian ideograph */, - {0, 0, 0x6380} /* East Asian ideograph */, - {0, 0, 0x63C6} /* East Asian ideograph */, - {0, 0, 0x63C9} /* East Asian ideograph */, - {0, 0, 0x63CD} /* East Asian ideograph */, - {0, 0, 0x63E1} /* East Asian ideograph */, - {0, 0, 0x63C0} /* East Asian ideograph */, - {0, 0, 0x63E9} /* East Asian ideograph */, - {0, 0, 0x63D0} /* East Asian ideograph */, - {0, 0, 0x63DA} /* East Asian ideograph */, - {0, 0, 0x63D6} /* East Asian ideograph */, - {0, 0, 0x63ED} /* East Asian ideograph */, - {0, 0, 0x63EE} /* East Asian ideograph */, - {0, 0, 0x63CF} /* East Asian ideograph */, - {0, 0, 0x63E3} /* East Asian ideograph */, - {0, 0, 0x63F4} /* East Asian ideograph */, - {0, 0, 0x63DB} /* East Asian ideograph (variant of EACC 454146) */, - {0, 0, 0x63D2} /* East Asian ideograph */, - {0, 0, 0x63EA} /* East Asian ideograph */, - {0, 0, 0x641E} /* East Asian ideograph */, - {0, 0, 0x642A} /* East Asian ideograph */, - {0, 0, 0x643E} /* East Asian ideograph */, - {0, 0, 0x6413} /* East Asian ideograph */, - {0, 0, 0x640F} /* East Asian ideograph */, - {0, 0, 0x6414} /* East Asian ideograph */, - {0, 0, 0x640D} /* East Asian ideograph */, - {0, 0, 0x642D} /* East Asian ideograph */, - {0, 0, 0x643D} /* East Asian ideograph */, - {0, 0, 0x6416} /* East Asian ideograph */, - {0, 0, 0x6417} /* East Asian ideograph */, - {0, 0, 0x641C} /* East Asian ideograph */, - {0, 0, 0x6436} /* East Asian ideograph */, - {0, 0, 0x642C} /* East Asian ideograph */, - {0, 0, 0x6458} /* East Asian ideograph */, - {0, 0, 0x6469} /* East Asian ideograph */, - {0, 0, 0x6454} /* East Asian ideograph */, - {0, 0, 0x6452} /* East Asian ideograph */, - {0, 0, 0x646F} /* East Asian ideograph */, - {0, 0, 0x6478} /* East Asian ideograph */, - {0, 0, 0x6479} /* East Asian ideograph */, - {0, 0, 0x647A} /* East Asian ideograph */, - {0, 0, 0x645F} /* East Asian ideograph */, - {0, 0, 0x6451} /* East Asian ideograph */, - {0, 0, 0x6467} /* East Asian ideograph */, - {0, 0, 0x649E} /* East Asian ideograph */, - {0, 0, 0x64A4} /* East Asian ideograph */, - {0, 0, 0x6487} /* East Asian ideograph */, - {0, 0, 0x6488} /* East Asian ideograph */, - {0, 0, 0x64A5} /* East Asian ideograph */, - {0, 0, 0x64B0} /* East Asian ideograph */, - {0, 0, 0x6493} /* East Asian ideograph */, - {0, 0, 0x6495} /* East Asian ideograph */, - {0, 0, 0x6492} /* East Asian ideograph */, - {0, 0, 0x64A9} /* East Asian ideograph */, - {0, 0, 0x6491} /* East Asian ideograph */, - {0, 0, 0x64AE} /* East Asian ideograph */, - {0, 0, 0x64B2} /* East Asian ideograph */, - {0, 0, 0x64AD} /* East Asian ideograph */, - {0, 0, 0x649A} /* East Asian ideograph */, - {0, 0, 0x64AB} /* East Asian ideograph */, - {0, 0, 0x64AC} /* East Asian ideograph */, - {0, 0, 0x64C5} /* East Asian ideograph */, - {0, 0, 0x64C1} /* East Asian ideograph */, - {0, 0, 0x64D8} /* East Asian ideograph */, - {0, 0, 0x64CA} /* East Asian ideograph */, - {0, 0, 0x64BB} /* East Asian ideograph */, - {0, 0, 0x64C2} /* East Asian ideograph */, - {0, 0, 0x64BC} /* East Asian ideograph */, - {0, 0, 0x64CB} /* East Asian ideograph */, - {0, 0, 0x64CD} /* East Asian ideograph */, - {0, 0, 0x64DA} /* East Asian ideograph */, - {0, 0, 0x64C4} /* East Asian ideograph */, - {0, 0, 0x64C7} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page20 = { - 0, marc8_31page20_dir -}; -/* PAGE 19 */ -struct yaz_iconv_trie_dir marc8_31page19_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6252} /* East Asian ideograph */, - {0, 0, 0x625B} /* East Asian ideograph */, - {0, 0, 0x6263} /* East Asian ideograph */, - {0, 0, 0x6258} /* East Asian ideograph */, - {0, 0, 0x6296} /* East Asian ideograph */, - {0, 0, 0x6297} /* East Asian ideograph */, - {0, 0, 0x6292} /* East Asian ideograph */, - {0, 0, 0x6276} /* East Asian ideograph */, - {0, 0, 0x6289} /* East Asian ideograph */, - {0, 0, 0x627F} /* East Asian ideograph */, - {0, 0, 0x6279} /* East Asian ideograph */, - {0, 0, 0x6280} /* East Asian ideograph */, - {0, 0, 0x628A} /* East Asian ideograph */, - {0, 0, 0x626D} /* East Asian ideograph */, - {0, 0, 0x627C} /* East Asian ideograph */, - {0, 0, 0x627E} /* East Asian ideograph */, - {0, 0, 0x626F} /* East Asian ideograph */, - {0, 0, 0x6284} /* East Asian ideograph */, - {0, 0, 0x6295} /* East Asian ideograph */, - {0, 0, 0x6291} /* East Asian ideograph */, - {0, 0, 0x6298} /* East Asian ideograph */, - {0, 0, 0x626E} /* East Asian ideograph */, - {0, 0, 0x6273} /* East Asian ideograph */, - {0, 0, 0x6293} /* East Asian ideograph */, - {0, 0, 0x62C9} /* East Asian ideograph */, - {0, 0, 0x62C4} /* East Asian ideograph */, - {0, 0, 0x62CC} /* East Asian ideograph */, - {0, 0, 0x62A8} /* East Asian ideograph */, - {0, 0, 0x62DC} /* East Asian ideograph */, - {0, 0, 0x62BF} /* East Asian ideograph */, - {0, 0, 0x62C2} /* East Asian ideograph */, - {0, 0, 0x62B9} /* East Asian ideograph */, - {0, 0, 0x62D2} /* East Asian ideograph */, - {0, 0, 0x62D3} /* East Asian ideograph */, - {0, 0, 0x62DB} /* East Asian ideograph */, - {0, 0, 0x62AB} /* East Asian ideograph */, - {0, 0, 0x62CB} /* East Asian ideograph */, - {0, 0, 0x62D4} /* East Asian ideograph */, - {0, 0, 0x62BD} /* East Asian ideograph */, - {0, 0, 0x62BC} /* East Asian ideograph */, - {0, 0, 0x62D0} /* East Asian ideograph (variant of EACC 4B4049) */, - {0, 0, 0x62C8} /* East Asian ideograph */, - {0, 0, 0x62D9} /* East Asian ideograph */, - {0, 0, 0x62DA} /* East Asian ideograph */, - {0, 0, 0x62AC} /* East Asian ideograph */, - {0, 0, 0x62C7} /* East Asian ideograph */, - {0, 0, 0x62B1} /* East Asian ideograph */, - {0, 0, 0x62D6} /* East Asian ideograph */, - {0, 0, 0x62D8} /* East Asian ideograph */, - {0, 0, 0x62CD} /* East Asian ideograph */, - {0, 0, 0x62B5} /* East Asian ideograph */, - {0, 0, 0x62CE} /* East Asian ideograph */, - {0, 0, 0x62D7} /* East Asian ideograph */, - {0, 0, 0x62C6} /* East Asian ideograph */, - {0, 0, 0x6309} /* East Asian ideograph */, - {0, 0, 0x6316} /* East Asian ideograph */, - {0, 0, 0x62FC} /* East Asian ideograph */, - {0, 0, 0x62F3} /* East Asian ideograph */, - {0, 0, 0x6308} /* East Asian ideograph */, - {0, 0, 0x62ED} /* East Asian ideograph */, - {0, 0, 0x6301} /* East Asian ideograph */, - {0, 0, 0x62EE} /* East Asian ideograph */, - {0, 0, 0x62EF} /* East Asian ideograph */, - {0, 0, 0x62F7} /* East Asian ideograph */, - {0, 0, 0x6307} /* East Asian ideograph */, - {0, 0, 0x62F1} /* East Asian ideograph */, - {0, 0, 0x62FD} /* East Asian ideograph */, - {0, 0, 0x6311} /* East Asian ideograph */, - {0, 0, 0x62EC} /* East Asian ideograph */, - {0, 0, 0x62F4} /* East Asian ideograph (variant of EACC 4B4066) */, - {0, 0, 0x62FF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6342} /* East Asian ideograph */, - {0, 0, 0x632A} /* East Asian ideograph */, - {0, 0, 0x6355} /* East Asian ideograph */, - {0, 0, 0x633E} /* East Asian ideograph */, - {0, 0, 0x632F} /* East Asian ideograph */, - {0, 0, 0x634E} /* East Asian ideograph */, - {0, 0, 0x634F} /* East Asian ideograph */, - {0, 0, 0x6350} /* East Asian ideograph */, - {0, 0, 0x6349} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x632B} /* East Asian ideograph */, - {0, 0, 0x6328} /* East Asian ideograph */, - {0, 0, 0x633A} /* East Asian ideograph */, - {0, 0, 0x63A5} /* East Asian ideograph */, - {0, 0, 0x6369} /* East Asian ideograph */, - {0, 0, 0x63A0} /* East Asian ideograph */, - {0, 0, 0x6396} /* East Asian ideograph */, - {0, 0, 0x63A7} /* East Asian ideograph */, - {0, 0, 0x6372} /* East Asian ideograph */, - {0, 0, 0x6377} /* East Asian ideograph */, - {0, 0, 0x6383} /* East Asian ideograph */, - {0, 0, 0x636B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page19 = { - 0, marc8_31page19_dir -}; -/* PAGE 18 */ -struct yaz_iconv_trie_dir marc8_31page18_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6148} /* East Asian ideograph */, - {0, 0, 0x6168} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x613C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x614C} /* East Asian ideograph */, - {0, 0, 0x614D} /* East Asian ideograph */, - {0, 0, 0x614B} /* East Asian ideograph */, - {0, 0, 0x613E} /* East Asian ideograph */, - {0, 0, 0x6127} /* East Asian ideograph */, - {0, 0, 0x6134} /* East Asian ideograph */, - {0, 0, 0x6147} /* East Asian ideograph */, - {0, 0, 0x6177} /* East Asian ideograph */, - {0, 0, 0x6176} /* East Asian ideograph */, - {0, 0, 0x6167} /* East Asian ideograph */, - {0, 0, 0x6170} /* East Asian ideograph */, - {0, 0, 0x615A} /* East Asian ideograph */, - {0, 0, 0x615D} /* East Asian ideograph */, - {0, 0, 0x6182} /* East Asian ideograph */, - {0, 0, 0x617C} /* East Asian ideograph */, - {0, 0, 0x6162} /* East Asian ideograph */, - {0, 0, 0x616E} /* East Asian ideograph */, - {0, 0, 0x6155} /* East Asian ideograph */, - {0, 0, 0x6158} /* East Asian ideograph */, - {0, 0, 0x6163} /* East Asian ideograph */, - {0, 0, 0x615F} /* East Asian ideograph */, - {0, 0, 0x616B} /* East Asian ideograph */, - {0, 0, 0x617E} /* East Asian ideograph */, - {0, 0, 0x61A7} /* East Asian ideograph */, - {0, 0, 0x61B2} /* East Asian ideograph */, - {0, 0, 0x6191} /* East Asian ideograph */, - {0, 0, 0x618E} /* East Asian ideograph */, - {0, 0, 0x61AB} /* East Asian ideograph */, - {0, 0, 0x61A4} /* East Asian ideograph */, - {0, 0, 0x61AC} /* East Asian ideograph */, - {0, 0, 0x619A} /* East Asian ideograph */, - {0, 0, 0x61A9} /* East Asian ideograph */, - {0, 0, 0x6194} /* East Asian ideograph */, - {0, 0, 0x618A} /* East Asian ideograph */, - {0, 0, 0x61B6} /* East Asian ideograph */, - {0, 0, 0x61CD} /* East Asian ideograph */, - {0, 0, 0x61C9} /* East Asian ideograph */, - {0, 0, 0x6190} /* East Asian ideograph */, - {0, 0, 0x61BE} /* East Asian ideograph */, - {0, 0, 0x61C2} /* East Asian ideograph */, - {0, 0, 0x61C7} /* East Asian ideograph */, - {0, 0, 0x61C8} /* East Asian ideograph */, - {0, 0, 0x61CA} /* East Asian ideograph */, - {0, 0, 0x61E3} /* East Asian ideograph */, - {0, 0, 0x61E6} /* East Asian ideograph */, - {0, 0, 0x61F2} /* East Asian ideograph (variant of EACC 4B3F53) */, - {0, 0, 0x61F7} /* East Asian ideograph */, - {0, 0, 0x61F6} /* East Asian ideograph */, - {0, 0, 0x61F8} /* East Asian ideograph */, - {0, 0, 0x61F5} /* East Asian ideograph */, - {0, 0, 0x61FA} /* East Asian ideograph */, - {0, 0, 0x61FE} /* East Asian ideograph */, - {0, 0, 0x61FF} /* East Asian ideograph */, - {0, 0, 0x61FC} /* East Asian ideograph */, - {0, 0, 0x6200} /* East Asian ideograph */, - {0, 0, 0x6208} /* East Asian ideograph */, - {0, 0, 0x620A} /* East Asian ideograph */, - {0, 0, 0x620E} /* East Asian ideograph */, - {0, 0, 0x620D} /* East Asian ideograph */, - {0, 0, 0x620C} /* East Asian ideograph */, - {0, 0, 0x6210} /* East Asian ideograph */, - {0, 0, 0x6212} /* East Asian ideograph */, - {0, 0, 0x6211} /* East Asian ideograph */, - {0, 0, 0x6216} /* East Asian ideograph */, - {0, 0, 0x6215} /* East Asian ideograph */, - {0, 0, 0x621B} /* East Asian ideograph */, - {0, 0, 0x621A} /* East Asian ideograph */, - {0, 0, 0x621F} /* East Asian ideograph */, - {0, 0, 0x6221} /* East Asian ideograph */, - {0, 0, 0x6222} /* East Asian ideograph */, - {0, 0, 0x622A} /* East Asian ideograph */, - {0, 0, 0x622E} /* East Asian ideograph */, - {0, 0, 0x6230} /* East Asian ideograph */, - {0, 0, 0x6232} /* East Asian ideograph */, - {0, 0, 0x6234} /* East Asian ideograph */, - {0, 0, 0x6233} /* East Asian ideograph */, - {0, 0, 0x6236} /* East Asian ideograph */, - {0, 0, 0x623F} /* East Asian ideograph */, - {0, 0, 0x623E} /* East Asian ideograph */, - {0, 0, 0x6240} /* East Asian ideograph */, - {0, 0, 0x6241} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x6248} /* East Asian ideograph */, - {0, 0, 0x6249} /* East Asian ideograph */, - {0, 0, 0x624B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x6253} /* East Asian ideograph */, - {0, 0, 0x6254} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page18 = { - 0, marc8_31page18_dir -}; -/* PAGE 17 */ -struct yaz_iconv_trie_dir marc8_31page17_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5FCD} /* East Asian ideograph */, - {0, 0, 0x5FEB} /* East Asian ideograph */, - {0, 0, 0x5FE0} /* East Asian ideograph */, - {0, 0, 0x5FF1} /* East Asian ideograph */, - {0, 0, 0x5FFD} /* East Asian ideograph */, - {0, 0, 0x5FDD} /* East Asian ideograph */, - {0, 0, 0x5FF5} /* East Asian ideograph */, - {0, 0, 0x5FFF} /* East Asian ideograph */, - {0, 0, 0x6014} /* East Asian ideograph */, - {0, 0, 0x6035} /* East Asian ideograph (variant of EACC 4B3E2A) */, - {0, 0, 0x602A} /* East Asian ideograph */, - {0, 0, 0x602F} /* East Asian ideograph */, - {0, 0, 0x6016} /* East Asian ideograph */, - {0, 0, 0x601D} /* East Asian ideograph */, - {0, 0, 0x600F} /* East Asian ideograph */, - {0, 0, 0x6021} /* East Asian ideograph */, - {0, 0, 0x6020} /* East Asian ideograph */, - {0, 0, 0x6028} /* East Asian ideograph */, - {0, 0, 0x6025} /* East Asian ideograph */, - {0, 0, 0x6027} /* East Asian ideograph */, - {0, 0, 0x600E} /* East Asian ideograph */, - {0, 0, 0x6015} /* East Asian ideograph */, - {0, 0, 0x6012} /* East Asian ideograph */, - {0, 0, 0x6059} /* East Asian ideograph */, - {0, 0, 0x6063} /* East Asian ideograph */, - {0, 0, 0x6068} /* East Asian ideograph */, - {0, 0, 0x6043} /* East Asian ideograph */, - {0, 0, 0x6065} /* East Asian ideograph */, - {0, 0, 0x6050} /* East Asian ideograph */, - {0, 0, 0x606D} /* East Asian ideograph */, - {0, 0, 0x6062} /* East Asian ideograph */, - {0, 0, 0x6046} /* East Asian ideograph (variant of EACC 4B3E40) */, - {0, 0, 0x604D} /* East Asian ideograph */, - {0, 0, 0x606B} /* East Asian ideograph */, - {0, 0, 0x6069} /* East Asian ideograph */, - {0, 0, 0x606C} /* East Asian ideograph */, - {0, 0, 0x606F} /* East Asian ideograph */, - {0, 0, 0x606A} /* East Asian ideograph */, - {0, 0, 0x6064} /* East Asian ideograph */, - {0, 0, 0x6070} /* East Asian ideograph */, - {0, 0, 0x6055} /* East Asian ideograph */, - {0, 0, 0x608C} /* East Asian ideograph */, - {0, 0, 0x60A6} /* East Asian ideograph */, - {0, 0, 0x607F} /* East Asian ideograph */, - {0, 0, 0x609F} /* East Asian ideograph */, - {0, 0, 0x609A} /* East Asian ideograph */, - {0, 0, 0x6096} /* East Asian ideograph */, - {0, 0, 0x6084} /* East Asian ideograph */, - {0, 0, 0x608D} /* East Asian ideograph */, - {0, 0, 0x60A3} /* East Asian ideograph */, - {0, 0, 0x6089} /* East Asian ideograph */, - {0, 0, 0x6094} /* East Asian ideograph */, - {0, 0, 0x60A0} /* East Asian ideograph */, - {0, 0, 0x60A8} /* East Asian ideograph */, - {0, 0, 0x60B4} /* East Asian ideograph */, - {0, 0, 0x60E6} /* East Asian ideograph */, - {0, 0, 0x60CB} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x60C5} /* East Asian ideograph (variant of EACC 4B3E5B) */, - {0, 0, 0x60B6} /* East Asian ideograph */, - {0, 0, 0x60D1} /* East Asian ideograph */, - {0, 0, 0x60B5} /* East Asian ideograph */, - {0, 0, 0x60BB} /* East Asian ideograph */, - {0, 0, 0x60E0} /* East Asian ideograph */, - {0, 0, 0x60E1} /* East Asian ideograph */, - {0, 0, 0x60DC} /* East Asian ideograph */, - {0, 0, 0x60D8} /* East Asian ideograph */, - {0, 0, 0x60D5} /* East Asian ideograph */, - {0, 0, 0x60BC} /* East Asian ideograph */, - {0, 0, 0x60B2} /* East Asian ideograph */, - {0, 0, 0x60C6} /* East Asian ideograph */, - {0, 0, 0x60B8} /* East Asian ideograph */, - {0, 0, 0x60DA} /* East Asian ideograph */, - {0, 0, 0x60DF} /* East Asian ideograph */, - {0, 0, 0x610F} /* East Asian ideograph */, - {0, 0, 0x611C} /* East Asian ideograph */, - {0, 0, 0x60F3} /* East Asian ideograph */, - {0, 0, 0x611F} /* East Asian ideograph */, - {0, 0, 0x60F0} /* East Asian ideograph */, - {0, 0, 0x60FB} /* East Asian ideograph */, - {0, 0, 0x60FA} /* East Asian ideograph */, - {0, 0, 0x611A} /* East Asian ideograph */, - {0, 0, 0x6115} /* East Asian ideograph */, - {0, 0, 0x60F9} /* East Asian ideograph */, - {0, 0, 0x6123} /* East Asian ideograph */, - {0, 0, 0x60F4} /* East Asian ideograph */, - {0, 0, 0x611B} /* East Asian ideograph */, - {0, 0, 0x610E} /* East Asian ideograph */, - {0, 0, 0x6100} /* East Asian ideograph */, - {0, 0, 0x6101} /* East Asian ideograph */, - {0, 0, 0x60F6} /* East Asian ideograph */, - {0, 0, 0x6109} /* East Asian ideograph */, - {0, 0, 0x6108} /* East Asian ideograph */, - {0, 0, 0x60F1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page17 = { - 0, marc8_31page17_dir -}; -/* PAGE 16 */ -struct yaz_iconv_trie_dir marc8_31page16_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5EBE} /* East Asian ideograph */, - {0, 0, 0x5ECA} /* East Asian ideograph */, - {0, 0, 0x5EC9} /* East Asian ideograph */, - {0, 0, 0x5EC8} /* East Asian ideograph */, - {0, 0, 0x5ED3} /* East Asian ideograph */, - {0, 0, 0x5ED6} /* East Asian ideograph */, - {0, 0, 0x5EE2} /* East Asian ideograph */, - {0, 0, 0x5EDA} /* East Asian ideograph */, - {0, 0, 0x5EDD} /* East Asian ideograph */, - {0, 0, 0x5EE3} /* East Asian ideograph (variant of EACC 4B3D2A) */, - {0, 0, 0x5EDF} /* East Asian ideograph */, - {0, 0, 0x5EE0} /* East Asian ideograph */, - {0, 0, 0x9F90} /* East Asian ideograph */, - {0, 0, 0x5EEC} /* East Asian ideograph */, - {0, 0, 0x5EF3} /* East Asian ideograph */, - {0, 0, 0x5EF7} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5EF6} /* East Asian ideograph */, - {0, 0, 0x5EFA} /* East Asian ideograph */, - {0, 0, 0x5EFF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5F04} /* East Asian ideograph */, - {0, 0, 0x5F08} /* East Asian ideograph */, - {0, 0, 0x5F0A} /* East Asian ideograph */, - {0, 0, 0x5F0F} /* East Asian ideograph */, - {0, 0, 0x5F12} /* East Asian ideograph */, - {0, 0, 0x5F13} /* East Asian ideograph */, - {0, 0, 0x5F15} /* East Asian ideograph */, - {0, 0, 0x5F14} /* East Asian ideograph */, - {0, 0, 0x5F18} /* East Asian ideograph */, - {0, 0, 0x5F17} /* East Asian ideograph */, - {0, 0, 0x5F1B} /* East Asian ideograph */, - {0, 0, 0x5F1F} /* East Asian ideograph */, - {0, 0, 0x5F26} /* East Asian ideograph */, - {0, 0, 0x5F27} /* East Asian ideograph */, - {0, 0, 0x5F29} /* East Asian ideograph */, - {0, 0, 0x5F2D} /* East Asian ideograph */, - {0, 0, 0x5F31} /* East Asian ideograph */, - {0, 0, 0x5F35} /* East Asian ideograph */, - {0, 0, 0x5F37} /* East Asian ideograph */, - {0, 0, 0x5F3C} /* East Asian ideograph */, - {0, 0, 0x5F46} /* East Asian ideograph */, - {0, 0, 0x5F48} /* East Asian ideograph */, - {0, 0, 0x5F4C} /* East Asian ideograph */, - {0, 0, 0x5F4E} /* East Asian ideograph */, - {0, 0, 0x5F57} /* East Asian ideograph */, - {0, 0, 0x5F59} /* East Asian ideograph */, - {0, 0, 0x5F5D} /* East Asian ideograph */, - {0, 0, 0x5F62} /* East Asian ideograph */, - {0, 0, 0x5F64} /* East Asian ideograph */, - {0, 0, 0x5F65} /* East Asian ideograph */, - {0, 0, 0x5F6C} /* East Asian ideograph */, - {0, 0, 0x5F69} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5F6D} /* East Asian ideograph */, - {0, 0, 0x5F70} /* East Asian ideograph */, - {0, 0, 0x5F71} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5F79} /* East Asian ideograph */, - {0, 0, 0x5F80} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5F7F} /* East Asian ideograph */, - {0, 0, 0x5F7C} /* East Asian ideograph */, - {0, 0, 0x5F85} /* East Asian ideograph */, - {0, 0, 0x5F88} /* East Asian ideograph */, - {0, 0, 0x5F8B} /* East Asian ideograph */, - {0, 0, 0x5F8A} /* East Asian ideograph */, - {0, 0, 0x5F87} /* East Asian ideograph */, - {0, 0, 0x5F8C} /* East Asian ideograph */, - {0, 0, 0x5F92} /* East Asian ideograph */, - {0, 0, 0x5F91} /* East Asian ideograph */, - {0, 0, 0x5F90} /* East Asian ideograph */, - {0, 0, 0x5F98} /* East Asian ideograph */, - {0, 0, 0x5F97} /* East Asian ideograph */, - {0, 0, 0x5F99} /* East Asian ideograph */, - {0, 0, 0x5F9E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5FA9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5FAA} /* East Asian ideograph */, - {0, 0, 0x5FAC} /* East Asian ideograph */, - {0, 0, 0x5FAE} /* East Asian ideograph */, - {0, 0, 0x5FB9} /* East Asian ideograph */, - {0, 0, 0x5FB7} /* East Asian ideograph */, - {0, 0, 0x5FB5} /* East Asian ideograph */, - {0, 0, 0x5FBD} /* East Asian ideograph */, - {0, 0, 0x5FC3} /* East Asian ideograph */, - {0, 0, 0x5FC5} /* East Asian ideograph */, - {0, 0, 0x5FD9} /* East Asian ideograph */, - {0, 0, 0x5FD8} /* East Asian ideograph */, - {0, 0, 0x5FCC} /* East Asian ideograph */, - {0, 0, 0x5FD6} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page16 = { - 0, marc8_31page16_dir -}; -/* PAGE 15 */ -struct yaz_iconv_trie_dir marc8_31page15_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5D0E} /* East Asian ideograph */, - {0, 0, 0x5D11} /* East Asian ideograph */, - {0, 0, 0x5D22} /* East Asian ideograph */, - {0, 0, 0x5D29} /* East Asian ideograph */, - {0, 0, 0x5D14} /* East Asian ideograph */, - {0, 0, 0x5D19} /* East Asian ideograph */, - {0, 0, 0x5D4C} /* East Asian ideograph */, - {0, 0, 0x5D50} /* East Asian ideograph */, - {0, 0, 0x5D69} /* East Asian ideograph */, - {0, 0, 0x5D84} /* East Asian ideograph */, - {0, 0, 0x5D87} /* East Asian ideograph */, - {0, 0, 0x5D9D} /* East Asian ideograph */, - {0, 0, 0x5DBC} /* East Asian ideograph */, - {0, 0, 0x5DBD} /* East Asian ideograph */, - {0, 0, 0x5DBA} /* East Asian ideograph (variant of EACC 4B3C2F) */, - {0, 0, 0x5DCD} /* East Asian ideograph */, - {0, 0, 0x5DD2} /* East Asian ideograph */, - {0, 0, 0x5DD4} /* East Asian ideograph */, - {0, 0, 0x5DD6} /* East Asian ideograph */, - {0, 0, 0x5DDD} /* East Asian ideograph */, - {0, 0, 0x5DDE} /* East Asian ideograph */, - {0, 0, 0x5DE2} /* East Asian ideograph */, - {0, 0, 0x5DE5} /* East Asian ideograph */, - {0, 0, 0x5DE8} /* East Asian ideograph */, - {0, 0, 0x5DE7} /* East Asian ideograph */, - {0, 0, 0x5DE6} /* East Asian ideograph */, - {0, 0, 0x5DEB} /* East Asian ideograph */, - {0, 0, 0x5DEE} /* East Asian ideograph */, - {0, 0, 0x5DF1} /* East Asian ideograph */, - {0, 0, 0x5DF2} /* East Asian ideograph */, - {0, 0, 0x5DF3} /* East Asian ideograph */, - {0, 0, 0x5DF4} /* East Asian ideograph */, - {0, 0, 0x5DF7} /* East Asian ideograph */, - {0, 0, 0x5DFD} /* East Asian ideograph */, - {0, 0, 0x5DFE} /* East Asian ideograph */, - {0, 0, 0x5E02} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5E06} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5E1A} /* East Asian ideograph */, - {0, 0, 0x5E16} /* East Asian ideograph */, - {0, 0, 0x5E15} /* East Asian ideograph */, - {0, 0, 0x5E1B} /* East Asian ideograph */, - {0, 0, 0x5E11} /* East Asian ideograph */, - {0, 0, 0x5E1D} /* East Asian ideograph */, - {0, 0, 0x5E25} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5E2B} /* East Asian ideograph */, - {0, 0, 0x5E33} /* East Asian ideograph */, - {0, 0, 0x5E36} /* East Asian ideograph */, - {0, 0, 0x5E38} /* East Asian ideograph */, - {0, 0, 0x5E37} /* East Asian ideograph */, - {0, 0, 0x5E45} /* East Asian ideograph */, - {0, 0, 0x5E3D} /* East Asian ideograph */, - {0, 0, 0x5E40} /* East Asian ideograph */, - {0, 0, 0x5E4C} /* East Asian ideograph */, - {0, 0, 0x5E5B} /* East Asian ideograph */, - {0, 0, 0x5E54} /* East Asian ideograph */, - {0, 0, 0x5E57} /* East Asian ideograph */, - {0, 0, 0x5E55} /* East Asian ideograph */, - {0, 0, 0x5E63} /* East Asian ideograph */, - {0, 0, 0x5E62} /* East Asian ideograph */, - {0, 0, 0x5E5F} /* East Asian ideograph */, - {0, 0, 0x5E6B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5E73} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5E74} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5E7B} /* East Asian ideograph */, - {0, 0, 0x5E7C} /* East Asian ideograph */, - {0, 0, 0x5E7D} /* East Asian ideograph */, - {0, 0, 0x5E7E} /* East Asian ideograph */, - {0, 0, 0x5E8F} /* East Asian ideograph */, - {0, 0, 0x5E87} /* East Asian ideograph */, - {0, 0, 0x5E8A} /* East Asian ideograph */, - {0, 0, 0x5E9A} /* East Asian ideograph */, - {0, 0, 0x5E97} /* East Asian ideograph */, - {0, 0, 0x5E96} /* East Asian ideograph */, - {0, 0, 0x5E9C} /* East Asian ideograph */, - {0, 0, 0x5E95} /* East Asian ideograph */, - {0, 0, 0x5EA0} /* East Asian ideograph */, - {0, 0, 0x5EA6} /* East Asian ideograph */, - {0, 0, 0x5EAB} /* East Asian ideograph */, - {0, 0, 0x5EA7} /* East Asian ideograph */, - {0, 0, 0x5EAD} /* East Asian ideograph */, - {0, 0, 0x5EB7} /* East Asian ideograph */, - {0, 0, 0x5EB8} /* East Asian ideograph */, - {0, 0, 0x5EB6} /* East Asian ideograph */, - {0, 0, 0x5EB5} /* East Asian ideograph */, - {0, 0, 0x5EC2} /* East Asian ideograph */, - {0, 0, 0x5EC1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page15 = { - 0, marc8_31page15_dir -}; -/* PAGE 14 */ -struct yaz_iconv_trie_dir marc8_31page14_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5BC6} /* East Asian ideograph */, - {0, 0, 0x5BC7} /* East Asian ideograph */, - {0, 0, 0x5BC5} /* East Asian ideograph */, - {0, 0, 0x5BC4} /* East Asian ideograph */, - {0, 0, 0x5BC2} /* East Asian ideograph */, - {0, 0, 0x5BBF} /* East Asian ideograph */, - {0, 0, 0x5BCC} /* East Asian ideograph */, - {0, 0, 0x5BD2} /* East Asian ideograph */, - {0, 0, 0x5BD0} /* East Asian ideograph */, - {0, 0, 0x5BD3} /* East Asian ideograph */, - {0, 0, 0x5BE1} /* East Asian ideograph */, - {0, 0, 0x5BE5} /* East Asian ideograph */, - {0, 0, 0x5BE8} /* East Asian ideograph */, - {0, 0, 0x5BE2} /* East Asian ideograph */, - {0, 0, 0x5BE4} /* East Asian ideograph */, - {0, 0, 0x5BDE} /* East Asian ideograph */, - {0, 0, 0x5BE6} /* East Asian ideograph */, - {0, 0, 0x5BE7} /* East Asian ideograph */, - {0, 0, 0x5BDF} /* East Asian ideograph */, - {0, 0, 0x5BEE} /* East Asian ideograph */, - {0, 0, 0x5BEC} /* East Asian ideograph */, - {0, 0, 0x5BE9} /* East Asian ideograph */, - {0, 0, 0x5BEB} /* East Asian ideograph */, - {0, 0, 0x5BF5} /* East Asian ideograph */, - {0, 0, 0x5BF6} /* East Asian ideograph */, - {0, 0, 0x5BF8} /* East Asian ideograph */, - {0, 0, 0x5BFA} /* East Asian ideograph */, - {0, 0, 0x5C01} /* East Asian ideograph */, - {0, 0, 0x5C04} /* East Asian ideograph */, - {0, 0, 0x5C09} /* East Asian ideograph */, - {0, 0, 0x5C08} /* East Asian ideograph */, - {0, 0, 0x5C07} /* East Asian ideograph */, - {0, 0, 0x5C0A} /* East Asian ideograph */, - {0, 0, 0x5C0B} /* East Asian ideograph */, - {0, 0, 0x5C0D} /* East Asian ideograph */, - {0, 0, 0x5C0E} /* East Asian ideograph */, - {0, 0, 0x5C0F} /* East Asian ideograph */, - {0, 0, 0x5C11} /* East Asian ideograph */, - {0, 0, 0x5C16} /* East Asian ideograph */, - {0, 0, 0x5C1A} /* East Asian ideograph */, - {0, 0, 0x5C24} /* East Asian ideograph */, - {0, 0, 0x5C2C} /* East Asian ideograph */, - {0, 0, 0x5C31} /* East Asian ideograph */, - {0, 0, 0x5C37} /* East Asian ideograph */, - {0, 0, 0x5C38} /* East Asian ideograph */, - {0, 0, 0x5C3A} /* East Asian ideograph */, - {0, 0, 0x5C3C} /* East Asian ideograph */, - {0, 0, 0x5C40} /* East Asian ideograph */, - {0, 0, 0x5C41} /* East Asian ideograph */, - {0, 0, 0x5C3F} /* East Asian ideograph */, - {0, 0, 0x5C3E} /* East Asian ideograph */, - {0, 0, 0x5C46} /* East Asian ideograph */, - {0, 0, 0x5C45} /* East Asian ideograph */, - {0, 0, 0x5C48} /* East Asian ideograph */, - {0, 0, 0x5C4E} /* East Asian ideograph */, - {0, 0, 0x5C4B} /* East Asian ideograph */, - {0, 0, 0x5C4D} /* East Asian ideograph */, - {0, 0, 0x5C55} /* East Asian ideograph */, - {0, 0, 0x5C51} /* East Asian ideograph */, - {0, 0, 0x5C50} /* East Asian ideograph */, - {0, 0, 0x5C5B} /* East Asian ideograph */, - {0, 0, 0x5C60} /* East Asian ideograph */, - {0, 0, 0x5C5C} /* East Asian ideograph */, - {0, 0, 0x5C62} /* East Asian ideograph */, - {0, 0, 0x5C64} /* East Asian ideograph (variant of EACC 4B3B61) */, - {0, 0, 0x5C65} /* East Asian ideograph */, - {0, 0, 0x5C6C} /* East Asian ideograph */, - {0, 0, 0x5C6F} /* East Asian ideograph */, - {0, 0, 0x5C71} /* East Asian ideograph */, - {0, 0, 0x5C79} /* East Asian ideograph */, - {0, 0, 0x5C90} /* East Asian ideograph */, - {0, 0, 0x5C8C} /* East Asian ideograph */, - {0, 0, 0x5C91} /* East Asian ideograph */, - {0, 0, 0x5C94} /* East Asian ideograph */, - {0, 0, 0x5CB7} /* East Asian ideograph */, - {0, 0, 0x5CB8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5CA1} /* East Asian ideograph */, - {0, 0, 0x5CAB} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5CB1} /* East Asian ideograph */, - {0, 0, 0x5CD9} /* East Asian ideograph */, - {0, 0, 0x5D01} /* East Asian ideograph */, - {0, 0, 0x5CFD} /* East Asian ideograph */, - {0, 0, 0x5CED} /* East Asian ideograph */, - {0, 0, 0x5CFB} /* East Asian ideograph */, - {0, 0, 0x5CE8} /* East Asian ideograph */, - {0, 0, 0x5CF0} /* East Asian ideograph */, - {0, 0, 0x5CF6} /* East Asian ideograph */, - {0, 0, 0x5CEA} /* East Asian ideograph */, - {0, 0, 0x5D07} /* East Asian ideograph */, - {0, 0, 0x5D06} /* East Asian ideograph */, - {0, 0, 0x5D1B} /* East Asian ideograph */, - {0, 0, 0x5D16} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page14 = { - 0, marc8_31page14_dir -}; -/* PAGE 13 */ -struct yaz_iconv_trie_dir marc8_31page13_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5A46} /* East Asian ideograph */, - {0, 0, 0x5A49} /* East Asian ideograph */, - {0, 0, 0x5A6A} /* East Asian ideograph */, - {0, 0, 0x5A36} /* East Asian ideograph */, - {0, 0, 0x5A4A} /* East Asian ideograph */, - {0, 0, 0x5A40} /* East Asian ideograph */, - {0, 0, 0x5A66} /* East Asian ideograph */, - {0, 0, 0x5A41} /* East Asian ideograph */, - {0, 0, 0x5A3C} /* East Asian ideograph */, - {0, 0, 0x5A62} /* East Asian ideograph */, - {0, 0, 0x5A5A} /* East Asian ideograph */, - {0, 0, 0x5A77} /* East Asian ideograph */, - {0, 0, 0x5A9A} /* East Asian ideograph */, - {0, 0, 0x5A92} /* East Asian ideograph */, - {0, 0, 0x5A7F} /* East Asian ideograph */, - {0, 0, 0x5ABC} /* East Asian ideograph */, - {0, 0, 0x5A9B} /* East Asian ideograph */, - {0, 0, 0x5ACC} /* East Asian ideograph */, - {0, 0, 0x5AC1} /* East Asian ideograph */, - {0, 0, 0x5AC9} /* East Asian ideograph */, - {0, 0, 0x5ABE} /* East Asian ideograph */, - {0, 0, 0x5ABD} /* East Asian ideograph */, - {0, 0, 0x5AB2} /* East Asian ideograph */, - {0, 0, 0x5AC2} /* East Asian ideograph */, - {0, 0, 0x5AB3} /* East Asian ideograph */, - {0, 0, 0x5AE1} /* East Asian ideograph */, - {0, 0, 0x5AD7} /* East Asian ideograph */, - {0, 0, 0x5AD6} /* East Asian ideograph */, - {0, 0, 0x5AE3} /* East Asian ideograph */, - {0, 0, 0x5AE9} /* East Asian ideograph */, - {0, 0, 0x5AD8} /* East Asian ideograph */, - {0, 0, 0x5AE6} /* East Asian ideograph */, - {0, 0, 0x5AFB} /* East Asian ideograph */, - {0, 0, 0x5B09} /* East Asian ideograph */, - {0, 0, 0x5B0B} /* East Asian ideograph */, - {0, 0, 0x5B0C} /* East Asian ideograph */, - {0, 0, 0x5AF5} /* East Asian ideograph */, - {0, 0, 0x5B34} /* East Asian ideograph */, - {0, 0, 0x5B1D} /* East Asian ideograph */, - {0, 0, 0x5B2A} /* East Asian ideograph */, - {0, 0, 0x5B24} /* East Asian ideograph */, - {0, 0, 0x5B30} /* East Asian ideograph */, - {0, 0, 0x5B38} /* East Asian ideograph */, - {0, 0, 0x5B40} /* East Asian ideograph */, - {0, 0, 0x5B50} /* East Asian ideograph */, - {0, 0, 0x5B51} /* East Asian ideograph */, - {0, 0, 0x5B53} /* East Asian ideograph */, - {0, 0, 0x5B54} /* East Asian ideograph */, - {0, 0, 0x5B55} /* East Asian ideograph */, - {0, 0, 0x5B57} /* East Asian ideograph */, - {0, 0, 0x5B58} /* East Asian ideograph */, - {0, 0, 0x5B5D} /* East Asian ideograph */, - {0, 0, 0x5B5C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5B5F} /* East Asian ideograph */, - {0, 0, 0x5B63} /* East Asian ideograph */, - {0, 0, 0x5B64} /* East Asian ideograph */, - {0, 0, 0x5B69} /* East Asian ideograph */, - {0, 0, 0x5B6B} /* East Asian ideograph */, - {0, 0, 0x5B70} /* East Asian ideograph */, - {0, 0, 0x5B73} /* East Asian ideograph */, - {0, 0, 0x5B71} /* East Asian ideograph */, - {0, 0, 0x5B75} /* East Asian ideograph */, - {0, 0, 0x5B78} /* East Asian ideograph */, - {0, 0, 0x5B7A} /* East Asian ideograph */, - {0, 0, 0x5B7D} /* East Asian ideograph */, - {0, 0, 0x5B7F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5B87} /* East Asian ideograph */, - {0, 0, 0x5B88} /* East Asian ideograph */, - {0, 0, 0x5B89} /* East Asian ideograph */, - {0, 0, 0x5B85} /* East Asian ideograph */, - {0, 0, 0x5B8C} /* East Asian ideograph */, - {0, 0, 0x5B8B} /* East Asian ideograph */, - {0, 0, 0x5B8F} /* East Asian ideograph */, - {0, 0, 0x5B97} /* East Asian ideograph */, - {0, 0, 0x5B9A} /* East Asian ideograph */, - {0, 0, 0x5B9C} /* East Asian ideograph */, - {0, 0, 0x5B98} /* East Asian ideograph */, - {0, 0, 0x5B99} /* East Asian ideograph */, - {0, 0, 0x5B9B} /* East Asian ideograph */, - {0, 0, 0x5BA5} /* East Asian ideograph */, - {0, 0, 0x5BA3} /* East Asian ideograph */, - {0, 0, 0x5BA6} /* East Asian ideograph */, - {0, 0, 0x5BA4} /* East Asian ideograph */, - {0, 0, 0x5BA2} /* East Asian ideograph */, - {0, 0, 0x5BB0} /* East Asian ideograph */, - {0, 0, 0x5BB8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5BB5} /* East Asian ideograph */, - {0, 0, 0x5BB4} /* East Asian ideograph */, - {0, 0, 0x5BAE} /* East Asian ideograph */, - {0, 0, 0x5BB9} /* East Asian ideograph */, - {0, 0, 0x5BB3} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page13 = { - 0, marc8_31page13_dir -}; -/* PAGE 12 */ -struct yaz_iconv_trie_dir marc8_31page12_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5920} /* East Asian ideograph */, - {0, 0, 0x5924} /* East Asian ideograph */, - {0, 0, 0x5925} /* East Asian ideograph */, - {0, 0, 0x5922} /* East Asian ideograph */, - {0, 0, 0x5927} /* East Asian ideograph */, - {0, 0, 0x592A} /* East Asian ideograph */, - {0, 0, 0x592B} /* East Asian ideograph */, - {0, 0, 0x5929} /* East Asian ideograph */, - {0, 0, 0x592D} /* East Asian ideograph */, - {0, 0, 0x592E} /* East Asian ideograph */, - {0, 0, 0x5931} /* East Asian ideograph */, - {0, 0, 0x5937} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x593E} /* East Asian ideograph */, - {0, 0, 0x5954} /* East Asian ideograph */, - {0, 0, 0x5949} /* East Asian ideograph */, - {0, 0, 0x5948} /* East Asian ideograph */, - {0, 0, 0x5947} /* East Asian ideograph */, - {0, 0, 0x5944} /* East Asian ideograph */, - {0, 0, 0x5955} /* East Asian ideograph */, - {0, 0, 0x5951} /* East Asian ideograph */, - {0, 0, 0x594E} /* East Asian ideograph */, - {0, 0, 0x594F} /* East Asian ideograph */, - {0, 0, 0x5950} /* East Asian ideograph */, - {0, 0, 0x5957} /* East Asian ideograph */, - {0, 0, 0x5958} /* East Asian ideograph */, - {0, 0, 0x595A} /* East Asian ideograph */, - {0, 0, 0x5960} /* East Asian ideograph */, - {0, 0, 0x5962} /* East Asian ideograph */, - {0, 0, 0x5967} /* East Asian ideograph */, - {0, 0, 0x5969} /* East Asian ideograph */, - {0, 0, 0x596A} /* East Asian ideograph */, - {0, 0, 0x596E} /* East Asian ideograph */, - {0, 0, 0x5973} /* East Asian ideograph */, - {0, 0, 0x5974} /* East Asian ideograph */, - {0, 0, 0x5976} /* East Asian ideograph */, - {0, 0, 0x5984} /* East Asian ideograph */, - {0, 0, 0x5983} /* East Asian ideograph */, - {0, 0, 0x5978} /* East Asian ideograph */, - {0, 0, 0x597D} /* East Asian ideograph */, - {0, 0, 0x5979} /* East Asian ideograph */, - {0, 0, 0x5982} /* East Asian ideograph */, - {0, 0, 0x5981} /* East Asian ideograph */, - {0, 0, 0x59A8} /* East Asian ideograph */, - {0, 0, 0x5992} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x59A4} /* East Asian ideograph */, - {0, 0, 0x59A3} /* East Asian ideograph */, - {0, 0, 0x5993} /* East Asian ideograph */, - {0, 0, 0x599E} /* East Asian ideograph */, - {0, 0, 0x599D} /* East Asian ideograph */, - {0, 0, 0x5999} /* East Asian ideograph */, - {0, 0, 0x59A5} /* East Asian ideograph */, - {0, 0, 0x598A} /* East Asian ideograph */, - {0, 0, 0x5996} /* East Asian ideograph */, - {0, 0, 0x59BE} /* East Asian ideograph */, - {0, 0, 0x59BB} /* East Asian ideograph */, - {0, 0, 0x59AE} /* East Asian ideograph */, - {0, 0, 0x59D1} /* East Asian ideograph */, - {0, 0, 0x59B9} /* East Asian ideograph */, - {0, 0, 0x59C6} /* East Asian ideograph */, - {0, 0, 0x59D0} /* East Asian ideograph */, - {0, 0, 0x59D7} /* East Asian ideograph */, - {0, 0, 0x59AF} /* East Asian ideograph */, - {0, 0, 0x59D2} /* East Asian ideograph */, - {0, 0, 0x59D3} /* East Asian ideograph */, - {0, 0, 0x59CA} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x59CB} /* East Asian ideograph */, - {0, 0, 0x59D4} /* East Asian ideograph */, - {0, 0, 0x59E3} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x59FF} /* East Asian ideograph */, - {0, 0, 0x59D8} /* East Asian ideograph */, - {0, 0, 0x5A03} /* East Asian ideograph */, - {0, 0, 0x59E8} /* East Asian ideograph */, - {0, 0, 0x59E5} /* East Asian ideograph */, - {0, 0, 0x59EA} /* East Asian ideograph */, - {0, 0, 0x5A01} /* East Asian ideograph */, - {0, 0, 0x59FB} /* East Asian ideograph */, - {0, 0, 0x59E6} /* East Asian ideograph */, - {0, 0, 0x59DA} /* East Asian ideograph */, - {0, 0, 0x5A11} /* East Asian ideograph */, - {0, 0, 0x5A18} /* East Asian ideograph */, - {0, 0, 0x5A23} /* East Asian ideograph */, - {0, 0, 0x5A1C} /* East Asian ideograph */, - {0, 0, 0x5A13} /* East Asian ideograph */, - {0, 0, 0x59EC} /* East Asian ideograph */, - {0, 0, 0x5A20} /* East Asian ideograph */, - {0, 0, 0x5A1F} /* East Asian ideograph */, - {0, 0, 0x5A1B} /* East Asian ideograph */, - {0, 0, 0x5A0C} /* East Asian ideograph */, - {0, 0, 0x5A29} /* East Asian ideograph */, - {0, 0, 0x5A25} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page12 = { - 0, marc8_31page12_dir -}; -/* PAGE 11 */ -struct yaz_iconv_trie_dir marc8_31page11_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5740} /* East Asian ideograph */, - {0, 0, 0x5747} /* East Asian ideograph */, - {0, 0, 0x574D} /* East Asian ideograph */, - {0, 0, 0x573E} /* East Asian ideograph */, - {0, 0, 0x574E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5783} /* East Asian ideograph */, - {0, 0, 0x576A} /* East Asian ideograph */, - {0, 0, 0x5769} /* East Asian ideograph */, - {0, 0, 0x5777} /* East Asian ideograph */, - {0, 0, 0x5761} /* East Asian ideograph */, - {0, 0, 0x5764} /* East Asian ideograph */, - {0, 0, 0x5766} /* East Asian ideograph */, - {0, 0, 0x5782} /* East Asian ideograph */, - {0, 0, 0x577C} /* East Asian ideograph */, - {0, 0, 0x57A0} /* East Asian ideograph */, - {0, 0, 0x578B} /* East Asian ideograph */, - {0, 0, 0x57A3} /* East Asian ideograph */, - {0, 0, 0x57AE} /* East Asian ideograph */, - {0, 0, 0x57A2} /* East Asian ideograph */, - {0, 0, 0x57D4} /* East Asian ideograph */, - {0, 0, 0x57C2} /* East Asian ideograph */, - {0, 0, 0x57CE} /* East Asian ideograph */, - {0, 0, 0x57CB} /* East Asian ideograph */, - {0, 0, 0x57C3} /* East Asian ideograph */, - {0, 0, 0x57F9} /* East Asian ideograph */, - {0, 0, 0x57F7} /* East Asian ideograph */, - {0, 0, 0x57FA} /* East Asian ideograph */, - {0, 0, 0x57DF} /* East Asian ideograph */, - {0, 0, 0x580A} /* East Asian ideograph */, - {0, 0, 0x5805} /* East Asian ideograph */, - {0, 0, 0x5802} /* East Asian ideograph */, - {0, 0, 0x5806} /* East Asian ideograph */, - {0, 0, 0x57E4} /* East Asian ideograph */, - {0, 0, 0x57E0} /* East Asian ideograph */, - {0, 0, 0x5831} /* East Asian ideograph */, - {0, 0, 0x582F} /* East Asian ideograph */, - {0, 0, 0x5835} /* East Asian ideograph */, - {0, 0, 0x582A} /* East Asian ideograph */, - {0, 0, 0x5830} /* East Asian ideograph */, - {0, 0, 0x5824} /* East Asian ideograph */, - {0, 0, 0x5834} /* East Asian ideograph */, - {0, 0, 0x5821} /* East Asian ideograph */, - {0, 0, 0x585E} /* East Asian ideograph */, - {0, 0, 0x5857} /* East Asian ideograph */, - {0, 0, 0x5858} /* East Asian ideograph */, - {0, 0, 0x5851} /* East Asian ideograph */, - {0, 0, 0x586B} /* East Asian ideograph */, - {0, 0, 0x584C} /* East Asian ideograph */, - {0, 0, 0x585A} /* East Asian ideograph */, - {0, 0, 0x586D} /* East Asian ideograph */, - {0, 0, 0x5854} /* East Asian ideograph */, - {0, 0, 0x5862} /* East Asian ideograph */, - {0, 0, 0x584A} /* East Asian ideograph */, - {0, 0, 0x5883} /* East Asian ideograph */, - {0, 0, 0x587E} /* East Asian ideograph */, - {0, 0, 0x5875} /* East Asian ideograph */, - {0, 0, 0x588A} /* East Asian ideograph */, - {0, 0, 0x5879} /* East Asian ideograph */, - {0, 0, 0x5885} /* East Asian ideograph */, - {0, 0, 0x5893} /* East Asian ideograph */, - {0, 0, 0x589E} /* East Asian ideograph */, - {0, 0, 0x5880} /* East Asian ideograph */, - {0, 0, 0x58B3} /* East Asian ideograph */, - {0, 0, 0x589C} /* East Asian ideograph */, - {0, 0, 0x58AE} /* East Asian ideograph */, - {0, 0, 0x589F} /* East Asian ideograph */, - {0, 0, 0x58C7} /* East Asian ideograph (variant of EACC 4B3864) */, - {0, 0, 0x58C5} /* East Asian ideograph */, - {0, 0, 0x58C1} /* East Asian ideograph */, - {0, 0, 0x58BE} /* East Asian ideograph */, - {0, 0, 0x58D5} /* East Asian ideograph */, - {0, 0, 0x58D3} /* East Asian ideograph */, - {0, 0, 0x58D1} /* East Asian ideograph */, - {0, 0, 0x58D9} /* East Asian ideograph */, - {0, 0, 0x58D8} /* East Asian ideograph */, - {0, 0, 0x58DF} /* East Asian ideograph */, - {0, 0, 0x58DE} /* East Asian ideograph */, - {0, 0, 0x58E2} /* East Asian ideograph */, - {0, 0, 0x58E4} /* East Asian ideograph */, - {0, 0, 0x58E9} /* East Asian ideograph */, - {0, 0, 0x58EB} /* East Asian ideograph */, - {0, 0, 0x58EC} /* East Asian ideograph */, - {0, 0, 0x58EF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x58FA} /* East Asian ideograph */, - {0, 0, 0x58FD} /* East Asian ideograph */, - {0, 0, 0x590F} /* East Asian ideograph */, - {0, 0, 0x5914} /* East Asian ideograph */, - {0, 0, 0x5915} /* East Asian ideograph */, - {0, 0, 0x5916} /* East Asian ideograph */, - {0, 0, 0x5919} /* East Asian ideograph */, - {0, 0, 0x591A} /* East Asian ideograph */, - {0, 0, 0x591C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page11 = { - 0, marc8_31page11_dir -}; -/* PAGE 10 */ -struct yaz_iconv_trie_dir marc8_31page10_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x55DA} /* East Asian ideograph */, - {0, 0, 0x55C6} /* East Asian ideograph */, - {0, 0, 0x55E1} /* East Asian ideograph */, - {0, 0, 0x5600} /* East Asian ideograph */, - {0, 0, 0x561B} /* East Asian ideograph */, - {0, 0, 0x55FE} /* East Asian ideograph */, - {0, 0, 0x5616} /* East Asian ideograph */, - {0, 0, 0x55F7} /* East Asian ideograph */, - {0, 0, 0x5608} /* East Asian ideograph */, - {0, 0, 0x561F} /* East Asian ideograph */, - {0, 0, 0x55FD} /* East Asian ideograph */, - {0, 0, 0x5606} /* East Asian ideograph (variant of EACC 4B372C) */, - {0, 0, 0x5609} /* East Asian ideograph */, - {0, 0, 0x5614} /* East Asian ideograph */, - {0, 0, 0x560E} /* East Asian ideograph */, - {0, 0, 0x5617} /* East Asian ideograph */, - {0, 0, 0x560D} /* East Asian ideograph */, - {0, 0, 0x562E} /* East Asian ideograph */, - {0, 0, 0x562F} /* East Asian ideograph */, - {0, 0, 0x564E} /* East Asian ideograph */, - {0, 0, 0x5636} /* East Asian ideograph */, - {0, 0, 0x5632} /* East Asian ideograph */, - {0, 0, 0x563B} /* East Asian ideograph */, - {0, 0, 0x5639} /* East Asian ideograph */, - {0, 0, 0x5657} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5653} /* East Asian ideograph */, - {0, 0, 0x563F} /* East Asian ideograph */, - {0, 0, 0x5634} /* East Asian ideograph */, - {0, 0, 0x5637} /* East Asian ideograph */, - {0, 0, 0x5659} /* East Asian ideograph */, - {0, 0, 0x5630} /* East Asian ideograph */, - {0, 0, 0x566B} /* East Asian ideograph */, - {0, 0, 0x5664} /* East Asian ideograph */, - {0, 0, 0x5669} /* East Asian ideograph */, - {0, 0, 0x5678} /* East Asian ideograph */, - {0, 0, 0x5674} /* East Asian ideograph */, - {0, 0, 0x5679} /* East Asian ideograph */, - {0, 0, 0x5665} /* East Asian ideograph */, - {0, 0, 0x566A} /* East Asian ideograph */, - {0, 0, 0x5668} /* East Asian ideograph */, - {0, 0, 0x5671} /* East Asian ideograph */, - {0, 0, 0x566F} /* East Asian ideograph */, - {0, 0, 0x5662} /* East Asian ideograph (variant of EACC 4B374C) */, - {0, 0, 0x566C} /* East Asian ideograph */, - {0, 0, 0x5680} /* East Asian ideograph */, - {0, 0, 0x568E} /* East Asian ideograph */, - {0, 0, 0x5685} /* East Asian ideograph */, - {0, 0, 0x5687} /* East Asian ideograph */, - {0, 0, 0x5690} /* East Asian ideograph */, - {0, 0, 0x568F} /* East Asian ideograph */, - {0, 0, 0x5695} /* East Asian ideograph */, - {0, 0, 0x56AE} /* East Asian ideograph (variant of EACC 453755) */, - {0, 0, 0x56A8} /* East Asian ideograph */, - {0, 0, 0x56B0} /* East Asian ideograph */, - {0, 0, 0x56A5} /* East Asian ideograph */, - {0, 0, 0x56B7} /* East Asian ideograph */, - {0, 0, 0x56B4} /* East Asian ideograph */, - {0, 0, 0x56B6} /* East Asian ideograph */, - {0, 0, 0x56C0} /* East Asian ideograph */, - {0, 0, 0x56C1} /* East Asian ideograph */, - {0, 0, 0x56C2} /* East Asian ideograph */, - {0, 0, 0x56BC} /* East Asian ideograph */, - {0, 0, 0x56CA} /* East Asian ideograph */, - {0, 0, 0x56C9} /* East Asian ideograph */, - {0, 0, 0x56C8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x56D1} /* East Asian ideograph */, - {0, 0, 0x56DB} /* East Asian ideograph */, - {0, 0, 0x56DA} /* East Asian ideograph */, - {0, 0, 0x56E0} /* East Asian ideograph */, - {0, 0, 0x56DE} /* East Asian ideograph */, - {0, 0, 0x56E4} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x56F1} /* East Asian ideograph */, - {0, 0, 0x56FA} /* East Asian ideograph */, - {0, 0, 0x5703} /* East Asian ideograph */, - {0, 0, 0x5708} /* East Asian ideograph */, - {0, 0, 0x570B} /* East Asian ideograph */, - {0, 0, 0x570D} /* East Asian ideograph */, - {0, 0, 0x5712} /* East Asian ideograph */, - {0, 0, 0x5713} /* East Asian ideograph */, - {0, 0, 0x5718} /* East Asian ideograph */, - {0, 0, 0x5716} /* East Asian ideograph */, - {0, 0, 0x571F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x572D} /* East Asian ideograph */, - {0, 0, 0x572F} /* East Asian ideograph */, - {0, 0, 0x5730} /* East Asian ideograph */, - {0, 0, 0x5728} /* East Asian ideograph */, - {0, 0, 0x5733} /* East Asian ideograph */, - {0, 0, 0x5751} /* East Asian ideograph */, - {0, 0, 0x574A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page10 = { - 0, marc8_31page10_dir -}; -/* PAGE 9 */ -struct yaz_iconv_trie_dir marc8_31page9_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x54AA} /* East Asian ideograph */, - {0, 0, 0x54A8} /* East Asian ideograph */, - {0, 0, 0x54AC} /* East Asian ideograph */, - {0, 0, 0x54C0} /* East Asian ideograph */, - {0, 0, 0x54B3} /* East Asian ideograph */, - {0, 0, 0x54A6} /* East Asian ideograph */, - {0, 0, 0x54AB} /* East Asian ideograph */, - {0, 0, 0x54C7} /* East Asian ideograph */, - {0, 0, 0x54C9} /* East Asian ideograph */, - {0, 0, 0x54C4} /* East Asian ideograph */, - {0, 0, 0x54C2} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x54C1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x54CE} /* East Asian ideograph */, - {0, 0, 0x54B1} /* East Asian ideograph */, - {0, 0, 0x54BB} /* East Asian ideograph */, - {0, 0, 0x54AF} /* East Asian ideograph */, - {0, 0, 0x54C8} /* East Asian ideograph */, - {0, 0, 0x5501} /* East Asian ideograph */, - {0, 0, 0x54FC} /* East Asian ideograph */, - {0, 0, 0x5510} /* East Asian ideograph */, - {0, 0, 0x54EA} /* East Asian ideograph */, - {0, 0, 0x5514} /* East Asian ideograph */, - {0, 0, 0x54FA} /* East Asian ideograph */, - {0, 0, 0x54E5} /* East Asian ideograph */, - {0, 0, 0x54EE} /* East Asian ideograph */, - {0, 0, 0x54F2} /* East Asian ideograph */, - {0, 0, 0x54E8} /* East Asian ideograph */, - {0, 0, 0x54E1} /* East Asian ideograph */, - {0, 0, 0x54E9} /* East Asian ideograph */, - {0, 0, 0x54ED} /* East Asian ideograph */, - {0, 0, 0x5506} /* East Asian ideograph */, - {0, 0, 0x5509} /* East Asian ideograph */, - {0, 0, 0x54E6} /* East Asian ideograph */, - {0, 0, 0x5556} /* East Asian ideograph */, - {0, 0, 0x5533} /* East Asian ideograph */, - {0, 0, 0x5546} /* East Asian ideograph */, - {0, 0, 0x5537} /* East Asian ideograph (Version J extension) */, - {0, 0, 0x554F} /* East Asian ideograph */, - {0, 0, 0x555E} /* East Asian ideograph */, - {0, 0, 0x5566} /* East Asian ideograph */, - {0, 0, 0x556A} /* East Asian ideograph */, - {0, 0, 0x554A} /* East Asian ideograph */, - {0, 0, 0x5544} /* East Asian ideograph */, - {0, 0, 0x555C} /* East Asian ideograph */, - {0, 0, 0x5531} /* East Asian ideograph */, - {0, 0, 0x5543} /* East Asian ideograph */, - {0, 0, 0x552C} /* East Asian ideograph */, - {0, 0, 0x5561} /* East Asian ideograph */, - {0, 0, 0x553E} /* East Asian ideograph */, - {0, 0, 0x5563} /* East Asian ideograph */, - {0, 0, 0x5555} /* East Asian ideograph */, - {0, 0, 0x552F} /* East Asian ideograph */, - {0, 0, 0x552E} /* East Asian ideograph */, - {0, 0, 0x5564} /* East Asian ideograph */, - {0, 0, 0x5538} /* East Asian ideograph */, - {0, 0, 0x55A7} /* East Asian ideograph */, - {0, 0, 0x5580} /* East Asian ideograph */, - {0, 0, 0x557B} /* East Asian ideograph */, - {0, 0, 0x557C} /* East Asian ideograph */, - {0, 0, 0x5527} /* East Asian ideograph */, - {0, 0, 0x5594} /* East Asian ideograph */, - {0, 0, 0x5587} /* East Asian ideograph */, - {0, 0, 0x559C} /* East Asian ideograph */, - {0, 0, 0x558B} /* East Asian ideograph */, - {0, 0, 0x55AA} /* East Asian ideograph */, - {0, 0, 0x55B3} /* East Asian ideograph */, - {0, 0, 0x558A} /* East Asian ideograph */, - {0, 0, 0x5583} /* East Asian ideograph */, - {0, 0, 0x55B1} /* East Asian ideograph */, - {0, 0, 0x55AE} /* East Asian ideograph */, - {0, 0, 0x5582} /* East Asian ideograph */, - {0, 0, 0x559F} /* East Asian ideograph */, - {0, 0, 0x559D} /* East Asian ideograph */, - {0, 0, 0x5598} /* East Asian ideograph */, - {0, 0, 0x559A} /* East Asian ideograph */, - {0, 0, 0x557E} /* East Asian ideograph */, - {0, 0, 0x55AC} /* East Asian ideograph */, - {0, 0, 0x5589} /* East Asian ideograph */, - {0, 0, 0x55B2} /* East Asian ideograph */, - {0, 0, 0x55BB} /* East Asian ideograph */, - {0, 0, 0x55E8} /* East Asian ideograph */, - {0, 0, 0x55DF} /* East Asian ideograph */, - {0, 0, 0x55D1} /* East Asian ideograph */, - {0, 0, 0x55DC} /* East Asian ideograph */, - {0, 0, 0x55E6} /* East Asian ideograph */, - {0, 0, 0x55C7} /* East Asian ideograph */, - {0, 0, 0x55D3} /* East Asian ideograph */, - {0, 0, 0x55CE} /* East Asian ideograph */, - {0, 0, 0x55E3} /* East Asian ideograph */, - {0, 0, 0x55EF} /* East Asian ideograph */, - {0, 0, 0x55E4} /* East Asian ideograph */, - {0, 0, 0x55C5} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page9 = { - 0, marc8_31page9_dir -}; -/* PAGE 8 */ -struct yaz_iconv_trie_dir marc8_31page8_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x53C9} /* East Asian ideograph */, - {0, 0, 0x53CB} /* East Asian ideograph */, - {0, 0, 0x53CA} /* East Asian ideograph */, - {0, 0, 0x53CD} /* East Asian ideograph */, - {0, 0, 0x53D6} /* East Asian ideograph */, - {0, 0, 0x53D4} /* East Asian ideograph */, - {0, 0, 0x53D7} /* East Asian ideograph */, - {0, 0, 0x53DB} /* East Asian ideograph */, - {0, 0, 0x53DF} /* East Asian ideograph */, - {0, 0, 0x66FC} /* East Asian ideograph */, - {0, 0, 0x53E2} /* East Asian ideograph */, - {0, 0, 0x53E3} /* East Asian ideograph */, - {0, 0, 0x53F8} /* East Asian ideograph */, - {0, 0, 0x53E4} /* East Asian ideograph */, - {0, 0, 0x53EE} /* East Asian ideograph */, - {0, 0, 0x53EF} /* East Asian ideograph */, - {0, 0, 0x53E9} /* East Asian ideograph */, - {0, 0, 0x53F3} /* East Asian ideograph */, - {0, 0, 0x53FC} /* East Asian ideograph */, - {0, 0, 0x53E8} /* East Asian ideograph */, - {0, 0, 0x53E6} /* East Asian ideograph */, - {0, 0, 0x53EC} /* East Asian ideograph */, - {0, 0, 0x53EB} /* East Asian ideograph */, - {0, 0, 0x53F0} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x53E5} /* East Asian ideograph */, - {0, 0, 0x53F1} /* East Asian ideograph */, - {0, 0, 0x53ED} /* East Asian ideograph */, - {0, 0, 0x53EA} /* East Asian ideograph */, - {0, 0, 0x53F2} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x540B} /* East Asian ideograph */, - {0, 0, 0x5409} /* East Asian ideograph */, - {0, 0, 0x5410} /* East Asian ideograph */, - {0, 0, 0x540F} /* East Asian ideograph */, - {0, 0, 0x540C} /* East Asian ideograph */, - {0, 0, 0x540A} /* East Asian ideograph */, - {0, 0, 0x540D} /* East Asian ideograph */, - {0, 0, 0x5404} /* East Asian ideograph */, - {0, 0, 0x5403} /* East Asian ideograph */, - {0, 0, 0x5412} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5406} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x542D} /* East Asian ideograph */, - {0, 0, 0x541D} /* East Asian ideograph */, - {0, 0, 0x541E} /* East Asian ideograph */, - {0, 0, 0x541B} /* East Asian ideograph */, - {0, 0, 0x544E} /* East Asian ideograph */, - {0, 0, 0x543E} /* East Asian ideograph */, - {0, 0, 0x5427} /* East Asian ideograph */, - {0, 0, 0x5440} /* East Asian ideograph */, - {0, 0, 0x5431} /* East Asian ideograph */, - {0, 0, 0x5446} /* East Asian ideograph */, - {0, 0, 0x543C} /* East Asian ideograph */, - {0, 0, 0x5443} /* East Asian ideograph */, - {0, 0, 0x5426} /* East Asian ideograph */, - {0, 0, 0x5420} /* East Asian ideograph */, - {0, 0, 0x5436} /* East Asian ideograph */, - {0, 0, 0x5433} /* East Asian ideograph */, - {0, 0, 0x5435} /* East Asian ideograph */, - {0, 0, 0x542E} /* East Asian ideograph */, - {0, 0, 0x544A} /* East Asian ideograph */, - {0, 0, 0x5448} /* East Asian ideograph */, - {0, 0, 0x543B} /* East Asian ideograph */, - {0, 0, 0x5438} /* East Asian ideograph */, - {0, 0, 0x5439} /* East Asian ideograph */, - {0, 0, 0x5442} /* East Asian ideograph */, - {0, 0, 0x542B} /* East Asian ideograph */, - {0, 0, 0x541F} /* East Asian ideograph */, - {0, 0, 0x5429} /* East Asian ideograph */, - {0, 0, 0x5473} /* East Asian ideograph */, - {0, 0, 0x5462} /* East Asian ideograph */, - {0, 0, 0x5475} /* East Asian ideograph */, - {0, 0, 0x5495} /* East Asian ideograph */, - {0, 0, 0x5478} /* East Asian ideograph */, - {0, 0, 0x5496} /* East Asian ideograph */, - {0, 0, 0x5477} /* East Asian ideograph */, - {0, 0, 0x547B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5492} /* East Asian ideograph */, - {0, 0, 0x5484} /* East Asian ideograph */, - {0, 0, 0x547C} /* East Asian ideograph */, - {0, 0, 0x5468} /* East Asian ideograph */, - {0, 0, 0x5486} /* East Asian ideograph */, - {0, 0, 0x548B} /* East Asian ideograph */, - {0, 0, 0x548C} /* East Asian ideograph */, - {0, 0, 0x5490} /* East Asian ideograph */, - {0, 0, 0x547D} /* East Asian ideograph */, - {0, 0, 0x5476} /* East Asian ideograph */, - {0, 0, 0x5471} /* East Asian ideograph */, - {0, 0, 0x549A} /* East Asian ideograph */, - {0, 0, 0x548E} /* East Asian ideograph */, - {0, 0, 0x54A9} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page8 = { - 0, marc8_31page8_dir -}; -/* PAGE 7 */ -struct yaz_iconv_trie_dir marc8_31page7_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x528D} /* East Asian ideograph */, - {0, 0, 0x5289} /* East Asian ideograph */, - {0, 0, 0x5291} /* East Asian ideograph */, - {0, 0, 0x529B} /* East Asian ideograph */, - {0, 0, 0x529F} /* East Asian ideograph */, - {0, 0, 0x52A0} /* East Asian ideograph */, - {0, 0, 0x52A3} /* East Asian ideograph */, - {0, 0, 0x52AB} /* East Asian ideograph */, - {0, 0, 0x52A9} /* East Asian ideograph */, - {0, 0, 0x52AC} /* East Asian ideograph */, - {0, 0, 0x52AA} /* East Asian ideograph */, - {0, 0, 0x52BE} /* East Asian ideograph */, - {0, 0, 0x52C7} /* East Asian ideograph */, - {0, 0, 0x52C3} /* East Asian ideograph */, - {0, 0, 0x52C1} /* East Asian ideograph */, - {0, 0, 0x52C9} /* East Asian ideograph */, - {0, 0, 0x52D8} /* East Asian ideograph */, - {0, 0, 0x52D2} /* East Asian ideograph */, - {0, 0, 0x52D9} /* East Asian ideograph */, - {0, 0, 0x52D5} /* East Asian ideograph */, - {0, 0, 0x52DE} /* East Asian ideograph */, - {0, 0, 0x52DB} /* East Asian ideograph */, - {0, 0, 0x52DD} /* East Asian ideograph */, - {0, 0, 0x52E2} /* East Asian ideograph */, - {0, 0, 0x52E4} /* East Asian ideograph */, - {0, 0, 0x52DF} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x52F5} /* East Asian ideograph */, - {0, 0, 0x52F8} /* East Asian ideograph */, - {0, 0, 0x52FB} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x52FF} /* East Asian ideograph */, - {0, 0, 0x5305} /* East Asian ideograph */, - {0, 0, 0x5306} /* East Asian ideograph */, - {0, 0, 0x5308} /* East Asian ideograph */, - {0, 0, 0x530D} /* East Asian ideograph */, - {0, 0, 0x5310} /* East Asian ideograph */, - {0, 0, 0x530F} /* East Asian ideograph */, - {0, 0, 0x5315} /* East Asian ideograph */, - {0, 0, 0x5316} /* East Asian ideograph */, - {0, 0, 0x5317} /* East Asian ideograph */, - {0, 0, 0x5319} /* East Asian ideograph */, - {0, 0, 0x53F5} /* East Asian ideograph */, - {0, 0, 0x531D} /* East Asian ideograph */, - {0, 0, 0x5321} /* East Asian ideograph */, - {0, 0, 0x5320} /* East Asian ideograph */, - {0, 0, 0x5323} /* East Asian ideograph */, - {0, 0, 0x532A} /* East Asian ideograph */, - {0, 0, 0x532F} /* East Asian ideograph */, - {0, 0, 0x5331} /* East Asian ideograph */, - {0, 0, 0x5339} /* East Asian ideograph */, - {0, 0, 0x533E} /* East Asian ideograph */, - {0, 0, 0x5340} /* East Asian ideograph */, - {0, 0, 0x533F} /* East Asian ideograph */, - {0, 0, 0x5341} /* East Asian ideograph */, - {0, 0, 0x5343} /* East Asian ideograph */, - {0, 0, 0x5345} /* East Asian ideograph */, - {0, 0, 0x5348} /* East Asian ideograph */, - {0, 0, 0x5347} /* East Asian ideograph */, - {0, 0, 0x534A} /* East Asian ideograph */, - {0, 0, 0x5349} /* East Asian ideograph (variant of EACC 2D345D) */, - {0, 0, 0}, - {0, 0, 0x5352} /* East Asian ideograph */, - {0, 0, 0x5354} /* East Asian ideograph */, - {0, 0, 0x5353} /* East Asian ideograph */, - {0, 0, 0x5351} /* East Asian ideograph */, - {0, 0, 0x5357} /* East Asian ideograph */, - {0, 0, 0x535A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x535E} /* East Asian ideograph */, - {0, 0, 0x5361} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5366} /* East Asian ideograph */, - {0, 0, 0x536F} /* East Asian ideograph */, - {0, 0, 0x536E} /* East Asian ideograph */, - {0, 0, 0x5370} /* East Asian ideograph */, - {0, 0, 0x5371} /* East Asian ideograph */, - {0, 0, 0x537D} /* East Asian ideograph */, - {0, 0, 0x5375} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5378} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x537B} /* East Asian ideograph */, - {0, 0, 0x537F} /* East Asian ideograph */, - {0, 0, 0x5384} /* East Asian ideograph */, - {0, 0, 0x539A} /* East Asian ideograph */, - {0, 0, 0x539D} /* East Asian ideograph */, - {0, 0, 0x539F} /* East Asian ideograph */, - {0, 0, 0x53A5} /* East Asian ideograph */, - {0, 0, 0x53AD} /* East Asian ideograph */, - {0, 0, 0x53B2} /* East Asian ideograph */, - {0, 0, 0x53BB} /* East Asian ideograph */, - {0, 0, 0x53C3} /* East Asian ideograph */, - {0, 0, 0x53C8} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page7 = { - 0, marc8_31page7_dir -}; -/* PAGE 6 */ -struct yaz_iconv_trie_dir marc8_31page6_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5167} /* East Asian ideograph */, - {0, 0, 0x5168} /* East Asian ideograph */, - {0, 0, 0x5169} /* East Asian ideograph */, - {0, 0, 0x516B} /* East Asian ideograph */, - {0, 0, 0x516D} /* East Asian ideograph */, - {0, 0, 0x516E} /* East Asian ideograph */, - {0, 0, 0x516C} /* East Asian ideograph */, - {0, 0, 0x5171} /* East Asian ideograph */, - {0, 0, 0x5175} /* East Asian ideograph */, - {0, 0, 0x5176} /* East Asian ideograph */, - {0, 0, 0x5177} /* East Asian ideograph */, - {0, 0, 0x5178} /* East Asian ideograph */, - {0, 0, 0x517C} /* East Asian ideograph */, - {0, 0, 0x5180} /* East Asian ideograph */, - {0, 0, 0x5189} /* East Asian ideograph */, - {0, 0, 0x518C} /* East Asian ideograph */, - {0, 0, 0x518D} /* East Asian ideograph */, - {0, 0, 0x5192} /* East Asian ideograph */, - {0, 0, 0x5191} /* East Asian ideograph */, - {0, 0, 0x5195} /* East Asian ideograph */, - {0, 0, 0x6700} /* East Asian ideograph */, - {0, 0, 0x5197} /* East Asian ideograph */, - {0, 0, 0x51A0} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x51A5} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x51B0} /* East Asian ideograph */, - {0, 0, 0x51B6} /* East Asian ideograph */, - {0, 0, 0x51B7} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x51CD} /* East Asian ideograph */, - {0, 0, 0x51CC} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x51DC} /* East Asian ideograph */, - {0, 0, 0x51DD} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x51F0} /* East Asian ideograph */, - {0, 0, 0x51F1} /* East Asian ideograph */, - {0, 0, 0x51F3} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x51FA} /* East Asian ideograph */, - {0, 0, 0x51F9} /* East Asian ideograph */, - {0, 0, 0x51F8} /* East Asian ideograph */, - {0, 0, 0x51FD} /* East Asian ideograph */, - {0, 0, 0x5200} /* East Asian ideograph */, - {0, 0, 0x5201} /* East Asian ideograph */, - {0, 0, 0x5203} /* East Asian ideograph */, - {0, 0, 0x5207} /* East Asian ideograph */, - {0, 0, 0x5206} /* East Asian ideograph */, - {0, 0, 0x5208} /* East Asian ideograph */, - {0, 0, 0x520A} /* East Asian ideograph */, - {0, 0, 0x5211} /* East Asian ideograph */, - {0, 0, 0x5217} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x520E} /* East Asian ideograph */, - {0, 0, 0x5224} /* East Asian ideograph */, - {0, 0, 0x5225} /* East Asian ideograph */, - {0, 0, 0x5220} /* East Asian ideograph */, - {0, 0, 0x5228} /* East Asian ideograph */, - {0, 0, 0x5229} /* East Asian ideograph */, - {0, 0, 0x5238} /* East Asian ideograph */, - {0, 0, 0x523B} /* East Asian ideograph */, - {0, 0, 0x5237} /* East Asian ideograph */, - {0, 0, 0x5230} /* East Asian ideograph */, - {0, 0, 0x523A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5241} /* East Asian ideograph */, - {0, 0, 0x5239} /* East Asian ideograph */, - {0, 0, 0x5243} /* East Asian ideograph */, - {0, 0, 0x524D} /* East Asian ideograph */, - {0, 0, 0x524C} /* East Asian ideograph */, - {0, 0, 0x524B} /* East Asian ideograph */, - {0, 0, 0x524A} /* East Asian ideograph */, - {0, 0, 0x5247} /* East Asian ideograph */, - {0, 0, 0x525C} /* East Asian ideograph */, - {0, 0, 0x5256} /* East Asian ideograph */, - {0, 0, 0x525B} /* East Asian ideograph */, - {0, 0, 0x5254} /* East Asian ideograph */, - {0, 0, 0x525D} /* East Asian ideograph */, - {0, 0, 0x526A} /* East Asian ideograph */, - {0, 0, 0x526F} /* East Asian ideograph */, - {0, 0, 0x5272} /* East Asian ideograph */, - {0, 0, 0x5274} /* East Asian ideograph */, - {0, 0, 0x5269} /* East Asian ideograph */, - {0, 0, 0x5275} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x527D} /* East Asian ideograph */, - {0, 0, 0x527F} /* East Asian ideograph */, - {0, 0, 0x5283} /* East Asian ideograph */, - {0, 0, 0x5288} /* East Asian ideograph */, - {0, 0, 0x5287} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page6 = { - 0, marc8_31page6_dir -}; -/* PAGE 5 */ -struct yaz_iconv_trie_dir marc8_31page5_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5018} /* East Asian ideograph */, - {0, 0, 0x4FF1} /* East Asian ideograph */, - {0, 0, 0x5021} /* East Asian ideograph */, - {0, 0, 0x500B} /* East Asian ideograph */, - {0, 0, 0x5019} /* East Asian ideograph */, - {0, 0, 0x5000} /* East Asian ideograph */, - {0, 0, 0x4FEE} /* East Asian ideograph */, - {0, 0, 0x4FF3} /* East Asian ideograph */, - {0, 0, 0x502D} /* East Asian ideograph */, - {0, 0, 0x5003} /* East Asian ideograph */, - {0, 0, 0x4FFE} /* East Asian ideograph */, - {0, 0, 0x502A} /* East Asian ideograph */, - {0, 0, 0x502B} /* East Asian ideograph */, - {0, 0, 0x505C} /* East Asian ideograph */, - {0, 0, 0x504F} /* East Asian ideograph */, - {0, 0, 0x5065} /* East Asian ideograph */, - {0, 0, 0x5047} /* East Asian ideograph */, - {0, 0, 0x505A} /* East Asian ideograph */, - {0, 0, 0x5049} /* East Asian ideograph */, - {0, 0, 0x5043} /* East Asian ideograph */, - {0, 0, 0x5074} /* East Asian ideograph */, - {0, 0, 0x5076} /* East Asian ideograph */, - {0, 0, 0x504E} /* East Asian ideograph */, - {0, 0, 0x5075} /* East Asian ideograph */, - {0, 0, 0x504C} /* East Asian ideograph */, - {0, 0, 0x5055} /* East Asian ideograph */, - {0, 0, 0x500F} /* East Asian ideograph */, - {0, 0, 0x5077} /* East Asian ideograph */, - {0, 0, 0x508D} /* East Asian ideograph */, - {0, 0, 0x50A2} /* East Asian ideograph */, - {0, 0, 0x5085} /* East Asian ideograph */, - {0, 0, 0x5099} /* East Asian ideograph */, - {0, 0, 0x5091} /* East Asian ideograph */, - {0, 0, 0x5080} /* East Asian ideograph */, - {0, 0, 0x5096} /* East Asian ideograph */, - {0, 0, 0x5098} /* East Asian ideograph */, - {0, 0, 0x50AD} /* East Asian ideograph */, - {0, 0, 0x50B3} /* East Asian ideograph */, - {0, 0, 0x50B5} /* East Asian ideograph */, - {0, 0, 0x50B2} /* East Asian ideograph */, - {0, 0, 0x50C5} /* East Asian ideograph */, - {0, 0, 0x50BE} /* East Asian ideograph */, - {0, 0, 0x50AC} /* East Asian ideograph */, - {0, 0, 0x50B7} /* East Asian ideograph */, - {0, 0, 0x50AF} /* East Asian ideograph */, - {0, 0, 0x50E7} /* East Asian ideograph */, - {0, 0, 0x50EE} /* East Asian ideograph */, - {0, 0, 0x50F1} /* East Asian ideograph */, - {0, 0, 0x50E5} /* East Asian ideograph */, - {0, 0, 0x50D6} /* East Asian ideograph */, - {0, 0, 0x50ED} /* East Asian ideograph */, - {0, 0, 0x50DA} /* East Asian ideograph */, - {0, 0, 0x50D5} /* East Asian ideograph */, - {0, 0, 0x507D} /* East Asian ideograph */, - {0, 0, 0x50CF} /* East Asian ideograph */, - {0, 0, 0x50D1} /* East Asian ideograph */, - {0, 0, 0x5100} /* East Asian ideograph */, - {0, 0, 0x5104} /* East Asian ideograph */, - {0, 0, 0x50FB} /* East Asian ideograph */, - {0, 0, 0x50F5} /* East Asian ideograph */, - {0, 0, 0x50F9} /* East Asian ideograph */, - {0, 0, 0x5102} /* East Asian ideograph */, - {0, 0, 0x510D} /* East Asian ideograph */, - {0, 0, 0x5108} /* East Asian ideograph */, - {0, 0, 0x5109} /* East Asian ideograph */, - {0, 0, 0x5110} /* East Asian ideograph */, - {0, 0, 0x5118} /* East Asian ideograph */, - {0, 0, 0x5112} /* East Asian ideograph */, - {0, 0, 0x5114} /* East Asian ideograph */, - {0, 0, 0x512A} /* East Asian ideograph */, - {0, 0, 0x511F} /* East Asian ideograph */, - {0, 0, 0x5121} /* East Asian ideograph */, - {0, 0, 0x5132} /* East Asian ideograph */, - {0, 0, 0x5137} /* East Asian ideograph */, - {0, 0, 0x513C} /* East Asian ideograph */, - {0, 0, 0x5140} /* East Asian ideograph */, - {0, 0, 0x5143} /* East Asian ideograph */, - {0, 0, 0x5141} /* East Asian ideograph */, - {0, 0, 0x5145} /* East Asian ideograph */, - {0, 0, 0x5144} /* East Asian ideograph */, - {0, 0, 0x5146} /* East Asian ideograph */, - {0, 0, 0x5149} /* East Asian ideograph */, - {0, 0, 0x5147} /* East Asian ideograph */, - {0, 0, 0x5148} /* East Asian ideograph */, - {0, 0, 0x514C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x514D} /* East Asian ideograph */, - {0, 0, 0x5155} /* East Asian ideograph */, - {0, 0, 0x5154} /* East Asian ideograph */, - {0, 0, 0x5152} /* East Asian ideograph */, - {0, 0, 0x5157} /* East Asian ideograph */, - {0, 0, 0x515C} /* East Asian ideograph */, - {0, 0, 0x5162} /* East Asian ideograph */, - {0, 0, 0x5165} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page5 = { - 0, marc8_31page5_dir -}; -/* PAGE 4 */ -struct yaz_iconv_trie_dir marc8_31page4_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x4F11} /* East Asian ideograph */, - {0, 0, 0x4F10} /* East Asian ideograph */, - {0, 0, 0x4F0F} /* East Asian ideograph */, - {0, 0, 0x4EF2} /* East Asian ideograph */, - {0, 0, 0x4F01} /* East Asian ideograph */, - {0, 0, 0x4EF3} /* East Asian ideograph */, - {0, 0, 0x4EF6} /* East Asian ideograph */, - {0, 0, 0x4EF0} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4F4F} /* East Asian ideograph */, - {0, 0, 0x4F4D} /* East Asian ideograph */, - {0, 0, 0x4F34} /* East Asian ideograph */, - {0, 0, 0x4F47} /* East Asian ideograph */, - {0, 0, 0x4F57} /* East Asian ideograph */, - {0, 0, 0x4F3A} /* East Asian ideograph */, - {0, 0, 0x4F5E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4F5B} /* East Asian ideograph */, - {0, 0, 0x4F55} /* East Asian ideograph */, - {0, 0, 0x4F30} /* East Asian ideograph */, - {0, 0, 0x4F50} /* East Asian ideograph */, - {0, 0, 0x4F51} /* East Asian ideograph */, - {0, 0, 0x4F3D} /* East Asian ideograph */, - {0, 0, 0x4F48} /* East Asian ideograph */, - {0, 0, 0x4F46} /* East Asian ideograph */, - {0, 0, 0x4F38} /* East Asian ideograph */, - {0, 0, 0x4F43} /* East Asian ideograph */, - {0, 0, 0x4F54} /* East Asian ideograph */, - {0, 0, 0x4F3C} /* East Asian ideograph */, - {0, 0, 0x4F63} /* East Asian ideograph */, - {0, 0, 0x4F5C} /* East Asian ideograph */, - {0, 0, 0x4F60} /* East Asian ideograph */, - {0, 0, 0x4F2F} /* East Asian ideograph */, - {0, 0, 0x4F4E} /* East Asian ideograph */, - {0, 0, 0x4F5D} /* East Asian ideograph */, - {0, 0, 0x4F36} /* East Asian ideograph */, - {0, 0, 0x4F9D} /* East Asian ideograph */, - {0, 0, 0x4F6F} /* East Asian ideograph */, - {0, 0, 0x4F75} /* East Asian ideograph */, - {0, 0, 0x4F8D} /* East Asian ideograph */, - {0, 0, 0x4F73} /* East Asian ideograph */, - {0, 0, 0x4F7F} /* East Asian ideograph */, - {0, 0, 0x4F9B} /* East Asian ideograph */, - {0, 0, 0x4F86} /* East Asian ideograph */, - {0, 0, 0x4F6C} /* East Asian ideograph */, - {0, 0, 0x4F8B} /* East Asian ideograph */, - {0, 0, 0x4F96} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4F83} /* East Asian ideograph */, - {0, 0, 0x4F7B} /* East Asian ideograph */, - {0, 0, 0x4F88} /* East Asian ideograph */, - {0, 0, 0x4F69} /* East Asian ideograph */, - {0, 0, 0x4F8F} /* East Asian ideograph */, - {0, 0, 0x4F7E} /* East Asian ideograph */, - {0, 0, 0x4FE1} /* East Asian ideograph */, - {0, 0, 0x4FD1} /* East Asian ideograph */, - {0, 0, 0x4FB5} /* East Asian ideograph */, - {0, 0, 0x4FAF} /* East Asian ideograph */, - {0, 0, 0x4FBF} /* East Asian ideograph */, - {0, 0, 0x4FDE} /* East Asian ideograph */, - {0, 0, 0x4FE0} /* East Asian ideograph */, - {0, 0, 0x4FCF} /* East Asian ideograph */, - {0, 0, 0x4FB6} /* East Asian ideograph */, - {0, 0, 0x4FDA} /* East Asian ideograph */, - {0, 0, 0x4FDD} /* East Asian ideograph */, - {0, 0, 0x4FC3} /* East Asian ideograph */, - {0, 0, 0x4FD8} /* East Asian ideograph */, - {0, 0, 0x4FDF} /* East Asian ideograph */, - {0, 0, 0x4FCA} /* East Asian ideograph */, - {0, 0, 0x4FAE} /* East Asian ideograph */, - {0, 0, 0x4FD0} /* East Asian ideograph */, - {0, 0, 0x4FC4} /* East Asian ideograph */, - {0, 0, 0x4FC2} /* East Asian ideograph */, - {0, 0, 0x4FCE} /* East Asian ideograph */, - {0, 0, 0x4FD7} /* East Asian ideograph */, - {0, 0, 0x5009} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x500D} /* East Asian ideograph */, - {0, 0, 0x4FEF} /* East Asian ideograph */, - {0, 0, 0x5026} /* East Asian ideograph */, - {0, 0, 0x500C} /* East Asian ideograph */, - {0, 0, 0x5025} /* East Asian ideograph */, - {0, 0, 0x5011} /* East Asian ideograph */, - {0, 0, 0x4FF8} /* East Asian ideograph */, - {0, 0, 0x5028} /* East Asian ideograph */, - {0, 0, 0x5014} /* East Asian ideograph */, - {0, 0, 0x5016} /* East Asian ideograph */, - {0, 0, 0x5029} /* East Asian ideograph */, - {0, 0, 0x5006} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x5012} /* East Asian ideograph */, - {0, 0, 0x503C} /* East Asian ideograph */, - {0, 0, 0x501A} /* East Asian ideograph */, - {0, 0, 0x4FFA} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page4 = { - 0, marc8_31page4_dir -}; -/* PAGE 3 */ -struct yaz_iconv_trie_dir marc8_31page3_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x4E00} /* East Asian ideograph */, - {0, 0, 0x4E01} /* East Asian ideograph */, - {0, 0, 0x4E03} /* East Asian ideograph */, - {0, 0, 0x4E09} /* East Asian ideograph */, - {0, 0, 0x4E0B} /* East Asian ideograph */, - {0, 0, 0x4E0A} /* East Asian ideograph */, - {0, 0, 0x4E08} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4E10} /* East Asian ideograph */, - {0, 0, 0x4E0D} /* East Asian ideograph */, - {0, 0, 0x4E14} /* East Asian ideograph */, - {0, 0, 0x4E19} /* East Asian ideograph */, - {0, 0, 0x4E16} /* East Asian ideograph */, - {0, 0, 0x4E15} /* East Asian ideograph */, - {0, 0, 0x4E18} /* East Asian ideograph */, - {0, 0, 0x4E22} /* East Asian ideograph */, - {0, 0, 0x4E1E} /* East Asian ideograph */, - {0, 0, 0x4E26} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4E2D} /* East Asian ideograph */, - {0, 0, 0x4E32} /* East Asian ideograph */, - {0, 0, 0x51E1} /* East Asian ideograph */, - {0, 0, 0x4E38} /* East Asian ideograph */, - {0, 0, 0x4E39} /* East Asian ideograph */, - {0, 0, 0x4E3B} /* East Asian ideograph */, - {0, 0, 0x4E43} /* East Asian ideograph */, - {0, 0, 0x4E45} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4E4B} /* East Asian ideograph */, - {0, 0, 0x5C39} /* East Asian ideograph */, - {0, 0, 0x4E4F} /* East Asian ideograph */, - {0, 0, 0x4E4E} /* East Asian ideograph */, - {0, 0, 0x4E4D} /* East Asian ideograph */, - {0, 0, 0x4E52} /* East Asian ideograph */, - {0, 0, 0x4E53} /* East Asian ideograph */, - {0, 0, 0x4E56} /* East Asian ideograph */, - {0, 0, 0x4E58} /* East Asian ideograph */, - {0, 0, 0x4E59} /* East Asian ideograph */, - {0, 0, 0x4E5D} /* East Asian ideograph */, - {0, 0, 0x4E5F} /* East Asian ideograph */, - {0, 0, 0x4E5E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4E73} /* East Asian ideograph */, - {0, 0, 0x4E7E} /* East Asian ideograph */, - {0, 0, 0x4E82} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x4E8B} /* East Asian ideograph */, - {0, 0, 0x4E8C} /* East Asian ideograph */, - {0, 0, 0x4E8E} /* East Asian ideograph */, - {0, 0, 0x4E95} /* East Asian ideograph */, - {0, 0, 0x4E94} /* East Asian ideograph */, - {0, 0, 0x4E92} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4E99} /* East Asian ideograph (variant of EACC 4B3057) */, - {0, 0, 0x4E9E} /* East Asian ideograph */, - {0, 0, 0x4E9B} /* East Asian ideograph */, - {0, 0, 0x4E9F} /* East Asian ideograph */, - {0, 0, 0x4EA1} /* East Asian ideograph */, - {0, 0, 0x4EA6} /* East Asian ideograph */, - {0, 0, 0x4EA5} /* East Asian ideograph */, - {0, 0, 0x4EA4} /* East Asian ideograph */, - {0, 0, 0x4EA8} /* East Asian ideograph */, - {0, 0, 0x4EAB} /* East Asian ideograph */, - {0, 0, 0x4EAC} /* East Asian ideograph */, - {0, 0, 0x4EAD} /* East Asian ideograph */, - {0, 0, 0x4EAE} /* East Asian ideograph */, - {0, 0, 0x4EBA} /* East Asian ideograph */, - {0, 0, 0x4ECA} /* East Asian ideograph */, - {0, 0, 0x4EC1} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4EC3} /* East Asian ideograph */, - {0, 0, 0x4EC4} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4ECD} /* East Asian ideograph */, - {0, 0, 0x4EC7} /* East Asian ideograph */, - {0, 0, 0x4ECB} /* East Asian ideograph */, - {0, 0, 0x4EE4} /* East Asian ideograph */, - {0, 0, 0x4ED8} /* East Asian ideograph */, - {0, 0, 0x4ED5} /* East Asian ideograph */, - {0, 0, 0x4ED6} /* East Asian ideograph */, - {0, 0, 0x4EDE} /* East Asian ideograph */, - {0, 0, 0x4EE3} /* East Asian ideograph */, - {0, 0, 0x4ED4} /* East Asian ideograph */, - {0, 0, 0x4ED7} /* East Asian ideograph */, - {0, 0, 0x4ED9} /* East Asian ideograph */, - {0, 0, 0x4EE5} /* East Asian ideograph */, - {0, 0, 0x4EFF} /* East Asian ideograph */, - {0, 0, 0x4F09} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x4EFB} /* East Asian ideograph */, - {0, 0, 0x4F0A} /* East Asian ideograph */, - {0, 0, 0x4F15} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page3 = { - 0, marc8_31page3_dir -}; -/* PAGE 2 */ -struct yaz_iconv_trie_flat marc8_31page2_flat[] = { - {"\x30", 0, 0x3007}, /* East Asian ideograph (number zero) */ - {"", 0} -}; -struct yaz_iconv_trie marc8_31page2 = { - marc8_31page2_flat, 0 -}; -/* PAGE 1 */ -struct yaz_iconv_trie_dir marc8_31page1_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {826, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {827, 0, 0}, - {828, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {3, 0, 0}, - {4, 0, 0}, - {5, 0, 0}, - {6, 0, 0}, - {7, 0, 0}, - {8, 0, 0}, - {9, 0, 0}, - {10, 0, 0}, - {11, 0, 0}, - {12, 0, 0}, - {13, 0, 0}, - {14, 0, 0}, - {15, 0, 0}, - {16, 0, 0}, - {17, 0, 0}, - {18, 0, 0}, - {19, 0, 0}, - {20, 0, 0}, - {21, 0, 0}, - {22, 0, 0}, - {23, 0, 0}, - {24, 0, 0}, - {25, 0, 0}, - {26, 0, 0}, - {27, 0, 0}, - {28, 0, 0}, - {29, 0, 0}, - {30, 0, 0}, - {31, 0, 0}, - {32, 0, 0}, - {33, 0, 0}, - {34, 0, 0}, - {35, 0, 0}, - {36, 0, 0}, - {37, 0, 0}, - {38, 0, 0}, - {39, 0, 0}, - {40, 0, 0}, - {41, 0, 0}, - {42, 0, 0}, - {43, 0, 0}, - {44, 0, 0}, - {45, 0, 0}, - {46, 0, 0}, - {47, 0, 0}, - {48, 0, 0}, - {49, 0, 0}, - {50, 0, 0}, - {51, 0, 0}, - {52, 0, 0}, - {53, 0, 0}, - {54, 0, 0}, - {55, 0, 0}, - {56, 0, 0}, - {57, 0, 0}, - {58, 0, 0}, - {59, 0, 0}, - {60, 0, 0}, - {61, 0, 0}, - {62, 0, 0}, - {63, 0, 0}, - {64, 0, 0}, - {65, 0, 0}, - {66, 0, 0}, - {67, 0, 0}, - {68, 0, 0}, - {69, 0, 0}, - {70, 0, 0}, - {71, 0, 0}, - {72, 0, 0}, - {73, 0, 0}, - {74, 0, 0}, - {75, 0, 0}, - {76, 0, 0}, - {77, 0, 0}, - {78, 0, 0}, - {79, 0, 0}, - {80, 0, 0}, - {81, 0, 0}, - {82, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page1 = { - 0, marc8_31page1_dir -}; -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8_31page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {2, 0, 0}, - {83, 0, 0}, - {177, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {241, 0, 0}, - {314, 0, 0}, - {381, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {438, 0, 0}, - {498, 0, 0}, - {545, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {546, 0, 0}, - {597, 0, 0}, - {598, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {599, 0, 0}, - {641, 0, 0}, - {642, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {643, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {644, 0, 0}, - {645, 0, 0}, - {646, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {647, 0, 0}, - {710, 0, 0}, - {753, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {754, 0, 0}, - {755, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {756, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {798, 0, 0}, - {794, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8_31page0 = { - 0, marc8_31page0_dir -}; -struct yaz_iconv_trie *marc8_31ptrs [] = { - &marc8_31page0, - &marc8_31page1, - &marc8_31page2, - &marc8_31page3, - &marc8_31page4, - &marc8_31page5, - &marc8_31page6, - &marc8_31page7, - &marc8_31page8, - &marc8_31page9, - &marc8_31page10, - &marc8_31page11, - &marc8_31page12, - &marc8_31page13, - &marc8_31page14, - &marc8_31page15, - &marc8_31page16, - &marc8_31page17, - &marc8_31page18, - &marc8_31page19, - &marc8_31page20, - &marc8_31page21, - &marc8_31page22, - &marc8_31page23, - &marc8_31page24, - &marc8_31page25, - &marc8_31page26, - &marc8_31page27, - &marc8_31page28, - &marc8_31page29, - &marc8_31page30, - &marc8_31page31, - &marc8_31page32, - &marc8_31page33, - &marc8_31page34, - &marc8_31page35, - &marc8_31page36, - &marc8_31page37, - &marc8_31page38, - &marc8_31page39, - &marc8_31page40, - &marc8_31page41, - &marc8_31page42, - &marc8_31page43, - &marc8_31page44, - &marc8_31page45, - &marc8_31page46, - &marc8_31page47, - &marc8_31page48, - &marc8_31page49, - &marc8_31page50, - &marc8_31page51, - &marc8_31page52, - &marc8_31page53, - &marc8_31page54, - &marc8_31page55, - &marc8_31page56, - &marc8_31page57, - &marc8_31page58, - &marc8_31page59, - &marc8_31page60, - &marc8_31page61, - &marc8_31page62, - &marc8_31page63, - &marc8_31page64, - &marc8_31page65, - &marc8_31page66, - &marc8_31page67, - &marc8_31page68, - &marc8_31page69, - &marc8_31page70, - &marc8_31page71, - &marc8_31page72, - &marc8_31page73, - &marc8_31page74, - &marc8_31page75, - &marc8_31page76, - &marc8_31page77, - &marc8_31page78, - &marc8_31page79, - &marc8_31page80, - &marc8_31page81, - &marc8_31page82, - &marc8_31page83, - &marc8_31page84, - &marc8_31page85, - &marc8_31page86, - &marc8_31page87, - &marc8_31page88, - &marc8_31page89, - &marc8_31page90, - &marc8_31page91, - &marc8_31page92, - &marc8_31page93, - &marc8_31page94, - &marc8_31page95, - &marc8_31page96, - &marc8_31page97, - &marc8_31page98, - &marc8_31page99, - &marc8_31page100, - &marc8_31page101, - &marc8_31page102, - &marc8_31page103, - &marc8_31page104, - &marc8_31page105, - &marc8_31page106, - &marc8_31page107, - &marc8_31page108, - &marc8_31page109, - &marc8_31page110, - &marc8_31page111, - &marc8_31page112, - &marc8_31page113, - &marc8_31page114, - &marc8_31page115, - &marc8_31page116, - &marc8_31page117, - &marc8_31page118, - &marc8_31page119, - &marc8_31page120, - &marc8_31page121, - &marc8_31page122, - &marc8_31page123, - &marc8_31page124, - &marc8_31page125, - &marc8_31page126, - &marc8_31page127, - &marc8_31page128, - &marc8_31page129, - &marc8_31page130, - &marc8_31page131, - &marc8_31page132, - &marc8_31page133, - &marc8_31page134, - &marc8_31page135, - &marc8_31page136, - &marc8_31page137, - &marc8_31page138, - &marc8_31page139, - &marc8_31page140, - &marc8_31page141, - &marc8_31page142, - &marc8_31page143, - &marc8_31page144, - &marc8_31page145, - &marc8_31page146, - &marc8_31page147, - &marc8_31page148, - &marc8_31page149, - &marc8_31page150, - &marc8_31page151, - &marc8_31page152, - &marc8_31page153, - &marc8_31page154, - &marc8_31page155, - &marc8_31page156, - &marc8_31page157, - &marc8_31page158, - &marc8_31page159, - &marc8_31page160, - &marc8_31page161, - &marc8_31page162, - &marc8_31page163, - &marc8_31page164, - &marc8_31page165, - &marc8_31page166, - &marc8_31page167, - &marc8_31page168, - &marc8_31page169, - &marc8_31page170, - &marc8_31page171, - &marc8_31page172, - &marc8_31page173, - &marc8_31page174, - &marc8_31page175, - &marc8_31page176, - &marc8_31page177, - &marc8_31page178, - &marc8_31page179, - &marc8_31page180, - &marc8_31page181, - &marc8_31page182, - &marc8_31page183, - &marc8_31page184, - &marc8_31page185, - &marc8_31page186, - &marc8_31page187, - &marc8_31page188, - &marc8_31page189, - &marc8_31page190, - &marc8_31page191, - &marc8_31page192, - &marc8_31page193, - &marc8_31page194, - &marc8_31page195, - &marc8_31page196, - &marc8_31page197, - &marc8_31page198, - &marc8_31page199, - &marc8_31page200, - &marc8_31page201, - &marc8_31page202, - &marc8_31page203, - &marc8_31page204, - &marc8_31page205, - &marc8_31page206, - &marc8_31page207, - &marc8_31page208, - &marc8_31page209, - &marc8_31page210, - &marc8_31page211, - &marc8_31page212, - &marc8_31page213, - &marc8_31page214, - &marc8_31page215, - &marc8_31page216, - &marc8_31page217, - &marc8_31page218, - &marc8_31page219, - &marc8_31page220, - &marc8_31page221, - &marc8_31page222, - &marc8_31page223, - &marc8_31page224, - &marc8_31page225, - &marc8_31page226, - &marc8_31page227, - &marc8_31page228, - &marc8_31page229, - &marc8_31page230, - &marc8_31page231, - &marc8_31page232, - &marc8_31page233, - &marc8_31page234, - &marc8_31page235, - &marc8_31page236, - &marc8_31page237, - &marc8_31page238, - &marc8_31page239, - &marc8_31page240, - &marc8_31page241, - &marc8_31page242, - &marc8_31page243, - &marc8_31page244, - &marc8_31page245, - &marc8_31page246, - &marc8_31page247, - &marc8_31page248, - &marc8_31page249, - &marc8_31page250, - &marc8_31page251, - &marc8_31page252, - &marc8_31page253, - &marc8_31page254, - &marc8_31page255, - &marc8_31page256, - &marc8_31page257, - &marc8_31page258, - &marc8_31page259, - &marc8_31page260, - &marc8_31page261, - &marc8_31page262, - &marc8_31page263, - &marc8_31page264, - &marc8_31page265, - &marc8_31page266, - &marc8_31page267, - &marc8_31page268, - &marc8_31page269, - &marc8_31page270, - &marc8_31page271, - &marc8_31page272, - &marc8_31page273, - &marc8_31page274, - &marc8_31page275, - &marc8_31page276, - &marc8_31page277, - &marc8_31page278, - &marc8_31page279, - &marc8_31page280, - &marc8_31page281, - &marc8_31page282, - &marc8_31page283, - &marc8_31page284, - &marc8_31page285, - &marc8_31page286, - &marc8_31page287, - &marc8_31page288, - &marc8_31page289, - &marc8_31page290, - &marc8_31page291, - &marc8_31page292, - &marc8_31page293, - &marc8_31page294, - &marc8_31page295, - &marc8_31page296, - &marc8_31page297, - &marc8_31page298, - &marc8_31page299, - &marc8_31page300, - &marc8_31page301, - &marc8_31page302, - &marc8_31page303, - &marc8_31page304, - &marc8_31page305, - &marc8_31page306, - &marc8_31page307, - &marc8_31page308, - &marc8_31page309, - &marc8_31page310, - &marc8_31page311, - &marc8_31page312, - &marc8_31page313, - &marc8_31page314, - &marc8_31page315, - &marc8_31page316, - &marc8_31page317, - &marc8_31page318, - &marc8_31page319, - &marc8_31page320, - &marc8_31page321, - &marc8_31page322, - &marc8_31page323, - &marc8_31page324, - &marc8_31page325, - &marc8_31page326, - &marc8_31page327, - &marc8_31page328, - &marc8_31page329, - &marc8_31page330, - &marc8_31page331, - &marc8_31page332, - &marc8_31page333, - &marc8_31page334, - &marc8_31page335, - &marc8_31page336, - &marc8_31page337, - &marc8_31page338, - &marc8_31page339, - &marc8_31page340, - &marc8_31page341, - &marc8_31page342, - &marc8_31page343, - &marc8_31page344, - &marc8_31page345, - &marc8_31page346, - &marc8_31page347, - &marc8_31page348, - &marc8_31page349, - &marc8_31page350, - &marc8_31page351, - &marc8_31page352, - &marc8_31page353, - &marc8_31page354, - &marc8_31page355, - &marc8_31page356, - &marc8_31page357, - &marc8_31page358, - &marc8_31page359, - &marc8_31page360, - &marc8_31page361, - &marc8_31page362, - &marc8_31page363, - &marc8_31page364, - &marc8_31page365, - &marc8_31page366, - &marc8_31page367, - &marc8_31page368, - &marc8_31page369, - &marc8_31page370, - &marc8_31page371, - &marc8_31page372, - &marc8_31page373, - &marc8_31page374, - &marc8_31page375, - &marc8_31page376, - &marc8_31page377, - &marc8_31page378, - &marc8_31page379, - &marc8_31page380, - &marc8_31page381, - &marc8_31page382, - &marc8_31page383, - &marc8_31page384, - &marc8_31page385, - &marc8_31page386, - &marc8_31page387, - &marc8_31page388, - &marc8_31page389, - &marc8_31page390, - &marc8_31page391, - &marc8_31page392, - &marc8_31page393, - &marc8_31page394, - &marc8_31page395, - &marc8_31page396, - &marc8_31page397, - &marc8_31page398, - &marc8_31page399, - &marc8_31page400, - &marc8_31page401, - &marc8_31page402, - &marc8_31page403, - &marc8_31page404, - &marc8_31page405, - &marc8_31page406, - &marc8_31page407, - &marc8_31page408, - &marc8_31page409, - &marc8_31page410, - &marc8_31page411, - &marc8_31page412, - &marc8_31page413, - &marc8_31page414, - &marc8_31page415, - &marc8_31page416, - &marc8_31page417, - &marc8_31page418, - &marc8_31page419, - &marc8_31page420, - &marc8_31page421, - &marc8_31page422, - &marc8_31page423, - &marc8_31page424, - &marc8_31page425, - &marc8_31page426, - &marc8_31page427, - &marc8_31page428, - &marc8_31page429, - &marc8_31page430, - &marc8_31page431, - &marc8_31page432, - &marc8_31page433, - &marc8_31page434, - &marc8_31page435, - &marc8_31page436, - &marc8_31page437, - &marc8_31page438, - &marc8_31page439, - &marc8_31page440, - &marc8_31page441, - &marc8_31page442, - &marc8_31page443, - &marc8_31page444, - &marc8_31page445, - &marc8_31page446, - &marc8_31page447, - &marc8_31page448, - &marc8_31page449, - &marc8_31page450, - &marc8_31page451, - &marc8_31page452, - &marc8_31page453, - &marc8_31page454, - &marc8_31page455, - &marc8_31page456, - &marc8_31page457, - &marc8_31page458, - &marc8_31page459, - &marc8_31page460, - &marc8_31page461, - &marc8_31page462, - &marc8_31page463, - &marc8_31page464, - &marc8_31page465, - &marc8_31page466, - &marc8_31page467, - &marc8_31page468, - &marc8_31page469, - &marc8_31page470, - &marc8_31page471, - &marc8_31page472, - &marc8_31page473, - &marc8_31page474, - &marc8_31page475, - &marc8_31page476, - &marc8_31page477, - &marc8_31page478, - &marc8_31page479, - &marc8_31page480, - &marc8_31page481, - &marc8_31page482, - &marc8_31page483, - &marc8_31page484, - &marc8_31page485, - &marc8_31page486, - &marc8_31page487, - &marc8_31page488, - &marc8_31page489, - &marc8_31page490, - &marc8_31page491, - &marc8_31page492, - &marc8_31page493, - &marc8_31page494, - &marc8_31page495, - &marc8_31page496, - &marc8_31page497, - &marc8_31page498, - &marc8_31page499, - &marc8_31page500, - &marc8_31page501, - &marc8_31page502, - &marc8_31page503, - &marc8_31page504, - &marc8_31page505, - &marc8_31page506, - &marc8_31page507, - &marc8_31page508, - &marc8_31page509, - &marc8_31page510, - &marc8_31page511, - &marc8_31page512, - &marc8_31page513, - &marc8_31page514, - &marc8_31page515, - &marc8_31page516, - &marc8_31page517, - &marc8_31page518, - &marc8_31page519, - &marc8_31page520, - &marc8_31page521, - &marc8_31page522, - &marc8_31page523, - &marc8_31page524, - &marc8_31page525, - &marc8_31page526, - &marc8_31page527, - &marc8_31page528, - &marc8_31page529, - &marc8_31page530, - &marc8_31page531, - &marc8_31page532, - &marc8_31page533, - &marc8_31page534, - &marc8_31page535, - &marc8_31page536, - &marc8_31page537, - &marc8_31page538, - &marc8_31page539, - &marc8_31page540, - &marc8_31page541, - &marc8_31page542, - &marc8_31page543, - &marc8_31page544, - &marc8_31page545, - &marc8_31page546, - &marc8_31page547, - &marc8_31page548, - &marc8_31page549, - &marc8_31page550, - &marc8_31page551, - &marc8_31page552, - &marc8_31page553, - &marc8_31page554, - &marc8_31page555, - &marc8_31page556, - &marc8_31page557, - &marc8_31page558, - &marc8_31page559, - &marc8_31page560, - &marc8_31page561, - &marc8_31page562, - &marc8_31page563, - &marc8_31page564, - &marc8_31page565, - &marc8_31page566, - &marc8_31page567, - &marc8_31page568, - &marc8_31page569, - &marc8_31page570, - &marc8_31page571, - &marc8_31page572, - &marc8_31page573, - &marc8_31page574, - &marc8_31page575, - &marc8_31page576, - &marc8_31page577, - &marc8_31page578, - &marc8_31page579, - &marc8_31page580, - &marc8_31page581, - &marc8_31page582, - &marc8_31page583, - &marc8_31page584, - &marc8_31page585, - &marc8_31page586, - &marc8_31page587, - &marc8_31page588, - &marc8_31page589, - &marc8_31page590, - &marc8_31page591, - &marc8_31page592, - &marc8_31page593, - &marc8_31page594, - &marc8_31page595, - &marc8_31page596, - &marc8_31page597, - &marc8_31page598, - &marc8_31page599, - &marc8_31page600, - &marc8_31page601, - &marc8_31page602, - &marc8_31page603, - &marc8_31page604, - &marc8_31page605, - &marc8_31page606, - &marc8_31page607, - &marc8_31page608, - &marc8_31page609, - &marc8_31page610, - &marc8_31page611, - &marc8_31page612, - &marc8_31page613, - &marc8_31page614, - &marc8_31page615, - &marc8_31page616, - &marc8_31page617, - &marc8_31page618, - &marc8_31page619, - &marc8_31page620, - &marc8_31page621, - &marc8_31page622, - &marc8_31page623, - &marc8_31page624, - &marc8_31page625, - &marc8_31page626, - &marc8_31page627, - &marc8_31page628, - &marc8_31page629, - &marc8_31page630, - &marc8_31page631, - &marc8_31page632, - &marc8_31page633, - &marc8_31page634, - &marc8_31page635, - &marc8_31page636, - &marc8_31page637, - &marc8_31page638, - &marc8_31page639, - &marc8_31page640, - &marc8_31page641, - &marc8_31page642, - &marc8_31page643, - &marc8_31page644, - &marc8_31page645, - &marc8_31page646, - &marc8_31page647, - &marc8_31page648, - &marc8_31page649, - &marc8_31page650, - &marc8_31page651, - &marc8_31page652, - &marc8_31page653, - &marc8_31page654, - &marc8_31page655, - &marc8_31page656, - &marc8_31page657, - &marc8_31page658, - &marc8_31page659, - &marc8_31page660, - &marc8_31page661, - &marc8_31page662, - &marc8_31page663, - &marc8_31page664, - &marc8_31page665, - &marc8_31page666, - &marc8_31page667, - &marc8_31page668, - &marc8_31page669, - &marc8_31page670, - &marc8_31page671, - &marc8_31page672, - &marc8_31page673, - &marc8_31page674, - &marc8_31page675, - &marc8_31page676, - &marc8_31page677, - &marc8_31page678, - &marc8_31page679, - &marc8_31page680, - &marc8_31page681, - &marc8_31page682, - &marc8_31page683, - &marc8_31page684, - &marc8_31page685, - &marc8_31page686, - &marc8_31page687, - &marc8_31page688, - &marc8_31page689, - &marc8_31page690, - &marc8_31page691, - &marc8_31page692, - &marc8_31page693, - &marc8_31page694, - &marc8_31page695, - &marc8_31page696, - &marc8_31page697, - &marc8_31page698, - &marc8_31page699, - &marc8_31page700, - &marc8_31page701, - &marc8_31page702, - &marc8_31page703, - &marc8_31page704, - &marc8_31page705, - &marc8_31page706, - &marc8_31page707, - &marc8_31page708, - &marc8_31page709, - &marc8_31page710, - &marc8_31page711, - &marc8_31page712, - &marc8_31page713, - &marc8_31page714, - &marc8_31page715, - &marc8_31page716, - &marc8_31page717, - &marc8_31page718, - &marc8_31page719, - &marc8_31page720, - &marc8_31page721, - &marc8_31page722, - &marc8_31page723, - &marc8_31page724, - &marc8_31page725, - &marc8_31page726, - &marc8_31page727, - &marc8_31page728, - &marc8_31page729, - &marc8_31page730, - &marc8_31page731, - &marc8_31page732, - &marc8_31page733, - &marc8_31page734, - &marc8_31page735, - &marc8_31page736, - &marc8_31page737, - &marc8_31page738, - &marc8_31page739, - &marc8_31page740, - &marc8_31page741, - &marc8_31page742, - &marc8_31page743, - &marc8_31page744, - &marc8_31page745, - &marc8_31page746, - &marc8_31page747, - &marc8_31page748, - &marc8_31page749, - &marc8_31page750, - &marc8_31page751, - &marc8_31page752, - &marc8_31page753, - &marc8_31page754, - &marc8_31page755, - &marc8_31page756, - &marc8_31page757, - &marc8_31page758, - &marc8_31page759, - &marc8_31page760, - &marc8_31page761, - &marc8_31page762, - &marc8_31page763, - &marc8_31page764, - &marc8_31page765, - &marc8_31page766, - &marc8_31page767, - &marc8_31page768, - &marc8_31page769, - &marc8_31page770, - &marc8_31page771, - &marc8_31page772, - &marc8_31page773, - &marc8_31page774, - &marc8_31page775, - &marc8_31page776, - &marc8_31page777, - &marc8_31page778, - &marc8_31page779, - &marc8_31page780, - &marc8_31page781, - &marc8_31page782, - &marc8_31page783, - &marc8_31page784, - &marc8_31page785, - &marc8_31page786, - &marc8_31page787, - &marc8_31page788, - &marc8_31page789, - &marc8_31page790, - &marc8_31page791, - &marc8_31page792, - &marc8_31page793, - &marc8_31page794, - &marc8_31page795, - &marc8_31page796, - &marc8_31page797, - &marc8_31page798, - &marc8_31page799, - &marc8_31page800, - &marc8_31page801, - &marc8_31page802, - &marc8_31page803, - &marc8_31page804, - &marc8_31page805, - &marc8_31page806, - &marc8_31page807, - &marc8_31page808, - &marc8_31page809, - &marc8_31page810, - &marc8_31page811, - &marc8_31page812, - &marc8_31page813, - &marc8_31page814, - &marc8_31page815, - &marc8_31page816, - &marc8_31page817, - &marc8_31page818, - &marc8_31page819, - &marc8_31page820, - &marc8_31page821, - &marc8_31page822, - &marc8_31page823, - &marc8_31page824, - &marc8_31page825, - &marc8_31page826, - &marc8_31page827, -0, }; - -unsigned long yaz_marc8_31_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8_31ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - diff --git a/dependencies/yaz_3.0.14/src/marc8r.c b/dependencies/yaz_3.0.14/src/marc8r.c deleted file mode 100644 index 3336602..0000000 --- a/dependencies/yaz_3.0.14/src/marc8r.c +++ /dev/null @@ -1,31974 +0,0 @@ -/** \file marc8r.c - \brief Character conversion, generated from ./codetables.xml - - Generated automatically by charconv.tcl -*/ -#include - - struct yaz_iconv_trie_flat { - char from[6]; - unsigned combining : 1; - unsigned to : 24; - }; - struct yaz_iconv_trie_dir { - int ptr : 15; - unsigned combining : 1; - unsigned to : 24; - }; - - struct yaz_iconv_trie { - struct yaz_iconv_trie_flat *flat; - struct yaz_iconv_trie_dir *dir; - }; - - - static unsigned long lookup(struct yaz_iconv_trie **ptrs, int ptr, unsigned char *inp, - size_t inbytesleft, size_t *no_read, int *combining) - { - struct yaz_iconv_trie *t = (ptr > 0) ? ptrs[ptr-1] : 0; - if (!t || inbytesleft < 1) - return 0; - if (t->dir) - { - size_t ch = inp[0] & 0xff; - unsigned long code = - lookup(ptrs, t->dir[ch].ptr, inp+1, inbytesleft-1, no_read, combining); - if (code) - { - (*no_read)++; - return code; - } - if (t->dir[ch].to) - { - code = t->dir[ch].to; - *combining = t->dir[ch].combining; - *no_read = 1; - return code; - } - } - else - { - struct yaz_iconv_trie_flat *flat = t->flat; - while (flat->to) - { - size_t len = strlen(flat->from); - if (len <= inbytesleft) - { - if (memcmp(flat->from, inp, len) == 0) - { - *no_read = len; - *combining = flat->combining; - return flat->to; - } - } - flat++; - } - } - return 0; - } - -/* TRIE: size 99 */ -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8r_42page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x1B} /* ESCAPE (Unlikely to occur in UCS/Unicode) */, - {0, 0, 0}, - {0, 0, 0x1D} /* RECORD TERMINATOR / GROUP SEPARATOR */, - {0, 0, 0x1E} /* FIELD TERMINATOR / RECORD SEPARATOR */, - {0, 0, 0x1F} /* SUBFIELD DELIMITER / UNIT SEPARATOR */, - {0, 0, 0x20} /* SPACE, BLANK / SPACE */, - {0, 0, 0x21} /* EXCLAMATION MARK */, - {0, 0, 0x22} /* QUOTATION MARK */, - {0, 0, 0x23} /* NUMBER SIGN */, - {0, 0, 0x24} /* DOLLAR SIGN */, - {0, 0, 0x25} /* PERCENT SIGN */, - {0, 0, 0x26} /* AMPERSAND */, - {0, 0, 0x27} /* APOSTROPHE */, - {0, 0, 0x28} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, - {0, 0, 0x29} /* CLOSING PARENTHESIS / CLOSING PARENTHESIS */, - {0, 0, 0x2A} /* ASTERISK */, - {0, 0, 0x2B} /* PLUS SIGN */, - {0, 0, 0x2C} /* COMMA */, - {0, 0, 0x2D} /* HYPHEN-MINUS */, - {0, 0, 0x2E} /* PERIOD, DECIMAL POINT / FULL STOP */, - {0, 0, 0x2F} /* SLASH / SOLIDUS */, - {0, 0, 0x30} /* DIGIT ZERO */, - {0, 0, 0x31} /* DIGIT ONE */, - {0, 0, 0x32} /* DIGIT TWO */, - {0, 0, 0x33} /* DIGIT THREE */, - {0, 0, 0x34} /* DIGIT FOUR */, - {0, 0, 0x35} /* DIGIT FIVE */, - {0, 0, 0x36} /* DIGIT SIX */, - {0, 0, 0x37} /* DIGIT SEVEN */, - {0, 0, 0x38} /* DIGIT EIGHT */, - {0, 0, 0x39} /* DIGIT NINE */, - {0, 0, 0x3A} /* COLON */, - {0, 0, 0x3B} /* SEMICOLON */, - {0, 0, 0x3C} /* LESS-THAN SIGN */, - {0, 0, 0x3D} /* EQUALS SIGN */, - {0, 0, 0x3E} /* GREATER-THAN SIGN */, - {0, 0, 0x3F} /* QUESTION MARK */, - {0, 0, 0x40} /* COMMERCIAL AT */, - {0, 0, 0x41} /* LATIN CAPITAL LETTER A */, - {0, 0, 0x42} /* LATIN CAPITAL LETTER B */, - {0, 0, 0x43} /* LATIN CAPITAL LETTER C */, - {0, 0, 0x44} /* LATIN CAPITAL LETTER D */, - {0, 0, 0x45} /* LATIN CAPITAL LETTER E */, - {0, 0, 0x46} /* LATIN CAPITAL LETTER F */, - {0, 0, 0x47} /* LATIN CAPITAL LETTER G */, - {0, 0, 0x48} /* LATIN CAPITAL LETTER H */, - {0, 0, 0x49} /* LATIN CAPITAL LETTER I */, - {0, 0, 0x4A} /* LATIN CAPITAL LETTER J */, - {0, 0, 0x4B} /* LATIN CAPITAL LETTER K */, - {0, 0, 0x4C} /* LATIN CAPITAL LETTER L */, - {0, 0, 0x4D} /* LATIN CAPITAL LETTER M */, - {0, 0, 0x4E} /* LATIN CAPITAL LETTER N */, - {0, 0, 0x4F} /* LATIN CAPITAL LETTER O */, - {0, 0, 0x50} /* LATIN CAPITAL LETTER P */, - {0, 0, 0x51} /* LATIN CAPITAL LETTER Q */, - {0, 0, 0x52} /* LATIN CAPITAL LETTER R */, - {0, 0, 0x53} /* LATIN CAPITAL LETTER S */, - {0, 0, 0x54} /* LATIN CAPITAL LETTER T */, - {0, 0, 0x55} /* LATIN CAPITAL LETTER U */, - {0, 0, 0x56} /* LATIN CAPITAL LETTER V */, - {0, 0, 0x57} /* LATIN CAPITAL LETTER W */, - {0, 0, 0x58} /* LATIN CAPITAL LETTER X */, - {0, 0, 0x59} /* LATIN CAPITAL LETTER Y */, - {0, 0, 0x5A} /* LATIN CAPITAL LETTER Z */, - {0, 0, 0x5B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, - {0, 0, 0x5C} /* REVERSE SLASH / REVERSE SOLIDUS */, - {0, 0, 0x5D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, - {0, 0, 0x5E} /* SPACING CIRCUMFLEX / CIRCUMFLEX ACCENT */, - {0, 0, 0x5F} /* SPACING UNDERSCORE / LOW LINE */, - {0, 0, 0x60} /* SPACING GRAVE / GRAVE ACCENT */, - {0, 0, 0x61} /* LATIN SMALL LETTER A */, - {0, 0, 0x62} /* LATIN SMALL LETTER B */, - {0, 0, 0x63} /* LATIN SMALL LETTER C */, - {0, 0, 0x64} /* LATIN SMALL LETTER D */, - {0, 0, 0x65} /* LATIN SMALL LETTER E */, - {0, 0, 0x66} /* LATIN SMALL LETTER F */, - {0, 0, 0x67} /* LATIN SMALL LETTER G */, - {0, 0, 0x68} /* LATIN SMALL LETTER H */, - {0, 0, 0x69} /* LATIN SMALL LETTER I */, - {0, 0, 0x6A} /* LATIN SMALL LETTER J */, - {0, 0, 0x6B} /* LATIN SMALL LETTER K */, - {0, 0, 0x6C} /* LATIN SMALL LETTER L */, - {0, 0, 0x6D} /* LATIN SMALL LETTER M */, - {0, 0, 0x6E} /* LATIN SMALL LETTER N */, - {0, 0, 0x6F} /* LATIN SMALL LETTER O */, - {0, 0, 0x70} /* LATIN SMALL LETTER P */, - {0, 0, 0x71} /* LATIN SMALL LETTER Q */, - {0, 0, 0x72} /* LATIN SMALL LETTER R */, - {0, 0, 0x73} /* LATIN SMALL LETTER S */, - {0, 0, 0x74} /* LATIN SMALL LETTER T */, - {0, 0, 0x75} /* LATIN SMALL LETTER U */, - {0, 0, 0x76} /* LATIN SMALL LETTER V */, - {0, 0, 0x77} /* LATIN SMALL LETTER W */, - {0, 0, 0x78} /* LATIN SMALL LETTER X */, - {0, 0, 0x79} /* LATIN SMALL LETTER Y */, - {0, 0, 0x7A} /* LATIN SMALL LETTER Z */, - {0, 0, 0x7B} /* OPENING CURLY BRACKET / LEFT CURLY BRACKET */, - {0, 0, 0x7C} /* VERTICAL BAR (FILL) / VERTICAL LINE */, - {0, 0, 0x7D} /* CLOSING CURLY BRACKET / RIGHT CURLY BRACKET */, - {0, 0, 0x7E} /* SPACING TILDE / TILDE */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_42page0 = { - 0, marc8r_42page0_dir -}; -struct yaz_iconv_trie *marc8r_42ptrs [] = { - &marc8r_42page0, -0, }; - -unsigned long yaz_marc8r_42_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_42ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 72 */ -/* PAGE 10 */ -struct yaz_iconv_trie_flat marc8r_45page10_flat[] = { - {"\xB8\xA0", 1, 0xEB}, /* LIGATURE, FIRST HALF / COMBINING DOUBLE INVERTED BREVE */ - {"\xB8\xA1", 1, 0xEC}, /* LIGATURE, SECOND HALF / COMBINING LIGATURE RIGHT HALF */ - {"\xB8\xA2", 1, 0xFA}, /* DOUBLE TILDE, FIRST HALF / COMBINING DOUBLE TILDE */ - {"\xB8\xA3", 1, 0xFB}, /* DOUBLE TILDE, SECOND HALF / COMBINING DOUBLE TILDE RIGHT HALF */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page10 = { - marc8r_45page10_flat, 0 -}; -/* PAGE 9 */ -struct yaz_iconv_trie_flat marc8r_45page9_flat[] = { - {"\xA1", 1, 0xEB}, /* LIGATURE, FIRST HALF / COMBINING DOUBLE INVERTED BREVE */ - {"\xA0", 1, 0xFA}, /* DOUBLE TILDE, FIRST HALF / COMBINING DOUBLE TILDE */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page9 = { - marc8r_45page9_flat, 0 -}; -/* PAGE 8 */ -struct yaz_iconv_trie_flat marc8r_45page8_flat[] = { - {"\x89", 1, 0xE0}, /* PSEUDO QUESTION MARK / COMBINING HOOK ABOVE */ - {"\x80", 1, 0xE1}, /* GRAVE / COMBINING GRAVE ACCENT (Varia) */ - {"\x81", 1, 0xE2}, /* ACUTE / COMBINING ACUTE ACCENT (Oxia) */ - {"\x82", 1, 0xE3}, /* CIRCUMFLEX / COMBINING CIRCUMFLEX ACCENT */ - {"\x83", 1, 0xE4}, /* TILDE / COMBINING TILDE */ - {"\x84", 1, 0xE5}, /* MACRON / COMBINING MACRON */ - {"\x86", 1, 0xE6}, /* BREVE / COMBINING BREVE (Vrachy) */ - {"\x87", 1, 0xE7}, /* SUPERIOR DOT / COMBINING DOT ABOVE */ - {"\x88", 1, 0xE8}, /* UMLAUT, DIAERESIS / COMBINING DIAERESIS (Dialytika) */ - {"\x8C", 1, 0xE9}, /* HACEK / COMBINING CARON */ - {"\x8C", 1, 0xE9}, /* HACEK / COMBINING CARON */ - {"\x8A", 1, 0xEA}, /* CIRCLE ABOVE, ANGSTROM / COMBINING RING ABOVE */ - {"\x95", 1, 0xED}, /* HIGH COMMA, OFF CENTER / COMBINING COMMA ABOVE RIGHT */ - {"\x8B", 1, 0xEE}, /* DOUBLE ACUTE / COMBINING DOUBLE ACUTE ACCENT */ - {"\x90", 1, 0xEF}, /* CANDRABINDU / COMBINING CANDRABINDU */ - {"\xA7", 1, 0xF0}, /* CEDILLA / COMBINING CEDILLA */ - {"\xA8", 1, 0xF1}, /* RIGHT HOOK, OGONEK / COMBINING OGONEK */ - {"\xA3", 1, 0xF2}, /* DOT BELOW / COMBINING DOT BELOW */ - {"\xA4", 1, 0xF3}, /* DOUBLE DOT BELOW / COMBINING DIAERESIS BELOW */ - {"\xA5", 1, 0xF4}, /* CIRCLE BELOW / COMBINING RING BELOW */ - {"\xB3", 1, 0xF5}, /* DOUBLE UNDERSCORE / COMBINING DOUBLE LOW LINE */ - {"\xB2", 1, 0xF6}, /* UNDERSCORE / COMBINING LOW LINE */ - {"\xA6", 1, 0xF7}, /* LEFT HOOK (COMMA BELOW) / COMBINING COMMA BELOW */ - {"\x9C", 1, 0xF8}, /* RIGHT CEDILLA / COMBINING LEFT HALF RING BELOW */ - {"\xAE", 1, 0xF9}, /* UPADHMANIYA / COMBINING BREVE BELOW */ - {"\x93", 1, 0xFE}, /* HIGH COMMA, CENTERED / COMBINING COMMA ABOVE (Psili) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page8 = { - marc8r_45page8_flat, 0 -}; -/* PAGE 7 */ -struct yaz_iconv_trie_flat marc8r_45page7_flat[] = { - {"\xA0", 0, 0xAC}, /* UPPERCASE O-HOOK / LATIN CAPITAL LETTER O WITH HORN */ - {"\xAF", 0, 0xAD}, /* UPPERCASE U-HOOK / LATIN CAPITAL LETTER U WITH HORN */ - {"\xA1", 0, 0xBC}, /* LOWERCASE O-HOOK / LATIN SMALL LETTER O WITH HORN */ - {"\xB0", 0, 0xBD}, /* LOWERCASE U-HOOK / LATIN SMALL LETTER U WITH HORN */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page7 = { - marc8r_45page7_flat, 0 -}; -/* PAGE 6 */ -struct yaz_iconv_trie_flat marc8r_45page6_flat[] = { - {"\xB9", 0, 0xA7}, /* SOFT SIGN, PRIME / MODIFIER LETTER PRIME */ - {"\xBC", 0, 0xAE}, /* ALIF / MODIFIER LETTER APOSTROPHE */ - {"\xBE", 0, 0xAE}, /* ALIF / MODIFIER LETTER APOSTROPHE */ - {"\xBB", 0, 0xB0}, /* AYN / MODIFIER LETTER TURNED COMMA */ - {"\xBA", 0, 0xB7}, /* HARD SIGN, DOUBLE PRIME / MODIFIER LETTER DOUBLE PRIME */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page6 = { - marc8r_45page6_flat, 0 -}; -/* PAGE 5 */ -struct yaz_iconv_trie_flat marc8r_45page5_flat[] = { - {"\x90", 0, 0xA3}, /* UPPERCASE D WITH CROSSBAR / LATIN CAPITAL LETTER D WITH STROKE */ - {"\x91", 0, 0xB3}, /* LOWERCASE D WITH CROSSBAR / LATIN SMALL LETTER D WITH STROKE */ - {"\xB1", 0, 0xB8}, /* LOWERCASE TURKISH I / LATIN SMALL LETTER DOTLESS I */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page5 = { - marc8r_45page5_flat, 0 -}; -/* PAGE 4 */ -struct yaz_iconv_trie_flat marc8r_45page4_flat[] = { - {"\x98", 0, 0xA2}, /* UPPERCASE SCANDINAVIAN O / LATIN CAPITAL LETTER O WITH STROKE */ - {"\x9E", 0, 0xA4}, /* UPPERCASE ICELANDIC THORN / LATIN CAPITAL LETTER THORN (Icelandic) */ - {"\x86", 0, 0xA5}, /* UPPERCASE DIGRAPH AE / LATIN CAPITAL LIGATURE AE */ - {"\xB8", 0, 0xB2}, /* LOWERCASE SCANDINAVIAN O / LATIN SMALL LETTER O WITH STROKE */ - {"\xBE", 0, 0xB4}, /* LOWERCASE ICELANDIC THORN / LATIN SMALL LETTER THORN (Icelandic) */ - {"\xA6", 0, 0xB5}, /* LOWERCASE DIGRAPH AE / LATIN SMALL LIGATURE AE */ - {"\xB0", 0, 0xBA}, /* LOWERCASE ETH / LATIN SMALL LETTER ETH (Icelandic) */ - {"\x9F", 0, 0xC7}, /* ESZETT SYMBOL */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page4 = { - marc8r_45page4_flat, 0 -}; -/* PAGE 3 */ -struct yaz_iconv_trie_flat marc8r_45page3_flat[] = { - {"\x81", 0, 0xA1}, /* UPPERCASE POLISH L / LATIN CAPITAL LETTER L WITH STROKE */ - {"\x92", 0, 0xA6}, /* UPPERCASE DIGRAPH OE / LATIN CAPITAL LIGATURE OE */ - {"\x82", 0, 0xB1}, /* LOWERCASE POLISH L / LATIN SMALL LETTER L WITH STROKE */ - {"\x93", 0, 0xB6}, /* LOWERCASE DIGRAPH OE / LATIN SMALL LIGATURE OE */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page3 = { - marc8r_45page3_flat, 0 -}; -/* PAGE 2 */ -struct yaz_iconv_trie_flat marc8r_45page2_flat[] = { - {"\x80\x8D", 0, 0x8D}, /* JOINER / ZERO WIDTH JOINER */ - {"\x80\x8C", 0, 0x8E}, /* NON-JOINER / ZERO WIDTH NON-JOINER */ - {"\x99\xAD", 0, 0xA9}, /* MUSIC FLAT SIGN */ - {"\x84\x93", 0, 0xC1}, /* SCRIPT SMALL L */ - {"\x84\x97", 0, 0xC2}, /* SOUND RECORDING COPYRIGHT */ - {"\x99\xAF", 0, 0xC4}, /* MUSIC SHARP SIGN */ - {"\x82\xAC", 0, 0xC8}, /* EURO SIGN */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page2 = { - marc8r_45page2_flat, 0 -}; -/* PAGE 1 */ -struct yaz_iconv_trie_flat marc8r_45page1_flat[] = { - {"\x98", 0, 0x88}, /* NON-SORT BEGIN / START OF STRING */ - {"\x9C", 0, 0x89}, /* NON-SORT END / STRING TERMINATOR */ - {"\xB7", 0, 0xA8}, /* MIDDLE DOT */ - {"\xAE", 0, 0xAA}, /* PATENT MARK / REGISTERED SIGN */ - {"\xB1", 0, 0xAB}, /* PLUS OR MINUS / PLUS-MINUS SIGN */ - {"\xA3", 0, 0xB9}, /* BRITISH POUND / POUND SIGN */ - {"\xB0", 0, 0xC0}, /* DEGREE SIGN */ - {"\xA9", 0, 0xC3}, /* COPYRIGHT SIGN */ - {"\xBF", 0, 0xC5}, /* INVERTED QUESTION MARK */ - {"\xA1", 0, 0xC6}, /* INVERTED EXCLAMATION MARK */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_45page1 = { - marc8r_45page1_flat, 0 -}; -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8r_45page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {2, 0, 0}, - {5, 0, 0}, - {6, 0, 0}, - {4, 0, 0}, - {8, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {7, 0, 0}, - {0, 0, 0}, - {9, 0, 0}, - {10, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {3, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {11, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_45page0 = { - 0, marc8r_45page0_dir -}; -struct yaz_iconv_trie *marc8r_45ptrs [] = { - &marc8r_45page0, - &marc8r_45page1, - &marc8r_45page2, - &marc8r_45page3, - &marc8r_45page4, - &marc8r_45page5, - &marc8r_45page6, - &marc8r_45page7, - &marc8r_45page8, - &marc8r_45page9, - &marc8r_45page10, -0, }; - -unsigned long yaz_marc8r_45_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_45ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 3 */ -/* PAGE 0 */ -struct yaz_iconv_trie_flat marc8r_67page0_flat[] = { - {"\xCE\xB1", 0, 0x61}, /* GREEK SMALL LETTER ALPHA */ - {"\xCE\xB2", 0, 0x62}, /* GREEK SMALL LETTER BETA */ - {"\xCE\xB3", 0, 0x63}, /* GREEK SMALL LETTER GAMMA */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_67page0 = { - marc8r_67page0_flat, 0 -}; -struct yaz_iconv_trie *marc8r_67ptrs [] = { - &marc8r_67page0, -0, }; - -unsigned long yaz_marc8r_67_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_67ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 14 */ -/* PAGE 0 */ -struct yaz_iconv_trie_flat marc8r_62page0_flat[] = { - {"\xE2\x82\x8D", 0, 0x28}, /* SUBSCRIPT OPENING PARENTHESIS / SUBSCRIPT LEFT PARENTHESIS */ - {"\xE2\x82\x8E", 0, 0x29}, /* SUBSCRIPT CLOSING PARENTHESIS / SUBSCRIPT RIGHT PARENTHESIS */ - {"\xE2\x82\x8A", 0, 0x2B}, /* SUBSCRIPT PLUS SIGN */ - {"\xE2\x82\x8B", 0, 0x2D}, /* SUBSCRIPT HYPHEN-MINUS / SUBSCRIPT MINUS */ - {"\xE2\x82\x80", 0, 0x30}, /* SUBSCRIPT DIGIT ZERO */ - {"\xE2\x82\x81", 0, 0x31}, /* SUBSCRIPT DIGIT ONE */ - {"\xE2\x82\x82", 0, 0x32}, /* SUBSCRIPT DIGIT TWO */ - {"\xE2\x82\x83", 0, 0x33}, /* SUBSCRIPT DIGIT THREE */ - {"\xE2\x82\x84", 0, 0x34}, /* SUBSCRIPT DIGIT FOUR */ - {"\xE2\x82\x85", 0, 0x35}, /* SUBSCRIPT DIGIT FIVE */ - {"\xE2\x82\x86", 0, 0x36}, /* SUBSCRIPT DIGIT SIX */ - {"\xE2\x82\x87", 0, 0x37}, /* SUBSCRIPT DIGIT SEVEN */ - {"\xE2\x82\x88", 0, 0x38}, /* SUBSCRIPT DIGIT EIGHT */ - {"\xE2\x82\x89", 0, 0x39}, /* SUBSCRIPT DIGIT NINE */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_62page0 = { - marc8r_62page0_flat, 0 -}; -struct yaz_iconv_trie *marc8r_62ptrs [] = { - &marc8r_62page0, -0, }; - -unsigned long yaz_marc8r_62_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_62ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 14 */ -/* PAGE 0 */ -struct yaz_iconv_trie_flat marc8r_70page0_flat[] = { - {"\xE2\x81\xBD", 0, 0x28}, /* SUPERSCRIPT OPENING PARENTHESIS / SUPERSCRIPT LEFT PARENTHESIS */ - {"\xE2\x81\xBE", 0, 0x29}, /* SUPERSCRIPT CLOSING PARENTHESIS / SUPERSCRIPT RIGHT PARENTHESIS */ - {"\xE2\x81\xBA", 0, 0x2B}, /* SUPERSCRIPT PLUS SIGN */ - {"\xE2\x81\xBB", 0, 0x2D}, /* SUPERSCRIPT HYPHEN-MINUS / SUPERSCRIPT MINUS */ - {"\xE2\x81\xB0", 0, 0x30}, /* SUPERSCRIPT DIGIT ZERO */ - {"\xC2\xB9", 0, 0x31}, /* SUPERSCRIPT DIGIT ONE */ - {"\xC2\xB2", 0, 0x32}, /* SUPERSCRIPT DIGIT TWO */ - {"\xC2\xB3", 0, 0x33}, /* SUPERSCRIPT DIGIT THREE */ - {"\xE2\x81\xB4", 0, 0x34}, /* SUPERSCRIPT DIGIT FOUR */ - {"\xE2\x81\xB5", 0, 0x35}, /* SUPERSCRIPT DIGIT FIVE */ - {"\xE2\x81\xB6", 0, 0x36}, /* SUPERSCRIPT DIGIT SIX */ - {"\xE2\x81\xB7", 0, 0x37}, /* SUPERSCRIPT DIGIT SEVEN */ - {"\xE2\x81\xB8", 0, 0x38}, /* SUPERSCRIPT DIGIT EIGHT */ - {"\xE2\x81\xB9", 0, 0x39}, /* SUPERSCRIPT DIGIT NINE */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_70page0 = { - marc8r_70page0_flat, 0 -}; -struct yaz_iconv_trie *marc8r_70ptrs [] = { - &marc8r_70page0, -0, }; - -unsigned long yaz_marc8r_70_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_70ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 78 */ -/* PAGE 3 */ -struct yaz_iconv_trie_flat marc8r_32page3_flat[] = { - {"\xAC\x9E", 1, 0x4E}, /* VARIKA / HEBREW POINT JUDEO-SPANISH VARIKA */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_32page3 = { - marc8r_32page3_flat, 0 -}; -/* PAGE 2 */ -struct yaz_iconv_trie_flat marc8r_32page2_flat[] = { - {"\xBE", 0, 0x2D}, /* HYPHEN-MINUS, MAKEF / HEBREW PUNCTUATION MAQAF */ - {"\xB7", 1, 0x40}, /* HEBREW POINT PATAH */ - {"\xB8", 1, 0x41}, /* KAMATS / HEBREW POINT QAMATS */ - {"\xB6", 1, 0x42}, /* HEBREW POINT SEGOL */ - {"\xB5", 1, 0x43}, /* TSEREH / HEBREW POINT TSERE */ - {"\xB4", 1, 0x44}, /* HIRIK / HEBREW POINT HIRIQ */ - {"\xB9", 1, 0x45}, /* HOLAM, LEFT SIN DOT / HEBREW POINT HOLAM */ - {"\xBB", 1, 0x46}, /* KUBUTS / HEBREW POINT QUBUTS */ - {"\xB0", 1, 0x47}, /* HEBREW POINT SHEVA */ - {"\xB2", 1, 0x48}, /* HEBREW POINT HATAF PATAH */ - {"\xB3", 1, 0x49}, /* HATAF KAMATS / HEBREW POINT HATAF QAMATS */ - {"\xB1", 1, 0x4A}, /* HEBREW POINT HATAF SEGOL */ - {"\xBC", 1, 0x4B}, /* HEBREW POINT DAGESH OR MAPIQ */ - {"\xBF", 1, 0x4C}, /* RAFEH / HEBREW POINT RAFE */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_32page2 = { - marc8r_32page2_flat, 0 -}; -/* PAGE 1 */ -struct yaz_iconv_trie_flat marc8r_32page1_flat[] = { - {"\xB4", 0, 0x22}, /* QUOTATION MARK, GERSHAYIM / HEBREW PUNCTUATION GERSHAYIM */ - {"\xB3", 0, 0x27}, /* APOSTROPHE, GERESH / HEBREW PUNCTUATION GERESH */ - {"\x81", 1, 0x4D}, /* RIGHT SHIN DOT / HEBREW POINT SHIN DOT */ - {"\x90", 0, 0x60}, /* HEBREW LETTER ALEF */ - {"\x91", 0, 0x61}, /* HEBREW LETTER BET */ - {"\x92", 0, 0x62}, /* HEBREW LETTER GIMEL */ - {"\x92", 0, 0x62}, /* HEBREW LETTER GIMEL */ - {"\x93", 0, 0x63}, /* HEBREW LETTER DALET */ - {"\x94", 0, 0x64}, /* HEBREW LETTER HE */ - {"\x95", 0, 0x65}, /* HEBREW LETTER VAV */ - {"\x96", 0, 0x66}, /* HEBREW LETTER ZAYIN */ - {"\x97", 0, 0x67}, /* HEBREW LETTER HET */ - {"\x98", 0, 0x68}, /* HEBREW LETTER TET */ - {"\x99", 0, 0x69}, /* HEBREW LETTER YOD */ - {"\x9A", 0, 0x6A}, /* HEBREW LETTER FINAL KAF */ - {"\x9B", 0, 0x6B}, /* HEBREW LETTER KAF */ - {"\x9C", 0, 0x6C}, /* HEBREW LETTER LAMED */ - {"\x9D", 0, 0x6D}, /* HEBREW LETTER FINAL MEM */ - {"\x9E", 0, 0x6E}, /* HEBREW LETTER MEM */ - {"\x9F", 0, 0x6F}, /* HEBREW LETTER FINAL NUN */ - {"\xA0", 0, 0x70}, /* HEBREW LETTER NUN */ - {"\xA1", 0, 0x71}, /* HEBREW LETTER SAMEKH */ - {"\xA2", 0, 0x72}, /* HEBREW LETTER AYIN */ - {"\xA3", 0, 0x73}, /* HEBREW LETTER FINAL PE */ - {"\xA4", 0, 0x74}, /* HEBREW LETTER PE */ - {"\xA5", 0, 0x75}, /* HEBREW LETTER FINAL TSADI */ - {"\xA6", 0, 0x76}, /* HEBREW LETTER TSADI */ - {"\xA7", 0, 0x77}, /* HEBREW LETTER QOF / KOF */ - {"\xA8", 0, 0x78}, /* HEBREW LETTER RESH */ - {"\xA9", 0, 0x79}, /* HEBREW LETTER SHIN */ - {"\xAA", 0, 0x7A}, /* HEBREW LETTER TAV */ - {"\xB0", 0, 0x7B}, /* HEBREW LIGATURE YIDDISH DOUBLE VAV / TSVEY VOVN */ - {"\xB1", 0, 0x7C}, /* HEBREW LIGATURE YIDDISH VAV YOD / VOV YUD */ - {"\xB2", 0, 0x7D}, /* HEBREW LIGATURE YIDDISH DOUBLE YOD / TSVEY YUDN */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_32page1 = { - marc8r_32page1_flat, 0 -}; -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8r_32page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21} /* EXCLAMATION MARK */, - {0, 0, 0}, - {0, 0, 0x23} /* NUMBER SIGN */, - {0, 0, 0x24} /* DOLLAR SIGN */, - {0, 0, 0x25} /* PERCENT SIGN */, - {0, 0, 0x26} /* AMPERSAND */, - {0, 0, 0}, - {0, 0, 0x28} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, - {0, 0, 0x29} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, - {0, 0, 0x2A} /* ASTERISK */, - {0, 0, 0x2B} /* PLUS SIGN */, - {0, 0, 0x2C} /* COMMA */, - {0, 0, 0}, - {0, 0, 0x2E} /* PERIOD, DECIMAL POINT / FULL STOP */, - {0, 0, 0x2F} /* SLASH / SOLIDUS */, - {0, 0, 0x30} /* DIGIT ZERO */, - {0, 0, 0x31} /* DIGIT ONE */, - {0, 0, 0x32} /* DIGIT TWO */, - {0, 0, 0x33} /* DIGIT THREE */, - {0, 0, 0x34} /* DIGIT FOUR */, - {0, 0, 0x35} /* DIGIT FIVE */, - {0, 0, 0x36} /* DIGIT SIX */, - {0, 0, 0x37} /* DIGIT SEVEN */, - {0, 0, 0x38} /* DIGIT EIGHT */, - {0, 0, 0x39} /* DIGIT NINE */, - {0, 0, 0x3A} /* COLON */, - {0, 0, 0x3B} /* SEMICOLON */, - {0, 0, 0x3C} /* LESS-THAN SIGN */, - {0, 0, 0x3D} /* EQUALS SIGN */, - {0, 0, 0x3E} /* GREATER-THAN SIGN */, - {0, 0, 0x3F} /* QUESTION MARK */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, - {0, 0, 0}, - {0, 0, 0x5D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {3, 0, 0}, - {2, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {4, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_32page0 = { - 0, marc8r_32page0_dir -}; -struct yaz_iconv_trie *marc8r_32ptrs [] = { - &marc8r_32page0, - &marc8r_32page1, - &marc8r_32page2, - &marc8r_32page3, -0, }; - -unsigned long yaz_marc8r_32_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_32ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 94 */ -/* PAGE 2 */ -struct yaz_iconv_trie_flat marc8r_4Epage2_flat[] = { - {"\xB0", 0, 0x41}, /* CYRILLIC SMALL LETTER A */ - {"\xB1", 0, 0x42}, /* CYRILLIC SMALL LETTER BE */ - {"\xB4", 0, 0x44}, /* CYRILLIC SMALL LETTER DE */ - {"\xB5", 0, 0x45}, /* CYRILLIC SMALL LETTER IE */ - {"\xB3", 0, 0x47}, /* LOWERCASE GE / CYRILLIC SMALL LETTER GHE */ - {"\xB8", 0, 0x49}, /* LOWERCASE II / CYRILLIC SMALL LETTER I */ - {"\xB9", 0, 0x4A}, /* LOWERCASE SHORT II / CYRILLIC SMALL LETTER SHORT I */ - {"\xBA", 0, 0x4B}, /* CYRILLIC SMALL LETTER KA */ - {"\xBB", 0, 0x4C}, /* CYRILLIC SMALL LETTER EL */ - {"\xBC", 0, 0x4D}, /* CYRILLIC SMALL LETTER EM */ - {"\xBD", 0, 0x4E}, /* CYRILLIC SMALL LETTER EN */ - {"\xBE", 0, 0x4F}, /* CYRILLIC SMALL LETTER O */ - {"\xBF", 0, 0x50}, /* CYRILLIC SMALL LETTER PE */ - {"\xB6", 0, 0x56}, /* CYRILLIC SMALL LETTER ZHE */ - {"\xB2", 0, 0x57}, /* CYRILLIC SMALL LETTER VE */ - {"\xB7", 0, 0x5A}, /* CYRILLIC SMALL LETTER ZE */ - {"\xAE", 0, 0x60}, /* UPPERCASE IU / CYRILLIC CAPITAL LETTER YU */ - {"\x90", 0, 0x61}, /* CYRILLIC CAPITAL LETTER A */ - {"\x91", 0, 0x62}, /* CYRILLIC CAPITAL LETTER BE */ - {"\xA6", 0, 0x63}, /* CYRILLIC CAPITAL LETTER TSE */ - {"\x94", 0, 0x64}, /* CYRILLIC CAPITAL LETTER DE */ - {"\x95", 0, 0x65}, /* CYRILLIC CAPITAL LETTER IE */ - {"\xA4", 0, 0x66}, /* CYRILLIC CAPITAL LETTER EF */ - {"\x93", 0, 0x67}, /* UPPERCASE GE / CYRILLIC CAPITAL LETTER GHE */ - {"\xA5", 0, 0x68}, /* UPPERCASE KHA / CYRILLIC CAPITAL LETTER HA */ - {"\x98", 0, 0x69}, /* UPPERCASE II / CYRILLIC CAPITAL LETTER I */ - {"\x99", 0, 0x6A}, /* UPPERCASE SHORT II / CYRILLIC CAPITAL LETTER SHORT I */ - {"\x9A", 0, 0x6B}, /* CYRILLIC CAPITAL LETTER KA */ - {"\x9B", 0, 0x6C}, /* CYRILLIC CAPITAL LETTER EL */ - {"\x9C", 0, 0x6D}, /* CYRILLIC CAPITAL LETTER EM */ - {"\x9D", 0, 0x6E}, /* CYRILLIC CAPITAL LETTER EN */ - {"\x9E", 0, 0x6F}, /* CYRILLIC CAPITAL LETTER O */ - {"\x9F", 0, 0x70}, /* CYRILLIC CAPITAL LETTER PE */ - {"\xAF", 0, 0x71}, /* UPPERCASE IA / CYRILLIC CAPITAL LETTER YA */ - {"\xA0", 0, 0x72}, /* CYRILLIC CAPITAL LETTER ER */ - {"\xA1", 0, 0x73}, /* CYRILLIC CAPITAL LETTER ES */ - {"\xA2", 0, 0x74}, /* CYRILLIC CAPITAL LETTER TE */ - {"\xA3", 0, 0x75}, /* CYRILLIC CAPITAL LETTER U */ - {"\x96", 0, 0x76}, /* CYRILLIC CAPITAL LETTER ZHE */ - {"\x92", 0, 0x77}, /* CYRILLIC CAPITAL LETTER VE */ - {"\xAC", 0, 0x78}, /* CYRILLIC CAPITAL LETTER SOFT SIGN */ - {"\xAB", 0, 0x79}, /* UPPERCASE YERI / CYRILLIC CAPITAL LETTER YERI */ - {"\x97", 0, 0x7A}, /* CYRILLIC CAPITAL LETTER ZE */ - {"\xA8", 0, 0x7B}, /* CYRILLIC CAPITAL LETTER SHA */ - {"\xAD", 0, 0x7C}, /* CYRILLIC CAPITAL LETTER E */ - {"\xA9", 0, 0x7D}, /* CYRILLIC CAPITAL LETTER SHCHA */ - {"\xA7", 0, 0x7E}, /* CYRILLIC CAPITAL LETTER CHE */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_4Epage2 = { - marc8r_4Epage2_flat, 0 -}; -/* PAGE 1 */ -struct yaz_iconv_trie_flat marc8r_4Epage1_flat[] = { - {"\x8E", 0, 0x40}, /* LOWERCASE IU / CYRILLIC SMALL LETTER YU */ - {"\x86", 0, 0x43}, /* CYRILLIC SMALL LETTER TSE */ - {"\x84", 0, 0x46}, /* CYRILLIC SMALL LETTER EF */ - {"\x85", 0, 0x48}, /* LOWERCASE KHA / CYRILLIC SMALL LETTER HA */ - {"\x8F", 0, 0x51}, /* LOWERCASE IA / CYRILLIC SMALL LETTER YA */ - {"\x80", 0, 0x52}, /* CYRILLIC SMALL LETTER ER */ - {"\x81", 0, 0x53}, /* CYRILLIC SMALL LETTER ES */ - {"\x81", 0, 0x53}, /* CYRILLIC SMALL LETTER ES */ - {"\x82", 0, 0x54}, /* CYRILLIC SMALL LETTER TE */ - {"\x83", 0, 0x55}, /* CYRILLIC SMALL LETTER U */ - {"\x8C", 0, 0x58}, /* CYRILLIC SMALL LETTER SOFT SIGN */ - {"\x8B", 0, 0x59}, /* LOWERCASE YERI / CYRILLIC SMALL LETTER YERI */ - {"\x88", 0, 0x5B}, /* CYRILLIC SMALL LETTER SHA */ - {"\x8D", 0, 0x5C}, /* LOWERCASE REVERSED E / CYRILLIC SMALL LETTER E */ - {"\x89", 0, 0x5D}, /* CYRILLIC SMALL LETTER SHCHA */ - {"\x87", 0, 0x5E}, /* CYRILLIC SMALL LETTER CHE */ - {"\x8A", 0, 0x5F}, /* CYRILLIC SMALL LETTER HARD SIGN */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_4Epage1 = { - marc8r_4Epage1_flat, 0 -}; -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8r_4Epage0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21} /* EXCLAMATION MARK */, - {0, 0, 0x22} /* QUOTATION MARK */, - {0, 0, 0x23} /* NUMBER SIGN */, - {0, 0, 0x24} /* DOLLAR SIGN */, - {0, 0, 0x25} /* PERCENT SIGN */, - {0, 0, 0x26} /* AMPERSAND */, - {0, 0, 0x27} /* APOSTROPHE */, - {0, 0, 0x28} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, - {0, 0, 0x29} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, - {0, 0, 0x2A} /* ASTERISK */, - {0, 0, 0x2B} /* PLUS SIGN */, - {0, 0, 0x2C} /* COMMA */, - {0, 0, 0x2D} /* HYPHEN-MINUS */, - {0, 0, 0x2E} /* PERIOD, DECIMAL POINT / FULL STOP */, - {0, 0, 0x2F} /* SLASH / SOLIDUS */, - {0, 0, 0x30} /* DIGIT ZERO */, - {0, 0, 0x31} /* DIGIT ONE */, - {0, 0, 0x32} /* DIGIT TWO */, - {0, 0, 0x33} /* DIGIT THREE */, - {0, 0, 0x34} /* DIGIT FOUR */, - {0, 0, 0x35} /* DIGIT FIVE */, - {0, 0, 0x36} /* DIGIT SIX */, - {0, 0, 0x37} /* DIGIT SEVEN */, - {0, 0, 0x38} /* DIGIT EIGHT */, - {0, 0, 0x39} /* DIGIT NINE */, - {0, 0, 0x3A} /* COLON */, - {0, 0, 0x3B} /* SEMICOLON */, - {0, 0, 0x3C} /* LESS-THAN SIGN */, - {0, 0, 0x3D} /* EQUALS SIGN */, - {0, 0, 0x3E} /* GREATER-THAN SIGN */, - {0, 0, 0x3F} /* QUESTION MARK */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {3, 0, 0}, - {2, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_4Epage0 = { - 0, marc8r_4Epage0_dir -}; -struct yaz_iconv_trie *marc8r_4Eptrs [] = { - &marc8r_4Epage0, - &marc8r_4Epage1, - &marc8r_4Epage2, -0, }; - -unsigned long yaz_marc8r_4E_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_4Eptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 42 */ -/* PAGE 0 */ -struct yaz_iconv_trie_flat marc8r_51page0_flat[] = { - {"\xD2\x91", 0, 0x40}, /* LOWERCASE GE WITH UPTURN / CYRILLIC SMALL LETTER GHE WITH UPTURN */ - {"\xD1\x92", 0, 0x41}, /* LOWERCASE DJE / CYRILLIC SMALL LETTER DJE (Serbian) */ - {"\xD1\x93", 0, 0x42}, /* CYRILLIC SMALL LETTER GJE */ - {"\xD1\x94", 0, 0x43}, /* LOWERCASE E / CYRILLIC SMALL LETTER UKRAINIAN IE */ - {"\xD1\x91", 0, 0x44}, /* CYRILLIC SMALL LETTER IO */ - {"\xD1\x95", 0, 0x45}, /* CYRILLIC SMALL LETTER DZE */ - {"\xD1\x96", 0, 0x46}, /* LOWERCASE I / CYRILLIC SMALL LETTER BYELORUSSIAN-UKRANIAN I */ - {"\xD1\x97", 0, 0x47}, /* LOWERCASE YI / CYRILLIC SMALL LETTER YI (Ukrainian) */ - {"\xD1\x98", 0, 0x48}, /* CYRILLIC SMALL LETTER JE */ - {"\xD1\x99", 0, 0x49}, /* CYRILLIC SMALL LETTER LJE */ - {"\xD1\x9A", 0, 0x4A}, /* CYRILLIC SMALL LETTER NJE */ - {"\xD1\x9B", 0, 0x4B}, /* LOWERCASE TSHE / CYRILLIC SMALL LETTER TSHE (Serbian) */ - {"\xD1\x9C", 0, 0x4C}, /* CYRILLIC SMALL LETTER KJE */ - {"\xD1\x9E", 0, 0x4D}, /* LOWERCASE SHORT U / CYRILLIC SMALL LETTER SHORT U (Byelorussian) */ - {"\xD1\x9F", 0, 0x4E}, /* CYRILLIC SMALL LETTER DZHE */ - {"\xD1\xA3", 0, 0x50}, /* CYRILLIC SMALL LETTER YAT */ - {"\xD1\xB3", 0, 0x51}, /* CYRILLIC SMALL LETTER FITA */ - {"\xD1\xB5", 0, 0x52}, /* CYRILLIC SMALL LETTER IZHITSA */ - {"\xD1\xAB", 0, 0x53}, /* CYRILLIC SMALL LETTER BIG YUS */ - {"\x5B", 0, 0x5B}, /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */ - {"\x5D", 0, 0x5D}, /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */ - {"\x5F", 0, 0x5F}, /* SPACING UNDERSCORE / LOW LINE */ - {"\xD2\x90", 0, 0x60}, /* UPPERCASE GE WITH UPTURN / CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ - {"\xD0\x82", 0, 0x61}, /* UPPERCASE DJE / CYRILLIC CAPITAL LETTER DJE (Serbian) */ - {"\xD0\x83", 0, 0x62}, /* CYRILLIC CAPITAL LETTER GJE */ - {"\xD0\x84", 0, 0x63}, /* UPPERCASE E / CYRILLIC CAPITAL LETTER UKRAINIAN IE */ - {"\xD0\x81", 0, 0x64}, /* CYRILLIC CAPITAL LETTER IO */ - {"\xD0\x85", 0, 0x65}, /* CYRILLIC CAPITAL LETTER DZE */ - {"\xD0\x86", 0, 0x66}, /* UPPERCASE I / CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRANIAN I */ - {"\xD0\x87", 0, 0x67}, /* UPPERCASE YI / CYRILLIC CAPITAL LETTER YI (Ukrainian) */ - {"\xD0\x88", 0, 0x68}, /* CYRILLIC CAPITAL LETTER JE */ - {"\xD0\x89", 0, 0x69}, /* CYRILLIC CAPITAL LETTER LJE */ - {"\xD0\x8A", 0, 0x6A}, /* CYRILLIC CAPITAL LETTER NJE */ - {"\xD0\x8B", 0, 0x6B}, /* UPPERCASE TSHE / CYRILLIC CAPITAL LETTER TSHE (Serbian) */ - {"\xD0\x8C", 0, 0x6C}, /* CYRILLIC CAPITAL LETTER KJE */ - {"\xD0\x8E", 0, 0x6D}, /* UPPERCASE SHORT U / CYRILLIC CAPITAL LETTER SHORT U (Byelorussian) */ - {"\xD0\x8F", 0, 0x6E}, /* CYRILLIC CAPITAL LETTER DZHE */ - {"\xD0\xAA", 0, 0x6F}, /* CYRILLIC CAPITAL LETTER HARD SIGN */ - {"\xD1\xA2", 0, 0x70}, /* CYRILLIC CAPITAL LETTER YAT */ - {"\xD1\xB2", 0, 0x71}, /* CYRILLIC CAPITAL LETTER FITA */ - {"\xD1\xB4", 0, 0x72}, /* CYRILLIC CAPITAL LETTER IZHITSA */ - {"\xD1\xAA", 0, 0x73}, /* CYRILLIC CAPITAL LETTER BIG YUS */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_51page0 = { - marc8r_51page0_flat, 0 -}; -struct yaz_iconv_trie *marc8r_51ptrs [] = { - &marc8r_51page0, -0, }; - -unsigned long yaz_marc8r_51_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_51ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 83 */ -/* PAGE 3 */ -struct yaz_iconv_trie_flat marc8r_33page3_flat[] = { - {"\x80\x9D", 0, 0x79}, /* RIGHT DOUBLE QUOTATION MARK */ - {"\x80\x9C", 0, 0x7A}, /* LEFT DOUBLE QUOTATION MARK */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_33page3 = { - marc8r_33page3_flat, 0 -}; -/* PAGE 2 */ -struct yaz_iconv_trie_flat marc8r_33page2_flat[] = { - {"\x8C", 0, 0x2C}, /* ARABIC COMMA */ - {"\x9B", 0, 0x3B}, /* ARABIC SEMICOLON */ - {"\x9F", 0, 0x3F}, /* ARABIC QUESTION MARK */ - {"\xA1", 0, 0x41}, /* HAMZAH / ARABIC LETTER HAMZA */ - {"\xA2", 0, 0x42}, /* ARABIC LETTER ALEF WITH MADDA ABOVE */ - {"\xA3", 0, 0x43}, /* ARABIC LETTER ALEF WITH HAMZA ABOVE */ - {"\xA4", 0, 0x44}, /* ARABIC LETTER WAW WITH HAMZA ABOVE */ - {"\xA5", 0, 0x45}, /* ARABIC LETTER ALEF WITH HAMZA BELOW */ - {"\xA6", 0, 0x46}, /* ARABIC LETTER YEH WITH HAMZA ABOVE */ - {"\xA7", 0, 0x47}, /* ARABIC LETTER ALEF */ - {"\xA8", 0, 0x48}, /* ARABIC LETTER BEH */ - {"\xA9", 0, 0x49}, /* ARABIC LETTER TEH MARBUTA */ - {"\xAA", 0, 0x4A}, /* ARABIC LETTER TEH */ - {"\xAB", 0, 0x4B}, /* ARABIC LETTER THEH */ - {"\xAC", 0, 0x4C}, /* ARABIC LETTER JEEM */ - {"\xAD", 0, 0x4D}, /* ARABIC LETTER HAH */ - {"\xAE", 0, 0x4E}, /* ARABIC LETTER KHAH */ - {"\xAF", 0, 0x4F}, /* ARABIC LETTER DAL */ - {"\xB0", 0, 0x50}, /* ARABIC LETTER THAL */ - {"\xB1", 0, 0x51}, /* ARABIC LETTER REH */ - {"\xB2", 0, 0x52}, /* ARABIC LETTER ZAIN */ - {"\xB3", 0, 0x53}, /* ARABIC LETTER SEEN */ - {"\xB4", 0, 0x54}, /* ARABIC LETTER SHEEN */ - {"\xB4", 0, 0x54}, /* ARABIC LETTER SHEEN */ - {"\xB5", 0, 0x55}, /* ARABIC LETTER SAD */ - {"\xB6", 0, 0x56}, /* ARABIC LETTER DAD */ - {"\xB7", 0, 0x57}, /* ARABIC LETTER TAH */ - {"\xB8", 0, 0x58}, /* ARABIC LETTER ZAH */ - {"\xB9", 0, 0x59}, /* ARABIC LETTER AIN */ - {"\xBA", 0, 0x5A}, /* ARABIC LETTER GHAIN */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_33page2 = { - marc8r_33page2_flat, 0 -}; -/* PAGE 1 */ -struct yaz_iconv_trie_flat marc8r_33page1_flat[] = { - {"\xAA", 0, 0x25}, /* PERCENT SIGN / ARABIC PERCENT SIGN */ - {"\xAD", 0, 0x2A}, /* ASTERISK / ARABIC FIVE POINTED STAR */ - {"\xA0", 0, 0x30}, /* ARABIC-INDIC DIGIT ZERO */ - {"\xA1", 0, 0x31}, /* ARABIC-INDIC DIGIT ONE */ - {"\xA2", 0, 0x32}, /* ARABIC-INDIC DIGIT TWO */ - {"\xA3", 0, 0x33}, /* ARABIC-INDIC DIGIT THREE */ - {"\xA4", 0, 0x34}, /* ARABIC-INDIC DIGIT FOUR */ - {"\xA5", 0, 0x35}, /* ARABIC-INDIC DIGIT FIVE */ - {"\xA6", 0, 0x36}, /* ARABIC-INDIC DIGIT SIX */ - {"\xA7", 0, 0x37}, /* ARABIC-INDIC DIGIT SEVEN */ - {"\xA8", 0, 0x38}, /* ARABIC-INDIC DIGIT EIGHT */ - {"\xA9", 0, 0x39}, /* ARABIC-INDIC DIGIT NINE */ - {"\x80", 0, 0x60}, /* ARABIC TATWEEL */ - {"\x81", 0, 0x61}, /* ARABIC LETTER FEH */ - {"\x82", 0, 0x62}, /* ARABIC LETTER QAF */ - {"\x83", 0, 0x63}, /* ARABIC LETTER KAF */ - {"\x84", 0, 0x64}, /* ARABIC LETTER LAM */ - {"\x85", 0, 0x65}, /* ARABIC LETTER MEEM */ - {"\x86", 0, 0x66}, /* ARABIC LETTER NOON */ - {"\x87", 0, 0x67}, /* ARABIC LETTER HEH */ - {"\x88", 0, 0x68}, /* ARABIC LETTER WAW */ - {"\x89", 0, 0x69}, /* ARABIC LETTER ALEF MAKSURA */ - {"\x8A", 0, 0x6A}, /* ARABIC LETTER YEH */ - {"\x8B", 1, 0x6B}, /* ARABIC FATHATAN */ - {"\x8C", 1, 0x6C}, /* ARABIC DAMMATAN */ - {"\x8D", 1, 0x6D}, /* ARABIC KASRATAN */ - {"\x8E", 1, 0x6E}, /* ARABIC FATHA */ - {"\x8F", 1, 0x6F}, /* ARABIC DAMMA */ - {"\x90", 1, 0x70}, /* ARABIC KASRA */ - {"\x91", 1, 0x71}, /* ARABIC SHADDA */ - {"\x92", 1, 0x72}, /* ARABIC SUKUN */ - {"\xB1", 0, 0x73}, /* ARABIC LETTER ALEF WASLA */ - {"\xB0", 0, 0x74}, /* ARABIC LETTER SUPERSCRIPT ALEF */ - {"\xAC", 0, 0x78}, /* ARABIC THOUSANDS SEPARATOR */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_33page1 = { - marc8r_33page1_flat, 0 -}; -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8r_33page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21} /* EXCLAMATION MARK */, - {0, 0, 0x22} /* QUOTATION MARK */, - {0, 0, 0x23} /* NUMBER SIGN */, - {0, 0, 0x24} /* DOLLAR SIGN */, - {0, 0, 0}, - {0, 0, 0x26} /* AMPERSAND */, - {0, 0, 0x27} /* APOSTROPHE */, - {0, 0, 0x28} /* OPENING PARENTHESIS / LEFT PARENTHESIS */, - {0, 0, 0x29} /* CLOSING PARENTHESIS / RIGHT PARENTHESIS */, - {0, 0, 0}, - {0, 0, 0x2B} /* PLUS SIGN */, - {0, 0, 0}, - {0, 0, 0x2D} /* HYPHEN-MINUS */, - {0, 0, 0x2E} /* PERIOD, DECIMAL POINT / FULL STOP */, - {0, 0, 0x2F} /* SLASH / SOLIDUS */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x3A} /* COLON */, - {0, 0, 0}, - {0, 0, 0x3C} /* LESS-THAN SIGN */, - {0, 0, 0x3D} /* EQUALS SIGN */, - {0, 0, 0x3E} /* GREATER-THAN SIGN */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x5B} /* OPENING SQUARE BRACKET / LEFT SQUARE BRACKET */, - {0, 0, 0}, - {0, 0, 0x5D} /* CLOSING SQUARE BRACKET / RIGHT SQUARE BRACKET */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {3, 0, 0}, - {2, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {4, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_33page0 = { - 0, marc8r_33page0_dir -}; -struct yaz_iconv_trie *marc8r_33ptrs [] = { - &marc8r_33page0, - &marc8r_33page1, - &marc8r_33page2, - &marc8r_33page3, -0, }; - -unsigned long yaz_marc8r_33_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_33ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 90 */ -/* PAGE 4 */ -struct yaz_iconv_trie_flat marc8r_34page4_flat[] = { - {"\x86", 1, 0x7D}, /* SHORT E / COMBINING BREVE */ - {"\x8C", 1, 0x7E}, /* SHORT U / COMBINING CARON */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_34page4 = { - marc8r_34page4_flat, 0 -}; -/* PAGE 3 */ -struct yaz_iconv_trie_dir marc8r_34page3_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x2B} /* ARABIC LETTER BEHEH */, - {0, 0, 0x2C} /* ARABIC LETTER HAH WITH HAMZA ABOVE */, - {0, 0, 0x2D} /* ARABIC LETTER HAH WITH TWO ABOVE DOTS VERTICAL ABOVE */, - {0, 0, 0x2E} /* ARABIC LETTER NYEH */, - {0, 0, 0x2F} /* ARABIC LETTER DYEH */, - {0, 0, 0x30} /* ARABIC LETTER HAH WITH THREE DOTS ABOVE */, - {0, 0, 0x31} /* ARABIC LETTER TCHEH */, - {0, 0, 0x33} /* ARABIC LETTER TCHEHEH */, - {0, 0, 0x34} /* ARABIC LETTER DDAL */, - {0, 0, 0x35} /* ARABIC LETTER DAL WITH RING */, - {0, 0, 0x36} /* ARABIC LETTER DAL WITH DOT BELOW */, - {0, 0, 0x37} /* ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH */, - {0, 0, 0x38} /* ARABIC LETTER DAHAL */, - {0, 0, 0x39} /* ARABIC LETTER DDAHAL */, - {0, 0, 0x3A} /* ARABIC LETTER DUL */, - {0, 0, 0x3B} /* ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS */, - {0, 0, 0x3C} /* ARABIC LETTER DAL WITH FOUR DOTS ABOVE */, - {0, 0, 0x3D} /* ARABIC LETTER RREH */, - {0, 0, 0x3E} /* ARABIC LETTER REH WITH SMALL V */, - {0, 0, 0x3F} /* ARABIC LETTER REH WITH RING */, - {0, 0, 0x40} /* ARABIC LETTER REH WITH DOT BELOW */, - {0, 0, 0x41} /* ARABIC LETTER REH WITH SMALL V BELOW */, - {0, 0, 0x42} /* ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE */, - {0, 0, 0x43} /* ARABIC LETTER REH WITH TWO DOTS ABOVE */, - {0, 0, 0x44} /* ARABIC LETTER JEH */, - {0, 0, 0x45} /* ARABIC LETTER REH WITH FOUR DOTS ABOVE */, - {0, 0, 0x46} /* ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE */, - {0, 0, 0x47} /* ARABIC LETTER SEEN WITH THREE DOTS BELOW */, - {0, 0, 0x48} /* ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE */, - {0, 0, 0x4A} /* ARABIC LETTER SAD WITH TWO DOTS BELOW */, - {0, 0, 0x4B} /* ARABIC LETTER SAD WITH THREE DOTS ABOVE */, - {0, 0, 0x4D} /* ARABIC LETTER TAH WITH THREE DOTS ABOVE */, - {0, 0, 0x4E} /* ARABIC LETTER AIN WITH THREE DOTS ABOVE */, - {0, 0, 0x50} /* ARABIC LETTER DOTLESS FEH */, - {0, 0, 0x51} /* ARABIC LETTER FEH WITH DOT MOVED BELOW */, - {0, 0, 0x52} /* ARABIC LETTER FEH WITH DOT BELOW */, - {0, 0, 0x53} /* ARABIC LETTER VEH */, - {0, 0, 0x54} /* ARABIC LETTER FEH WITH THREE DOTS BELOW */, - {0, 0, 0x55} /* ARABIC LETTER PEHEH */, - {0, 0, 0x56} /* ARABIC LETTER QAF WITH DOT ABOVE */, - {0, 0, 0x57} /* ARABIC LETTER QAF WITH THREE DOTS ABOVE */, - {0, 0, 0x58} /* ARABIC LETTER KEHEH */, - {0, 0, 0x59} /* ARABIC LETTER SWASH KAF */, - {0, 0, 0x5A} /* ARABIC LETTER KAF WITH RING */, - {0, 0, 0x5B} /* ARABIC LETTER KAF WITH DOT ABOVE */, - {0, 0, 0x5C} /* ARABIC LETTER NG */, - {0, 0, 0x5D} /* ARABIC LETTER KAF WITH THREE DOTS BELOW */, - {0, 0, 0x5E} /* ARABIC LETTER GAF */, - {0, 0, 0x5F} /* ARABIC LETTER GAF WITH RING */, - {0, 0, 0x60} /* ARABIC LETTER NGOEH */, - {0, 0, 0x61} /* ARABIC LETTER GAF WITH TWO DOTS BELOW */, - {0, 0, 0x62} /* ARABIC LETTER GUEH */, - {0, 0, 0x63} /* ARABIC LETTER GAF WITH THREE DOTS ABOVE */, - {0, 0, 0x64} /* ARABIC LETTER LAM WITH SMALL V */, - {0, 0, 0x65} /* ARABIC LETTER LAM WITH DOT ABOVE */, - {0, 0, 0x66} /* ARABIC LETTER LAM WITH THREE DOTS ABOVE */, - {0, 0, 0x67} /* ARABIC LETTER LAM WITH THREE DOTS BELOW */, - {0, 0, 0x6C} /* ARABIC LETTER NOON WITH DOT BELOW */, - {0, 0, 0x68} /* ARABIC LETTER NOON GHUNNA */, - {0, 0, 0x69} /* ARABIC LETTER RNOON */, - {0, 0, 0x6A} /* ARABIC LETTER NOON WITH RING */, - {0, 0, 0x6B} /* ARABIC LETTER NOON WITH THREE DOTS ABOVE */, - {0, 0, 0x6D} /* ARABIC LETTER HEH DOACHASHMEE */, - {0, 0, 0x32} /* ARABIC LETTER TCHEH WITH DOT ABOVE */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_34page3 = { - 0, marc8r_34page3_dir -}; -/* PAGE 2 */ -struct yaz_iconv_trie_flat marc8r_34page2_flat[] = { - {"\xB2", 0, 0x22}, /* ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE */ - {"\xB3", 0, 0x23}, /* ARABIC LETTER ALEF WITH WAVY HAMZA BELOW */ - {"\xB9", 0, 0x24}, /* ARABIC LETTER TTEH */ - {"\xBA", 0, 0x25}, /* ARABIC LETTER TTEHEH */ - {"\xBB", 0, 0x26}, /* ARABIC LETTER BBEH */ - {"\xBC", 0, 0x27}, /* ARABIC LETTER TEH WITH RING */ - {"\xBD", 0, 0x28}, /* ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS */ - {"\xBE", 0, 0x29}, /* ARABIC LETTER PEH */ - {"\xBF", 0, 0x2A}, /* ARABIC LETTER TEHEH */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_34page2 = { - marc8r_34page2_flat, 0 -}; -/* PAGE 1 */ -struct yaz_iconv_trie_flat marc8r_34page1_flat[] = { - {"\xBD", 0, 0x21}, /* DOUBLE ALEF WITH HAMZA ABOVE / ARABIC SIGN SINDHI AMPERSAND */ - {"\xBA", 0, 0x49}, /* ARABIC LETTER SHEEN WITH DOT BELOW */ - {"\xBB", 0, 0x4C}, /* ARABIC LETTER DAD WITH DOT BELOW */ - {"\xBC", 0, 0x4F}, /* ARABIC LETTER GHAIN WITH DOT BELOW */ - {"\x80", 0, 0x6E}, /* HEH WITH HAMZA ABOVE / ARABIC LETTER HEH WITH YEH ABOVE */ - {"\x84", 0, 0x6F}, /* ARABIC LETTER WAW WITH RING */ - {"\x85", 0, 0x70}, /* KYRGHYZ OE / ARABIC LETTER KIRGHIZ OE */ - {"\x86", 0, 0x71}, /* ARABIC LETTER OE */ - {"\x8A", 0, 0x72}, /* ARABIC LETTER WAW WITH TWO DOTS ABOVE */ - {"\x8B", 0, 0x73}, /* ARABIC LETTER VE */ - {"\x8D", 0, 0x74}, /* ARABIC LETTER YEH WITH TAIL */ - {"\x8E", 0, 0x75}, /* ARABIC LETTER YEH WITH SMALL V */ - {"\x90", 0, 0x76}, /* ARABIC LETTER E */ - {"\x92", 0, 0x77}, /* ARABIC LETTER YEH BARREE */ - {"\x93", 0, 0x78}, /* ARABIC LETTER YEH BARREE WITH HAMZA ABOVE */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_34page1 = { - marc8r_34page1_flat, 0 -}; -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8r_34page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {5, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {3, 0, 0}, - {4, 0, 0}, - {2, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_34page0 = { - 0, marc8r_34page0_dir -}; -struct yaz_iconv_trie *marc8r_34ptrs [] = { - &marc8r_34page0, - &marc8r_34page1, - &marc8r_34page2, - &marc8r_34page3, - &marc8r_34page4, -0, }; - -unsigned long yaz_marc8r_34_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_34ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 73 */ -/* PAGE 6 */ -struct yaz_iconv_trie_flat marc8r_53page6_flat[] = { - {"\x9A", 0, 0x47}, /* GREEK LETTER STIGMA */ - {"\x9C", 0, 0x48}, /* GREEK LETTER DIGAMMA */ - {"\x9E", 0, 0x54}, /* GREEK LETTER KOPPA */ - {"\xA0", 0, 0x5E}, /* GREEK LETTER SAMPI */ - {"\x90", 0, 0x63}, /* GREEK BETA SYMBOL / SMALL LETTER BETA MIDDLE OF WORD */ - {"\x9B", 0, 0x67}, /* GREEK SMALL LETTER STIGMA */ - {"\x9D", 0, 0x68}, /* GREEK SMALL LETTER DIGAMMA */ - {"\x9D", 0, 0x68}, /* GREEK SMALL LETTER DIGAMMA */ - {"\x80", 0, 0x73}, /* GREEK SMALL LETTER PI */ - {"\x9F", 0, 0x74}, /* GREEK SMALL LETTER KOPPA */ - {"\x81", 0, 0x75}, /* GREEK SMALL LETTER RHO */ - {"\x83", 0, 0x76}, /* GREEK SMALL LETTER SIGMA */ - {"\x82", 0, 0x77}, /* GREEK SMALL LETTER FINAL SIGMA / SMALL LETTER SIGMA END OF WORD */ - {"\x84", 0, 0x78}, /* GREEK SMALL LETTER TAU */ - {"\x85", 0, 0x79}, /* GREEK SMALL LETTER UPSILON */ - {"\x86", 0, 0x7A}, /* GREEK SMALL LETTER PHI */ - {"\x87", 0, 0x7B}, /* GREEK SMALL LETTER CHI */ - {"\x88", 0, 0x7C}, /* GREEK SMALL LETTER PSI */ - {"\x89", 0, 0x7D}, /* GREEK SMALL LETTER OMEGA */ - {"\xA1", 0, 0x7E}, /* GREEK SMALL LETTER SAMPI */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_53page6 = { - marc8r_53page6_flat, 0 -}; -/* PAGE 5 */ -struct yaz_iconv_trie_flat marc8r_53page5_flat[] = { - {"\x87", 0, 0x3B}, /* GREEK ANO TELEIA / RAISED DOT, GREEK SEMICOLON */ - {"\x91", 0, 0x41}, /* GREEK CAPITAL LETTER ALPHA */ - {"\x92", 0, 0x42}, /* GREEK CAPITAL LETTER BETA */ - {"\x93", 0, 0x44}, /* GREEK CAPITAL LETTER GAMMA */ - {"\x94", 0, 0x45}, /* GREEK CAPITAL LETTER DELTA */ - {"\x95", 0, 0x46}, /* GREEK CAPITAL LETTER EPSILON */ - {"\x96", 0, 0x49}, /* GREEK CAPITAL LETTER ZETA */ - {"\x97", 0, 0x4A}, /* GREEK CAPITAL LETTER ETA */ - {"\x98", 0, 0x4B}, /* GREEK CAPITAL LETTER THETA */ - {"\x99", 0, 0x4C}, /* GREEK CAPITAL LETTER IOTA */ - {"\x9A", 0, 0x4D}, /* GREEK CAPITAL LETTER KAPPA */ - {"\x9B", 0, 0x4E}, /* GREEK CAPITAL LETTER LAMDA */ - {"\x9C", 0, 0x4F}, /* GREEK CAPITAL LETTER MU */ - {"\x9D", 0, 0x50}, /* GREEK CAPITAL LETTER NU */ - {"\x9E", 0, 0x51}, /* GREEK CAPITAL LETTER XI */ - {"\x9F", 0, 0x52}, /* GREEK CAPITAL LETTER OMICRON */ - {"\xA0", 0, 0x53}, /* GREEK CAPITAL LETTER PI */ - {"\xA1", 0, 0x55}, /* GREEK CAPITAL LETTER RHO */ - {"\xA3", 0, 0x56}, /* GREEK CAPITAL LETTER SIGMA */ - {"\xA4", 0, 0x58}, /* GREEK CAPITAL LETTER TAU */ - {"\xA5", 0, 0x59}, /* GREEK CAPITAL LETTER UPSILON */ - {"\xA6", 0, 0x5A}, /* GREEK CAPITAL LETTER PHI */ - {"\xA7", 0, 0x5B}, /* GREEK CAPITAL LETTER CHI */ - {"\xA8", 0, 0x5C}, /* GREEK CAPITAL LETTER PSI */ - {"\xA9", 0, 0x5D}, /* GREEK CAPITAL LETTER OMEGA */ - {"\xB1", 0, 0x61}, /* GREEK SMALL LETTER ALPHA */ - {"\xB2", 0, 0x62}, /* GREEK SMALL LETTER BETA / SMALL LETTER BETA BEGINNING OF WORD */ - {"\xB3", 0, 0x64}, /* GREEK SMALL LETTER GAMMA */ - {"\xB4", 0, 0x65}, /* GREEK SMALL LETTER DELTA */ - {"\xB5", 0, 0x66}, /* GREEK SMALL LETTER EPSILON */ - {"\xB6", 0, 0x69}, /* GREEK SMALL LETTER ZETA */ - {"\xB7", 0, 0x6A}, /* GREEK SMALL LETTER ETA */ - {"\xB8", 0, 0x6B}, /* GREEK SMALL LETTER THETA */ - {"\xB9", 0, 0x6C}, /* GREEK SMALL LETTER IOTA */ - {"\xBA", 0, 0x6D}, /* GREEK SMALL LETTER KAPPA */ - {"\xBB", 0, 0x6E}, /* GREEK SMALL LETTER LAMDA */ - {"\xBC", 0, 0x6F}, /* GREEK SMALL LETTER MU */ - {"\xBD", 0, 0x70}, /* GREEK SMALL LETTER NU */ - {"\xBE", 0, 0x71}, /* GREEK SMALL LETTER XI */ - {"\xBF", 0, 0x72}, /* GREEK SMALL LETTER OMICRON */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_53page5 = { - marc8r_53page5_flat, 0 -}; -/* PAGE 4 */ -struct yaz_iconv_trie_flat marc8r_53page4_flat[] = { - {"\x80\x9C", 0, 0x32}, /* LEFT DOUBLE QUOTATION MARK */ - {"\x80\x9D", 0, 0x33}, /* RIGHT DOUBLE QUOTATION MARK */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_53page4 = { - marc8r_53page4_flat, 0 -}; -/* PAGE 3 */ -struct yaz_iconv_trie_flat marc8r_53page3_flat[] = { - {"\xAB", 0, 0x30}, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ - {"\xBB", 0, 0x31}, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_53page3 = { - marc8r_53page3_flat, 0 -}; -/* PAGE 2 */ -struct yaz_iconv_trie_flat marc8r_53page2_flat[] = { - {"\x82", 1, 0x24}, /* COMBINING GREEK PERISPOMENI / CIRCUMFLEX */ - {"\x85", 1, 0x27}, /* COMBINING GREEK YPOGEGRAMMENI / IOTA SUBSCRIPT */ - {"\xB4", 0, 0x34}, /* GREEK NUMERAL SIGN / UPPER PRIME */ - {"\xB5", 0, 0x35}, /* GREEK LOWER NUMERAL SIGN / LOWER PRIME */ - {"\xBE", 0, 0x3F}, /* GREEK QUESTION MARK */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_53page2 = { - marc8r_53page2_flat, 0 -}; -/* PAGE 1 */ -struct yaz_iconv_trie_flat marc8r_53page1_flat[] = { - {"\x80", 1, 0x21}, /* COMBINING GRAVE ACCENT */ - {"\x81", 1, 0x22}, /* COMBINING ACUTE ACCENT */ - {"\x88", 1, 0x23}, /* COMBINING DIAERESIS */ - {"\x93", 1, 0x25}, /* COMBINING COMMA ABOVE / SMOOTH BREATHING */ - {"\x94", 1, 0x26}, /* COMBINING REVERSED COMMA ABOVE / ROUGH BREATHING */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_53page1 = { - marc8r_53page1_flat, 0 -}; -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8r_53page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {4, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {2, 0, 0}, - {3, 0, 0}, - {6, 0, 0}, - {7, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {5, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_53page0 = { - 0, marc8r_53page0_dir -}; -struct yaz_iconv_trie *marc8r_53ptrs [] = { - &marc8r_53page0, - &marc8r_53page1, - &marc8r_53page2, - &marc8r_53page3, - &marc8r_53page4, - &marc8r_53page5, - &marc8r_53page6, -0, }; - -unsigned long yaz_marc8r_53_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_53ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - -/* TRIE: size 15800 */ -/* PAGE 526 */ -struct yaz_iconv_trie_flat marc8r_31page526_flat[] = { - {"\x80", 0, 0x6F764E}, /* Korean hangul (ancient) */ - {"\x81", 0, 0x6F764F}, /* Korean hangul (ancient) */ - {"\x82", 0, 0x6F7650}, /* Korean hangul (ancient) */ - {"\x83", 0, 0x6F7651}, /* Korean hangul (ancient) */ - {"\x84", 0, 0x6F7652}, /* Korean hangul (ancient) */ - {"\x85", 0, 0x6F7653}, /* Korean hangul (ancient) */ - {"\x86", 0, 0x6F7654}, /* Korean hangul (ancient) */ - {"\x87", 0, 0x6F7655}, /* Korean hangul (ancient) */ - {"\x88", 0, 0x6F7656}, /* Korean hangul (ancient) */ - {"\x89", 0, 0x6F7657}, /* Korean hangul (ancient) */ - {"\x8A", 0, 0x6F7723}, /* Korean hangul */ - {"\x90", 0, 0x212A21}, /* EACC component character */ - {"\x91", 0, 0x212A22}, /* EACC component character */ - {"\x92", 0, 0x212A23}, /* EACC component character */ - {"\x93", 0, 0x212A24}, /* EACC component character */ - {"\x94", 0, 0x212A25}, /* EACC component character */ - {"\x95", 0, 0x212A26}, /* EACC component character */ - {"\x96", 0, 0x212A28}, /* EACC component character */ - {"\x97", 0, 0x212A29}, /* EACC component character */ - {"\x98", 0, 0x212A2A}, /* EACC component character */ - {"\x99", 0, 0x212A2B}, /* EACC component character */ - {"\x9A", 0, 0x212A2C}, /* EACC component character */ - {"\x9B", 0, 0x212A2D}, /* EACC component character */ - {"\x9C", 0, 0x212A2E}, /* EACC component character */ - {"\x9D", 0, 0x212A2F}, /* EACC component character */ - {"\x9E", 0, 0x212A30}, /* EACC component character */ - {"\x9F", 0, 0x212A32}, /* EACC component character */ - {"\xA0", 0, 0x212A33}, /* EACC component character */ - {"\xA1", 0, 0x212A34}, /* EACC component character */ - {"\xA2", 0, 0x212A35}, /* EACC component character */ - {"\xA3", 0, 0x212A36}, /* EACC component character */ - {"\xA4", 0, 0x212A37}, /* EACC component character */ - {"\xA5", 0, 0x212A38}, /* EACC component character */ - {"\xA6", 0, 0x212A39}, /* EACC component character */ - {"\xA7", 0, 0x212A3A}, /* EACC component character */ - {"\xA8", 0, 0x212A3B}, /* EACC component character */ - {"\xA8", 0, 0x212A3B}, /* EACC component character */ - {"\xA9", 0, 0x212A3C}, /* EACC component character */ - {"\xAA", 0, 0x212A3D}, /* EACC component character */ - {"\xAB", 0, 0x212A3E}, /* EACC component character */ - {"\xAC", 0, 0x212A3F}, /* EACC component character */ - {"\xAD", 0, 0x212A40}, /* EACC component character */ - {"\xAE", 0, 0x212A41}, /* EACC component character */ - {"\xAF", 0, 0x212A42}, /* EACC component character */ - {"\xB0", 0, 0x212A43}, /* EACC component character */ - {"\xB1", 0, 0x212A44}, /* EACC component character */ - {"\xB2", 0, 0x212A45}, /* EACC component character */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page526 = { - marc8r_31page526_flat, 0 -}; -/* PAGE 525 */ -struct yaz_iconv_trie_flat marc8r_31page525_flat[] = { - {"\xB0", 0, 0x6F7624}, /* Korean hangul (ancient) */ - {"\xB2", 0, 0x6F7640}, /* Korean hangul (ancient) */ - {"\xB3", 0, 0x6F7641}, /* Korean hangul (ancient) */ - {"\xB4", 0, 0x6F7642}, /* Korean hangul (ancient) */ - {"\xB5", 0, 0x6F7643}, /* Korean hangul (ancient) */ - {"\xB6", 0, 0x6F7644}, /* Korean hangul (ancient) */ - {"\xB7", 0, 0x6F7645}, /* Korean hangul (ancient) */ - {"\xB8", 0, 0x6F7646}, /* Korean hangul (ancient) */ - {"\xB9", 0, 0x6F7647}, /* Korean hangul (ancient) */ - {"\xBA", 0, 0x6F7648}, /* Korean hangul (ancient) */ - {"\xBB", 0, 0x6F7649}, /* Korean hangul (ancient) */ - {"\xBC", 0, 0x6F764A}, /* Korean hangul (ancient) */ - {"\xBD", 0, 0x6F764B}, /* Korean hangul (ancient) */ - {"\xBE", 0, 0x6F764C}, /* Korean hangul (ancient) */ - {"\xBF", 0, 0x6F764D}, /* Korean hangul (ancient) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page525 = { - marc8r_31page525_flat, 0 -}; -/* PAGE 524 */ -struct yaz_iconv_trie_flat marc8r_31page524_flat[] = { - {"\xBC\x88", 0, 0x212328}, /* Ideographic left parenthesis */ - {"\xBC\x89", 0, 0x212329}, /* Ideographic right parenthesis */ - {"\xBC\x8D", 0, 0x21232D}, /* Ideographic hyphen minus */ - {"\xBC\xBB", 0, 0x212B31}, /* Ideographic left square bracket */ - {"\xBC\xBD", 0, 0x212B32}, /* Ideographic right square bracket */ - {"\xBC\x8E", 0, 0x212B34}, /* Ideographic variant full stop */ - {"\xBC\x8C", 0, 0x212B38}, /* Ideographic variant comma */ - {"\xBC\x9B", 0, 0x212B39}, /* Ideographic semicolon */ - {"\xBC\x9A", 0, 0x212B3A}, /* Ideographic colon */ - {"\xBC\x9F", 0, 0x212B3B}, /* Ideographic question mark */ - {"\xBC\x81", 0, 0x212B3D}, /* Ideographic exclamation point */ - {"\xBC\x8F", 0, 0x212B59}, /* Ideographic solidus */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page524 = { - marc8r_31page524_flat, 0 -}; -/* PAGE 523 */ -struct yaz_iconv_trie_dir marc8r_31page523_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {526, 0, 0}, - {527, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page523 = { - 0, marc8r_31page523_dir -}; -/* PAGE 522 */ -struct yaz_iconv_trie_flat marc8r_31page522_flat[] = { - {"\x81", 0, 0x6F7621}, /* Korean hangul */ - {"\x86", 0, 0x6F7622}, /* Korean hangul */ - {"\x8D", 0, 0x6F7625}, /* Korean hangul (ancient) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page522 = { - marc8r_31page522_flat, 0 -}; -/* PAGE 521 */ -struct yaz_iconv_trie_flat marc8r_31page521_flat[] = { - {"\x88", 0, 0x6F5D78}, /* Korean hangul */ - {"\x89", 0, 0x6F5D79}, /* Korean hangul */ - {"\x8C", 0, 0x6F5D7A}, /* Korean hangul */ - {"\x90", 0, 0x6F5D7B}, /* Korean hangul */ - {"\x98", 0, 0x6F5D7C}, /* Korean hangul */ - {"\x99", 0, 0x6F5D7D}, /* Korean hangul */ - {"\x9B", 0, 0x6F5D7E}, /* Korean hangul */ - {"\x9D", 0, 0x6F5E21}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page521 = { - marc8r_31page521_flat, 0 -}; -/* PAGE 520 */ -struct yaz_iconv_trie_flat marc8r_31page520_flat[] = { - {"\x84", 0, 0x6F5D68}, /* Korean hangul */ - {"\x89", 0, 0x6F5D69}, /* Korean hangul */ - {"\x90", 0, 0x6F5D6A}, /* Korean hangul */ - {"\x91", 0, 0x6F5D6B}, /* Korean hangul */ - {"\x94", 0, 0x6F5D6C}, /* Korean hangul */ - {"\x97", 0, 0x6F5D6D}, /* Korean hangul */ - {"\x98", 0, 0x6F5D6E}, /* Korean hangul */ - {"\x99", 0, 0x6F5D6F}, /* Korean hangul */ - {"\xA0", 0, 0x6F5D70}, /* Korean hangul */ - {"\xA1", 0, 0x6F5D71}, /* Korean hangul */ - {"\xA3", 0, 0x6F5D72}, /* Korean hangul */ - {"\xA5", 0, 0x6F5D73}, /* Korean hangul */ - {"\xA9", 0, 0x6F5D74}, /* Korean hangul */ - {"\xAC", 0, 0x6F5D75}, /* Korean hangul */ - {"\xB0", 0, 0x6F5D76}, /* Korean hangul */ - {"\xB4", 0, 0x6F5D77}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page520 = { - marc8r_31page520_flat, 0 -}; -/* PAGE 519 */ -struct yaz_iconv_trie_flat marc8r_31page519_flat[] = { - {"\x80", 0, 0x6F5D5C}, /* Korean hangul */ - {"\x91", 0, 0x6F5D5D}, /* Korean hangul */ - {"\x98", 0, 0x6F5D5E}, /* Korean hangul */ - {"\x99", 0, 0x6F5D5F}, /* Korean hangul */ - {"\x9C", 0, 0x6F5D60}, /* Korean hangul */ - {"\xA0", 0, 0x6F5D61}, /* Korean hangul */ - {"\xA8", 0, 0x6F5D62}, /* Korean hangul */ - {"\xA9", 0, 0x6F5D63}, /* Korean hangul */ - {"\xAD", 0, 0x6F5D65}, /* Korean hangul */ - {"\xB4", 0, 0x6F5D66}, /* Korean hangul */ - {"\xBC", 0, 0x6F5D67}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page519 = { - marc8r_31page519_flat, 0 -}; -/* PAGE 518 */ -struct yaz_iconv_trie_flat marc8r_31page518_flat[] = { - {"\x84", 0, 0x6F5D4F}, /* Korean hangul */ - {"\x85", 0, 0x6F5D50}, /* Korean hangul */ - {"\x88", 0, 0x6F5D51}, /* Korean hangul */ - {"\x8C", 0, 0x6F5D52}, /* Korean hangul */ - {"\x91", 0, 0x6F5D53}, /* Korean hangul */ - {"\x94", 0, 0x6F5D54}, /* Korean hangul */ - {"\x97", 0, 0x6F5D55}, /* Korean hangul */ - {"\xA0", 0, 0x6F5D56}, /* Korean hangul */ - {"\xA4", 0, 0x6F5D57}, /* Korean hangul */ - {"\xA8", 0, 0x6F5D58}, /* Korean hangul */ - {"\xB0", 0, 0x6F5D59}, /* Korean hangul */ - {"\xBC", 0, 0x6F5D5A}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page518 = { - marc8r_31page518_flat, 0 -}; -/* PAGE 517 */ -struct yaz_iconv_trie_flat marc8r_31page517_flat[] = { - {"\x83", 0, 0x6F5D48}, /* Korean hangul */ - {"\x8C", 0, 0x6F5D4A}, /* Korean hangul */ - {"\x8D", 0, 0x6F5D4B}, /* Korean hangul */ - {"\x9F", 0, 0x6F5D4C}, /* Korean hangul */ - {"\xA1", 0, 0x6F5D4D}, /* Korean hangul */ - {"\xA8", 0, 0x6F5D4E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page517 = { - marc8r_31page517_flat, 0 -}; -/* PAGE 516 */ -struct yaz_iconv_trie_flat marc8r_31page516_flat[] = { - {"\x80", 0, 0x6F5D39}, /* Korean hangul */ - {"\x88", 0, 0x6F5D3A}, /* Korean hangul */ - {"\x89", 0, 0x6F5D3B}, /* Korean hangul */ - {"\x8B", 0, 0x6F5D3C}, /* Korean hangul */ - {"\x8D", 0, 0x6F5D3D}, /* Korean hangul */ - {"\x94", 0, 0x6F5D3F}, /* Korean hangul */ - {"\x95", 0, 0x6F5D40}, /* Korean hangul */ - {"\x98", 0, 0x6F5D41}, /* Korean hangul */ - {"\x9C", 0, 0x6F5D42}, /* Korean hangul */ - {"\xA7", 0, 0x6F5D44}, /* Korean hangul */ - {"\xA9", 0, 0x6F5D45}, /* Korean hangul */ - {"\xB0", 0, 0x6F5D46}, /* Korean hangul */ - {"\xB1", 0, 0x6F5D47}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page516 = { - marc8r_31page516_flat, 0 -}; -/* PAGE 515 */ -struct yaz_iconv_trie_flat marc8r_31page515_flat[] = { - {"\x80", 0, 0x6F5D2C}, /* Korean hangul */ - {"\x81", 0, 0x6F5D2D}, /* Korean hangul */ - {"\x84", 0, 0x6F5D2E}, /* Korean hangul */ - {"\x88", 0, 0x6F5D2F}, /* Korean hangul */ - {"\x90", 0, 0x6F5D30}, /* Korean hangul */ - {"\x91", 0, 0x6F5D31}, /* Korean hangul */ - {"\x93", 0, 0x6F5D32}, /* Korean hangul */ - {"\x94", 0, 0x6F5D33}, /* Korean hangul */ - {"\x95", 0, 0x6F5D34}, /* Korean hangul */ - {"\x9C", 0, 0x6F5D35}, /* Korean hangul */ - {"\xB8", 0, 0x6F5D36}, /* Korean hangul */ - {"\xB9", 0, 0x6F5D37}, /* Korean hangul */ - {"\xBC", 0, 0x6F5D38}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page515 = { - marc8r_31page515_flat, 0 -}; -/* PAGE 514 */ -struct yaz_iconv_trie_flat marc8r_31page514_flat[] = { - {"\x88", 0, 0x6F5C79}, /* Korean hangul */ - {"\x89", 0, 0x6F5C7A}, /* Korean hangul */ - {"\x8C", 0, 0x6F5C7B}, /* Korean hangul */ - {"\x90", 0, 0x6F5C7C}, /* Korean hangul */ - {"\x92", 0, 0x6F5C7D}, /* Korean hangul */ - {"\x98", 0, 0x6F5C7E}, /* Korean hangul */ - {"\x99", 0, 0x6F5D21}, /* Korean hangul */ - {"\x9B", 0, 0x6F5D22}, /* Korean hangul */ - {"\x9D", 0, 0x6F5D23}, /* Korean hangul */ - {"\xA4", 0, 0x6F5D24}, /* Korean hangul */ - {"\xA5", 0, 0x6F5D25}, /* Korean hangul */ - {"\xA8", 0, 0x6F5D26}, /* Korean hangul */ - {"\xAC", 0, 0x6F5D27}, /* Korean hangul */ - {"\xB4", 0, 0x6F5D28}, /* Korean hangul */ - {"\xB5", 0, 0x6F5D29}, /* Korean hangul */ - {"\xB7", 0, 0x6F5D2A}, /* Korean hangul */ - {"\xB9", 0, 0x6F5D2B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page514 = { - marc8r_31page514_flat, 0 -}; -/* PAGE 513 */ -struct yaz_iconv_trie_flat marc8r_31page513_flat[] = { - {"\x84", 0, 0x6F5C72}, /* Korean hangul */ - {"\x85", 0, 0x6F5C73}, /* Korean hangul */ - {"\x87", 0, 0x6F5C74}, /* Korean hangul */ - {"\x88", 0, 0x6F5C75}, /* Korean hangul */ - {"\x89", 0, 0x6F5C76}, /* Korean hangul */ - {"\x90", 0, 0x6F5C77}, /* Korean hangul */ - {"\xA5", 0, 0x6F5C78}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page513 = { - marc8r_31page513_flat, 0 -}; -/* PAGE 512 */ -struct yaz_iconv_trie_flat marc8r_31page512_flat[] = { - {"\x80", 0, 0x6F5C5B}, /* Korean hangul */ - {"\x84", 0, 0x6F5C5C}, /* Korean hangul */ - {"\x8C", 0, 0x6F5C5D}, /* Korean hangul */ - {"\x8D", 0, 0x6F5C5E}, /* Korean hangul */ - {"\x8F", 0, 0x6F5C5F}, /* Korean hangul */ - {"\x91", 0, 0x6F5C60}, /* Korean hangul */ - {"\x98", 0, 0x6F5C63}, /* Korean hangul */ - {"\x99", 0, 0x6F5C64}, /* Korean hangul */ - {"\x9C", 0, 0x6F5C65}, /* Korean hangul */ - {"\xA0", 0, 0x6F5C66}, /* Korean hangul */ - {"\xA5", 0, 0x6F5C67}, /* Korean hangul */ - {"\xA8", 0, 0x6F5C68}, /* Korean hangul */ - {"\xA9", 0, 0x6F5C69}, /* Korean hangul */ - {"\xAB", 0, 0x6F5C6A}, /* Korean hangul */ - {"\xAC", 0, 0x6F5C6B}, /* Korean hangul */ - {"\xAD", 0, 0x6F5C6C}, /* Korean hangul */ - {"\xB1", 0, 0x6F5C6D}, /* Korean hangul */ - {"\xB4", 0, 0x6F5C6E}, /* Korean hangul */ - {"\xB5", 0, 0x6F5C6F}, /* Korean hangul */ - {"\xB8", 0, 0x6F5C70}, /* Korean hangul */ - {"\xBC", 0, 0x6F5C71}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page512 = { - marc8r_31page512_flat, 0 -}; -/* PAGE 511 */ -struct yaz_iconv_trie_flat marc8r_31page511_flat[] = { - {"\x84", 0, 0x6F5C53}, /* Korean hangul */ - {"\x88", 0, 0x6F5C55}, /* Korean hangul */ - {"\x8C", 0, 0x6F5C56}, /* Korean hangul */ - {"\x94", 0, 0x6F5C57}, /* Korean hangul */ - {"\x95", 0, 0x6F5C58}, /* Korean hangul */ - {"\xBC", 0, 0x6F5C59}, /* Korean hangul */ - {"\xBD", 0, 0x6F5C5A}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page511 = { - marc8r_31page511_flat, 0 -}; -/* PAGE 510 */ -struct yaz_iconv_trie_flat marc8r_31page510_flat[] = { - {"\x8C", 0, 0x6F5C51}, /* Korean hangul */ - {"\xA8", 0, 0x6F5C52}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page510 = { - marc8r_31page510_flat, 0 -}; -/* PAGE 509 */ -struct yaz_iconv_trie_flat marc8r_31page509_flat[] = { - {"\x80", 0, 0x6F5C4C}, /* Korean hangul */ - {"\x88", 0, 0x6F5C4D}, /* Korean hangul */ - {"\x89", 0, 0x6F5C4E}, /* Korean hangul */ - {"\x8B", 0, 0x6F5C4F}, /* Korean hangul */ - {"\x8D", 0, 0x6F5C50}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page509 = { - marc8r_31page509_flat, 0 -}; -/* PAGE 508 */ -struct yaz_iconv_trie_flat marc8r_31page508_flat[] = { - {"\x80", 0, 0x6F5C45}, /* Korean hangul */ - {"\x84", 0, 0x6F5C46}, /* Korean hangul */ - {"\x9C", 0, 0x6F5C47}, /* Korean hangul */ - {"\xAF", 0, 0x6F5C48}, /* Korean hangul */ - {"\xB8", 0, 0x6F5C49}, /* Korean hangul */ - {"\xB9", 0, 0x6F5C4A}, /* Korean hangul */ - {"\xBC", 0, 0x6F5C4B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page508 = { - marc8r_31page508_flat, 0 -}; -/* PAGE 507 */ -struct yaz_iconv_trie_flat marc8r_31page507_flat[] = { - {"\x81", 0, 0x6F5C44}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page507 = { - marc8r_31page507_flat, 0 -}; -/* PAGE 506 */ -struct yaz_iconv_trie_flat marc8r_31page506_flat[] = { - {"\x84", 0, 0x6F5C38}, /* Korean hangul */ - {"\x85", 0, 0x6F5C39}, /* Korean hangul */ - {"\x88", 0, 0x6F5C3A}, /* Korean hangul */ - {"\x89", 0, 0x6F5C3B}, /* Korean hangul */ - {"\x90", 0, 0x6F5C3C}, /* Korean hangul */ - {"\xAC", 0, 0x6F5C3D}, /* Korean hangul */ - {"\xAD", 0, 0x6F5C3E}, /* Korean hangul */ - {"\xB0", 0, 0x6F5C3F}, /* Korean hangul */ - {"\xB4", 0, 0x6F5C40}, /* Korean hangul */ - {"\xBC", 0, 0x6F5C41}, /* Korean hangul */ - {"\xBD", 0, 0x6F5C42}, /* Korean hangul */ - {"\xBF", 0, 0x6F5C43}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page506 = { - marc8r_31page506_flat, 0 -}; -/* PAGE 505 */ -struct yaz_iconv_trie_flat marc8r_31page505_flat[] = { - {"\x80", 0, 0x6F5C25}, /* Korean hangul */ - {"\x84", 0, 0x6F5C26}, /* Korean hangul */ - {"\x8C", 0, 0x6F5C27}, /* Korean hangul */ - {"\x8D", 0, 0x6F5C28}, /* Korean hangul */ - {"\x8F", 0, 0x6F5C29}, /* Korean hangul */ - {"\x90", 0, 0x6F5C2A}, /* Korean hangul */ - {"\x91", 0, 0x6F5C2B}, /* Korean hangul */ - {"\x98", 0, 0x6F5C2C}, /* Korean hangul */ - {"\x99", 0, 0x6F5C2D}, /* Korean hangul */ - {"\x9C", 0, 0x6F5C2E}, /* Korean hangul */ - {"\xA0", 0, 0x6F5C2F}, /* Korean hangul */ - {"\xA8", 0, 0x6F5C30}, /* Korean hangul */ - {"\xA9", 0, 0x6F5C31}, /* Korean hangul */ - {"\xAB", 0, 0x6F5C32}, /* Korean hangul */ - {"\xAD", 0, 0x6F5C33}, /* Korean hangul */ - {"\xB4", 0, 0x6F5C34}, /* Korean hangul */ - {"\xB5", 0, 0x6F5C35}, /* Korean hangul */ - {"\xB8", 0, 0x6F5C36}, /* Korean hangul */ - {"\xBC", 0, 0x6F5C37}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page505 = { - marc8r_31page505_flat, 0 -}; -/* PAGE 504 */ -struct yaz_iconv_trie_flat marc8r_31page504_flat[] = { - {"\xBC", 0, 0x6F5C23}, /* Korean hangul */ - {"\xBD", 0, 0x6F5C24}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page504 = { - marc8r_31page504_flat, 0 -}; -/* PAGE 503 */ -struct yaz_iconv_trie_flat marc8r_31page503_flat[] = { - {"\x80", 0, 0x6F5B67}, /* Korean hangul */ - {"\x81", 0, 0x6F5B68}, /* Korean hangul */ - {"\x85", 0, 0x6F5B69}, /* Korean hangul */ - {"\x8C", 0, 0x6F5B6C}, /* Korean hangul */ - {"\x8D", 0, 0x6F5B6D}, /* Korean hangul */ - {"\x8E", 0, 0x6F5B6E}, /* Korean hangul */ - {"\x90", 0, 0x6F5B6F}, /* Korean hangul */ - {"\x94", 0, 0x6F5B70}, /* Korean hangul */ - {"\x9C", 0, 0x6F5B71}, /* Korean hangul */ - {"\x9D", 0, 0x6F5B72}, /* Korean hangul */ - {"\x9F", 0, 0x6F5B73}, /* Korean hangul */ - {"\xA0", 0, 0x6F5B74}, /* Korean hangul */ - {"\xA1", 0, 0x6F5B75}, /* Korean hangul */ - {"\xA5", 0, 0x6F5B76}, /* Korean hangul */ - {"\xA8", 0, 0x6F5B77}, /* Korean hangul */ - {"\xA9", 0, 0x6F5B78}, /* Korean hangul */ - {"\xAC", 0, 0x6F5B79}, /* Korean hangul */ - {"\xB0", 0, 0x6F5B7A}, /* Korean hangul */ - {"\xB8", 0, 0x6F5B7B}, /* Korean hangul */ - {"\xB9", 0, 0x6F5B7C}, /* Korean hangul */ - {"\xBB", 0, 0x6F5B7D}, /* Korean hangul */ - {"\xBC", 0, 0x6F5B7E}, /* Korean hangul */ - {"\xBD", 0, 0x6F5C21}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page503 = { - marc8r_31page503_flat, 0 -}; -/* PAGE 502 */ -struct yaz_iconv_trie_flat marc8r_31page502_flat[] = { - {"\x80", 0, 0x6F5B5D}, /* Korean hangul */ - {"\x88", 0, 0x6F5B5E}, /* Korean hangul */ - {"\x89", 0, 0x6F5B5F}, /* Korean hangul */ - {"\x8B", 0, 0x6F5B60}, /* Korean hangul */ - {"\x94", 0, 0x6F5B61}, /* Korean hangul */ - {"\xB0", 0, 0x6F5B63}, /* Korean hangul */ - {"\xB1", 0, 0x6F5B64}, /* Korean hangul */ - {"\xB4", 0, 0x6F5B65}, /* Korean hangul */ - {"\xB8", 0, 0x6F5B66}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page502 = { - marc8r_31page502_flat, 0 -}; -/* PAGE 501 */ -struct yaz_iconv_trie_flat marc8r_31page501_flat[] = { - {"\x80", 0, 0x6F5B4D}, /* Korean hangul */ - {"\x84", 0, 0x6F5B4E}, /* Korean hangul */ - {"\x88", 0, 0x6F5B4F}, /* Korean hangul */ - {"\x90", 0, 0x6F5B50}, /* Korean hangul */ - {"\x91", 0, 0x6F5B51}, /* Korean hangul */ - {"\x93", 0, 0x6F5B52}, /* Korean hangul */ - {"\x95", 0, 0x6F5B53}, /* Korean hangul */ - {"\x9C", 0, 0x6F5B54}, /* Korean hangul */ - {"\xAC", 0, 0x6F5B57}, /* Korean hangul */ - {"\xB8", 0, 0x6F5B59}, /* Korean hangul */ - {"\xB9", 0, 0x6F5B5A}, /* Korean hangul */ - {"\xBC", 0, 0x6F5B5B}, /* Korean hangul */ - {"\xBF", 0, 0x6F5B5C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page501 = { - marc8r_31page501_flat, 0 -}; -/* PAGE 500 */ -struct yaz_iconv_trie_flat marc8r_31page500_flat[] = { - {"\x81", 0, 0x6F5B4A}, /* Korean hangul */ - {"\xA4", 0, 0x6F5B4B}, /* Korean hangul */ - {"\xB7", 0, 0x6F5B4C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page500 = { - marc8r_31page500_flat, 0 -}; -/* PAGE 499 */ -struct yaz_iconv_trie_flat marc8r_31page499_flat[] = { - {"\xAC", 0, 0x6F5B43}, /* Korean hangul */ - {"\xAD", 0, 0x6F5B44}, /* Korean hangul */ - {"\xB0", 0, 0x6F5B45}, /* Korean hangul */ - {"\xB4", 0, 0x6F5B46}, /* Korean hangul */ - {"\xBC", 0, 0x6F5B47}, /* Korean hangul */ - {"\xBD", 0, 0x6F5B48}, /* Korean hangul */ - {"\xBF", 0, 0x6F5B49}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page499 = { - marc8r_31page499_flat, 0 -}; -/* PAGE 498 */ -struct yaz_iconv_trie_flat marc8r_31page498_flat[] = { - {"\x98", 0, 0x6F5B40}, /* Korean hangul */ - {"\xB4", 0, 0x6F5B41}, /* Korean hangul */ - {"\xB8", 0, 0x6F5B62}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page498 = { - marc8r_31page498_flat, 0 -}; -/* PAGE 497 */ -struct yaz_iconv_trie_flat marc8r_31page497_flat[] = { - {"\xA0", 0, 0x6F5B38}, /* Korean hangul */ - {"\xA1", 0, 0x6F5B39}, /* Korean hangul */ - {"\xA4", 0, 0x6F5B3A}, /* Korean hangul */ - {"\xA8", 0, 0x6F5B3B}, /* Korean hangul */ - {"\xB0", 0, 0x6F5B3C}, /* Korean hangul */ - {"\xB1", 0, 0x6F5B3D}, /* Korean hangul */ - {"\xB3", 0, 0x6F5B3E}, /* Korean hangul */ - {"\xB5", 0, 0x6F5B3F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page497 = { - marc8r_31page497_flat, 0 -}; -/* PAGE 496 */ -struct yaz_iconv_trie_flat marc8r_31page496_flat[] = { - {"\x80", 0, 0x6F5B29}, /* Korean hangul */ - {"\x81", 0, 0x6F5B2A}, /* Korean hangul */ - {"\x83", 0, 0x6F5B2B}, /* Korean hangul */ - {"\x84", 0, 0x6F5B2C}, /* Korean hangul */ - {"\x85", 0, 0x6F5B2D}, /* Korean hangul */ - {"\x8C", 0, 0x6F5B2E}, /* Korean hangul */ - {"\x8D", 0, 0x6F5B2F}, /* Korean hangul */ - {"\x90", 0, 0x6F5B30}, /* Korean hangul */ - {"\x90", 0, 0x6F5B30}, /* Korean hangul */ - {"\x94", 0, 0x6F5B31}, /* Korean hangul */ - {"\x9C", 0, 0x6F5B32}, /* Korean hangul */ - {"\x9D", 0, 0x6F5B33}, /* Korean hangul */ - {"\x9F", 0, 0x6F5B34}, /* Korean hangul */ - {"\xA0", 0, 0x6F5B35}, /* Korean hangul */ - {"\xA1", 0, 0x6F5B36}, /* Korean hangul */ - {"\xA8", 0, 0x6F5B37}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page496 = { - marc8r_31page496_flat, 0 -}; -/* PAGE 495 */ -struct yaz_iconv_trie_flat marc8r_31page495_flat[] = { - {"\xB0", 0, 0x6F5B25}, /* Korean hangul */ - {"\xB1", 0, 0x6F5B26}, /* Korean hangul */ - {"\xB4", 0, 0x6F5B27}, /* Korean hangul */ - {"\xB8", 0, 0x6F5B28}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page495 = { - marc8r_31page495_flat, 0 -}; -/* PAGE 494 */ -struct yaz_iconv_trie_flat marc8r_31page494_flat[] = { - {"\x80", 0, 0x6F5A70}, /* Korean hangul */ - {"\x81", 0, 0x6F5A71}, /* Korean hangul */ - {"\x84", 0, 0x6F5A72}, /* Korean hangul */ - {"\x88", 0, 0x6F5A73}, /* Korean hangul */ - {"\x89", 0, 0x6F5A74}, /* Korean hangul */ - {"\x90", 0, 0x6F5A75}, /* Korean hangul */ - {"\x91", 0, 0x6F5A76}, /* Korean hangul */ - {"\x93", 0, 0x6F5A77}, /* Korean hangul */ - {"\x94", 0, 0x6F5A78}, /* Korean hangul */ - {"\x95", 0, 0x6F5A79}, /* Korean hangul */ - {"\x9C", 0, 0x6F5A7A}, /* Korean hangul */ - {"\x9D", 0, 0x6F5A7B}, /* Korean hangul */ - {"\xA0", 0, 0x6F5A7C}, /* Korean hangul */ - {"\xA4", 0, 0x6F5A7D}, /* Korean hangul */ - {"\xAC", 0, 0x6F5A7E}, /* Korean hangul */ - {"\xAD", 0, 0x6F5B21}, /* Korean hangul */ - {"\xAF", 0, 0x6F5B22}, /* Korean hangul */ - {"\xB0", 0, 0x6F5B23}, /* Korean hangul */ - {"\xB1", 0, 0x6F5B24}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page494 = { - marc8r_31page494_flat, 0 -}; -/* PAGE 493 */ -struct yaz_iconv_trie_flat marc8r_31page493_flat[] = { - {"\x81", 0, 0x6F5A65}, /* Korean hangul */ - {"\xA4", 0, 0x6F5A66}, /* Korean hangul */ - {"\xA5", 0, 0x6F5A67}, /* Korean hangul */ - {"\xA8", 0, 0x6F5A68}, /* Korean hangul */ - {"\xAC", 0, 0x6F5A69}, /* Korean hangul */ - {"\xB4", 0, 0x6F5A6A}, /* Korean hangul */ - {"\xB5", 0, 0x6F5A6B}, /* Korean hangul */ - {"\xB7", 0, 0x6F5A6C}, /* Korean hangul */ - {"\xB9", 0, 0x6F5A6D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page493 = { - marc8r_31page493_flat, 0 -}; -/* PAGE 492 */ -struct yaz_iconv_trie_flat marc8r_31page492_flat[] = { - {"\x90", 0, 0x6F5A5F}, /* Korean hangul */ - {"\xAC", 0, 0x6F5A60}, /* Korean hangul */ - {"\xB0", 0, 0x6F5A61}, /* Korean hangul */ - {"\xB4", 0, 0x6F5A62}, /* Korean hangul */ - {"\xBC", 0, 0x6F5A63}, /* Korean hangul */ - {"\xBD", 0, 0x6F5A64}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page492 = { - marc8r_31page492_flat, 0 -}; -/* PAGE 491 */ -struct yaz_iconv_trie_flat marc8r_31page491_flat[] = { - {"\x98", 0, 0x6F5A5A}, /* Korean hangul */ - {"\xAD", 0, 0x6F5A5B}, /* Korean hangul */ - {"\xB4", 0, 0x6F5A5C}, /* Korean hangul */ - {"\xB5", 0, 0x6F5A5D}, /* Korean hangul */ - {"\xB8", 0, 0x6F5A5E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page491 = { - marc8r_31page491_flat, 0 -}; -/* PAGE 490 */ -struct yaz_iconv_trie_dir marc8r_31page490_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {492, 0, 0}, - {493, 0, 0}, - {494, 0, 0}, - {495, 0, 0}, - {496, 0, 0}, - {497, 0, 0}, - {498, 0, 0}, - {499, 0, 0}, - {500, 0, 0}, - {501, 0, 0}, - {502, 0, 0}, - {503, 0, 0}, - {504, 0, 0}, - {505, 0, 0}, - {506, 0, 0}, - {507, 0, 0}, - {508, 0, 0}, - {509, 0, 0}, - {510, 0, 0}, - {511, 0, 0}, - {512, 0, 0}, - {513, 0, 0}, - {514, 0, 0}, - {515, 0, 0}, - {516, 0, 0}, - {517, 0, 0}, - {518, 0, 0}, - {519, 0, 0}, - {520, 0, 0}, - {521, 0, 0}, - {522, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page490 = { - 0, marc8r_31page490_dir -}; -/* PAGE 489 */ -struct yaz_iconv_trie_flat marc8r_31page489_flat[] = { - {"\x84", 0, 0x6F5A50}, /* Korean hangul */ - {"\xA0", 0, 0x6F5A51}, /* Korean hangul */ - {"\xA1", 0, 0x6F5A52}, /* Korean hangul */ - {"\xA4", 0, 0x6F5A53}, /* Korean hangul */ - {"\xA8", 0, 0x6F5A54}, /* Korean hangul */ - {"\xB0", 0, 0x6F5A55}, /* Korean hangul */ - {"\xB3", 0, 0x6F5A56}, /* Korean hangul */ - {"\xB5", 0, 0x6F5A57}, /* Korean hangul */ - {"\xBC", 0, 0x6F5A58}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page489 = { - marc8r_31page489_flat, 0 -}; -/* PAGE 488 */ -struct yaz_iconv_trie_flat marc8r_31page488_flat[] = { - {"\x80", 0, 0x6F5A49}, /* Korean hangul */ - {"\x85", 0, 0x6F5A4A}, /* Korean hangul */ - {"\x8C", 0, 0x6F5A4B}, /* Korean hangul */ - {"\x8D", 0, 0x6F5A4C}, /* Korean hangul */ - {"\xA1", 0, 0x6F5A4D}, /* Korean hangul */ - {"\xB0", 0, 0x6F5A4F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page488 = { - marc8r_31page488_flat, 0 -}; -/* PAGE 487 */ -struct yaz_iconv_trie_flat marc8r_31page487_flat[] = { - {"\x94", 0, 0x6F5A3D}, /* Korean hangul */ - {"\x95", 0, 0x6F5A3E}, /* Korean hangul */ - {"\x98", 0, 0x6F5A3F}, /* Korean hangul */ - {"\x9C", 0, 0x6F5A40}, /* Korean hangul */ - {"\xA4", 0, 0x6F5A41}, /* Korean hangul */ - {"\xA5", 0, 0x6F5A42}, /* Korean hangul */ - {"\xA7", 0, 0x6F5A43}, /* Korean hangul */ - {"\xA9", 0, 0x6F5A44}, /* Korean hangul */ - {"\xB0", 0, 0x6F5A45}, /* Korean hangul */ - {"\xB1", 0, 0x6F5A46}, /* Korean hangul */ - {"\xB4", 0, 0x6F5A47}, /* Korean hangul */ - {"\xB8", 0, 0x6F5A48}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page487 = { - marc8r_31page487_flat, 0 -}; -/* PAGE 486 */ -struct yaz_iconv_trie_flat marc8r_31page486_flat[] = { - {"\x80", 0, 0x6F5A2E}, /* Korean hangul */ - {"\x81", 0, 0x6F5A2F}, /* Korean hangul */ - {"\x84", 0, 0x6F5A30}, /* Korean hangul */ - {"\x88", 0, 0x6F5A31}, /* Korean hangul */ - {"\x90", 0, 0x6F5A32}, /* Korean hangul */ - {"\x91", 0, 0x6F5A33}, /* Korean hangul */ - {"\x93", 0, 0x6F5A34}, /* Korean hangul */ - {"\x95", 0, 0x6F5A35}, /* Korean hangul */ - {"\x9C", 0, 0x6F5A36}, /* Korean hangul */ - {"\xA0", 0, 0x6F5A37}, /* Korean hangul */ - {"\xA4", 0, 0x6F5A38}, /* Korean hangul */ - {"\xAC", 0, 0x6F5A39}, /* Korean hangul */ - {"\xAD", 0, 0x6F5A3A}, /* Korean hangul */ - {"\xAF", 0, 0x6F5A3B}, /* Korean hangul */ - {"\xB0", 0, 0x6F5A3C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page486 = { - marc8r_31page486_flat, 0 -}; -/* PAGE 485 */ -struct yaz_iconv_trie_flat marc8r_31page485_flat[] = { - {"\xA4", 0, 0x6F5A24}, /* Korean hangul */ - {"\xA8", 0, 0x6F5A26}, /* Korean hangul */ - {"\xAC", 0, 0x6F5A27}, /* Korean hangul */ - {"\xB4", 0, 0x6F5A28}, /* Korean hangul */ - {"\xB5", 0, 0x6F5A29}, /* Korean hangul */ - {"\xB7", 0, 0x6F5A2A}, /* Korean hangul */ - {"\xB9", 0, 0x6F5A2C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page485 = { - marc8r_31page485_flat, 0 -}; -/* PAGE 484 */ -struct yaz_iconv_trie_flat marc8r_31page484_flat[] = { - {"\x84", 0, 0x6F5973}, /* Korean hangul */ - {"\x85", 0, 0x6F5974}, /* Korean hangul */ - {"\x87", 0, 0x6F5975}, /* Korean hangul */ - {"\x89", 0, 0x6F5976}, /* Korean hangul */ - {"\x90", 0, 0x6F5977}, /* Korean hangul */ - {"\x91", 0, 0x6F5978}, /* Korean hangul */ - {"\x94", 0, 0x6F5979}, /* Korean hangul */ - {"\x98", 0, 0x6F597A}, /* Korean hangul */ - {"\xA0", 0, 0x6F597B}, /* Korean hangul */ - {"\xA1", 0, 0x6F597C}, /* Korean hangul */ - {"\xA3", 0, 0x6F597D}, /* Korean hangul */ - {"\xA5", 0, 0x6F5A21}, /* Korean hangul */ - {"\xAC", 0, 0x6F5A22}, /* Korean hangul */ - {"\xAD", 0, 0x6F5A23}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page484 = { - marc8r_31page484_flat, 0 -}; -/* PAGE 483 */ -struct yaz_iconv_trie_flat marc8r_31page483_flat[] = { - {"\x98", 0, 0x6F5964}, /* Korean hangul */ - {"\x99", 0, 0x6F5965}, /* Korean hangul */ - {"\x9C", 0, 0x6F5966}, /* Korean hangul */ - {"\xA0", 0, 0x6F5967}, /* Korean hangul */ - {"\xA1", 0, 0x6F5968}, /* Korean hangul */ - {"\xA8", 0, 0x6F5969}, /* Korean hangul */ - {"\xA9", 0, 0x6F596A}, /* Korean hangul */ - {"\xAB", 0, 0x6F596B}, /* Korean hangul */ - {"\xAD", 0, 0x6F596C}, /* Korean hangul */ - {"\xB4", 0, 0x6F596F}, /* Korean hangul */ - {"\xB5", 0, 0x6F5970}, /* Korean hangul */ - {"\xB8", 0, 0x6F5971}, /* Korean hangul */ - {"\xBC", 0, 0x6F5972}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page483 = { - marc8r_31page483_flat, 0 -}; -/* PAGE 482 */ -struct yaz_iconv_trie_flat marc8r_31page482_flat[] = { - {"\x84", 0, 0x6F595F}, /* Korean hangul */ - {"\xA0", 0, 0x6F5960}, /* Korean hangul */ - {"\xA1", 0, 0x6F5961}, /* Korean hangul */ - {"\xB0", 0, 0x6F5962}, /* Korean hangul */ - {"\xB5", 0, 0x6F5963}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page482 = { - marc8r_31page482_flat, 0 -}; -/* PAGE 481 */ -struct yaz_iconv_trie_flat marc8r_31page481_flat[] = { - {"\x84", 0, 0x6F595C}, /* Korean hangul */ - {"\x8C", 0, 0x6F595D}, /* Korean hangul */ - {"\xA8", 0, 0x6F595E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page481 = { - marc8r_31page481_flat, 0 -}; -/* PAGE 480 */ -struct yaz_iconv_trie_flat marc8r_31page480_flat[] = { - {"\x94", 0, 0x6F5953}, /* Korean hangul */ - {"\x95", 0, 0x6F5954}, /* Korean hangul */ - {"\x98", 0, 0x6F5955}, /* Korean hangul */ - {"\x9C", 0, 0x6F5956}, /* Korean hangul */ - {"\xA4", 0, 0x6F5957}, /* Korean hangul */ - {"\xA5", 0, 0x6F5958}, /* Korean hangul */ - {"\xA7", 0, 0x6F5959}, /* Korean hangul */ - {"\xA9", 0, 0x6F595A}, /* Korean hangul */ - {"\xB0", 0, 0x6F595B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page480 = { - marc8r_31page480_flat, 0 -}; -/* PAGE 479 */ -struct yaz_iconv_trie_flat marc8r_31page479_flat[] = { - {"\x9C", 0, 0x6F5951}, /* Korean hangul */ - {"\xB8", 0, 0x6F5952}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page479 = { - marc8r_31page479_flat, 0 -}; -/* PAGE 478 */ -struct yaz_iconv_trie_flat marc8r_31page478_flat[] = { - {"\x88", 0, 0x6F5948}, /* Korean hangul */ - {"\x89", 0, 0x6F5949}, /* Korean hangul */ - {"\x8C", 0, 0x6F594A}, /* Korean hangul */ - {"\x90", 0, 0x6F594B}, /* Korean hangul */ - {"\x98", 0, 0x6F594C}, /* Korean hangul */ - {"\x99", 0, 0x6F594D}, /* Korean hangul */ - {"\x9B", 0, 0x6F594E}, /* Korean hangul */ - {"\x9D", 0, 0x6F594F}, /* Korean hangul */ - {"\xAC", 0, 0x6F5950}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page478 = { - marc8r_31page478_flat, 0 -}; -/* PAGE 477 */ -struct yaz_iconv_trie_flat marc8r_31page477_flat[] = { - {"\x87", 0, 0x6F5945}, /* Korean hangul */ - {"\x90", 0, 0x6F5946}, /* Korean hangul */ - {"\xA4", 0, 0x6F5947}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page477 = { - marc8r_31page477_flat, 0 -}; -/* PAGE 476 */ -struct yaz_iconv_trie_flat marc8r_31page476_flat[] = { - {"\x98", 0, 0x6F5939}, /* Korean hangul */ - {"\x99", 0, 0x6F593A}, /* Korean hangul */ - {"\x9C", 0, 0x6F593B}, /* Korean hangul */ - {"\xA0", 0, 0x6F593C}, /* Korean hangul */ - {"\xA8", 0, 0x6F593D}, /* Korean hangul */ - {"\xA9", 0, 0x6F593E}, /* Korean hangul */ - {"\xAB", 0, 0x6F593F}, /* Korean hangul */ - {"\xAD", 0, 0x6F5940}, /* Korean hangul */ - {"\xB4", 0, 0x6F5941}, /* Korean hangul */ - {"\xB5", 0, 0x6F5942}, /* Korean hangul */ - {"\xB8", 0, 0x6F5943}, /* Korean hangul */ - {"\xBC", 0, 0x6F5944}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page476 = { - marc8r_31page476_flat, 0 -}; -/* PAGE 475 */ -struct yaz_iconv_trie_flat marc8r_31page475_flat[] = { - {"\x84", 0, 0x6F592D}, /* Korean hangul */ - {"\x85", 0, 0x6F592E}, /* Korean hangul */ - {"\x88", 0, 0x6F592F}, /* Korean hangul */ - {"\x8C", 0, 0x6F5930}, /* Korean hangul */ - {"\x94", 0, 0x6F5931}, /* Korean hangul */ - {"\x95", 0, 0x6F5932}, /* Korean hangul */ - {"\x98", 0, 0x6F5933}, /* Korean hangul */ - {"\x99", 0, 0x6F5934}, /* Korean hangul */ - {"\xA0", 0, 0x6F5935}, /* Korean hangul */ - {"\xA4", 0, 0x6F5936}, /* Korean hangul */ - {"\xB0", 0, 0x6F5937}, /* Korean hangul */ - {"\xB1", 0, 0x6F5938}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page475 = { - marc8r_31page475_flat, 0 -}; -/* PAGE 474 */ -struct yaz_iconv_trie_flat marc8r_31page474_flat[] = { - {"\x8C", 0, 0x6F5873}, /* Korean hangul */ - {"\x8D", 0, 0x6F5874}, /* Korean hangul */ - {"\x90", 0, 0x6F5875}, /* Korean hangul */ - {"\x94", 0, 0x6F5876}, /* Korean hangul */ - {"\x9C", 0, 0x6F5877}, /* Korean hangul */ - {"\x9D", 0, 0x6F5878}, /* Korean hangul */ - {"\xA1", 0, 0x6F5879}, /* Korean hangul */ - {"\xA2", 0, 0x6F587A}, /* Korean hangul */ - {"\xA7", 0, 0x6F587B}, /* Korean hangul */ - {"\xA8", 0, 0x6F587E}, /* Korean hangul */ - {"\xA9", 0, 0x6F5921}, /* Korean hangul */ - {"\xAC", 0, 0x6F5922}, /* Korean hangul */ - {"\xAE", 0, 0x6F5923}, /* Korean hangul */ - {"\xAF", 0, 0x6F5924}, /* Korean hangul */ - {"\xB0", 0, 0x6F5925}, /* Korean hangul */ - {"\xB8", 0, 0x6F5926}, /* Korean hangul */ - {"\xB9", 0, 0x6F5927}, /* Korean hangul */ - {"\xBB", 0, 0x6F5928}, /* Korean hangul */ - {"\xBC", 0, 0x6F5929}, /* Korean hangul */ - {"\xBD", 0, 0x6F592A}, /* Korean hangul */ - {"\xBE", 0, 0x6F592B}, /* Korean hangul */ - {"\xBF", 0, 0x6F592C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page474 = { - marc8r_31page474_flat, 0 -}; -/* PAGE 473 */ -struct yaz_iconv_trie_flat marc8r_31page473_flat[] = { - {"\x94", 0, 0x6F5870}, /* Korean hangul */ - {"\xA4", 0, 0x6F5871}, /* Korean hangul */ - {"\xA7", 0, 0x6F5872}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page473 = { - marc8r_31page473_flat, 0 -}; -/* PAGE 472 */ -struct yaz_iconv_trie_flat marc8r_31page472_flat[] = { - {"\xB8", 0, 0x6F586F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page472 = { - marc8r_31page472_flat, 0 -}; -/* PAGE 471 */ -struct yaz_iconv_trie_flat marc8r_31page471_flat[] = { - {"\x81", 0, 0x6F5867}, /* Korean hangul */ - {"\x88", 0, 0x6F5868}, /* Korean hangul */ - {"\x89", 0, 0x6F5869}, /* Korean hangul */ - {"\x90", 0, 0x6F586A}, /* Korean hangul */ - {"\x98", 0, 0x6F586B}, /* Korean hangul */ - {"\x99", 0, 0x6F586C}, /* Korean hangul */ - {"\x9D", 0, 0x6F586D}, /* Korean hangul */ - {"\xA4", 0, 0x6F586E}, /* Korean hangul */ - {"\x8C", 0, 0x6F773E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page471 = { - marc8r_31page471_flat, 0 -}; -/* PAGE 470 */ -struct yaz_iconv_trie_flat marc8r_31page470_flat[] = { - {"\x90", 0, 0x6F5862}, /* Korean hangul */ - {"\x94", 0, 0x6F5863}, /* Korean hangul */ - {"\x98", 0, 0x6F5864}, /* Korean hangul */ - {"\xA0", 0, 0x6F5865}, /* Korean hangul */ - {"\xA1", 0, 0x6F5866}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page470 = { - marc8r_31page470_flat, 0 -}; -/* PAGE 469 */ -struct yaz_iconv_trie_flat marc8r_31page469_flat[] = { - {"\x80", 0, 0x6F5859}, /* Korean hangul */ - {"\x84", 0, 0x6F585A}, /* Korean hangul */ - {"\x8C", 0, 0x6F585B}, /* Korean hangul */ - {"\x8D", 0, 0x6F585C}, /* Korean hangul */ - {"\x91", 0, 0x6F585D}, /* Korean hangul */ - {"\x92", 0, 0x6F585E}, /* Korean hangul */ - {"\x93", 0, 0x6F585F}, /* Korean hangul */ - {"\x98", 0, 0x6F5860}, /* Korean hangul */ - {"\x99", 0, 0x6F5861}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page469 = { - marc8r_31page469_flat, 0 -}; -/* PAGE 468 */ -struct yaz_iconv_trie_flat marc8r_31page468_flat[] = { - {"\x84", 0, 0x6F5855}, /* Korean hangul */ - {"\x98", 0, 0x6F5856}, /* Korean hangul */ - {"\xBC", 0, 0x6F5857}, /* Korean hangul */ - {"\xBD", 0, 0x6F5858}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page468 = { - marc8r_31page468_flat, 0 -}; -/* PAGE 467 */ -struct yaz_iconv_trie_flat marc8r_31page467_flat[] = { - {"\x8C", 0, 0x6F584E}, /* Korean hangul */ - {"\x8D", 0, 0x6F584F}, /* Korean hangul */ - {"\x90", 0, 0x6F5850}, /* Korean hangul */ - {"\x94", 0, 0x6F5851}, /* Korean hangul */ - {"\x9C", 0, 0x6F5852}, /* Korean hangul */ - {"\x9D", 0, 0x6F5853}, /* Korean hangul */ - {"\xA1", 0, 0x6F5854}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page467 = { - marc8r_31page467_flat, 0 -}; -/* PAGE 466 */ -struct yaz_iconv_trie_flat marc8r_31page466_flat[] = { - {"\x80", 0, 0x6F5847}, /* Korean hangul */ - {"\x88", 0, 0x6F5848}, /* Korean hangul */ - {"\x89", 0, 0x6F5849}, /* Korean hangul */ - {"\x8B", 0, 0x6F584A}, /* Korean hangul */ - {"\x8C", 0, 0x6F584B}, /* Korean hangul */ - {"\x8D", 0, 0x6F584C}, /* Korean hangul */ - {"\x98", 0, 0x6F584D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page466 = { - marc8r_31page466_flat, 0 -}; -/* PAGE 465 */ -struct yaz_iconv_trie_flat marc8r_31page465_flat[] = { - {"\x80", 0, 0x6F5829}, /* Korean hangul */ - {"\x81", 0, 0x6F582A}, /* Korean hangul */ - {"\x84", 0, 0x6F582B}, /* Korean hangul */ - {"\x87", 0, 0x6F582C}, /* Korean hangul */ - {"\x88", 0, 0x6F582D}, /* Korean hangul */ - {"\x8A", 0, 0x6F582E}, /* Korean hangul */ - {"\x90", 0, 0x6F582F}, /* Korean hangul */ - {"\x91", 0, 0x6F5830}, /* Korean hangul */ - {"\x93", 0, 0x6F5831}, /* Korean hangul */ - {"\x95", 0, 0x6F5832}, /* Korean hangul */ - {"\x96", 0, 0x6F5833}, /* Korean hangul */ - {"\x99", 0, 0x6F5834}, /* Korean hangul */ - {"\x9A", 0, 0x6F5835}, /* Korean hangul */ - {"\x9C", 0, 0x6F5838}, /* Korean hangul */ - {"\x9D", 0, 0x6F5839}, /* Korean hangul */ - {"\xA0", 0, 0x6F583A}, /* Korean hangul */ - {"\xA2", 0, 0x6F583B}, /* Korean hangul */ - {"\xA4", 0, 0x6F583C}, /* Korean hangul */ - {"\xA7", 0, 0x6F583E}, /* Korean hangul */ - {"\xAC", 0, 0x6F583F}, /* Korean hangul */ - {"\xAD", 0, 0x6F5840}, /* Korean hangul */ - {"\xAF", 0, 0x6F5841}, /* Korean hangul */ - {"\xB0", 0, 0x6F5842}, /* Korean hangul */ - {"\xB1", 0, 0x6F5843}, /* Korean hangul */ - {"\xB8", 0, 0x6F5844}, /* Korean hangul */ - {"\xB9", 0, 0x6F5845}, /* Korean hangul */ - {"\xBC", 0, 0x6F5846}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page465 = { - marc8r_31page465_flat, 0 -}; -/* PAGE 464 */ -struct yaz_iconv_trie_flat marc8r_31page464_flat[] = { - {"\x88", 0, 0x6F5822}, /* Korean hangul */ - {"\x89", 0, 0x6F5823}, /* Korean hangul */ - {"\x8C", 0, 0x6F5824}, /* Korean hangul */ - {"\x90", 0, 0x6F5825}, /* Korean hangul */ - {"\x98", 0, 0x6F5826}, /* Korean hangul */ - {"\x99", 0, 0x6F5827}, /* Korean hangul */ - {"\x9D", 0, 0x6F5828}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page464 = { - marc8r_31page464_flat, 0 -}; -/* PAGE 463 */ -struct yaz_iconv_trie_flat marc8r_31page463_flat[] = { - {"\x90", 0, 0x6F5777}, /* Korean hangul */ - {"\x94", 0, 0x6F5779}, /* Korean hangul */ - {"\x98", 0, 0x6F577A}, /* Korean hangul */ - {"\xA0", 0, 0x6F577B}, /* Korean hangul */ - {"\xA1", 0, 0x6F577C}, /* Korean hangul */ - {"\xAC", 0, 0x6F577D}, /* Korean hangul */ - {"\xB0", 0, 0x6F577E}, /* Korean hangul */ - {"\xB4", 0, 0x6F5821}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page463 = { - marc8r_31page463_flat, 0 -}; -/* PAGE 462 */ -struct yaz_iconv_trie_flat marc8r_31page462_flat[] = { - {"\x80", 0, 0x6F576E}, /* Korean hangul */ - {"\x84", 0, 0x6F576F}, /* Korean hangul */ - {"\x86", 0, 0x6F5770}, /* Korean hangul */ - {"\x8C", 0, 0x6F5771}, /* Korean hangul */ - {"\x8D", 0, 0x6F5772}, /* Korean hangul */ - {"\x8F", 0, 0x6F5773}, /* Korean hangul */ - {"\x91", 0, 0x6F5774}, /* Korean hangul */ - {"\x98", 0, 0x6F5775}, /* Korean hangul */ - {"\xAC", 0, 0x6F5776}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page462 = { - marc8r_31page462_flat, 0 -}; -/* PAGE 461 */ -struct yaz_iconv_trie_flat marc8r_31page461_flat[] = { - {"\x84", 0, 0x6F5761}, /* Korean hangul */ - {"\x88", 0, 0x6F5762}, /* Korean hangul */ - {"\x8C", 0, 0x6F5763}, /* Korean hangul */ - {"\x94", 0, 0x6F5764}, /* Korean hangul */ - {"\x95", 0, 0x6F5765}, /* Korean hangul */ - {"\x97", 0, 0x6F5766}, /* Korean hangul */ - {"\xA0", 0, 0x6F5767}, /* Korean hangul */ - {"\xA4", 0, 0x6F5768}, /* Korean hangul */ - {"\xB0", 0, 0x6F5769}, /* Korean hangul */ - {"\xB1", 0, 0x6F576A}, /* Korean hangul */ - {"\xB5", 0, 0x6F576B}, /* Korean hangul */ - {"\xBC", 0, 0x6F576C}, /* Korean hangul */ - {"\xBD", 0, 0x6F576D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page461 = { - marc8r_31page461_flat, 0 -}; -/* PAGE 460 */ -struct yaz_iconv_trie_flat marc8r_31page460_flat[] = { - {"\x80", 0, 0x6F574E}, /* Korean hangul */ - {"\x81", 0, 0x6F574F}, /* Korean hangul */ - {"\x85", 0, 0x6F5750}, /* Korean hangul */ - {"\x86", 0, 0x6F5751}, /* Korean hangul */ - {"\x87", 0, 0x6F5752}, /* Korean hangul */ - {"\x8B", 0, 0x6F5753}, /* Korean hangul */ - {"\x8C", 0, 0x6F5754}, /* Korean hangul */ - {"\x8D", 0, 0x6F5755}, /* Korean hangul */ - {"\x90", 0, 0x6F5756}, /* Korean hangul */ - {"\x94", 0, 0x6F5757}, /* Korean hangul */ - {"\x9C", 0, 0x6F5758}, /* Korean hangul */ - {"\x9D", 0, 0x6F5759}, /* Korean hangul */ - {"\x9F", 0, 0x6F575A}, /* Korean hangul */ - {"\xA0", 0, 0x6F575B}, /* Korean hangul */ - {"\xA8", 0, 0x6F575D}, /* Korean hangul */ - {"\xAC", 0, 0x6F575E}, /* Korean hangul */ - {"\xB0", 0, 0x6F575F}, /* Korean hangul */ - {"\xB8", 0, 0x6F5760}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page460 = { - marc8r_31page460_flat, 0 -}; -/* PAGE 459 */ -struct yaz_iconv_trie_flat marc8r_31page459_flat[] = { - {"\x8C", 0, 0x6F5748}, /* Korean hangul */ - {"\xB0", 0, 0x6F5749}, /* Korean hangul */ - {"\xB1", 0, 0x6F574A}, /* Korean hangul */ - {"\xB4", 0, 0x6F574B}, /* Korean hangul */ - {"\xB8", 0, 0x6F574C}, /* Korean hangul */ - {"\xBA", 0, 0x6F574D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page459 = { - marc8r_31page459_flat, 0 -}; -/* PAGE 458 */ -struct yaz_iconv_trie_flat marc8r_31page458_flat[] = { - {"\x80", 0, 0x6F5734}, /* Korean hangul */ - {"\x81", 0, 0x6F5735}, /* Korean hangul */ - {"\x84", 0, 0x6F5736}, /* Korean hangul */ - {"\x88", 0, 0x6F5737}, /* Korean hangul */ - {"\x8A", 0, 0x6F5738}, /* Korean hangul */ - {"\x90", 0, 0x6F5739}, /* Korean hangul */ - {"\x91", 0, 0x6F573A}, /* Korean hangul */ - {"\x93", 0, 0x6F573B}, /* Korean hangul */ - {"\x94", 0, 0x6F573C}, /* Korean hangul */ - {"\x95", 0, 0x6F573D}, /* Korean hangul */ - {"\x96", 0, 0x6F573E}, /* Korean hangul */ - {"\x9C", 0, 0x6F573F}, /* Korean hangul */ - {"\x9D", 0, 0x6F5740}, /* Korean hangul */ - {"\xA0", 0, 0x6F5741}, /* Korean hangul */ - {"\xA4", 0, 0x6F5742}, /* Korean hangul */ - {"\xAC", 0, 0x6F5743}, /* Korean hangul */ - {"\xAD", 0, 0x6F5744}, /* Korean hangul */ - {"\xAF", 0, 0x6F5745}, /* Korean hangul */ - {"\xB8", 0, 0x6F5746}, /* Korean hangul */ - {"\xBC", 0, 0x6F5747}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page458 = { - marc8r_31page458_flat, 0 -}; -/* PAGE 457 */ -struct yaz_iconv_trie_flat marc8r_31page457_flat[] = { - {"\x80", 0, 0x6F572E}, /* Korean hangul */ - {"\x81", 0, 0x6F572F}, /* Korean hangul */ - {"\x88", 0, 0x6F5730}, /* Korean hangul */ - {"\x89", 0, 0x6F5731}, /* Korean hangul */ - {"\x8C", 0, 0x6F5732}, /* Korean hangul */ - {"\x98", 0, 0x6F5733}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page457 = { - marc8r_31page457_flat, 0 -}; -/* PAGE 456 */ -struct yaz_iconv_trie_flat marc8r_31page456_flat[] = { - {"\x83", 0, 0x6F566F}, /* Korean hangul */ - {"\x84", 0, 0x6F5670}, /* Korean hangul */ - {"\x85", 0, 0x6F5671}, /* Korean hangul */ - {"\x87", 0, 0x6F5672}, /* Korean hangul */ - {"\x88", 0, 0x6F5673}, /* Korean hangul */ - {"\x89", 0, 0x6F5674}, /* Korean hangul */ - {"\x8A", 0, 0x6F5675}, /* Korean hangul */ - {"\x8E", 0, 0x6F5676}, /* Korean hangul */ - {"\x90", 0, 0x6F5679}, /* Korean hangul */ - {"\x91", 0, 0x6F567A}, /* Korean hangul */ - {"\x94", 0, 0x6F567B}, /* Korean hangul */ - {"\x96", 0, 0x6F567C}, /* Korean hangul */ - {"\x98", 0, 0x6F567D}, /* Korean hangul */ - {"\xA0", 0, 0x6F567E}, /* Korean hangul */ - {"\xA1", 0, 0x6F5721}, /* Korean hangul */ - {"\xA3", 0, 0x6F5722}, /* Korean hangul */ - {"\xA4", 0, 0x6F5723}, /* Korean hangul */ - {"\xA5", 0, 0x6F5724}, /* Korean hangul */ - {"\xA6", 0, 0x6F5725}, /* Korean hangul */ - {"\xA7", 0, 0x6F5726}, /* Korean hangul */ - {"\xAC", 0, 0x6F5727}, /* Korean hangul */ - {"\xAD", 0, 0x6F5728}, /* Korean hangul */ - {"\xB0", 0, 0x6F5729}, /* Korean hangul */ - {"\xB4", 0, 0x6F572A}, /* Korean hangul */ - {"\xBC", 0, 0x6F572B}, /* Korean hangul */ - {"\xBD", 0, 0x6F572C}, /* Korean hangul */ - {"\xBF", 0, 0x6F572D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page456 = { - marc8r_31page456_flat, 0 -}; -/* PAGE 455 */ -struct yaz_iconv_trie_flat marc8r_31page455_flat[] = { - {"\x80", 0, 0x6F5663}, /* Korean hangul */ - {"\x84", 0, 0x6F5664}, /* Korean hangul */ - {"\x8A", 0, 0x6F5665}, /* Korean hangul */ - {"\x8C", 0, 0x6F5666}, /* Korean hangul */ - {"\x8D", 0, 0x6F5667}, /* Korean hangul */ - {"\x91", 0, 0x6F5668}, /* Korean hangul */ - {"\x98", 0, 0x6F5669}, /* Korean hangul */ - {"\xB4", 0, 0x6F566A}, /* Korean hangul */ - {"\xB5", 0, 0x6F566B}, /* Korean hangul */ - {"\xB8", 0, 0x6F566C}, /* Korean hangul */ - {"\xBC", 0, 0x6F566D}, /* Korean hangul */ - {"\xBD", 0, 0x6F566E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page455 = { - marc8r_31page455_flat, 0 -}; -/* PAGE 454 */ -struct yaz_iconv_trie_flat marc8r_31page454_flat[] = { - {"\x84", 0, 0x6F5653}, /* Korean hangul */ - {"\x85", 0, 0x6F5654}, /* Korean hangul */ - {"\x88", 0, 0x6F5655}, /* Korean hangul */ - {"\x8C", 0, 0x6F5656}, /* Korean hangul */ - {"\x94", 0, 0x6F5657}, /* Korean hangul */ - {"\x97", 0, 0x6F5658}, /* Korean hangul */ - {"\x99", 0, 0x6F5659}, /* Korean hangul */ - {"\xA0", 0, 0x6F565A}, /* Korean hangul */ - {"\xA1", 0, 0x6F565B}, /* Korean hangul */ - {"\xA4", 0, 0x6F565C}, /* Korean hangul */ - {"\xA8", 0, 0x6F565D}, /* Korean hangul */ - {"\xB0", 0, 0x6F565E}, /* Korean hangul */ - {"\xB5", 0, 0x6F565F}, /* Korean hangul */ - {"\xB7", 0, 0x6F5660}, /* Korean hangul */ - {"\xBC", 0, 0x6F5661}, /* Korean hangul */ - {"\xBD", 0, 0x6F5662}, /* Korean hangul */ - {"\x97", 0, 0x6F773C}, /* Korean hangul (unified with EACC 6F5658) */ - {"\xB3", 0, 0x6F773D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page454 = { - marc8r_31page454_flat, 0 -}; -/* PAGE 453 */ -struct yaz_iconv_trie_flat marc8r_31page453_flat[] = { - {"\x80", 0, 0x6F5641}, /* Korean hangul */ - {"\x81", 0, 0x6F5642}, /* Korean hangul */ - {"\x83", 0, 0x6F5643}, /* Korean hangul */ - {"\x85", 0, 0x6F5644}, /* Korean hangul */ - {"\x8C", 0, 0x6F5645}, /* Korean hangul */ - {"\x8D", 0, 0x6F5646}, /* Korean hangul */ - {"\x90", 0, 0x6F5647}, /* Korean hangul */ - {"\x94", 0, 0x6F5648}, /* Korean hangul */ - {"\x9C", 0, 0x6F5649}, /* Korean hangul */ - {"\x9D", 0, 0x6F564A}, /* Korean hangul */ - {"\x9F", 0, 0x6F564B}, /* Korean hangul */ - {"\xA0", 0, 0x6F564C}, /* Korean hangul */ - {"\xA1", 0, 0x6F564D}, /* Korean hangul */ - {"\xA8", 0, 0x6F564E}, /* Korean hangul */ - {"\xA9", 0, 0x6F564F}, /* Korean hangul */ - {"\xAC", 0, 0x6F5650}, /* Korean hangul */ - {"\xB0", 0, 0x6F5651}, /* Korean hangul */ - {"\xB8", 0, 0x6F5652}, /* Korean hangul */ - {"\xBD", 0, 0x6F773B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page453 = { - marc8r_31page453_flat, 0 -}; -/* PAGE 452 */ -struct yaz_iconv_trie_flat marc8r_31page452_flat[] = { - {"\x80", 0, 0x6F5630}, /* Korean hangul */ - {"\x88", 0, 0x6F5631}, /* Korean hangul */ - {"\x8B", 0, 0x6F5632}, /* Korean hangul */ - {"\x8D", 0, 0x6F5633}, /* Korean hangul */ - {"\x94", 0, 0x6F5634}, /* Korean hangul */ - {"\x95", 0, 0x6F5635}, /* Korean hangul */ - {"\x98", 0, 0x6F5636}, /* Korean hangul */ - {"\xA5", 0, 0x6F5637}, /* Korean hangul */ - {"\xA7", 0, 0x6F5638}, /* Korean hangul */ - {"\xA9", 0, 0x6F5639}, /* Korean hangul */ - {"\xB0", 0, 0x6F563A}, /* Korean hangul */ - {"\xB1", 0, 0x6F563B}, /* Korean hangul */ - {"\xB4", 0, 0x6F563C}, /* Korean hangul */ - {"\xB7", 0, 0x6F563D}, /* Korean hangul */ - {"\xB8", 0, 0x6F563E}, /* Korean hangul */ - {"\xB9", 0, 0x6F563F}, /* Korean hangul */ - {"\xBA", 0, 0x6F5640}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page452 = { - marc8r_31page452_flat, 0 -}; -/* PAGE 451 */ -struct yaz_iconv_trie_flat marc8r_31page451_flat[] = { - {"\x80", 0, 0x6F557E}, /* Korean hangul */ - {"\x81", 0, 0x6F5621}, /* Korean hangul */ - {"\x84", 0, 0x6F5622}, /* Korean hangul */ - {"\x88", 0, 0x6F5623}, /* Korean hangul */ - {"\x90", 0, 0x6F5624}, /* Korean hangul */ - {"\x91", 0, 0x6F5625}, /* Korean hangul */ - {"\x93", 0, 0x6F5626}, /* Korean hangul */ - {"\x94", 0, 0x6F5627}, /* Korean hangul */ - {"\x9C", 0, 0x6F5629}, /* Korean hangul */ - {"\x9D", 0, 0x6F562A}, /* Korean hangul */ - {"\xA0", 0, 0x6F562B}, /* Korean hangul */ - {"\xB1", 0, 0x6F562C}, /* Korean hangul */ - {"\xB8", 0, 0x6F562D}, /* Korean hangul */ - {"\xB9", 0, 0x6F562E}, /* Korean hangul */ - {"\xBC", 0, 0x6F562F}, /* Korean hangul */ - {"\x95", 0, 0x6F5677}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page451 = { - marc8r_31page451_flat, 0 -}; -/* PAGE 450 */ -struct yaz_iconv_trie_flat marc8r_31page450_flat[] = { - {"\x80", 0, 0x6F5569}, /* Korean hangul */ - {"\x81", 0, 0x6F556A}, /* Korean hangul */ - {"\x86", 0, 0x6F556B}, /* Korean hangul */ - {"\x87", 0, 0x6F556C}, /* Korean hangul */ - {"\x88", 0, 0x6F556D}, /* Korean hangul */ - {"\x8C", 0, 0x6F556E}, /* Korean hangul */ - {"\x90", 0, 0x6F556F}, /* Korean hangul */ - {"\x9B", 0, 0x6F5570}, /* Korean hangul */ - {"\xA4", 0, 0x6F5571}, /* Korean hangul */ - {"\xA5", 0, 0x6F5572}, /* Korean hangul */ - {"\xA8", 0, 0x6F5573}, /* Korean hangul */ - {"\xAC", 0, 0x6F5574}, /* Korean hangul */ - {"\xAD", 0, 0x6F5575}, /* Korean hangul */ - {"\xAE", 0, 0x6F5576}, /* Korean hangul */ - {"\xB3", 0, 0x6F5577}, /* Korean hangul */ - {"\xB4", 0, 0x6F5578}, /* Korean hangul */ - {"\xB5", 0, 0x6F5579}, /* Korean hangul */ - {"\xB7", 0, 0x6F557A}, /* Korean hangul */ - {"\xB9", 0, 0x6F557B}, /* Korean hangul */ - {"\xBA", 0, 0x6F557C}, /* Korean hangul */ - {"\xBB", 0, 0x6F557D}, /* Korean hangul */ - {"\x9C", 0, 0x6F7739}, /* Korean hangul */ - {"\x9D", 0, 0x6F773A}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page450 = { - marc8r_31page450_flat, 0 -}; -/* PAGE 449 */ -struct yaz_iconv_trie_flat marc8r_31page449_flat[] = { - {"\x84", 0, 0x6F554D}, /* Korean hangul */ - {"\x85", 0, 0x6F554E}, /* Korean hangul */ - {"\x86", 0, 0x6F554F}, /* Korean hangul */ - {"\x87", 0, 0x6F5550}, /* Korean hangul */ - {"\x88", 0, 0x6F5551}, /* Korean hangul */ - {"\x89", 0, 0x6F5552}, /* Korean hangul */ - {"\x8A", 0, 0x6F5553}, /* Korean hangul */ - {"\x8C", 0, 0x6F5554}, /* Korean hangul */ - {"\x8E", 0, 0x6F5555}, /* Korean hangul */ - {"\x90", 0, 0x6F5556}, /* Korean hangul */ - {"\x91", 0, 0x6F5557}, /* Korean hangul */ - {"\x94", 0, 0x6F5558}, /* Korean hangul */ - {"\x98", 0, 0x6F5559}, /* Korean hangul */ - {"\xA0", 0, 0x6F555A}, /* Korean hangul */ - {"\xA1", 0, 0x6F555B}, /* Korean hangul */ - {"\xA3", 0, 0x6F555C}, /* Korean hangul */ - {"\xA5", 0, 0x6F555D}, /* Korean hangul */ - {"\xAC", 0, 0x6F555E}, /* Korean hangul */ - {"\xAD", 0, 0x6F555F}, /* Korean hangul */ - {"\xAE", 0, 0x6F5560}, /* Korean hangul */ - {"\xB0", 0, 0x6F5561}, /* Korean hangul */ - {"\xB4", 0, 0x6F5562}, /* Korean hangul */ - {"\xB6", 0, 0x6F5563}, /* Korean hangul */ - {"\xB7", 0, 0x6F5564}, /* Korean hangul */ - {"\xBC", 0, 0x6F5565}, /* Korean hangul */ - {"\xBD", 0, 0x6F5566}, /* Korean hangul */ - {"\xBE", 0, 0x6F5567}, /* Korean hangul */ - {"\xBF", 0, 0x6F5568}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page449 = { - marc8r_31page449_flat, 0 -}; -/* PAGE 448 */ -struct yaz_iconv_trie_flat marc8r_31page448_flat[] = { - {"\x80", 0, 0x6F5538}, /* Korean hangul */ - {"\x84", 0, 0x6F5539}, /* Korean hangul */ - {"\x87", 0, 0x6F553A}, /* Korean hangul */ - {"\x8C", 0, 0x6F553B}, /* Korean hangul */ - {"\x8D", 0, 0x6F553C}, /* Korean hangul */ - {"\x8F", 0, 0x6F553D}, /* Korean hangul */ - {"\x90", 0, 0x6F553E}, /* Korean hangul */ - {"\x91", 0, 0x6F553F}, /* Korean hangul */ - {"\x95", 0, 0x6F5540}, /* Korean hangul */ - {"\x97", 0, 0x6F5541}, /* Korean hangul */ - {"\x98", 0, 0x6F5542}, /* Korean hangul */ - {"\x9C", 0, 0x6F5543}, /* Korean hangul */ - {"\xB4", 0, 0x6F5544}, /* Korean hangul */ - {"\xB5", 0, 0x6F5545}, /* Korean hangul */ - {"\xB6", 0, 0x6F5546}, /* Korean hangul */ - {"\xB8", 0, 0x6F5547}, /* Korean hangul */ - {"\xB9", 0, 0x6F5548}, /* Korean hangul */ - {"\xBA", 0, 0x6F5549}, /* Korean hangul */ - {"\xBB", 0, 0x6F554A}, /* Korean hangul */ - {"\xBC", 0, 0x6F554B}, /* Korean hangul */ - {"\xBD", 0, 0x6F554C}, /* Korean hangul */ - {"\xAB", 0, 0x6F7737}, /* Korean hangul */ - {"\xB1", 0, 0x6F7738}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page448 = { - marc8r_31page448_flat, 0 -}; -/* PAGE 447 */ -struct yaz_iconv_trie_flat marc8r_31page447_flat[] = { - {"\x84", 0, 0x6F547C}, /* Korean hangul */ - {"\x85", 0, 0x6F547D}, /* Korean hangul */ - {"\x88", 0, 0x6F547E}, /* Korean hangul */ - {"\x89", 0, 0x6F5521}, /* Korean hangul */ - {"\x8A", 0, 0x6F5522}, /* Korean hangul */ - {"\x8C", 0, 0x6F5523}, /* Korean hangul */ - {"\x8E", 0, 0x6F5524}, /* Korean hangul */ - {"\x93", 0, 0x6F5525}, /* Korean hangul */ - {"\x94", 0, 0x6F5526}, /* Korean hangul */ - {"\x95", 0, 0x6F5527}, /* Korean hangul */ - {"\x97", 0, 0x6F5528}, /* Korean hangul */ - {"\x98", 0, 0x6F5529}, /* Korean hangul */ - {"\x99", 0, 0x6F552A}, /* Korean hangul */ - {"\x9E", 0, 0x6F552B}, /* Korean hangul */ - {"\x9F", 0, 0x6F552C}, /* Korean hangul */ - {"\xA0", 0, 0x6F552D}, /* Korean hangul */ - {"\xA1", 0, 0x6F552E}, /* Korean hangul */ - {"\xA4", 0, 0x6F552F}, /* Korean hangul */ - {"\xA8", 0, 0x6F5530}, /* Korean hangul */ - {"\xB0", 0, 0x6F5531}, /* Korean hangul */ - {"\xB1", 0, 0x6F5532}, /* Korean hangul */ - {"\xB3", 0, 0x6F5533}, /* Korean hangul */ - {"\xB4", 0, 0x6F5534}, /* Korean hangul */ - {"\xB5", 0, 0x6F5535}, /* Korean hangul */ - {"\xBC", 0, 0x6F5536}, /* Korean hangul */ - {"\xBD", 0, 0x6F5537}, /* Korean hangul */ - {"\x8D", 0, 0x6F7734}, /* Korean hangul */ - {"\x8F", 0, 0x6F7735}, /* Korean hangul */ - {"\x92", 0, 0x6F7736}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page447 = { - marc8r_31page447_flat, 0 -}; -/* PAGE 446 */ -struct yaz_iconv_trie_flat marc8r_31page446_flat[] = { - {"\x80", 0, 0x6F546E}, /* Korean hangul */ - {"\x81", 0, 0x6F546F}, /* Korean hangul */ - {"\x8C", 0, 0x6F5470}, /* Korean hangul */ - {"\x90", 0, 0x6F5471}, /* Korean hangul */ - {"\xA8", 0, 0x6F5472}, /* Korean hangul */ - {"\xA9", 0, 0x6F5473}, /* Korean hangul */ - {"\xAC", 0, 0x6F5474}, /* Korean hangul */ - {"\xB0", 0, 0x6F5475}, /* Korean hangul */ - {"\xB8", 0, 0x6F5476}, /* Korean hangul */ - {"\xB9", 0, 0x6F5477}, /* Korean hangul */ - {"\xBB", 0, 0x6F5478}, /* Korean hangul */ - {"\xBD", 0, 0x6F5479}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page446 = { - marc8r_31page446_flat, 0 -}; -/* PAGE 445 */ -struct yaz_iconv_trie_flat marc8r_31page445_flat[] = { - {"\x94", 0, 0x6F5468}, /* Korean hangul */ - {"\x95", 0, 0x6F5469}, /* Korean hangul */ - {"\xB0", 0, 0x6F546A}, /* Korean hangul */ - {"\xB1", 0, 0x6F546B}, /* Korean hangul */ - {"\xB4", 0, 0x6F546C}, /* Korean hangul */ - {"\xB8", 0, 0x6F546D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page445 = { - marc8r_31page445_flat, 0 -}; -/* PAGE 444 */ -struct yaz_iconv_trie_flat marc8r_31page444_flat[] = { - {"\x80", 0, 0x6F5466}, /* Korean hangul */ - {"\x94", 0, 0x6F5467}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page444 = { - marc8r_31page444_flat, 0 -}; -/* PAGE 443 */ -struct yaz_iconv_trie_flat marc8r_31page443_flat[] = { - {"\xA4", 0, 0x6F5460}, /* Korean hangul */ - {"\xA5", 0, 0x6F5461}, /* Korean hangul */ - {"\xA8", 0, 0x6F5462}, /* Korean hangul */ - {"\xAC", 0, 0x6F5463}, /* Korean hangul */ - {"\xB4", 0, 0x6F5464}, /* Korean hangul */ - {"\xB9", 0, 0x6F5465}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page443 = { - marc8r_31page443_flat, 0 -}; -/* PAGE 442 */ -struct yaz_iconv_trie_flat marc8r_31page442_flat[] = { - {"\x90", 0, 0x6F545A}, /* Korean hangul */ - {"\xAC", 0, 0x6F545B}, /* Korean hangul */ - {"\xB0", 0, 0x6F545C}, /* Korean hangul */ - {"\xB4", 0, 0x6F545D}, /* Korean hangul */ - {"\xBC", 0, 0x6F545E}, /* Korean hangul */ - {"\xBF", 0, 0x6F545F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page442 = { - marc8r_31page442_flat, 0 -}; -/* PAGE 441 */ -struct yaz_iconv_trie_flat marc8r_31page441_flat[] = { - {"\x98", 0, 0x6F5451}, /* Korean hangul */ - {"\x99", 0, 0x6F5452}, /* Korean hangul */ - {"\x9C", 0, 0x6F5453}, /* Korean hangul */ - {"\x9F", 0, 0x6F5454}, /* Korean hangul */ - {"\xA0", 0, 0x6F5455}, /* Korean hangul */ - {"\xA8", 0, 0x6F5456}, /* Korean hangul */ - {"\xAD", 0, 0x6F5457}, /* Korean hangul */ - {"\xB4", 0, 0x6F5458}, /* Korean hangul */ - {"\xB5", 0, 0x6F5459}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page441 = { - marc8r_31page441_flat, 0 -}; -/* PAGE 440 */ -struct yaz_iconv_trie_flat marc8r_31page440_flat[] = { - {"\x84", 0, 0x6F544E}, /* Korean hangul */ - {"\x88", 0, 0x6F544F}, /* Korean hangul */ - {"\x99", 0, 0x6F5450}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page440 = { - marc8r_31page440_flat, 0 -}; -/* PAGE 439 */ -struct yaz_iconv_trie_flat marc8r_31page439_flat[] = { - {"\x83", 0, 0x6F5443}, /* Korean hangul */ - {"\x85", 0, 0x6F5444}, /* Korean hangul */ - {"\xA8", 0, 0x6F5445}, /* Korean hangul */ - {"\xA9", 0, 0x6F5446}, /* Korean hangul */ - {"\xAC", 0, 0x6F5447}, /* Korean hangul */ - {"\xB0", 0, 0x6F5448}, /* Korean hangul */ - {"\xB2", 0, 0x6F5449}, /* Korean hangul */ - {"\xB8", 0, 0x6F544A}, /* Korean hangul */ - {"\xB9", 0, 0x6F544B}, /* Korean hangul */ - {"\xBC", 0, 0x6F544C}, /* Korean hangul */ - {"\xBD", 0, 0x6F544D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page439 = { - marc8r_31page439_flat, 0 -}; -/* PAGE 438 */ -struct yaz_iconv_trie_flat marc8r_31page438_flat[] = { - {"\x80", 0, 0x6F5433}, /* Korean hangul */ - {"\x88", 0, 0x6F5434}, /* Korean hangul */ - {"\x89", 0, 0x6F5435}, /* Korean hangul */ - {"\x8B", 0, 0x6F5436}, /* Korean hangul */ - {"\x8C", 0, 0x6F5437}, /* Korean hangul */ - {"\x8D", 0, 0x6F5438}, /* Korean hangul */ - {"\x93", 0, 0x6F5439}, /* Korean hangul */ - {"\x94", 0, 0x6F543A}, /* Korean hangul */ - {"\x95", 0, 0x6F543B}, /* Korean hangul */ - {"\x98", 0, 0x6F543C}, /* Korean hangul */ - {"\x9C", 0, 0x6F543D}, /* Korean hangul */ - {"\xA4", 0, 0x6F543E}, /* Korean hangul */ - {"\xA7", 0, 0x6F543F}, /* Korean hangul */ - {"\xA8", 0, 0x6F5440}, /* Korean hangul */ - {"\xA9", 0, 0x6F5441}, /* Korean hangul */ - {"\xB0", 0, 0x6F5442}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page438 = { - marc8r_31page438_flat, 0 -}; -/* PAGE 437 */ -struct yaz_iconv_trie_flat marc8r_31page437_flat[] = { - {"\x9C", 0, 0x6F5423}, /* Korean hangul */ - {"\x9D", 0, 0x6F5424}, /* Korean hangul */ - {"\xA0", 0, 0x6F5425}, /* Korean hangul */ - {"\xA3", 0, 0x6F5426}, /* Korean hangul */ - {"\xA4", 0, 0x6F5427}, /* Korean hangul */ - {"\xAB", 0, 0x6F5428}, /* Korean hangul */ - {"\xAC", 0, 0x6F5429}, /* Korean hangul */ - {"\xAD", 0, 0x6F542A}, /* Korean hangul */ - {"\xAF", 0, 0x6F542B}, /* Korean hangul */ - {"\xB1", 0, 0x6F542C}, /* Korean hangul */ - {"\xB6", 0, 0x6F542D}, /* Korean hangul */ - {"\xB8", 0, 0x6F5430}, /* Korean hangul */ - {"\xB9", 0, 0x6F5431}, /* Korean hangul */ - {"\xBC", 0, 0x6F5432}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page437 = { - marc8r_31page437_flat, 0 -}; -/* PAGE 436 */ -struct yaz_iconv_trie_flat marc8r_31page436_flat[] = { - {"\x81", 0, 0x6F5370}, /* Korean hangul */ - {"\x88", 0, 0x6F5371}, /* Korean hangul */ - {"\x89", 0, 0x6F5372}, /* Korean hangul */ - {"\x90", 0, 0x6F5373}, /* Korean hangul */ - {"\x98", 0, 0x6F5374}, /* Korean hangul */ - {"\x9B", 0, 0x6F5375}, /* Korean hangul */ - {"\x9D", 0, 0x6F5376}, /* Korean hangul */ - {"\xA4", 0, 0x6F5377}, /* Korean hangul */ - {"\xA5", 0, 0x6F5378}, /* Korean hangul */ - {"\xA8", 0, 0x6F5379}, /* Korean hangul */ - {"\xAC", 0, 0x6F537A}, /* Korean hangul */ - {"\xAD", 0, 0x6F537B}, /* Korean hangul */ - {"\xB4", 0, 0x6F537D}, /* Korean hangul */ - {"\xB5", 0, 0x6F537E}, /* Korean hangul */ - {"\xB7", 0, 0x6F5421}, /* Korean hangul */ - {"\xB9", 0, 0x6F5422}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page436 = { - marc8r_31page436_flat, 0 -}; -/* PAGE 435 */ -struct yaz_iconv_trie_flat marc8r_31page435_flat[] = { - {"\x90", 0, 0x6F5368}, /* Korean hangul */ - {"\x98", 0, 0x6F5369}, /* Korean hangul */ - {"\xAC", 0, 0x6F536A}, /* Korean hangul */ - {"\xB0", 0, 0x6F536B}, /* Korean hangul */ - {"\xB4", 0, 0x6F536C}, /* Korean hangul */ - {"\xBC", 0, 0x6F536D}, /* Korean hangul */ - {"\xBD", 0, 0x6F536E}, /* Korean hangul */ - {"\xBF", 0, 0x6F536F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page435 = { - marc8r_31page435_flat, 0 -}; -/* PAGE 434 */ -struct yaz_iconv_trie_flat marc8r_31page434_flat[] = { - {"\x80", 0, 0x6F5357}, /* Korean hangul */ - {"\x84", 0, 0x6F5358}, /* Korean hangul */ - {"\x8D", 0, 0x6F5359}, /* Korean hangul */ - {"\x98", 0, 0x6F535B}, /* Korean hangul */ - {"\x99", 0, 0x6F535C}, /* Korean hangul */ - {"\x9C", 0, 0x6F535D}, /* Korean hangul */ - {"\x9F", 0, 0x6F535E}, /* Korean hangul */ - {"\xA0", 0, 0x6F535F}, /* Korean hangul */ - {"\xA8", 0, 0x6F5360}, /* Korean hangul */ - {"\xA9", 0, 0x6F5361}, /* Korean hangul */ - {"\xAB", 0, 0x6F5362}, /* Korean hangul */ - {"\xAD", 0, 0x6F5363}, /* Korean hangul */ - {"\xAF", 0, 0x6F5364}, /* Korean hangul */ - {"\xB1", 0, 0x6F5365}, /* Korean hangul */ - {"\xB2", 0, 0x6F5366}, /* Korean hangul */ - {"\xB4", 0, 0x6F5367}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page434 = { - marc8r_31page434_flat, 0 -}; -/* PAGE 433 */ -struct yaz_iconv_trie_flat marc8r_31page433_flat[] = { - {"\x84", 0, 0x6F534C}, /* Korean hangul */ - {"\x88", 0, 0x6F534D}, /* Korean hangul */ - {"\x97", 0, 0x6F534E}, /* Korean hangul */ - {"\xA0", 0, 0x6F534F}, /* Korean hangul */ - {"\xA4", 0, 0x6F5350}, /* Korean hangul */ - {"\xA8", 0, 0x6F5351}, /* Korean hangul */ - {"\xB0", 0, 0x6F5352}, /* Korean hangul */ - {"\xB1", 0, 0x6F5353}, /* Korean hangul */ - {"\xB3", 0, 0x6F5354}, /* Korean hangul */ - {"\xBC", 0, 0x6F5355}, /* Korean hangul */ - {"\xBD", 0, 0x6F5356}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page433 = { - marc8r_31page433_flat, 0 -}; -/* PAGE 432 */ -struct yaz_iconv_trie_flat marc8r_31page432_flat[] = { - {"\x8C", 0, 0x6F533F}, /* Korean hangul */ - {"\x8D", 0, 0x6F5340}, /* Korean hangul */ - {"\x8E", 0, 0x6F5341}, /* Korean hangul */ - {"\x90", 0, 0x6F5342}, /* Korean hangul */ - {"\x94", 0, 0x6F5343}, /* Korean hangul */ - {"\x9C", 0, 0x6F5344}, /* Korean hangul */ - {"\x9D", 0, 0x6F5345}, /* Korean hangul */ - {"\x9F", 0, 0x6F5346}, /* Korean hangul */ - {"\xA1", 0, 0x6F5347}, /* Korean hangul */ - {"\xA5", 0, 0x6F5348}, /* Korean hangul */ - {"\xA8", 0, 0x6F5349}, /* Korean hangul */ - {"\xA9", 0, 0x6F534A}, /* Korean hangul */ - {"\xB0", 0, 0x6F534B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page432 = { - marc8r_31page432_flat, 0 -}; -/* PAGE 431 */ -struct yaz_iconv_trie_flat marc8r_31page431_flat[] = { - {"\x80", 0, 0x6F5334}, /* Korean hangul */ - {"\x88", 0, 0x6F5335}, /* Korean hangul */ - {"\x89", 0, 0x6F5336}, /* Korean hangul */ - {"\x8B", 0, 0x6F5337}, /* Korean hangul */ - {"\x8D", 0, 0x6F5338}, /* Korean hangul */ - {"\x91", 0, 0x6F5339}, /* Korean hangul */ - {"\x94", 0, 0x6F533A}, /* Korean hangul */ - {"\x98", 0, 0x6F533B}, /* Korean hangul */ - {"\xA7", 0, 0x6F533C}, /* Korean hangul */ - {"\xA8", 0, 0x6F533D}, /* Korean hangul */ - {"\xB0", 0, 0x6F533E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page431 = { - marc8r_31page431_flat, 0 -}; -/* PAGE 430 */ -struct yaz_iconv_trie_flat marc8r_31page430_flat[] = { - {"\x9C", 0, 0x6F5321}, /* Korean hangul */ - {"\x9D", 0, 0x6F5322}, /* Korean hangul */ - {"\x9E", 0, 0x6F5323}, /* Korean hangul */ - {"\xA0", 0, 0x6F5324}, /* Korean hangul */ - {"\xA3", 0, 0x6F5325}, /* Korean hangul */ - {"\xA4", 0, 0x6F5326}, /* Korean hangul */ - {"\xA4", 0, 0x6F5326}, /* Korean hangul */ - {"\xA5", 0, 0x6F5327}, /* Korean hangul */ - {"\xA6", 0, 0x6F5328}, /* Korean hangul */ - {"\xA7", 0, 0x6F5329}, /* Korean hangul */ - {"\xAA", 0, 0x6F532A}, /* Korean hangul */ - {"\xAC", 0, 0x6F532B}, /* Korean hangul */ - {"\xAD", 0, 0x6F532C}, /* Korean hangul */ - {"\xAF", 0, 0x6F532D}, /* Korean hangul */ - {"\xB0", 0, 0x6F532E}, /* Korean hangul */ - {"\xB1", 0, 0x6F532F}, /* Korean hangul */ - {"\xB6", 0, 0x6F5330}, /* Korean hangul */ - {"\xB8", 0, 0x6F5331}, /* Korean hangul */ - {"\xB9", 0, 0x6F5332}, /* Korean hangul */ - {"\xBC", 0, 0x6F5333}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page430 = { - marc8r_31page430_flat, 0 -}; -/* PAGE 429 */ -struct yaz_iconv_trie_flat marc8r_31page429_flat[] = { - {"\x80", 0, 0x6F526B}, /* Korean hangul */ - {"\x81", 0, 0x6F526C}, /* Korean hangul */ - {"\x85", 0, 0x6F526D}, /* Korean hangul */ - {"\x88", 0, 0x6F526E}, /* Korean hangul */ - {"\x89", 0, 0x6F526F}, /* Korean hangul */ - {"\x8C", 0, 0x6F5270}, /* Korean hangul */ - {"\x8F", 0, 0x6F5271}, /* Korean hangul */ - {"\x90", 0, 0x6F5272}, /* Korean hangul */ - {"\x98", 0, 0x6F5273}, /* Korean hangul */ - {"\x99", 0, 0x6F5274}, /* Korean hangul */ - {"\x9B", 0, 0x6F5275}, /* Korean hangul */ - {"\x9C", 0, 0x6F5276}, /* Korean hangul */ - {"\x9D", 0, 0x6F5277}, /* Korean hangul */ - {"\xA4", 0, 0x6F5278}, /* Korean hangul */ - {"\xA5", 0, 0x6F5279}, /* Korean hangul */ - {"\xA8", 0, 0x6F527A}, /* Korean hangul */ - {"\xAC", 0, 0x6F527B}, /* Korean hangul */ - {"\xB4", 0, 0x6F527C}, /* Korean hangul */ - {"\xB7", 0, 0x6F527D}, /* Korean hangul */ - {"\xB9", 0, 0x6F527E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page429 = { - marc8r_31page429_flat, 0 -}; -/* PAGE 428 */ -struct yaz_iconv_trie_flat marc8r_31page428_flat[] = { - {"\x90", 0, 0x6F5256}, /* Korean hangul */ - {"\x91", 0, 0x6F5257}, /* Korean hangul */ - {"\x94", 0, 0x6F5258}, /* Korean hangul */ - {"\x98", 0, 0x6F5259}, /* Korean hangul */ - {"\xA0", 0, 0x6F525A}, /* Korean hangul */ - {"\xA3", 0, 0x6F525B}, /* Korean hangul */ - {"\xA5", 0, 0x6F525C}, /* Korean hangul */ - {"\xAC", 0, 0x6F525F}, /* Korean hangul */ - {"\xAD", 0, 0x6F5260}, /* Korean hangul */ - {"\xAE", 0, 0x6F5261}, /* Korean hangul */ - {"\xAF", 0, 0x6F5262}, /* Korean hangul */ - {"\xB0", 0, 0x6F5263}, /* Korean hangul */ - {"\xB3", 0, 0x6F5264}, /* Korean hangul */ - {"\xB4", 0, 0x6F5265}, /* Korean hangul */ - {"\xB5", 0, 0x6F5266}, /* Korean hangul */ - {"\xB6", 0, 0x6F5267}, /* Korean hangul */ - {"\xBC", 0, 0x6F5268}, /* Korean hangul */ - {"\xBD", 0, 0x6F5269}, /* Korean hangul */ - {"\xBF", 0, 0x6F526A}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page428 = { - marc8r_31page428_flat, 0 -}; -/* PAGE 427 */ -struct yaz_iconv_trie_flat marc8r_31page427_flat[] = { - {"\x98", 0, 0x6F5250}, /* Korean hangul */ - {"\x99", 0, 0x6F5251}, /* Korean hangul */ - {"\x9C", 0, 0x6F5252}, /* Korean hangul */ - {"\xA0", 0, 0x6F5253}, /* Korean hangul */ - {"\xA8", 0, 0x6F5254}, /* Korean hangul */ - {"\xA9", 0, 0x6F5255}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page427 = { - marc8r_31page427_flat, 0 -}; -/* PAGE 426 */ -struct yaz_iconv_trie_dir marc8r_31page426_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {428, 0, 0}, - {429, 0, 0}, - {430, 0, 0}, - {431, 0, 0}, - {432, 0, 0}, - {433, 0, 0}, - {434, 0, 0}, - {435, 0, 0}, - {436, 0, 0}, - {437, 0, 0}, - {438, 0, 0}, - {439, 0, 0}, - {440, 0, 0}, - {441, 0, 0}, - {442, 0, 0}, - {443, 0, 0}, - {444, 0, 0}, - {445, 0, 0}, - {446, 0, 0}, - {447, 0, 0}, - {448, 0, 0}, - {449, 0, 0}, - {450, 0, 0}, - {451, 0, 0}, - {452, 0, 0}, - {453, 0, 0}, - {454, 0, 0}, - {455, 0, 0}, - {456, 0, 0}, - {457, 0, 0}, - {458, 0, 0}, - {459, 0, 0}, - {460, 0, 0}, - {461, 0, 0}, - {462, 0, 0}, - {463, 0, 0}, - {464, 0, 0}, - {465, 0, 0}, - {466, 0, 0}, - {467, 0, 0}, - {468, 0, 0}, - {469, 0, 0}, - {470, 0, 0}, - {471, 0, 0}, - {472, 0, 0}, - {473, 0, 0}, - {474, 0, 0}, - {475, 0, 0}, - {476, 0, 0}, - {477, 0, 0}, - {478, 0, 0}, - {479, 0, 0}, - {480, 0, 0}, - {481, 0, 0}, - {482, 0, 0}, - {483, 0, 0}, - {484, 0, 0}, - {485, 0, 0}, - {486, 0, 0}, - {487, 0, 0}, - {488, 0, 0}, - {489, 0, 0}, - {490, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page426 = { - 0, marc8r_31page426_dir -}; -/* PAGE 425 */ -struct yaz_iconv_trie_flat marc8r_31page425_flat[] = { - {"\x80", 0, 0x6F5247}, /* Korean hangul */ - {"\x85", 0, 0x6F5248}, /* Korean hangul */ - {"\x8C", 0, 0x6F5249}, /* Korean hangul */ - {"\x8D", 0, 0x6F524A}, /* Korean hangul */ - {"\x90", 0, 0x6F524B}, /* Korean hangul */ - {"\x94", 0, 0x6F524C}, /* Korean hangul */ - {"\x9C", 0, 0x6F524D}, /* Korean hangul */ - {"\x9D", 0, 0x6F524E}, /* Korean hangul */ - {"\xA1", 0, 0x6F524F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page425 = { - marc8r_31page425_flat, 0 -}; -/* PAGE 424 */ -struct yaz_iconv_trie_flat marc8r_31page424_flat[] = { - {"\xB0", 0, 0x6F5246}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page424 = { - marc8r_31page424_flat, 0 -}; -/* PAGE 423 */ -struct yaz_iconv_trie_flat marc8r_31page423_flat[] = { - {"\x80", 0, 0x6F523F}, /* Korean hangul */ - {"\x81", 0, 0x6F5240}, /* Korean hangul */ - {"\x84", 0, 0x6F5241}, /* Korean hangul */ - {"\x88", 0, 0x6F5242}, /* Korean hangul */ - {"\x90", 0, 0x6F5243}, /* Korean hangul */ - {"\x91", 0, 0x6F5244}, /* Korean hangul */ - {"\x95", 0, 0x6F5245}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page423 = { - marc8r_31page423_flat, 0 -}; -/* PAGE 422 */ -struct yaz_iconv_trie_flat marc8r_31page422_flat[] = { - {"\x88", 0, 0x6F523B}, /* Korean hangul */ - {"\x89", 0, 0x6F523C}, /* Korean hangul */ - {"\x98", 0, 0x6F523D}, /* Korean hangul */ - {"\x9D", 0, 0x6F523E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page422 = { - marc8r_31page422_flat, 0 -}; -/* PAGE 421 */ -struct yaz_iconv_trie_flat marc8r_31page421_flat[] = { - {"\x90", 0, 0x6F5231}, /* Korean hangul */ - {"\x91", 0, 0x6F5232}, /* Korean hangul */ - {"\x94", 0, 0x6F5233}, /* Korean hangul */ - {"\x97", 0, 0x6F5234}, /* Korean hangul */ - {"\x98", 0, 0x6F5235}, /* Korean hangul */ - {"\xA0", 0, 0x6F5236}, /* Korean hangul */ - {"\xA3", 0, 0x6F5237}, /* Korean hangul */ - {"\xA4", 0, 0x6F5238}, /* Korean hangul */ - {"\xA5", 0, 0x6F5239}, /* Korean hangul */ - {"\xAC", 0, 0x6F523A}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page421 = { - marc8r_31page421_flat, 0 -}; -/* PAGE 420 */ -struct yaz_iconv_trie_flat marc8r_31page420_flat[] = { - {"\x80", 0, 0x6F5229}, /* Korean hangul */ - {"\x84", 0, 0x6F522A}, /* Korean hangul */ - {"\x8C", 0, 0x6F522B}, /* Korean hangul */ - {"\x8F", 0, 0x6F522C}, /* Korean hangul */ - {"\x90", 0, 0x6F522D}, /* Korean hangul */ - {"\x91", 0, 0x6F522E}, /* Korean hangul */ - {"\x98", 0, 0x6F522F}, /* Korean hangul */ - {"\xA8", 0, 0x6F5230}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page420 = { - marc8r_31page420_flat, 0 -}; -/* PAGE 419 */ -struct yaz_iconv_trie_flat marc8r_31page419_flat[] = { - {"\x84", 0, 0x6F516D}, /* Korean hangul */ - {"\x85", 0, 0x6F516E}, /* Korean hangul */ - {"\x88", 0, 0x6F516F}, /* Korean hangul */ - {"\x8B", 0, 0x6F5170}, /* Korean hangul */ - {"\x8C", 0, 0x6F5171}, /* Korean hangul */ - {"\x8E", 0, 0x6F5172}, /* Korean hangul */ - {"\x94", 0, 0x6F5173}, /* Korean hangul */ - {"\x95", 0, 0x6F5174}, /* Korean hangul */ - {"\x97", 0, 0x6F5175}, /* Korean hangul */ - {"\x99", 0, 0x6F5176}, /* Korean hangul */ - {"\x9A", 0, 0x6F5177}, /* Korean hangul */ - {"\x9B", 0, 0x6F5178}, /* Korean hangul */ - {"\xA0", 0, 0x6F517B}, /* Korean hangul */ - {"\xA1", 0, 0x6F517C}, /* Korean hangul */ - {"\xA4", 0, 0x6F517D}, /* Korean hangul */ - {"\xA8", 0, 0x6F517E}, /* Korean hangul */ - {"\xB0", 0, 0x6F5221}, /* Korean hangul */ - {"\xB1", 0, 0x6F5222}, /* Korean hangul */ - {"\xB3", 0, 0x6F5223}, /* Korean hangul */ - {"\xB4", 0, 0x6F5224}, /* Korean hangul */ - {"\xB5", 0, 0x6F5225}, /* Korean hangul */ - {"\xBB", 0, 0x6F5226}, /* Korean hangul */ - {"\xBC", 0, 0x6F5227}, /* Korean hangul */ - {"\xBD", 0, 0x6F5228}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page419 = { - marc8r_31page419_flat, 0 -}; -/* PAGE 418 */ -struct yaz_iconv_trie_flat marc8r_31page418_flat[] = { - {"\x8C", 0, 0x6F5166}, /* Korean hangul */ - {"\x8D", 0, 0x6F5167}, /* Korean hangul */ - {"\x90", 0, 0x6F5168}, /* Korean hangul */ - {"\x94", 0, 0x6F5169}, /* Korean hangul */ - {"\x9C", 0, 0x6F516A}, /* Korean hangul */ - {"\x9D", 0, 0x6F516B}, /* Korean hangul */ - {"\x9F", 0, 0x6F516C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page418 = { - marc8r_31page418_flat, 0 -}; -/* PAGE 417 */ -struct yaz_iconv_trie_flat marc8r_31page417_flat[] = { - {"\x94", 0, 0x6F5164}, /* Korean hangul */ - {"\xB0", 0, 0x6F5165}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page417 = { - marc8r_31page417_flat, 0 -}; -/* PAGE 416 */ -struct yaz_iconv_trie_flat marc8r_31page416_flat[] = { - {"\x80", 0, 0x6F5158}, /* Korean hangul */ - {"\x81", 0, 0x6F5159}, /* Korean hangul */ - {"\x84", 0, 0x6F515A}, /* Korean hangul */ - {"\x87", 0, 0x6F515B}, /* Korean hangul */ - {"\x88", 0, 0x6F515C}, /* Korean hangul */ - {"\x89", 0, 0x6F515D}, /* Korean hangul */ - {"\x90", 0, 0x6F515E}, /* Korean hangul */ - {"\x91", 0, 0x6F515F}, /* Korean hangul */ - {"\x93", 0, 0x6F5160}, /* Korean hangul */ - {"\x95", 0, 0x6F5161}, /* Korean hangul */ - {"\x99", 0, 0x6F5162}, /* Korean hangul */ - {"\x9C", 0, 0x6F5163}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page416 = { - marc8r_31page416_flat, 0 -}; -/* PAGE 415 */ -struct yaz_iconv_trie_flat marc8r_31page415_flat[] = { - {"\x88", 0, 0x6F5151}, /* Korean hangul */ - {"\x89", 0, 0x6F5152}, /* Korean hangul */ - {"\x8C", 0, 0x6F5153}, /* Korean hangul */ - {"\x90", 0, 0x6F5154}, /* Korean hangul */ - {"\x98", 0, 0x6F5155}, /* Korean hangul */ - {"\x99", 0, 0x6F5156}, /* Korean hangul */ - {"\xA4", 0, 0x6F5157}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page415 = { - marc8r_31page415_flat, 0 -}; -/* PAGE 414 */ -struct yaz_iconv_trie_flat marc8r_31page414_flat[] = { - {"\x84", 0, 0x6F514A}, /* Korean hangul */ - {"\x85", 0, 0x6F514B}, /* Korean hangul */ - {"\x87", 0, 0x6F514C}, /* Korean hangul */ - {"\x89", 0, 0x6F514D}, /* Korean hangul */ - {"\x90", 0, 0x6F514E}, /* Korean hangul */ - {"\x94", 0, 0x6F514F}, /* Korean hangul */ - {"\xA4", 0, 0x6F5150}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page414 = { - marc8r_31page414_flat, 0 -}; -/* PAGE 413 */ -struct yaz_iconv_trie_flat marc8r_31page413_flat[] = { - {"\x80", 0, 0x6F513C}, /* Korean hangul */ - {"\x84", 0, 0x6F513D}, /* Korean hangul */ - {"\x8C", 0, 0x6F513E}, /* Korean hangul */ - {"\x8D", 0, 0x6F513F}, /* Korean hangul */ - {"\x8F", 0, 0x6F5140}, /* Korean hangul */ - {"\x90", 0, 0x6F5141}, /* Korean hangul */ - {"\x91", 0, 0x6F5142}, /* Korean hangul */ - {"\x92", 0, 0x6F5143}, /* Korean hangul */ - {"\x95", 0, 0x6F5144}, /* Korean hangul */ - {"\xB4", 0, 0x6F5145}, /* Korean hangul */ - {"\xB5", 0, 0x6F5146}, /* Korean hangul */ - {"\xB6", 0, 0x6F5147}, /* Korean hangul */ - {"\xB8", 0, 0x6F5148}, /* Korean hangul */ - {"\xBC", 0, 0x6F5149}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page413 = { - marc8r_31page413_flat, 0 -}; -/* PAGE 412 */ -struct yaz_iconv_trie_flat marc8r_31page412_flat[] = { - {"\x84", 0, 0x6F5126}, /* Korean hangul */ - {"\x85", 0, 0x6F5127}, /* Korean hangul */ - {"\x88", 0, 0x6F5128}, /* Korean hangul */ - {"\x8B", 0, 0x6F5129}, /* Korean hangul */ - {"\x8C", 0, 0x6F512A}, /* Korean hangul */ - {"\x94", 0, 0x6F512B}, /* Korean hangul */ - {"\x95", 0, 0x6F512C}, /* Korean hangul */ - {"\x97", 0, 0x6F512D}, /* Korean hangul */ - {"\x98", 0, 0x6F512E}, /* Korean hangul */ - {"\x99", 0, 0x6F512F}, /* Korean hangul */ - {"\x9A", 0, 0x6F5130}, /* Korean hangul */ - {"\xA0", 0, 0x6F5131}, /* Korean hangul */ - {"\xA1", 0, 0x6F5132}, /* Korean hangul */ - {"\xA4", 0, 0x6F5133}, /* Korean hangul */ - {"\xA7", 0, 0x6F5134}, /* Korean hangul */ - {"\xA8", 0, 0x6F5135}, /* Korean hangul */ - {"\xB0", 0, 0x6F5136}, /* Korean hangul */ - {"\xB1", 0, 0x6F5137}, /* Korean hangul */ - {"\xB3", 0, 0x6F5138}, /* Korean hangul */ - {"\xB5", 0, 0x6F5139}, /* Korean hangul */ - {"\xBC", 0, 0x6F513A}, /* Korean hangul */ - {"\xBD", 0, 0x6F513B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page412 = { - marc8r_31page412_flat, 0 -}; -/* PAGE 411 */ -struct yaz_iconv_trie_flat marc8r_31page411_flat[] = { - {"\x80", 0, 0x6F5121}, /* Korean hangul */ - {"\x81", 0, 0x6F5122}, /* Korean hangul */ - {"\x83", 0, 0x6F5123}, /* Korean hangul */ - {"\x84", 0, 0x6F5124}, /* Korean hangul */ - {"\x85", 0, 0x6F5125}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page411 = { - marc8r_31page411_flat, 0 -}; -/* PAGE 410 */ -struct yaz_iconv_trie_flat marc8r_31page410_flat[] = { - {"\x80", 0, 0x6F5063}, /* Korean hangul */ - {"\x88", 0, 0x6F5064}, /* Korean hangul */ - {"\x89", 0, 0x6F5065}, /* Korean hangul */ - {"\x8B", 0, 0x6F5066}, /* Korean hangul */ - {"\x8D", 0, 0x6F5068}, /* Korean hangul */ - {"\x8F", 0, 0x6F5069}, /* Korean hangul */ - {"\x91", 0, 0x6F506A}, /* Korean hangul */ - {"\x94", 0, 0x6F506D}, /* Korean hangul */ - {"\x95", 0, 0x6F506E}, /* Korean hangul */ - {"\x96", 0, 0x6F506F}, /* Korean hangul */ - {"\x98", 0, 0x6F5070}, /* Korean hangul */ - {"\x9B", 0, 0x6F5071}, /* Korean hangul */ - {"\x9C", 0, 0x6F5072}, /* Korean hangul */ - {"\x9D", 0, 0x6F5073}, /* Korean hangul */ - {"\x9F", 0, 0x6F5074}, /* Korean hangul */ - {"\xA4", 0, 0x6F5075}, /* Korean hangul */ - {"\xA5", 0, 0x6F5076}, /* Korean hangul */ - {"\xA7", 0, 0x6F5077}, /* Korean hangul */ - {"\xA9", 0, 0x6F5078}, /* Korean hangul */ - {"\xAD", 0, 0x6F5079}, /* Korean hangul */ - {"\xB0", 0, 0x6F507A}, /* Korean hangul */ - {"\xB1", 0, 0x6F507B}, /* Korean hangul */ - {"\xB4", 0, 0x6F507C}, /* Korean hangul */ - {"\xB7", 0, 0x6F507D}, /* Korean hangul */ - {"\xB8", 0, 0x6F507E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page410 = { - marc8r_31page410_flat, 0 -}; -/* PAGE 409 */ -struct yaz_iconv_trie_flat marc8r_31page409_flat[] = { - {"\x80", 0, 0x6F505B}, /* Korean hangul */ - {"\x84", 0, 0x6F505C}, /* Korean hangul */ - {"\x88", 0, 0x6F505D}, /* Korean hangul */ - {"\x90", 0, 0x6F505E}, /* Korean hangul */ - {"\xB8", 0, 0x6F505F}, /* Korean hangul */ - {"\xB9", 0, 0x6F5060}, /* Korean hangul */ - {"\xBC", 0, 0x6F5061}, /* Korean hangul */ - {"\xBF", 0, 0x6F5062}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page409 = { - marc8r_31page409_flat, 0 -}; -/* PAGE 408 */ -struct yaz_iconv_trie_flat marc8r_31page408_flat[] = { - {"\x88", 0, 0x6F5058}, /* Korean hangul */ - {"\x8C", 0, 0x6F5059}, /* Korean hangul */ - {"\xA4", 0, 0x6F505A}, /* Korean hangul */ - {"\xB4", 0, 0x6F506B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page408 = { - marc8r_31page408_flat, 0 -}; -/* PAGE 407 */ -struct yaz_iconv_trie_flat marc8r_31page407_flat[] = { - {"\x84", 0, 0x6F504E}, /* Korean hangul */ - {"\x87", 0, 0x6F504F}, /* Korean hangul */ - {"\x89", 0, 0x6F5050}, /* Korean hangul */ - {"\x8D", 0, 0x6F5051}, /* Korean hangul */ - {"\x8F", 0, 0x6F5052}, /* Korean hangul */ - {"\x90", 0, 0x6F5053}, /* Korean hangul */ - {"\x94", 0, 0x6F5054}, /* Korean hangul */ - {"\x98", 0, 0x6F5055}, /* Korean hangul */ - {"\xA1", 0, 0x6F5056}, /* Korean hangul */ - {"\xA3", 0, 0x6F5057}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page407 = { - marc8r_31page407_flat, 0 -}; -/* PAGE 406 */ -struct yaz_iconv_trie_flat marc8r_31page406_flat[] = { - {"\x8F", 0, 0x6F5045}, /* Korean hangul */ - {"\x98", 0, 0x6F5046}, /* Korean hangul */ - {"\xB4", 0, 0x6F5047}, /* Korean hangul */ - {"\xB5", 0, 0x6F5048}, /* Korean hangul */ - {"\xB6", 0, 0x6F5049}, /* Korean hangul */ - {"\xB8", 0, 0x6F504A}, /* Korean hangul */ - {"\xBB", 0, 0x6F504B}, /* Korean hangul */ - {"\xBC", 0, 0x6F504C}, /* Korean hangul */ - {"\xBD", 0, 0x6F504D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page406 = { - marc8r_31page406_flat, 0 -}; -/* PAGE 405 */ -struct yaz_iconv_trie_flat marc8r_31page405_flat[] = { - {"\x83", 0, 0x6F5043}, /* Korean hangul */ - {"\xBC", 0, 0x6F5044}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page405 = { - marc8r_31page405_flat, 0 -}; -/* PAGE 404 */ -struct yaz_iconv_trie_flat marc8r_31page404_flat[] = { - {"\x83", 0, 0x6F5036}, /* Korean hangul */ - {"\x84", 0, 0x6F5037}, /* Korean hangul */ - {"\x85", 0, 0x6F5038}, /* Korean hangul */ - {"\x87", 0, 0x6F5039}, /* Korean hangul */ - {"\xA8", 0, 0x6F503A}, /* Korean hangul */ - {"\xA9", 0, 0x6F503B}, /* Korean hangul */ - {"\xAB", 0, 0x6F503C}, /* Korean hangul */ - {"\xAC", 0, 0x6F503D}, /* Korean hangul */ - {"\xB0", 0, 0x6F503E}, /* Korean hangul */ - {"\xB8", 0, 0x6F503F}, /* Korean hangul */ - {"\xB9", 0, 0x6F5040}, /* Korean hangul */ - {"\xBB", 0, 0x6F5041}, /* Korean hangul */ - {"\xBD", 0, 0x6F5042}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page404 = { - marc8r_31page404_flat, 0 -}; -/* PAGE 403 */ -struct yaz_iconv_trie_flat marc8r_31page403_flat[] = { - {"\x80", 0, 0x6F5024}, /* Korean hangul */ - {"\x88", 0, 0x6F5025}, /* Korean hangul */ - {"\x89", 0, 0x6F5026}, /* Korean hangul */ - {"\x8B", 0, 0x6F5027}, /* Korean hangul */ - {"\x8D", 0, 0x6F5028}, /* Korean hangul */ - {"\x8E", 0, 0x6F5029}, /* Korean hangul */ - {"\x93", 0, 0x6F502A}, /* Korean hangul */ - {"\x94", 0, 0x6F502B}, /* Korean hangul */ - {"\x95", 0, 0x6F502C}, /* Korean hangul */ - {"\x98", 0, 0x6F502D}, /* Korean hangul */ - {"\x9C", 0, 0x6F502E}, /* Korean hangul */ - {"\xA4", 0, 0x6F502F}, /* Korean hangul */ - {"\xA5", 0, 0x6F5030}, /* Korean hangul */ - {"\xA7", 0, 0x6F5031}, /* Korean hangul */ - {"\xB0", 0, 0x6F5032}, /* Korean hangul */ - {"\xB1", 0, 0x6F5033}, /* Korean hangul */ - {"\xB4", 0, 0x6F5034}, /* Korean hangul */ - {"\xB8", 0, 0x6F5035}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page403 = { - marc8r_31page403_flat, 0 -}; -/* PAGE 402 */ -struct yaz_iconv_trie_flat marc8r_31page402_flat[] = { - {"\x80", 0, 0x6F4F7E}, /* Korean hangul */ - {"\xB8", 0, 0x6F5021}, /* Korean hangul */ - {"\xB9", 0, 0x6F5022}, /* Korean hangul */ - {"\xBC", 0, 0x6F5023}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page402 = { - marc8r_31page402_flat, 0 -}; -/* PAGE 401 */ -struct yaz_iconv_trie_flat marc8r_31page401_flat[] = { - {"\x81", 0, 0x6F4F63}, /* Korean hangul */ - {"\x88", 0, 0x6F4F66}, /* Korean hangul */ - {"\x89", 0, 0x6F4F67}, /* Korean hangul */ - {"\x8C", 0, 0x6F4F68}, /* Korean hangul */ - {"\x8E", 0, 0x6F4F69}, /* Korean hangul */ - {"\x8F", 0, 0x6F4F6A}, /* Korean hangul */ - {"\x90", 0, 0x6F4F6B}, /* Korean hangul */ - {"\x91", 0, 0x6F4F6C}, /* Korean hangul */ - {"\x98", 0, 0x6F4F6D}, /* Korean hangul */ - {"\x99", 0, 0x6F4F6E}, /* Korean hangul */ - {"\x9B", 0, 0x6F4F6F}, /* Korean hangul */ - {"\x9D", 0, 0x6F4F70}, /* Korean hangul */ - {"\x9E", 0, 0x6F4F71}, /* Korean hangul */ - {"\xA1", 0, 0x6F4F72}, /* Korean hangul */ - {"\xA3", 0, 0x6F4F73}, /* Korean hangul */ - {"\xA4", 0, 0x6F4F74}, /* Korean hangul */ - {"\xA5", 0, 0x6F4F75}, /* Korean hangul */ - {"\xA8", 0, 0x6F4F76}, /* Korean hangul */ - {"\xAC", 0, 0x6F4F77}, /* Korean hangul */ - {"\xB4", 0, 0x6F4F78}, /* Korean hangul */ - {"\xB5", 0, 0x6F4F79}, /* Korean hangul */ - {"\xB7", 0, 0x6F4F7A}, /* Korean hangul */ - {"\xB8", 0, 0x6F4F7B}, /* Korean hangul */ - {"\xB9", 0, 0x6F4F7C}, /* Korean hangul */ - {"\xBA", 0, 0x6F4F7D}, /* Korean hangul */ - {"\x84", 0, 0x6F7733}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page401 = { - marc8r_31page401_flat, 0 -}; -/* PAGE 400 */ -struct yaz_iconv_trie_flat marc8r_31page400_flat[] = { - {"\x84", 0, 0x6F4F57}, /* Korean hangul */ - {"\x85", 0, 0x6F4F58}, /* Korean hangul */ - {"\x87", 0, 0x6F4F59}, /* Korean hangul */ - {"\x89", 0, 0x6F4F5A}, /* Korean hangul */ - {"\x8E", 0, 0x6F4F5B}, /* Korean hangul */ - {"\xAC", 0, 0x6F4F5C}, /* Korean hangul */ - {"\xAD", 0, 0x6F4F5D}, /* Korean hangul */ - {"\xB0", 0, 0x6F4F5E}, /* Korean hangul */ - {"\xB4", 0, 0x6F4F5F}, /* Korean hangul */ - {"\xBC", 0, 0x6F4F60}, /* Korean hangul */ - {"\xBD", 0, 0x6F4F61}, /* Korean hangul */ - {"\xBF", 0, 0x6F4F62}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page400 = { - marc8r_31page400_flat, 0 -}; -/* PAGE 399 */ -struct yaz_iconv_trie_flat marc8r_31page399_flat[] = { - {"\x98", 0, 0x6F4F4D}, /* Korean hangul */ - {"\x99", 0, 0x6F4F4E}, /* Korean hangul */ - {"\x9C", 0, 0x6F4F4F}, /* Korean hangul */ - {"\xA0", 0, 0x6F4F50}, /* Korean hangul */ - {"\xA8", 0, 0x6F4F51}, /* Korean hangul */ - {"\xAD", 0, 0x6F4F52}, /* Korean hangul */ - {"\xB4", 0, 0x6F4F53}, /* Korean hangul */ - {"\xB5", 0, 0x6F4F54}, /* Korean hangul */ - {"\xB8", 0, 0x6F4F55}, /* Korean hangul */ - {"\xBC", 0, 0x6F4F56}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page399 = { - marc8r_31page399_flat, 0 -}; -/* PAGE 398 */ -struct yaz_iconv_trie_flat marc8r_31page398_flat[] = { - {"\x84", 0, 0x6F4F4B}, /* Korean hangul */ - {"\xBC", 0, 0x6F4F4C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page398 = { - marc8r_31page398_flat, 0 -}; -/* PAGE 397 */ -struct yaz_iconv_trie_flat marc8r_31page397_flat[] = { - {"\x8C", 0, 0x6F4F41}, /* Korean hangul */ - {"\xA1", 0, 0x6F4F42}, /* Korean hangul */ - {"\xA8", 0, 0x6F4F43}, /* Korean hangul */ - {"\xA9", 0, 0x6F4F44}, /* Korean hangul */ - {"\xAC", 0, 0x6F4F45}, /* Korean hangul */ - {"\xB0", 0, 0x6F4F46}, /* Korean hangul */ - {"\xB8", 0, 0x6F4F47}, /* Korean hangul */ - {"\xB9", 0, 0x6F4F48}, /* Korean hangul */ - {"\xBB", 0, 0x6F4F49}, /* Korean hangul */ - {"\xBD", 0, 0x6F4F4A}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page397 = { - marc8r_31page397_flat, 0 -}; -/* PAGE 396 */ -struct yaz_iconv_trie_flat marc8r_31page396_flat[] = { - {"\xB0", 0, 0x6F4F40}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page396 = { - marc8r_31page396_flat, 0 -}; -/* PAGE 395 */ -struct yaz_iconv_trie_flat marc8r_31page395_flat[] = { - {"\x80", 0, 0x6F4F37}, /* Korean hangul */ - {"\x9C", 0, 0x6F4F38}, /* Korean hangul */ - {"\x9D", 0, 0x6F4F39}, /* Korean hangul */ - {"\xA0", 0, 0x6F4F3A}, /* Korean hangul */ - {"\xA4", 0, 0x6F4F3B}, /* Korean hangul */ - {"\xAC", 0, 0x6F4F3C}, /* Korean hangul */ - {"\xAD", 0, 0x6F4F3D}, /* Korean hangul */ - {"\xAF", 0, 0x6F4F3E}, /* Korean hangul */ - {"\xB1", 0, 0x6F4F3F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page395 = { - marc8r_31page395_flat, 0 -}; -/* PAGE 394 */ -struct yaz_iconv_trie_flat marc8r_31page394_flat[] = { - {"\x80", 0, 0x6F4F23}, /* Korean hangul */ - {"\x81", 0, 0x6F4F24}, /* Korean hangul */ - {"\x87", 0, 0x6F4F25}, /* Korean hangul */ - {"\x88", 0, 0x6F4F26}, /* Korean hangul */ - {"\x89", 0, 0x6F4F27}, /* Korean hangul */ - {"\x8C", 0, 0x6F4F28}, /* Korean hangul */ - {"\x90", 0, 0x6F4F29}, /* Korean hangul */ - {"\x98", 0, 0x6F4F2A}, /* Korean hangul */ - {"\x99", 0, 0x6F4F2B}, /* Korean hangul */ - {"\x9B", 0, 0x6F4F2C}, /* Korean hangul */ - {"\x9D", 0, 0x6F4F2D}, /* Korean hangul */ - {"\xA4", 0, 0x6F4F2E}, /* Korean hangul */ - {"\xA5", 0, 0x6F4F2F}, /* Korean hangul */ - {"\xA8", 0, 0x6F4F30}, /* Korean hangul */ - {"\xAC", 0, 0x6F4F31}, /* Korean hangul */ - {"\xB4", 0, 0x6F4F32}, /* Korean hangul */ - {"\xB5", 0, 0x6F4F33}, /* Korean hangul */ - {"\xB7", 0, 0x6F4F34}, /* Korean hangul */ - {"\xB8", 0, 0x6F4F35}, /* Korean hangul */ - {"\xB9", 0, 0x6F4F36}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page394 = { - marc8r_31page394_flat, 0 -}; -/* PAGE 393 */ -struct yaz_iconv_trie_flat marc8r_31page393_flat[] = { - {"\x89", 0, 0x6F4E79}, /* Korean hangul */ - {"\xAC", 0, 0x6F4E7A}, /* Korean hangul */ - {"\xAD", 0, 0x6F4E7B}, /* Korean hangul */ - {"\xB0", 0, 0x6F4E7C}, /* Korean hangul */ - {"\xB4", 0, 0x6F4E7D}, /* Korean hangul */ - {"\xBC", 0, 0x6F4E7E}, /* Korean hangul */ - {"\xBD", 0, 0x6F4F21}, /* Korean hangul */ - {"\xBF", 0, 0x6F4F22}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page393 = { - marc8r_31page393_flat, 0 -}; -/* PAGE 392 */ -struct yaz_iconv_trie_flat marc8r_31page392_flat[] = { - {"\x80", 0, 0x6F4E66}, /* Korean hangul */ - {"\x84", 0, 0x6F4E67}, /* Korean hangul */ - {"\x8C", 0, 0x6F4E68}, /* Korean hangul */ - {"\x8D", 0, 0x6F4E69}, /* Korean hangul */ - {"\x8F", 0, 0x6F4E6A}, /* Korean hangul */ - {"\x90", 0, 0x6F4E6B}, /* Korean hangul */ - {"\x91", 0, 0x6F4E6C}, /* Korean hangul */ - {"\x97", 0, 0x6F4E6D}, /* Korean hangul */ - {"\x98", 0, 0x6F4E6E}, /* Korean hangul */ - {"\x99", 0, 0x6F4E6F}, /* Korean hangul */ - {"\x9C", 0, 0x6F4E70}, /* Korean hangul */ - {"\xA0", 0, 0x6F4E71}, /* Korean hangul */ - {"\xA8", 0, 0x6F4E72}, /* Korean hangul */ - {"\xA9", 0, 0x6F4E73}, /* Korean hangul */ - {"\xAB", 0, 0x6F4E74}, /* Korean hangul */ - {"\xAC", 0, 0x6F4E75}, /* Korean hangul */ - {"\xAD", 0, 0x6F4E76}, /* Korean hangul */ - {"\xB4", 0, 0x6F4E77}, /* Korean hangul */ - {"\xB5", 0, 0x6F4E78}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page392 = { - marc8r_31page392_flat, 0 -}; -/* PAGE 391 */ -struct yaz_iconv_trie_flat marc8r_31page391_flat[] = { - {"\x84", 0, 0x6F4E5A}, /* Korean hangul */ - {"\x88", 0, 0x6F4E5B}, /* Korean hangul */ - {"\xA0", 0, 0x6F4E5C}, /* Korean hangul */ - {"\xA4", 0, 0x6F4E5D}, /* Korean hangul */ - {"\xA8", 0, 0x6F4E5E}, /* Korean hangul */ - {"\xB0", 0, 0x6F4E5F}, /* Korean hangul */ - {"\xB1", 0, 0x6F4E60}, /* Korean hangul */ - {"\xB5", 0, 0x6F4E61}, /* Korean hangul */ - {"\xBC", 0, 0x6F4E64}, /* Korean hangul */ - {"\xBD", 0, 0x6F4E65}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page391 = { - marc8r_31page391_flat, 0 -}; -/* PAGE 390 */ -struct yaz_iconv_trie_flat marc8r_31page390_flat[] = { - {"\x80", 0, 0x6F4E50}, /* Korean hangul */ - {"\x81", 0, 0x6F4E51}, /* Korean hangul */ - {"\xA8", 0, 0x6F4E52}, /* Korean hangul */ - {"\xA9", 0, 0x6F4E53}, /* Korean hangul */ - {"\xAC", 0, 0x6F4E54}, /* Korean hangul */ - {"\xAF", 0, 0x6F4E55}, /* Korean hangul */ - {"\xB0", 0, 0x6F4E56}, /* Korean hangul */ - {"\xB8", 0, 0x6F4E57}, /* Korean hangul */ - {"\xB9", 0, 0x6F4E58}, /* Korean hangul */ - {"\xBB", 0, 0x6F4E59}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page390 = { - marc8r_31page390_flat, 0 -}; -/* PAGE 389 */ -struct yaz_iconv_trie_flat marc8r_31page389_flat[] = { - {"\xB0", 0, 0x6F4E4D}, /* Korean hangul */ - {"\xB4", 0, 0x6F4E4E}, /* Korean hangul */ - {"\xB8", 0, 0x6F4E4F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page389 = { - marc8r_31page389_flat, 0 -}; -/* PAGE 388 */ -struct yaz_iconv_trie_flat marc8r_31page388_flat[] = { - {"\x9C", 0, 0x6F4E47}, /* Korean hangul */ - {"\x9D", 0, 0x6F4E48}, /* Korean hangul */ - {"\xA4", 0, 0x6F4E49}, /* Korean hangul */ - {"\xAB", 0, 0x6F4E4A}, /* Korean hangul */ - {"\xAC", 0, 0x6F4E4B}, /* Korean hangul */ - {"\xB1", 0, 0x6F4E4C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page388 = { - marc8r_31page388_flat, 0 -}; -/* PAGE 387 */ -struct yaz_iconv_trie_flat marc8r_31page387_flat[] = { - {"\xA4", 0, 0x6F4E46}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page387 = { - marc8r_31page387_flat, 0 -}; -/* PAGE 386 */ -struct yaz_iconv_trie_flat marc8r_31page386_flat[] = { - {"\x90", 0, 0x6F4E41}, /* Korean hangul */ - {"\x91", 0, 0x6F4E42}, /* Korean hangul */ - {"\x94", 0, 0x6F4E43}, /* Korean hangul */ - {"\x98", 0, 0x6F4E44}, /* Korean hangul */ - {"\xA5", 0, 0x6F4E45}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page386 = { - marc8r_31page386_flat, 0 -}; -/* PAGE 385 */ -struct yaz_iconv_trie_flat marc8r_31page385_flat[] = { - {"\x80", 0, 0x6F4E3C}, /* Korean hangul */ - {"\x84", 0, 0x6F4E3D}, /* Korean hangul */ - {"\x8C", 0, 0x6F4E3E}, /* Korean hangul */ - {"\x8F", 0, 0x6F4E3F}, /* Korean hangul */ - {"\x91", 0, 0x6F4E40}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page385 = { - marc8r_31page385_flat, 0 -}; -/* PAGE 384 */ -struct yaz_iconv_trie_flat marc8r_31page384_flat[] = { - {"\xA0", 0, 0x6F4E30}, /* Korean hangul */ - {"\xA1", 0, 0x6F4E31}, /* Korean hangul */ - {"\xA4", 0, 0x6F4E32}, /* Korean hangul */ - {"\xA8", 0, 0x6F4E33}, /* Korean hangul */ - {"\xAB", 0, 0x6F4E34}, /* Korean hangul */ - {"\xB0", 0, 0x6F4E35}, /* Korean hangul */ - {"\xB1", 0, 0x6F4E36}, /* Korean hangul */ - {"\xB3", 0, 0x6F4E37}, /* Korean hangul */ - {"\xB4", 0, 0x6F4E38}, /* Korean hangul */ - {"\xB5", 0, 0x6F4E39}, /* Korean hangul */ - {"\xBB", 0, 0x6F4E3A}, /* Korean hangul */ - {"\xBC", 0, 0x6F4E3B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page384 = { - marc8r_31page384_flat, 0 -}; -/* PAGE 383 */ -struct yaz_iconv_trie_flat marc8r_31page383_flat[] = { - {"\x80", 0, 0x6F4E21}, /* Korean hangul */ - {"\x81", 0, 0x6F4E22}, /* Korean hangul */ - {"\x83", 0, 0x6F4E23}, /* Korean hangul */ - {"\x84", 0, 0x6F4E24}, /* Korean hangul */ - {"\x85", 0, 0x6F4E25}, /* Korean hangul */ - {"\x8B", 0, 0x6F4E26}, /* Korean hangul */ - {"\x8C", 0, 0x6F4E27}, /* Korean hangul */ - {"\x8D", 0, 0x6F4E28}, /* Korean hangul */ - {"\x90", 0, 0x6F4E29}, /* Korean hangul */ - {"\x94", 0, 0x6F4E2A}, /* Korean hangul */ - {"\x9C", 0, 0x6F4E2B}, /* Korean hangul */ - {"\x9D", 0, 0x6F4E2C}, /* Korean hangul */ - {"\x9F", 0, 0x6F4E2D}, /* Korean hangul */ - {"\xA0", 0, 0x6F4E2E}, /* Korean hangul */ - {"\xA1", 0, 0x6F4E2F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page383 = { - marc8r_31page383_flat, 0 -}; -/* PAGE 382 */ -struct yaz_iconv_trie_flat marc8r_31page382_flat[] = { - {"\x94", 0, 0x6F4D6B}, /* Korean hangul */ - {"\x95", 0, 0x6F4D6C}, /* Korean hangul */ - {"\x98", 0, 0x6F4D6D}, /* Korean hangul */ - {"\x9B", 0, 0x6F4D6E}, /* Korean hangul */ - {"\x9C", 0, 0x6F4D6F}, /* Korean hangul */ - {"\xA4", 0, 0x6F4D70}, /* Korean hangul */ - {"\xA5", 0, 0x6F4D71}, /* Korean hangul */ - {"\xA7", 0, 0x6F4D72}, /* Korean hangul */ - {"\xA8", 0, 0x6F4D73}, /* Korean hangul */ - {"\xA9", 0, 0x6F4D74}, /* Korean hangul */ - {"\xAA", 0, 0x6F4D75}, /* Korean hangul */ - {"\xB0", 0, 0x6F4D78}, /* Korean hangul */ - {"\xB1", 0, 0x6F4D79}, /* Korean hangul */ - {"\xB2", 0, 0x6F4D7A}, /* Korean hangul */ - {"\xB4", 0, 0x6F4D7B}, /* Korean hangul */ - {"\xB7", 0, 0x6F4D7C}, /* Korean hangul */ - {"\xB8", 0, 0x6F4D7D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page382 = { - marc8r_31page382_flat, 0 -}; -/* PAGE 381 */ -struct yaz_iconv_trie_flat marc8r_31page381_flat[] = { - {"\x80", 0, 0x6F4D60}, /* Korean hangul */ - {"\x90", 0, 0x6F4D61}, /* Korean hangul */ - {"\x9C", 0, 0x6F4D62}, /* Korean hangul */ - {"\x9D", 0, 0x6F4D63}, /* Korean hangul */ - {"\xA0", 0, 0x6F4D64}, /* Korean hangul */ - {"\xA3", 0, 0x6F4D65}, /* Korean hangul */ - {"\xA4", 0, 0x6F4D66}, /* Korean hangul */ - {"\xAC", 0, 0x6F4D67}, /* Korean hangul */ - {"\xAD", 0, 0x6F4D68}, /* Korean hangul */ - {"\xAF", 0, 0x6F4D69}, /* Korean hangul */ - {"\xB1", 0, 0x6F4D6A}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page381 = { - marc8r_31page381_flat, 0 -}; -/* PAGE 380 */ -struct yaz_iconv_trie_flat marc8r_31page380_flat[] = { - {"\x80", 0, 0x6F4D5C}, /* Korean hangul */ - {"\x88", 0, 0x6F4D5D}, /* Korean hangul */ - {"\xA4", 0, 0x6F4D5E}, /* Korean hangul */ - {"\xB7", 0, 0x6F4D5F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page380 = { - marc8r_31page380_flat, 0 -}; -/* PAGE 379 */ -struct yaz_iconv_trie_flat marc8r_31page379_flat[] = { - {"\x90", 0, 0x6F4D53}, /* Korean hangul */ - {"\x91", 0, 0x6F4D54}, /* Korean hangul */ - {"\x94", 0, 0x6F4D55}, /* Korean hangul */ - {"\x98", 0, 0x6F4D56}, /* Korean hangul */ - {"\xA0", 0, 0x6F4D57}, /* Korean hangul */ - {"\xA1", 0, 0x6F4D58}, /* Korean hangul */ - {"\xA3", 0, 0x6F4D59}, /* Korean hangul */ - {"\xA5", 0, 0x6F4D5A}, /* Korean hangul */ - {"\xAC", 0, 0x6F4D5B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page379 = { - marc8r_31page379_flat, 0 -}; -/* PAGE 378 */ -struct yaz_iconv_trie_flat marc8r_31page378_flat[] = { - {"\x80", 0, 0x6F4D4A}, /* Korean hangul */ - {"\x90", 0, 0x6F4D4B}, /* Korean hangul */ - {"\x98", 0, 0x6F4D4C}, /* Korean hangul */ - {"\x9C", 0, 0x6F4D4D}, /* Korean hangul */ - {"\xA0", 0, 0x6F4D4E}, /* Korean hangul */ - {"\xA8", 0, 0x6F4D4F}, /* Korean hangul */ - {"\xA9", 0, 0x6F4D50}, /* Korean hangul */ - {"\xAB", 0, 0x6F4D51}, /* Korean hangul */ - {"\xAC", 0, 0x6F4D52}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page378 = { - marc8r_31page378_flat, 0 -}; -/* PAGE 377 */ -struct yaz_iconv_trie_flat marc8r_31page377_flat[] = { - {"\x84", 0, 0x6F4D3E}, /* Korean hangul */ - {"\x85", 0, 0x6F4D3F}, /* Korean hangul */ - {"\x88", 0, 0x6F4D40}, /* Korean hangul */ - {"\x8B", 0, 0x6F4D41}, /* Korean hangul */ - {"\x8C", 0, 0x6F4D42}, /* Korean hangul */ - {"\x90", 0, 0x6F4D43}, /* Korean hangul */ - {"\x94", 0, 0x6F4D44}, /* Korean hangul */ - {"\x95", 0, 0x6F4D45}, /* Korean hangul */ - {"\x97", 0, 0x6F4D46}, /* Korean hangul */ - {"\x99", 0, 0x6F4D47}, /* Korean hangul */ - {"\x9B", 0, 0x6F4D48}, /* Korean hangul */ - {"\xBC", 0, 0x6F4D49}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page377 = { - marc8r_31page377_flat, 0 -}; -/* PAGE 376 */ -struct yaz_iconv_trie_flat marc8r_31page376_flat[] = { - {"\x80", 0, 0x6F4D3A}, /* Korean hangul */ - {"\x83", 0, 0x6F4D3B}, /* Korean hangul */ - {"\x85", 0, 0x6F4D3C}, /* Korean hangul */ - {"\x8C", 0, 0x6F4D3D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page376 = { - marc8r_31page376_flat, 0 -}; -/* PAGE 375 */ -struct yaz_iconv_trie_flat marc8r_31page375_flat[] = { - {"\x94", 0, 0x6F4D28}, /* Korean hangul */ - {"\x95", 0, 0x6F4D29}, /* Korean hangul */ - {"\x98", 0, 0x6F4D2A}, /* Korean hangul */ - {"\x9B", 0, 0x6F4D2B}, /* Korean hangul */ - {"\x9C", 0, 0x6F4D2C}, /* Korean hangul */ - {"\x9F", 0, 0x6F4D2D}, /* Korean hangul */ - {"\xA4", 0, 0x6F4D2E}, /* Korean hangul */ - {"\xA5", 0, 0x6F4D2F}, /* Korean hangul */ - {"\xA7", 0, 0x6F4D30}, /* Korean hangul */ - {"\xA8", 0, 0x6F4D31}, /* Korean hangul */ - {"\xA9", 0, 0x6F4D32}, /* Korean hangul */ - {"\xAA", 0, 0x6F4D33}, /* Korean hangul */ - {"\xAB", 0, 0x6F4D34}, /* Korean hangul */ - {"\xAE", 0, 0x6F4D35}, /* Korean hangul */ - {"\xB0", 0, 0x6F4D36}, /* Korean hangul */ - {"\xB1", 0, 0x6F4D37}, /* Korean hangul */ - {"\xB4", 0, 0x6F4D38}, /* Korean hangul */ - {"\xB8", 0, 0x6F4D39}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page375 = { - marc8r_31page375_flat, 0 -}; -/* PAGE 374 */ -struct yaz_iconv_trie_flat marc8r_31page374_flat[] = { - {"\x80", 0, 0x6F4C7D}, /* Korean hangul */ - {"\x81", 0, 0x6F4C7E}, /* Korean hangul */ - {"\x84", 0, 0x6F4D21}, /* Korean hangul */ - {"\x88", 0, 0x6F4D22}, /* Korean hangul */ - {"\x90", 0, 0x6F4D23}, /* Korean hangul */ - {"\x91", 0, 0x6F4D24}, /* Korean hangul */ - {"\x93", 0, 0x6F4D25}, /* Korean hangul */ - {"\x94", 0, 0x6F4D26}, /* Korean hangul */ - {"\x95", 0, 0x6F4D27}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page374 = { - marc8r_31page374_flat, 0 -}; -/* PAGE 373 */ -struct yaz_iconv_trie_flat marc8r_31page373_flat[] = { - {"\x88", 0, 0x6F4C62}, /* Korean hangul */ - {"\x89", 0, 0x6F4C63}, /* Korean hangul */ - {"\x8C", 0, 0x6F4C64}, /* Korean hangul */ - {"\x90", 0, 0x6F4C65}, /* Korean hangul */ - {"\x98", 0, 0x6F4C66}, /* Korean hangul */ - {"\x99", 0, 0x6F4C67}, /* Korean hangul */ - {"\x9B", 0, 0x6F4C68}, /* Korean hangul */ - {"\x9D", 0, 0x6F4C69}, /* Korean hangul */ - {"\xA2", 0, 0x6F4C6A}, /* Korean hangul */ - {"\xA4", 0, 0x6F4C6D}, /* Korean hangul */ - {"\xA5", 0, 0x6F4C6E}, /* Korean hangul */ - {"\xA6", 0, 0x6F4C6F}, /* Korean hangul */ - {"\xA8", 0, 0x6F4C70}, /* Korean hangul */ - {"\xAB", 0, 0x6F4C71}, /* Korean hangul */ - {"\xAC", 0, 0x6F4C72}, /* Korean hangul */ - {"\xAD", 0, 0x6F4C73}, /* Korean hangul */ - {"\xAE", 0, 0x6F4C74}, /* Korean hangul */ - {"\xB3", 0, 0x6F4C75}, /* Korean hangul */ - {"\xB4", 0, 0x6F4C76}, /* Korean hangul */ - {"\xB5", 0, 0x6F4C77}, /* Korean hangul */ - {"\xB7", 0, 0x6F4C78}, /* Korean hangul */ - {"\xB9", 0, 0x6F4C79}, /* Korean hangul */ - {"\xBA", 0, 0x6F4C7A}, /* Korean hangul */ - {"\xBB", 0, 0x6F4C7B}, /* Korean hangul */ - {"\xBF", 0, 0x6F4C7C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page373 = { - marc8r_31page373_flat, 0 -}; -/* PAGE 372 */ -struct yaz_iconv_trie_flat marc8r_31page372_flat[] = { - {"\x84", 0, 0x6F4C55}, /* Korean hangul */ - {"\x89", 0, 0x6F4C56}, /* Korean hangul */ - {"\x90", 0, 0x6F4C57}, /* Korean hangul */ - {"\x91", 0, 0x6F4C58}, /* Korean hangul */ - {"\x94", 0, 0x6F4C59}, /* Korean hangul */ - {"\x98", 0, 0x6F4C5A}, /* Korean hangul */ - {"\x99", 0, 0x6F4C5B}, /* Korean hangul */ - {"\xA0", 0, 0x6F4C5C}, /* Korean hangul */ - {"\xA1", 0, 0x6F4C5D}, /* Korean hangul */ - {"\xA5", 0, 0x6F4C5E}, /* Korean hangul */ - {"\xA6", 0, 0x6F4C5F}, /* Korean hangul */ - {"\xAA", 0, 0x6F4C60}, /* Korean hangul */ - {"\xAC", 0, 0x6F4C61}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page372 = { - marc8r_31page372_flat, 0 -}; -/* PAGE 371 */ -struct yaz_iconv_trie_flat marc8r_31page371_flat[] = { - {"\x98", 0, 0x6F4C4F}, /* Korean hangul */ - {"\x9C", 0, 0x6F4C50}, /* Korean hangul */ - {"\xA0", 0, 0x6F4C51}, /* Korean hangul */ - {"\xA8", 0, 0x6F4C52}, /* Korean hangul */ - {"\xA9", 0, 0x6F4C53}, /* Korean hangul */ - {"\xB4", 0, 0x6F4C54}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page371 = { - marc8r_31page371_flat, 0 -}; -/* PAGE 370 */ -struct yaz_iconv_trie_flat marc8r_31page370_flat[] = { - {"\x84", 0, 0x6F4C43}, /* Korean hangul */ - {"\x85", 0, 0x6F4C44}, /* Korean hangul */ - {"\x88", 0, 0x6F4C45}, /* Korean hangul */ - {"\x8B", 0, 0x6F4C46}, /* Korean hangul */ - {"\x8C", 0, 0x6F4C47}, /* Korean hangul */ - {"\x93", 0, 0x6F4C48}, /* Korean hangul */ - {"\x94", 0, 0x6F4C49}, /* Korean hangul */ - {"\x95", 0, 0x6F4C4A}, /* Korean hangul */ - {"\x97", 0, 0x6F4C4B}, /* Korean hangul */ - {"\xA0", 0, 0x6F4C4C}, /* Korean hangul */ - {"\xB3", 0, 0x6F4C4D}, /* Korean hangul */ - {"\xB4", 0, 0x6F4C4E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page370 = { - marc8r_31page370_flat, 0 -}; -/* PAGE 369 */ -struct yaz_iconv_trie_flat marc8r_31page369_flat[] = { - {"\x8C", 0, 0x6F4C3D}, /* Korean hangul */ - {"\x90", 0, 0x6F4C3E}, /* Korean hangul */ - {"\x94", 0, 0x6F4C3F}, /* Korean hangul */ - {"\x9C", 0, 0x6F4C40}, /* Korean hangul */ - {"\xA8", 0, 0x6F4C41}, /* Korean hangul */ - {"\xBD", 0, 0x6F4C42}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page369 = { - marc8r_31page369_flat, 0 -}; -/* PAGE 368 */ -struct yaz_iconv_trie_flat marc8r_31page368_flat[] = { - {"\x80", 0, 0x6F4C34}, /* Korean hangul */ - {"\x88", 0, 0x6F4C35}, /* Korean hangul */ - {"\x89", 0, 0x6F4C36}, /* Korean hangul */ - {"\x8B", 0, 0x6F4C37}, /* Korean hangul */ - {"\x8D", 0, 0x6F4C38}, /* Korean hangul */ - {"\x92", 0, 0x6F4C39}, /* Korean hangul */ - {"\x93", 0, 0x6F4C3A}, /* Korean hangul */ - {"\x94", 0, 0x6F4C3B}, /* Korean hangul */ - {"\xA8", 0, 0x6F4C3C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page368 = { - marc8r_31page368_flat, 0 -}; -/* PAGE 367 */ -struct yaz_iconv_trie_flat marc8r_31page367_flat[] = { - {"\x80", 0, 0x6F4C26}, /* Korean hangul */ - {"\x81", 0, 0x6F4C27}, /* Korean hangul */ - {"\x84", 0, 0x6F4C28}, /* Korean hangul */ - {"\x90", 0, 0x6F4C29}, /* Korean hangul */ - {"\x91", 0, 0x6F4C2A}, /* Korean hangul */ - {"\x93", 0, 0x6F4C2B}, /* Korean hangul */ - {"\x94", 0, 0x6F4C2C}, /* Korean hangul */ - {"\x95", 0, 0x6F4C2D}, /* Korean hangul */ - {"\x98", 0, 0x6F4C2E}, /* Korean hangul */ - {"\x9C", 0, 0x6F4C2F}, /* Korean hangul */ - {"\xB8", 0, 0x6F4C30}, /* Korean hangul */ - {"\xB9", 0, 0x6F4C31}, /* Korean hangul */ - {"\xBA", 0, 0x6F4C32}, /* Korean hangul */ - {"\xBC", 0, 0x6F4C33}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page367 = { - marc8r_31page367_flat, 0 -}; -/* PAGE 366 */ -struct yaz_iconv_trie_flat marc8r_31page366_flat[] = { - {"\x88", 0, 0x6F4B6E}, /* Korean hangul */ - {"\x89", 0, 0x6F4B6F}, /* Korean hangul */ - {"\x8B", 0, 0x6F4B71}, /* Korean hangul */ - {"\x8C", 0, 0x6F4B72}, /* Korean hangul */ - {"\x8F", 0, 0x6F4B73}, /* Korean hangul */ - {"\x90", 0, 0x6F4B74}, /* Korean hangul */ - {"\x93", 0, 0x6F4B75}, /* Korean hangul */ - {"\x98", 0, 0x6F4B76}, /* Korean hangul */ - {"\x99", 0, 0x6F4B77}, /* Korean hangul */ - {"\x9B", 0, 0x6F4B78}, /* Korean hangul */ - {"\x9C", 0, 0x6F4B79}, /* Korean hangul */ - {"\x9D", 0, 0x6F4B7A}, /* Korean hangul */ - {"\x9E", 0, 0x6F4B7B}, /* Korean hangul */ - {"\xA3", 0, 0x6F4B7C}, /* Korean hangul */ - {"\xA4", 0, 0x6F4B7D}, /* Korean hangul */ - {"\xA5", 0, 0x6F4B7E}, /* Korean hangul */ - {"\xA8", 0, 0x6F4C21}, /* Korean hangul */ - {"\xAC", 0, 0x6F4C22}, /* Korean hangul */ - {"\xB4", 0, 0x6F4C23}, /* Korean hangul */ - {"\xB5", 0, 0x6F4C24}, /* Korean hangul */ - {"\xB7", 0, 0x6F4C25}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page366 = { - marc8r_31page366_flat, 0 -}; -/* PAGE 365 */ -struct yaz_iconv_trie_flat marc8r_31page365_flat[] = { - {"\x84", 0, 0x6F4B64}, /* Korean hangul */ - {"\x85", 0, 0x6F4B65}, /* Korean hangul */ - {"\x85", 0, 0x6F4B65}, /* Korean hangul */ - {"\x87", 0, 0x6F4B66}, /* Korean hangul */ - {"\x88", 0, 0x6F4B67}, /* Korean hangul */ - {"\x89", 0, 0x6F4B68}, /* Korean hangul */ - {"\x90", 0, 0x6F4B69}, /* Korean hangul */ - {"\x91", 0, 0x6F4B6A}, /* Korean hangul */ - {"\xA0", 0, 0x6F4B6B}, /* Korean hangul */ - {"\xA5", 0, 0x6F4B6C}, /* Korean hangul */ - {"\xAC", 0, 0x6F4B6D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page365 = { - marc8r_31page365_flat, 0 -}; -/* PAGE 364 */ -struct yaz_iconv_trie_flat marc8r_31page364_flat[] = { - {"\x80", 0, 0x6F4B46}, /* Korean hangul */ - {"\x84", 0, 0x6F4B47}, /* Korean hangul */ - {"\x8C", 0, 0x6F4B48}, /* Korean hangul */ - {"\x8D", 0, 0x6F4B49}, /* Korean hangul */ - {"\x8F", 0, 0x6F4B4A}, /* Korean hangul */ - {"\x90", 0, 0x6F4B4B}, /* Korean hangul */ - {"\x91", 0, 0x6F4B4C}, /* Korean hangul */ - {"\x98", 0, 0x6F4B4F}, /* Korean hangul */ - {"\x99", 0, 0x6F4B50}, /* Korean hangul */ - {"\x9A", 0, 0x6F4B51}, /* Korean hangul */ - {"\x9C", 0, 0x6F4B52}, /* Korean hangul */ - {"\x9F", 0, 0x6F4B53}, /* Korean hangul */ - {"\xA0", 0, 0x6F4B54}, /* Korean hangul */ - {"\xA1", 0, 0x6F4B55}, /* Korean hangul */ - {"\xA8", 0, 0x6F4B56}, /* Korean hangul */ - {"\xA9", 0, 0x6F4B57}, /* Korean hangul */ - {"\xAB", 0, 0x6F4B58}, /* Korean hangul */ - {"\xAC", 0, 0x6F4B59}, /* Korean hangul */ - {"\xAD", 0, 0x6F4B5A}, /* Korean hangul */ - {"\xAE", 0, 0x6F4B5B}, /* Korean hangul */ - {"\xAF", 0, 0x6F4B5C}, /* Korean hangul */ - {"\xB1", 0, 0x6F4B5D}, /* Korean hangul */ - {"\xB3", 0, 0x6F4B5E}, /* Korean hangul */ - {"\xB4", 0, 0x6F4B5F}, /* Korean hangul */ - {"\xB5", 0, 0x6F4B60}, /* Korean hangul */ - {"\xB8", 0, 0x6F4B61}, /* Korean hangul */ - {"\xBB", 0, 0x6F4B62}, /* Korean hangul */ - {"\xBC", 0, 0x6F4B63}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page364 = { - marc8r_31page364_flat, 0 -}; -/* PAGE 363 */ -struct yaz_iconv_trie_flat marc8r_31page363_flat[] = { - {"\x84", 0, 0x6F4B39}, /* Korean hangul */ - {"\x85", 0, 0x6F4B3A}, /* Korean hangul */ - {"\x88", 0, 0x6F4B3B}, /* Korean hangul */ - {"\x8A", 0, 0x6F4B3C}, /* Korean hangul */ - {"\x8C", 0, 0x6F4B3D}, /* Korean hangul */ - {"\x93", 0, 0x6F4B3E}, /* Korean hangul */ - {"\x94", 0, 0x6F4B3F}, /* Korean hangul */ - {"\x95", 0, 0x6F4B40}, /* Korean hangul */ - {"\x97", 0, 0x6F4B41}, /* Korean hangul */ - {"\x99", 0, 0x6F4B42}, /* Korean hangul */ - {"\x9D", 0, 0x6F4B43}, /* Korean hangul */ - {"\xBC", 0, 0x6F4B44}, /* Korean hangul */ - {"\xBD", 0, 0x6F4B45}, /* Korean hangul */ - {"\xA0", 0, 0x6F7732}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page363 = { - marc8r_31page363_flat, 0 -}; -/* PAGE 362 */ -struct yaz_iconv_trie_flat marc8r_31page362_flat[] = { - {"\x80", 0, 0x6F4B30}, /* Korean hangul */ - {"\x8C", 0, 0x6F4B32}, /* Korean hangul */ - {"\x8D", 0, 0x6F4B33}, /* Korean hangul */ - {"\x90", 0, 0x6F4B34}, /* Korean hangul */ - {"\x94", 0, 0x6F4B35}, /* Korean hangul */ - {"\x9C", 0, 0x6F4B36}, /* Korean hangul */ - {"\x9D", 0, 0x6F4B37}, /* Korean hangul */ - {"\xA8", 0, 0x6F4B38}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page362 = { - marc8r_31page362_flat, 0 -}; -/* PAGE 361 */ -struct yaz_iconv_trie_dir marc8r_31page361_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {363, 0, 0}, - {364, 0, 0}, - {365, 0, 0}, - {366, 0, 0}, - {367, 0, 0}, - {368, 0, 0}, - {369, 0, 0}, - {370, 0, 0}, - {371, 0, 0}, - {372, 0, 0}, - {373, 0, 0}, - {374, 0, 0}, - {375, 0, 0}, - {376, 0, 0}, - {377, 0, 0}, - {378, 0, 0}, - {379, 0, 0}, - {380, 0, 0}, - {381, 0, 0}, - {382, 0, 0}, - {383, 0, 0}, - {384, 0, 0}, - {385, 0, 0}, - {386, 0, 0}, - {387, 0, 0}, - {388, 0, 0}, - {389, 0, 0}, - {390, 0, 0}, - {391, 0, 0}, - {392, 0, 0}, - {393, 0, 0}, - {394, 0, 0}, - {395, 0, 0}, - {396, 0, 0}, - {397, 0, 0}, - {398, 0, 0}, - {399, 0, 0}, - {400, 0, 0}, - {401, 0, 0}, - {402, 0, 0}, - {403, 0, 0}, - {404, 0, 0}, - {405, 0, 0}, - {406, 0, 0}, - {407, 0, 0}, - {408, 0, 0}, - {409, 0, 0}, - {410, 0, 0}, - {411, 0, 0}, - {412, 0, 0}, - {413, 0, 0}, - {414, 0, 0}, - {415, 0, 0}, - {416, 0, 0}, - {417, 0, 0}, - {418, 0, 0}, - {419, 0, 0}, - {420, 0, 0}, - {421, 0, 0}, - {422, 0, 0}, - {423, 0, 0}, - {424, 0, 0}, - {425, 0, 0}, - {426, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page361 = { - 0, marc8r_31page361_dir -}; -/* PAGE 360 */ -struct yaz_iconv_trie_flat marc8r_31page360_flat[] = { - {"\x80", 0, 0x6F4B25}, /* Korean hangul */ - {"\x87", 0, 0x6F4B26}, /* Korean hangul */ - {"\x88", 0, 0x6F4B27}, /* Korean hangul */ - {"\x89", 0, 0x6F4B28}, /* Korean hangul */ - {"\x8B", 0, 0x6F4B29}, /* Korean hangul */ - {"\x8D", 0, 0x6F4B2A}, /* Korean hangul */ - {"\x8E", 0, 0x6F4B2B}, /* Korean hangul */ - {"\x94", 0, 0x6F4B2C}, /* Korean hangul */ - {"\x98", 0, 0x6F4B2D}, /* Korean hangul */ - {"\xA9", 0, 0x6F4B2E}, /* Korean hangul */ - {"\xB0", 0, 0x6F4B2F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page360 = { - marc8r_31page360_flat, 0 -}; -/* PAGE 359 */ -struct yaz_iconv_trie_flat marc8r_31page359_flat[] = { - {"\x80", 0, 0x6F4A7A}, /* Korean hangul */ - {"\x84", 0, 0x6F4A7B}, /* Korean hangul */ - {"\x88", 0, 0x6F4A7C}, /* Korean hangul */ - {"\x90", 0, 0x6F4A7D}, /* Korean hangul */ - {"\x95", 0, 0x6F4A7E}, /* Korean hangul */ - {"\x9C", 0, 0x6F4B21}, /* Korean hangul */ - {"\xB8", 0, 0x6F4B22}, /* Korean hangul */ - {"\xB9", 0, 0x6F4B23}, /* Korean hangul */ - {"\xBC", 0, 0x6F4B24}, /* Korean hangul */ - {"\xBF", 0, 0x6F7731}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page359 = { - marc8r_31page359_flat, 0 -}; -/* PAGE 358 */ -struct yaz_iconv_trie_flat marc8r_31page358_flat[] = { - {"\x81", 0, 0x6F4A6E}, /* Korean hangul */ - {"\x82", 0, 0x6F4A6F}, /* Korean hangul */ - {"\x83", 0, 0x6F4A70}, /* Korean hangul */ - {"\x88", 0, 0x6F4A71}, /* Korean hangul */ - {"\x89", 0, 0x6F4A72}, /* Korean hangul */ - {"\x8C", 0, 0x6F4A73}, /* Korean hangul */ - {"\x98", 0, 0x6F4A74}, /* Korean hangul */ - {"\x9C", 0, 0x6F4A75}, /* Korean hangul */ - {"\x9D", 0, 0x6F4A76}, /* Korean hangul */ - {"\xA4", 0, 0x6F4A77}, /* Korean hangul */ - {"\xA5", 0, 0x6F4A78}, /* Korean hangul */ - {"\xB9", 0, 0x6F4A79}, /* Korean hangul */ - {"\x90", 0, 0x6F7730}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page358 = { - marc8r_31page358_flat, 0 -}; -/* PAGE 357 */ -struct yaz_iconv_trie_flat marc8r_31page357_flat[] = { - {"\x8D", 0, 0x6F4A66}, /* Korean hangul */ - {"\xAC", 0, 0x6F4A67}, /* Korean hangul */ - {"\xAD", 0, 0x6F4A68}, /* Korean hangul */ - {"\xB0", 0, 0x6F4A69}, /* Korean hangul */ - {"\xB4", 0, 0x6F4A6A}, /* Korean hangul */ - {"\xBC", 0, 0x6F4A6B}, /* Korean hangul */ - {"\xBD", 0, 0x6F4A6C}, /* Korean hangul */ - {"\xBF", 0, 0x6F4A6D}, /* Korean hangul */ - {"\x89", 0, 0x6F772F}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page357 = { - marc8r_31page357_flat, 0 -}; -/* PAGE 356 */ -struct yaz_iconv_trie_flat marc8r_31page356_flat[] = { - {"\x80", 0, 0x6F4A5C}, /* Korean hangul */ - {"\x84", 0, 0x6F4A5D}, /* Korean hangul */ - {"\x8C", 0, 0x6F4A5E}, /* Korean hangul */ - {"\x8D", 0, 0x6F4A5F}, /* Korean hangul */ - {"\x8F", 0, 0x6F4A60}, /* Korean hangul */ - {"\x90", 0, 0x6F4A61}, /* Korean hangul */ - {"\x91", 0, 0x6F4A62}, /* Korean hangul */ - {"\x98", 0, 0x6F4A63}, /* Korean hangul */ - {"\x9C", 0, 0x6F4A64}, /* Korean hangul */ - {"\xB4", 0, 0x6F4A65}, /* Korean hangul */ - {"\xAD", 0, 0x6F772E}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page356 = { - marc8r_31page356_flat, 0 -}; -/* PAGE 355 */ -struct yaz_iconv_trie_flat marc8r_31page355_flat[] = { - {"\x84", 0, 0x6F4A57}, /* Korean hangul */ - {"\x85", 0, 0x6F4A58}, /* Korean hangul */ - {"\xBC", 0, 0x6F4A59}, /* Korean hangul */ - {"\xBD", 0, 0x6F4A5A}, /* Korean hangul */ - {"\xBE", 0, 0x6F4A5B}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page355 = { - marc8r_31page355_flat, 0 -}; -/* PAGE 354 */ -struct yaz_iconv_trie_flat marc8r_31page354_flat[] = { - {"\x80", 0, 0x6F4A3B}, /* Korean hangul */ - {"\x81", 0, 0x6F4A3C}, /* Korean hangul */ - {"\x83", 0, 0x6F4A3D}, /* Korean hangul */ - {"\x84", 0, 0x6F4A3E}, /* Korean hangul */ - {"\x85", 0, 0x6F4A3F}, /* Korean hangul */ - {"\x8A", 0, 0x6F4A40}, /* Korean hangul */ - {"\x8C", 0, 0x6F4A43}, /* Korean hangul */ - {"\x8D", 0, 0x6F4A44}, /* Korean hangul */ - {"\x8E", 0, 0x6F4A45}, /* Korean hangul */ - {"\x90", 0, 0x6F4A46}, /* Korean hangul */ - {"\x94", 0, 0x6F4A47}, /* Korean hangul */ - {"\x9C", 0, 0x6F4A48}, /* Korean hangul */ - {"\x9D", 0, 0x6F4A49}, /* Korean hangul */ - {"\xA0", 0, 0x6F4A4A}, /* Korean hangul */ - {"\xA1", 0, 0x6F4A4B}, /* Korean hangul */ - {"\xA2", 0, 0x6F4A4C}, /* Korean hangul */ - {"\xA5", 0, 0x6F4A4D}, /* Korean hangul */ - {"\xA8", 0, 0x6F4A4E}, /* Korean hangul */ - {"\xA9", 0, 0x6F4A4F}, /* Korean hangul */ - {"\xAC", 0, 0x6F4A50}, /* Korean hangul */ - {"\xB0", 0, 0x6F4A51}, /* Korean hangul */ - {"\xB8", 0, 0x6F4A52}, /* Korean hangul */ - {"\xB9", 0, 0x6F4A53}, /* Korean hangul */ - {"\xBB", 0, 0x6F4A54}, /* Korean hangul */ - {"\xBC", 0, 0x6F4A55}, /* Korean hangul */ - {"\xBD", 0, 0x6F4A56}, /* Korean hangul */ - {"\x9F", 0, 0x6F772D}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page354 = { - marc8r_31page354_flat, 0 -}; -/* PAGE 353 */ -struct yaz_iconv_trie_flat marc8r_31page353_flat[] = { - {"\x80", 0, 0x6F4A30}, /* Korean hangul */ - {"\x81", 0, 0x6F4A31}, /* Korean hangul */ - {"\x88", 0, 0x6F4A32}, /* Korean hangul */ - {"\x89", 0, 0x6F4A33}, /* Korean hangul */ - {"\x8B", 0, 0x6F4A34}, /* Korean hangul */ - {"\x8D", 0, 0x6F4A35}, /* Korean hangul */ - {"\xB0", 0, 0x6F4A36}, /* Korean hangul */ - {"\xB1", 0, 0x6F4A37}, /* Korean hangul */ - {"\xB4", 0, 0x6F4A38}, /* Korean hangul */ - {"\xB7", 0, 0x6F4A39}, /* Korean hangul */ - {"\xB8", 0, 0x6F4A3A}, /* Korean hangul */ - {"\x87", 0, 0x6F7728}, /* Korean hangul */ - {"\x8E", 0, 0x6F7729}, /* Korean hangul */ - {"\x8F", 0, 0x6F772A}, /* Korean hangul */ - {"\x91", 0, 0x6F772B}, /* Korean hangul */ - {"\x94", 0, 0x6F772C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page353 = { - marc8r_31page353_flat, 0 -}; -/* PAGE 352 */ -struct yaz_iconv_trie_flat marc8r_31page352_flat[] = { - {"\x80", 0, 0x6F4A22}, /* Korean hangul */ - {"\x84", 0, 0x6F4A23}, /* Korean hangul */ - {"\x88", 0, 0x6F4A24}, /* Korean hangul */ - {"\x90", 0, 0x6F4A25}, /* Korean hangul */ - {"\x91", 0, 0x6F4A26}, /* Korean hangul */ - {"\x93", 0, 0x6F4A27}, /* Korean hangul */ - {"\x9C", 0, 0x6F4A28}, /* Korean hangul */ - {"\xA0", 0, 0x6F4A29}, /* Korean hangul */ - {"\xA4", 0, 0x6F4A2A}, /* Korean hangul */ - {"\xAC", 0, 0x6F4A2B}, /* Korean hangul */ - {"\xB8", 0, 0x6F4A2C}, /* Korean hangul */ - {"\xB9", 0, 0x6F4A2D}, /* Korean hangul */ - {"\xBC", 0, 0x6F4A2E}, /* Korean hangul */ - {"\xBF", 0, 0x6F4A2F}, /* Korean hangul */ - {"\x95", 0, 0x6F7727}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page352 = { - marc8r_31page352_flat, 0 -}; -/* PAGE 351 */ -struct yaz_iconv_trie_flat marc8r_31page351_flat[] = { - {"\x81", 0, 0x6F4978}, /* Korean hangul */ - {"\x82", 0, 0x6F4979}, /* Korean hangul */ - {"\x88", 0, 0x6F497A}, /* Korean hangul */ - {"\x8C", 0, 0x6F497B}, /* Korean hangul */ - {"\x90", 0, 0x6F497C}, /* Korean hangul */ - {"\xA4", 0, 0x6F497E}, /* Korean hangul */ - {"\x89", 0, 0x6F7724}, /* Korean hangul */ - {"\x9D", 0, 0x6F7725}, /* Korean hangul */ - {"\xB9", 0, 0x6F7726}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page351 = { - marc8r_31page351_flat, 0 -}; -/* PAGE 350 */ -struct yaz_iconv_trie_flat marc8r_31page350_flat[] = { - {"\x84", 0, 0x6F496A}, /* Korean hangul */ - {"\x89", 0, 0x6F496C}, /* Korean hangul */ - {"\x90", 0, 0x6F496D}, /* Korean hangul */ - {"\xAC", 0, 0x6F496E}, /* Korean hangul */ - {"\xAD", 0, 0x6F496F}, /* Korean hangul */ - {"\xB0", 0, 0x6F4970}, /* Korean hangul */ - {"\xB3", 0, 0x6F4971}, /* Korean hangul */ - {"\xB4", 0, 0x6F4972}, /* Korean hangul */ - {"\xB5", 0, 0x6F4973}, /* Korean hangul */ - {"\xB6", 0, 0x6F4974}, /* Korean hangul */ - {"\xBC", 0, 0x6F4975}, /* Korean hangul */ - {"\xBD", 0, 0x6F4976}, /* Korean hangul */ - {"\xBF", 0, 0x6F4977}, /* Korean hangul */ - {"\xBB", 0, 0x6F7722}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page350 = { - marc8r_31page350_flat, 0 -}; -/* PAGE 349 */ -struct yaz_iconv_trie_flat marc8r_31page349_flat[] = { - {"\x80", 0, 0x6F495A}, /* Korean hangul */ - {"\x84", 0, 0x6F495B}, /* Korean hangul */ - {"\x8C", 0, 0x6F495C}, /* Korean hangul */ - {"\x8D", 0, 0x6F495D}, /* Korean hangul */ - {"\x8F", 0, 0x6F495E}, /* Korean hangul */ - {"\x91", 0, 0x6F495F}, /* Korean hangul */ - {"\x98", 0, 0x6F4960}, /* Korean hangul */ - {"\x99", 0, 0x6F4961}, /* Korean hangul */ - {"\x9C", 0, 0x6F4962}, /* Korean hangul */ - {"\xA0", 0, 0x6F4963}, /* Korean hangul */ - {"\xA8", 0, 0x6F4964}, /* Korean hangul */ - {"\xA9", 0, 0x6F4965}, /* Korean hangul */ - {"\xAD", 0, 0x6F4966}, /* Korean hangul */ - {"\xB4", 0, 0x6F4967}, /* Korean hangul */ - {"\xB8", 0, 0x6F4968}, /* Korean hangul */ - {"\xBC", 0, 0x6F4969}, /* Korean hangul */ - {"\xB5", 0, 0x6F7721}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page349 = { - marc8r_31page349_flat, 0 -}; -/* PAGE 348 */ -struct yaz_iconv_trie_flat marc8r_31page348_flat[] = { - {"\x81", 0, 0x6F4945}, /* Korean hangul */ - {"\x84", 0, 0x6F4947}, /* Korean hangul */ - {"\x97", 0, 0x6F4949}, /* Korean hangul */ - {"\xA0", 0, 0x6F494A}, /* Korean hangul */ - {"\xA1", 0, 0x6F494B}, /* Korean hangul */ - {"\xA4", 0, 0x6F494C}, /* Korean hangul */ - {"\xA7", 0, 0x6F494D}, /* Korean hangul */ - {"\xA8", 0, 0x6F494E}, /* Korean hangul */ - {"\xAA", 0, 0x6F494F}, /* Korean hangul */ - {"\xAC", 0, 0x6F4950}, /* Korean hangul */ - {"\xAF", 0, 0x6F4951}, /* Korean hangul */ - {"\xB0", 0, 0x6F4952}, /* Korean hangul */ - {"\xB1", 0, 0x6F4953}, /* Korean hangul */ - {"\xB3", 0, 0x6F4954}, /* Korean hangul */ - {"\xB5", 0, 0x6F4955}, /* Korean hangul */ - {"\xB6", 0, 0x6F4956}, /* Korean hangul */ - {"\xBA", 0, 0x6F4957}, /* Korean hangul */ - {"\xBC", 0, 0x6F4958}, /* Korean hangul */ - {"\xBD", 0, 0x6F4959}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page348 = { - marc8r_31page348_flat, 0 -}; -/* PAGE 347 */ -struct yaz_iconv_trie_flat marc8r_31page347_flat[] = { - {"\x80", 0, 0x6F4929}, /* Korean hangul */ - {"\x81", 0, 0x6F492A}, /* Korean hangul */ - {"\x83", 0, 0x6F492B}, /* Korean hangul */ - {"\x84", 0, 0x6F492C}, /* Korean hangul */ - {"\x85", 0, 0x6F492D}, /* Korean hangul */ - {"\x86", 0, 0x6F492E}, /* Korean hangul */ - {"\x89", 0, 0x6F4930}, /* Korean hangul */ - {"\x8A", 0, 0x6F4931}, /* Korean hangul */ - {"\x8B", 0, 0x6F4932}, /* Korean hangul */ - {"\x8C", 0, 0x6F4933}, /* Korean hangul */ - {"\x90", 0, 0x6F4934}, /* Korean hangul */ - {"\x94", 0, 0x6F4935}, /* Korean hangul */ - {"\x9C", 0, 0x6F4936}, /* Korean hangul */ - {"\x9F", 0, 0x6F4937}, /* Korean hangul */ - {"\x9F", 0, 0x6F4937}, /* Korean hangul */ - {"\xA0", 0, 0x6F4938}, /* Korean hangul */ - {"\xA1", 0, 0x6F4939}, /* Korean hangul */ - {"\xA8", 0, 0x6F493A}, /* Korean hangul */ - {"\xA9", 0, 0x6F493B}, /* Korean hangul */ - {"\xAA", 0, 0x6F493C}, /* Korean hangul */ - {"\xAC", 0, 0x6F493D}, /* Korean hangul */ - {"\xAF", 0, 0x6F493E}, /* Korean hangul */ - {"\xB0", 0, 0x6F493F}, /* Korean hangul */ - {"\xB8", 0, 0x6F4940}, /* Korean hangul */ - {"\xB9", 0, 0x6F4941}, /* Korean hangul */ - {"\xBC", 0, 0x6F4943}, /* Korean hangul */ - {"\xBD", 0, 0x6F4944}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page347 = { - marc8r_31page347_flat, 0 -}; -/* PAGE 346 */ -struct yaz_iconv_trie_flat marc8r_31page346_flat[] = { - {"\x80", 0, 0x6F487D}, /* Korean hangul */ - {"\x94", 0, 0x6F487E}, /* Korean hangul */ - {"\xB0", 0, 0x6F4921}, /* Korean hangul */ - {"\xB1", 0, 0x6F4922}, /* Korean hangul */ - {"\xB4", 0, 0x6F4924}, /* Korean hangul */ - {"\xB7", 0, 0x6F4925}, /* Korean hangul */ - {"\xB8", 0, 0x6F4926}, /* Korean hangul */ - {"\xB9", 0, 0x6F4927}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page346 = { - marc8r_31page346_flat, 0 -}; -/* PAGE 345 */ -struct yaz_iconv_trie_flat marc8r_31page345_flat[] = { - {"\x80", 0, 0x6F485F}, /* Korean hangul */ - {"\x81", 0, 0x6F4860}, /* Korean hangul */ - {"\x82", 0, 0x6F4861}, /* Korean hangul */ - {"\x84", 0, 0x6F4862}, /* Korean hangul */ - {"\x87", 0, 0x6F4863}, /* Korean hangul */ - {"\x88", 0, 0x6F4864}, /* Korean hangul */ - {"\x89", 0, 0x6F4865}, /* Korean hangul */ - {"\x90", 0, 0x6F4866}, /* Korean hangul */ - {"\x91", 0, 0x6F4867}, /* Korean hangul */ - {"\x92", 0, 0x6F4868}, /* Korean hangul */ - {"\x93", 0, 0x6F4869}, /* Korean hangul */ - {"\x94", 0, 0x6F486A}, /* Korean hangul */ - {"\x95", 0, 0x6F486B}, /* Korean hangul */ - {"\x96", 0, 0x6F486C}, /* Korean hangul */ - {"\x97", 0, 0x6F486D}, /* Korean hangul */ - {"\x99", 0, 0x6F486E}, /* Korean hangul */ - {"\x9A", 0, 0x6F486F}, /* Korean hangul */ - {"\x9B", 0, 0x6F4870}, /* Korean hangul */ - {"\x9C", 0, 0x6F4871}, /* Korean hangul */ - {"\x9D", 0, 0x6F4872}, /* Korean hangul */ - {"\xA0", 0, 0x6F4873}, /* Korean hangul */ - {"\xA4", 0, 0x6F4875}, /* Korean hangul */ - {"\xAC", 0, 0x6F4876}, /* Korean hangul */ - {"\xAD", 0, 0x6F4877}, /* Korean hangul */ - {"\xAF", 0, 0x6F4878}, /* Korean hangul */ - {"\xB0", 0, 0x6F4879}, /* Korean hangul */ - {"\xB1", 0, 0x6F487A}, /* Korean hangul */ - {"\xB8", 0, 0x6F487B}, /* Korean hangul */ - {"\xB9", 0, 0x6F487C}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page345 = { - marc8r_31page345_flat, 0 -}; -/* PAGE 344 */ -struct yaz_iconv_trie_dir marc8r_31page344_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {346, 0, 0}, - {347, 0, 0}, - {348, 0, 0}, - {349, 0, 0}, - {350, 0, 0}, - {351, 0, 0}, - {352, 0, 0}, - {353, 0, 0}, - {354, 0, 0}, - {355, 0, 0}, - {356, 0, 0}, - {357, 0, 0}, - {358, 0, 0}, - {359, 0, 0}, - {360, 0, 0}, - {361, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page344 = { - 0, marc8r_31page344_dir -}; -/* PAGE 343 */ -struct yaz_iconv_trie_flat marc8r_31page343_flat[] = { - {"\x81", 0, 0x6F245B}, /* Korean hangul */ - {"\x82", 0, 0x6F245C}, /* Korean hangul */ - {"\x85", 0, 0x6F245D}, /* Korean hangul */ - {"\x87", 0, 0x6F245E}, /* Korean hangul */ - {"\x88", 0, 0x6F245F}, /* Korean hangul */ - {"\x8A", 0, 0x6F2460}, /* Korean hangul */ - {"\x8B", 0, 0x6F2461}, /* Korean hangul */ - {"\x8C", 0, 0x6F2462}, /* Korean hangul */ - {"\x8D", 0, 0x6F2463}, /* Korean hangul */ - {"\x8E", 0, 0x6F2464}, /* Korean hangul */ - {"\x83", 0, 0x6F246E}, /* Korean hangul */ - {"\x86", 0, 0x6F2470}, /* Korean hangul */ - {"\x89", 0, 0x6F2471}, /* Korean hangul */ - {"\x8F", 0, 0x6F2472}, /* Korean hangul */ - {"\x90", 0, 0x6F2473}, /* Korean hangul */ - {"\x91", 0, 0x6F2474}, /* Korean hangul */ - {"\x93", 0, 0x6F2476}, /* Korean hangul */ - {"\x94", 0, 0x6F2477}, /* Korean hangul */ - {"\x95", 0, 0x6F2478}, /* Korean hangul */ - {"\x97", 0, 0x6F247A}, /* Korean hangul */ - {"\x98", 0, 0x6F247B}, /* Korean hangul */ - {"\x9B", 0, 0x6F247E}, /* Korean hangul */ - {"\x9C", 0, 0x6F2521}, /* Korean hangul */ - {"\xA0", 0, 0x6F2525}, /* Korean hangul */ - {"\xA1", 0, 0x6F2526}, /* Korean hangul */ - {"\xA2", 0, 0x6F2527}, /* Korean hangul */ - {"\xA3", 0, 0x6F2528}, /* Korean hangul */ - {"\xBF", 0, 0x6F7623}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page343 = { - marc8r_31page343_flat, 0 -}; -/* PAGE 342 */ -struct yaz_iconv_trie_flat marc8r_31page342_flat[] = { - {"\xB1", 0, 0x6F2457}, /* Korean hangul */ - {"\xB4", 0, 0x6F2458}, /* Korean hangul */ - {"\xB7", 0, 0x6F2459}, /* Korean hangul */ - {"\xB9", 0, 0x6F245A}, /* Korean hangul */ - {"\xB2", 0, 0x6F2465}, /* Korean hangul */ - {"\xB8", 0, 0x6F2469}, /* Korean hangul */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page342 = { - marc8r_31page342_flat, 0 -}; -/* PAGE 341 */ -struct yaz_iconv_trie_dir marc8r_31page341_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x692460} /* Hiragana letter MU */, - {0, 0, 0x692461} /* Hiragana letter ME */, - {0, 0, 0x692462} /* Hiragana letter MO */, - {0, 0, 0x692463} /* Hiragana letter small YA */, - {0, 0, 0x692464} /* Hiragana letter YA */, - {0, 0, 0x692465} /* Hiragana letter small YU */, - {0, 0, 0x692466} /* Hiragana letter YU */, - {0, 0, 0x692467} /* Hiragana letter small YO */, - {0, 0, 0x692468} /* Hiragana letter YO */, - {0, 0, 0x692469} /* Hiragana letter RA */, - {0, 0, 0x69246A} /* Hiragana letter RI */, - {0, 0, 0x69246B} /* Hiragana letter RU */, - {0, 0, 0x69246C} /* Hiragana letter RE */, - {0, 0, 0x69246D} /* Hiragana letter RO */, - {0, 0, 0x69246E} /* Hiragana letter small WA */, - {0, 0, 0x69246F} /* Hiragana letter WA */, - {0, 0, 0x692470} /* Hiragana letter WI */, - {0, 0, 0x692471} /* Hiragana letter WE */, - {0, 0, 0x692472} /* Hiragana letter WO */, - {0, 0, 0x692473} /* Hiragana letter N */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x692577} /* Katakana-hiragana voiced sound mark */, - {0, 0, 0x692578} /* Katakana-hiragana semi-voiced sound mark */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x692521} /* Katakana letter small A */, - {0, 0, 0x692522} /* Katakana letter A */, - {0, 0, 0x692523} /* Katakana letter small I */, - {0, 0, 0x692524} /* Katakana letter I */, - {0, 0, 0x692525} /* Katakana letter small U */, - {0, 0, 0x692526} /* Katakana letter U */, - {0, 0, 0x692527} /* Katakana letter small E */, - {0, 0, 0x692528} /* Katakana letter E */, - {0, 0, 0x692529} /* Katakana letter small O */, - {0, 0, 0x69252A} /* Katakana letter O */, - {0, 0, 0x69252B} /* Katakana letter KA */, - {0, 0, 0x69252C} /* Katakana letter GA */, - {0, 0, 0x69252D} /* Katakana letter KI */, - {0, 0, 0x69252E} /* Katakana letter GI */, - {0, 0, 0x69252F} /* Katakana letter KU */, - {0, 0, 0x692530} /* Katakana letter GU */, - {0, 0, 0x692531} /* Katakana letter KE */, - {0, 0, 0x692532} /* Katakana letter GE */, - {0, 0, 0x692533} /* Katakana letter KO */, - {0, 0, 0x692534} /* Katakana letter GO */, - {0, 0, 0x692535} /* Katakana letter SA */, - {0, 0, 0x692536} /* Katakana letter ZA */, - {0, 0, 0x692537} /* Katakana letter SI */, - {0, 0, 0x692538} /* Katakana letter ZI */, - {0, 0, 0x692539} /* Katakana letter SU */, - {0, 0, 0x69253A} /* Katakana letter ZU */, - {0, 0, 0x69253B} /* Katakana letter SE */, - {0, 0, 0x69253C} /* Katakana letter ZE */, - {0, 0, 0x69253D} /* Katakana letter SO */, - {0, 0, 0x69253E} /* Katakana letter ZO */, - {0, 0, 0x69253F} /* Katakana letter TA */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page341 = { - 0, marc8r_31page341_dir -}; -/* PAGE 340 */ -struct yaz_iconv_trie_dir marc8r_31page340_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x692421} /* Hiragana letter small A */, - {0, 0, 0x692422} /* Hiragana letter A */, - {0, 0, 0x692423} /* Hiragana letter small I */, - {0, 0, 0x692424} /* Hiragana letter I */, - {0, 0, 0x692425} /* Hiragana letter small U */, - {0, 0, 0x692426} /* Hiragana letter U */, - {0, 0, 0x692427} /* Hiragana letter small E */, - {0, 0, 0x692428} /* Hiragana letter E */, - {0, 0, 0x692429} /* Hiragana letter small O */, - {0, 0, 0x69242A} /* Hiragana letter O */, - {0, 0, 0x69242B} /* Hiragana letter KA */, - {0, 0, 0x69242C} /* Hiragana letter GA */, - {0, 0, 0x69242D} /* Hiragana letter KI */, - {0, 0, 0x69242E} /* Hiragana letter GI */, - {0, 0, 0x69242F} /* Hiragana letter KU */, - {0, 0, 0x692430} /* Hiragana letter GU */, - {0, 0, 0x692431} /* Hiragana letter KE */, - {0, 0, 0x692432} /* Hiragana letter GE */, - {0, 0, 0x692433} /* Hiragana letter KO */, - {0, 0, 0x692434} /* Hiragana letter GO */, - {0, 0, 0x692435} /* Hiragana letter SA */, - {0, 0, 0x692436} /* Hiragana letter ZA */, - {0, 0, 0x692437} /* Hiragana letter SI */, - {0, 0, 0x692438} /* Hiragana letter ZI */, - {0, 0, 0x692439} /* Hiragana letter SU */, - {0, 0, 0x69243A} /* Hiragana letter ZU */, - {0, 0, 0x69243B} /* Hiragana letter SE */, - {0, 0, 0x69243C} /* Hiragana letter ZE */, - {0, 0, 0x69243D} /* Hiragana letter SO */, - {0, 0, 0x69243E} /* Hiragana letter ZO */, - {0, 0, 0x69243F} /* Hiragana letter TA */, - {0, 0, 0x692440} /* Hiragana letter DA */, - {0, 0, 0x692441} /* Hiragana letter TI */, - {0, 0, 0x692442} /* Hiragana letter DI */, - {0, 0, 0x692443} /* Hiragana letter small TU */, - {0, 0, 0x692444} /* Hiragana letter TU */, - {0, 0, 0x692445} /* Hiragana letter DU */, - {0, 0, 0x692446} /* Hiragana letter TE */, - {0, 0, 0x692447} /* Hiragana letter DE */, - {0, 0, 0x692448} /* Hiragana letter TO */, - {0, 0, 0x692449} /* Hiragana letter DO */, - {0, 0, 0x69244A} /* Hiragana letter NA */, - {0, 0, 0x69244B} /* Hiragana letter NI */, - {0, 0, 0x69244C} /* Hiragana letter NU */, - {0, 0, 0x69244D} /* Hiragana letter NE */, - {0, 0, 0x69244E} /* Hiragana letter NO */, - {0, 0, 0x69244F} /* Hiragana letter HA */, - {0, 0, 0x692450} /* Hiragana letter BA */, - {0, 0, 0x692451} /* Hiragana letter PA */, - {0, 0, 0x692452} /* Hiragana letter HI */, - {0, 0, 0x692453} /* Hiragana letter BI */, - {0, 0, 0x692454} /* Hiragana letter PI */, - {0, 0, 0x692455} /* Hiragana letter HU */, - {0, 0, 0x692456} /* Hiragana letter BU */, - {0, 0, 0x692457} /* Hiragana letter PU */, - {0, 0, 0x692458} /* Hiragana letter HE */, - {0, 0, 0x692459} /* Hiragana letter BE */, - {0, 0, 0x69245A} /* Hiragana letter PE */, - {0, 0, 0x69245B} /* Hiragana letter HO */, - {0, 0, 0x69245C} /* Hiragana letter BO */, - {0, 0, 0x69245D} /* Hiragana letter PO */, - {0, 0, 0x69245E} /* Hiragana letter MA */, - {0, 0, 0x69245F} /* Hiragana letter MI */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page340 = { - 0, marc8r_31page340_dir -}; -/* PAGE 339 */ -struct yaz_iconv_trie_dir marc8r_31page339_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x692540} /* Katakana letter DA */, - {0, 0, 0x692541} /* Katakana letter TI */, - {0, 0, 0x692542} /* Katakana letter DI */, - {0, 0, 0x692543} /* Katakana letter small TU */, - {0, 0, 0x692544} /* Katakana letter TU */, - {0, 0, 0x692545} /* Katakana letter DU */, - {0, 0, 0x692546} /* Katakana letter TE */, - {0, 0, 0x692547} /* Katakana letter DE */, - {0, 0, 0x692548} /* Katakana letter TO */, - {0, 0, 0x692549} /* Katakana letter DO */, - {0, 0, 0x69254A} /* Katakana letter NA */, - {0, 0, 0x69254B} /* Katakana letter NI */, - {0, 0, 0x69254C} /* Katakana letter NU */, - {0, 0, 0x69254D} /* Katakana letter NE */, - {0, 0, 0x69254E} /* Katakana letter NO */, - {0, 0, 0x69254F} /* Katakana letter HA */, - {0, 0, 0x692550} /* Katakana letter BA */, - {0, 0, 0x692551} /* Katakana letter PA */, - {0, 0, 0x692552} /* Katakana letter HI */, - {0, 0, 0x692553} /* Katakana letter BI */, - {0, 0, 0x692554} /* Katakana letter PI */, - {0, 0, 0x692555} /* Katakana letter HU */, - {0, 0, 0x692556} /* Katakana letter BU */, - {0, 0, 0x692557} /* Katakana letter PU */, - {0, 0, 0x692558} /* Katakana letter HE */, - {0, 0, 0x692559} /* Katakana letter BE */, - {0, 0, 0x69255A} /* Katakana letter PE */, - {0, 0, 0x69255B} /* Katakana letter HO */, - {0, 0, 0x69255C} /* Katakana letter BO */, - {0, 0, 0x69255D} /* Katakana letter PO */, - {0, 0, 0x69255E} /* Katakana letter MA */, - {0, 0, 0x69255F} /* Katakana letter MI */, - {0, 0, 0x692560} /* Katakana letter MU */, - {0, 0, 0x692561} /* Katakana letter ME */, - {0, 0, 0x692562} /* Katakana letter MO */, - {0, 0, 0x692563} /* Katakana letter small YA */, - {0, 0, 0x692564} /* Katakana letter YA */, - {0, 0, 0x692565} /* Katakana letter small YU */, - {0, 0, 0x692566} /* Katakana letter YU */, - {0, 0, 0x692567} /* Katakana letter small YO */, - {0, 0, 0x692568} /* Katakana letter YO */, - {0, 0, 0x692569} /* Katakana letter RA */, - {0, 0, 0x69256A} /* Katakana letter RI */, - {0, 0, 0x69256B} /* Katakana letter RU */, - {0, 0, 0x69256C} /* Katakana letter RE */, - {0, 0, 0x69256D} /* Katakana letter RO */, - {0, 0, 0x69256E} /* Katakana letter small WA */, - {0, 0, 0x69256F} /* Katakana letter WA */, - {0, 0, 0x692570} /* Katakana letter WI */, - {0, 0, 0x692571} /* Katakana letter WE */, - {0, 0, 0x692572} /* Katakana letter WO */, - {0, 0, 0x692573} /* Katakana letter N */, - {0, 0, 0x692574} /* Katakana letter VU */, - {0, 0, 0x692575} /* Katakana letter small KA */, - {0, 0, 0x692576} /* Katakana letter small KE */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x692126} /* Ideographic centered point */, - {0, 0, 0x69213C} /* Vowel elongation mark for kana */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page339 = { - 0, marc8r_31page339_dir -}; -/* PAGE 338 */ -struct yaz_iconv_trie_flat marc8r_31page338_flat[] = { - {"\x9E", 0, 0x2D3165}, /* East Asian ideograph (Unicode CJK Extension A) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page338 = { - marc8r_31page338_flat, 0 -}; -/* PAGE 337 */ -struct yaz_iconv_trie_flat marc8r_31page337_flat[] = { - {"\xA1", 0, 0x217E5B}, /* East Asian ideograph (Unicode CJK Extension A) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page337 = { - marc8r_31page337_flat, 0 -}; -/* PAGE 336 */ -struct yaz_iconv_trie_dir marc8r_31page336_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x212320} /* Ideographic space in some implementations */, - {0, 0, 0x212B35} /* Ideographic comma */, - {0, 0, 0x212B33} /* Ideographic full stop */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x692139} /* Ideographic iteration mark */, - {0, 0, 0}, - {0, 0, 0x212F30} /* East Asian ideograph (number zero) */, - {0, 0, 0x692152} /* Ideographic less than sign */, - {0, 0, 0x692153} /* Ideographic greater than sign */, - {0, 0, 0x692154} /* Ideographic left double angle bracket */, - {0, 0, 0x692155} /* Ideographic right double angle bracket */, - {0, 0, 0x212B25} /* Ideographic left corner bracket */, - {0, 0, 0x212B26} /* Ideographic right corner bracket */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x212A2D} /* EACC component character */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page336 = { - 0, marc8r_31page336_dir -}; -/* PAGE 335 */ -struct yaz_iconv_trie_flat marc8r_31page335_flat[] = { - {"\x81", 0, 0x276176}, /* East Asian ideograph */ - {"\x8D", 0, 0x276177}, /* East Asian ideograph */ - {"\x9B", 0, 0x276178}, /* East Asian ideograph */ - {"\x9C", 0, 0x276179}, /* East Asian ideograph */ - {"\x94", 0, 0x27617A}, /* East Asian ideograph */ - {"\xA8", 0, 0x27617B}, /* East Asian ideograph */ - {"\xA4", 0, 0x27617C}, /* East Asian ideograph */ - {"\xB8", 0, 0x27617D}, /* East Asian ideograph */ - {"\xB3", 0, 0x27617E}, /* East Asian ideograph */ - {"\xAB", 0, 0x276223}, /* East Asian ideograph */ - {"\xA2", 0, 0x276226}, /* East Asian ideograph */ - {"\x88", 0, 0x27622E}, /* East Asian ideograph */ - {"\x82", 0, 0x29565D}, /* East Asian ideograph */ - {"\x86", 0, 0x295721}, /* East Asian ideograph */ - {"\x87", 0, 0x295729}, /* East Asian ideograph */ - {"\x90", 0, 0x29572B}, /* East Asian ideograph */ - {"\x8B", 0, 0x295731}, /* East Asian ideograph */ - {"\x9E", 0, 0x295739}, /* East Asian ideograph */ - {"\x91", 0, 0x29573C}, /* East Asian ideograph */ - {"\x92", 0, 0x29573D}, /* East Asian ideograph */ - {"\x95", 0, 0x295742}, /* East Asian ideograph */ - {"\xA9", 0, 0x295756}, /* East Asian ideograph */ - {"\xA0", 0, 0x29575F}, /* East Asian ideograph */ - {"\xA7", 0, 0x29576E}, /* East Asian ideograph */ - {"\xAD", 0, 0x29577A}, /* East Asian ideograph */ - {"\xB0", 0, 0x29577C}, /* East Asian ideograph */ - {"\xAE", 0, 0x295822}, /* East Asian ideograph */ - {"\xBA", 0, 0x295825}, /* East Asian ideograph */ - {"\xB2", 0, 0x295827}, /* East Asian ideograph */ - {"\xB4", 0, 0x295828}, /* East Asian ideograph */ - {"\xB1", 0, 0x29582C}, /* East Asian ideograph */ - {"\xB7", 0, 0x29582D}, /* East Asian ideograph */ - {"\xB5", 0, 0x29582F}, /* East Asian ideograph */ - {"\xB6", 0, 0x295831}, /* East Asian ideograph */ - {"\xBB", 0, 0x295834}, /* East Asian ideograph */ - {"\xBD", 0, 0x29584B}, /* East Asian ideograph */ - {"\xA5", 0, 0x29586E}, /* East Asian ideograph */ - {"\xA3", 0, 0x295929}, /* East Asian ideograph */ - {"\x85", 0, 0x29593A}, /* East Asian ideograph */ - {"\x9F", 0, 0x29593B}, /* East Asian ideograph */ - {"\xBC", 0, 0x295940}, /* East Asian ideograph */ - {"\x8E", 0, 0x295955}, /* East Asian ideograph */ - {"\x9A", 0, 0x295958}, /* East Asian ideograph */ - {"\xA1", 0, 0x29596B}, /* East Asian ideograph */ - {"\xA6", 0, 0x4D5934}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page335 = { - marc8r_31page335_flat, 0 -}; -/* PAGE 334 */ -struct yaz_iconv_trie_dir marc8r_31page334_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x275D66} /* East Asian ideograph */, - {0, 0, 0x275E28} /* East Asian ideograph */, - {0, 0, 0x29442E} /* East Asian ideograph */, - {0, 0, 0x29442B} /* East Asian ideograph */, - {0, 0, 0x275D68} /* East Asian ideograph */, - {0, 0, 0x275D7C} /* East Asian ideograph */, - {0, 0, 0x294440} /* East Asian ideograph */, - {0, 0, 0x294441} /* East Asian ideograph */, - {0, 0, 0x275E3B} /* East Asian ideograph */, - {0, 0, 0x275D69} /* East Asian ideograph */, - {0, 0, 0x294435} /* East Asian ideograph */, - {0, 0, 0x275D6A} /* East Asian ideograph */, - {0, 0, 0x275D62} /* East Asian ideograph */, - {0, 0, 0x29436C} /* East Asian ideograph */, - {0, 0, 0x294750} /* East Asian ideograph */, - {0, 0, 0x294751} /* East Asian ideograph */, - {0, 0, 0x275D64} /* East Asian ideograph */, - {0, 0, 0x275D63} /* East Asian ideograph */, - {0, 0, 0x29436A} /* East Asian ideograph */, - {0, 0, 0x294372} /* East Asian ideograph */, - {0, 0, 0x294375} /* East Asian ideograph */, - {0, 0, 0x294466} /* East Asian ideograph */, - {0, 0, 0x29445B} /* East Asian ideograph */, - {0, 0, 0x294551} /* East Asian ideograph */, - {0, 0, 0x294568} /* East Asian ideograph */, - {0, 0, 0x275D6F} /* East Asian ideograph */, - {0, 0, 0x275D7D} /* East Asian ideograph */, - {0, 0, 0x29446D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x294471} /* East Asian ideograph */, - {0, 0, 0x294472} /* East Asian ideograph */, - {0, 0, 0x294474} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275D72} /* East Asian ideograph */, - {0, 0, 0x294478} /* East Asian ideograph */, - {0, 0, 0x275E49} /* East Asian ideograph */, - {0, 0, 0x275E22} /* East Asian ideograph */, - {0, 0, 0x275D75} /* East Asian ideograph */, - {0, 0, 0x275D76} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x294531} /* East Asian ideograph */, - {0, 0, 0x294457} /* East Asian ideograph */, - {0, 0, 0x4D472C} /* East Asian ideograph */, - {0, 0, 0x29444D} /* East Asian ideograph */, - {0, 0, 0x294458} /* East Asian ideograph */, - {0, 0, 0x275D6B} /* East Asian ideograph */, - {0, 0, 0x275D79} /* East Asian ideograph */, - {0, 0, 0x275D6D} /* East Asian ideograph */, - {0, 0, 0x275D6E} /* East Asian ideograph */, - {0, 0, 0x294532} /* East Asian ideograph */, - {0, 0, 0x275D7A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x29454D} /* East Asian ideograph */, - {0, 0, 0x275E37} /* East Asian ideograph */, - {0, 0, 0x294564} /* East Asian ideograph */, - {0, 0, 0x294567} /* East Asian ideograph */, - {0, 0, 0x29456F} /* East Asian ideograph */, - {0, 0, 0x275E23} /* East Asian ideograph */, - {0, 0, 0x455E21} /* East Asian ideograph */, - {0, 0, 0x275E24} /* East Asian ideograph */, - {0, 0, 0x29464A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275D7E} /* East Asian ideograph */, - {0, 0, 0x4D4832} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page334 = { - 0, marc8r_31page334_dir -}; -/* PAGE 333 */ -struct yaz_iconv_trie_dir marc8r_31page333_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x275D52} /* East Asian ideograph */, - {0, 0, 0x275E3D} /* East Asian ideograph */, - {0, 0, 0x275D57} /* East Asian ideograph */, - {0, 0, 0x275D58} /* East Asian ideograph */, - {0, 0, 0x275E45} /* East Asian ideograph */, - {0, 0, 0x275D55} /* East Asian ideograph */, - {0, 0, 0x29432B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x294251} /* East Asian ideograph */, - {0, 0, 0x294252} /* East Asian ideograph */, - {0, 0, 0x294255} /* East Asian ideograph */, - {0, 0, 0x294254} /* East Asian ideograph */, - {0, 0, 0x29425C} /* East Asian ideograph */, - {0, 0, 0x29426D} /* East Asian ideograph */, - {0, 0, 0x275E3F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275D5B} /* East Asian ideograph */, - {0, 0, 0x294346} /* East Asian ideograph */, - {0, 0, 0x294343} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x294349} /* East Asian ideograph */, - {0, 0, 0x294340} /* East Asian ideograph */, - {0, 0, 0x294427} /* East Asian ideograph */, - {0, 0, 0x29437D} /* East Asian ideograph */, - {0, 0, 0x275E39} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275E3E} /* East Asian ideograph */, - {0, 0, 0x275D5C} /* East Asian ideograph */, - {0, 0, 0x275D67} /* East Asian ideograph */, - {0, 0, 0x29434F} /* East Asian ideograph */, - {0, 0, 0x294350} /* East Asian ideograph */, - {0, 0, 0x294642} /* East Asian ideograph */, - {0, 0, 0x29455E} /* East Asian ideograph */, - {0, 0, 0x275D5E} /* East Asian ideograph */, - {0, 0, 0x29435B} /* East Asian ideograph */, - {0, 0, 0x29443E} /* East Asian ideograph */, - {0, 0, 0x294359} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x294767} /* East Asian ideograph */, - {0, 0, 0x275D60} /* East Asian ideograph */, - {0, 0, 0x29472F} /* East Asian ideograph */, - {0, 0, 0x294362} /* East Asian ideograph */, - {0, 0, 0x294355} /* East Asian ideograph */, - {0, 0, 0x275D5F} /* East Asian ideograph */, - {0, 0, 0x275D5D} /* East Asian ideograph */, - {0, 0, 0x275D73} /* East Asian ideograph */, - {0, 0, 0x294358} /* East Asian ideograph */, - {0, 0, 0x275D59} /* East Asian ideograph */, - {0, 0, 0x294331} /* East Asian ideograph */, - {0, 0, 0x275E2F} /* East Asian ideograph */, - {0, 0, 0x29432F} /* East Asian ideograph */, - {0, 0, 0x294732} /* East Asian ideograph */, - {0, 0, 0x294335} /* East Asian ideograph */, - {0, 0, 0x275D5A} /* East Asian ideograph */, - {0, 0, 0x294364} /* East Asian ideograph */, - {0, 0, 0x275E43} /* East Asian ideograph */, - {0, 0, 0x29473E} /* East Asian ideograph */, - {0, 0, 0x275D65} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x294469} /* East Asian ideograph */, - {0, 0, 0x294371} /* East Asian ideograph */, - {0, 0, 0x275E31} /* East Asian ideograph */, - {0, 0, 0x275E30} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page333 = { - 0, marc8r_31page333_dir -}; -/* PAGE 332 */ -struct yaz_iconv_trie_dir marc8r_31page332_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x275845} /* East Asian ideograph */, - {0, 0, 0x27593F} /* East Asian ideograph */, - {0, 0, 0x275851} /* East Asian ideograph */, - {0, 0, 0x51356A} /* East Asian ideograph */, - {0, 0, 0x27584E} /* East Asian ideograph */, - {0, 0, 0x275853} /* East Asian ideograph */, - {0, 0, 0x27593C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275854} /* East Asian ideograph */, - {0, 0, 0x275856} /* East Asian ideograph */, - {0, 0, 0x275857} /* East Asian ideograph */, - {0, 0, 0x275855} /* East Asian ideograph */, - {0, 0, 0x29337A} /* East Asian ideograph */, - {0, 0, 0x27584F} /* East Asian ideograph */, - {0, 0, 0x29323B} /* East Asian ideograph */, - {0, 0, 0x275852} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275946} /* East Asian ideograph */, - {0, 0, 0x29323C} /* East Asian ideograph */, - {0, 0, 0x293250} /* East Asian ideograph */, - {0, 0, 0x29325D} /* East Asian ideograph */, - {0, 0, 0x27585B} /* East Asian ideograph */, - {0, 0, 0x29324F} /* East Asian ideograph */, - {0, 0, 0x27585C} /* East Asian ideograph */, - {0, 0, 0x27585D} /* East Asian ideograph */, - {0, 0, 0x27585F} /* East Asian ideograph */, - {0, 0, 0x275860} /* East Asian ideograph */, - {0, 0, 0x275862} /* East Asian ideograph */, - {0, 0, 0x29325E} /* East Asian ideograph */, - {0, 0, 0x275866} /* East Asian ideograph */, - {0, 0, 0x275923} /* East Asian ideograph */, - {0, 0, 0x275868} /* East Asian ideograph */, - {0, 0, 0x275867} /* East Asian ideograph */, - {0, 0, 0x275863} /* East Asian ideograph */, - {0, 0, 0x275865} /* East Asian ideograph */, - {0, 0, 0x27585E} /* East Asian ideograph */, - {0, 0, 0x293336} /* East Asian ideograph */, - {0, 0, 0x275859} /* East Asian ideograph */, - {0, 0, 0x27585A} /* East Asian ideograph */, - {0, 0, 0x275858} /* East Asian ideograph */, - {0, 0, 0x293345} /* East Asian ideograph */, - {0, 0, 0x293256} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27586B} /* East Asian ideograph */, - {0, 0, 0x27586F} /* East Asian ideograph */, - {0, 0, 0x27586C} /* East Asian ideograph */, - {0, 0, 0x293271} /* East Asian ideograph */, - {0, 0, 0x275871} /* East Asian ideograph */, - {0, 0, 0x275873} /* East Asian ideograph */, - {0, 0, 0x275874} /* East Asian ideograph */, - {0, 0, 0x275872} /* East Asian ideograph */, - {0, 0, 0x275875} /* East Asian ideograph */, - {0, 0, 0x275869} /* East Asian ideograph */, - {0, 0, 0x27586A} /* East Asian ideograph */, - {0, 0, 0x4B3642} /* East Asian ideograph */, - {0, 0, 0x27587A} /* East Asian ideograph */, - {0, 0, 0x27587B} /* East Asian ideograph */, - {0, 0, 0x293325} /* East Asian ideograph */, - {0, 0, 0x27592E} /* East Asian ideograph */, - {0, 0, 0x27594A} /* East Asian ideograph */, - {0, 0, 0x29332C} /* East Asian ideograph */, - {0, 0, 0x293338} /* East Asian ideograph */, - {0, 0, 0x27587C} /* East Asian ideograph */, - {0, 0, 0x27587E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page332 = { - 0, marc8r_31page332_dir -}; -/* PAGE 331 */ -struct yaz_iconv_trie_dir marc8r_31page331_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x287061} /* East Asian ideograph */, - {0, 0, 0x287062} /* East Asian ideograph */, - {0, 0, 0x287065} /* East Asian ideograph */, - {0, 0, 0x275154} /* East Asian ideograph */, - {0, 0, 0x27512B} /* East Asian ideograph */, - {0, 0, 0x27512D} /* East Asian ideograph */, - {0, 0, 0x27512C} /* East Asian ideograph */, - {0, 0, 0x275171} /* East Asian ideograph */, - {0, 0, 0x275130} /* East Asian ideograph */, - {0, 0, 0x287269} /* East Asian ideograph */, - {0, 0, 0x275126} /* East Asian ideograph */, - {0, 0, 0x275128} /* East Asian ideograph */, - {0, 0, 0x27512F} /* East Asian ideograph */, - {0, 0, 0x27512A} /* East Asian ideograph */, - {0, 0, 0x275178} /* East Asian ideograph */, - {0, 0, 0x27513C} /* East Asian ideograph */, - {0, 0, 0x28706A} /* East Asian ideograph */, - {0, 0, 0x275140} /* East Asian ideograph */, - {0, 0, 0x275133} /* East Asian ideograph */, - {0, 0, 0x275134} /* East Asian ideograph */, - {0, 0, 0x4B5773} /* East Asian ideograph */, - {0, 0, 0x275173} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x287134} /* East Asian ideograph */, - {0, 0, 0x275179} /* East Asian ideograph */, - {0, 0, 0x275139} /* East Asian ideograph */, - {0, 0, 0x275136} /* East Asian ideograph */, - {0, 0, 0x287130} /* East Asian ideograph */, - {0, 0, 0x275138} /* East Asian ideograph */, - {0, 0, 0x275137} /* East Asian ideograph */, - {0, 0, 0x275132} /* East Asian ideograph */, - {0, 0, 0x275131} /* East Asian ideograph */, - {0, 0, 0x287144} /* East Asian ideograph */, - {0, 0, 0x28714D} /* East Asian ideograph */, - {0, 0, 0x27513E} /* East Asian ideograph */, - {0, 0, 0x275172} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27513F} /* East Asian ideograph */, - {0, 0, 0x4C715A} /* East Asian ideograph */, - {0, 0, 0x27517D} /* East Asian ideograph */, - {0, 0, 0x287139} /* East Asian ideograph */, - {0, 0, 0x275166} /* East Asian ideograph */, - {0, 0, 0x275155} /* East Asian ideograph */, - {0, 0, 0x275145} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275221} /* East Asian ideograph */, - {0, 0, 0x335147} /* East Asian ideograph */, - {0, 0, 0x287167} /* East Asian ideograph */, - {0, 0, 0x27514A} /* East Asian ideograph */, - {0, 0, 0x4D4D61} /* East Asian ideograph */, - {0, 0, 0x287174} /* East Asian ideograph */, - {0, 0, 0x275176} /* East Asian ideograph */, - {0, 0, 0x27514E} /* East Asian ideograph */, - {0, 0, 0x27514F} /* East Asian ideograph */, - {0, 0, 0x287178} /* East Asian ideograph */, - {0, 0, 0x4B516A} /* East Asian ideograph */, - {0, 0, 0x27514D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x28717D} /* East Asian ideograph */, - {0, 0, 0x287161} /* East Asian ideograph */, - {0, 0, 0x275141} /* East Asian ideograph */, - {0, 0, 0x275142} /* East Asian ideograph */, - {0, 0, 0x275143} /* East Asian ideograph */, - {0, 0, 0x27514C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page331 = { - 0, marc8r_31page331_dir -}; -/* PAGE 330 */ -struct yaz_iconv_trie_dir marc8r_31page330_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x23487C} /* East Asian ideograph */, - {0, 0, 0x23487B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x455D3E} /* East Asian ideograph */, - {0, 0, 0x294162} /* East Asian ideograph */, - {0, 0, 0x294161} /* East Asian ideograph */, - {0, 0, 0x275D3F} /* East Asian ideograph */, - {0, 0, 0x275D40} /* East Asian ideograph */, - {0, 0, 0x275D41} /* East Asian ideograph */, - {0, 0, 0x294164} /* East Asian ideograph */, - {0, 0, 0x294163} /* East Asian ideograph */, - {0, 0, 0x29416A} /* East Asian ideograph */, - {0, 0, 0x29416B} /* East Asian ideograph */, - {0, 0, 0x275D46} /* East Asian ideograph */, - {0, 0, 0x294222} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x294179} /* East Asian ideograph */, - {0, 0, 0x275D45} /* East Asian ideograph */, - {0, 0, 0x294475} /* East Asian ideograph */, - {0, 0, 0x294221} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275D43} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275D47} /* East Asian ideograph */, - {0, 0, 0x474236} /* East Asian ideograph */, - {0, 0, 0x294237} /* East Asian ideograph */, - {0, 0, 0x4B3C38} /* East Asian ideograph */, - {0, 0, 0x275D48} /* East Asian ideograph */, - {0, 0, 0x275D4B} /* East Asian ideograph */, - {0, 0, 0x275E21} /* East Asian ideograph */, - {0, 0, 0x275D4A} /* East Asian ideograph */, - {0, 0, 0x29442D} /* East Asian ideograph */, - {0, 0, 0x275D71} /* East Asian ideograph */, - {0, 0, 0x29424B} /* East Asian ideograph */, - {0, 0, 0x275D4D} /* East Asian ideograph */, - {0, 0, 0x275E47} /* East Asian ideograph */, - {0, 0, 0x274578} /* East Asian ideograph */, - {0, 0, 0x275D4C} /* East Asian ideograph */, - {0, 0, 0x275E29} /* East Asian ideograph */, - {0, 0, 0x275D56} /* East Asian ideograph */, - {0, 0, 0x294224} /* East Asian ideograph */, - {0, 0, 0x294225} /* East Asian ideograph */, - {0, 0, 0x294228} /* East Asian ideograph */, - {0, 0, 0x294223} /* East Asian ideograph */, - {0, 0, 0x275D49} /* East Asian ideograph */, - {0, 0, 0x294231} /* East Asian ideograph */, - {0, 0, 0x294258} /* East Asian ideograph */, - {0, 0, 0x275D70} /* East Asian ideograph */, - {0, 0, 0x294261} /* East Asian ideograph */, - {0, 0, 0x27502A} /* East Asian ideograph */, - {0, 0, 0x275D4F} /* East Asian ideograph */, - {0, 0, 0x335228} /* East Asian ideograph */, - {0, 0, 0x29425F} /* East Asian ideograph */, - {0, 0, 0x294260} /* East Asian ideograph */, - {0, 0, 0x275D51} /* East Asian ideograph */, - {0, 0, 0x275D50} /* East Asian ideograph */, - {0, 0, 0x294264} /* East Asian ideograph */, - {0, 0, 0x275E4A} /* East Asian ideograph */, - {0, 0, 0x474270} /* East Asian ideograph */, - {0, 0, 0x29426F} /* East Asian ideograph */, - {0, 0, 0x275D53} /* East Asian ideograph */, - {0, 0, 0x294274} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page330 = { - 0, marc8r_31page330_dir -}; -/* PAGE 329 */ -struct yaz_iconv_trie_flat marc8r_31page329_flat[] = { - {"\x90", 0, 0x232D42}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page329 = { - marc8r_31page329_flat, 0 -}; -/* PAGE 328 */ -struct yaz_iconv_trie_flat marc8r_31page328_flat[] = { - {"\x8A", 0, 0x21627D}, /* East Asian ideograph */ - {"\x8B", 0, 0x21627E}, /* East Asian ideograph */ - {"\x92", 0, 0x216321}, /* East Asian ideograph */ - {"\x9F", 0, 0x216322}, /* East Asian ideograph */ - {"\xA3", 0, 0x216323}, /* East Asian ideograph */ - {"\xA1", 0, 0x216324}, /* East Asian ideograph (variant of EACC 456324) */ - {"\xA6", 0, 0x216325}, /* East Asian ideograph */ - {"\x9C", 0, 0x216326}, /* East Asian ideograph */ - {"\xAC", 0, 0x216327}, /* East Asian ideograph */ - {"\xAA", 0, 0x216328}, /* East Asian ideograph */ - {"\xB7", 0, 0x216329}, /* East Asian ideograph */ - {"\xB2", 0, 0x21632A}, /* East Asian ideograph */ - {"\x81", 0, 0x235F69}, /* East Asian ideograph */ - {"\x85", 0, 0x235F6D}, /* East Asian ideograph */ - {"\x86", 0, 0x235F6F}, /* East Asian ideograph */ - {"\x88", 0, 0x235F71}, /* East Asian ideograph */ - {"\x89", 0, 0x235F73}, /* East Asian ideograph */ - {"\x8E", 0, 0x235F79}, /* East Asian ideograph */ - {"\x8F", 0, 0x235F7B}, /* East Asian ideograph */ - {"\x94", 0, 0x235F7C}, /* East Asian ideograph */ - {"\x95", 0, 0x235F7E}, /* East Asian ideograph */ - {"\x97", 0, 0x236023}, /* East Asian ideograph */ - {"\xA0", 0, 0x236028}, /* East Asian ideograph */ - {"\xAE", 0, 0x23603F}, /* East Asian ideograph */ - {"\xAF", 0, 0x236040}, /* East Asian ideograph */ - {"\xB6", 0, 0x236047}, /* East Asian ideograph */ - {"\x90", 0, 0x27627D}, /* East Asian ideograph */ - {"\xBF", 0, 0x276321}, /* East Asian ideograph */ - {"\x91", 0, 0x295F7B}, /* East Asian ideograph */ - {"\xA9", 0, 0x333623}, /* East Asian ideograph */ - {"\xA7", 0, 0x337345}, /* East Asian ideograph */ - {"\xA1", 0, 0x456324}, /* East Asian ideograph */ - {"\xA2", 0, 0x4B6324}, /* East Asian ideograph */ - {"\x84", 0, 0x4D5F70}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page328 = { - marc8r_31page328_flat, 0 -}; -/* PAGE 327 */ -struct yaz_iconv_trie_flat marc8r_31page327_flat[] = { - {"\x87", 0, 0x216273}, /* East Asian ideograph */ - {"\x8E", 0, 0x216274}, /* East Asian ideograph */ - {"\x93", 0, 0x216275}, /* East Asian ideograph */ - {"\x95", 0, 0x216276}, /* East Asian ideograph */ - {"\x99", 0, 0x216277}, /* East Asian ideograph */ - {"\xA0", 0, 0x216278}, /* East Asian ideograph */ - {"\xAC", 0, 0x216279}, /* East Asian ideograph */ - {"\xB4", 0, 0x21627A}, /* East Asian ideograph */ - {"\xBB", 0, 0x21627B}, /* East Asian ideograph */ - {"\xBE", 0, 0x21627C}, /* East Asian ideograph */ - {"\x82", 0, 0x235E7D}, /* East Asian ideograph */ - {"\x8F", 0, 0x235F2F}, /* East Asian ideograph */ - {"\x90", 0, 0x235F31}, /* East Asian ideograph */ - {"\x92", 0, 0x235F32}, /* East Asian ideograph */ - {"\x96", 0, 0x235F33}, /* East Asian ideograph */ - {"\x97", 0, 0x235F34}, /* East Asian ideograph */ - {"\x9A", 0, 0x235F37}, /* East Asian ideograph */ - {"\xA2", 0, 0x235F45}, /* East Asian ideograph */ - {"\xAB", 0, 0x235F48}, /* East Asian ideograph */ - {"\xA6", 0, 0x235F49}, /* East Asian ideograph */ - {"\xAF", 0, 0x235F53}, /* East Asian ideograph */ - {"\xB9", 0, 0x235F5E}, /* East Asian ideograph */ - {"\xB7", 0, 0x235F5F}, /* East Asian ideograph */ - {"\xBD", 0, 0x235F64}, /* East Asian ideograph */ - {"\x8B", 0, 0x295E7C}, /* East Asian ideograph */ - {"\x8D", 0, 0x295F2B}, /* East Asian ideograph */ - {"\x84", 0, 0x2D5664}, /* East Asian ideograph */ - {"\x85", 0, 0x2D5675}, /* East Asian ideograph */ - {"\x88", 0, 0x2D622C}, /* East Asian ideograph */ - {"\xA1", 0, 0x4B6278}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page327 = { - marc8r_31page327_flat, 0 -}; -/* PAGE 326 */ -struct yaz_iconv_trie_flat marc8r_31page326_flat[] = { - {"\x83", 0, 0x216262}, /* East Asian ideograph */ - {"\x8D", 0, 0x216263}, /* East Asian ideograph */ - {"\x8E", 0, 0x216264}, /* East Asian ideograph */ - {"\x8F", 0, 0x216265}, /* East Asian ideograph */ - {"\x91", 0, 0x216266}, /* East Asian ideograph */ - {"\x98", 0, 0x216268}, /* East Asian ideograph */ - {"\x94", 0, 0x216269}, /* East Asian ideograph */ - {"\x9E", 0, 0x21626A}, /* East Asian ideograph */ - {"\x9C", 0, 0x21626B}, /* East Asian ideograph */ - {"\x9B", 0, 0x21626C}, /* East Asian ideograph */ - {"\x9D", 0, 0x21626D}, /* East Asian ideograph */ - {"\xA0", 0, 0x21626E}, /* East Asian ideograph */ - {"\xA8", 0, 0x21626F}, /* East Asian ideograph */ - {"\xAF", 0, 0x216270}, /* East Asian ideograph */ - {"\xB4", 0, 0x216271}, /* East Asian ideograph */ - {"\xB7", 0, 0x216272}, /* East Asian ideograph */ - {"\x81", 0, 0x235E30}, /* East Asian ideograph */ - {"\x86", 0, 0x235E35}, /* East Asian ideograph */ - {"\x88", 0, 0x235E37}, /* East Asian ideograph */ - {"\x8C", 0, 0x235E42}, /* East Asian ideograph */ - {"\x90", 0, 0x235E4A}, /* East Asian ideograph */ - {"\x93", 0, 0x235E4C}, /* East Asian ideograph */ - {"\x9A", 0, 0x235E53}, /* East Asian ideograph */ - {"\x9F", 0, 0x235E55}, /* East Asian ideograph */ - {"\xA3", 0, 0x235E57}, /* East Asian ideograph */ - {"\xA5", 0, 0x235E59}, /* East Asian ideograph */ - {"\xA7", 0, 0x235E5C}, /* East Asian ideograph */ - {"\xAE", 0, 0x235E60}, /* East Asian ideograph */ - {"\xB0", 0, 0x235E66}, /* East Asian ideograph */ - {"\xB6", 0, 0x235E6F}, /* East Asian ideograph */ - {"\xB9", 0, 0x235E74}, /* East Asian ideograph */ - {"\xBB", 0, 0x235E76}, /* East Asian ideograph */ - {"\xBC", 0, 0x235E77}, /* East Asian ideograph */ - {"\xBD", 0, 0x235E7A}, /* East Asian ideograph */ - {"\xBE", 0, 0x235E7B}, /* East Asian ideograph */ - {"\xBF", 0, 0x235E7C}, /* East Asian ideograph */ - {"\xA9", 0, 0x276272}, /* East Asian ideograph */ - {"\xAA", 0, 0x295E6A}, /* East Asian ideograph */ - {"\xBE", 0, 0x295E7A}, /* East Asian ideograph */ - {"\x84", 0, 0x2D6262}, /* East Asian ideograph */ - {"\x89", 0, 0x2F5E42}, /* East Asian ideograph */ - {"\x92", 0, 0x4B6266}, /* East Asian ideograph */ - {"\x99", 0, 0x4B6268}, /* East Asian ideograph */ - {"\xA2", 0, 0x707771}, /* East Asian ideograph (Version J extension) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page326 = { - marc8r_31page326_flat, 0 -}; -/* PAGE 325 */ -struct yaz_iconv_trie_flat marc8r_31page325_flat[] = { - {"\x82", 0, 0x216254}, /* East Asian ideograph */ - {"\x8B", 0, 0x216255}, /* East Asian ideograph */ - {"\x97", 0, 0x216256}, /* East Asian ideograph */ - {"\x92", 0, 0x216257}, /* East Asian ideograph */ - {"\x93", 0, 0x216258}, /* East Asian ideograph */ - {"\x9D", 0, 0x216259}, /* East Asian ideograph */ - {"\x9F", 0, 0x21625A}, /* East Asian ideograph */ - {"\xA5", 0, 0x21625B}, /* East Asian ideograph */ - {"\xA9", 0, 0x21625C}, /* East Asian ideograph */ - {"\xB4", 0, 0x21625D}, /* East Asian ideograph */ - {"\xB5", 0, 0x21625E}, /* East Asian ideograph */ - {"\xBB", 0, 0x21625F}, /* East Asian ideograph */ - {"\xBC", 0, 0x216260}, /* East Asian ideograph */ - {"\xBE", 0, 0x216261}, /* East Asian ideograph */ - {"\x80", 0, 0x235D47}, /* East Asian ideograph */ - {"\x83", 0, 0x235D48}, /* East Asian ideograph */ - {"\x84", 0, 0x235D49}, /* East Asian ideograph */ - {"\x88", 0, 0x235D4B}, /* East Asian ideograph */ - {"\x87", 0, 0x235D4F}, /* East Asian ideograph */ - {"\x90", 0, 0x235D55}, /* East Asian ideograph */ - {"\x8C", 0, 0x235D58}, /* East Asian ideograph */ - {"\x95", 0, 0x235D5A}, /* East Asian ideograph */ - {"\x91", 0, 0x235D5C}, /* East Asian ideograph */ - {"\x9B", 0, 0x235D5D}, /* East Asian ideograph */ - {"\x9E", 0, 0x235D66}, /* East Asian ideograph */ - {"\xAD", 0, 0x235D77}, /* East Asian ideograph */ - {"\xAF", 0, 0x235D79}, /* East Asian ideograph */ - {"\xB0", 0, 0x235D7A}, /* East Asian ideograph */ - {"\xA6", 0, 0x27625B}, /* East Asian ideograph */ - {"\xB8", 0, 0x27625C}, /* East Asian ideograph */ - {"\xA4", 0, 0x2F5D49}, /* East Asian ideograph */ - {"\xAA", 0, 0x33625E}, /* East Asian ideograph */ - {"\xB8", 0, 0x4B625C}, /* East Asian ideograph (variant of EACC 27625C) */ - {"\xBD", 0, 0x4B6260}, /* East Asian ideograph */ - {"\x81", 0, 0x4D5D49}, /* East Asian ideograph */ - {"\xBF", 0, 0x694B7B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page325 = { - marc8r_31page325_flat, 0 -}; -/* PAGE 324 */ -struct yaz_iconv_trie_flat marc8r_31page324_flat[] = { - {"\xB9", 0, 0x216250}, /* East Asian ideograph */ - {"\xBD", 0, 0x216251}, /* East Asian ideograph */ - {"\xBC", 0, 0x216252}, /* East Asian ideograph */ - {"\xBF", 0, 0x216253}, /* East Asian ideograph */ - {"\xB5", 0, 0x235D3C}, /* East Asian ideograph */ - {"\xBA", 0, 0x235D42}, /* East Asian ideograph */ - {"\xBB", 0, 0x235D43}, /* East Asian ideograph */ - {"\x89", 0, 0x27623E}, /* East Asian ideograph */ - {"\x83", 0, 0x27623F}, /* East Asian ideograph */ - {"\x84", 0, 0x276240}, /* East Asian ideograph */ - {"\x85", 0, 0x276241}, /* East Asian ideograph */ - {"\x91", 0, 0x276242}, /* East Asian ideograph */ - {"\x8A", 0, 0x276243}, /* East Asian ideograph */ - {"\x8C", 0, 0x276244}, /* East Asian ideograph */ - {"\x8F", 0, 0x276245}, /* East Asian ideograph */ - {"\xA4", 0, 0x276246}, /* East Asian ideograph */ - {"\x9E", 0, 0x276248}, /* East Asian ideograph */ - {"\xA7", 0, 0x276249}, /* East Asian ideograph */ - {"\xB0", 0, 0x27624C}, /* East Asian ideograph */ - {"\xAD", 0, 0x27624D}, /* East Asian ideograph */ - {"\xA6", 0, 0x27624E}, /* East Asian ideograph */ - {"\x88", 0, 0x295A70}, /* East Asian ideograph */ - {"\x81", 0, 0x295A75}, /* East Asian ideograph */ - {"\x86", 0, 0x295B2A}, /* East Asian ideograph */ - {"\x8E", 0, 0x295B52}, /* East Asian ideograph */ - {"\x9C", 0, 0x295B59}, /* East Asian ideograph */ - {"\x9B", 0, 0x295B5C}, /* East Asian ideograph */ - {"\x95", 0, 0x295B60}, /* East Asian ideograph */ - {"\x97", 0, 0x295B6B}, /* East Asian ideograph */ - {"\x8B", 0, 0x295B6C}, /* East Asian ideograph */ - {"\xA3", 0, 0x295B77}, /* East Asian ideograph */ - {"\x9A", 0, 0x295B79}, /* East Asian ideograph */ - {"\x98", 0, 0x295C28}, /* East Asian ideograph */ - {"\xA8", 0, 0x295C47}, /* East Asian ideograph */ - {"\x87", 0, 0x295C49}, /* East Asian ideograph */ - {"\xAB", 0, 0x295C57}, /* East Asian ideograph */ - {"\xAC", 0, 0x295C5B}, /* East Asian ideograph */ - {"\xA9", 0, 0x295C65}, /* East Asian ideograph */ - {"\xAA", 0, 0x295C6C}, /* East Asian ideograph */ - {"\xB1", 0, 0x295D29}, /* East Asian ideograph */ - {"\xB3", 0, 0x295D3A}, /* East Asian ideograph */ - {"\x82", 0, 0x295D3B}, /* East Asian ideograph */ - {"\xBE", 0, 0x295D42}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page324 = { - marc8r_31page324_flat, 0 -}; -/* PAGE 323 */ -struct yaz_iconv_trie_flat marc8r_31page323_flat[] = { - {"\x9A", 0, 0x21624E}, /* East Asian ideograph */ - {"\x9E", 0, 0x21624F}, /* East Asian ideograph */ - {"\x82", 0, 0x225021}, /* East Asian ideograph */ - {"\x87", 0, 0x235C71}, /* East Asian ideograph */ - {"\x8E", 0, 0x235D27}, /* East Asian ideograph */ - {"\x91", 0, 0x235D2B}, /* East Asian ideograph */ - {"\x95", 0, 0x235D36}, /* East Asian ideograph */ - {"\x98", 0, 0x235D37}, /* East Asian ideograph */ - {"\x9C", 0, 0x235D39}, /* East Asian ideograph */ - {"\x9B", 0, 0x235D3A}, /* East Asian ideograph */ - {"\x9D", 0, 0x235D3B}, /* East Asian ideograph */ - {"\xA1", 0, 0x275F4C}, /* East Asian ideograph */ - {"\x9F", 0, 0x27622F}, /* East Asian ideograph */ - {"\xA0", 0, 0x276230}, /* East Asian ideograph */ - {"\xA2", 0, 0x276231}, /* East Asian ideograph */ - {"\xA3", 0, 0x276232}, /* East Asian ideograph */ - {"\xA9", 0, 0x276234}, /* East Asian ideograph */ - {"\xA6", 0, 0x276235}, /* East Asian ideograph */ - {"\xB5", 0, 0x276236}, /* East Asian ideograph */ - {"\xAA", 0, 0x276237}, /* East Asian ideograph */ - {"\xAD", 0, 0x276238}, /* East Asian ideograph */ - {"\xAF", 0, 0x276239}, /* East Asian ideograph */ - {"\xB3", 0, 0x27623A}, /* East Asian ideograph */ - {"\xBF", 0, 0x27623C}, /* East Asian ideograph */ - {"\xBD", 0, 0x27623D}, /* East Asian ideograph */ - {"\xA5", 0, 0x27624A}, /* East Asian ideograph */ - {"\xB6", 0, 0x27624B}, /* East Asian ideograph */ - {"\xBE", 0, 0x27624F}, /* East Asian ideograph */ - {"\xA8", 0, 0x295A28}, /* East Asian ideograph */ - {"\xB2", 0, 0x295A44}, /* East Asian ideograph */ - {"\xB1", 0, 0x295A48}, /* East Asian ideograph */ - {"\xB8", 0, 0x295A59}, /* East Asian ideograph */ - {"\xB9", 0, 0x295A65}, /* East Asian ideograph */ - {"\xBA", 0, 0x295A68}, /* East Asian ideograph */ - {"\xAB", 0, 0x295B35}, /* East Asian ideograph */ - {"\xB7", 0, 0x295C3E}, /* East Asian ideograph */ - {"\xAC", 0, 0x295D36}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page323 = { - marc8r_31page323_flat, 0 -}; -/* PAGE 322 */ -struct yaz_iconv_trie_flat marc8r_31page322_flat[] = { - {"\x82", 0, 0x216248}, /* East Asian ideograph */ - {"\x93", 0, 0x216249}, /* East Asian ideograph */ - {"\x97", 0, 0x21624A}, /* East Asian ideograph */ - {"\xA5", 0, 0x21624B}, /* East Asian ideograph */ - {"\xB9", 0, 0x21624C}, /* East Asian ideograph */ - {"\xBA", 0, 0x21624D}, /* East Asian ideograph */ - {"\x80", 0, 0x235B79}, /* East Asian ideograph */ - {"\x81", 0, 0x235B7A}, /* East Asian ideograph */ - {"\x8F", 0, 0x235B7E}, /* East Asian ideograph */ - {"\x87", 0, 0x235C22}, /* East Asian ideograph */ - {"\x83", 0, 0x235C27}, /* East Asian ideograph */ - {"\x9F", 0, 0x235C3A}, /* East Asian ideograph */ - {"\x99", 0, 0x235C3E}, /* East Asian ideograph */ - {"\x96", 0, 0x235C45}, /* East Asian ideograph */ - {"\x9E", 0, 0x235C46}, /* East Asian ideograph */ - {"\xA9", 0, 0x235C4F}, /* East Asian ideograph */ - {"\xB2", 0, 0x235C57}, /* East Asian ideograph */ - {"\xB8", 0, 0x235C5B}, /* East Asian ideograph */ - {"\xBC", 0, 0x235C5C}, /* East Asian ideograph */ - {"\xAB", 0, 0x235C5F}, /* East Asian ideograph */ - {"\xAF", 0, 0x235C65}, /* East Asian ideograph */ - {"\xAD", 0, 0x235C6A}, /* East Asian ideograph */ - {"\xA6", 0, 0x235C6C}, /* East Asian ideograph */ - {"\xAE", 0, 0x235C6D}, /* East Asian ideograph */ - {"\xBD", 0, 0x235C7E}, /* East Asian ideograph */ - {"\x84", 0, 0x2D5F4C}, /* East Asian ideograph */ - {"\xB0", 0, 0x3F4A28}, /* East Asian ideograph */ - {"\x86", 0, 0x4D5B7E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page322 = { - marc8r_31page322_flat, 0 -}; -/* PAGE 321 */ -struct yaz_iconv_trie_flat marc8r_31page321_flat[] = { - {"\x89", 0, 0x216242}, /* East Asian ideograph */ - {"\xB4", 0, 0x216246}, /* East Asian ideograph */ - {"\xAF", 0, 0x216247}, /* East Asian ideograph */ - {"\x8A", 0, 0x235B2E}, /* East Asian ideograph */ - {"\x87", 0, 0x235B35}, /* East Asian ideograph */ - {"\x83", 0, 0x235B4F}, /* East Asian ideograph */ - {"\xA9", 0, 0x235B59}, /* East Asian ideograph */ - {"\x92", 0, 0x235B5E}, /* East Asian ideograph */ - {"\x98", 0, 0x235B60}, /* East Asian ideograph */ - {"\xA4", 0, 0x235B66}, /* East Asian ideograph */ - {"\xAA", 0, 0x235B67}, /* East Asian ideograph */ - {"\xA1", 0, 0x235B6A}, /* East Asian ideograph */ - {"\x9A", 0, 0x235B6B}, /* East Asian ideograph */ - {"\x96", 0, 0x235B70}, /* East Asian ideograph */ - {"\xB1", 0, 0x235B74}, /* East Asian ideograph */ - {"\xB6", 0, 0x235B76}, /* East Asian ideograph */ - {"\xBC", 0, 0x235B77}, /* East Asian ideograph */ - {"\xB8", 0, 0x235B7B}, /* East Asian ideograph */ - {"\xBA", 0, 0x235B7C}, /* East Asian ideograph */ - {"\xBB", 0, 0x235C28}, /* East Asian ideograph */ - {"\xB9", 0, 0x235C32}, /* East Asian ideograph */ - {"\xAC", 0, 0x235C34}, /* East Asian ideograph */ - {"\xB2", 0, 0x235C36}, /* East Asian ideograph */ - {"\x8F", 0, 0x4B5F4C}, /* East Asian ideograph */ - {"\xAB", 0, 0x4D5B35}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page321 = { - marc8r_31page321_flat, 0 -}; -/* PAGE 320 */ -struct yaz_iconv_trie_flat marc8r_31page320_flat[] = { - {"\xA1", 0, 0x21623E}, /* East Asian ideograph */ - {"\x91", 0, 0x21623F}, /* East Asian ideograph */ - {"\xA0", 0, 0x216240}, /* East Asian ideograph */ - {"\x9D", 0, 0x216241}, /* East Asian ideograph */ - {"\xB2", 0, 0x216243}, /* East Asian ideograph */ - {"\xAA", 0, 0x216244}, /* East Asian ideograph */ - {"\xAC", 0, 0x216245}, /* East Asian ideograph */ - {"\x81", 0, 0x235A4F}, /* East Asian ideograph */ - {"\x82", 0, 0x235A68}, /* East Asian ideograph */ - {"\x80", 0, 0x235A69}, /* East Asian ideograph */ - {"\x9C", 0, 0x235A70}, /* East Asian ideograph */ - {"\x93", 0, 0x235A75}, /* East Asian ideograph */ - {"\x99", 0, 0x235A7B}, /* East Asian ideograph */ - {"\x9A", 0, 0x235B26}, /* East Asian ideograph */ - {"\x92", 0, 0x235B2A}, /* East Asian ideograph */ - {"\xB7", 0, 0x235B2C}, /* East Asian ideograph */ - {"\xBA", 0, 0x235B2F}, /* East Asian ideograph */ - {"\xB8", 0, 0x235B3F}, /* East Asian ideograph */ - {"\xBE", 0, 0x235B42}, /* East Asian ideograph */ - {"\xA9", 0, 0x235B47}, /* East Asian ideograph */ - {"\xBB", 0, 0x235B4D}, /* East Asian ideograph */ - {"\xAF", 0, 0x235B52}, /* East Asian ideograph */ - {"\xB6", 0, 0x2D6235}, /* East Asian ideograph */ - {"\x9E", 0, 0x2D6241}, /* East Asian ideograph */ - {"\x84", 0, 0x2F5A48}, /* East Asian ideograph */ - {"\xB0", 0, 0x335F49}, /* East Asian ideograph */ - {"\x89", 0, 0x4B624F}, /* East Asian ideograph */ - {"\x86", 0, 0x4D5A6C}, /* East Asian ideograph */ - {"\x90", 0, 0x4D5C6B}, /* East Asian ideograph */ - {"\x88", 0, 0x69727E}, /* East Asian ideograph */ - {"\xA4", 0, 0x697323}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page320 = { - marc8r_31page320_flat, 0 -}; -/* PAGE 319 */ -struct yaz_iconv_trie_flat marc8r_31page319_flat[] = { - {"\x86", 0, 0x216234}, /* East Asian ideograph */ - {"\x89", 0, 0x216235}, /* East Asian ideograph */ - {"\x95", 0, 0x216236}, /* East Asian ideograph */ - {"\xA3", 0, 0x216237}, /* East Asian ideograph */ - {"\xA8", 0, 0x216238}, /* East Asian ideograph */ - {"\xA6", 0, 0x216239}, /* East Asian ideograph */ - {"\x9B", 0, 0x21623A}, /* East Asian ideograph */ - {"\x92", 0, 0x21623B}, /* East Asian ideograph (variant of EACC 4B623B) */ - {"\xBB", 0, 0x21623C}, /* East Asian ideograph */ - {"\xBF", 0, 0x21623D}, /* East Asian ideograph */ - {"\x82", 0, 0x235A21}, /* East Asian ideograph */ - {"\x83", 0, 0x235A22}, /* East Asian ideograph */ - {"\x84", 0, 0x235A24}, /* East Asian ideograph */ - {"\x87", 0, 0x235A28}, /* East Asian ideograph */ - {"\xAA", 0, 0x235A2F}, /* East Asian ideograph */ - {"\xA5", 0, 0x235A30}, /* East Asian ideograph */ - {"\x9E", 0, 0x235A3F}, /* East Asian ideograph */ - {"\x9D", 0, 0x235A44}, /* East Asian ideograph */ - {"\x9F", 0, 0x235A48}, /* East Asian ideograph */ - {"\xB6", 0, 0x235A53}, /* East Asian ideograph */ - {"\xBE", 0, 0x235A63}, /* East Asian ideograph */ - {"\xB0", 0, 0x235A65}, /* East Asian ideograph */ - {"\xBD", 0, 0x235A6B}, /* East Asian ideograph */ - {"\x88", 0, 0x335F43}, /* East Asian ideograph */ - {"\x92", 0, 0x4B623B}, /* East Asian ideograph */ - {"\xAC", 0, 0x4B6247}, /* East Asian ideograph */ - {"\xAB", 0, 0x693C32}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page319 = { - marc8r_31page319_flat, 0 -}; -/* PAGE 318 */ -struct yaz_iconv_trie_flat marc8r_31page318_flat[] = { - {"\xA5", 0, 0x21622F}, /* East Asian ideograph */ - {"\xA9", 0, 0x216230}, /* East Asian ideograph */ - {"\xB6", 0, 0x216231}, /* East Asian ideograph */ - {"\xB4", 0, 0x216232}, /* East Asian ideograph */ - {"\xB3", 0, 0x216233}, /* East Asian ideograph */ - {"\xA7", 0, 0x235973}, /* East Asian ideograph */ - {"\xB0", 0, 0x235974}, /* East Asian ideograph */ - {"\xB2", 0, 0x235977}, /* East Asian ideograph */ - {"\xB7", 0, 0x235A23}, /* East Asian ideograph */ - {"\xB8", 0, 0x235A2C}, /* East Asian ideograph */ - {"\x83", 0, 0x276221}, /* East Asian ideograph */ - {"\x85", 0, 0x276222}, /* East Asian ideograph */ - {"\x8D", 0, 0x276224}, /* East Asian ideograph */ - {"\x8F", 0, 0x276225}, /* East Asian ideograph */ - {"\x94", 0, 0x276227}, /* East Asian ideograph */ - {"\x97", 0, 0x276228}, /* East Asian ideograph */ - {"\x9D", 0, 0x276229}, /* East Asian ideograph */ - {"\x9E", 0, 0x27622A}, /* East Asian ideograph */ - {"\x9C", 0, 0x27622B}, /* East Asian ideograph */ - {"\x96", 0, 0x27622C}, /* East Asian ideograph */ - {"\x8A", 0, 0x29583E}, /* East Asian ideograph */ - {"\x84", 0, 0x295854}, /* East Asian ideograph */ - {"\x86", 0, 0x295859}, /* East Asian ideograph */ - {"\x87", 0, 0x29585C}, /* East Asian ideograph */ - {"\x8B", 0, 0x29586A}, /* East Asian ideograph */ - {"\x8E", 0, 0x295871}, /* East Asian ideograph */ - {"\x99", 0, 0x295921}, /* East Asian ideograph */ - {"\x8C", 0, 0x295925}, /* East Asian ideograph */ - {"\x95", 0, 0x295928}, /* East Asian ideograph */ - {"\x93", 0, 0x29592A}, /* East Asian ideograph */ - {"\x98", 0, 0x295932}, /* East Asian ideograph */ - {"\x9F", 0, 0x295938}, /* East Asian ideograph */ - {"\xA2", 0, 0x29594F}, /* East Asian ideograph */ - {"\xAB", 0, 0x2D5F43}, /* East Asian ideograph */ - {"\xAC", 0, 0x2F5973}, /* East Asian ideograph */ - {"\x90", 0, 0x4D5875}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page318 = { - marc8r_31page318_flat, 0 -}; -/* PAGE 317 */ -struct yaz_iconv_trie_flat marc8r_31page317_flat[] = { - {"\x94", 0, 0x216229}, /* East Asian ideograph */ - {"\x97", 0, 0x21622A}, /* East Asian ideograph */ - {"\x96", 0, 0x21622B}, /* East Asian ideograph */ - {"\x89", 0, 0x21622C}, /* East Asian ideograph */ - {"\xB7", 0, 0x21622D}, /* East Asian ideograph */ - {"\xB8", 0, 0x21622E}, /* East Asian ideograph */ - {"\x86", 0, 0x23587E}, /* East Asian ideograph */ - {"\x84", 0, 0x235926}, /* East Asian ideograph */ - {"\x88", 0, 0x235928}, /* East Asian ideograph */ - {"\x87", 0, 0x235930}, /* East Asian ideograph */ - {"\x92", 0, 0x235938}, /* East Asian ideograph */ - {"\x98", 0, 0x23593B}, /* East Asian ideograph */ - {"\x91", 0, 0x235945}, /* East Asian ideograph */ - {"\xA3", 0, 0x235949}, /* East Asian ideograph */ - {"\xA7", 0, 0x23594F}, /* East Asian ideograph */ - {"\x9F", 0, 0x235955}, /* East Asian ideograph */ - {"\xA0", 0, 0x235956}, /* East Asian ideograph */ - {"\xAD", 0, 0x235958}, /* East Asian ideograph */ - {"\xA8", 0, 0x23595B}, /* East Asian ideograph */ - {"\xAF", 0, 0x23595C}, /* East Asian ideograph */ - {"\xAE", 0, 0x23595E}, /* East Asian ideograph */ - {"\xBA", 0, 0x23596B}, /* East Asian ideograph */ - {"\xBC", 0, 0x276174}, /* East Asian ideograph */ - {"\xBF", 0, 0x276175}, /* East Asian ideograph */ - {"\x93", 0, 0x2D6229}, /* East Asian ideograph */ - {"\x91", 0, 0x2F585C}, /* East Asian ideograph (unrelated variant of EACC 235945) */ - {"\xBB", 0, 0x336179}, /* East Asian ideograph */ - {"\xB6", 0, 0x355739}, /* East Asian ideograph */ - {"\x9A", 0, 0x697265}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page317 = { - marc8r_31page317_flat, 0 -}; -/* PAGE 316 */ -struct yaz_iconv_trie_flat marc8r_31page316_flat[] = { - {"\x93", 0, 0x216221}, /* East Asian ideograph */ - {"\x8D", 0, 0x216222}, /* East Asian ideograph */ - {"\xAD", 0, 0x216224}, /* East Asian ideograph */ - {"\xA5", 0, 0x216225}, /* East Asian ideograph */ - {"\xB1", 0, 0x216226}, /* East Asian ideograph */ - {"\xBE", 0, 0x216227}, /* East Asian ideograph */ - {"\xBB", 0, 0x216228}, /* East Asian ideograph */ - {"\x86", 0, 0x235843}, /* East Asian ideograph */ - {"\x95", 0, 0x235844}, /* East Asian ideograph */ - {"\x8A", 0, 0x235849}, /* East Asian ideograph */ - {"\x88", 0, 0x23584B}, /* East Asian ideograph */ - {"\x94", 0, 0x23584C}, /* East Asian ideograph */ - {"\x84", 0, 0x23584D}, /* East Asian ideograph */ - {"\x82", 0, 0x235852}, /* East Asian ideograph */ - {"\x90", 0, 0x235854}, /* East Asian ideograph */ - {"\x92", 0, 0x235859}, /* East Asian ideograph */ - {"\x89", 0, 0x23585C}, /* East Asian ideograph */ - {"\x9C", 0, 0x235866}, /* East Asian ideograph */ - {"\xAF", 0, 0x235869}, /* East Asian ideograph */ - {"\xA3", 0, 0x23586E}, /* East Asian ideograph */ - {"\xAE", 0, 0x235870}, /* East Asian ideograph */ - {"\xA8", 0, 0x235871}, /* East Asian ideograph */ - {"\xA1", 0, 0x235878}, /* East Asian ideograph */ - {"\xA4", 0, 0x235879}, /* East Asian ideograph */ - {"\xB2", 0, 0x235925}, /* East Asian ideograph */ - {"\xB9", 0, 0x235929}, /* East Asian ideograph */ - {"\xB3", 0, 0x23592A}, /* East Asian ideograph */ - {"\xB5", 0, 0x235932}, /* East Asian ideograph */ - {"\xB7", 0, 0x235934}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D6222}, /* East Asian ideograph */ - {"\x9B", 0, 0x2F5870}, /* East Asian ideograph */ - {"\xBA", 0, 0x47594E}, /* East Asian ideograph */ - {"\xB0", 0, 0x697260}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page316 = { - marc8r_31page316_flat, 0 -}; -/* PAGE 315 */ -struct yaz_iconv_trie_flat marc8r_31page315_flat[] = { - {"\x8A", 0, 0x21617B}, /* East Asian ideograph */ - {"\x89", 0, 0x21617C}, /* East Asian ideograph */ - {"\xA8", 0, 0x21617D}, /* East Asian ideograph */ - {"\xA7", 0, 0x21617E}, /* East Asian ideograph */ - {"\xBD", 0, 0x216223}, /* East Asian ideograph */ - {"\x87", 0, 0x235756}, /* East Asian ideograph */ - {"\x92", 0, 0x235759}, /* East Asian ideograph */ - {"\x86", 0, 0x23575D}, /* East Asian ideograph */ - {"\x81", 0, 0x23575F}, /* East Asian ideograph */ - {"\x93", 0, 0x23576C}, /* East Asian ideograph */ - {"\x80", 0, 0x23576E}, /* East Asian ideograph */ - {"\x88", 0, 0x235772}, /* East Asian ideograph */ - {"\x97", 0, 0x235777}, /* East Asian ideograph */ - {"\x96", 0, 0x23577A}, /* East Asian ideograph */ - {"\xAB", 0, 0x23577C}, /* East Asian ideograph */ - {"\x95", 0, 0x235823}, /* East Asian ideograph */ - {"\xA4", 0, 0x235827}, /* East Asian ideograph */ - {"\xB1", 0, 0x23582B}, /* East Asian ideograph */ - {"\xA1", 0, 0x23582C}, /* East Asian ideograph */ - {"\x9B", 0, 0x23582D}, /* East Asian ideograph */ - {"\xA2", 0, 0x23582F}, /* East Asian ideograph */ - {"\xB0", 0, 0x235831}, /* East Asian ideograph */ - {"\x94", 0, 0x235834}, /* East Asian ideograph */ - {"\xBF", 0, 0x23583E}, /* East Asian ideograph */ - {"\xBD", 0, 0x396223}, /* East Asian ideograph (variant of EACC 216223) */ - {"\x96", 0, 0x47577A}, /* East Asian ideograph (variant of EACC 23577A) */ - {"\xA3", 0, 0x4D5858}, /* East Asian ideograph */ - {"\xB5", 0, 0x4D594E}, /* East Asian ideograph */ - {"\x8F", 0, 0x697245}, /* East Asian ideograph */ - {"\x91", 0, 0x697246}, /* East Asian ideograph */ - {"\xB2", 0, 0x69724E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page315 = { - marc8r_31page315_flat, 0 -}; -/* PAGE 314 */ -struct yaz_iconv_trie_flat marc8r_31page314_flat[] = { - {"\x91", 0, 0x216177}, /* East Asian ideograph */ - {"\xAB", 0, 0x216178}, /* East Asian ideograph */ - {"\xAE", 0, 0x216179}, /* East Asian ideograph */ - {"\xAA", 0, 0x21617A}, /* East Asian ideograph */ - {"\x80", 0, 0x235672}, /* East Asian ideograph */ - {"\x8C", 0, 0x235673}, /* East Asian ideograph */ - {"\x95", 0, 0x23567A}, /* East Asian ideograph */ - {"\x83", 0, 0x235721}, /* East Asian ideograph */ - {"\x8E", 0, 0x235729}, /* East Asian ideograph */ - {"\x90", 0, 0x23572B}, /* East Asian ideograph */ - {"\x93", 0, 0x23572E}, /* East Asian ideograph */ - {"\x97", 0, 0x23572F}, /* East Asian ideograph */ - {"\x92", 0, 0x235731}, /* East Asian ideograph */ - {"\x98", 0, 0x235732}, /* East Asian ideograph */ - {"\x9F", 0, 0x235736}, /* East Asian ideograph */ - {"\x9D", 0, 0x235739}, /* East Asian ideograph */ - {"\xAD", 0, 0x23573C}, /* East Asian ideograph */ - {"\x9A", 0, 0x23573D}, /* East Asian ideograph */ - {"\xA8", 0, 0x23573F}, /* East Asian ideograph */ - {"\x9E", 0, 0x235742}, /* East Asian ideograph */ - {"\x99", 0, 0x235743}, /* East Asian ideograph */ - {"\x86", 0, 0x235749}, /* East Asian ideograph */ - {"\xA0", 0, 0x23574E}, /* East Asian ideograph */ - {"\xBF", 0, 0x23575E}, /* East Asian ideograph */ - {"\xB9", 0, 0x235766}, /* East Asian ideograph */ - {"\xBB", 0, 0x23576B}, /* East Asian ideograph */ - {"\x96", 0, 0x69723B}, /* East Asian ideograph */ - {"\xB4", 0, 0x697240}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page314 = { - marc8r_31page314_flat, 0 -}; -/* PAGE 313 */ -struct yaz_iconv_trie_flat marc8r_31page313_flat[] = { - {"\x81", 0, 0x21616D}, /* East Asian ideograph */ - {"\x82", 0, 0x21616E}, /* East Asian ideograph */ - {"\x85", 0, 0x21616F}, /* East Asian ideograph */ - {"\x84", 0, 0x216170}, /* East Asian ideograph */ - {"\x8F", 0, 0x216171}, /* East Asian ideograph */ - {"\x94", 0, 0x216172}, /* East Asian ideograph */ - {"\x98", 0, 0x216173}, /* East Asian ideograph */ - {"\x9A", 0, 0x216174}, /* East Asian ideograph */ - {"\xB7", 0, 0x216175}, /* East Asian ideograph */ - {"\xAF", 0, 0x216176}, /* East Asian ideograph */ - {"\x83", 0, 0x235636}, /* East Asian ideograph */ - {"\x88", 0, 0x23563A}, /* East Asian ideograph */ - {"\x8E", 0, 0x23563C}, /* East Asian ideograph */ - {"\x8D", 0, 0x23563E}, /* East Asian ideograph */ - {"\x8B", 0, 0x235641}, /* East Asian ideograph */ - {"\x91", 0, 0x235647}, /* East Asian ideograph */ - {"\xB4", 0, 0x23565D}, /* East Asian ideograph */ - {"\xA8", 0, 0x235663}, /* East Asian ideograph */ - {"\xBD", 0, 0x23567B}, /* East Asian ideograph */ - {"\x87", 0, 0x276173}, /* East Asian ideograph */ - {"\x89", 0, 0x29563C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page313 = { - marc8r_31page313_flat, 0 -}; -/* PAGE 312 */ -struct yaz_iconv_trie_flat marc8r_31page312_flat[] = { - {"\x83", 0, 0x216162}, /* East Asian ideograph */ - {"\x86", 0, 0x216163}, /* East Asian ideograph */ - {"\x8D", 0, 0x216164}, /* East Asian ideograph */ - {"\x9A", 0, 0x216165}, /* East Asian ideograph */ - {"\xA2", 0, 0x216166}, /* East Asian ideograph */ - {"\xA5", 0, 0x216167}, /* East Asian ideograph */ - {"\xA7", 0, 0x216168}, /* East Asian ideograph */ - {"\xB1", 0, 0x21616A}, /* East Asian ideograph */ - {"\xB2", 0, 0x21616B}, /* East Asian ideograph */ - {"\xBC", 0, 0x21616C}, /* East Asian ideograph */ - {"\x81", 0, 0x235536}, /* East Asian ideograph */ - {"\x82", 0, 0x235538}, /* East Asian ideograph */ - {"\x80", 0, 0x23553B}, /* East Asian ideograph */ - {"\x88", 0, 0x23553C}, /* East Asian ideograph */ - {"\x84", 0, 0x23553E}, /* East Asian ideograph */ - {"\x85", 0, 0x235541}, /* East Asian ideograph */ - {"\x8B", 0, 0x235543}, /* East Asian ideograph */ - {"\x8E", 0, 0x235547}, /* East Asian ideograph */ - {"\x91", 0, 0x23554E}, /* East Asian ideograph */ - {"\x90", 0, 0x23554F}, /* East Asian ideograph */ - {"\x98", 0, 0x235554}, /* East Asian ideograph */ - {"\x9D", 0, 0x235556}, /* East Asian ideograph */ - {"\x9F", 0, 0x23555E}, /* East Asian ideograph */ - {"\xA3", 0, 0x235566}, /* East Asian ideograph */ - {"\xA9", 0, 0x23556C}, /* East Asian ideograph */ - {"\xAD", 0, 0x235573}, /* East Asian ideograph */ - {"\xAE", 0, 0x235574}, /* East Asian ideograph */ - {"\xAF", 0, 0x235576}, /* East Asian ideograph */ - {"\xB4", 0, 0x23557D}, /* East Asian ideograph */ - {"\xB5", 0, 0x235622}, /* East Asian ideograph */ - {"\xB7", 0, 0x235623}, /* East Asian ideograph */ - {"\x93", 0, 0x276166}, /* East Asian ideograph */ - {"\x92", 0, 0x2F5E66}, /* East Asian ideograph */ - {"\xA8", 0, 0x33362A}, /* East Asian ideograph */ - {"\xBB", 0, 0x39505B}, /* East Asian ideograph */ - {"\xAA", 0, 0x396167}, /* East Asian ideograph */ - {"\xAE", 0, 0x4D5574}, /* East Asian ideograph */ - {"\x8F", 0, 0x70775D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page312 = { - marc8r_31page312_flat, 0 -}; -/* PAGE 311 */ -struct yaz_iconv_trie_flat marc8r_31page311_flat[] = { - {"\x8F", 0, 0x216158}, /* East Asian ideograph */ - {"\x93", 0, 0x216159}, /* East Asian ideograph */ - {"\x94", 0, 0x21615A}, /* East Asian ideograph */ - {"\x92", 0, 0x21615B}, /* East Asian ideograph */ - {"\x98", 0, 0x21615C}, /* East Asian ideograph */ - {"\xA5", 0, 0x21615D}, /* East Asian ideograph */ - {"\xAE", 0, 0x21615F}, /* East Asian ideograph */ - {"\xBB", 0, 0x216160}, /* East Asian ideograph */ - {"\xAD", 0, 0x216161}, /* East Asian ideograph */ - {"\x81", 0, 0x235457}, /* East Asian ideograph */ - {"\x80", 0, 0x235459}, /* East Asian ideograph */ - {"\x82", 0, 0x23545A}, /* East Asian ideograph */ - {"\x88", 0, 0x23545D}, /* East Asian ideograph */ - {"\x90", 0, 0x235466}, /* East Asian ideograph */ - {"\x91", 0, 0x23546A}, /* East Asian ideograph */ - {"\x96", 0, 0x23546D}, /* East Asian ideograph */ - {"\x9C", 0, 0x235472}, /* East Asian ideograph */ - {"\x9F", 0, 0x235474}, /* East Asian ideograph */ - {"\xA0", 0, 0x235476}, /* East Asian ideograph */ - {"\xA2", 0, 0x235477}, /* East Asian ideograph */ - {"\xA7", 0, 0x235521}, /* East Asian ideograph */ - {"\xAB", 0, 0x235527}, /* East Asian ideograph */ - {"\xB2", 0, 0x235528}, /* East Asian ideograph */ - {"\xAF", 0, 0x23552A}, /* East Asian ideograph */ - {"\xB9", 0, 0x235532}, /* East Asian ideograph */ - {"\xBD", 0, 0x235535}, /* East Asian ideograph */ - {"\x85", 0, 0x276158}, /* East Asian ideograph */ - {"\x8B", 0, 0x29546D}, /* East Asian ideograph */ - {"\xB4", 0, 0x2D3D5E}, /* East Asian ideograph */ - {"\x97", 0, 0x2D5421}, /* East Asian ideograph */ - {"\x84", 0, 0x2D6159}, /* East Asian ideograph */ - {"\xA1", 0, 0x2F5476}, /* East Asian ideograph */ - {"\x95", 0, 0x33537D}, /* East Asian ideograph */ - {"\xA3", 0, 0x393078}, /* East Asian ideograph */ - {"\xA6", 0, 0x394A60}, /* East Asian ideograph */ - {"\x8C", 0, 0x4B537D}, /* East Asian ideograph */ - {"\xAA", 0, 0x4B615F}, /* East Asian ideograph */ - {"\x9E", 0, 0x697174}, /* East Asian ideograph */ - {"\xB1", 0, 0x69717D}, /* East Asian ideograph */ - {"\xB7", 0, 0x69717E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page311 = { - marc8r_31page311_flat, 0 -}; -/* PAGE 310 */ -struct yaz_iconv_trie_flat marc8r_31page310_flat[] = { - {"\xA8", 0, 0x216152}, /* East Asian ideograph */ - {"\xAF", 0, 0x216153}, /* East Asian ideograph */ - {"\xB0", 0, 0x216154}, /* East Asian ideograph */ - {"\xB7", 0, 0x216155}, /* East Asian ideograph */ - {"\xB8", 0, 0x216156}, /* East Asian ideograph */ - {"\xBC", 0, 0x216157}, /* East Asian ideograph */ - {"\xAD", 0, 0x23543F}, /* East Asian ideograph */ - {"\xAB", 0, 0x235441}, /* East Asian ideograph */ - {"\xB1", 0, 0x235443}, /* East Asian ideograph */ - {"\xB3", 0, 0x235445}, /* East Asian ideograph */ - {"\xB6", 0, 0x235449}, /* East Asian ideograph */ - {"\xBB", 0, 0x23544C}, /* East Asian ideograph */ - {"\xBA", 0, 0x235450}, /* East Asian ideograph */ - {"\xBD", 0, 0x235454}, /* East Asian ideograph */ - {"\x82", 0, 0x275234}, /* East Asian ideograph */ - {"\x87", 0, 0x27613B}, /* East Asian ideograph */ - {"\x86", 0, 0x27613C}, /* East Asian ideograph */ - {"\x8B", 0, 0x27613D}, /* East Asian ideograph */ - {"\x8F", 0, 0x27613E}, /* East Asian ideograph */ - {"\x88", 0, 0x27613F}, /* East Asian ideograph */ - {"\x91", 0, 0x276140}, /* East Asian ideograph */ - {"\x97", 0, 0x276141}, /* East Asian ideograph */ - {"\x9B", 0, 0x276142}, /* East Asian ideograph */ - {"\x9E", 0, 0x276143}, /* East Asian ideograph */ - {"\x9A", 0, 0x276145}, /* East Asian ideograph */ - {"\xA0", 0, 0x276146}, /* East Asian ideograph */ - {"\xA1", 0, 0x276149}, /* East Asian ideograph */ - {"\x84", 0, 0x27614A}, /* East Asian ideograph */ - {"\x8C", 0, 0x27614D}, /* East Asian ideograph */ - {"\xA4", 0, 0x27614E}, /* East Asian ideograph */ - {"\xA5", 0, 0x276150}, /* East Asian ideograph */ - {"\x8A", 0, 0x276151}, /* East Asian ideograph */ - {"\x80", 0, 0x295269}, /* East Asian ideograph */ - {"\x90", 0, 0x29533D}, /* East Asian ideograph */ - {"\x92", 0, 0x295340}, /* East Asian ideograph */ - {"\x93", 0, 0x295347}, /* East Asian ideograph */ - {"\x9F", 0, 0x29535A}, /* East Asian ideograph */ - {"\x98", 0, 0x295360}, /* East Asian ideograph */ - {"\x9D", 0, 0x29536A}, /* East Asian ideograph */ - {"\x9C", 0, 0x295370}, /* East Asian ideograph */ - {"\x96", 0, 0x295379}, /* East Asian ideograph */ - {"\xA2", 0, 0x29537A}, /* East Asian ideograph */ - {"\xA3", 0, 0x295421}, /* East Asian ideograph */ - {"\x81", 0, 0x295422}, /* East Asian ideograph */ - {"\x85", 0, 0x295427}, /* East Asian ideograph */ - {"\xA7", 0, 0x295433}, /* East Asian ideograph */ - {"\xBE", 0, 0x2F575F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page310 = { - marc8r_31page310_flat, 0 -}; -/* PAGE 309 */ -struct yaz_iconv_trie_flat marc8r_31page309_flat[] = { - {"\x83", 0, 0x216146}, /* East Asian ideograph */ - {"\x85", 0, 0x216147}, /* East Asian ideograph */ - {"\x80", 0, 0x216148}, /* East Asian ideograph */ - {"\x95", 0, 0x21614A}, /* East Asian ideograph */ - {"\x9A", 0, 0x21614B}, /* East Asian ideograph */ - {"\x9B", 0, 0x21614C}, /* East Asian ideograph */ - {"\x97", 0, 0x21614D}, /* East Asian ideograph */ - {"\x9F", 0, 0x21614E}, /* East Asian ideograph */ - {"\xA2", 0, 0x21614F}, /* East Asian ideograph */ - {"\xA5", 0, 0x216150}, /* East Asian ideograph */ - {"\xAA", 0, 0x216151}, /* East Asian ideograph */ - {"\x81", 0, 0x235370}, /* East Asian ideograph */ - {"\x82", 0, 0x235379}, /* East Asian ideograph */ - {"\x84", 0, 0x23537A}, /* East Asian ideograph */ - {"\x88", 0, 0x23537D}, /* East Asian ideograph */ - {"\x8C", 0, 0x23537E}, /* East Asian ideograph */ - {"\x8D", 0, 0x235422}, /* East Asian ideograph */ - {"\x92", 0, 0x235424}, /* East Asian ideograph */ - {"\x8A", 0, 0x235427}, /* East Asian ideograph */ - {"\x98", 0, 0x23542A}, /* East Asian ideograph */ - {"\x96", 0, 0x23542C}, /* East Asian ideograph */ - {"\xA4", 0, 0x235433}, /* East Asian ideograph */ - {"\xA6", 0, 0x235434}, /* East Asian ideograph */ - {"\xAB", 0, 0x23543A}, /* East Asian ideograph */ - {"\xAC", 0, 0x27612C}, /* East Asian ideograph */ - {"\xAD", 0, 0x27612E}, /* East Asian ideograph */ - {"\xB0", 0, 0x27612F}, /* East Asian ideograph */ - {"\xAE", 0, 0x276130}, /* East Asian ideograph */ - {"\xAF", 0, 0x276131}, /* East Asian ideograph */ - {"\xB3", 0, 0x276132}, /* East Asian ideograph */ - {"\xBB", 0, 0x276133}, /* East Asian ideograph */ - {"\xBC", 0, 0x276134}, /* East Asian ideograph */ - {"\xBE", 0, 0x276135}, /* East Asian ideograph */ - {"\xB7", 0, 0x276136}, /* East Asian ideograph */ - {"\xB6", 0, 0x276137}, /* East Asian ideograph */ - {"\xB9", 0, 0x276138}, /* East Asian ideograph */ - {"\xB8", 0, 0x276139}, /* East Asian ideograph */ - {"\xBD", 0, 0x27613A}, /* East Asian ideograph */ - {"\xB1", 0, 0x276147}, /* East Asian ideograph */ - {"\xBF", 0, 0x27614C}, /* East Asian ideograph */ - {"\xB4", 0, 0x27614F}, /* East Asian ideograph */ - {"\xB5", 0, 0x295263}, /* East Asian ideograph */ - {"\xBA", 0, 0x295369}, /* East Asian ideograph */ - {"\xA9", 0, 0x3F4621}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page309 = { - marc8r_31page309_flat, 0 -}; -/* PAGE 308 */ -struct yaz_iconv_trie_flat marc8r_31page308_flat[] = { - {"\x81", 0, 0x21613D}, /* East Asian ideograph */ - {"\x8E", 0, 0x216140}, /* East Asian ideograph */ - {"\x99", 0, 0x216141}, /* East Asian ideograph */ - {"\x96", 0, 0x216142}, /* East Asian ideograph */ - {"\xAB", 0, 0x216143}, /* East Asian ideograph */ - {"\xB0", 0, 0x216144}, /* East Asian ideograph */ - {"\xB7", 0, 0x216145}, /* East Asian ideograph */ - {"\xBE", 0, 0x216149}, /* East Asian ideograph */ - {"\x82", 0, 0x235324}, /* East Asian ideograph */ - {"\x8F", 0, 0x23533D}, /* East Asian ideograph */ - {"\x8B", 0, 0x23533E}, /* East Asian ideograph */ - {"\x89", 0, 0x23533F}, /* East Asian ideograph */ - {"\x84", 0, 0x235344}, /* East Asian ideograph */ - {"\x91", 0, 0x235345}, /* East Asian ideograph */ - {"\x85", 0, 0x235347}, /* East Asian ideograph */ - {"\x90", 0, 0x235348}, /* East Asian ideograph */ - {"\xA4", 0, 0x23534C}, /* East Asian ideograph */ - {"\xA2", 0, 0x23534D}, /* East Asian ideograph */ - {"\xA0", 0, 0x23534F}, /* East Asian ideograph */ - {"\xA7", 0, 0x235352}, /* East Asian ideograph */ - {"\xAF", 0, 0x235359}, /* East Asian ideograph */ - {"\xB8", 0, 0x23535A}, /* East Asian ideograph */ - {"\xAD", 0, 0x235360}, /* East Asian ideograph */ - {"\xB5", 0, 0x235361}, /* East Asian ideograph */ - {"\xB2", 0, 0x235364}, /* East Asian ideograph */ - {"\xB6", 0, 0x235369}, /* East Asian ideograph */ - {"\xAE", 0, 0x23536A}, /* East Asian ideograph */ - {"\xBB", 0, 0x235374}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D6162}, /* East Asian ideograph */ - {"\x83", 0, 0x333556}, /* East Asian ideograph */ - {"\xA3", 0, 0x336162}, /* East Asian ideograph */ - {"\x88", 0, 0x4B613F}, /* East Asian ideograph */ - {"\x92", 0, 0x4B6145}, /* East Asian ideograph */ - {"\x93", 0, 0x4B614D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page308 = { - marc8r_31page308_flat, 0 -}; -/* PAGE 307 */ -struct yaz_iconv_trie_flat marc8r_31page307_flat[] = { - {"\x81", 0, 0x216132}, /* East Asian ideograph */ - {"\x90", 0, 0x216133}, /* East Asian ideograph */ - {"\x9D", 0, 0x216134}, /* East Asian ideograph */ - {"\x95", 0, 0x216135}, /* East Asian ideograph */ - {"\x9F", 0, 0x216136}, /* East Asian ideograph */ - {"\x9B", 0, 0x216137}, /* East Asian ideograph */ - {"\x92", 0, 0x216138}, /* East Asian ideograph */ - {"\x99", 0, 0x216139}, /* East Asian ideograph */ - {"\x91", 0, 0x21613A}, /* East Asian ideograph */ - {"\xAD", 0, 0x21613B}, /* East Asian ideograph */ - {"\xB1", 0, 0x21613C}, /* East Asian ideograph */ - {"\xBF", 0, 0x21613E}, /* East Asian ideograph */ - {"\xA2", 0, 0x21613F}, /* East Asian ideograph */ - {"\x83", 0, 0x23524F}, /* East Asian ideograph */ - {"\x93", 0, 0x235261}, /* East Asian ideograph */ - {"\x94", 0, 0x235263}, /* East Asian ideograph */ - {"\x89", 0, 0x235265}, /* East Asian ideograph */ - {"\x98", 0, 0x235269}, /* East Asian ideograph */ - {"\xAC", 0, 0x235274}, /* East Asian ideograph */ - {"\xB0", 0, 0x23527A}, /* East Asian ideograph */ - {"\xA3", 0, 0x23527B}, /* East Asian ideograph */ - {"\xAA", 0, 0x23527C}, /* East Asian ideograph */ - {"\xB8", 0, 0x235329}, /* East Asian ideograph */ - {"\xB4", 0, 0x23532A}, /* East Asian ideograph */ - {"\xBB", 0, 0x235330}, /* East Asian ideograph */ - {"\xBD", 0, 0x235331}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D6132}, /* East Asian ideograph */ - {"\x9E", 0, 0x2D6134}, /* East Asian ideograph */ - {"\x88", 0, 0x2D6147}, /* East Asian ideograph */ - {"\xA1", 0, 0x335234}, /* East Asian ideograph */ - {"\x85", 0, 0x3F614C}, /* East Asian ideograph */ - {"\x84", 0, 0x4B6130}, /* East Asian ideograph */ - {"\x86", 0, 0x4B6147}, /* East Asian ideograph */ - {"\xB2", 0, 0x697152}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page307 = { - marc8r_31page307_flat, 0 -}; -/* PAGE 306 */ -struct yaz_iconv_trie_flat marc8r_31page306_flat[] = { - {"\x96", 0, 0x216128}, /* East Asian ideograph */ - {"\x99", 0, 0x216129}, /* East Asian ideograph */ - {"\xA5", 0, 0x21612A}, /* East Asian ideograph */ - {"\xA8", 0, 0x21612B}, /* East Asian ideograph */ - {"\xAC", 0, 0x21612C}, /* East Asian ideograph */ - {"\xAE", 0, 0x21612D}, /* East Asian ideograph */ - {"\xAD", 0, 0x21612E}, /* East Asian ideograph */ - {"\xB3", 0, 0x21612F}, /* East Asian ideograph */ - {"\xB1", 0, 0x216130}, /* East Asian ideograph */ - {"\xB4", 0, 0x216131}, /* East Asian ideograph */ - {"\x97", 0, 0x23522F}, /* East Asian ideograph */ - {"\x98", 0, 0x235230}, /* East Asian ideograph */ - {"\xA3", 0, 0x23523B}, /* East Asian ideograph */ - {"\xA1", 0, 0x23523C}, /* East Asian ideograph */ - {"\xA6", 0, 0x23523E}, /* East Asian ideograph */ - {"\xA9", 0, 0x235241}, /* East Asian ideograph */ - {"\xAA", 0, 0x235242}, /* East Asian ideograph */ - {"\xB5", 0, 0x235249}, /* East Asian ideograph */ - {"\xBF", 0, 0x23524D}, /* East Asian ideograph */ - {"\xBC", 0, 0x23524E}, /* East Asian ideograph */ - {"\xB9", 0, 0x235253}, /* East Asian ideograph */ - {"\xBD", 0, 0x235254}, /* East Asian ideograph */ - {"\x81", 0, 0x276075}, /* East Asian ideograph */ - {"\x86", 0, 0x276079}, /* East Asian ideograph */ - {"\x84", 0, 0x27607B}, /* East Asian ideograph */ - {"\x85", 0, 0x27607C}, /* East Asian ideograph */ - {"\x8F", 0, 0x27607E}, /* East Asian ideograph */ - {"\x8A", 0, 0x276121}, /* East Asian ideograph */ - {"\x92", 0, 0x276123}, /* East Asian ideograph */ - {"\x8B", 0, 0x276127}, /* East Asian ideograph */ - {"\x90", 0, 0x29516A}, /* East Asian ideograph */ - {"\x91", 0, 0x29516D}, /* East Asian ideograph */ - {"\x8D", 0, 0x295170}, /* East Asian ideograph */ - {"\x94", 0, 0x295172}, /* East Asian ideograph */ - {"\x93", 0, 0x295175}, /* East Asian ideograph */ - {"\x80", 0, 0x456076}, /* East Asian ideograph */ - {"\x88", 0, 0x516122}, /* East Asian ideograph */ - {"\x87", 0, 0x706247}, /* East Asian ideograph */ - {"\x95", 0, 0x70624E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page306 = { - marc8r_31page306_flat, 0 -}; -/* PAGE 305 */ -struct yaz_iconv_trie_flat marc8r_31page305_flat[] = { - {"\x85", 0, 0x216123}, /* East Asian ideograph */ - {"\x92", 0, 0x216124}, /* East Asian ideograph */ - {"\x91", 0, 0x216125}, /* East Asian ideograph */ - {"\x9C", 0, 0x216126}, /* East Asian ideograph */ - {"\x9E", 0, 0x216127}, /* East Asian ideograph */ - {"\x82", 0, 0x235154}, /* East Asian ideograph (variant of EACC 4D5154) */ - {"\x81", 0, 0x235161}, /* East Asian ideograph */ - {"\x80", 0, 0x235164}, /* East Asian ideograph */ - {"\x88", 0, 0x23516A}, /* East Asian ideograph */ - {"\x87", 0, 0x23516C}, /* East Asian ideograph */ - {"\x89", 0, 0x23516D}, /* East Asian ideograph */ - {"\x83", 0, 0x235170}, /* East Asian ideograph */ - {"\x8D", 0, 0x235171}, /* East Asian ideograph */ - {"\x8C", 0, 0x235172}, /* East Asian ideograph */ - {"\x8E", 0, 0x235173}, /* East Asian ideograph */ - {"\x90", 0, 0x235174}, /* East Asian ideograph */ - {"\x98", 0, 0x23517A}, /* East Asian ideograph */ - {"\x94", 0, 0x23517B}, /* East Asian ideograph */ - {"\x95", 0, 0x23517E}, /* East Asian ideograph */ - {"\x97", 0, 0x235222}, /* East Asian ideograph (variant of EACC 475222) */ - {"\x9D", 0, 0x235229}, /* East Asian ideograph */ - {"\x9F", 0, 0x23522B}, /* East Asian ideograph */ - {"\xA5", 0, 0x276065}, /* East Asian ideograph */ - {"\xA8", 0, 0x276067}, /* East Asian ideograph */ - {"\xAC", 0, 0x276068}, /* East Asian ideograph */ - {"\xAA", 0, 0x276069}, /* East Asian ideograph */ - {"\xAE", 0, 0x27606A}, /* East Asian ideograph */ - {"\xAD", 0, 0x27606B}, /* East Asian ideograph */ - {"\xB2", 0, 0x27606C}, /* East Asian ideograph */ - {"\xB4", 0, 0x27606D}, /* East Asian ideograph */ - {"\xB1", 0, 0x27606E}, /* East Asian ideograph */ - {"\xB0", 0, 0x27606F}, /* East Asian ideograph */ - {"\xBA", 0, 0x276070}, /* East Asian ideograph */ - {"\xB5", 0, 0x276072}, /* East Asian ideograph */ - {"\xB7", 0, 0x276073}, /* East Asian ideograph */ - {"\xBF", 0, 0x276077}, /* East Asian ideograph */ - {"\xBC", 0, 0x276078}, /* East Asian ideograph */ - {"\xAF", 0, 0x27607A}, /* East Asian ideograph */ - {"\xB6", 0, 0x276124}, /* East Asian ideograph */ - {"\xAB", 0, 0x29506C}, /* East Asian ideograph */ - {"\xBD", 0, 0x295132}, /* East Asian ideograph */ - {"\xA7", 0, 0x295153}, /* East Asian ideograph */ - {"\xA9", 0, 0x295166}, /* East Asian ideograph */ - {"\xA3", 0, 0x456064}, /* East Asian ideograph */ - {"\x97", 0, 0x475222}, /* East Asian ideograph */ - {"\x8B", 0, 0x4B6122}, /* East Asian ideograph */ - {"\x82", 0, 0x4D5154}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page305 = { - marc8r_31page305_flat, 0 -}; -/* PAGE 304 */ -struct yaz_iconv_trie_flat marc8r_31page304_flat[] = { - {"\x83", 0, 0x216070}, /* East Asian ideograph */ - {"\x8A", 0, 0x216071}, /* East Asian ideograph */ - {"\x8C", 0, 0x216072}, /* East Asian ideograph */ - {"\x89", 0, 0x216073}, /* East Asian ideograph */ - {"\x90", 0, 0x216074}, /* East Asian ideograph */ - {"\x92", 0, 0x216075}, /* East Asian ideograph */ - {"\x98", 0, 0x216076}, /* East Asian ideograph */ - {"\x93", 0, 0x216077}, /* East Asian ideograph */ - {"\x85", 0, 0x216078}, /* East Asian ideograph */ - {"\xA8", 0, 0x216079}, /* East Asian ideograph */ - {"\x9E", 0, 0x21607A}, /* East Asian ideograph */ - {"\x9B", 0, 0x21607B}, /* East Asian ideograph */ - {"\xA1", 0, 0x21607C}, /* East Asian ideograph */ - {"\xB5", 0, 0x21607D}, /* East Asian ideograph */ - {"\xBE", 0, 0x21607E}, /* East Asian ideograph */ - {"\xBF", 0, 0x216121}, /* East Asian ideograph */ - {"\xBD", 0, 0x216122}, /* East Asian ideograph */ - {"\x87", 0, 0x235124}, /* East Asian ideograph */ - {"\x82", 0, 0x235128}, /* East Asian ideograph */ - {"\x96", 0, 0x23512F}, /* East Asian ideograph */ - {"\x94", 0, 0x235130}, /* East Asian ideograph */ - {"\x97", 0, 0x235131}, /* East Asian ideograph */ - {"\x91", 0, 0x235132}, /* East Asian ideograph */ - {"\x95", 0, 0x235138}, /* East Asian ideograph */ - {"\xA4", 0, 0x23513A}, /* East Asian ideograph */ - {"\x9F", 0, 0x23513B}, /* East Asian ideograph */ - {"\x9C", 0, 0x235140}, /* East Asian ideograph */ - {"\xA9", 0, 0x235143}, /* East Asian ideograph */ - {"\xA7", 0, 0x235145}, /* East Asian ideograph */ - {"\x9A", 0, 0x235147}, /* East Asian ideograph */ - {"\xAE", 0, 0x23514F}, /* East Asian ideograph */ - {"\xAC", 0, 0x235150}, /* East Asian ideograph */ - {"\xAA", 0, 0x235151}, /* East Asian ideograph */ - {"\xB3", 0, 0x235153}, /* East Asian ideograph */ - {"\xB2", 0, 0x235155}, /* East Asian ideograph */ - {"\xAB", 0, 0x235156}, /* East Asian ideograph */ - {"\xB1", 0, 0x235158}, /* East Asian ideograph */ - {"\xBB", 0, 0x23515C}, /* East Asian ideograph */ - {"\xBA", 0, 0x235160}, /* East Asian ideograph */ - {"\xBC", 0, 0x235166}, /* East Asian ideograph */ - {"\x8D", 0, 0x276126}, /* East Asian ideograph */ - {"\xA0", 0, 0x2D6078}, /* East Asian ideograph */ - {"\x88", 0, 0x2E6F43}, /* East Asian ideograph */ - {"\xB9", 0, 0x395063}, /* East Asian ideograph */ - {"\x9D", 0, 0x4B606F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page304 = { - marc8r_31page304_flat, 0 -}; -/* PAGE 303 */ -struct yaz_iconv_trie_flat marc8r_31page303_flat[] = { - {"\x84", 0, 0x216062}, /* East Asian ideograph */ - {"\x9B", 0, 0x216063}, /* East Asian ideograph */ - {"\x9F", 0, 0x216064}, /* East Asian ideograph */ - {"\xA2", 0, 0x216065}, /* East Asian ideograph */ - {"\xA7", 0, 0x216066}, /* East Asian ideograph */ - {"\xA9", 0, 0x216067}, /* East Asian ideograph */ - {"\xAD", 0, 0x216068}, /* East Asian ideograph */ - {"\xAA", 0, 0x216069}, /* East Asian ideograph */ - {"\xAE", 0, 0x21606A}, /* East Asian ideograph */ - {"\xAF", 0, 0x21606B}, /* East Asian ideograph */ - {"\xBC", 0, 0x21606C}, /* East Asian ideograph */ - {"\xB4", 0, 0x21606D}, /* East Asian ideograph */ - {"\xBD", 0, 0x21606E}, /* East Asian ideograph */ - {"\xBE", 0, 0x21606F}, /* East Asian ideograph */ - {"\x80", 0, 0x23504E}, /* East Asian ideograph */ - {"\x86", 0, 0x235053}, /* East Asian ideograph */ - {"\xA1", 0, 0x23505F}, /* East Asian ideograph */ - {"\xA3", 0, 0x235060}, /* East Asian ideograph */ - {"\xA4", 0, 0x235061}, /* East Asian ideograph */ - {"\xA5", 0, 0x235063}, /* East Asian ideograph */ - {"\xB1", 0, 0x235068}, /* East Asian ideograph */ - {"\xAB", 0, 0x23506C}, /* East Asian ideograph */ - {"\x8E", 0, 0x27605B}, /* East Asian ideograph */ - {"\x92", 0, 0x27605C}, /* East Asian ideograph */ - {"\x93", 0, 0x27605F}, /* East Asian ideograph */ - {"\x95", 0, 0x276061}, /* East Asian ideograph */ - {"\x98", 0, 0x276062}, /* East Asian ideograph */ - {"\x9E", 0, 0x276063}, /* East Asian ideograph */ - {"\x99", 0, 0x295053}, /* East Asian ideograph */ - {"\xA8", 0, 0x295222}, /* East Asian ideograph */ - {"\x9C", 0, 0x2D5259}, /* East Asian ideograph */ - {"\x83", 0, 0x336062}, /* East Asian ideograph */ - {"\x88", 0, 0x355053}, /* East Asian ideograph */ - {"\xB0", 0, 0x45606B}, /* East Asian ideograph */ - {"\x91", 0, 0x4D503A}, /* East Asian ideograph */ - {"\x9A", 0, 0x4D5053}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page303 = { - marc8r_31page303_flat, 0 -}; -/* PAGE 302 */ -struct yaz_iconv_trie_flat marc8r_31page302_flat[] = { - {"\xA8", 0, 0x21605B}, /* East Asian ideograph */ - {"\xAF", 0, 0x21605C}, /* East Asian ideograph */ - {"\xB1", 0, 0x21605D}, /* East Asian ideograph */ - {"\xB3", 0, 0x21605E}, /* East Asian ideograph */ - {"\xB6", 0, 0x21605F}, /* East Asian ideograph */ - {"\xBA", 0, 0x216060}, /* East Asian ideograph */ - {"\xBC", 0, 0x216061}, /* East Asian ideograph */ - {"\xAD", 0, 0x235039}, /* East Asian ideograph */ - {"\xB4", 0, 0x235040}, /* East Asian ideograph */ - {"\xB8", 0, 0x235048}, /* East Asian ideograph */ - {"\xBF", 0, 0x23504A}, /* East Asian ideograph */ - {"\xBB", 0, 0x23504D}, /* East Asian ideograph */ - {"\x84", 0, 0x27603D}, /* East Asian ideograph */ - {"\x81", 0, 0x276041}, /* East Asian ideograph */ - {"\x82", 0, 0x276042}, /* East Asian ideograph */ - {"\x87", 0, 0x276043}, /* East Asian ideograph */ - {"\x86", 0, 0x276044}, /* East Asian ideograph */ - {"\x89", 0, 0x276045}, /* East Asian ideograph */ - {"\x8A", 0, 0x276047}, /* East Asian ideograph */ - {"\x88", 0, 0x276048}, /* East Asian ideograph */ - {"\x91", 0, 0x276049}, /* East Asian ideograph */ - {"\x93", 0, 0x27604A}, /* East Asian ideograph */ - {"\x94", 0, 0x27604B}, /* East Asian ideograph */ - {"\x90", 0, 0x27604C}, /* East Asian ideograph */ - {"\x97", 0, 0x27604D}, /* East Asian ideograph */ - {"\x9C", 0, 0x27604E}, /* East Asian ideograph */ - {"\x9D", 0, 0x27604F}, /* East Asian ideograph */ - {"\x98", 0, 0x276050}, /* East Asian ideograph */ - {"\x9A", 0, 0x276051}, /* East Asian ideograph */ - {"\x9B", 0, 0x276052}, /* East Asian ideograph */ - {"\xA0", 0, 0x276054}, /* East Asian ideograph */ - {"\xA4", 0, 0x276057}, /* East Asian ideograph */ - {"\x85", 0, 0x276059}, /* East Asian ideograph */ - {"\xA6", 0, 0x27605A}, /* East Asian ideograph */ - {"\x8D", 0, 0x284C62}, /* East Asian ideograph */ - {"\x83", 0, 0x294E7B}, /* East Asian ideograph */ - {"\x80", 0, 0x294F23}, /* East Asian ideograph */ - {"\x8F", 0, 0x294F2C}, /* East Asian ideograph */ - {"\xA1", 0, 0x294F6B}, /* East Asian ideograph */ - {"\x9F", 0, 0x294F77}, /* East Asian ideograph */ - {"\xA2", 0, 0x295021}, /* East Asian ideograph */ - {"\xA5", 0, 0x295029}, /* East Asian ideograph */ - {"\x9E", 0, 0x295030}, /* East Asian ideograph */ - {"\xA7", 0, 0x295031}, /* East Asian ideograph */ - {"\x96", 0, 0x454F45}, /* East Asian ideograph */ - {"\x8C", 0, 0x4D4F39}, /* East Asian ideograph */ - {"\xAA", 0, 0x697124}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page302 = { - marc8r_31page302_flat, 0 -}; -/* PAGE 301 */ -struct yaz_iconv_trie_flat marc8r_31page301_flat[] = { - {"\x86", 0, 0x21604D}, /* East Asian ideograph */ - {"\x94", 0, 0x21604E}, /* East Asian ideograph */ - {"\x8D", 0, 0x21604F}, /* East Asian ideograph */ - {"\x8C", 0, 0x216050}, /* East Asian ideograph */ - {"\x8E", 0, 0x216051}, /* East Asian ideograph */ - {"\x93", 0, 0x216052}, /* East Asian ideograph */ - {"\x9E", 0, 0x216053}, /* East Asian ideograph (variant of EACC 4B6053) */ - {"\x9A", 0, 0x216054}, /* East Asian ideograph */ - {"\x98", 0, 0x216055}, /* East Asian ideograph */ - {"\xA7", 0, 0x216056}, /* East Asian ideograph */ - {"\xAB", 0, 0x216057}, /* East Asian ideograph */ - {"\xAF", 0, 0x216058}, /* East Asian ideograph */ - {"\xB1", 0, 0x216059}, /* East Asian ideograph */ - {"\xB0", 0, 0x21605A}, /* East Asian ideograph */ - {"\x87", 0, 0x234F4B}, /* East Asian ideograph */ - {"\x84", 0, 0x234F4E}, /* East Asian ideograph */ - {"\x92", 0, 0x234F60}, /* East Asian ideograph */ - {"\x8B", 0, 0x234F62}, /* East Asian ideograph */ - {"\x9C", 0, 0x234F6A}, /* East Asian ideograph */ - {"\x99", 0, 0x234F6B}, /* East Asian ideograph */ - {"\x97", 0, 0x234F6F}, /* East Asian ideograph */ - {"\x96", 0, 0x234F72}, /* East Asian ideograph */ - {"\xA2", 0, 0x234F77}, /* East Asian ideograph */ - {"\xA8", 0, 0x234F7E}, /* East Asian ideograph */ - {"\xA5", 0, 0x235021}, /* East Asian ideograph */ - {"\xA6", 0, 0x235022}, /* East Asian ideograph */ - {"\xAC", 0, 0x235029}, /* East Asian ideograph */ - {"\xB3", 0, 0x235030}, /* East Asian ideograph */ - {"\xB4", 0, 0x235031}, /* East Asian ideograph */ - {"\xB5", 0, 0x276037}, /* East Asian ideograph */ - {"\xB6", 0, 0x276038}, /* East Asian ideograph */ - {"\xB7", 0, 0x276039}, /* East Asian ideograph */ - {"\xB9", 0, 0x27603A}, /* East Asian ideograph */ - {"\xBA", 0, 0x27603B}, /* East Asian ideograph */ - {"\xBB", 0, 0x27603C}, /* East Asian ideograph */ - {"\xBC", 0, 0x27603E}, /* East Asian ideograph */ - {"\xBD", 0, 0x27603F}, /* East Asian ideograph */ - {"\xBF", 0, 0x276040}, /* East Asian ideograph */ - {"\xBE", 0, 0x276056}, /* East Asian ideograph */ - {"\xBB", 0, 0x276165}, /* East Asian ideograph (duplicate simplified) */ - {"\xB8", 0, 0x294E79}, /* East Asian ideograph */ - {"\x9B", 0, 0x336054}, /* East Asian ideograph */ - {"\x95", 0, 0x336058}, /* East Asian ideograph */ - {"\x8F", 0, 0x45604E}, /* East Asian ideograph */ - {"\x9E", 0, 0x4B6053}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page301 = { - marc8r_31page301_flat, 0 -}; -/* PAGE 300 */ -struct yaz_iconv_trie_flat marc8r_31page300_flat[] = { - {"\x81", 0, 0x216037}, /* East Asian ideograph */ - {"\x82", 0, 0x216038}, /* East Asian ideograph */ - {"\x83", 0, 0x216039}, /* East Asian ideograph */ - {"\x85", 0, 0x21603A}, /* East Asian ideograph */ - {"\x86", 0, 0x21603B}, /* East Asian ideograph */ - {"\x88", 0, 0x21603C}, /* East Asian ideograph */ - {"\x90", 0, 0x21603D}, /* East Asian ideograph */ - {"\x8A", 0, 0x21603E}, /* East Asian ideograph */ - {"\x91", 0, 0x21603F}, /* East Asian ideograph */ - {"\x93", 0, 0x216040}, /* East Asian ideograph */ - {"\x92", 0, 0x216041}, /* East Asian ideograph */ - {"\x8C", 0, 0x216042}, /* East Asian ideograph */ - {"\x97", 0, 0x216043}, /* East Asian ideograph */ - {"\x98", 0, 0x216044}, /* East Asian ideograph (variant of EACC 4B6044) */ - {"\xA1", 0, 0x216045}, /* East Asian ideograph */ - {"\xAD", 0, 0x216046}, /* East Asian ideograph */ - {"\xB0", 0, 0x216047}, /* East Asian ideograph */ - {"\xB8", 0, 0x216048}, /* East Asian ideograph */ - {"\xBB", 0, 0x216049}, /* East Asian ideograph */ - {"\xB9", 0, 0x21604A}, /* East Asian ideograph */ - {"\xB7", 0, 0x21604B}, /* East Asian ideograph */ - {"\xA4", 0, 0x21604C}, /* East Asian ideograph */ - {"\x87", 0, 0x234E79}, /* East Asian ideograph */ - {"\x8F", 0, 0x234E7B}, /* East Asian ideograph */ - {"\x8D", 0, 0x234E7E}, /* East Asian ideograph */ - {"\x8E", 0, 0x234F23}, /* East Asian ideograph */ - {"\x96", 0, 0x234F26}, /* East Asian ideograph */ - {"\xA6", 0, 0x234F2C}, /* East Asian ideograph */ - {"\x9E", 0, 0x234F2D}, /* East Asian ideograph */ - {"\xAB", 0, 0x234F34}, /* East Asian ideograph */ - {"\xA0", 0, 0x234F37}, /* East Asian ideograph */ - {"\x9F", 0, 0x234F38}, /* East Asian ideograph */ - {"\xB3", 0, 0x234F3D}, /* East Asian ideograph */ - {"\xAE", 0, 0x234F40}, /* East Asian ideograph */ - {"\xAF", 0, 0x234F44}, /* East Asian ideograph */ - {"\xB2", 0, 0x234F45}, /* East Asian ideograph */ - {"\xBF", 0, 0x234F66}, /* East Asian ideograph */ - {"\xB4", 0, 0x2D4F45}, /* East Asian ideograph */ - {"\x8B", 0, 0x2D6056}, /* East Asian ideograph */ - {"\x80", 0, 0x2E4E56}, /* East Asian ideograph */ - {"\xBC", 0, 0x395A36}, /* East Asian ideograph */ - {"\x98", 0, 0x4B6044}, /* East Asian ideograph */ - {"\x9A", 0, 0x4B6048}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page300 = { - marc8r_31page300_flat, 0 -}; -/* PAGE 299 */ -struct yaz_iconv_trie_flat marc8r_31page299_flat[] = { - {"\x83", 0, 0x216029}, /* East Asian ideograph */ - {"\x81", 0, 0x21602A}, /* East Asian ideograph */ - {"\x86", 0, 0x21602B}, /* East Asian ideograph */ - {"\x8B", 0, 0x21602C}, /* East Asian ideograph */ - {"\x8C", 0, 0x21602D}, /* East Asian ideograph */ - {"\x93", 0, 0x21602E}, /* East Asian ideograph */ - {"\x9C", 0, 0x21602F}, /* East Asian ideograph */ - {"\xAD", 0, 0x216030}, /* East Asian ideograph */ - {"\xB3", 0, 0x216031}, /* East Asian ideograph */ - {"\xB6", 0, 0x216034}, /* East Asian ideograph */ - {"\xBB", 0, 0x216035}, /* East Asian ideograph */ - {"\xBF", 0, 0x216036}, /* East Asian ideograph (variant of EACC 456036) */ - {"\xAF", 0, 0x222F69}, /* East Asian ideograph */ - {"\x80", 0, 0x234E38}, /* East Asian ideograph */ - {"\x85", 0, 0x234E3B}, /* East Asian ideograph */ - {"\x89", 0, 0x234E43}, /* East Asian ideograph */ - {"\x8E", 0, 0x234E4B}, /* East Asian ideograph */ - {"\x8D", 0, 0x234E4C}, /* East Asian ideograph */ - {"\x90", 0, 0x234E4E}, /* East Asian ideograph */ - {"\x94", 0, 0x234E51}, /* East Asian ideograph */ - {"\x98", 0, 0x234E53}, /* East Asian ideograph */ - {"\x99", 0, 0x234E54}, /* East Asian ideograph */ - {"\x9D", 0, 0x234E59}, /* East Asian ideograph */ - {"\x9E", 0, 0x234E5C}, /* East Asian ideograph */ - {"\xA0", 0, 0x234E5E}, /* East Asian ideograph */ - {"\xA1", 0, 0x234E60}, /* East Asian ideograph */ - {"\xB5", 0, 0x234E6C}, /* East Asian ideograph */ - {"\xBA", 0, 0x234E73}, /* East Asian ideograph */ - {"\xA6", 0, 0x27602C}, /* East Asian ideograph */ - {"\xA7", 0, 0x27602D}, /* East Asian ideograph */ - {"\xA9", 0, 0x27602E}, /* East Asian ideograph */ - {"\xAC", 0, 0x27602F}, /* East Asian ideograph */ - {"\xAA", 0, 0x294E54}, /* East Asian ideograph */ - {"\xAB", 0, 0x294E5C}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D6030}, /* East Asian ideograph */ - {"\x88", 0, 0x335821}, /* East Asian ideograph */ - {"\xA4", 0, 0x395821}, /* East Asian ideograph */ - {"\xBF", 0, 0x456036}, /* East Asian ideograph */ - {"\x9E", 0, 0x474E5C}, /* East Asian ideograph (variant of EACC 234E5C) */ - {"\xB2", 0, 0x4D5F7B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page299 = { - marc8r_31page299_flat, 0 -}; -/* PAGE 298 */ -struct yaz_iconv_trie_flat marc8r_31page298_flat[] = { - {"\x85", 0, 0x215F7E}, /* East Asian ideograph */ - {"\x8D", 0, 0x216021}, /* East Asian ideograph */ - {"\x8B", 0, 0x216022}, /* East Asian ideograph */ - {"\x8F", 0, 0x216023}, /* East Asian ideograph */ - {"\x98", 0, 0x216024}, /* East Asian ideograph */ - {"\xA0", 0, 0x216025}, /* East Asian ideograph */ - {"\xA3", 0, 0x216026}, /* East Asian ideograph */ - {"\xA6", 0, 0x216027}, /* East Asian ideograph */ - {"\xAD", 0, 0x216028}, /* East Asian ideograph */ - {"\x97", 0, 0x216879}, /* East Asian ideograph */ - {"\x83", 0, 0x234D37}, /* East Asian ideograph */ - {"\x80", 0, 0x234D3A}, /* East Asian ideograph */ - {"\x81", 0, 0x234D3C}, /* East Asian ideograph */ - {"\x84", 0, 0x234D40}, /* East Asian ideograph */ - {"\x89", 0, 0x234D49}, /* East Asian ideograph */ - {"\x94", 0, 0x234D54}, /* East Asian ideograph */ - {"\x9B", 0, 0x234D59}, /* East Asian ideograph */ - {"\x9F", 0, 0x234D5A}, /* East Asian ideograph */ - {"\x9A", 0, 0x234D5C}, /* East Asian ideograph */ - {"\x9C", 0, 0x234D62}, /* East Asian ideograph */ - {"\xAC", 0, 0x234D6A}, /* East Asian ideograph */ - {"\xAE", 0, 0x234D70}, /* East Asian ideograph */ - {"\xA8", 0, 0x234D71}, /* East Asian ideograph */ - {"\xAB", 0, 0x234D74}, /* East Asian ideograph */ - {"\xA5", 0, 0x234D78}, /* East Asian ideograph */ - {"\xB2", 0, 0x234D7A}, /* East Asian ideograph */ - {"\xB4", 0, 0x234D7C}, /* East Asian ideograph */ - {"\xB3", 0, 0x234E24}, /* East Asian ideograph */ - {"\xB5", 0, 0x234E26}, /* East Asian ideograph */ - {"\xB9", 0, 0x234E29}, /* East Asian ideograph */ - {"\xB8", 0, 0x234E2D}, /* East Asian ideograph */ - {"\xBE", 0, 0x234E35}, /* East Asian ideograph */ - {"\x91", 0, 0x276029}, /* East Asian ideograph */ - {"\xAF", 0, 0x294E43}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D6021}, /* East Asian ideograph */ - {"\x92", 0, 0x4B4559}, /* East Asian ideograph */ - {"\x86", 0, 0x69705D}, /* East Asian ideograph */ - {"\x90", 0, 0x697060}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page298 = { - marc8r_31page298_flat, 0 -}; -/* PAGE 297 */ -struct yaz_iconv_trie_flat marc8r_31page297_flat[] = { - {"\x84", 0, 0x215F6D}, /* East Asian ideograph */ - {"\x82", 0, 0x215F6E}, /* East Asian ideograph */ - {"\x88", 0, 0x215F6F}, /* East Asian ideograph */ - {"\x91", 0, 0x215F70}, /* East Asian ideograph */ - {"\x96", 0, 0x215F71}, /* East Asian ideograph (variant of EACC 4B5F71) */ - {"\x9B", 0, 0x215F72}, /* East Asian ideograph (variant of EACC 4B5F72) */ - {"\x9C", 0, 0x215F73}, /* East Asian ideograph */ - {"\x9E", 0, 0x215F74}, /* East Asian ideograph */ - {"\xA0", 0, 0x215F75}, /* East Asian ideograph */ - {"\xA1", 0, 0x215F76}, /* East Asian ideograph */ - {"\xA6", 0, 0x215F78}, /* East Asian ideograph */ - {"\xA8", 0, 0x215F79}, /* East Asian ideograph */ - {"\xA9", 0, 0x215F7A}, /* East Asian ideograph */ - {"\xB6", 0, 0x215F7B}, /* East Asian ideograph */ - {"\xB4", 0, 0x215F7C}, /* East Asian ideograph */ - {"\xBC", 0, 0x215F7D}, /* East Asian ideograph */ - {"\x81", 0, 0x234C6A}, /* East Asian ideograph */ - {"\x87", 0, 0x234C6B}, /* East Asian ideograph */ - {"\x86", 0, 0x234C6C}, /* East Asian ideograph */ - {"\x89", 0, 0x234C6E}, /* East Asian ideograph */ - {"\x98", 0, 0x234C75}, /* East Asian ideograph */ - {"\x9A", 0, 0x234C76}, /* East Asian ideograph */ - {"\x9D", 0, 0x234C78}, /* East Asian ideograph */ - {"\x9F", 0, 0x234C7B}, /* East Asian ideograph */ - {"\xA4", 0, 0x234C7D}, /* East Asian ideograph */ - {"\xA7", 0, 0x234D25}, /* East Asian ideograph */ - {"\xAB", 0, 0x234D2C}, /* East Asian ideograph */ - {"\xAE", 0, 0x234D30}, /* East Asian ideograph */ - {"\xB7", 0, 0x234D31}, /* East Asian ideograph */ - {"\xB8", 0, 0x234D32}, /* East Asian ideograph */ - {"\xB3", 0, 0x234D35}, /* East Asian ideograph */ - {"\xBA", 0, 0x234D38}, /* East Asian ideograph */ - {"\xBF", 0, 0x234D43}, /* East Asian ideograph */ - {"\xA5", 0, 0x275F79}, /* East Asian ideograph */ - {"\xA2", 0, 0x27625E}, /* East Asian ideograph */ - {"\x93", 0, 0x294C76}, /* East Asian ideograph */ - {"\x9A", 0, 0x2D5F73}, /* East Asian ideograph (unrelated variant of EACC 234C76) */ - {"\xAD", 0, 0x2D602D}, /* East Asian ideograph */ - {"\x99", 0, 0x335F73}, /* East Asian ideograph */ - {"\x92", 0, 0x4B5F70}, /* East Asian ideograph */ - {"\x96", 0, 0x4B5F71}, /* East Asian ideograph */ - {"\x9B", 0, 0x4B5F72}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B5F73}, /* East Asian ideograph (variant of EACC 215F73) */ - {"\xB1", 0, 0x4B602D}, /* East Asian ideograph */ - {"\xB9", 0, 0x697058}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page297 = { - marc8r_31page297_flat, 0 -}; -/* PAGE 296 */ -struct yaz_iconv_trie_flat marc8r_31page296_flat[] = { - {"\x80", 0, 0x215F59}, /* East Asian ideograph */ - {"\x87", 0, 0x215F5A}, /* East Asian ideograph */ - {"\x84", 0, 0x215F5B}, /* East Asian ideograph */ - {"\x89", 0, 0x215F5C}, /* East Asian ideograph */ - {"\x86", 0, 0x215F5D}, /* East Asian ideograph */ - {"\x91", 0, 0x215F5E}, /* East Asian ideograph */ - {"\x8E", 0, 0x215F5F}, /* East Asian ideograph */ - {"\x96", 0, 0x215F60}, /* East Asian ideograph */ - {"\x8F", 0, 0x215F61}, /* East Asian ideograph */ - {"\x8D", 0, 0x215F62}, /* East Asian ideograph */ - {"\x93", 0, 0x215F63}, /* East Asian ideograph */ - {"\x9C", 0, 0x215F64}, /* East Asian ideograph */ - {"\x9E", 0, 0x215F65}, /* East Asian ideograph */ - {"\xAA", 0, 0x215F66}, /* East Asian ideograph */ - {"\xA7", 0, 0x215F67}, /* East Asian ideograph */ - {"\xB8", 0, 0x215F68}, /* East Asian ideograph */ - {"\xB9", 0, 0x215F69}, /* East Asian ideograph */ - {"\xB2", 0, 0x215F6A}, /* East Asian ideograph */ - {"\xBD", 0, 0x215F6B}, /* East Asian ideograph */ - {"\xBE", 0, 0x215F6C}, /* East Asian ideograph */ - {"\x82", 0, 0x234C27}, /* East Asian ideograph */ - {"\x88", 0, 0x234C29}, /* East Asian ideograph */ - {"\x85", 0, 0x234C2A}, /* East Asian ideograph */ - {"\x9B", 0, 0x234C38}, /* East Asian ideograph */ - {"\x9D", 0, 0x234C3D}, /* East Asian ideograph */ - {"\x99", 0, 0x234C3E}, /* East Asian ideograph */ - {"\xA3", 0, 0x234C47}, /* East Asian ideograph */ - {"\xA2", 0, 0x234C49}, /* East Asian ideograph */ - {"\xA4", 0, 0x234C4A}, /* East Asian ideograph */ - {"\xA8", 0, 0x234C4E}, /* East Asian ideograph */ - {"\xA6", 0, 0x234C50}, /* East Asian ideograph */ - {"\xB1", 0, 0x234C52}, /* East Asian ideograph */ - {"\xB0", 0, 0x234C58}, /* East Asian ideograph */ - {"\xB6", 0, 0x234C5C}, /* East Asian ideograph */ - {"\x81", 0, 0x275F6B}, /* East Asian ideograph */ - {"\xAD", 0, 0x275F6D}, /* East Asian ideograph */ - {"\x8A", 0, 0x4B5F6F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page296 = { - marc8r_31page296_flat, 0 -}; -/* PAGE 295 */ -struct yaz_iconv_trie_flat marc8r_31page295_flat[] = { - {"\x80", 0, 0x215F3F}, /* East Asian ideograph */ - {"\x87", 0, 0x215F40}, /* East Asian ideograph */ - {"\x86", 0, 0x215F41}, /* East Asian ideograph */ - {"\x84", 0, 0x215F42}, /* East Asian ideograph */ - {"\x81", 0, 0x215F43}, /* East Asian ideograph */ - {"\x85", 0, 0x215F44}, /* East Asian ideograph */ - {"\x8D", 0, 0x215F45}, /* East Asian ideograph */ - {"\x8B", 0, 0x215F46}, /* East Asian ideograph */ - {"\x89", 0, 0x215F47}, /* East Asian ideograph */ - {"\x8C", 0, 0x215F48}, /* East Asian ideograph */ - {"\x95", 0, 0x215F49}, /* East Asian ideograph */ - {"\x96", 0, 0x215F4A}, /* East Asian ideograph */ - {"\x9C", 0, 0x215F4B}, /* East Asian ideograph */ - {"\x9E", 0, 0x215F4C}, /* East Asian ideograph */ - {"\x9B", 0, 0x215F4D}, /* East Asian ideograph */ - {"\x99", 0, 0x215F4E}, /* East Asian ideograph */ - {"\xA2", 0, 0x215F4F}, /* East Asian ideograph */ - {"\xA3", 0, 0x215F50}, /* East Asian ideograph (variant of EACC 4B5F50) */ - {"\xA8", 0, 0x215F51}, /* East Asian ideograph */ - {"\xAA", 0, 0x215F52}, /* East Asian ideograph */ - {"\xAF", 0, 0x215F53}, /* East Asian ideograph */ - {"\xB2", 0, 0x215F54}, /* East Asian ideograph */ - {"\xBB", 0, 0x215F55}, /* East Asian ideograph */ - {"\xB7", 0, 0x215F56}, /* East Asian ideograph */ - {"\xB9", 0, 0x215F57}, /* East Asian ideograph */ - {"\xB6", 0, 0x215F58}, /* East Asian ideograph */ - {"\x8E", 0, 0x234B52}, /* East Asian ideograph */ - {"\x8A", 0, 0x234B53}, /* East Asian ideograph */ - {"\x92", 0, 0x234B57}, /* East Asian ideograph */ - {"\x9F", 0, 0x234B64}, /* East Asian ideograph */ - {"\x98", 0, 0x234B66}, /* East Asian ideograph */ - {"\x9D", 0, 0x234B67}, /* East Asian ideograph */ - {"\xA9", 0, 0x234B71}, /* East Asian ideograph */ - {"\xB1", 0, 0x234B74}, /* East Asian ideograph */ - {"\xB0", 0, 0x234B76}, /* East Asian ideograph */ - {"\xB4", 0, 0x234B77}, /* East Asian ideograph */ - {"\xBA", 0, 0x234B78}, /* East Asian ideograph */ - {"\xB5", 0, 0x234B7A}, /* East Asian ideograph */ - {"\xBF", 0, 0x234C22}, /* East Asian ideograph */ - {"\x8F", 0, 0x275F4D}, /* East Asian ideograph */ - {"\xBE", 0, 0x275F67}, /* East Asian ideograph */ - {"\xB3", 0, 0x275F6E}, /* East Asian ideograph */ - {"\x91", 0, 0x2D5F4B}, /* East Asian ideograph */ - {"\xA0", 0, 0x4B306C}, /* East Asian ideograph */ - {"\xA3", 0, 0x4B5F50}, /* East Asian ideograph */ - {"\xB6", 0, 0x4B5F58}, /* East Asian ideograph (variant of EACC 215F58 */ - {"\xAB", 0, 0x693C36}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page295 = { - marc8r_31page295_flat, 0 -}; -/* PAGE 294 */ -struct yaz_iconv_trie_flat marc8r_31page294_flat[] = { - {"\x8A", 0, 0x215F2B}, /* East Asian ideograph */ - {"\x8E", 0, 0x215F2C}, /* East Asian ideograph */ - {"\x8B", 0, 0x215F2D}, /* East Asian ideograph */ - {"\x85", 0, 0x215F2F}, /* East Asian ideograph */ - {"\x86", 0, 0x215F30}, /* East Asian ideograph */ - {"\x8D", 0, 0x215F31}, /* East Asian ideograph */ - {"\x98", 0, 0x215F32}, /* East Asian ideograph */ - {"\x94", 0, 0x215F33}, /* East Asian ideograph */ - {"\x99", 0, 0x215F34}, /* East Asian ideograph */ - {"\x95", 0, 0x215F35}, /* East Asian ideograph */ - {"\x9C", 0, 0x215F36}, /* East Asian ideograph */ - {"\x9B", 0, 0x215F37}, /* East Asian ideograph */ - {"\xA7", 0, 0x215F38}, /* East Asian ideograph */ - {"\xA8", 0, 0x215F39}, /* East Asian ideograph */ - {"\xAA", 0, 0x215F3A}, /* East Asian ideograph */ - {"\xB1", 0, 0x215F3B}, /* East Asian ideograph */ - {"\xB4", 0, 0x215F3C}, /* East Asian ideograph */ - {"\xB8", 0, 0x215F3D}, /* East Asian ideograph */ - {"\xBB", 0, 0x215F3E}, /* East Asian ideograph */ - {"\x84", 0, 0x234A63}, /* East Asian ideograph */ - {"\x88", 0, 0x234A65}, /* East Asian ideograph */ - {"\x89", 0, 0x234A6C}, /* East Asian ideograph */ - {"\x82", 0, 0x234A6D}, /* East Asian ideograph */ - {"\x83", 0, 0x234A6E}, /* East Asian ideograph */ - {"\x96", 0, 0x234A79}, /* East Asian ideograph */ - {"\x97", 0, 0x234A7A}, /* East Asian ideograph */ - {"\xA4", 0, 0x234B2F}, /* East Asian ideograph */ - {"\xA9", 0, 0x234B35}, /* East Asian ideograph */ - {"\xAE", 0, 0x234B37}, /* East Asian ideograph */ - {"\xB0", 0, 0x234B3B}, /* East Asian ideograph */ - {"\xB2", 0, 0x234B3C}, /* East Asian ideograph */ - {"\xB3", 0, 0x234B3E}, /* East Asian ideograph */ - {"\xB9", 0, 0x234B48}, /* East Asian ideograph */ - {"\xBC", 0, 0x234B49}, /* East Asian ideograph */ - {"\x8F", 0, 0x275F39}, /* East Asian ideograph */ - {"\x90", 0, 0x275F3B}, /* East Asian ideograph */ - {"\xB6", 0, 0x275F3D}, /* East Asian ideograph */ - {"\xBE", 0, 0x275F50}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D5C74}, /* East Asian ideograph */ - {"\xA0", 0, 0x2D5F3B}, /* East Asian ideograph */ - {"\xBD", 0, 0x2D5F46}, /* East Asian ideograph */ - {"\xB7", 0, 0x335F3D}, /* East Asian ideograph */ - {"\x99", 0, 0x3F5F34}, /* East Asian ideograph */ - {"\x86", 0, 0x4B5F30}, /* East Asian ideograph (variant of EACC 215F30) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page294 = { - marc8r_31page294_flat, 0 -}; -/* PAGE 293 */ -struct yaz_iconv_trie_flat marc8r_31page293_flat[] = { - {"\x80", 0, 0x215E72}, /* East Asian ideograph */ - {"\x84", 0, 0x215E75}, /* East Asian ideograph */ - {"\x90", 0, 0x215E76}, /* East Asian ideograph */ - {"\x8C", 0, 0x215E77}, /* East Asian ideograph */ - {"\x8B", 0, 0x215E78}, /* East Asian ideograph */ - {"\x8D", 0, 0x215E79}, /* East Asian ideograph */ - {"\xA2", 0, 0x215E7A}, /* East Asian ideograph */ - {"\xA3", 0, 0x215E7B}, /* East Asian ideograph */ - {"\x9B", 0, 0x215E7C}, /* East Asian ideograph */ - {"\xA1", 0, 0x215E7D}, /* East Asian ideograph */ - {"\x9D", 0, 0x215E7E}, /* East Asian ideograph */ - {"\xA4", 0, 0x215F21}, /* East Asian ideograph */ - {"\xAA", 0, 0x215F22}, /* East Asian ideograph */ - {"\xB3", 0, 0x215F23}, /* East Asian ideograph */ - {"\xB8", 0, 0x215F24}, /* East Asian ideograph */ - {"\xB5", 0, 0x215F25}, /* East Asian ideograph */ - {"\xB2", 0, 0x215F26}, /* East Asian ideograph */ - {"\xB6", 0, 0x215F27}, /* East Asian ideograph */ - {"\xB7", 0, 0x215F28}, /* East Asian ideograph */ - {"\xB4", 0, 0x215F29}, /* East Asian ideograph */ - {"\xB0", 0, 0x215F2A}, /* East Asian ideograph */ - {"\xBD", 0, 0x215F2E}, /* East Asian ideograph */ - {"\x82", 0, 0x234A2F}, /* East Asian ideograph */ - {"\x91", 0, 0x234A3C}, /* East Asian ideograph */ - {"\xA0", 0, 0x234A42}, /* East Asian ideograph */ - {"\x9C", 0, 0x234A44}, /* East Asian ideograph */ - {"\x98", 0, 0x234A46}, /* East Asian ideograph */ - {"\x9F", 0, 0x234A4A}, /* East Asian ideograph */ - {"\x96", 0, 0x234A4B}, /* East Asian ideograph */ - {"\xAC", 0, 0x234A51}, /* East Asian ideograph */ - {"\xBB", 0, 0x234A5D}, /* East Asian ideograph */ - {"\xBF", 0, 0x234A5E}, /* East Asian ideograph */ - {"\xBE", 0, 0x234A62}, /* East Asian ideograph */ - {"\x88", 0, 0x275F23}, /* East Asian ideograph */ - {"\x86", 0, 0x275F24}, /* East Asian ideograph */ - {"\x85", 0, 0x275F37}, /* East Asian ideograph */ - {"\xA9", 0, 0x275F3A}, /* East Asian ideograph */ - {"\x87", 0, 0x275F3C}, /* East Asian ideograph */ - {"\x95", 0, 0x294A44}, /* East Asian ideograph */ - {"\x89", 0, 0x294A46}, /* East Asian ideograph */ - {"\xA5", 0, 0x2D5F28}, /* East Asian ideograph */ - {"\x8F", 0, 0x2D5F2D}, /* East Asian ideograph */ - {"\x94", 0, 0x2D753A}, /* East Asian ideograph */ - {"\x9E", 0, 0x39345B}, /* East Asian ideograph */ - {"\xA8", 0, 0x455F35}, /* East Asian ideograph (Version J extension) */ - {"\xBA", 0, 0x4B5F3A}, /* East Asian ideograph */ - {"\xA7", 0, 0x4D4A6C}, /* East Asian ideograph */ - {"\xA6", 0, 0x697023}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page293 = { - marc8r_31page293_flat, 0 -}; -/* PAGE 292 */ -struct yaz_iconv_trie_flat marc8r_31page292_flat[] = { - {"\x9C", 0, 0x215E6C}, /* East Asian ideograph */ - {"\xA1", 0, 0x215E6D}, /* East Asian ideograph */ - {"\xB2", 0, 0x215E6E}, /* East Asian ideograph */ - {"\xB1", 0, 0x215E6F}, /* East Asian ideograph */ - {"\xAE", 0, 0x215E70}, /* East Asian ideograph */ - {"\xAA", 0, 0x215E71}, /* East Asian ideograph */ - {"\xBF", 0, 0x215E73}, /* East Asian ideograph */ - {"\xBB", 0, 0x215E74}, /* East Asian ideograph */ - {"\x9E", 0, 0x23497A}, /* East Asian ideograph */ - {"\xA4", 0, 0x23497B}, /* East Asian ideograph */ - {"\xA2", 0, 0x23497C}, /* East Asian ideograph */ - {"\xA7", 0, 0x234A21}, /* East Asian ideograph */ - {"\xBD", 0, 0x234A30}, /* East Asian ideograph */ - {"\xBC", 0, 0x234A32}, /* East Asian ideograph */ - {"\x82", 0, 0x275E58}, /* East Asian ideograph */ - {"\x81", 0, 0x275E5B}, /* East Asian ideograph */ - {"\x80", 0, 0x275E5C}, /* East Asian ideograph */ - {"\x85", 0, 0x275E5E}, /* East Asian ideograph */ - {"\x8E", 0, 0x275E60}, /* East Asian ideograph */ - {"\x94", 0, 0x275E61}, /* East Asian ideograph */ - {"\x95", 0, 0x275E62}, /* East Asian ideograph */ - {"\x91", 0, 0x275E63}, /* East Asian ideograph */ - {"\x97", 0, 0x275E68}, /* East Asian ideograph */ - {"\x90", 0, 0x275E6A}, /* East Asian ideograph */ - {"\xB5", 0, 0x275E7B}, /* East Asian ideograph */ - {"\xB4", 0, 0x275F2A}, /* East Asian ideograph */ - {"\x9F", 0, 0x275F2B}, /* East Asian ideograph */ - {"\xB6", 0, 0x275F2C}, /* East Asian ideograph */ - {"\xB3", 0, 0x275F2E}, /* East Asian ideograph */ - {"\x86", 0, 0x294942}, /* East Asian ideograph */ - {"\x83", 0, 0x294944}, /* East Asian ideograph */ - {"\x8F", 0, 0x294948}, /* East Asian ideograph */ - {"\x88", 0, 0x294949}, /* East Asian ideograph */ - {"\x89", 0, 0x29494D}, /* East Asian ideograph */ - {"\x8A", 0, 0x29494F}, /* East Asian ideograph */ - {"\x8C", 0, 0x294950}, /* East Asian ideograph */ - {"\x8D", 0, 0x294952}, /* East Asian ideograph */ - {"\x92", 0, 0x29495A}, /* East Asian ideograph */ - {"\x99", 0, 0x294960}, /* East Asian ideograph */ - {"\x9A", 0, 0x294969}, /* East Asian ideograph */ - {"\x8B", 0, 0x29556C}, /* East Asian ideograph */ - {"\x84", 0, 0x295574}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D377C}, /* East Asian ideograph */ - {"\xAF", 0, 0x2D3821}, /* East Asian ideograph */ - {"\xA8", 0, 0x333475}, /* East Asian ideograph */ - {"\x9D", 0, 0x4B5C5E}, /* East Asian ideograph */ - {"\x9D", 0, 0x4B5E6C}, /* East Asian ideograph (duplicate simplified) */ - {"\x96", 0, 0x515E5D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page292 = { - marc8r_31page292_flat, 0 -}; -/* PAGE 291 */ -struct yaz_iconv_trie_flat marc8r_31page291_flat[] = { - {"\x8A", 0, 0x215E61}, /* East Asian ideograph */ - {"\x8B", 0, 0x215E62}, /* East Asian ideograph */ - {"\x8C", 0, 0x215E63}, /* East Asian ideograph */ - {"\x88", 0, 0x215E64}, /* East Asian ideograph */ - {"\x86", 0, 0x215E65}, /* East Asian ideograph */ - {"\x96", 0, 0x215E67}, /* East Asian ideograph */ - {"\x90", 0, 0x215E68}, /* East Asian ideograph */ - {"\x9C", 0, 0x215E69}, /* East Asian ideograph */ - {"\xA1", 0, 0x215E6A}, /* East Asian ideograph */ - {"\xA2", 0, 0x215E6B}, /* East Asian ideograph */ - {"\x8D", 0, 0x23494A}, /* East Asian ideograph */ - {"\x89", 0, 0x234959}, /* East Asian ideograph */ - {"\x8E", 0, 0x23495D}, /* East Asian ideograph */ - {"\x95", 0, 0x234960}, /* East Asian ideograph */ - {"\x92", 0, 0x234962}, /* East Asian ideograph */ - {"\x93", 0, 0x234963}, /* East Asian ideograph */ - {"\x91", 0, 0x234964}, /* East Asian ideograph */ - {"\x83", 0, 0x234965}, /* East Asian ideograph */ - {"\x9A", 0, 0x234966}, /* East Asian ideograph */ - {"\x9E", 0, 0x234969}, /* East Asian ideograph */ - {"\xA0", 0, 0x23496A}, /* East Asian ideograph */ - {"\xA5", 0, 0x23496F}, /* East Asian ideograph */ - {"\xA4", 0, 0x234972}, /* East Asian ideograph */ - {"\xA7", 0, 0x234976}, /* East Asian ideograph */ - {"\xAE", 0, 0x273648}, /* East Asian ideograph */ - {"\xB7", 0, 0x273E5C}, /* East Asian ideograph */ - {"\xBB", 0, 0x275271}, /* East Asian ideograph */ - {"\xA8", 0, 0x275E4D}, /* East Asian ideograph */ - {"\xA9", 0, 0x275E4E}, /* East Asian ideograph */ - {"\xAA", 0, 0x275E4F}, /* East Asian ideograph */ - {"\xAD", 0, 0x275E50}, /* East Asian ideograph */ - {"\xB5", 0, 0x275E51}, /* East Asian ideograph */ - {"\xB0", 0, 0x275E52}, /* East Asian ideograph */ - {"\xB2", 0, 0x275E54}, /* East Asian ideograph */ - {"\xB4", 0, 0x275E55}, /* East Asian ideograph */ - {"\xB8", 0, 0x275E57}, /* East Asian ideograph */ - {"\xBA", 0, 0x275E59}, /* East Asian ideograph */ - {"\xBD", 0, 0x275E5A}, /* East Asian ideograph */ - {"\xBE", 0, 0x275E5F}, /* East Asian ideograph */ - {"\xB1", 0, 0x275E64}, /* East Asian ideograph */ - {"\xAF", 0, 0x275E67}, /* East Asian ideograph */ - {"\xB9", 0, 0x276168}, /* East Asian ideograph */ - {"\xB3", 0, 0x294936}, /* East Asian ideograph */ - {"\xBC", 0, 0x29496F}, /* East Asian ideograph */ - {"\x87", 0, 0x33433E}, /* East Asian ideograph */ - {"\xAB", 0, 0x455E60}, /* East Asian ideograph (Version J extension) */ - {"\xB6", 0, 0x474931}, /* East Asian ideograph */ - {"\x94", 0, 0x4B5E5D}, /* East Asian ideograph */ - {"\x98", 0, 0x4B6167}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page291 = { - marc8r_31page291_flat, 0 -}; -/* PAGE 290 */ -struct yaz_iconv_trie_flat marc8r_31page290_flat[] = { - {"\x80", 0, 0x215E4D}, /* East Asian ideograph */ - {"\x82", 0, 0x215E4E}, /* East Asian ideograph */ - {"\x83", 0, 0x215E4F}, /* East Asian ideograph */ - {"\x89", 0, 0x215E50}, /* East Asian ideograph */ - {"\x94", 0, 0x215E51}, /* East Asian ideograph */ - {"\x8F", 0, 0x215E52}, /* East Asian ideograph */ - {"\x8B", 0, 0x215E53}, /* East Asian ideograph */ - {"\x91", 0, 0x215E54}, /* East Asian ideograph */ - {"\x93", 0, 0x215E55}, /* East Asian ideograph */ - {"\x92", 0, 0x215E56}, /* East Asian ideograph */ - {"\x98", 0, 0x215E57}, /* East Asian ideograph */ - {"\xA1", 0, 0x215E58}, /* East Asian ideograph */ - {"\xA8", 0, 0x215E59}, /* East Asian ideograph */ - {"\xA9", 0, 0x215E5A}, /* East Asian ideograph */ - {"\xA3", 0, 0x215E5B}, /* East Asian ideograph */ - {"\xA5", 0, 0x215E5C}, /* East Asian ideograph */ - {"\xA4", 0, 0x215E5D}, /* East Asian ideograph */ - {"\xB1", 0, 0x215E5E}, /* East Asian ideograph */ - {"\xAD", 0, 0x215E5F}, /* East Asian ideograph */ - {"\xBB", 0, 0x215E60}, /* East Asian ideograph */ - {"\x85", 0, 0x23492E}, /* East Asian ideograph */ - {"\x88", 0, 0x234930}, /* East Asian ideograph */ - {"\x8C", 0, 0x234931}, /* East Asian ideograph */ - {"\x97", 0, 0x234934}, /* East Asian ideograph */ - {"\x8E", 0, 0x234936}, /* East Asian ideograph */ - {"\x9F", 0, 0x234938}, /* East Asian ideograph */ - {"\xA0", 0, 0x23493A}, /* East Asian ideograph */ - {"\xAC", 0, 0x234942}, /* East Asian ideograph */ - {"\xAB", 0, 0x234944}, /* East Asian ideograph */ - {"\xBC", 0, 0x234948}, /* East Asian ideograph */ - {"\xBE", 0, 0x234949}, /* East Asian ideograph */ - {"\xB9", 0, 0x23494D}, /* East Asian ideograph */ - {"\xBA", 0, 0x23494E}, /* East Asian ideograph */ - {"\xB6", 0, 0x23494F}, /* East Asian ideograph */ - {"\xBF", 0, 0x234950}, /* East Asian ideograph */ - {"\xBD", 0, 0x234952}, /* East Asian ideograph */ - {"\xA7", 0, 0x2D362A}, /* East Asian ideograph */ - {"\x87", 0, 0x2D5E50}, /* East Asian ideograph */ - {"\x86", 0, 0x3F5E60}, /* East Asian ideograph */ - {"\xA2", 0, 0x4B5E69}, /* East Asian ideograph */ - {"\x99", 0, 0x4B6168}, /* East Asian ideograph */ - {"\x8A", 0, 0x696F5B}, /* East Asian ideograph */ - {"\x96", 0, 0x696F5D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page290 = { - marc8r_31page290_flat, 0 -}; -/* PAGE 289 */ -struct yaz_iconv_trie_flat marc8r_31page289_flat[] = { - {"\xB7", 0, 0x215E4C}, /* East Asian ideograph */ - {"\x80", 0, 0x275D77}, /* East Asian ideograph */ - {"\x81", 0, 0x275D78}, /* East Asian ideograph */ - {"\x91", 0, 0x275E25}, /* East Asian ideograph */ - {"\x87", 0, 0x275E27}, /* East Asian ideograph */ - {"\x8D", 0, 0x275E2A}, /* East Asian ideograph */ - {"\x9C", 0, 0x275E2B}, /* East Asian ideograph */ - {"\x9D", 0, 0x275E2C}, /* East Asian ideograph */ - {"\x9E", 0, 0x275E2E}, /* East Asian ideograph */ - {"\x96", 0, 0x275E32}, /* East Asian ideograph */ - {"\x97", 0, 0x275E33}, /* East Asian ideograph */ - {"\x82", 0, 0x275E34}, /* East Asian ideograph */ - {"\x98", 0, 0x275E35}, /* East Asian ideograph */ - {"\x99", 0, 0x275E36}, /* East Asian ideograph */ - {"\xB0", 0, 0x275E3A}, /* East Asian ideograph */ - {"\xAD", 0, 0x275E3C}, /* East Asian ideograph */ - {"\xAF", 0, 0x275E40}, /* East Asian ideograph */ - {"\xB3", 0, 0x275E44}, /* East Asian ideograph */ - {"\xB6", 0, 0x275E46}, /* East Asian ideograph */ - {"\xBF", 0, 0x275E4C}, /* East Asian ideograph */ - {"\x85", 0, 0x29454E}, /* East Asian ideograph */ - {"\x90", 0, 0x29457A}, /* East Asian ideograph */ - {"\x93", 0, 0x294621}, /* East Asian ideograph */ - {"\x92", 0, 0x294628}, /* East Asian ideograph */ - {"\x89", 0, 0x29462D}, /* East Asian ideograph */ - {"\x8F", 0, 0x294647}, /* East Asian ideograph */ - {"\x9B", 0, 0x294656}, /* East Asian ideograph */ - {"\x9F", 0, 0x29465A}, /* East Asian ideograph */ - {"\xAA", 0, 0x294662}, /* East Asian ideograph */ - {"\x86", 0, 0x29467C}, /* East Asian ideograph */ - {"\xA6", 0, 0x294734}, /* East Asian ideograph */ - {"\xA8", 0, 0x29473C}, /* East Asian ideograph */ - {"\xAB", 0, 0x29474D}, /* East Asian ideograph */ - {"\xA1", 0, 0x294758}, /* East Asian ideograph */ - {"\xA2", 0, 0x29475E}, /* East Asian ideograph */ - {"\xA3", 0, 0x294760}, /* East Asian ideograph */ - {"\xA4", 0, 0x294769}, /* East Asian ideograph */ - {"\xB1", 0, 0x294774}, /* East Asian ideograph */ - {"\x94", 0, 0x29483E}, /* East Asian ideograph */ - {"\xB2", 0, 0x29483F}, /* East Asian ideograph */ - {"\xAC", 0, 0x29484A}, /* East Asian ideograph */ - {"\xA5", 0, 0x29485C}, /* East Asian ideograph */ - {"\xA7", 0, 0x294869}, /* East Asian ideograph */ - {"\xA9", 0, 0x29486F}, /* East Asian ideograph */ - {"\x8A", 0, 0x294871}, /* East Asian ideograph */ - {"\x8E", 0, 0x4D446B}, /* East Asian ideograph */ - {"\x84", 0, 0x4D4754}, /* East Asian ideograph */ - {"\x8C", 0, 0x4D4835}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page289 = { - marc8r_31page289_flat, 0 -}; -/* PAGE 288 */ -struct yaz_iconv_trie_flat marc8r_31page288_flat[] = { - {"\x91", 0, 0x215E42}, /* East Asian ideograph */ - {"\x84", 0, 0x215E43}, /* East Asian ideograph */ - {"\xA3", 0, 0x215E44}, /* East Asian ideograph */ - {"\xA0", 0, 0x215E45}, /* East Asian ideograph */ - {"\xB2", 0, 0x215E46}, /* East Asian ideograph */ - {"\xB0", 0, 0x215E47}, /* East Asian ideograph */ - {"\xBE", 0, 0x215E48}, /* East Asian ideograph */ - {"\xBC", 0, 0x215E49}, /* East Asian ideograph */ - {"\xBD", 0, 0x215E4A}, /* East Asian ideograph */ - {"\xBF", 0, 0x215E4B}, /* East Asian ideograph */ - {"\x80", 0, 0x234832}, /* East Asian ideograph */ - {"\x81", 0, 0x234837}, /* East Asian ideograph */ - {"\xA7", 0, 0x23483D}, /* East Asian ideograph */ - {"\x8C", 0, 0x23483E}, /* East Asian ideograph */ - {"\x85", 0, 0x234840}, /* East Asian ideograph */ - {"\x90", 0, 0x234842}, /* East Asian ideograph */ - {"\x8A", 0, 0x23484A}, /* East Asian ideograph */ - {"\xA6", 0, 0x234853}, /* East Asian ideograph */ - {"\xA4", 0, 0x234857}, /* East Asian ideograph */ - {"\xA2", 0, 0x234858}, /* East Asian ideograph */ - {"\xA5", 0, 0x23485C}, /* East Asian ideograph */ - {"\x95", 0, 0x23485D}, /* East Asian ideograph */ - {"\x9E", 0, 0x23485E}, /* East Asian ideograph */ - {"\xAA", 0, 0x234862}, /* East Asian ideograph */ - {"\xAB", 0, 0x234868}, /* East Asian ideograph */ - {"\xAD", 0, 0x234869}, /* East Asian ideograph */ - {"\xAF", 0, 0x23486C}, /* East Asian ideograph */ - {"\xB1", 0, 0x23486D}, /* East Asian ideograph */ - {"\xB7", 0, 0x234871}, /* East Asian ideograph */ - {"\x9B", 0, 0x2D4E5B}, /* East Asian ideograph */ - {"\xB5", 0, 0x2D522B}, /* East Asian ideograph */ - {"\x9A", 0, 0x2D5E4A}, /* East Asian ideograph */ - {"\x92", 0, 0x335E42}, /* East Asian ideograph */ - {"\x93", 0, 0x694C7A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page288 = { - marc8r_31page288_flat, 0 -}; -/* PAGE 287 */ -struct yaz_iconv_trie_flat marc8r_31page287_flat[] = { - {"\x83", 0, 0x215E39}, /* East Asian ideograph */ - {"\xAE", 0, 0x215E3A}, /* East Asian ideograph */ - {"\xB3", 0, 0x215E3C}, /* East Asian ideograph */ - {"\xB5", 0, 0x215E3D}, /* East Asian ideograph */ - {"\xBA", 0, 0x215E3E}, /* East Asian ideograph */ - {"\xB8", 0, 0x215E3F}, /* East Asian ideograph */ - {"\xB2", 0, 0x215E40}, /* East Asian ideograph */ - {"\x8B", 0, 0x234732}, /* East Asian ideograph */ - {"\x93", 0, 0x234734}, /* East Asian ideograph */ - {"\x8F", 0, 0x23473B}, /* East Asian ideograph */ - {"\xA0", 0, 0x23473C}, /* East Asian ideograph */ - {"\x99", 0, 0x23474D}, /* East Asian ideograph */ - {"\x8D", 0, 0x23474E}, /* East Asian ideograph */ - {"\xA6", 0, 0x234750}, /* East Asian ideograph */ - {"\xA7", 0, 0x234751}, /* East Asian ideograph */ - {"\x89", 0, 0x234755}, /* East Asian ideograph */ - {"\x94", 0, 0x234758}, /* East Asian ideograph */ - {"\x84", 0, 0x234759}, /* East Asian ideograph */ - {"\xA2", 0, 0x23475C}, /* East Asian ideograph */ - {"\x86", 0, 0x23475D}, /* East Asian ideograph */ - {"\x90", 0, 0x234760}, /* East Asian ideograph */ - {"\xA3", 0, 0x234762}, /* East Asian ideograph */ - {"\x87", 0, 0x23476A}, /* East Asian ideograph */ - {"\x8E", 0, 0x23476F}, /* East Asian ideograph */ - {"\x91", 0, 0x234771}, /* East Asian ideograph */ - {"\xBF", 0, 0x234774}, /* East Asian ideograph */ - {"\xA9", 0, 0x234779}, /* East Asian ideograph */ - {"\xBD", 0, 0x23477C}, /* East Asian ideograph */ - {"\xB6", 0, 0x234828}, /* East Asian ideograph */ - {"\xBB", 0, 0x23482B}, /* East Asian ideograph */ - {"\xA4", 0, 0x23482D}, /* East Asian ideograph */ - {"\xB7", 0, 0x234830}, /* East Asian ideograph */ - {"\xAB", 0, 0x234835}, /* East Asian ideograph */ - {"\xAD", 0, 0x234836}, /* East Asian ideograph */ - {"\xB1", 0, 0x234838}, /* East Asian ideograph */ - {"\x98", 0, 0x2D5E21}, /* East Asian ideograph */ - {"\x9A", 0, 0x2F445F}, /* East Asian ideograph */ - {"\xA1", 0, 0x4B5E3D}, /* East Asian ideograph */ - {"\xBE", 0, 0x4D477B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page287 = { - marc8r_31page287_flat, 0 -}; -/* PAGE 286 */ -struct yaz_iconv_trie_flat marc8r_31page286_flat[] = { - {"\xA1", 0, 0x215E2B}, /* East Asian ideograph */ - {"\x91", 0, 0x215E2C}, /* East Asian ideograph */ - {"\x96", 0, 0x215E2D}, /* East Asian ideograph */ - {"\x83", 0, 0x215E2E}, /* East Asian ideograph */ - {"\x9F", 0, 0x215E2F}, /* East Asian ideograph */ - {"\x97", 0, 0x215E30}, /* East Asian ideograph */ - {"\x88", 0, 0x215E31}, /* East Asian ideograph */ - {"\xA2", 0, 0x215E32}, /* East Asian ideograph */ - {"\x9C", 0, 0x215E33}, /* East Asian ideograph */ - {"\xA4", 0, 0x215E34}, /* East Asian ideograph */ - {"\x9D", 0, 0x215E35}, /* East Asian ideograph */ - {"\x8D", 0, 0x215E36}, /* East Asian ideograph */ - {"\x98", 0, 0x215E37}, /* East Asian ideograph */ - {"\xBD", 0, 0x215E3B}, /* East Asian ideograph */ - {"\xB1", 0, 0x234653}, /* East Asian ideograph */ - {"\x9E", 0, 0x234656}, /* East Asian ideograph */ - {"\xAE", 0, 0x234657}, /* East Asian ideograph */ - {"\x87", 0, 0x23465A}, /* East Asian ideograph */ - {"\xB2", 0, 0x23465B}, /* East Asian ideograph */ - {"\x94", 0, 0x23465D}, /* East Asian ideograph */ - {"\xA5", 0, 0x23465F}, /* East Asian ideograph */ - {"\xB9", 0, 0x234662}, /* East Asian ideograph */ - {"\x8A", 0, 0x234663}, /* East Asian ideograph */ - {"\x84", 0, 0x234664}, /* East Asian ideograph */ - {"\xA8", 0, 0x234666}, /* East Asian ideograph */ - {"\xA7", 0, 0x234667}, /* East Asian ideograph */ - {"\x9A", 0, 0x234672}, /* East Asian ideograph */ - {"\x90", 0, 0x234673}, /* East Asian ideograph */ - {"\xAF", 0, 0x234674}, /* East Asian ideograph */ - {"\x9B", 0, 0x234675}, /* East Asian ideograph */ - {"\x8C", 0, 0x23467C}, /* East Asian ideograph */ - {"\x93", 0, 0x23472C}, /* East Asian ideograph */ - {"\xA6", 0, 0x234730}, /* East Asian ideograph */ - {"\xBB", 0, 0x23473D}, /* East Asian ideograph */ - {"\xBA", 0, 0x234749}, /* East Asian ideograph */ - {"\xB5", 0, 0x234767}, /* East Asian ideograph */ - {"\xB7", 0, 0x234769}, /* East Asian ideograph */ - {"\xB4", 0, 0x234827}, /* East Asian ideograph */ - {"\x81", 0, 0x2D5E28}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page286 = { - marc8r_31page286_flat, 0 -}; -/* PAGE 285 */ -struct yaz_iconv_trie_flat marc8r_31page285_flat[] = { - {"\x82", 0, 0x215D78}, /* East Asian ideograph */ - {"\x8A", 0, 0x215E25}, /* East Asian ideograph */ - {"\x94", 0, 0x215E26}, /* East Asian ideograph */ - {"\xAE", 0, 0x215E27}, /* East Asian ideograph */ - {"\x96", 0, 0x215E28}, /* East Asian ideograph */ - {"\xA2", 0, 0x215E29}, /* East Asian ideograph */ - {"\xB3", 0, 0x215E2A}, /* East Asian ideograph */ - {"\x86", 0, 0x234544}, /* East Asian ideograph */ - {"\xBE", 0, 0x234560}, /* East Asian ideograph */ - {"\x8F", 0, 0x234579}, /* East Asian ideograph */ - {"\xAC", 0, 0x23457A}, /* East Asian ideograph */ - {"\x95", 0, 0x23457B}, /* East Asian ideograph */ - {"\x8B", 0, 0x23457E}, /* East Asian ideograph */ - {"\xB5", 0, 0x234621}, /* East Asian ideograph */ - {"\x8C", 0, 0x234622}, /* East Asian ideograph */ - {"\x88", 0, 0x234623}, /* East Asian ideograph */ - {"\xB9", 0, 0x234625}, /* East Asian ideograph */ - {"\xA1", 0, 0x234627}, /* East Asian ideograph */ - {"\xB0", 0, 0x234628}, /* East Asian ideograph */ - {"\xA3", 0, 0x234629}, /* East Asian ideograph */ - {"\xB7", 0, 0x23462A}, /* East Asian ideograph */ - {"\x9B", 0, 0x23462B}, /* East Asian ideograph */ - {"\x98", 0, 0x23462D}, /* East Asian ideograph */ - {"\x89", 0, 0x23463C}, /* East Asian ideograph */ - {"\xA4", 0, 0x23463D}, /* East Asian ideograph */ - {"\xBC", 0, 0x234640}, /* East Asian ideograph */ - {"\xA7", 0, 0x234642}, /* East Asian ideograph */ - {"\xBD", 0, 0x234644}, /* East Asian ideograph */ - {"\xA6", 0, 0x234647}, /* East Asian ideograph */ - {"\x9A", 0, 0x234648}, /* East Asian ideograph */ - {"\xAA", 0, 0x23464A}, /* East Asian ideograph */ - {"\x9E", 0, 0x23464D}, /* East Asian ideograph */ - {"\x97", 0, 0x23464F}, /* East Asian ideograph */ - {"\xBB", 0, 0x234651}, /* East Asian ideograph */ - {"\xA9", 0, 0x23472F}, /* East Asian ideograph */ - {"\xAD", 0, 0x4B5E27}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page285 = { - marc8r_31page285_flat, 0 -}; -/* PAGE 284 */ -struct yaz_iconv_trie_flat marc8r_31page284_flat[] = { - {"\x8D", 0, 0x215D77}, /* East Asian ideograph */ - {"\xB5", 0, 0x215D79}, /* East Asian ideograph */ - {"\xA5", 0, 0x215D7A}, /* East Asian ideograph */ - {"\x8B", 0, 0x215D7C}, /* East Asian ideograph */ - {"\xB0", 0, 0x215D7E}, /* East Asian ideograph */ - {"\xBE", 0, 0x215E21}, /* East Asian ideograph */ - {"\xAC", 0, 0x215E23}, /* East Asian ideograph */ - {"\x9B", 0, 0x215E24}, /* East Asian ideograph */ - {"\x84", 0, 0x23444F}, /* East Asian ideograph */ - {"\x80", 0, 0x234471}, /* East Asian ideograph */ - {"\x82", 0, 0x23452F}, /* East Asian ideograph */ - {"\x81", 0, 0x234531}, /* East Asian ideograph */ - {"\x8C", 0, 0x234535}, /* East Asian ideograph */ - {"\xB9", 0, 0x234541}, /* East Asian ideograph */ - {"\xAA", 0, 0x234547}, /* East Asian ideograph */ - {"\x9C", 0, 0x234548}, /* East Asian ideograph */ - {"\x8F", 0, 0x23454C}, /* East Asian ideograph */ - {"\x87", 0, 0x23454D}, /* East Asian ideograph */ - {"\xBA", 0, 0x234551}, /* East Asian ideograph */ - {"\x96", 0, 0x234553}, /* East Asian ideograph */ - {"\xB1", 0, 0x234554}, /* East Asian ideograph */ - {"\xBC", 0, 0x234556}, /* East Asian ideograph */ - {"\xB7", 0, 0x23455C}, /* East Asian ideograph */ - {"\x89", 0, 0x23455D}, /* East Asian ideograph */ - {"\x98", 0, 0x23455E}, /* East Asian ideograph */ - {"\x9A", 0, 0x23455F}, /* East Asian ideograph */ - {"\x9F", 0, 0x234562}, /* East Asian ideograph */ - {"\xB6", 0, 0x234564}, /* East Asian ideograph */ - {"\x95", 0, 0x234566}, /* East Asian ideograph */ - {"\x94", 0, 0x234567}, /* East Asian ideograph */ - {"\x88", 0, 0x23456A}, /* East Asian ideograph */ - {"\xB4", 0, 0x23456B}, /* East Asian ideograph */ - {"\x91", 0, 0x23456E}, /* East Asian ideograph */ - {"\xA4", 0, 0x23456F}, /* East Asian ideograph */ - {"\xAB", 0, 0x234571}, /* East Asian ideograph */ - {"\xAD", 0, 0x234572}, /* East Asian ideograph */ - {"\xA0", 0, 0x234573}, /* East Asian ideograph */ - {"\xAE", 0, 0x234577}, /* East Asian ideograph */ - {"\x8A", 0, 0x33496A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page284 = { - marc8r_31page284_flat, 0 -}; -/* PAGE 283 */ -struct yaz_iconv_trie_flat marc8r_31page283_flat[] = { - {"\xA0", 0, 0x215D6B}, /* East Asian ideograph */ - {"\xB6", 0, 0x215D6C}, /* East Asian ideograph */ - {"\xB3", 0, 0x215D6E}, /* East Asian ideograph */ - {"\xAF", 0, 0x215D6F}, /* East Asian ideograph */ - {"\xA2", 0, 0x215D70}, /* East Asian ideograph */ - {"\xAB", 0, 0x215D72}, /* East Asian ideograph */ - {"\x9A", 0, 0x215D73}, /* East Asian ideograph */ - {"\x84", 0, 0x215D74}, /* East Asian ideograph */ - {"\x90", 0, 0x215D75}, /* East Asian ideograph */ - {"\xA6", 0, 0x215D76}, /* East Asian ideograph */ - {"\xA8", 0, 0x215D7D}, /* East Asian ideograph */ - {"\x98", 0, 0x215E22}, /* East Asian ideograph */ - {"\x83", 0, 0x23444C}, /* East Asian ideograph */ - {"\x87", 0, 0x23444D}, /* East Asian ideograph */ - {"\x9E", 0, 0x23444E}, /* East Asian ideograph */ - {"\x9D", 0, 0x234453}, /* East Asian ideograph */ - {"\x9F", 0, 0x234458}, /* East Asian ideograph */ - {"\xB1", 0, 0x23445A}, /* East Asian ideograph */ - {"\x86", 0, 0x23445B}, /* East Asian ideograph */ - {"\x8F", 0, 0x23445F}, /* East Asian ideograph */ - {"\x82", 0, 0x234462}, /* East Asian ideograph */ - {"\xA4", 0, 0x234464}, /* East Asian ideograph */ - {"\x92", 0, 0x234466}, /* East Asian ideograph */ - {"\xB8", 0, 0x234469}, /* East Asian ideograph */ - {"\xA3", 0, 0x23446A}, /* East Asian ideograph */ - {"\xA1", 0, 0x23446C}, /* East Asian ideograph */ - {"\x81", 0, 0x234472}, /* East Asian ideograph */ - {"\x95", 0, 0x234474}, /* East Asian ideograph */ - {"\xA9", 0, 0x234476}, /* East Asian ideograph */ - {"\xAE", 0, 0x234478}, /* East Asian ideograph */ - {"\xAA", 0, 0x234479}, /* East Asian ideograph */ - {"\xBF", 0, 0x23447B}, /* East Asian ideograph */ - {"\xBA", 0, 0x23447C}, /* East Asian ideograph */ - {"\xB5", 0, 0x23447E}, /* East Asian ideograph */ - {"\x94", 0, 0x234522}, /* East Asian ideograph */ - {"\x99", 0, 0x234532}, /* East Asian ideograph */ - {"\xBE", 0, 0x294666}, /* East Asian ideograph */ - {"\xAC", 0, 0x4B496A}, /* East Asian ideograph */ - {"\x86", 0, 0x4D445B}, /* East Asian ideograph (variant of EACC 23445B) */ - {"\xBB", 0, 0x696F27}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page283 = { - marc8r_31page283_flat, 0 -}; -/* PAGE 282 */ -struct yaz_iconv_trie_flat marc8r_31page282_flat[] = { - {"\x85", 0, 0x215D62}, /* East Asian ideograph */ - {"\xAA", 0, 0x215D65}, /* East Asian ideograph */ - {"\x81", 0, 0x215D67}, /* East Asian ideograph */ - {"\xA4", 0, 0x215D68}, /* East Asian ideograph */ - {"\x92", 0, 0x215D6A}, /* East Asian ideograph */ - {"\xB8", 0, 0x215D6D}, /* East Asian ideograph */ - {"\xBC", 0, 0x215D71}, /* East Asian ideograph */ - {"\xAE", 0, 0x234340}, /* East Asian ideograph */ - {"\x88", 0, 0x234366}, /* East Asian ideograph */ - {"\x83", 0, 0x23436A}, /* East Asian ideograph */ - {"\x90", 0, 0x23436F}, /* East Asian ideograph */ - {"\xB1", 0, 0x234371}, /* East Asian ideograph */ - {"\x9F", 0, 0x234372}, /* East Asian ideograph */ - {"\xA6", 0, 0x234375}, /* East Asian ideograph */ - {"\x80", 0, 0x234377}, /* East Asian ideograph */ - {"\x99", 0, 0x23437A}, /* East Asian ideograph */ - {"\x95", 0, 0x23437E}, /* East Asian ideograph */ - {"\x86", 0, 0x234421}, /* East Asian ideograph */ - {"\xB4", 0, 0x234425}, /* East Asian ideograph */ - {"\x8F", 0, 0x234427}, /* East Asian ideograph */ - {"\xA7", 0, 0x23442C}, /* East Asian ideograph */ - {"\x87", 0, 0x23442D}, /* East Asian ideograph */ - {"\xB0", 0, 0x23442E}, /* East Asian ideograph */ - {"\x9B", 0, 0x23442F}, /* East Asian ideograph */ - {"\x9C", 0, 0x234430}, /* East Asian ideograph */ - {"\x98", 0, 0x234431}, /* East Asian ideograph */ - {"\xA9", 0, 0x234433}, /* East Asian ideograph */ - {"\x9D", 0, 0x234435}, /* East Asian ideograph */ - {"\x91", 0, 0x234439}, /* East Asian ideograph */ - {"\x8A", 0, 0x23443A}, /* East Asian ideograph */ - {"\x82", 0, 0x23443C}, /* East Asian ideograph */ - {"\x8C", 0, 0x23443E}, /* East Asian ideograph */ - {"\xAF", 0, 0x234440}, /* East Asian ideograph */ - {"\xA8", 0, 0x234441}, /* East Asian ideograph */ - {"\xAB", 0, 0x234443}, /* East Asian ideograph */ - {"\xB5", 0, 0x234445}, /* East Asian ideograph */ - {"\xB2", 0, 0x234448}, /* East Asian ideograph */ - {"\xBA", 0, 0x234454}, /* East Asian ideograph */ - {"\xB9", 0, 0x23445D}, /* East Asian ideograph */ - {"\xBE", 0, 0x234528}, /* East Asian ideograph */ - {"\xB3", 0, 0x2D5E43}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page282 = { - marc8r_31page282_flat, 0 -}; -/* PAGE 281 */ -struct yaz_iconv_trie_flat marc8r_31page281_flat[] = { - {"\x80", 0, 0x215D5A}, /* East Asian ideograph */ - {"\xAC", 0, 0x215D5B}, /* East Asian ideograph */ - {"\x85", 0, 0x215D5C}, /* East Asian ideograph */ - {"\x98", 0, 0x215D5D}, /* East Asian ideograph */ - {"\x96", 0, 0x215D5E}, /* East Asian ideograph */ - {"\x93", 0, 0x215D60}, /* East Asian ideograph */ - {"\x9C", 0, 0x215D61}, /* East Asian ideograph */ - {"\xBB", 0, 0x215D63}, /* East Asian ideograph */ - {"\xB3", 0, 0x215D64}, /* East Asian ideograph */ - {"\xB7", 0, 0x215D66}, /* East Asian ideograph */ - {"\xBC", 0, 0x215D69}, /* East Asian ideograph */ - {"\x92", 0, 0x23422A}, /* East Asian ideograph */ - {"\xA2", 0, 0x23424F}, /* East Asian ideograph */ - {"\x83", 0, 0x23432F}, /* East Asian ideograph */ - {"\xA5", 0, 0x234331}, /* East Asian ideograph */ - {"\x82", 0, 0x234333}, /* East Asian ideograph */ - {"\xA8", 0, 0x234335}, /* East Asian ideograph */ - {"\xA4", 0, 0x234338}, /* East Asian ideograph */ - {"\x8D", 0, 0x23433F}, /* East Asian ideograph */ - {"\x88", 0, 0x234342}, /* East Asian ideograph */ - {"\x8E", 0, 0x234345}, /* East Asian ideograph */ - {"\xA0", 0, 0x234346}, /* East Asian ideograph */ - {"\xAA", 0, 0x234349}, /* East Asian ideograph */ - {"\xA6", 0, 0x234350}, /* East Asian ideograph */ - {"\x9A", 0, 0x234355}, /* East Asian ideograph */ - {"\xAB", 0, 0x234358}, /* East Asian ideograph */ - {"\x91", 0, 0x23435B}, /* East Asian ideograph */ - {"\x9B", 0, 0x23435D}, /* East Asian ideograph */ - {"\xA3", 0, 0x234364}, /* East Asian ideograph */ - {"\xB6", 0, 0x234376}, /* East Asian ideograph */ - {"\xBE", 0, 0x234379}, /* East Asian ideograph */ - {"\xB2", 0, 0x23442A}, /* East Asian ideograph */ - {"\xAE", 0, 0x275E48}, /* East Asian ideograph */ - {"\xB9", 0, 0x2D5E3B}, /* East Asian ideograph */ - {"\x95", 0, 0x395E3D}, /* East Asian ideograph */ - {"\xAD", 0, 0x4B5D70}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page281 = { - marc8r_31page281_flat, 0 -}; -/* PAGE 280 */ -struct yaz_iconv_trie_flat marc8r_31page280_flat[] = { - {"\x80", 0, 0x215D53}, /* East Asian ideograph */ - {"\x8B", 0, 0x215D54}, /* East Asian ideograph */ - {"\x9B", 0, 0x215D55}, /* East Asian ideograph */ - {"\xA4", 0, 0x215D56}, /* East Asian ideograph */ - {"\x91", 0, 0x215D57}, /* East Asian ideograph */ - {"\xB8", 0, 0x215D59}, /* East Asian ideograph */ - {"\xBB", 0, 0x215D5F}, /* East Asian ideograph */ - {"\x89", 0, 0x234252}, /* East Asian ideograph */ - {"\x8D", 0, 0x234254}, /* East Asian ideograph */ - {"\x88", 0, 0x234255}, /* East Asian ideograph */ - {"\xA6", 0, 0x234261}, /* East Asian ideograph */ - {"\x9E", 0, 0x234264}, /* East Asian ideograph */ - {"\x90", 0, 0x23426B}, /* East Asian ideograph */ - {"\xAB", 0, 0x23426C}, /* East Asian ideograph */ - {"\xAD", 0, 0x23426F}, /* East Asian ideograph */ - {"\xAC", 0, 0x234270}, /* East Asian ideograph */ - {"\x8F", 0, 0x234271}, /* East Asian ideograph */ - {"\xA0", 0, 0x234277}, /* East Asian ideograph */ - {"\x8E", 0, 0x234323}, /* East Asian ideograph */ - {"\x8C", 0, 0x234326}, /* East Asian ideograph */ - {"\x96", 0, 0x234327}, /* East Asian ideograph */ - {"\x9A", 0, 0x23432B}, /* East Asian ideograph */ - {"\x81", 0, 0x23432E}, /* East Asian ideograph */ - {"\xBC", 0, 0x234337}, /* East Asian ideograph */ - {"\xB6", 0, 0x23433E}, /* East Asian ideograph */ - {"\xBA", 0, 0x234343}, /* East Asian ideograph */ - {"\xB7", 0, 0x234347}, /* East Asian ideograph */ - {"\xBE", 0, 0x234354}, /* East Asian ideograph */ - {"\xBF", 0, 0x234362}, /* East Asian ideograph */ - {"\x85", 0, 0x2D3C38}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D5228}, /* East Asian ideograph */ - {"\x97", 0, 0x33502A}, /* East Asian ideograph */ - {"\x84", 0, 0x335E3D}, /* East Asian ideograph */ - {"\xB4", 0, 0x395E42}, /* East Asian ideograph */ - {"\xB1", 0, 0x514E5B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page280 = { - marc8r_31page280_flat, 0 -}; -/* PAGE 279 */ -struct yaz_iconv_trie_flat marc8r_31page279_flat[] = { - {"\xA3", 0, 0x215D47}, /* East Asian ideograph */ - {"\x8D", 0, 0x215D48}, /* East Asian ideograph */ - {"\x95", 0, 0x215D49}, /* East Asian ideograph */ - {"\x89", 0, 0x215D4A}, /* East Asian ideograph */ - {"\x94", 0, 0x215D4B}, /* East Asian ideograph */ - {"\x9E", 0, 0x215D4C}, /* East Asian ideograph */ - {"\x90", 0, 0x215D4D}, /* East Asian ideograph */ - {"\xB7", 0, 0x215D4F}, /* East Asian ideograph */ - {"\xB8", 0, 0x215D50}, /* East Asian ideograph */ - {"\xBD", 0, 0x215D51}, /* East Asian ideograph */ - {"\xBE", 0, 0x215D52}, /* East Asian ideograph */ - {"\xB4", 0, 0x215D58}, /* East Asian ideograph (variant of EACC 4B5D58) */ - {"\x84", 0, 0x234223}, /* East Asian ideograph */ - {"\x81", 0, 0x234225}, /* East Asian ideograph */ - {"\xAB", 0, 0x234226}, /* East Asian ideograph */ - {"\x8A", 0, 0x234227}, /* East Asian ideograph */ - {"\xA5", 0, 0x234228}, /* East Asian ideograph */ - {"\xA8", 0, 0x23422C}, /* East Asian ideograph */ - {"\x87", 0, 0x23422E}, /* East Asian ideograph */ - {"\x83", 0, 0x23422F}, /* East Asian ideograph */ - {"\x80", 0, 0x234231}, /* East Asian ideograph */ - {"\x98", 0, 0x234232}, /* East Asian ideograph */ - {"\x88", 0, 0x234236}, /* East Asian ideograph */ - {"\xA6", 0, 0x234237}, /* East Asian ideograph */ - {"\x9C", 0, 0x234238}, /* East Asian ideograph */ - {"\xA4", 0, 0x23423B}, /* East Asian ideograph */ - {"\x92", 0, 0x234243}, /* East Asian ideograph */ - {"\x96", 0, 0x23424A}, /* East Asian ideograph */ - {"\x91", 0, 0x23424B}, /* East Asian ideograph */ - {"\x86", 0, 0x23424E}, /* East Asian ideograph */ - {"\xB0", 0, 0x234251}, /* East Asian ideograph */ - {"\xBA", 0, 0x234258}, /* East Asian ideograph */ - {"\xAE", 0, 0x23425C}, /* East Asian ideograph */ - {"\xB3", 0, 0x23425F}, /* East Asian ideograph */ - {"\xB5", 0, 0x234268}, /* East Asian ideograph */ - {"\xB9", 0, 0x23426D}, /* East Asian ideograph */ - {"\xBF", 0, 0x234274}, /* East Asian ideograph */ - {"\xB6", 0, 0x23427E}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D5D56}, /* East Asian ideograph */ - {"\xA1", 0, 0x335E21}, /* East Asian ideograph */ - {"\xB4", 0, 0x4B5D58}, /* East Asian ideograph */ - {"\xAC", 0, 0x4B5E3F}, /* East Asian ideograph */ - {"\xA9", 0, 0x4D4862}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page279 = { - marc8r_31page279_flat, 0 -}; -/* PAGE 278 */ -struct yaz_iconv_trie_flat marc8r_31page278_flat[] = { - {"\x80", 0, 0x215D34}, /* East Asian ideograph */ - {"\x81", 0, 0x215D35}, /* East Asian ideograph */ - {"\x87", 0, 0x215D36}, /* East Asian ideograph */ - {"\x89", 0, 0x215D37}, /* East Asian ideograph */ - {"\x8B", 0, 0x215D38}, /* East Asian ideograph */ - {"\x8D", 0, 0x215D3A}, /* East Asian ideograph */ - {"\x8E", 0, 0x215D3B}, /* East Asian ideograph */ - {"\x8F", 0, 0x215D3C}, /* East Asian ideograph */ - {"\x90", 0, 0x215D3D}, /* East Asian ideograph */ - {"\x91", 0, 0x215D3E}, /* East Asian ideograph */ - {"\x9D", 0, 0x215D3F}, /* East Asian ideograph */ - {"\x98", 0, 0x215D40}, /* East Asian ideograph */ - {"\x97", 0, 0x215D41}, /* East Asian ideograph */ - {"\x9C", 0, 0x215D42}, /* East Asian ideograph */ - {"\xB5", 0, 0x215D43}, /* East Asian ideograph */ - {"\xA6", 0, 0x215D44}, /* East Asian ideograph */ - {"\xA3", 0, 0x215D45}, /* East Asian ideograph */ - {"\xA7", 0, 0x215D46}, /* East Asian ideograph */ - {"\x82", 0, 0x23415A}, /* East Asian ideograph */ - {"\x84", 0, 0x23415B}, /* East Asian ideograph */ - {"\x83", 0, 0x23415C}, /* East Asian ideograph */ - {"\x94", 0, 0x234161}, /* East Asian ideograph */ - {"\x93", 0, 0x234162}, /* East Asian ideograph */ - {"\x95", 0, 0x234163}, /* East Asian ideograph */ - {"\x99", 0, 0x234164}, /* East Asian ideograph */ - {"\xA2", 0, 0x234168}, /* East Asian ideograph */ - {"\xAD", 0, 0x234169}, /* East Asian ideograph */ - {"\xB7", 0, 0x23416A}, /* East Asian ideograph */ - {"\xBA", 0, 0x23416B}, /* East Asian ideograph */ - {"\xB2", 0, 0x23416F}, /* East Asian ideograph */ - {"\xA8", 0, 0x234171}, /* East Asian ideograph */ - {"\xB6", 0, 0x234172}, /* East Asian ideograph */ - {"\xAE", 0, 0x234173}, /* East Asian ideograph */ - {"\xB4", 0, 0x234174}, /* East Asian ideograph */ - {"\xB1", 0, 0x234177}, /* East Asian ideograph */ - {"\xA9", 0, 0x234179}, /* East Asian ideograph */ - {"\xB8", 0, 0x23417A}, /* East Asian ideograph */ - {"\xB9", 0, 0x234221}, /* East Asian ideograph */ - {"\xA4", 0, 0x234222}, /* East Asian ideograph */ - {"\xBE", 0, 0x234233}, /* East Asian ideograph */ - {"\xBF", 0, 0x234248}, /* East Asian ideograph */ - {"\x8C", 0, 0x275763}, /* East Asian ideograph */ - {"\x8A", 0, 0x275D38}, /* East Asian ideograph */ - {"\xBC", 0, 0x333421}, /* East Asian ideograph */ - {"\x86", 0, 0x4B5D36}, /* East Asian ideograph */ - {"\x88", 0, 0x4B5D38}, /* East Asian ideograph */ - {"\xA1", 0, 0x4B5D42}, /* East Asian ideograph */ - {"\x9B", 0, 0x4D4176}, /* East Asian ideograph */ - {"\x96", 0, 0x513421}, /* East Asian ideograph */ - {"\x9F", 0, 0x696E5C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page278 = { - marc8r_31page278_flat, 0 -}; -/* PAGE 277 */ -struct yaz_iconv_trie_flat marc8r_31page277_flat[] = { - {"\x87", 0, 0x215D29}, /* East Asian ideograph */ - {"\x89", 0, 0x215D2A}, /* East Asian ideograph */ - {"\x8B", 0, 0x215D2B}, /* East Asian ideograph */ - {"\x83", 0, 0x215D2C}, /* East Asian ideograph */ - {"\x92", 0, 0x215D2D}, /* East Asian ideograph */ - {"\xA3", 0, 0x215D2E}, /* East Asian ideograph */ - {"\x9E", 0, 0x215D2F}, /* East Asian ideograph */ - {"\x9C", 0, 0x215D30}, /* East Asian ideograph */ - {"\xAB", 0, 0x215D31}, /* East Asian ideograph */ - {"\xAC", 0, 0x215D32}, /* East Asian ideograph */ - {"\xBA", 0, 0x215D33}, /* East Asian ideograph */ - {"\x85", 0, 0x23406D}, /* East Asian ideograph */ - {"\x82", 0, 0x23406F}, /* East Asian ideograph */ - {"\x8A", 0, 0x234070}, /* East Asian ideograph */ - {"\x86", 0, 0x234071}, /* East Asian ideograph */ - {"\x8C", 0, 0x234072}, /* East Asian ideograph */ - {"\x81", 0, 0x234073}, /* East Asian ideograph */ - {"\x91", 0, 0x23407B}, /* East Asian ideograph */ - {"\x90", 0, 0x23407D}, /* East Asian ideograph */ - {"\x8E", 0, 0x23407E}, /* East Asian ideograph */ - {"\x8D", 0, 0x234124}, /* East Asian ideograph */ - {"\x93", 0, 0x234125}, /* East Asian ideograph */ - {"\x9D", 0, 0x23412B}, /* East Asian ideograph */ - {"\x9A", 0, 0x23412C}, /* East Asian ideograph */ - {"\xA2", 0, 0x234130}, /* East Asian ideograph */ - {"\x9B", 0, 0x234134}, /* East Asian ideograph (variant of EACC 4D4134) */ - {"\xA8", 0, 0x234137}, /* East Asian ideograph */ - {"\xAA", 0, 0x23413D}, /* East Asian ideograph */ - {"\xAF", 0, 0x234141}, /* East Asian ideograph */ - {"\xB1", 0, 0x234142}, /* East Asian ideograph */ - {"\xAD", 0, 0x234147}, /* East Asian ideograph */ - {"\xAE", 0, 0x234148}, /* East Asian ideograph */ - {"\xB4", 0, 0x23414B}, /* East Asian ideograph */ - {"\xB2", 0, 0x23414C}, /* East Asian ideograph */ - {"\xB5", 0, 0x23414D}, /* East Asian ideograph */ - {"\xBF", 0, 0x234156}, /* East Asian ideograph */ - {"\xBD", 0, 0x234157}, /* East Asian ideograph */ - {"\x96", 0, 0x2D5D2F}, /* East Asian ideograph */ - {"\xBC", 0, 0x334A28}, /* East Asian ideograph */ - {"\xBE", 0, 0x354156}, /* East Asian ideograph */ - {"\xBB", 0, 0x395D23}, /* East Asian ideograph */ - {"\xB8", 0, 0x4B5D34}, /* East Asian ideograph */ - {"\x9B", 0, 0x4D4134}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page277 = { - marc8r_31page277_flat, 0 -}; -/* PAGE 276 */ -struct yaz_iconv_trie_flat marc8r_31page276_flat[] = { - {"\x89", 0, 0x215C78}, /* East Asian ideograph */ - {"\x8B", 0, 0x215C79}, /* East Asian ideograph */ - {"\x8A", 0, 0x215C7A}, /* East Asian ideograph */ - {"\x92", 0, 0x215C7B}, /* East Asian ideograph */ - {"\x8D", 0, 0x215C7C}, /* East Asian ideograph */ - {"\x8C", 0, 0x215C7D}, /* East Asian ideograph */ - {"\x97", 0, 0x215C7E}, /* East Asian ideograph */ - {"\xA3", 0, 0x215D21}, /* East Asian ideograph */ - {"\xA5", 0, 0x215D22}, /* East Asian ideograph */ - {"\xAC", 0, 0x215D23}, /* East Asian ideograph */ - {"\xA9", 0, 0x215D24}, /* East Asian ideograph */ - {"\xAA", 0, 0x215D25}, /* East Asian ideograph */ - {"\xB5", 0, 0x215D26}, /* East Asian ideograph */ - {"\xB8", 0, 0x215D27}, /* East Asian ideograph */ - {"\xB7", 0, 0x215D28}, /* East Asian ideograph */ - {"\x83", 0, 0x23403B}, /* East Asian ideograph */ - {"\x86", 0, 0x23403E}, /* East Asian ideograph */ - {"\x85", 0, 0x23403F}, /* East Asian ideograph */ - {"\x88", 0, 0x234040}, /* East Asian ideograph */ - {"\x87", 0, 0x234041}, /* East Asian ideograph */ - {"\x90", 0, 0x234042}, /* East Asian ideograph */ - {"\x8E", 0, 0x234043}, /* East Asian ideograph */ - {"\x99", 0, 0x234048}, /* East Asian ideograph */ - {"\x9C", 0, 0x234049}, /* East Asian ideograph */ - {"\x96", 0, 0x23404D}, /* East Asian ideograph */ - {"\x98", 0, 0x234050}, /* East Asian ideograph */ - {"\x9A", 0, 0x234052}, /* East Asian ideograph */ - {"\xA1", 0, 0x234053}, /* East Asian ideograph */ - {"\xA4", 0, 0x234056}, /* East Asian ideograph */ - {"\xAF", 0, 0x234061}, /* East Asian ideograph */ - {"\xAE", 0, 0x234062}, /* East Asian ideograph */ - {"\xBA", 0, 0x234066}, /* East Asian ideograph */ - {"\xB2", 0, 0x234068}, /* East Asian ideograph */ - {"\xB9", 0, 0x234069}, /* East Asian ideograph */ - {"\xB6", 0, 0x23406A}, /* East Asian ideograph */ - {"\xB4", 0, 0x23406B}, /* East Asian ideograph */ - {"\xB3", 0, 0x23406C}, /* East Asian ideograph */ - {"\x94", 0, 0x275D2A}, /* East Asian ideograph */ - {"\x9D", 0, 0x275D2F}, /* East Asian ideograph */ - {"\xB1", 0, 0x275D32}, /* East Asian ideograph */ - {"\xBF", 0, 0x275D34}, /* East Asian ideograph */ - {"\xBE", 0, 0x29415C}, /* East Asian ideograph */ - {"\xBD", 0, 0x29415D}, /* East Asian ideograph */ - {"\xA7", 0, 0x2D5D23}, /* East Asian ideograph */ - {"\x8F", 0, 0x2F4053}, /* East Asian ideograph */ - {"\xA2", 0, 0x4B5D2B}, /* East Asian ideograph */ - {"\x9E", 0, 0x704C2A}, /* East Asian ideograph */ - {"\xB0", 0, 0x707523}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page276 = { - marc8r_31page276_flat, 0 -}; -/* PAGE 275 */ -struct yaz_iconv_trie_flat marc8r_31page275_flat[] = { - {"\x82", 0, 0x215C6F}, /* East Asian ideograph */ - {"\x89", 0, 0x215C70}, /* East Asian ideograph */ - {"\x92", 0, 0x215C71}, /* East Asian ideograph */ - {"\x99", 0, 0x215C72}, /* East Asian ideograph */ - {"\xAD", 0, 0x215C73}, /* East Asian ideograph */ - {"\xB0", 0, 0x215C74}, /* East Asian ideograph */ - {"\xA7", 0, 0x215C75}, /* East Asian ideograph */ - {"\xB1", 0, 0x215C76}, /* East Asian ideograph */ - {"\xB9", 0, 0x215C77}, /* East Asian ideograph (variant of EACC 4B5C77) */ - {"\x84", 0, 0x233F49}, /* East Asian ideograph */ - {"\x86", 0, 0x233F4C}, /* East Asian ideograph */ - {"\x80", 0, 0x233F4E}, /* East Asian ideograph */ - {"\x87", 0, 0x233F50}, /* East Asian ideograph */ - {"\x8F", 0, 0x233F57}, /* East Asian ideograph */ - {"\x91", 0, 0x233F58}, /* East Asian ideograph */ - {"\x96", 0, 0x233F5A}, /* East Asian ideograph */ - {"\x94", 0, 0x233F5C}, /* East Asian ideograph */ - {"\x8B", 0, 0x233F60}, /* East Asian ideograph */ - {"\xA3", 0, 0x233F62}, /* East Asian ideograph (Version J extension) */ - {"\x98", 0, 0x233F63}, /* East Asian ideograph */ - {"\x9C", 0, 0x233F64}, /* East Asian ideograph */ - {"\xA0", 0, 0x233F66}, /* East Asian ideograph */ - {"\xA2", 0, 0x233F67}, /* East Asian ideograph */ - {"\x9E", 0, 0x233F6A}, /* East Asian ideograph */ - {"\xA4", 0, 0x233F71}, /* East Asian ideograph */ - {"\x9A", 0, 0x233F72}, /* East Asian ideograph */ - {"\xA5", 0, 0x233F74}, /* East Asian ideograph */ - {"\xAF", 0, 0x233F77}, /* East Asian ideograph */ - {"\xAB", 0, 0x233F79}, /* East Asian ideograph */ - {"\xB2", 0, 0x234021}, /* East Asian ideograph */ - {"\xA6", 0, 0x234024}, /* East Asian ideograph */ - {"\xB4", 0, 0x23402B}, /* East Asian ideograph */ - {"\xB6", 0, 0x23402C}, /* East Asian ideograph */ - {"\xBA", 0, 0x234031}, /* East Asian ideograph */ - {"\xBB", 0, 0x234032}, /* East Asian ideograph */ - {"\x99", 0, 0x4B5C72}, /* East Asian ideograph (variant of EACC 215C72) */ - {"\xB9", 0, 0x4B5C77}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page275 = { - marc8r_31page275_flat, 0 -}; -/* PAGE 274 */ -struct yaz_iconv_trie_flat marc8r_31page274_flat[] = { - {"\x8E", 0, 0x215C67}, /* East Asian ideograph */ - {"\x8A", 0, 0x215C68}, /* East Asian ideograph */ - {"\xA1", 0, 0x215C6A}, /* East Asian ideograph */ - {"\xA8", 0, 0x215C6B}, /* East Asian ideograph */ - {"\xAD", 0, 0x215C6C}, /* East Asian ideograph */ - {"\xB5", 0, 0x215C6D}, /* East Asian ideograph */ - {"\xBD", 0, 0x215C6E}, /* East Asian ideograph */ - {"\x89", 0, 0x233E68}, /* East Asian ideograph */ - {"\x95", 0, 0x233E6F}, /* East Asian ideograph */ - {"\x87", 0, 0x233E75}, /* East Asian ideograph */ - {"\x88", 0, 0x233E78}, /* East Asian ideograph */ - {"\x83", 0, 0x233E79}, /* East Asian ideograph */ - {"\x9D", 0, 0x233F22}, /* East Asian ideograph */ - {"\x9F", 0, 0x233F23}, /* East Asian ideograph */ - {"\xA2", 0, 0x233F26}, /* East Asian ideograph */ - {"\x98", 0, 0x233F27}, /* East Asian ideograph */ - {"\x9B", 0, 0x233F28}, /* East Asian ideograph */ - {"\x9C", 0, 0x233F2A}, /* East Asian ideograph */ - {"\x97", 0, 0x233F2C}, /* East Asian ideograph */ - {"\xA4", 0, 0x233F2D}, /* East Asian ideograph */ - {"\xAF", 0, 0x233F2E}, /* East Asian ideograph */ - {"\xAA", 0, 0x233F2F}, /* East Asian ideograph */ - {"\xB0", 0, 0x233F32}, /* East Asian ideograph */ - {"\xB4", 0, 0x233F33}, /* East Asian ideograph */ - {"\xB2", 0, 0x233F34}, /* East Asian ideograph */ - {"\xAB", 0, 0x233F3E}, /* East Asian ideograph */ - {"\xB3", 0, 0x233F3F}, /* East Asian ideograph */ - {"\xBC", 0, 0x233F46}, /* East Asian ideograph */ - {"\xBE", 0, 0x233F47}, /* East Asian ideograph */ - {"\xBF", 0, 0x233F4A}, /* East Asian ideograph */ - {"\x91", 0, 0x275C73}, /* East Asian ideograph */ - {"\x81", 0, 0x27616A}, /* East Asian ideograph */ - {"\x8F", 0, 0x293F23}, /* East Asian ideograph */ - {"\x93", 0, 0x293F4C}, /* East Asian ideograph */ - {"\xA7", 0, 0x293F5A}, /* East Asian ideograph */ - {"\xB8", 0, 0x294021}, /* East Asian ideograph */ - {"\x90", 0, 0x29402C}, /* East Asian ideograph */ - {"\xA6", 0, 0x294040}, /* East Asian ideograph */ - {"\x84", 0, 0x335F34}, /* East Asian ideograph */ - {"\x85", 0, 0x34782A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page274 = { - marc8r_31page274_flat, 0 -}; -/* PAGE 273 */ -struct yaz_iconv_trie_flat marc8r_31page273_flat[] = { - {"\x81", 0, 0x215C56}, /* East Asian ideograph */ - {"\x84", 0, 0x215C57}, /* East Asian ideograph */ - {"\x82", 0, 0x215C58}, /* East Asian ideograph */ - {"\x80", 0, 0x215C59}, /* East Asian ideograph */ - {"\x87", 0, 0x215C5A}, /* East Asian ideograph */ - {"\x8A", 0, 0x215C5B}, /* East Asian ideograph */ - {"\x90", 0, 0x215C5C}, /* East Asian ideograph */ - {"\x8F", 0, 0x215C5D}, /* East Asian ideograph */ - {"\x91", 0, 0x215C5E}, /* East Asian ideograph */ - {"\x95", 0, 0x215C5F}, /* East Asian ideograph */ - {"\xA3", 0, 0x215C60}, /* East Asian ideograph */ - {"\xA2", 0, 0x215C61}, /* East Asian ideograph */ - {"\xAA", 0, 0x215C62}, /* East Asian ideograph */ - {"\xA6", 0, 0x215C63}, /* East Asian ideograph */ - {"\xB5", 0, 0x215C64}, /* East Asian ideograph */ - {"\xB1", 0, 0x215C65}, /* East Asian ideograph */ - {"\xB8", 0, 0x215C66}, /* East Asian ideograph */ - {"\x85", 0, 0x233E2C}, /* East Asian ideograph */ - {"\x83", 0, 0x233E34}, /* East Asian ideograph */ - {"\x88", 0, 0x233E37}, /* East Asian ideograph */ - {"\x8B", 0, 0x233E3A}, /* East Asian ideograph */ - {"\x99", 0, 0x233E3F}, /* East Asian ideograph */ - {"\x97", 0, 0x233E40}, /* East Asian ideograph */ - {"\x9B", 0, 0x233E43}, /* East Asian ideograph */ - {"\x9C", 0, 0x233E44}, /* East Asian ideograph */ - {"\xA1", 0, 0x233E48}, /* East Asian ideograph */ - {"\xA8", 0, 0x233E51}, /* East Asian ideograph */ - {"\xA0", 0, 0x233E54}, /* East Asian ideograph */ - {"\xAF", 0, 0x233E58}, /* East Asian ideograph */ - {"\xB3", 0, 0x233E59}, /* East Asian ideograph */ - {"\xB6", 0, 0x233E5B}, /* East Asian ideograph */ - {"\xB0", 0, 0x233E5D}, /* East Asian ideograph */ - {"\xAD", 0, 0x233E5F}, /* East Asian ideograph */ - {"\xB2", 0, 0x233E61}, /* East Asian ideograph */ - {"\xBD", 0, 0x233E6A}, /* East Asian ideograph */ - {"\xBE", 0, 0x233E72}, /* East Asian ideograph */ - {"\xAE", 0, 0x275C6D}, /* East Asian ideograph */ - {"\xB9", 0, 0x275C71}, /* East Asian ideograph */ - {"\xBB", 0, 0x275C74}, /* East Asian ideograph */ - {"\x93", 0, 0x275C75}, /* East Asian ideograph */ - {"\xAC", 0, 0x293F5C}, /* East Asian ideograph */ - {"\xBA", 0, 0x29402B}, /* East Asian ideograph */ - {"\x9D", 0, 0x294031}, /* East Asian ideograph */ - {"\x89", 0, 0x2D5C5B}, /* East Asian ideograph */ - {"\xB4", 0, 0x2F4A2E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page273 = { - marc8r_31page273_flat, 0 -}; -/* PAGE 272 */ -struct yaz_iconv_trie_dir marc8r_31page272_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x215C41} /* East Asian ideograph */, - {0, 0, 0x215C37} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x233D6A} /* East Asian ideograph */, - {0, 0, 0x4B5C50} /* East Asian ideograph */, - {0, 0, 0x233D5B} /* East Asian ideograph */, - {0, 0, 0x215C3C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x233D67} /* East Asian ideograph */, - {0, 0, 0x33477B} /* East Asian ideograph */, - {0, 0, 0x215C34} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C3F} /* East Asian ideograph */, - {0, 0, 0x215C3E} /* East Asian ideograph */, - {0, 0, 0x215C3D} /* East Asian ideograph */, - {0, 0, 0x215C38} /* East Asian ideograph */, - {0, 0, 0x215C40} /* East Asian ideograph */, - {0, 0, 0x233D5D} /* East Asian ideograph */, - {0, 0, 0x215C36} /* East Asian ideograph */, - {0, 0, 0x215C39} /* East Asian ideograph */, - {0, 0, 0x215C3A} /* East Asian ideograph */, - {0, 0, 0x696E28} /* East Asian ideograph */, - {0, 0, 0x275C53} /* East Asian ideograph */, - {0, 0, 0x215C43} /* East Asian ideograph */, - {0, 0, 0x4B5C47} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x233D78} /* East Asian ideograph */, - {0, 0, 0x215C45} /* East Asian ideograph */, - {0, 0, 0x233D75} /* East Asian ideograph */, - {0, 0, 0x215C48} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C44} /* East Asian ideograph */, - {0, 0, 0x39483B} /* East Asian ideograph */, - {0, 0, 0x233D74} /* East Asian ideograph */, - {0, 0, 0x215C46} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C47} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x215C4B} /* East Asian ideograph */, - {0, 0, 0x215C49} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x233D7B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C4C} /* East Asian ideograph */, - {0, 0, 0x215C4A} /* East Asian ideograph */, - {0, 0, 0x233E25} /* East Asian ideograph */, - {0, 0, 0x233E21} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C50} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C4E} /* East Asian ideograph */, - {0, 0, 0x215C4D} /* East Asian ideograph */, - {0, 0, 0x233E28} /* East Asian ideograph */, - {0, 0, 0x215C51} /* East Asian ideograph */, - {0, 0, 0x215C4F} /* East Asian ideograph */, - {0, 0, 0x233E26} /* East Asian ideograph */, - {0, 0, 0x215C53} /* East Asian ideograph */, - {0, 0, 0x233E2A} /* East Asian ideograph */, - {0, 0, 0x215C52} /* East Asian ideograph */, - {0, 0, 0x215C55} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C54} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page272 = { - 0, marc8r_31page272_dir -}; -/* PAGE 271 */ -struct yaz_iconv_trie_dir marc8r_31page271_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x215B77} /* East Asian ideograph */, - {0, 0, 0x215B74} /* East Asian ideograph */, - {0, 0, 0x275C49} /* East Asian ideograph */, - {0, 0, 0x215B7A} /* East Asian ideograph */, - {0, 0, 0x233D3F} /* East Asian ideograph */, - {0, 0, 0x215B7C} /* East Asian ideograph */, - {0, 0, 0x215B75} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x233D40} /* East Asian ideograph */, - {0, 0, 0x275C4F} /* East Asian ideograph */, - {0, 0, 0x275C45} /* East Asian ideograph */, - {0, 0, 0x233D45} /* East Asian ideograph */, - {0, 0, 0x233D48} /* East Asian ideograph */, - {0, 0, 0x215C26} /* East Asian ideograph */, - {0, 0, 0x2F3D5D} /* East Asian ideograph */, - {0, 0, 0x215C2A} /* East Asian ideograph */, - {0, 0, 0x215C24} /* East Asian ideograph */, - {0, 0, 0x233D44} /* East Asian ideograph */, - {0, 0, 0x275C48} /* East Asian ideograph */, - {0, 0, 0x2D5C48} /* East Asian ideograph */, - {0, 0, 0x215C2E} /* East Asian ideograph */, - {0, 0, 0x2D3D67} /* East Asian ideograph */, - {0, 0, 0x215C2C} /* East Asian ideograph */, - {0, 0, 0x215C22} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215B7D} /* East Asian ideograph */, - {0, 0, 0x215C28} /* East Asian ideograph */, - {0, 0, 0x215C2D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C23} /* East Asian ideograph */, - {0, 0, 0x215C27} /* East Asian ideograph */, - {0, 0, 0x215C21} /* East Asian ideograph */, - {0, 0, 0x215C29} /* East Asian ideograph */, - {0, 0, 0x233D49} /* East Asian ideograph */, - {0, 0, 0x215C2B} /* East Asian ideograph */, - {0, 0, 0x215B7E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x275C5C} /* East Asian ideograph */, - {0, 0, 0x696D7A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x33392F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x233D4E} /* East Asian ideograph */, - {0, 0, 0x233D4A} /* East Asian ideograph */, - {0, 0, 0x215C2F} /* East Asian ideograph */, - {0, 0, 0x233D58} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C31} /* East Asian ideograph */, - {0, 0, 0x215C33} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x233D57} /* East Asian ideograph */, - {0, 0, 0x215C30} /* East Asian ideograph */, - {0, 0, 0x233D59} /* East Asian ideograph */, - {0, 0, 0x233D56} /* East Asian ideograph */, - {0, 0, 0x4B5C32} /* East Asian ideograph */, - {0, 0, 0x4B5C39} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275C5D} /* East Asian ideograph */, - {0, 0, 0x215C3B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215C42} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page271 = { - 0, marc8r_31page271_dir -}; -/* PAGE 270 */ -struct yaz_iconv_trie_flat marc8r_31page270_flat[] = { - {"\x90", 0, 0x213D2D}, /* East Asian ideograph */ - {"\x8D", 0, 0x21632B}, /* East Asian ideograph */ - {"\x94", 0, 0x21632C}, /* East Asian ideograph */ - {"\x9C", 0, 0x21632D}, /* East Asian ideograph */ - {"\x8E", 0, 0x23605B}, /* East Asian ideograph */ - {"\x93", 0, 0x236061}, /* East Asian ideograph */ - {"\x95", 0, 0x236062}, /* East Asian ideograph */ - {"\xA0", 0, 0x23606B}, /* East Asian ideograph */ - {"\xA5", 0, 0x236071}, /* East Asian ideograph */ - {"\xA4", 0, 0x236072}, /* East Asian ideograph */ - {"\x83", 0, 0x276322}, /* East Asian ideograph */ - {"\x84", 0, 0x276324}, /* East Asian ideograph */ - {"\x88", 0, 0x276325}, /* East Asian ideograph */ - {"\x87", 0, 0x276326}, /* East Asian ideograph */ - {"\x89", 0, 0x276327}, /* East Asian ideograph */ - {"\x8A", 0, 0x276328}, /* East Asian ideograph */ - {"\x8C", 0, 0x276329}, /* East Asian ideograph */ - {"\x8B", 0, 0x27632A}, /* East Asian ideograph */ - {"\x99", 0, 0x27632B}, /* East Asian ideograph */ - {"\x9A", 0, 0x27632C}, /* East Asian ideograph */ - {"\x9F", 0, 0x27632D}, /* East Asian ideograph */ - {"\x80", 0, 0x295F7C}, /* East Asian ideograph */ - {"\x86", 0, 0x296028}, /* East Asian ideograph */ - {"\x85", 0, 0x29602B}, /* East Asian ideograph */ - {"\x9B", 0, 0x296062}, /* East Asian ideograph */ - {"\x9D", 0, 0x2D4F29}, /* East Asian ideograph */ - {"\xA2", 0, 0x393577}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page270 = { - marc8r_31page270_flat, 0 -}; -/* PAGE 269 */ -struct yaz_iconv_trie_flat marc8r_31page269_flat[] = { - {"\x86", 0, 0x215B66}, /* East Asian ideograph */ - {"\x85", 0, 0x215B67}, /* East Asian ideograph */ - {"\x84", 0, 0x215B68}, /* East Asian ideograph */ - {"\x8E", 0, 0x215B6A}, /* East Asian ideograph */ - {"\x91", 0, 0x215B6B}, /* East Asian ideograph */ - {"\x94", 0, 0x215B6C}, /* East Asian ideograph */ - {"\xB0", 0, 0x215B6D}, /* East Asian ideograph (variant of EACC 275B6D) */ - {"\xA6", 0, 0x215B6E}, /* East Asian ideograph */ - {"\xA2", 0, 0x215B6F}, /* East Asian ideograph */ - {"\xAA", 0, 0x215B70}, /* East Asian ideograph */ - {"\xA5", 0, 0x215B71}, /* East Asian ideograph */ - {"\xAB", 0, 0x215B73}, /* East Asian ideograph */ - {"\xB7", 0, 0x215B76}, /* East Asian ideograph */ - {"\xBD", 0, 0x215B7B}, /* East Asian ideograph */ - {"\x92", 0, 0x233C75}, /* East Asian ideograph */ - {"\x8B", 0, 0x233C77}, /* East Asian ideograph */ - {"\x8A", 0, 0x233C7A}, /* East Asian ideograph */ - {"\x93", 0, 0x233C7B}, /* East Asian ideograph */ - {"\x8D", 0, 0x233C7D}, /* East Asian ideograph */ - {"\x9A", 0, 0x233D21}, /* East Asian ideograph */ - {"\x95", 0, 0x233D22}, /* East Asian ideograph */ - {"\xA4", 0, 0x233D2F}, /* East Asian ideograph */ - {"\xAE", 0, 0x233D30}, /* East Asian ideograph */ - {"\xB9", 0, 0x233D35}, /* East Asian ideograph */ - {"\xBB", 0, 0x233D3C}, /* East Asian ideograph */ - {"\xAD", 0, 0x274C3C}, /* East Asian ideograph */ - {"\xB0", 0, 0x275B6D}, /* East Asian ideograph */ - {"\x99", 0, 0x275B7D}, /* East Asian ideograph */ - {"\x9E", 0, 0x275B7E}, /* East Asian ideograph */ - {"\x9B", 0, 0x275C33}, /* East Asian ideograph */ - {"\x90", 0, 0x275C34}, /* East Asian ideograph */ - {"\x9D", 0, 0x275C3A}, /* East Asian ideograph */ - {"\x82", 0, 0x275C3C}, /* East Asian ideograph */ - {"\x87", 0, 0x275C3E}, /* East Asian ideograph */ - {"\x9C", 0, 0x275C44}, /* East Asian ideograph */ - {"\x9F", 0, 0x275C50}, /* East Asian ideograph */ - {"\x81", 0, 0x275C51}, /* East Asian ideograph */ - {"\x88", 0, 0x275C56}, /* East Asian ideograph */ - {"\x98", 0, 0x275C57}, /* East Asian ideograph */ - {"\xA9", 0, 0x275C5A}, /* East Asian ideograph (variant of EACC 2D5C5A) */ - {"\xB8", 0, 0x293D4E}, /* East Asian ideograph */ - {"\xAF", 0, 0x2D5B7A}, /* East Asian ideograph */ - {"\xA8", 0, 0x2D5C2F}, /* East Asian ideograph */ - {"\xA9", 0, 0x2D5C5A}, /* East Asian ideograph */ - {"\xBA", 0, 0x33303A}, /* East Asian ideograph */ - {"\xB4", 0, 0x333768}, /* East Asian ideograph */ - {"\xB3", 0, 0x513D67}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page269 = { - marc8r_31page269_flat, 0 -}; -/* PAGE 268 */ -struct yaz_iconv_trie_dir marc8r_31page268_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x233C2D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4B5B52} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215B4F} /* East Asian ideograph */, - {0, 0, 0x215B51} /* East Asian ideograph */, - {0, 0, 0x233C30} /* East Asian ideograph */, - {0, 0, 0x233C33} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215B55} /* East Asian ideograph */, - {0, 0, 0x233C31} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x696D5A} /* East Asian ideograph */, - {0, 0, 0x215B54} /* East Asian ideograph */, - {0, 0, 0x215B57} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x233C3D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215B56} /* East Asian ideograph */, - {0, 0, 0x233C4B} /* East Asian ideograph */, - {0, 0, 0x233C48} /* East Asian ideograph */, - {0, 0, 0x233C49} /* East Asian ideograph */, - {0, 0, 0x233C4C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x233C4D} /* East Asian ideograph */, - {0, 0, 0x233C53} /* East Asian ideograph */, - {0, 0, 0x233C4E} /* East Asian ideograph */, - {0, 0, 0x215B58} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215B59} /* East Asian ideograph */, - {0, 0, 0x233C57} /* East Asian ideograph */, - {0, 0, 0x233C59} /* East Asian ideograph */, - {0, 0, 0x233C5A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275B32} /* East Asian ideograph */, - {0, 0, 0x275B33} /* East Asian ideograph */, - {0, 0, 0x275B35} /* East Asian ideograph */, - {0, 0, 0x275B36} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275B37} /* East Asian ideograph */, - {0, 0, 0x275B55} /* East Asian ideograph */, - {0, 0, 0x275B39} /* East Asian ideograph */, - {0, 0, 0x275B4A} /* East Asian ideograph */, - {0, 0, 0x275B38} /* East Asian ideograph */, - {0, 0, 0x275B58} /* East Asian ideograph */, - {0, 0, 0x293B3E} /* East Asian ideograph */, - {0, 0, 0x275B3A} /* East Asian ideograph */, - {0, 0, 0x293C5A} /* East Asian ideograph */, - {0, 0, 0x275B3B} /* East Asian ideograph */, - {0, 0, 0x293B42} /* East Asian ideograph */, - {0, 0, 0x275B3C} /* East Asian ideograph */, - {0, 0, 0x293B47} /* East Asian ideograph */, - {0, 0, 0x293B4F} /* East Asian ideograph */, - {0, 0, 0x293C57} /* East Asian ideograph */, - {0, 0, 0x293B3F} /* East Asian ideograph */, - {0, 0, 0x275B43} /* East Asian ideograph */, - {0, 0, 0x275B3E} /* East Asian ideograph */, - {0, 0, 0x275B3F} /* East Asian ideograph */, - {0, 0, 0x275B40} /* East Asian ideograph */, - {0, 0, 0x275B57} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page268 = { - 0, marc8r_31page268_dir -}; -/* PAGE 267 */ -struct yaz_iconv_trie_flat marc8r_31page267_flat[] = { - {"\x83", 0, 0x215B3D}, /* East Asian ideograph */ - {"\x89", 0, 0x215B3F}, /* East Asian ideograph */ - {"\x8A", 0, 0x215B40}, /* East Asian ideograph */ - {"\x94", 0, 0x215B41}, /* East Asian ideograph */ - {"\x92", 0, 0x215B42}, /* East Asian ideograph */ - {"\x95", 0, 0x215B43}, /* East Asian ideograph */ - {"\x93", 0, 0x215B44}, /* East Asian ideograph */ - {"\xA6", 0, 0x215B45}, /* East Asian ideograph */ - {"\x9B", 0, 0x215B46}, /* East Asian ideograph */ - {"\x9F", 0, 0x215B47}, /* East Asian ideograph */ - {"\x9D", 0, 0x215B48}, /* East Asian ideograph */ - {"\xA9", 0, 0x215B49}, /* East Asian ideograph */ - {"\xAA", 0, 0x215B4A}, /* East Asian ideograph */ - {"\x9C", 0, 0x215B4B}, /* East Asian ideograph */ - {"\xBB", 0, 0x215B4C}, /* East Asian ideograph */ - {"\xAF", 0, 0x215B4D}, /* East Asian ideograph */ - {"\xB8", 0, 0x215B4E}, /* East Asian ideograph */ - {"\xBE", 0, 0x215B50}, /* East Asian ideograph */ - {"\xBF", 0, 0x215B53}, /* East Asian ideograph */ - {"\x80", 0, 0x233B56}, /* East Asian ideograph */ - {"\x85", 0, 0x233B59}, /* East Asian ideograph */ - {"\x88", 0, 0x233B5A}, /* East Asian ideograph */ - {"\x87", 0, 0x233B5B}, /* East Asian ideograph */ - {"\xA7", 0, 0x233B63}, /* East Asian ideograph */ - {"\xAC", 0, 0x233B64}, /* East Asian ideograph */ - {"\x9E", 0, 0x233B6B}, /* East Asian ideograph */ - {"\xA5", 0, 0x233B6D}, /* East Asian ideograph */ - {"\xA0", 0, 0x233B6E}, /* East Asian ideograph */ - {"\x97", 0, 0x233B75}, /* East Asian ideograph */ - {"\xB6", 0, 0x233B78}, /* East Asian ideograph */ - {"\xAE", 0, 0x233B79}, /* East Asian ideograph */ - {"\xB3", 0, 0x233B7A}, /* East Asian ideograph */ - {"\xAD", 0, 0x233B7D}, /* East Asian ideograph */ - {"\xB9", 0, 0x233C26}, /* East Asian ideograph */ - {"\xB4", 0, 0x233C27}, /* East Asian ideograph */ - {"\x99", 0, 0x2D5B42}, /* East Asian ideograph */ - {"\xBC", 0, 0x2F3C2D}, /* East Asian ideograph */ - {"\x8C", 0, 0x4B5B46}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page267 = { - marc8r_31page267_flat, 0 -}; -/* PAGE 266 */ -struct yaz_iconv_trie_flat marc8r_31page266_flat[] = { - {"\x80", 0, 0x215B31}, /* East Asian ideograph */ - {"\x8A", 0, 0x215B32}, /* East Asian ideograph */ - {"\x8B", 0, 0x215B33}, /* East Asian ideograph */ - {"\x8D", 0, 0x215B34}, /* East Asian ideograph */ - {"\x8C", 0, 0x215B35}, /* East Asian ideograph */ - {"\x92", 0, 0x215B36}, /* East Asian ideograph */ - {"\x94", 0, 0x215B37}, /* East Asian ideograph */ - {"\x9F", 0, 0x215B38}, /* East Asian ideograph */ - {"\x9B", 0, 0x215B39}, /* East Asian ideograph */ - {"\xBB", 0, 0x215B3A}, /* East Asian ideograph */ - {"\xB8", 0, 0x215B3B}, /* East Asian ideograph */ - {"\xBC", 0, 0x215B3C}, /* East Asian ideograph */ - {"\xBE", 0, 0x215B3E}, /* East Asian ideograph */ - {"\x89", 0, 0x233B2E}, /* East Asian ideograph */ - {"\x8F", 0, 0x233B2F}, /* East Asian ideograph */ - {"\x8E", 0, 0x233B31}, /* East Asian ideograph */ - {"\x95", 0, 0x233B33}, /* East Asian ideograph */ - {"\xBA", 0, 0x233B3F}, /* East Asian ideograph */ - {"\xB9", 0, 0x233B42}, /* East Asian ideograph */ - {"\xA8", 0, 0x233B4B}, /* East Asian ideograph */ - {"\xAB", 0, 0x233B4F}, /* East Asian ideograph */ - {"\xBF", 0, 0x233B51}, /* East Asian ideograph */ - {"\xBD", 0, 0x2D5B43}, /* East Asian ideograph */ - {"\x86", 0, 0x2D615A}, /* East Asian ideograph */ - {"\xA2", 0, 0x4B5B55}, /* East Asian ideograph */ - {"\xA3", 0, 0x4B5B58}, /* East Asian ideograph */ - {"\x85", 0, 0x696D40}, /* East Asian ideograph */ - {"\x88", 0, 0x696D41}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page266 = { - marc8r_31page266_flat, 0 -}; -/* PAGE 265 */ -struct yaz_iconv_trie_flat marc8r_31page265_flat[] = { - {"\x82", 0, 0x215B23}, /* East Asian ideograph */ - {"\x81", 0, 0x215B24}, /* East Asian ideograph */ - {"\x87", 0, 0x215B25}, /* East Asian ideograph */ - {"\x89", 0, 0x215B26}, /* East Asian ideograph */ - {"\x85", 0, 0x215B27}, /* East Asian ideograph */ - {"\x8A", 0, 0x215B28}, /* East Asian ideograph */ - {"\x8D", 0, 0x215B29}, /* East Asian ideograph (variant of EACC 4B5B29) */ - {"\x91", 0, 0x215B2A}, /* East Asian ideograph */ - {"\xA1", 0, 0x215B2B}, /* East Asian ideograph */ - {"\xAA", 0, 0x215B2C}, /* East Asian ideograph */ - {"\xAB", 0, 0x215B2D}, /* East Asian ideograph */ - {"\xAC", 0, 0x215B2E}, /* East Asian ideograph */ - {"\xB2", 0, 0x215B2F}, /* East Asian ideograph */ - {"\xBA", 0, 0x215B30}, /* East Asian ideograph */ - {"\x95", 0, 0x233A46}, /* East Asian ideograph */ - {"\x83", 0, 0x233A52}, /* East Asian ideograph */ - {"\x84", 0, 0x233A53}, /* East Asian ideograph */ - {"\x8B", 0, 0x233A57}, /* East Asian ideograph */ - {"\x94", 0, 0x233A5D}, /* East Asian ideograph */ - {"\x9A", 0, 0x233A5E}, /* East Asian ideograph */ - {"\x92", 0, 0x233A5F}, /* East Asian ideograph */ - {"\x93", 0, 0x233A60}, /* East Asian ideograph */ - {"\x90", 0, 0x233A62}, /* East Asian ideograph */ - {"\x98", 0, 0x233A63}, /* East Asian ideograph */ - {"\x9E", 0, 0x233A64}, /* East Asian ideograph */ - {"\xA5", 0, 0x233A6B}, /* East Asian ideograph */ - {"\xA7", 0, 0x233A6F}, /* East Asian ideograph */ - {"\xA9", 0, 0x233A71}, /* East Asian ideograph */ - {"\x99", 0, 0x233A72}, /* East Asian ideograph */ - {"\xB3", 0, 0x233A78}, /* East Asian ideograph */ - {"\xBC", 0, 0x233A7A}, /* East Asian ideograph */ - {"\xB6", 0, 0x233A7D}, /* East Asian ideograph */ - {"\x8F", 0, 0x275B2C}, /* East Asian ideograph */ - {"\xAF", 0, 0x275B31}, /* East Asian ideograph */ - {"\x9C", 0, 0x293A70}, /* East Asian ideograph */ - {"\xAD", 0, 0x2D526C}, /* East Asian ideograph */ - {"\xB1", 0, 0x2D5B2F}, /* East Asian ideograph */ - {"\xB0", 0, 0x33615A}, /* East Asian ideograph */ - {"\x8D", 0, 0x4B5B29}, /* East Asian ideograph */ - {"\xBE", 0, 0x696D3F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page265 = { - marc8r_31page265_flat, 0 -}; -/* PAGE 264 */ -struct yaz_iconv_trie_flat marc8r_31page264_flat[] = { - {"\x84", 0, 0x215A6E}, /* East Asian ideograph */ - {"\x82", 0, 0x215A70}, /* East Asian ideograph */ - {"\x89", 0, 0x215A74}, /* East Asian ideograph */ - {"\x8B", 0, 0x215A75}, /* East Asian ideograph */ - {"\x88", 0, 0x215A76}, /* East Asian ideograph */ - {"\x8A", 0, 0x215A77}, /* East Asian ideograph */ - {"\xA3", 0, 0x215A78}, /* East Asian ideograph */ - {"\x99", 0, 0x215A79}, /* East Asian ideograph */ - {"\xA6", 0, 0x215A7A}, /* East Asian ideograph */ - {"\xA4", 0, 0x215A7B}, /* East Asian ideograph */ - {"\xB2", 0, 0x215A7C}, /* East Asian ideograph */ - {"\xAC", 0, 0x215A7D}, /* East Asian ideograph */ - {"\xBA", 0, 0x215A7E}, /* East Asian ideograph */ - {"\xB6", 0, 0x215B21}, /* East Asian ideograph */ - {"\xBC", 0, 0x215B22}, /* East Asian ideograph */ - {"\x81", 0, 0x23396F}, /* East Asian ideograph */ - {"\x80", 0, 0x233977}, /* East Asian ideograph */ - {"\x87", 0, 0x233A24}, /* East Asian ideograph */ - {"\x86", 0, 0x233A26}, /* East Asian ideograph */ - {"\x8C", 0, 0x233A2E}, /* East Asian ideograph */ - {"\x90", 0, 0x233A30}, /* East Asian ideograph */ - {"\x8F", 0, 0x233A32}, /* East Asian ideograph */ - {"\x9C", 0, 0x233A34}, /* East Asian ideograph */ - {"\xA2", 0, 0x233A35}, /* East Asian ideograph */ - {"\xA0", 0, 0x233A36}, /* East Asian ideograph */ - {"\x94", 0, 0x233A3A}, /* East Asian ideograph */ - {"\xA7", 0, 0x233A3B}, /* East Asian ideograph */ - {"\x9A", 0, 0x233A3E}, /* East Asian ideograph */ - {"\x9E", 0, 0x233A3F}, /* East Asian ideograph */ - {"\x95", 0, 0x233A40}, /* East Asian ideograph */ - {"\xA1", 0, 0x233A41}, /* East Asian ideograph */ - {"\x9D", 0, 0x233A43}, /* East Asian ideograph */ - {"\xB5", 0, 0x233A44}, /* East Asian ideograph */ - {"\xB4", 0, 0x233A45}, /* East Asian ideograph */ - {"\xAD", 0, 0x233A48}, /* East Asian ideograph */ - {"\xA9", 0, 0x233A4B}, /* East Asian ideograph */ - {"\x92", 0, 0x275A78}, /* East Asian ideograph */ - {"\x91", 0, 0x275B2B}, /* East Asian ideograph */ - {"\xB0", 0, 0x293A46}, /* East Asian ideograph */ - {"\xBF", 0, 0x293A6B}, /* East Asian ideograph */ - {"\x9F", 0, 0x2D5A5F}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D5A7E}, /* East Asian ideograph */ - {"\xAE", 0, 0x2F3A5E}, /* East Asian ideograph */ - {"\xAF", 0, 0x334C37}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page264 = { - marc8r_31page264_flat, 0 -}; -/* PAGE 263 */ -struct yaz_iconv_trie_flat marc8r_31page263_flat[] = { - {"\xAB", 0, 0x215A67}, /* East Asian ideograph */ - {"\x90", 0, 0x215A68}, /* East Asian ideograph */ - {"\xA2", 0, 0x215A69}, /* East Asian ideograph */ - {"\x9D", 0, 0x215A6A}, /* East Asian ideograph */ - {"\x8F", 0, 0x215A6B}, /* East Asian ideograph */ - {"\xA9", 0, 0x215A6C}, /* East Asian ideograph */ - {"\x9F", 0, 0x215A6D}, /* East Asian ideograph */ - {"\xB1", 0, 0x215A6F}, /* East Asian ideograph */ - {"\xB4", 0, 0x215A71}, /* East Asian ideograph */ - {"\xB9", 0, 0x215A72}, /* East Asian ideograph */ - {"\xB5", 0, 0x215A73}, /* East Asian ideograph */ - {"\x89", 0, 0x23393F}, /* East Asian ideograph */ - {"\x85", 0, 0x233946}, /* East Asian ideograph */ - {"\x81", 0, 0x233949}, /* East Asian ideograph */ - {"\x84", 0, 0x23394E}, /* East Asian ideograph */ - {"\x86", 0, 0x233950}, /* East Asian ideograph */ - {"\xAA", 0, 0x233952}, /* East Asian ideograph */ - {"\xA3", 0, 0x233954}, /* East Asian ideograph */ - {"\xAE", 0, 0x233957}, /* East Asian ideograph */ - {"\xA1", 0, 0x233958}, /* East Asian ideograph */ - {"\x9E", 0, 0x23395C}, /* East Asian ideograph */ - {"\x96", 0, 0x233964}, /* East Asian ideograph */ - {"\xA6", 0, 0x233966}, /* East Asian ideograph */ - {"\xA7", 0, 0x233967}, /* East Asian ideograph */ - {"\x94", 0, 0x233968}, /* East Asian ideograph */ - {"\x98", 0, 0x233969}, /* East Asian ideograph */ - {"\xB6", 0, 0x233979}, /* East Asian ideograph */ - {"\xBD", 0, 0x23397E}, /* East Asian ideograph */ - {"\xB0", 0, 0x233A21}, /* East Asian ideograph */ - {"\x8A", 0, 0x275A71}, /* East Asian ideograph */ - {"\x8C", 0, 0x275B28}, /* East Asian ideograph */ - {"\xAF", 0, 0x275B2A}, /* East Asian ideograph */ - {"\xAC", 0, 0x293A60}, /* East Asian ideograph */ - {"\x88", 0, 0x334C3E}, /* East Asian ideograph */ - {"\xA8", 0, 0x335A7B}, /* East Asian ideograph */ - {"\xBA", 0, 0x70755D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page263 = { - marc8r_31page263_flat, 0 -}; -/* PAGE 262 */ -struct yaz_iconv_trie_flat marc8r_31page262_flat[] = { - {"\x8E", 0, 0x215A57}, /* East Asian ideograph */ - {"\x9D", 0, 0x215A58}, /* East Asian ideograph */ - {"\x9B", 0, 0x215A59}, /* East Asian ideograph */ - {"\x8B", 0, 0x215A5A}, /* East Asian ideograph */ - {"\x9A", 0, 0x215A5B}, /* East Asian ideograph */ - {"\x86", 0, 0x215A5C}, /* East Asian ideograph */ - {"\x91", 0, 0x215A5D}, /* East Asian ideograph */ - {"\x8C", 0, 0x215A5E}, /* East Asian ideograph */ - {"\xA1", 0, 0x215A5F}, /* East Asian ideograph */ - {"\x9F", 0, 0x215A60}, /* East Asian ideograph */ - {"\xA8", 0, 0x215A61}, /* East Asian ideograph */ - {"\xB3", 0, 0x215A62}, /* East Asian ideograph */ - {"\xBA", 0, 0x215A63}, /* East Asian ideograph */ - {"\xAA", 0, 0x215A64}, /* East Asian ideograph */ - {"\xAF", 0, 0x215A65}, /* East Asian ideograph */ - {"\xBC", 0, 0x215A66}, /* East Asian ideograph */ - {"\x82", 0, 0x233871}, /* East Asian ideograph */ - {"\x81", 0, 0x233872}, /* East Asian ideograph */ - {"\x8F", 0, 0x233921}, /* East Asian ideograph */ - {"\x96", 0, 0x233922}, /* East Asian ideograph */ - {"\x90", 0, 0x233927}, /* East Asian ideograph */ - {"\x85", 0, 0x23392B}, /* East Asian ideograph */ - {"\xA4", 0, 0x23392F}, /* East Asian ideograph */ - {"\xAC", 0, 0x233934}, /* East Asian ideograph */ - {"\xAB", 0, 0x233935}, /* East Asian ideograph */ - {"\xB4", 0, 0x233936}, /* East Asian ideograph */ - {"\xA9", 0, 0x233938}, /* East Asian ideograph */ - {"\xA6", 0, 0x23393A}, /* East Asian ideograph */ - {"\xA3", 0, 0x23393B}, /* East Asian ideograph */ - {"\xA7", 0, 0x23393D}, /* East Asian ideograph */ - {"\xB2", 0, 0x23393E}, /* East Asian ideograph */ - {"\xBD", 0, 0x233941}, /* East Asian ideograph */ - {"\xBF", 0, 0x233944}, /* East Asian ideograph */ - {"\xB5", 0, 0x275A68}, /* East Asian ideograph */ - {"\xB7", 0, 0x275A7E}, /* East Asian ideograph */ - {"\x83", 0, 0x275B29}, /* East Asian ideograph */ - {"\x84", 0, 0x293A2E}, /* East Asian ideograph */ - {"\xB8", 0, 0x293A40}, /* East Asian ideograph */ - {"\xBB", 0, 0x293A57}, /* East Asian ideograph */ - {"\xB9", 0, 0x293A5E}, /* East Asian ideograph */ - {"\x9E", 0, 0x293A5F}, /* East Asian ideograph */ - {"\xA5", 0, 0x2D5A63}, /* East Asian ideograph */ - {"\x97", 0, 0x2F386F}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B5A68}, /* East Asian ideograph (variant of EACC 275A68) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page262 = { - marc8r_31page262_flat, 0 -}; -/* PAGE 261 */ -struct yaz_iconv_trie_flat marc8r_31page261_flat[] = { - {"\x85", 0, 0x215A4C}, /* East Asian ideograph */ - {"\x8A", 0, 0x215A4D}, /* East Asian ideograph */ - {"\x81", 0, 0x215A4E}, /* East Asian ideograph */ - {"\x99", 0, 0x215A4F}, /* East Asian ideograph */ - {"\x95", 0, 0x215A50}, /* East Asian ideograph */ - {"\xA3", 0, 0x215A51}, /* East Asian ideograph */ - {"\x9F", 0, 0x215A52}, /* East Asian ideograph */ - {"\xA8", 0, 0x215A53}, /* East Asian ideograph */ - {"\xB3", 0, 0x215A54}, /* East Asian ideograph */ - {"\xB4", 0, 0x215A55}, /* East Asian ideograph */ - {"\xBE", 0, 0x215A56}, /* East Asian ideograph */ - {"\x84", 0, 0x233761}, /* East Asian ideograph */ - {"\x94", 0, 0x233771}, /* East Asian ideograph */ - {"\x8D", 0, 0x233775}, /* East Asian ideograph */ - {"\x96", 0, 0x233822}, /* East Asian ideograph */ - {"\xA1", 0, 0x23382F}, /* East Asian ideograph */ - {"\xA6", 0, 0x233833}, /* East Asian ideograph */ - {"\xAB", 0, 0x233852}, /* East Asian ideograph */ - {"\xAF", 0, 0x233859}, /* East Asian ideograph */ - {"\xB0", 0, 0x23385A}, /* East Asian ideograph */ - {"\xB2", 0, 0x233866}, /* East Asian ideograph */ - {"\xBC", 0, 0x23386E}, /* East Asian ideograph */ - {"\xBA", 0, 0x23386F}, /* East Asian ideograph */ - {"\xB9", 0, 0x233870}, /* East Asian ideograph */ - {"\xBF", 0, 0x233873}, /* East Asian ideograph */ - {"\x8B", 0, 0x275A53}, /* East Asian ideograph */ - {"\xB8", 0, 0x275B26}, /* East Asian ideograph */ - {"\xB1", 0, 0x293866}, /* East Asian ideograph */ - {"\x82", 0, 0x2D5A4E}, /* East Asian ideograph */ - {"\x91", 0, 0x2F3833}, /* East Asian ideograph */ - {"\xB5", 0, 0x3B3922}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page261 = { - marc8r_31page261_flat, 0 -}; -/* PAGE 260 */ -struct yaz_iconv_trie_flat marc8r_31page260_flat[] = { - {"\xA4", 0, 0x215A43}, /* East Asian ideograph */ - {"\xA7", 0, 0x215A44}, /* East Asian ideograph */ - {"\xA6", 0, 0x215A45}, /* East Asian ideograph */ - {"\xAB", 0, 0x215A46}, /* East Asian ideograph */ - {"\xAD", 0, 0x215A47}, /* East Asian ideograph */ - {"\xB0", 0, 0x215A48}, /* East Asian ideograph */ - {"\xB4", 0, 0x215A49}, /* East Asian ideograph */ - {"\xB3", 0, 0x215A4A}, /* East Asian ideograph */ - {"\xB7", 0, 0x215A4B}, /* East Asian ideograph */ - {"\xAC", 0, 0x233748}, /* East Asian ideograph */ - {"\xB8", 0, 0x233752}, /* East Asian ideograph */ - {"\xBA", 0, 0x23375C}, /* East Asian ideograph */ - {"\x85", 0, 0x275A21}, /* East Asian ideograph */ - {"\x84", 0, 0x275A22}, /* East Asian ideograph */ - {"\x80", 0, 0x275A26}, /* East Asian ideograph */ - {"\x81", 0, 0x275A27}, /* East Asian ideograph */ - {"\x82", 0, 0x275A28}, /* East Asian ideograph */ - {"\x88", 0, 0x275A2A}, /* East Asian ideograph */ - {"\x8A", 0, 0x275A2B}, /* East Asian ideograph */ - {"\x94", 0, 0x275A2C}, /* East Asian ideograph */ - {"\x8B", 0, 0x275A2D}, /* East Asian ideograph */ - {"\x8F", 0, 0x275A32}, /* East Asian ideograph */ - {"\x90", 0, 0x275A33}, /* East Asian ideograph */ - {"\x8C", 0, 0x275A35}, /* East Asian ideograph */ - {"\x96", 0, 0x275A36}, /* East Asian ideograph */ - {"\x9B", 0, 0x275A37}, /* East Asian ideograph */ - {"\x9A", 0, 0x275A38}, /* East Asian ideograph */ - {"\x98", 0, 0x275A39}, /* East Asian ideograph */ - {"\xA0", 0, 0x275A3B}, /* East Asian ideograph */ - {"\x9D", 0, 0x275A3C}, /* East Asian ideograph */ - {"\x9E", 0, 0x275A3D}, /* East Asian ideograph */ - {"\xA2", 0, 0x275A3E}, /* East Asian ideograph */ - {"\xA1", 0, 0x275A3F}, /* East Asian ideograph */ - {"\x83", 0, 0x275A40}, /* East Asian ideograph */ - {"\x8E", 0, 0x275A41}, /* East Asian ideograph */ - {"\xA3", 0, 0x275A42}, /* East Asian ideograph */ - {"\xB5", 0, 0x275A4F}, /* East Asian ideograph */ - {"\xB6", 0, 0x275A50}, /* East Asian ideograph */ - {"\x87", 0, 0x29365F}, /* East Asian ideograph */ - {"\x93", 0, 0x29366A}, /* East Asian ideograph */ - {"\x95", 0, 0x29366B}, /* East Asian ideograph */ - {"\x89", 0, 0x293670}, /* East Asian ideograph */ - {"\x99", 0, 0x29367E}, /* East Asian ideograph */ - {"\x9C", 0, 0x293726}, /* East Asian ideograph */ - {"\x86", 0, 0x29373A}, /* East Asian ideograph */ - {"\xB1", 0, 0x2D5A48}, /* East Asian ideograph */ - {"\x8D", 0, 0x47366F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page260 = { - marc8r_31page260_flat, 0 -}; -/* PAGE 259 */ -struct yaz_iconv_trie_dir marc8r_31page259_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x233725} /* East Asian ideograph */, - {0, 0, 0x215A39} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x23372B} /* East Asian ideograph */, - {0, 0, 0x215A3B} /* East Asian ideograph (variant of EACC 4B5A3B) */, - {0, 0, 0x23372D} /* East Asian ideograph */, - {0, 0, 0x215A3D} /* East Asian ideograph */, - {0, 0, 0x215A3C} /* East Asian ideograph */, - {0, 0, 0x233732} /* East Asian ideograph */, - {0, 0, 0x215A3F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215A3E} /* East Asian ideograph */, - {0, 0, 0x23373A} /* East Asian ideograph */, - {0, 0, 0x233739} /* East Asian ideograph */, - {0, 0, 0x23373B} /* East Asian ideograph */, - {0, 0, 0x215A40} /* East Asian ideograph */, - {0, 0, 0x23373D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215A41} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x23373E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x215A42} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275968} /* East Asian ideograph */, - {0, 0, 0x275969} /* East Asian ideograph */, - {0, 0, 0x27596A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27596B} /* East Asian ideograph */, - {0, 0, 0x27596C} /* East Asian ideograph */, - {0, 0, 0x27596D} /* East Asian ideograph */, - {0, 0, 0x275A30} /* East Asian ideograph */, - {0, 0, 0x274247} /* East Asian ideograph */, - {0, 0, 0x393C52} /* East Asian ideograph */, - {0, 0, 0x27596F} /* East Asian ideograph */, - {0, 0, 0x275A34} /* East Asian ideograph */, - {0, 0, 0x275972} /* East Asian ideograph */, - {0, 0, 0x275970} /* East Asian ideograph */, - {0, 0, 0x275971} /* East Asian ideograph */, - {0, 0, 0x27597B} /* East Asian ideograph */, - {0, 0, 0x275A3A} /* East Asian ideograph */, - {0, 0, 0x4B5973} /* East Asian ideograph */, - {0, 0, 0x27596E} /* East Asian ideograph */, - {0, 0, 0x453051} /* East Asian ideograph */, - {0, 0, 0x275A31} /* East Asian ideograph */, - {0, 0, 0x275976} /* East Asian ideograph */, - {0, 0, 0x29364E} /* East Asian ideograph */, - {0, 0, 0x275979} /* East Asian ideograph */, - {0, 0, 0x275978} /* East Asian ideograph */, - {0, 0, 0x293651} /* East Asian ideograph */, - {0, 0, 0x27597D} /* East Asian ideograph */, - {0, 0, 0x27597E} /* East Asian ideograph */, - {0, 0, 0x275975} /* East Asian ideograph */, - {0, 0, 0x275977} /* East Asian ideograph */, - {0, 0, 0x27597C} /* East Asian ideograph */, - {0, 0, 0x275A23} /* East Asian ideograph */, - {0, 0, 0x293725} /* East Asian ideograph */, - {0, 0, 0x275A24} /* East Asian ideograph */, - {0, 0, 0x275A25} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page259 = { - 0, marc8r_31page259_dir -}; -/* PAGE 258 */ -struct yaz_iconv_trie_flat marc8r_31page258_flat[] = { - {"\x81", 0, 0x215976}, /* East Asian ideograph */ - {"\x80", 0, 0x215977}, /* East Asian ideograph */ - {"\x85", 0, 0x215A21}, /* East Asian ideograph */ - {"\x87", 0, 0x215A22}, /* East Asian ideograph */ - {"\x8A", 0, 0x215A23}, /* East Asian ideograph */ - {"\x88", 0, 0x215A24}, /* East Asian ideograph */ - {"\x84", 0, 0x215A25}, /* East Asian ideograph */ - {"\x83", 0, 0x215A27}, /* East Asian ideograph */ - {"\x82", 0, 0x215A28}, /* East Asian ideograph */ - {"\x93", 0, 0x215A29}, /* East Asian ideograph */ - {"\x91", 0, 0x215A2A}, /* East Asian ideograph */ - {"\x92", 0, 0x215A2B}, /* East Asian ideograph */ - {"\xA0", 0, 0x215A2C}, /* East Asian ideograph */ - {"\xA6", 0, 0x215A2D}, /* East Asian ideograph */ - {"\xA3", 0, 0x215A2F}, /* East Asian ideograph */ - {"\xA2", 0, 0x215A30}, /* East Asian ideograph */ - {"\xA4", 0, 0x215A31}, /* East Asian ideograph */ - {"\x9E", 0, 0x215A32}, /* East Asian ideograph */ - {"\x9C", 0, 0x215A33}, /* East Asian ideograph */ - {"\xAA", 0, 0x215A34}, /* East Asian ideograph */ - {"\xAD", 0, 0x215A35}, /* East Asian ideograph */ - {"\xB4", 0, 0x215A36}, /* East Asian ideograph */ - {"\xBD", 0, 0x215A37}, /* East Asian ideograph */ - {"\xBA", 0, 0x215A38}, /* East Asian ideograph */ - {"\xBC", 0, 0x215A3A}, /* East Asian ideograph */ - {"\x8D", 0, 0x233657}, /* East Asian ideograph */ - {"\x98", 0, 0x23365E}, /* East Asian ideograph */ - {"\x95", 0, 0x23365F}, /* East Asian ideograph */ - {"\xA8", 0, 0x233667}, /* East Asian ideograph */ - {"\xA9", 0, 0x233668}, /* East Asian ideograph */ - {"\xA1", 0, 0x23366A}, /* East Asian ideograph */ - {"\xAB", 0, 0x23366F}, /* East Asian ideograph */ - {"\x9A", 0, 0x233670}, /* East Asian ideograph */ - {"\x9D", 0, 0x233672}, /* East Asian ideograph */ - {"\x99", 0, 0x233674}, /* East Asian ideograph */ - {"\xAE", 0, 0x233676}, /* East Asian ideograph */ - {"\xB1", 0, 0x23367B}, /* East Asian ideograph */ - {"\xB5", 0, 0x23367C}, /* East Asian ideograph */ - {"\xBB", 0, 0x23367E}, /* East Asian ideograph */ - {"\xB7", 0, 0x233721}, /* East Asian ideograph */ - {"\xBE", 0, 0x233726}, /* East Asian ideograph */ - {"\xB8", 0, 0x2D3377}, /* East Asian ideograph */ - {"\x9B", 0, 0x2D5A3D}, /* East Asian ideograph */ - {"\xAC", 0, 0x333C52}, /* East Asian ideograph */ - {"\x89", 0, 0x393E47}, /* East Asian ideograph */ - {"\x8E", 0, 0x4B5A31}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page258 = { - marc8r_31page258_flat, 0 -}; -/* PAGE 257 */ -struct yaz_iconv_trie_flat marc8r_31page257_flat[] = { - {"\x82", 0, 0x215962}, /* East Asian ideograph */ - {"\x8A", 0, 0x215963}, /* East Asian ideograph */ - {"\x89", 0, 0x215964}, /* East Asian ideograph */ - {"\x8D", 0, 0x215965}, /* East Asian ideograph */ - {"\x8C", 0, 0x215966}, /* East Asian ideograph */ - {"\x93", 0, 0x215967}, /* East Asian ideograph */ - {"\x9D", 0, 0x215968}, /* East Asian ideograph */ - {"\x9E", 0, 0x215969}, /* East Asian ideograph */ - {"\xA0", 0, 0x21596A}, /* East Asian ideograph */ - {"\xA2", 0, 0x21596B}, /* East Asian ideograph */ - {"\xA1", 0, 0x21596C}, /* East Asian ideograph */ - {"\xAC", 0, 0x21596D}, /* East Asian ideograph */ - {"\xAB", 0, 0x21596E}, /* East Asian ideograph */ - {"\xA8", 0, 0x21596F}, /* East Asian ideograph */ - {"\xAA", 0, 0x215970}, /* East Asian ideograph */ - {"\xA7", 0, 0x215971}, /* East Asian ideograph */ - {"\xA9", 0, 0x215972}, /* East Asian ideograph */ - {"\xAF", 0, 0x215973}, /* East Asian ideograph */ - {"\xBB", 0, 0x215975}, /* East Asian ideograph */ - {"\xB4", 0, 0x215978}, /* East Asian ideograph */ - {"\xBC", 0, 0x215979}, /* East Asian ideograph */ - {"\xB7", 0, 0x21597A}, /* East Asian ideograph */ - {"\xB6", 0, 0x21597B}, /* East Asian ideograph */ - {"\xBD", 0, 0x21597C}, /* East Asian ideograph */ - {"\xB8", 0, 0x21597D}, /* East Asian ideograph */ - {"\xBF", 0, 0x21597E}, /* East Asian ideograph */ - {"\xB2", 0, 0x215A26}, /* East Asian ideograph */ - {"\x86", 0, 0x23362A}, /* East Asian ideograph */ - {"\x85", 0, 0x23362D}, /* East Asian ideograph */ - {"\x88", 0, 0x23362E}, /* East Asian ideograph */ - {"\x94", 0, 0x233639}, /* East Asian ideograph */ - {"\x9B", 0, 0x233641}, /* East Asian ideograph */ - {"\x9F", 0, 0x233643}, /* East Asian ideograph */ - {"\xA4", 0, 0x233644}, /* East Asian ideograph */ - {"\xB0", 0, 0x23364E}, /* East Asian ideograph */ - {"\xBA", 0, 0x233651}, /* East Asian ideograph */ - {"\xB5", 0, 0x233652}, /* East Asian ideograph */ - {"\xB9", 0, 0x233653}, /* East Asian ideograph */ - {"\x98", 0, 0x2D5963}, /* East Asian ideograph */ - {"\xAD", 0, 0x2D5A34}, /* East Asian ideograph */ - {"\xB3", 0, 0x333051}, /* East Asian ideograph */ - {"\x8E", 0, 0x355D5C}, /* East Asian ideograph */ - {"\xAE", 0, 0x513051}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page257 = { - marc8r_31page257_flat, 0 -}; -/* PAGE 256 */ -struct yaz_iconv_trie_dir marc8r_31page256_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x29333B} /* East Asian ideograph */, - {0, 0, 0x275922} /* East Asian ideograph */, - {0, 0, 0x293340} /* East Asian ideograph */, - {0, 0, 0x27587D} /* East Asian ideograph */, - {0, 0, 0x275921} /* East Asian ideograph */, - {0, 0, 0x275878} /* East Asian ideograph */, - {0, 0, 0x275877} /* East Asian ideograph */, - {0, 0, 0x29327E} /* East Asian ideograph */, - {0, 0, 0x275879} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275876} /* East Asian ideograph */, - {0, 0, 0x27592B} /* East Asian ideograph */, - {0, 0, 0x29334E} /* East Asian ideograph */, - {0, 0, 0x27592A} /* East Asian ideograph */, - {0, 0, 0x275935} /* East Asian ideograph */, - {0, 0, 0x275927} /* East Asian ideograph */, - {0, 0, 0x275929} /* East Asian ideograph */, - {0, 0, 0x293359} /* East Asian ideograph */, - {0, 0, 0x27592C} /* East Asian ideograph */, - {0, 0, 0x27592D} /* East Asian ideograph */, - {0, 0, 0x293357} /* East Asian ideograph */, - {0, 0, 0x275930} /* East Asian ideograph */, - {0, 0, 0x29335D} /* East Asian ideograph */, - {0, 0, 0x27594E} /* East Asian ideograph */, - {0, 0, 0x4B3622} /* East Asian ideograph */, - {0, 0, 0x293344} /* East Asian ideograph */, - {0, 0, 0x275926} /* East Asian ideograph */, - {0, 0, 0x275925} /* East Asian ideograph */, - {0, 0, 0x275933} /* East Asian ideograph */, - {0, 0, 0x293362} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27593B} /* East Asian ideograph */, - {0, 0, 0x293537} /* East Asian ideograph */, - {0, 0, 0x293373} /* East Asian ideograph */, - {0, 0, 0x275938} /* East Asian ideograph */, - {0, 0, 0x275936} /* East Asian ideograph */, - {0, 0, 0x275931} /* East Asian ideograph */, - {0, 0, 0x4D3363} /* East Asian ideograph */, - {0, 0, 0x275932} /* East Asian ideograph */, - {0, 0, 0x29337D} /* East Asian ideograph */, - {0, 0, 0x275939} /* East Asian ideograph */, - {0, 0, 0x293438} /* East Asian ideograph */, - {0, 0, 0x473422} /* East Asian ideograph */, - {0, 0, 0x47347B} /* East Asian ideograph */, - {0, 0, 0x27593A} /* East Asian ideograph */, - {0, 0, 0x275940} /* East Asian ideograph */, - {0, 0, 0x29344D} /* East Asian ideograph */, - {0, 0, 0x293459} /* East Asian ideograph */, - {0, 0, 0x29352D} /* East Asian ideograph */, - {0, 0, 0x27593D} /* East Asian ideograph */, - {0, 0, 0x27593E} /* East Asian ideograph */, - {0, 0, 0x293539} /* East Asian ideograph */, - {0, 0, 0x275947} /* East Asian ideograph */, - {0, 0, 0x293468} /* East Asian ideograph */, - {0, 0, 0x27594D} /* East Asian ideograph */, - {0, 0, 0x274F40} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x23353D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x215952} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page256 = { - 0, marc8r_31page256_dir -}; -/* PAGE 255 */ -struct yaz_iconv_trie_flat marc8r_31page255_flat[] = { - {"\x81", 0, 0x215951}, /* East Asian ideograph */ - {"\x86", 0, 0x215953}, /* East Asian ideograph */ - {"\x88", 0, 0x215954}, /* East Asian ideograph */ - {"\x89", 0, 0x215955}, /* East Asian ideograph */ - {"\x8C", 0, 0x215956}, /* East Asian ideograph */ - {"\x8E", 0, 0x215957}, /* East Asian ideograph */ - {"\x90", 0, 0x215958}, /* East Asian ideograph */ - {"\x94", 0, 0x215959}, /* East Asian ideograph */ - {"\x9A", 0, 0x21595A}, /* East Asian ideograph */ - {"\xA2", 0, 0x21595C}, /* East Asian ideograph */ - {"\xAA", 0, 0x21595D}, /* East Asian ideograph */ - {"\xAB", 0, 0x21595E}, /* East Asian ideograph */ - {"\xAC", 0, 0x21595F}, /* East Asian ideograph */ - {"\xBA", 0, 0x215960}, /* East Asian ideograph */ - {"\xB9", 0, 0x215961}, /* East Asian ideograph */ - {"\x80", 0, 0x233544}, /* East Asian ideograph */ - {"\x82", 0, 0x233545}, /* East Asian ideograph */ - {"\x87", 0, 0x23354B}, /* East Asian ideograph */ - {"\x8B", 0, 0x23354D}, /* East Asian ideograph */ - {"\x8F", 0, 0x233550}, /* East Asian ideograph */ - {"\x95", 0, 0x233552}, /* East Asian ideograph */ - {"\x97", 0, 0x233554}, /* East Asian ideograph */ - {"\x9C", 0, 0x233555}, /* East Asian ideograph */ - {"\x9D", 0, 0x233556}, /* East Asian ideograph */ - {"\xA8", 0, 0x233563}, /* East Asian ideograph */ - {"\xAD", 0, 0x233565}, /* East Asian ideograph */ - {"\xB3", 0, 0x23356D}, /* East Asian ideograph */ - {"\xB4", 0, 0x23356F}, /* East Asian ideograph */ - {"\xB5", 0, 0x233571}, /* East Asian ideograph */ - {"\xB7", 0, 0x233573}, /* East Asian ideograph */ - {"\xB6", 0, 0x233574}, /* East Asian ideograph */ - {"\xB8", 0, 0x23357B}, /* East Asian ideograph */ - {"\xBB", 0, 0x23357D}, /* East Asian ideograph */ - {"\xA1", 0, 0x273257}, /* East Asian ideograph */ - {"\xBC", 0, 0x2F3639}, /* East Asian ideograph */ - {"\x8A", 0, 0x335958}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page255 = { - marc8r_31page255_flat, 0 -}; -/* PAGE 254 */ -struct yaz_iconv_trie_flat marc8r_31page254_flat[] = { - {"\x80", 0, 0x21594A}, /* East Asian ideograph */ - {"\x8A", 0, 0x21594B}, /* East Asian ideograph */ - {"\x93", 0, 0x21594C}, /* East Asian ideograph */ - {"\x96", 0, 0x21594D}, /* East Asian ideograph */ - {"\x92", 0, 0x21594E}, /* East Asian ideograph */ - {"\x9A", 0, 0x21594F}, /* East Asian ideograph */ - {"\x85", 0, 0x233478}, /* East Asian ideograph */ - {"\x81", 0, 0x233479}, /* East Asian ideograph */ - {"\x8B", 0, 0x233523}, /* East Asian ideograph */ - {"\x87", 0, 0x233526}, /* East Asian ideograph */ - {"\x95", 0, 0x23352D}, /* East Asian ideograph */ - {"\x94", 0, 0x23352E}, /* East Asian ideograph */ - {"\x9C", 0, 0x233537}, /* East Asian ideograph */ - {"\x9F", 0, 0x23353A}, /* East Asian ideograph */ - {"\xA1", 0, 0x275838}, /* East Asian ideograph */ - {"\xA2", 0, 0x275839}, /* East Asian ideograph */ - {"\xA3", 0, 0x27583A}, /* East Asian ideograph */ - {"\xA6", 0, 0x27583B}, /* East Asian ideograph */ - {"\xB0", 0, 0x27583C}, /* East Asian ideograph */ - {"\xA8", 0, 0x27583D}, /* East Asian ideograph */ - {"\xA7", 0, 0x27583E}, /* East Asian ideograph */ - {"\xAA", 0, 0x27583F}, /* East Asian ideograph */ - {"\xAF", 0, 0x275840}, /* East Asian ideograph */ - {"\xAB", 0, 0x275841}, /* East Asian ideograph */ - {"\xAD", 0, 0x275843}, /* East Asian ideograph */ - {"\xBF", 0, 0x275844}, /* East Asian ideograph */ - {"\xB6", 0, 0x275846}, /* East Asian ideograph */ - {"\xB7", 0, 0x275847}, /* East Asian ideograph */ - {"\xB8", 0, 0x275848}, /* East Asian ideograph */ - {"\xBE", 0, 0x275849}, /* East Asian ideograph */ - {"\xB9", 0, 0x27584A}, /* East Asian ideograph */ - {"\xBC", 0, 0x27584B}, /* East Asian ideograph */ - {"\xA4", 0, 0x275870}, /* East Asian ideograph */ - {"\xBA", 0, 0x275924}, /* East Asian ideograph */ - {"\xB3", 0, 0x275928}, /* East Asian ideograph */ - {"\xBD", 0, 0x27592F}, /* East Asian ideograph */ - {"\xB2", 0, 0x275934}, /* East Asian ideograph */ - {"\xA5", 0, 0x275942}, /* East Asian ideograph */ - {"\xAE", 0, 0x275943}, /* East Asian ideograph */ - {"\xA9", 0, 0x27594C}, /* East Asian ideograph */ - {"\xB5", 0, 0x29322A}, /* East Asian ideograph */ - {"\xB4", 0, 0x293430}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D306C}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D4A28}, /* East Asian ideograph */ - {"\x83", 0, 0x2D594F}, /* East Asian ideograph */ - {"\x90", 0, 0x33306C}, /* East Asian ideograph */ - {"\x99", 0, 0x334621}, /* East Asian ideograph */ - {"\xA0", 0, 0x455837}, /* East Asian ideograph */ - {"\x9E", 0, 0x473539}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page254 = { - marc8r_31page254_flat, 0 -}; -/* PAGE 253 */ -struct yaz_iconv_trie_flat marc8r_31page253_flat[] = { - {"\x98", 0, 0x21593C}, /* East Asian ideograph */ - {"\x9C", 0, 0x21593D}, /* East Asian ideograph */ - {"\x8E", 0, 0x21593E}, /* East Asian ideograph */ - {"\x89", 0, 0x21593F}, /* East Asian ideograph */ - {"\x9A", 0, 0x215940}, /* East Asian ideograph */ - {"\x81", 0, 0x215941}, /* East Asian ideograph */ - {"\x8F", 0, 0x215942}, /* East Asian ideograph */ - {"\xB0", 0, 0x215943}, /* East Asian ideograph */ - {"\xAC", 0, 0x215944}, /* East Asian ideograph */ - {"\xA6", 0, 0x215945}, /* East Asian ideograph */ - {"\xAF", 0, 0x215946}, /* East Asian ideograph */ - {"\xB4", 0, 0x215947}, /* East Asian ideograph */ - {"\xB7", 0, 0x215948}, /* East Asian ideograph */ - {"\xBD", 0, 0x215949}, /* East Asian ideograph */ - {"\x8C", 0, 0x233349}, /* East Asian ideograph */ - {"\x88", 0, 0x233442}, /* East Asian ideograph */ - {"\x94", 0, 0x233444}, /* East Asian ideograph */ - {"\x93", 0, 0x233448}, /* East Asian ideograph */ - {"\x8A", 0, 0x233449}, /* East Asian ideograph */ - {"\x86", 0, 0x23344A}, /* East Asian ideograph */ - {"\x96", 0, 0x23344D}, /* East Asian ideograph */ - {"\x99", 0, 0x233459}, /* East Asian ideograph */ - {"\x8D", 0, 0x23345F}, /* East Asian ideograph */ - {"\xAB", 0, 0x233468}, /* East Asian ideograph */ - {"\xAD", 0, 0x23346B}, /* East Asian ideograph */ - {"\xB8", 0, 0x233470}, /* East Asian ideograph */ - {"\x85", 0, 0x233473}, /* East Asian ideograph */ - {"\xBE", 0, 0x23347B}, /* East Asian ideograph */ - {"\x9F", 0, 0x2D3748}, /* East Asian ideograph */ - {"\xB2", 0, 0x2D594C}, /* East Asian ideograph */ - {"\xB1", 0, 0x33523F}, /* East Asian ideograph */ - {"\x9B", 0, 0x35344D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page253 = { - marc8r_31page253_flat, 0 -}; -/* PAGE 252 */ -struct yaz_iconv_trie_flat marc8r_31page252_flat[] = { - {"\x80", 0, 0x21592B}, /* East Asian ideograph */ - {"\x81", 0, 0x21592C}, /* East Asian ideograph (variant of EACC 2D592C) */ - {"\x82", 0, 0x21592D}, /* East Asian ideograph */ - {"\x97", 0, 0x215931}, /* East Asian ideograph */ - {"\x99", 0, 0x215932}, /* East Asian ideograph */ - {"\x8E", 0, 0x215933}, /* East Asian ideograph */ - {"\x9B", 0, 0x215934}, /* East Asian ideograph */ - {"\x8A", 0, 0x215935}, /* East Asian ideograph */ - {"\xA1", 0, 0x215936}, /* East Asian ideograph */ - {"\x84", 0, 0x215937}, /* East Asian ideograph */ - {"\x9D", 0, 0x215938}, /* East Asian ideograph */ - {"\xB9", 0, 0x215939}, /* East Asian ideograph */ - {"\xAC", 0, 0x21593A}, /* East Asian ideograph */ - {"\xA8", 0, 0x21593B}, /* East Asian ideograph */ - {"\x83", 0, 0x233356}, /* East Asian ideograph */ - {"\x94", 0, 0x233359}, /* East Asian ideograph */ - {"\x87", 0, 0x233364}, /* East Asian ideograph */ - {"\x8C", 0, 0x23336B}, /* East Asian ideograph */ - {"\x9C", 0, 0x23336F}, /* East Asian ideograph */ - {"\x96", 0, 0x233373}, /* East Asian ideograph */ - {"\x9F", 0, 0x233376}, /* East Asian ideograph */ - {"\x8B", 0, 0x233378}, /* East Asian ideograph */ - {"\x86", 0, 0x233379}, /* East Asian ideograph */ - {"\x85", 0, 0x23337A}, /* East Asian ideograph */ - {"\x8F", 0, 0x23337C}, /* East Asian ideograph */ - {"\x90", 0, 0x23337D}, /* East Asian ideograph */ - {"\xAB", 0, 0x233422}, /* East Asian ideograph */ - {"\xB7", 0, 0x23342A}, /* East Asian ideograph */ - {"\xA6", 0, 0x23342D}, /* East Asian ideograph */ - {"\xB3", 0, 0x233430}, /* East Asian ideograph */ - {"\xBE", 0, 0x233438}, /* East Asian ideograph */ - {"\xA9", 0, 0x23343A}, /* East Asian ideograph */ - {"\xBF", 0, 0x23344F}, /* East Asian ideograph */ - {"\x81", 0, 0x2D592C}, /* East Asian ideograph */ - {"\x9A", 0, 0x2F3363}, /* East Asian ideograph */ - {"\xAD", 0, 0x35347B}, /* East Asian ideograph */ - {"\xBC", 0, 0x3F3573}, /* East Asian ideograph */ - {"\xA0", 0, 0x4B5936}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page252 = { - marc8r_31page252_flat, 0 -}; -/* PAGE 251 */ -struct yaz_iconv_trie_flat marc8r_31page251_flat[] = { - {"\x84", 0, 0x215877}, /* East Asian ideograph */ - {"\x92", 0, 0x215878}, /* East Asian ideograph */ - {"\x87", 0, 0x215879}, /* East Asian ideograph */ - {"\x8B", 0, 0x21587A}, /* East Asian ideograph (variant of EACC 4B587A) */ - {"\xB8", 0, 0x21587B}, /* East Asian ideograph */ - {"\x89", 0, 0x21587E}, /* East Asian ideograph */ - {"\x82", 0, 0x215921}, /* East Asian ideograph */ - {"\x96", 0, 0x215924}, /* East Asian ideograph */ - {"\xA6", 0, 0x215925}, /* East Asian ideograph */ - {"\xBA", 0, 0x215926}, /* East Asian ideograph */ - {"\xAB", 0, 0x215927}, /* East Asian ideograph */ - {"\xB1", 0, 0x215928}, /* East Asian ideograph */ - {"\xA7", 0, 0x215929}, /* East Asian ideograph */ - {"\x9C", 0, 0x21592A}, /* East Asian ideograph */ - {"\xBE", 0, 0x21592E}, /* East Asian ideograph */ - {"\xB7", 0, 0x21592F}, /* East Asian ideograph */ - {"\xAD", 0, 0x215930}, /* East Asian ideograph */ - {"\x8F", 0, 0x233325}, /* East Asian ideograph */ - {"\x86", 0, 0x233327}, /* East Asian ideograph */ - {"\x91", 0, 0x23332C}, /* East Asian ideograph */ - {"\x93", 0, 0x23332D}, /* East Asian ideograph */ - {"\x94", 0, 0x233333}, /* East Asian ideograph */ - {"\x8D", 0, 0x233336}, /* East Asian ideograph */ - {"\x9B", 0, 0x23333B}, /* East Asian ideograph */ - {"\x90", 0, 0x23333F}, /* East Asian ideograph */ - {"\x97", 0, 0x233340}, /* East Asian ideograph */ - {"\xB3", 0, 0x233344}, /* East Asian ideograph */ - {"\xA2", 0, 0x233345}, /* East Asian ideograph */ - {"\x9D", 0, 0x23334C}, /* East Asian ideograph */ - {"\xB6", 0, 0x23334E}, /* East Asian ideograph */ - {"\xB4", 0, 0x23334F}, /* East Asian ideograph */ - {"\xB5", 0, 0x233350}, /* East Asian ideograph */ - {"\x9F", 0, 0x233353}, /* East Asian ideograph */ - {"\xA4", 0, 0x233357}, /* East Asian ideograph */ - {"\xBC", 0, 0x23335D}, /* East Asian ideograph */ - {"\x9E", 0, 0x233362}, /* East Asian ideograph */ - {"\xA1", 0, 0x233363}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D3622}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D5927}, /* East Asian ideograph */ - {"\xA9", 0, 0x2D593D}, /* East Asian ideograph */ - {"\xA0", 0, 0x39365A}, /* East Asian ideograph */ - {"\x8B", 0, 0x4B587A}, /* East Asian ideograph */ - {"\x9A", 0, 0x696B5C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page251 = { - marc8r_31page251_flat, 0 -}; -/* PAGE 250 */ -struct yaz_iconv_trie_flat marc8r_31page250_flat[] = { - {"\xA0", 0, 0x215860}, /* East Asian ideograph */ - {"\x87", 0, 0x215861}, /* East Asian ideograph */ - {"\x85", 0, 0x215862}, /* East Asian ideograph */ - {"\xAA", 0, 0x215869}, /* East Asian ideograph */ - {"\xA6", 0, 0x21586A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21586B}, /* East Asian ideograph */ - {"\x9E", 0, 0x21586C}, /* East Asian ideograph */ - {"\x8C", 0, 0x21586D}, /* East Asian ideograph */ - {"\x93", 0, 0x21586E}, /* East Asian ideograph */ - {"\xA3", 0, 0x21586F}, /* East Asian ideograph */ - {"\x8D", 0, 0x215870}, /* East Asian ideograph */ - {"\xA4", 0, 0x215871}, /* East Asian ideograph (variant of EACC 4B5871) */ - {"\xA8", 0, 0x215872}, /* East Asian ideograph */ - {"\xA5", 0, 0x215873}, /* East Asian ideograph */ - {"\x98", 0, 0x215874}, /* East Asian ideograph */ - {"\x91", 0, 0x215875}, /* East Asian ideograph */ - {"\xBC", 0, 0x215876}, /* East Asian ideograph */ - {"\xB2", 0, 0x21587C}, /* East Asian ideograph */ - {"\xBF", 0, 0x21587D}, /* East Asian ideograph */ - {"\xB0", 0, 0x215922}, /* East Asian ideograph */ - {"\x95", 0, 0x215923}, /* East Asian ideograph */ - {"\x86", 0, 0x233250}, /* East Asian ideograph */ - {"\x82", 0, 0x233259}, /* East Asian ideograph */ - {"\x84", 0, 0x23325D}, /* East Asian ideograph */ - {"\x8F", 0, 0x233269}, /* East Asian ideograph */ - {"\x96", 0, 0x23326F}, /* East Asian ideograph */ - {"\x9A", 0, 0x233271}, /* East Asian ideograph */ - {"\xB6", 0, 0x23327E}, /* East Asian ideograph */ - {"\xBE", 0, 0x233321}, /* East Asian ideograph */ - {"\xAF", 0, 0x233331}, /* East Asian ideograph */ - {"\xB9", 0, 0x233338}, /* East Asian ideograph */ - {"\x8A", 0, 0x275937}, /* East Asian ideograph */ - {"\x89", 0, 0x275949}, /* East Asian ideograph */ - {"\x92", 0, 0x333642}, /* East Asian ideograph */ - {"\xA4", 0, 0x4B5871}, /* East Asian ideograph */ - {"\xAD", 0, 0x4B594A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page250 = { - marc8r_31page250_flat, 0 -}; -/* PAGE 249 */ -struct yaz_iconv_trie_flat marc8r_31page249_flat[] = { - {"\xA0", 0, 0x21584D}, /* East Asian ideograph */ - {"\x95", 0, 0x21584E}, /* East Asian ideograph */ - {"\x9E", 0, 0x21584F}, /* East Asian ideograph */ - {"\x81", 0, 0x215851}, /* East Asian ideograph */ - {"\x94", 0, 0x215852}, /* East Asian ideograph */ - {"\x9B", 0, 0x215853}, /* East Asian ideograph */ - {"\x90", 0, 0x215854}, /* East Asian ideograph */ - {"\x86", 0, 0x215855}, /* East Asian ideograph */ - {"\xAB", 0, 0x215858}, /* East Asian ideograph */ - {"\xB2", 0, 0x215859}, /* East Asian ideograph */ - {"\xB3", 0, 0x21585A}, /* East Asian ideograph */ - {"\xA6", 0, 0x21585B}, /* East Asian ideograph */ - {"\xA9", 0, 0x21585C}, /* East Asian ideograph */ - {"\xB0", 0, 0x21585D}, /* East Asian ideograph */ - {"\xA3", 0, 0x21585E}, /* East Asian ideograph */ - {"\xBC", 0, 0x21585F}, /* East Asian ideograph */ - {"\xAD", 0, 0x215863}, /* East Asian ideograph */ - {"\xB9", 0, 0x215864}, /* East Asian ideograph */ - {"\xA2", 0, 0x215865}, /* East Asian ideograph */ - {"\xB1", 0, 0x215866}, /* East Asian ideograph */ - {"\xAE", 0, 0x215867}, /* East Asian ideograph */ - {"\xAC", 0, 0x215868}, /* East Asian ideograph */ - {"\x91", 0, 0x233227}, /* East Asian ideograph */ - {"\x8A", 0, 0x233228}, /* East Asian ideograph */ - {"\x8E", 0, 0x23322A}, /* East Asian ideograph */ - {"\x96", 0, 0x233230}, /* East Asian ideograph */ - {"\x97", 0, 0x233237}, /* East Asian ideograph */ - {"\x88", 0, 0x233239}, /* East Asian ideograph */ - {"\x98", 0, 0x23323B}, /* East Asian ideograph */ - {"\x92", 0, 0x23323C}, /* East Asian ideograph */ - {"\x85", 0, 0x233242}, /* East Asian ideograph */ - {"\xBF", 0, 0x23324F}, /* East Asian ideograph */ - {"\xA1", 0, 0x233256}, /* East Asian ideograph */ - {"\xB5", 0, 0x23325E}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D3632}, /* East Asian ideograph */ - {"\xA7", 0, 0x2D3B33}, /* East Asian ideograph */ - {"\xBE", 0, 0x2F317D}, /* East Asian ideograph */ - {"\xB6", 0, 0x335D23}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page249 = { - marc8r_31page249_flat, 0 -}; -/* PAGE 248 */ -struct yaz_iconv_trie_flat marc8r_31page248_flat[] = { - {"\x80", 0, 0x215837}, /* East Asian ideograph */ - {"\x88", 0, 0x215838}, /* East Asian ideograph */ - {"\x82", 0, 0x215839}, /* East Asian ideograph */ - {"\x83", 0, 0x21583A}, /* East Asian ideograph */ - {"\x90", 0, 0x21583B}, /* East Asian ideograph */ - {"\x98", 0, 0x21583C}, /* East Asian ideograph */ - {"\x8E", 0, 0x21583D}, /* East Asian ideograph */ - {"\x8C", 0, 0x21583E}, /* East Asian ideograph */ - {"\x95", 0, 0x21583F}, /* East Asian ideograph */ - {"\x8A", 0, 0x215840}, /* East Asian ideograph */ - {"\x96", 0, 0x215841}, /* East Asian ideograph */ - {"\x97", 0, 0x215842}, /* East Asian ideograph */ - {"\x93", 0, 0x215843}, /* East Asian ideograph */ - {"\xAA", 0, 0x215844}, /* East Asian ideograph */ - {"\xA3", 0, 0x215845}, /* East Asian ideograph */ - {"\x9D", 0, 0x215846}, /* East Asian ideograph */ - {"\xA5", 0, 0x215847}, /* East Asian ideograph */ - {"\xB1", 0, 0x215848}, /* East Asian ideograph */ - {"\xAD", 0, 0x215849}, /* East Asian ideograph */ - {"\x9B", 0, 0x21584A}, /* East Asian ideograph */ - {"\x9F", 0, 0x21584B}, /* East Asian ideograph */ - {"\xBB", 0, 0x21584C}, /* East Asian ideograph */ - {"\xB4", 0, 0x215856}, /* East Asian ideograph */ - {"\xBA", 0, 0x215857}, /* East Asian ideograph */ - {"\x86", 0, 0x23316C}, /* East Asian ideograph */ - {"\x87", 0, 0x23316D}, /* East Asian ideograph */ - {"\x84", 0, 0x23316E}, /* East Asian ideograph */ - {"\x8F", 0, 0x233170}, /* East Asian ideograph */ - {"\x91", 0, 0x233171}, /* East Asian ideograph */ - {"\x92", 0, 0x233172}, /* East Asian ideograph */ - {"\x8D", 0, 0x233173}, /* East Asian ideograph */ - {"\xA7", 0, 0x23317A}, /* East Asian ideograph */ - {"\xA9", 0, 0x23317D}, /* East Asian ideograph */ - {"\xA2", 0, 0x233225}, /* East Asian ideograph */ - {"\xBD", 0, 0x233240}, /* East Asian ideograph */ - {"\xBE", 0, 0x233258}, /* East Asian ideograph */ - {"\xB6", 0, 0x2D356A}, /* East Asian ideograph */ - {"\xBC", 0, 0x39593F}, /* East Asian ideograph */ - {"\xA5", 0, 0x455847}, /* East Asian ideograph (variant of EACC 215847) */ - {"\xB3", 0, 0x4B5946}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page248 = { - marc8r_31page248_flat, 0 -}; -/* PAGE 247 */ -struct yaz_iconv_trie_flat marc8r_31page247_flat[] = { - {"\x80", 0, 0x215832}, /* East Asian ideograph */ - {"\x92", 0, 0x215833}, /* East Asian ideograph */ - {"\xA3", 0, 0x215834}, /* East Asian ideograph */ - {"\xB4", 0, 0x215835}, /* East Asian ideograph */ - {"\xB8", 0, 0x215836}, /* East Asian ideograph */ - {"\x96", 0, 0x23313A}, /* East Asian ideograph */ - {"\x95", 0, 0x23313B}, /* East Asian ideograph */ - {"\x9A", 0, 0x23313F}, /* East Asian ideograph */ - {"\xA5", 0, 0x233143}, /* East Asian ideograph */ - {"\x9C", 0, 0x233145}, /* East Asian ideograph */ - {"\xA1", 0, 0x233147}, /* East Asian ideograph */ - {"\xA9", 0, 0x23314C}, /* East Asian ideograph */ - {"\xAB", 0, 0x23314D}, /* East Asian ideograph */ - {"\xAD", 0, 0x233153}, /* East Asian ideograph */ - {"\xB1", 0, 0x233158}, /* East Asian ideograph */ - {"\xB3", 0, 0x23315C}, /* East Asian ideograph */ - {"\xB5", 0, 0x23315E}, /* East Asian ideograph */ - {"\xB6", 0, 0x233160}, /* East Asian ideograph */ - {"\xB7", 0, 0x233164}, /* East Asian ideograph */ - {"\xBF", 0, 0x23316B}, /* East Asian ideograph */ - {"\x81", 0, 0x275828}, /* East Asian ideograph */ - {"\x84", 0, 0x275829}, /* East Asian ideograph */ - {"\x85", 0, 0x27582A}, /* East Asian ideograph */ - {"\x86", 0, 0x27582B}, /* East Asian ideograph */ - {"\x8E", 0, 0x27582D}, /* East Asian ideograph */ - {"\x8A", 0, 0x27582E}, /* East Asian ideograph */ - {"\x90", 0, 0x27582F}, /* East Asian ideograph */ - {"\x89", 0, 0x275830}, /* East Asian ideograph */ - {"\x88", 0, 0x275831}, /* East Asian ideograph */ - {"\x82", 0, 0x275832}, /* East Asian ideograph */ - {"\x9E", 0, 0x275835}, /* East Asian ideograph */ - {"\x87", 0, 0x293066}, /* East Asian ideograph */ - {"\x8B", 0, 0x29306F}, /* East Asian ideograph */ - {"\x8F", 0, 0x29307D}, /* East Asian ideograph */ - {"\x91", 0, 0x29312B}, /* East Asian ideograph */ - {"\x8C", 0, 0x293132}, /* East Asian ideograph */ - {"\xAF", 0, 0x293160}, /* East Asian ideograph */ - {"\xA6", 0, 0x2D5836}, /* East Asian ideograph */ - {"\xB5", 0, 0x2F3143}, /* East Asian ideograph (unrelated variant of EACC 23315E) */ - {"\x94", 0, 0x334260}, /* East Asian ideograph */ - {"\x9D", 0, 0x334A58}, /* East Asian ideograph */ - {"\xA7", 0, 0x335834}, /* East Asian ideograph */ - {"\x92", 0, 0x4B5361}, /* East Asian ideograph (duplicate simplified) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page247 = { - marc8r_31page247_flat, 0 -}; -/* PAGE 246 */ -struct yaz_iconv_trie_flat marc8r_31page246_flat[] = { - {"\x81", 0, 0x215825}, /* East Asian ideograph */ - {"\x83", 0, 0x215826}, /* East Asian ideograph */ - {"\x8B", 0, 0x215828}, /* East Asian ideograph */ - {"\x8F", 0, 0x215829}, /* East Asian ideograph */ - {"\x93", 0, 0x21582A}, /* East Asian ideograph */ - {"\x96", 0, 0x21582B}, /* East Asian ideograph */ - {"\xAA", 0, 0x21582C}, /* East Asian ideograph */ - {"\xA6", 0, 0x21582D}, /* East Asian ideograph */ - {"\xAC", 0, 0x21582E}, /* East Asian ideograph */ - {"\xB2", 0, 0x21582F}, /* East Asian ideograph */ - {"\xBA", 0, 0x215830}, /* East Asian ideograph */ - {"\xBD", 0, 0x215831}, /* East Asian ideograph */ - {"\x84", 0, 0x233053}, /* East Asian ideograph */ - {"\x85", 0, 0x233055}, /* East Asian ideograph */ - {"\x91", 0, 0x233062}, /* East Asian ideograph */ - {"\x97", 0, 0x233064}, /* East Asian ideograph */ - {"\x98", 0, 0x233066}, /* East Asian ideograph */ - {"\x9C", 0, 0x23306B}, /* East Asian ideograph */ - {"\xA1", 0, 0x23306F}, /* East Asian ideograph */ - {"\xA5", 0, 0x233076}, /* East Asian ideograph */ - {"\xA9", 0, 0x233079}, /* East Asian ideograph */ - {"\xAF", 0, 0x23307D}, /* East Asian ideograph */ - {"\xB8", 0, 0x23312A}, /* East Asian ideograph */ - {"\xB7", 0, 0x23312B}, /* East Asian ideograph */ - {"\xB6", 0, 0x23312C}, /* East Asian ideograph */ - {"\xBC", 0, 0x23312F}, /* East Asian ideograph */ - {"\xBF", 0, 0x233132}, /* East Asian ideograph */ - {"\x8A", 0, 0x2D5238}, /* East Asian ideograph */ - {"\xA7", 0, 0x2D5831}, /* East Asian ideograph */ - {"\xBB", 0, 0x2F312B}, /* East Asian ideograph */ - {"\x89", 0, 0x335238}, /* East Asian ideograph */ - {"\x88", 0, 0x394444}, /* East Asian ideograph */ - {"\x87", 0, 0x395F68}, /* East Asian ideograph */ - {"\x86", 0, 0x3F3D6F}, /* East Asian ideograph */ - {"\x88", 0, 0x4B4444}, /* East Asian ideograph (Version J extension) */ - {"\x83", 0, 0x4B5826}, /* East Asian ideograph (variant of EACC 215826) */ - {"\x9A", 0, 0x4B5830}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B5832}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page246 = { - marc8r_31page246_flat, 0 -}; -/* PAGE 245 */ -struct yaz_iconv_trie_flat marc8r_31page245_flat[] = { - {"\x84", 0, 0x21577A}, /* East Asian ideograph */ - {"\x9F", 0, 0x21577B}, /* East Asian ideograph */ - {"\xA0", 0, 0x21577C}, /* East Asian ideograph */ - {"\x96", 0, 0x21577D}, /* East Asian ideograph */ - {"\xA4", 0, 0x21577E}, /* East Asian ideograph */ - {"\xAA", 0, 0x215821}, /* East Asian ideograph */ - {"\xAF", 0, 0x215822}, /* East Asian ideograph */ - {"\xB2", 0, 0x215823}, /* East Asian ideograph */ - {"\xBF", 0, 0x215824}, /* East Asian ideograph */ - {"\x81", 0, 0x232F5D}, /* East Asian ideograph */ - {"\x94", 0, 0x232F66}, /* East Asian ideograph */ - {"\x8F", 0, 0x232F6F}, /* East Asian ideograph */ - {"\x87", 0, 0x232F72}, /* East Asian ideograph */ - {"\x8C", 0, 0x232F7A}, /* East Asian ideograph */ - {"\x86", 0, 0x232F7B}, /* East Asian ideograph */ - {"\x8D", 0, 0x233021}, /* East Asian ideograph */ - {"\xA2", 0, 0x233023}, /* East Asian ideograph */ - {"\x9A", 0, 0x233024}, /* East Asian ideograph */ - {"\x9E", 0, 0x233025}, /* East Asian ideograph */ - {"\x9B", 0, 0x233029}, /* East Asian ideograph */ - {"\x9C", 0, 0x23302C}, /* East Asian ideograph */ - {"\x9D", 0, 0x23302D}, /* East Asian ideograph */ - {"\xA6", 0, 0x233031}, /* East Asian ideograph */ - {"\xAD", 0, 0x233037}, /* East Asian ideograph */ - {"\xAB", 0, 0x23303A}, /* East Asian ideograph */ - {"\xAE", 0, 0x23303B}, /* East Asian ideograph */ - {"\xAC", 0, 0x23303C}, /* East Asian ideograph */ - {"\xB6", 0, 0x233041}, /* East Asian ideograph */ - {"\xB4", 0, 0x233042}, /* East Asian ideograph */ - {"\xBB", 0, 0x233049}, /* East Asian ideograph */ - {"\xBC", 0, 0x23304A}, /* East Asian ideograph */ - {"\x83", 0, 0x335772}, /* East Asian ideograph */ - {"\xBE", 0, 0x4B5824}, /* East Asian ideograph */ - {"\x81", 0, 0x4D2F5D}, /* East Asian ideograph (variant of EACC 232F5D) */ - {"\xB7", 0, 0x696B27}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page245 = { - marc8r_31page245_flat, 0 -}; -/* PAGE 244 */ -struct yaz_iconv_trie_flat marc8r_31page244_flat[] = { - {"\x82", 0, 0x215767}, /* East Asian ideograph */ - {"\x9A", 0, 0x21576E}, /* East Asian ideograph */ - {"\x90", 0, 0x21576F}, /* East Asian ideograph */ - {"\x93", 0, 0x215771}, /* East Asian ideograph */ - {"\x92", 0, 0x215772}, /* East Asian ideograph */ - {"\xB2", 0, 0x215773}, /* East Asian ideograph */ - {"\xAA", 0, 0x215774}, /* East Asian ideograph */ - {"\xA5", 0, 0x215775}, /* East Asian ideograph */ - {"\xAB", 0, 0x215776}, /* East Asian ideograph */ - {"\xBB", 0, 0x215777}, /* East Asian ideograph */ - {"\xB6", 0, 0x215778}, /* East Asian ideograph */ - {"\xB8", 0, 0x215779}, /* East Asian ideograph */ - {"\x80", 0, 0x232E78}, /* East Asian ideograph */ - {"\x83", 0, 0x232F24}, /* East Asian ideograph */ - {"\x89", 0, 0x232F2D}, /* East Asian ideograph */ - {"\x98", 0, 0x232F2F}, /* East Asian ideograph */ - {"\x86", 0, 0x232F35}, /* East Asian ideograph */ - {"\x8C", 0, 0x232F36}, /* East Asian ideograph */ - {"\x99", 0, 0x232F37}, /* East Asian ideograph */ - {"\x8A", 0, 0x232F3D}, /* East Asian ideograph */ - {"\x95", 0, 0x232F43}, /* East Asian ideograph */ - {"\xAF", 0, 0x232F45}, /* East Asian ideograph */ - {"\xB0", 0, 0x232F47}, /* East Asian ideograph */ - {"\xA1", 0, 0x232F4E}, /* East Asian ideograph */ - {"\xA7", 0, 0x232F4F}, /* East Asian ideograph */ - {"\x9F", 0, 0x232F51}, /* East Asian ideograph */ - {"\xB1", 0, 0x232F53}, /* East Asian ideograph */ - {"\x9E", 0, 0x232F54}, /* East Asian ideograph */ - {"\xA6", 0, 0x232F56}, /* East Asian ideograph */ - {"\xA2", 0, 0x232F57}, /* East Asian ideograph */ - {"\xB5", 0, 0x232F5A}, /* East Asian ideograph */ - {"\xB3", 0, 0x232F60}, /* East Asian ideograph */ - {"\xB4", 0, 0x275771}, /* East Asian ideograph */ - {"\x9B", 0, 0x275779}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D5758}, /* East Asian ideograph */ - {"\x87", 0, 0x393D6F}, /* East Asian ideograph */ - {"\x90", 0, 0x4B576F}, /* East Asian ideograph (variant of EACC 21576F) */ - {"\x9D", 0, 0x4D2F7A}, /* East Asian ideograph */ - {"\x84", 0, 0x696A6D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page244 = { - marc8r_31page244_flat, 0 -}; -/* PAGE 243 */ -struct yaz_iconv_trie_flat marc8r_31page243_flat[] = { - {"\x81", 0, 0x21575C}, /* East Asian ideograph */ - {"\x82", 0, 0x21575D}, /* East Asian ideograph */ - {"\x9F", 0, 0x21575F}, /* East Asian ideograph */ - {"\x99", 0, 0x215760}, /* East Asian ideograph */ - {"\x98", 0, 0x215761}, /* East Asian ideograph */ - {"\x9C", 0, 0x215762}, /* East Asian ideograph */ - {"\x8F", 0, 0x215763}, /* East Asian ideograph */ - {"\x94", 0, 0x215764}, /* East Asian ideograph */ - {"\x9D", 0, 0x215765}, /* East Asian ideograph */ - {"\x95", 0, 0x215766}, /* East Asian ideograph */ - {"\xB3", 0, 0x215768}, /* East Asian ideograph */ - {"\xB8", 0, 0x215769}, /* East Asian ideograph */ - {"\xB9", 0, 0x21576A}, /* East Asian ideograph */ - {"\xB4", 0, 0x21576B}, /* East Asian ideograph */ - {"\xBD", 0, 0x21576C}, /* East Asian ideograph */ - {"\xA8", 0, 0x21576D}, /* East Asian ideograph */ - {"\x89", 0, 0x232E48}, /* East Asian ideograph */ - {"\x80", 0, 0x232E4F}, /* East Asian ideograph */ - {"\x84", 0, 0x232E5A}, /* East Asian ideograph */ - {"\x8B", 0, 0x232E5E}, /* East Asian ideograph */ - {"\x8C", 0, 0x232E60}, /* East Asian ideograph */ - {"\x9B", 0, 0x232E62}, /* East Asian ideograph */ - {"\x8E", 0, 0x232E64}, /* East Asian ideograph */ - {"\x92", 0, 0x232E68}, /* East Asian ideograph */ - {"\xB1", 0, 0x232E71}, /* East Asian ideograph */ - {"\xBE", 0, 0x232E72}, /* East Asian ideograph */ - {"\xB2", 0, 0x232E75}, /* East Asian ideograph */ - {"\xB0", 0, 0x232E7A}, /* East Asian ideograph */ - {"\xBC", 0, 0x232F21}, /* East Asian ideograph */ - {"\xAF", 0, 0x232F23}, /* East Asian ideograph */ - {"\x85", 0, 0x275765}, /* East Asian ideograph */ - {"\xA4", 0, 0x275773}, /* East Asian ideograph */ - {"\x86", 0, 0x27577C}, /* East Asian ideograph */ - {"\xA2", 0, 0x292F60}, /* East Asian ideograph */ - {"\xA5", 0, 0x292F72}, /* East Asian ideograph */ - {"\xA3", 0, 0x29302D}, /* East Asian ideograph */ - {"\xA1", 0, 0x2D5763}, /* East Asian ideograph */ - {"\xA0", 0, 0x335760}, /* East Asian ideograph */ - {"\x8A", 0, 0x4B3A47}, /* East Asian ideograph */ - {"\x83", 0, 0x696A61}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page243 = { - marc8r_31page243_flat, 0 -}; -/* PAGE 242 */ -struct yaz_iconv_trie_flat marc8r_31page242_flat[] = { - {"\x82", 0, 0x215751}, /* East Asian ideograph */ - {"\x81", 0, 0x215752}, /* East Asian ideograph */ - {"\x88", 0, 0x215755}, /* East Asian ideograph */ - {"\xAB", 0, 0x215756}, /* East Asian ideograph */ - {"\x92", 0, 0x215757}, /* East Asian ideograph */ - {"\x96", 0, 0x215758}, /* East Asian ideograph */ - {"\x8D", 0, 0x215759}, /* East Asian ideograph */ - {"\x8B", 0, 0x21575A}, /* East Asian ideograph */ - {"\x9E", 0, 0x21575B}, /* East Asian ideograph */ - {"\xB1", 0, 0x21575E}, /* East Asian ideograph */ - {"\xA2", 0, 0x232E28}, /* East Asian ideograph */ - {"\xA4", 0, 0x232E2A}, /* East Asian ideograph */ - {"\xAA", 0, 0x232E2F}, /* East Asian ideograph */ - {"\x9A", 0, 0x232E34}, /* East Asian ideograph */ - {"\x90", 0, 0x232E3A}, /* East Asian ideograph */ - {"\x8C", 0, 0x232E3B}, /* East Asian ideograph */ - {"\xA0", 0, 0x232E3D}, /* East Asian ideograph */ - {"\x99", 0, 0x232E40}, /* East Asian ideograph */ - {"\x97", 0, 0x232E45}, /* East Asian ideograph */ - {"\xBF", 0, 0x232E49}, /* East Asian ideograph */ - {"\xBA", 0, 0x232E4A}, /* East Asian ideograph */ - {"\xB2", 0, 0x232E51}, /* East Asian ideograph */ - {"\xBC", 0, 0x232E54}, /* East Asian ideograph */ - {"\xB7", 0, 0x232E57}, /* East Asian ideograph */ - {"\xBD", 0, 0x232E59}, /* East Asian ideograph */ - {"\x84", 0, 0x27577D}, /* East Asian ideograph */ - {"\x9C", 0, 0x275821}, /* East Asian ideograph */ - {"\xAD", 0, 0x275823}, /* East Asian ideograph */ - {"\xB5", 0, 0x2F2D79}, /* East Asian ideograph */ - {"\xB4", 0, 0x335773}, /* East Asian ideograph */ - {"\xAE", 0, 0x4D3032}, /* East Asian ideograph */ - {"\x85", 0, 0x513A47}, /* East Asian ideograph */ - {"\xB0", 0, 0x696A5E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page242 = { - marc8r_31page242_flat, 0 -}; -/* PAGE 241 */ -struct yaz_iconv_trie_flat marc8r_31page241_flat[] = { - {"\x80", 0, 0x215743}, /* East Asian ideograph */ - {"\x8C", 0, 0x215744}, /* East Asian ideograph */ - {"\x8D", 0, 0x215745}, /* East Asian ideograph */ - {"\x93", 0, 0x215746}, /* East Asian ideograph (variant of EACC 4B5746) */ - {"\x97", 0, 0x215747}, /* East Asian ideograph */ - {"\x99", 0, 0x215748}, /* East Asian ideograph */ - {"\x9B", 0, 0x215749}, /* East Asian ideograph */ - {"\x9D", 0, 0x21574A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21574B}, /* East Asian ideograph */ - {"\xA2", 0, 0x21574C}, /* East Asian ideograph */ - {"\xA3", 0, 0x21574D}, /* East Asian ideograph */ - {"\xA8", 0, 0x21574F}, /* East Asian ideograph */ - {"\xAB", 0, 0x215750}, /* East Asian ideograph */ - {"\xB0", 0, 0x215753}, /* East Asian ideograph */ - {"\xB7", 0, 0x215754}, /* East Asian ideograph */ - {"\x81", 0, 0x232D41}, /* East Asian ideograph */ - {"\x84", 0, 0x232D44}, /* East Asian ideograph */ - {"\x87", 0, 0x232D4B}, /* East Asian ideograph */ - {"\x8A", 0, 0x232D51}, /* East Asian ideograph */ - {"\x8E", 0, 0x232D53}, /* East Asian ideograph */ - {"\x92", 0, 0x232D56}, /* East Asian ideograph */ - {"\x90", 0, 0x232D57}, /* East Asian ideograph */ - {"\x96", 0, 0x232D59}, /* East Asian ideograph */ - {"\x95", 0, 0x232D5A}, /* East Asian ideograph */ - {"\x9C", 0, 0x232D5E}, /* East Asian ideograph */ - {"\x9A", 0, 0x232D5F}, /* East Asian ideograph */ - {"\xA9", 0, 0x232D69}, /* East Asian ideograph */ - {"\xAD", 0, 0x232D6D}, /* East Asian ideograph */ - {"\xBA", 0, 0x232D6E}, /* East Asian ideograph */ - {"\xB5", 0, 0x232D71}, /* East Asian ideograph */ - {"\xB2", 0, 0x232D75}, /* East Asian ideograph */ - {"\xBD", 0, 0x232D79}, /* East Asian ideograph */ - {"\xB9", 0, 0x232D7C}, /* East Asian ideograph */ - {"\xBF", 0, 0x232D7D}, /* East Asian ideograph */ - {"\xBE", 0, 0x232D7E}, /* East Asian ideograph */ - {"\xA5", 0, 0x275762}, /* East Asian ideograph */ - {"\xAC", 0, 0x275822}, /* East Asian ideograph */ - {"\x85", 0, 0x275D35}, /* East Asian ideograph */ - {"\x94", 0, 0x275D61}, /* East Asian ideograph */ - {"\x9E", 0, 0x2D5749}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D575B}, /* East Asian ideograph */ - {"\x82", 0, 0x3B2D44}, /* East Asian ideograph */ - {"\x86", 0, 0x4B4D56}, /* East Asian ideograph */ - {"\x93", 0, 0x4B5746}, /* East Asian ideograph */ - {"\xB2", 0, 0x4D2D75}, /* East Asian ideograph (variant of EACC 232D75) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page241 = { - marc8r_31page241_flat, 0 -}; -/* PAGE 240 */ -struct yaz_iconv_trie_flat marc8r_31page240_flat[] = { - {"\x85", 0, 0x215736}, /* East Asian ideograph */ - {"\x8D", 0, 0x215737}, /* East Asian ideograph */ - {"\x94", 0, 0x215739}, /* East Asian ideograph */ - {"\x95", 0, 0x21573A}, /* East Asian ideograph */ - {"\xA2", 0, 0x21573B}, /* East Asian ideograph */ - {"\xA3", 0, 0x21573C}, /* East Asian ideograph */ - {"\xA1", 0, 0x21573D}, /* East Asian ideograph */ - {"\x9F", 0, 0x21573E}, /* East Asian ideograph */ - {"\xB1", 0, 0x21573F}, /* East Asian ideograph */ - {"\xB9", 0, 0x215740}, /* East Asian ideograph */ - {"\xB6", 0, 0x215741}, /* East Asian ideograph */ - {"\xBB", 0, 0x215742}, /* East Asian ideograph */ - {"\x81", 0, 0x232C4D}, /* East Asian ideograph */ - {"\x83", 0, 0x232C4F}, /* East Asian ideograph */ - {"\x8A", 0, 0x232C50}, /* East Asian ideograph */ - {"\x8B", 0, 0x232C5C}, /* East Asian ideograph */ - {"\x86", 0, 0x232C5D}, /* East Asian ideograph */ - {"\x90", 0, 0x232C61}, /* East Asian ideograph */ - {"\x99", 0, 0x232C63}, /* East Asian ideograph */ - {"\x91", 0, 0x232C64}, /* East Asian ideograph */ - {"\x98", 0, 0x232C66}, /* East Asian ideograph */ - {"\x93", 0, 0x232C6A}, /* East Asian ideograph */ - {"\x96", 0, 0x232C6B}, /* East Asian ideograph */ - {"\xB4", 0, 0x232C72}, /* East Asian ideograph */ - {"\x9C", 0, 0x232C73}, /* East Asian ideograph */ - {"\x9B", 0, 0x232C7A}, /* East Asian ideograph */ - {"\xA8", 0, 0x232D23}, /* East Asian ideograph */ - {"\xB2", 0, 0x232D2A}, /* East Asian ideograph */ - {"\xAE", 0, 0x232D2E}, /* East Asian ideograph */ - {"\xAD", 0, 0x232D32}, /* East Asian ideograph */ - {"\xBC", 0, 0x232D3C}, /* East Asian ideograph */ - {"\x8E", 0, 0x33572E}, /* East Asian ideograph */ - {"\x8F", 0, 0x335738}, /* East Asian ideograph */ - {"\x81", 0, 0x472C4D}, /* East Asian ideograph (variant of EACC 232C4D) */ - {"\xA7", 0, 0x4B5740}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page240 = { - marc8r_31page240_flat, 0 -}; -/* PAGE 239 */ -struct yaz_iconv_trie_flat marc8r_31page239_flat[] = { - {"\x91", 0, 0x215728}, /* East Asian ideograph */ - {"\x80", 0, 0x215729}, /* East Asian ideograph */ - {"\x88", 0, 0x21572D}, /* East Asian ideograph */ - {"\x92", 0, 0x21572E}, /* East Asian ideograph */ - {"\x86", 0, 0x215730}, /* East Asian ideograph */ - {"\x8B", 0, 0x215731}, /* East Asian ideograph */ - {"\xAF", 0, 0x215732}, /* East Asian ideograph */ - {"\xB2", 0, 0x215733}, /* East Asian ideograph */ - {"\xAC", 0, 0x215734}, /* East Asian ideograph */ - {"\xBB", 0, 0x215735}, /* East Asian ideograph */ - {"\xB9", 0, 0x215738}, /* East Asian ideograph */ - {"\x84", 0, 0x232B6E}, /* East Asian ideograph */ - {"\xAE", 0, 0x232C2C}, /* East Asian ideograph */ - {"\xB3", 0, 0x232C30}, /* East Asian ideograph */ - {"\xB0", 0, 0x232C31}, /* East Asian ideograph */ - {"\xAA", 0, 0x232C34}, /* East Asian ideograph */ - {"\x9B", 0, 0x232C36}, /* East Asian ideograph */ - {"\xA2", 0, 0x232C37}, /* East Asian ideograph */ - {"\xAB", 0, 0x232C39}, /* East Asian ideograph */ - {"\x96", 0, 0x232C3A}, /* East Asian ideograph */ - {"\xB5", 0, 0x232C3F}, /* East Asian ideograph */ - {"\xA0", 0, 0x232C47}, /* East Asian ideograph */ - {"\x93", 0, 0x232C48}, /* East Asian ideograph */ - {"\x9C", 0, 0x232C49}, /* East Asian ideograph */ - {"\xA3", 0, 0x232C4C}, /* East Asian ideograph */ - {"\xB6", 0, 0x232C55}, /* East Asian ideograph */ - {"\xB7", 0, 0x232C57}, /* East Asian ideograph */ - {"\xBE", 0, 0x232C5F}, /* East Asian ideograph */ - {"\x87", 0, 0x2D5730}, /* East Asian ideograph */ - {"\x8A", 0, 0x2F2A73}, /* East Asian ideograph */ - {"\x81", 0, 0x335652}, /* East Asian ideograph */ - {"\xA5", 0, 0x4D2C3C}, /* East Asian ideograph */ - {"\x90", 0, 0x696A2C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page239 = { - marc8r_31page239_flat, 0 -}; -/* PAGE 238 */ -struct yaz_iconv_trie_flat marc8r_31page238_flat[] = { - {"\x83", 0, 0x215722}, /* East Asian ideograph */ - {"\x82", 0, 0x215723}, /* East Asian ideograph */ - {"\xA2", 0, 0x215724}, /* East Asian ideograph */ - {"\x9E", 0, 0x215725}, /* East Asian ideograph */ - {"\x8D", 0, 0x215726}, /* East Asian ideograph */ - {"\x9F", 0, 0x215727}, /* East Asian ideograph */ - {"\xAB", 0, 0x21572A}, /* East Asian ideograph */ - {"\xB3", 0, 0x21572B}, /* East Asian ideograph */ - {"\xBB", 0, 0x21572C}, /* East Asian ideograph */ - {"\xBA", 0, 0x21572F}, /* East Asian ideograph */ - {"\xA3", 0, 0x232B3A}, /* East Asian ideograph */ - {"\x93", 0, 0x232B3D}, /* East Asian ideograph */ - {"\x99", 0, 0x232B45}, /* East Asian ideograph */ - {"\x88", 0, 0x232B48}, /* East Asian ideograph */ - {"\x98", 0, 0x232B4C}, /* East Asian ideograph */ - {"\x85", 0, 0x232B53}, /* East Asian ideograph */ - {"\x8B", 0, 0x232B54}, /* East Asian ideograph */ - {"\x84", 0, 0x232B55}, /* East Asian ideograph */ - {"\xA9", 0, 0x232B58}, /* East Asian ideograph */ - {"\x89", 0, 0x232B5D}, /* East Asian ideograph */ - {"\xAD", 0, 0x232B60}, /* East Asian ideograph */ - {"\xBE", 0, 0x232B66}, /* East Asian ideograph */ - {"\xAF", 0, 0x232B6F}, /* East Asian ideograph */ - {"\xAC", 0, 0x232B72}, /* East Asian ideograph */ - {"\xAE", 0, 0x232B78}, /* East Asian ideograph */ - {"\xBF", 0, 0x232B7E}, /* East Asian ideograph */ - {"\xBD", 0, 0x232C24}, /* East Asian ideograph */ - {"\x97", 0, 0x2D572B}, /* East Asian ideograph */ - {"\xB5", 0, 0x2F2A64}, /* East Asian ideograph */ - {"\xA1", 0, 0x395652}, /* East Asian ideograph */ - {"\xA8", 0, 0x70727D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page238 = { - marc8r_31page238_flat, 0 -}; -/* PAGE 237 */ -struct yaz_iconv_trie_flat marc8r_31page237_flat[] = { - {"\x95", 0, 0x215676}, /* East Asian ideograph */ - {"\xA0", 0, 0x215677}, /* East Asian ideograph */ - {"\xB6", 0, 0x215678}, /* East Asian ideograph */ - {"\xB4", 0, 0x215679}, /* East Asian ideograph */ - {"\xA6", 0, 0x21567A}, /* East Asian ideograph */ - {"\xB8", 0, 0x21567B}, /* East Asian ideograph */ - {"\xA8", 0, 0x21567C}, /* East Asian ideograph */ - {"\x8C", 0, 0x21567D}, /* East Asian ideograph */ - {"\x97", 0, 0x21567E}, /* East Asian ideograph */ - {"\x99", 0, 0x215721}, /* East Asian ideograph */ - {"\x8A", 0, 0x232A42}, /* East Asian ideograph */ - {"\x80", 0, 0x232A49}, /* East Asian ideograph */ - {"\x83", 0, 0x232A53}, /* East Asian ideograph */ - {"\x84", 0, 0x232A55}, /* East Asian ideograph */ - {"\x8F", 0, 0x232A6B}, /* East Asian ideograph */ - {"\xB1", 0, 0x232A6C}, /* East Asian ideograph */ - {"\xA3", 0, 0x232A6D}, /* East Asian ideograph */ - {"\xA4", 0, 0x232A71}, /* East Asian ideograph */ - {"\xA5", 0, 0x232A73}, /* East Asian ideograph */ - {"\xBD", 0, 0x232A74}, /* East Asian ideograph */ - {"\x98", 0, 0x232A79}, /* East Asian ideograph */ - {"\xBB", 0, 0x232A7B}, /* East Asian ideograph */ - {"\xA1", 0, 0x232B21}, /* East Asian ideograph */ - {"\xAA", 0, 0x232B24}, /* East Asian ideograph */ - {"\x8E", 0, 0x232B27}, /* East Asian ideograph */ - {"\x9F", 0, 0x232B28}, /* East Asian ideograph */ - {"\xAF", 0, 0x232B2D}, /* East Asian ideograph */ - {"\x9D", 0, 0x232B2E}, /* East Asian ideograph */ - {"\xAE", 0, 0x232B30}, /* East Asian ideograph */ - {"\x8D", 0, 0x232B33}, /* East Asian ideograph */ - {"\x93", 0, 0x232B35}, /* East Asian ideograph */ - {"\xBC", 0, 0x27572C}, /* East Asian ideograph */ - {"\x89", 0, 0x275734}, /* East Asian ideograph */ - {"\x87", 0, 0x275736}, /* East Asian ideograph */ - {"\xBE", 0, 0x292C64}, /* East Asian ideograph */ - {"\x88", 0, 0x2D572D}, /* East Asian ideograph */ - {"\xBF", 0, 0x4B5736}, /* East Asian ideograph */ - {"\xB0", 0, 0x4D2925}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page237 = { - marc8r_31page237_flat, 0 -}; -/* PAGE 236 */ -struct yaz_iconv_trie_flat marc8r_31page236_flat[] = { - {"\x87", 0, 0x215668}, /* East Asian ideograph */ - {"\x83", 0, 0x215669}, /* East Asian ideograph */ - {"\x88", 0, 0x21566A}, /* East Asian ideograph */ - {"\x80", 0, 0x21566B}, /* East Asian ideograph */ - {"\x93", 0, 0x21566D}, /* East Asian ideograph */ - {"\x82", 0, 0x21566E}, /* East Asian ideograph */ - {"\x9C", 0, 0x21566F}, /* East Asian ideograph */ - {"\xBF", 0, 0x215670}, /* East Asian ideograph */ - {"\xBB", 0, 0x215671}, /* East Asian ideograph */ - {"\xA2", 0, 0x215672}, /* East Asian ideograph */ - {"\xA5", 0, 0x215673}, /* East Asian ideograph */ - {"\xB4", 0, 0x215674}, /* East Asian ideograph */ - {"\x98", 0, 0x215675}, /* East Asian ideograph */ - {"\x8B", 0, 0x232A25}, /* East Asian ideograph */ - {"\x86", 0, 0x232A34}, /* East Asian ideograph */ - {"\x8E", 0, 0x232A36}, /* East Asian ideograph */ - {"\x89", 0, 0x232A38}, /* East Asian ideograph */ - {"\x8A", 0, 0x232A3A}, /* East Asian ideograph */ - {"\x8D", 0, 0x232A3E}, /* East Asian ideograph */ - {"\xA3", 0, 0x232A43}, /* East Asian ideograph */ - {"\xB7", 0, 0x232A44}, /* East Asian ideograph */ - {"\xA8", 0, 0x232A45}, /* East Asian ideograph */ - {"\xAE", 0, 0x232A4B}, /* East Asian ideograph */ - {"\xBD", 0, 0x232A4C}, /* East Asian ideograph */ - {"\x9E", 0, 0x232A4E}, /* East Asian ideograph */ - {"\xBE", 0, 0x232A57}, /* East Asian ideograph */ - {"\xA9", 0, 0x232A59}, /* East Asian ideograph */ - {"\xB9", 0, 0x232A5A}, /* East Asian ideograph */ - {"\x9A", 0, 0x232A5F}, /* East Asian ideograph */ - {"\xB1", 0, 0x232A64}, /* East Asian ideograph */ - {"\x91", 0, 0x232A65}, /* East Asian ideograph */ - {"\x92", 0, 0x232A66}, /* East Asian ideograph */ - {"\xA1", 0, 0x27573E}, /* East Asian ideograph */ - {"\x97", 0, 0x2D567B}, /* East Asian ideograph */ - {"\xBA", 0, 0x2D5F63}, /* East Asian ideograph */ - {"\x88", 0, 0x4B566A}, /* East Asian ideograph (variant of EACC 21566A) */ - {"\xBB", 0, 0x4B5671}, /* East Asian ideograph (variant of EACC 215671) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page236 = { - marc8r_31page236_flat, 0 -}; -/* PAGE 235 */ -struct yaz_iconv_trie_flat marc8r_31page235_flat[] = { - {"\x80", 0, 0x215657}, /* East Asian ideograph */ - {"\x87", 0, 0x215658}, /* East Asian ideograph */ - {"\x8B", 0, 0x21565A}, /* East Asian ideograph */ - {"\x84", 0, 0x21565C}, /* East Asian ideograph */ - {"\x86", 0, 0x21565D}, /* East Asian ideograph */ - {"\x9F", 0, 0x215660}, /* East Asian ideograph */ - {"\x99", 0, 0x215661}, /* East Asian ideograph */ - {"\xAD", 0, 0x215662}, /* East Asian ideograph */ - {"\x94", 0, 0x215663}, /* East Asian ideograph */ - {"\x9B", 0, 0x215664}, /* East Asian ideograph */ - {"\xA4", 0, 0x215665}, /* East Asian ideograph */ - {"\xBB", 0, 0x215666}, /* East Asian ideograph */ - {"\xB9", 0, 0x215667}, /* East Asian ideograph */ - {"\xBE", 0, 0x21566C}, /* East Asian ideograph */ - {"\x89", 0, 0x232962}, /* East Asian ideograph */ - {"\x98", 0, 0x232967}, /* East Asian ideograph */ - {"\xA3", 0, 0x23296E}, /* East Asian ideograph */ - {"\xA9", 0, 0x23296F}, /* East Asian ideograph */ - {"\xAC", 0, 0x232971}, /* East Asian ideograph */ - {"\x95", 0, 0x232974}, /* East Asian ideograph */ - {"\x90", 0, 0x232977}, /* East Asian ideograph */ - {"\x91", 0, 0x23297A}, /* East Asian ideograph */ - {"\x9E", 0, 0x23297E}, /* East Asian ideograph */ - {"\xBA", 0, 0x232A2F}, /* East Asian ideograph */ - {"\xB8", 0, 0x232A33}, /* East Asian ideograph */ - {"\x83", 0, 0x23355C}, /* East Asian ideograph */ - {"\xB2", 0, 0x275732}, /* East Asian ideograph */ - {"\x8E", 0, 0x27573C}, /* East Asian ideograph */ - {"\x8A", 0, 0x27573F}, /* East Asian ideograph */ - {"\xAE", 0, 0x275742}, /* East Asian ideograph */ - {"\xB1", 0, 0x292A2F}, /* East Asian ideograph */ - {"\xB3", 0, 0x292B55}, /* East Asian ideograph */ - {"\xB0", 0, 0x292B6E}, /* East Asian ideograph */ - {"\x8F", 0, 0x292C55}, /* East Asian ideograph */ - {"\xB4", 0, 0x292C61}, /* East Asian ideograph */ - {"\x8D", 0, 0x4B5724}, /* East Asian ideograph */ - {"\x89", 0, 0x4D2962}, /* East Asian ideograph (variant of EACC 232962) */ - {"\xAF", 0, 0x696962}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page235 = { - marc8r_31page235_flat, 0 -}; -/* PAGE 234 */ -struct yaz_iconv_trie_flat marc8r_31page234_flat[] = { - {"\xA9", 0, 0x215650}, /* East Asian ideograph */ - {"\xAA", 0, 0x215651}, /* East Asian ideograph */ - {"\x8A", 0, 0x215652}, /* East Asian ideograph */ - {"\x93", 0, 0x215653}, /* East Asian ideograph */ - {"\xA4", 0, 0x215654}, /* East Asian ideograph */ - {"\x8C", 0, 0x215655}, /* East Asian ideograph */ - {"\xA3", 0, 0x215656}, /* East Asian ideograph */ - {"\xB5", 0, 0x215659}, /* East Asian ideograph */ - {"\xB6", 0, 0x21565B}, /* East Asian ideograph */ - {"\xB1", 0, 0x21565E}, /* East Asian ideograph */ - {"\xAF", 0, 0x21565F}, /* East Asian ideograph */ - {"\x96", 0, 0x23292E}, /* East Asian ideograph */ - {"\xA8", 0, 0x23292F}, /* East Asian ideograph */ - {"\x91", 0, 0x232936}, /* East Asian ideograph */ - {"\x9C", 0, 0x232937}, /* East Asian ideograph */ - {"\x98", 0, 0x232939}, /* East Asian ideograph */ - {"\x8D", 0, 0x23293C}, /* East Asian ideograph */ - {"\x8B", 0, 0x23293D}, /* East Asian ideograph */ - {"\xA6", 0, 0x232940}, /* East Asian ideograph */ - {"\x9D", 0, 0x232942}, /* East Asian ideograph */ - {"\xA0", 0, 0x232946}, /* East Asian ideograph */ - {"\xA7", 0, 0x232948}, /* East Asian ideograph */ - {"\xBF", 0, 0x23294B}, /* East Asian ideograph */ - {"\xBA", 0, 0x232958}, /* East Asian ideograph */ - {"\xB0", 0, 0x232959}, /* East Asian ideograph */ - {"\xB3", 0, 0x232960}, /* East Asian ideograph */ - {"\xB4", 0, 0x232963}, /* East Asian ideograph */ - {"\x80", 0, 0x275676}, /* East Asian ideograph */ - {"\x82", 0, 0x275725}, /* East Asian ideograph */ - {"\x81", 0, 0x275735}, /* East Asian ideograph */ - {"\x95", 0, 0x275741}, /* East Asian ideograph */ - {"\xAC", 0, 0x292A34}, /* East Asian ideograph */ - {"\x8B", 0, 0x2F2A5A}, /* East Asian ideograph (unrelated variant of EACC 23293D) */ - {"\xA1", 0, 0x2F5F45}, /* East Asian ideograph */ - {"\xAB", 0, 0x69695B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page234 = { - marc8r_31page234_flat, 0 -}; -/* PAGE 233 */ -struct yaz_iconv_trie_flat marc8r_31page233_flat[] = { - {"\x8E", 0, 0x215643}, /* East Asian ideograph */ - {"\x90", 0, 0x215644}, /* East Asian ideograph */ - {"\x94", 0, 0x215645}, /* East Asian ideograph */ - {"\x95", 0, 0x215647}, /* East Asian ideograph */ - {"\x9C", 0, 0x215648}, /* East Asian ideograph */ - {"\x9B", 0, 0x215649}, /* East Asian ideograph */ - {"\x9F", 0, 0x21564A}, /* East Asian ideograph */ - {"\x9E", 0, 0x21564B}, /* East Asian ideograph */ - {"\xA7", 0, 0x21564C}, /* East Asian ideograph */ - {"\xB9", 0, 0x21564F}, /* East Asian ideograph */ - {"\x92", 0, 0x216D74}, /* East Asian ideograph */ - {"\x81", 0, 0x21787C}, /* East Asian ideograph */ - {"\x80", 0, 0x23283F}, /* East Asian ideograph */ - {"\x85", 0, 0x23284C}, /* East Asian ideograph */ - {"\x8D", 0, 0x232859}, /* East Asian ideograph */ - {"\x93", 0, 0x23285A}, /* East Asian ideograph */ - {"\x99", 0, 0x23285E}, /* East Asian ideograph */ - {"\xA1", 0, 0x232866}, /* East Asian ideograph */ - {"\xA2", 0, 0x232869}, /* East Asian ideograph */ - {"\xA3", 0, 0x23286A}, /* East Asian ideograph */ - {"\xA9", 0, 0x232871}, /* East Asian ideograph */ - {"\xAC", 0, 0x232878}, /* East Asian ideograph */ - {"\xB2", 0, 0x23287B}, /* East Asian ideograph */ - {"\xAF", 0, 0x23287C}, /* East Asian ideograph */ - {"\xBB", 0, 0x23287E}, /* East Asian ideograph */ - {"\xBA", 0, 0x232925}, /* East Asian ideograph */ - {"\xB3", 0, 0x232926}, /* East Asian ideograph */ - {"\xBC", 0, 0x232927}, /* East Asian ideograph */ - {"\x91", 0, 0x273F36}, /* East Asian ideograph */ - {"\x8F", 0, 0x275648}, /* East Asian ideograph */ - {"\xBE", 0, 0x27567A}, /* East Asian ideograph */ - {"\xAB", 0, 0x275733}, /* East Asian ideograph */ - {"\xBD", 0, 0x275F4A}, /* East Asian ideograph */ - {"\xAE", 0, 0x292C4C}, /* East Asian ideograph */ - {"\xBF", 0, 0x292C5D}, /* East Asian ideograph */ - {"\x96", 0, 0x333573}, /* East Asian ideograph */ - {"\xB1", 0, 0x33567C}, /* East Asian ideograph */ - {"\x9E", 0, 0x45564B}, /* East Asian ideograph (variant of EACC 21564B) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page233 = { - marc8r_31page233_flat, 0 -}; -/* PAGE 232 */ -struct yaz_iconv_trie_flat marc8r_31page232_flat[] = { - {"\x91", 0, 0x215638}, /* East Asian ideograph */ - {"\x86", 0, 0x21563A}, /* East Asian ideograph */ - {"\x8B", 0, 0x21563B}, /* East Asian ideograph */ - {"\x87", 0, 0x21563C}, /* East Asian ideograph */ - {"\x8A", 0, 0x21563D}, /* East Asian ideograph */ - {"\xAD", 0, 0x21563E}, /* East Asian ideograph */ - {"\x97", 0, 0x21563F}, /* East Asian ideograph */ - {"\x9A", 0, 0x215640}, /* East Asian ideograph */ - {"\xB8", 0, 0x215641}, /* East Asian ideograph */ - {"\xBF", 0, 0x215642}, /* East Asian ideograph */ - {"\xA4", 0, 0x232724}, /* East Asian ideograph */ - {"\xA2", 0, 0x232752}, /* East Asian ideograph */ - {"\x90", 0, 0x232754}, /* East Asian ideograph */ - {"\x80", 0, 0x232760}, /* East Asian ideograph */ - {"\x84", 0, 0x232768}, /* East Asian ideograph */ - {"\x85", 0, 0x232771}, /* East Asian ideograph */ - {"\xAB", 0, 0x232775}, /* East Asian ideograph */ - {"\xA7", 0, 0x232822}, /* East Asian ideograph */ - {"\xA9", 0, 0x232826}, /* East Asian ideograph */ - {"\xB7", 0, 0x232832}, /* East Asian ideograph */ - {"\xB6", 0, 0x232838}, /* East Asian ideograph */ - {"\xBC", 0, 0x23283E}, /* East Asian ideograph */ - {"\xBA", 0, 0x232840}, /* East Asian ideograph */ - {"\x93", 0, 0x2D563C}, /* East Asian ideograph */ - {"\x82", 0, 0x335577}, /* East Asian ideograph */ - {"\xAF", 0, 0x4B4D41}, /* East Asian ideograph */ - {"\x96", 0, 0x51563F}, /* East Asian ideograph */ - {"\xB0", 0, 0x696946}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page232 = { - marc8r_31page232_flat, 0 -}; -/* PAGE 231 */ -struct yaz_iconv_trie_flat marc8r_31page231_flat[] = { - {"\x8D", 0, 0x215629}, /* East Asian ideograph (variant of EACC 4B5629) */ - {"\x8F", 0, 0x21562B}, /* East Asian ideograph */ - {"\x90", 0, 0x21562D}, /* East Asian ideograph */ - {"\x89", 0, 0x21562E}, /* East Asian ideograph */ - {"\xA9", 0, 0x215630}, /* East Asian ideograph */ - {"\x9D", 0, 0x215631}, /* East Asian ideograph */ - {"\xAA", 0, 0x215632}, /* East Asian ideograph */ - {"\xA4", 0, 0x215633}, /* East Asian ideograph */ - {"\x95", 0, 0x215634}, /* East Asian ideograph */ - {"\xA5", 0, 0x215635}, /* East Asian ideograph */ - {"\xBB", 0, 0x215636}, /* East Asian ideograph */ - {"\xB9", 0, 0x215637}, /* East Asian ideograph */ - {"\xBA", 0, 0x215639}, /* East Asian ideograph */ - {"\x81", 0, 0x23265D}, /* East Asian ideograph */ - {"\x8E", 0, 0x232668}, /* East Asian ideograph */ - {"\x82", 0, 0x23266A}, /* East Asian ideograph */ - {"\x84", 0, 0x232670}, /* East Asian ideograph */ - {"\xB7", 0, 0x232728}, /* East Asian ideograph */ - {"\xA6", 0, 0x23272C}, /* East Asian ideograph */ - {"\x94", 0, 0x23272E}, /* East Asian ideograph */ - {"\xAD", 0, 0x232731}, /* East Asian ideograph */ - {"\x9A", 0, 0x232739}, /* East Asian ideograph */ - {"\x9F", 0, 0x232743}, /* East Asian ideograph */ - {"\x98", 0, 0x232745}, /* East Asian ideograph */ - {"\x9C", 0, 0x23274C}, /* East Asian ideograph */ - {"\xB5", 0, 0x23274E}, /* East Asian ideograph */ - {"\xBC", 0, 0x232757}, /* East Asian ideograph */ - {"\xBF", 0, 0x23275B}, /* East Asian ideograph */ - {"\xBE", 0, 0x23275E}, /* East Asian ideograph */ - {"\x93", 0, 0x275640}, /* East Asian ideograph */ - {"\x8D", 0, 0x4B5629}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page231 = { - marc8r_31page231_flat, 0 -}; -/* PAGE 230 */ -struct yaz_iconv_trie_flat marc8r_31page230_flat[] = { - {"\x84", 0, 0x21557E}, /* East Asian ideograph */ - {"\xAA", 0, 0x215621}, /* East Asian ideograph */ - {"\x9B", 0, 0x215623}, /* East Asian ideograph */ - {"\x91", 0, 0x215624}, /* East Asian ideograph */ - {"\x94", 0, 0x215626}, /* East Asian ideograph */ - {"\x9C", 0, 0x215627}, /* East Asian ideograph */ - {"\x87", 0, 0x215628}, /* East Asian ideograph */ - {"\xA9", 0, 0x21562A}, /* East Asian ideograph */ - {"\xAF", 0, 0x21562C}, /* East Asian ideograph */ - {"\xB0", 0, 0x21562F}, /* East Asian ideograph */ - {"\x8C", 0, 0x232577}, /* East Asian ideograph */ - {"\x80", 0, 0x232625}, /* East Asian ideograph */ - {"\x8F", 0, 0x232628}, /* East Asian ideograph */ - {"\x98", 0, 0x232635}, /* East Asian ideograph */ - {"\xA4", 0, 0x23263D}, /* East Asian ideograph */ - {"\x97", 0, 0x232644}, /* East Asian ideograph */ - {"\xA8", 0, 0x232649}, /* East Asian ideograph */ - {"\x86", 0, 0x23264E}, /* East Asian ideograph */ - {"\x99", 0, 0x232650}, /* East Asian ideograph */ - {"\x8A", 0, 0x232651}, /* East Asian ideograph */ - {"\xA2", 0, 0x232652}, /* East Asian ideograph */ - {"\x90", 0, 0x232654}, /* East Asian ideograph */ - {"\x85", 0, 0x232656}, /* East Asian ideograph */ - {"\x88", 0, 0x232657}, /* East Asian ideograph */ - {"\xB8", 0, 0x23265A}, /* East Asian ideograph */ - {"\xBA", 0, 0x232661}, /* East Asian ideograph */ - {"\xB7", 0, 0x23266B}, /* East Asian ideograph */ - {"\xB9", 0, 0x23266C}, /* East Asian ideograph */ - {"\xB3", 0, 0x23266E}, /* East Asian ideograph */ - {"\xBD", 0, 0x23266F}, /* East Asian ideograph */ - {"\xBF", 0, 0x232672}, /* East Asian ideograph */ - {"\xBE", 0, 0x232675}, /* East Asian ideograph */ - {"\xB6", 0, 0x23267E}, /* East Asian ideograph */ - {"\xAE", 0, 0x275632}, /* East Asian ideograph */ - {"\xAC", 0, 0x335635}, /* East Asian ideograph */ - {"\xA6", 0, 0x395477}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page230 = { - marc8r_31page230_flat, 0 -}; -/* PAGE 229 */ -struct yaz_iconv_trie_flat marc8r_31page229_flat[] = { - {"\xA9", 0, 0x215576}, /* East Asian ideograph */ - {"\x8A", 0, 0x215577}, /* East Asian ideograph */ - {"\x99", 0, 0x215578}, /* East Asian ideograph */ - {"\x88", 0, 0x215579}, /* East Asian ideograph */ - {"\xA8", 0, 0x21557A}, /* East Asian ideograph */ - {"\x83", 0, 0x21557B}, /* East Asian ideograph */ - {"\xAA", 0, 0x21557C}, /* East Asian ideograph */ - {"\x89", 0, 0x21557D}, /* East Asian ideograph */ - {"\xAD", 0, 0x215622}, /* East Asian ideograph */ - {"\xBE", 0, 0x215625}, /* East Asian ideograph */ - {"\x96", 0, 0x232536}, /* East Asian ideograph */ - {"\x81", 0, 0x232546}, /* East Asian ideograph */ - {"\x98", 0, 0x23254B}, /* East Asian ideograph */ - {"\x93", 0, 0x23254D}, /* East Asian ideograph */ - {"\xA1", 0, 0x23254E}, /* East Asian ideograph */ - {"\x80", 0, 0x23254F}, /* East Asian ideograph */ - {"\x86", 0, 0x23255A}, /* East Asian ideograph */ - {"\xA4", 0, 0x23255C}, /* East Asian ideograph */ - {"\x9E", 0, 0x23255D}, /* East Asian ideograph */ - {"\xB3", 0, 0x23255E}, /* East Asian ideograph */ - {"\x91", 0, 0x23255F}, /* East Asian ideograph */ - {"\xA2", 0, 0x232564}, /* East Asian ideograph */ - {"\xA3", 0, 0x23256B}, /* East Asian ideograph */ - {"\x82", 0, 0x23256D}, /* East Asian ideograph */ - {"\x8E", 0, 0x232571}, /* East Asian ideograph */ - {"\x95", 0, 0x232574}, /* East Asian ideograph */ - {"\x9D", 0, 0x232576}, /* East Asian ideograph */ - {"\xB9", 0, 0x23262D}, /* East Asian ideograph */ - {"\xBF", 0, 0x232632}, /* East Asian ideograph */ - {"\xB7", 0, 0x232633}, /* East Asian ideograph */ - {"\xB8", 0, 0x232634}, /* East Asian ideograph */ - {"\xBB", 0, 0x232636}, /* East Asian ideograph */ - {"\xBA", 0, 0x232642}, /* East Asian ideograph */ - {"\x97", 0, 0x232645}, /* East Asian ideograph */ - {"\xB4", 0, 0x27563D}, /* East Asian ideograph */ - {"\xB2", 0, 0x292768}, /* East Asian ideograph */ - {"\x9A", 0, 0x2D5554}, /* East Asian ideograph */ - {"\x8B", 0, 0x395577}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page229 = { - marc8r_31page229_flat, 0 -}; -/* PAGE 228 */ -struct yaz_iconv_trie_flat marc8r_31page228_flat[] = { - {"\xBD", 0, 0x215568}, /* East Asian ideograph */ - {"\x97", 0, 0x21556A}, /* East Asian ideograph */ - {"\x9A", 0, 0x21556B}, /* East Asian ideograph */ - {"\xAC", 0, 0x21556D}, /* East Asian ideograph */ - {"\xAD", 0, 0x21556E}, /* East Asian ideograph */ - {"\x93", 0, 0x21556F}, /* East Asian ideograph */ - {"\xA3", 0, 0x215571}, /* East Asian ideograph */ - {"\xA1", 0, 0x215572}, /* East Asian ideograph */ - {"\x94", 0, 0x215573}, /* East Asian ideograph */ - {"\xA5", 0, 0x215575}, /* East Asian ideograph */ - {"\x86", 0, 0x232446}, /* East Asian ideograph */ - {"\x8B", 0, 0x232447}, /* East Asian ideograph */ - {"\x80", 0, 0x23244D}, /* East Asian ideograph */ - {"\x9F", 0, 0x232459}, /* East Asian ideograph */ - {"\xBB", 0, 0x23245C}, /* East Asian ideograph */ - {"\x8C", 0, 0x23246A}, /* East Asian ideograph */ - {"\xAF", 0, 0x232472}, /* East Asian ideograph */ - {"\x95", 0, 0x232475}, /* East Asian ideograph */ - {"\x9E", 0, 0x232524}, /* East Asian ideograph */ - {"\x98", 0, 0x23252A}, /* East Asian ideograph */ - {"\xA6", 0, 0x23252D}, /* East Asian ideograph */ - {"\x87", 0, 0x23252E}, /* East Asian ideograph (variant of EACC 2F252E) */ - {"\xB7", 0, 0x275626}, /* East Asian ideograph */ - {"\xBC", 0, 0x275637}, /* East Asian ideograph */ - {"\xBA", 0, 0x275639}, /* East Asian ideograph */ - {"\xB9", 0, 0x29282A}, /* East Asian ideograph */ - {"\x91", 0, 0x292D51}, /* East Asian ideograph */ - {"\x87", 0, 0x2F252E}, /* East Asian ideograph */ - {"\xB4", 0, 0x33625F}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B562B}, /* East Asian ideograph */ - {"\xB8", 0, 0x4C4146}, /* East Asian ideograph */ - {"\xAB", 0, 0x51496B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page228 = { - marc8r_31page228_flat, 0 -}; -/* PAGE 227 */ -struct yaz_iconv_trie_flat marc8r_31page227_flat[] = { - {"\x86", 0, 0x21555D}, /* East Asian ideograph */ - {"\x84", 0, 0x21555E}, /* East Asian ideograph */ - {"\x89", 0, 0x21555F}, /* East Asian ideograph */ - {"\x8B", 0, 0x215561}, /* East Asian ideograph */ - {"\x80", 0, 0x215563}, /* East Asian ideograph */ - {"\x93", 0, 0x215565}, /* East Asian ideograph */ - {"\xBF", 0, 0x215569}, /* East Asian ideograph */ - {"\xAE", 0, 0x21556C}, /* East Asian ideograph */ - {"\xAC", 0, 0x215574}, /* East Asian ideograph */ - {"\x81", 0, 0x23235E}, /* East Asian ideograph */ - {"\x8D", 0, 0x232368}, /* East Asian ideograph */ - {"\x90", 0, 0x232372}, /* East Asian ideograph */ - {"\x87", 0, 0x232379}, /* East Asian ideograph */ - {"\x82", 0, 0x23237C}, /* East Asian ideograph */ - {"\x96", 0, 0x232433}, /* East Asian ideograph */ - {"\x9A", 0, 0x232435}, /* East Asian ideograph */ - {"\x8F", 0, 0x23243F}, /* East Asian ideograph */ - {"\x8A", 0, 0x232441}, /* East Asian ideograph */ - {"\xAA", 0, 0x23245F}, /* East Asian ideograph */ - {"\xB4", 0, 0x232466}, /* East Asian ideograph */ - {"\xB7", 0, 0x232477}, /* East Asian ideograph */ - {"\xBC", 0, 0x23247A}, /* East Asian ideograph */ - {"\xAB", 0, 0x23247C}, /* East Asian ideograph */ - {"\xBD", 0, 0x23247D}, /* East Asian ideograph */ - {"\xA7", 0, 0x23252F}, /* East Asian ideograph */ - {"\xB0", 0, 0x232534}, /* East Asian ideograph */ - {"\xAF", 0, 0x232535}, /* East Asian ideograph */ - {"\x9D", 0, 0x275629}, /* East Asian ideograph */ - {"\xA6", 0, 0x276148}, /* East Asian ideograph */ - {"\xA3", 0, 0x292633}, /* East Asian ideograph */ - {"\x9F", 0, 0x292651}, /* East Asian ideograph */ - {"\xA0", 0, 0x292840}, /* East Asian ideograph */ - {"\xA5", 0, 0x294629}, /* East Asian ideograph */ - {"\x91", 0, 0x2D5036}, /* East Asian ideograph */ - {"\xA1", 0, 0x3F347D}, /* East Asian ideograph */ - {"\x99", 0, 0x696868}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page227 = { - marc8r_31page227_flat, 0 -}; -/* PAGE 226 */ -struct yaz_iconv_trie_flat marc8r_31page226_flat[] = { - {"\xB5", 0, 0x21554C}, /* East Asian ideograph */ - {"\xA6", 0, 0x21554D}, /* East Asian ideograph */ - {"\x97", 0, 0x21554E}, /* East Asian ideograph */ - {"\x89", 0, 0x21554F}, /* East Asian ideograph */ - {"\xAC", 0, 0x215550}, /* East Asian ideograph */ - {"\xAB", 0, 0x215551}, /* East Asian ideograph */ - {"\x9B", 0, 0x215552}, /* East Asian ideograph */ - {"\xB7", 0, 0x215553}, /* East Asian ideograph */ - {"\xA1", 0, 0x215556}, /* East Asian ideograph */ - {"\xA3", 0, 0x215557}, /* East Asian ideograph */ - {"\xA9", 0, 0x215558}, /* East Asian ideograph */ - {"\x93", 0, 0x232248}, /* East Asian ideograph */ - {"\xB6", 0, 0x23224D}, /* East Asian ideograph */ - {"\xB9", 0, 0x23224E}, /* East Asian ideograph */ - {"\x91", 0, 0x23225C}, /* East Asian ideograph */ - {"\xBD", 0, 0x23225F}, /* East Asian ideograph */ - {"\x9A", 0, 0x232262}, /* East Asian ideograph */ - {"\x99", 0, 0x232266}, /* East Asian ideograph */ - {"\xB3", 0, 0x232269}, /* East Asian ideograph */ - {"\xAD", 0, 0x232271}, /* East Asian ideograph */ - {"\xBA", 0, 0x232278}, /* East Asian ideograph */ - {"\xB8", 0, 0x23227C}, /* East Asian ideograph */ - {"\x9C", 0, 0x232329}, /* East Asian ideograph */ - {"\xB1", 0, 0x232332}, /* East Asian ideograph */ - {"\x9F", 0, 0x232335}, /* East Asian ideograph */ - {"\xA0", 0, 0x232336}, /* East Asian ideograph */ - {"\xAE", 0, 0x232337}, /* East Asian ideograph */ - {"\x86", 0, 0x23233A}, /* East Asian ideograph */ - {"\x92", 0, 0x23233C}, /* East Asian ideograph */ - {"\x8A", 0, 0x23233F}, /* East Asian ideograph */ - {"\x8E", 0, 0x232345}, /* East Asian ideograph */ - {"\xAF", 0, 0x2D5635}, /* East Asian ideograph */ - {"\xA2", 0, 0x335561}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page226 = { - marc8r_31page226_flat, 0 -}; -/* PAGE 225 */ -struct yaz_iconv_trie_flat marc8r_31page225_flat[] = { - {"\x82", 0, 0x21554A}, /* East Asian ideograph */ - {"\xB2", 0, 0x21555A}, /* East Asian ideograph */ - {"\x9E", 0, 0x21555B}, /* East Asian ideograph */ - {"\xBF", 0, 0x21555C}, /* East Asian ideograph */ - {"\x9C", 0, 0x215560}, /* East Asian ideograph */ - {"\xB8", 0, 0x215562}, /* East Asian ideograph */ - {"\x99", 0, 0x215564}, /* East Asian ideograph */ - {"\x90", 0, 0x215566}, /* East Asian ideograph */ - {"\xBC", 0, 0x215567}, /* East Asian ideograph */ - {"\x8E", 0, 0x23224A}, /* East Asian ideograph */ - {"\x84", 0, 0x23227B}, /* East Asian ideograph */ - {"\x97", 0, 0x232349}, /* East Asian ideograph */ - {"\xA1", 0, 0x232350}, /* East Asian ideograph */ - {"\x9F", 0, 0x232353}, /* East Asian ideograph */ - {"\xBA", 0, 0x232356}, /* East Asian ideograph */ - {"\xB9", 0, 0x232358}, /* East Asian ideograph */ - {"\xB4", 0, 0x23235C}, /* East Asian ideograph */ - {"\xBB", 0, 0x23235F}, /* East Asian ideograph */ - {"\xB1", 0, 0x232370}, /* East Asian ideograph */ - {"\x9D", 0, 0x232371}, /* East Asian ideograph */ - {"\x94", 0, 0x232375}, /* East Asian ideograph */ - {"\xBD", 0, 0x23237A}, /* East Asian ideograph */ - {"\x95", 0, 0x232421}, /* East Asian ideograph */ - {"\xAF", 0, 0x232427}, /* East Asian ideograph */ - {"\xAD", 0, 0x232429}, /* East Asian ideograph */ - {"\xA8", 0, 0x232432}, /* East Asian ideograph */ - {"\x93", 0, 0x23243A}, /* East Asian ideograph */ - {"\x8D", 0, 0x23256C}, /* East Asian ideograph */ - {"\x8B", 0, 0x275571}, /* East Asian ideograph */ - {"\x8C", 0, 0x292524}, /* East Asian ideograph */ - {"\x87", 0, 0x29255A}, /* East Asian ideograph */ - {"\x89", 0, 0x292564}, /* East Asian ideograph */ - {"\x88", 0, 0x705D5C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page225 = { - marc8r_31page225_flat, 0 -}; -/* PAGE 224 */ -struct yaz_iconv_trie_flat marc8r_31page224_flat[] = { - {"\xA0", 0, 0x215535}, /* East Asian ideograph */ - {"\xA9", 0, 0x215536}, /* East Asian ideograph */ - {"\x85", 0, 0x215539}, /* East Asian ideograph */ - {"\x81", 0, 0x21553A}, /* East Asian ideograph */ - {"\xAF", 0, 0x21553C}, /* East Asian ideograph */ - {"\xB1", 0, 0x21553E}, /* East Asian ideograph */ - {"\x8C", 0, 0x215543}, /* East Asian ideograph */ - {"\x9C", 0, 0x215544}, /* East Asian ideograph */ - {"\x8A", 0, 0x215545}, /* East Asian ideograph */ - {"\xB2", 0, 0x215546}, /* East Asian ideograph */ - {"\x8F", 0, 0x227E41}, /* East Asian ideograph */ - {"\xB9", 0, 0x227E43}, /* East Asian ideograph */ - {"\xAA", 0, 0x227E52}, /* East Asian ideograph */ - {"\xBC", 0, 0x227E56}, /* East Asian ideograph */ - {"\xB6", 0, 0x227E57}, /* East Asian ideograph */ - {"\xA1", 0, 0x227E5A}, /* East Asian ideograph */ - {"\x86", 0, 0x227E60}, /* East Asian ideograph */ - {"\xAB", 0, 0x227E63}, /* East Asian ideograph */ - {"\xA2", 0, 0x227E6B}, /* East Asian ideograph */ - {"\x98", 0, 0x227E71}, /* East Asian ideograph */ - {"\xA5", 0, 0x227E72}, /* East Asian ideograph */ - {"\x8E", 0, 0x227E79}, /* East Asian ideograph */ - {"\x93", 0, 0x227E7B}, /* East Asian ideograph */ - {"\x96", 0, 0x227E7D}, /* East Asian ideograph */ - {"\xBD", 0, 0x232223}, /* East Asian ideograph */ - {"\x89", 0, 0x232229}, /* East Asian ideograph */ - {"\x9F", 0, 0x23222A}, /* East Asian ideograph */ - {"\xB3", 0, 0x23223C}, /* East Asian ideograph */ - {"\x91", 0, 0x232243}, /* East Asian ideograph */ - {"\xB7", 0, 0x2D3C49}, /* East Asian ideograph */ - {"\xB4", 0, 0x2D3C7C}, /* East Asian ideograph */ - {"\x80", 0, 0x2D546F}, /* East Asian ideograph */ - {"\x94", 0, 0x2D5573}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D625F}, /* East Asian ideograph */ - {"\xB0", 0, 0x2E7D24}, /* East Asian ideograph */ - {"\x87", 0, 0x347D24}, /* East Asian ideograph */ - {"\x9D", 0, 0x395568}, /* East Asian ideograph */ - {"\xB8", 0, 0x4B496B}, /* East Asian ideograph */ - {"\x81", 0, 0x4B553A}, /* East Asian ideograph (variant of EACC 21553A) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page224 = { - marc8r_31page224_flat, 0 -}; -/* PAGE 223 */ -struct yaz_iconv_trie_flat marc8r_31page223_flat[] = { - {"\x8E", 0, 0x215524}, /* East Asian ideograph */ - {"\x98", 0, 0x215525}, /* East Asian ideograph */ - {"\x9E", 0, 0x215526}, /* East Asian ideograph */ - {"\xA2", 0, 0x215528}, /* East Asian ideograph */ - {"\x96", 0, 0x215529}, /* East Asian ideograph */ - {"\xA7", 0, 0x21552A}, /* East Asian ideograph */ - {"\xAB", 0, 0x21552B}, /* East Asian ideograph */ - {"\x92", 0, 0x21552C}, /* East Asian ideograph (variant of EACC 4B552C) */ - {"\x8A", 0, 0x21552D}, /* East Asian ideograph */ - {"\x93", 0, 0x21552E}, /* East Asian ideograph */ - {"\xA0", 0, 0x21552F}, /* East Asian ideograph */ - {"\x89", 0, 0x215530}, /* East Asian ideograph */ - {"\xBD", 0, 0x21553F}, /* East Asian ideograph */ - {"\xA8", 0, 0x227D62}, /* East Asian ideograph */ - {"\xAD", 0, 0x227D67}, /* East Asian ideograph */ - {"\xB0", 0, 0x227D72}, /* East Asian ideograph */ - {"\x8F", 0, 0x227D7A}, /* East Asian ideograph */ - {"\x95", 0, 0x227D7C}, /* East Asian ideograph */ - {"\x99", 0, 0x227E22}, /* East Asian ideograph */ - {"\xA6", 0, 0x227E23}, /* East Asian ideograph */ - {"\x87", 0, 0x227E25}, /* East Asian ideograph */ - {"\xB9", 0, 0x227E26}, /* East Asian ideograph */ - {"\xA9", 0, 0x227E2B}, /* East Asian ideograph */ - {"\x9B", 0, 0x227E2F}, /* East Asian ideograph */ - {"\xAA", 0, 0x227E33}, /* East Asian ideograph */ - {"\x9C", 0, 0x227E37}, /* East Asian ideograph */ - {"\x9F", 0, 0x227E38}, /* East Asian ideograph */ - {"\xBF", 0, 0x227E6A}, /* East Asian ideograph */ - {"\x9A", 0, 0x232236}, /* East Asian ideograph */ - {"\xB7", 0, 0x274B29}, /* East Asian ideograph */ - {"\xB7", 0, 0x274F4B}, /* East Asian ideograph (duplicate simplified) */ - {"\xB1", 0, 0x275541}, /* East Asian ideograph */ - {"\xB4", 0, 0x275555}, /* East Asian ideograph */ - {"\xB2", 0, 0x27556C}, /* East Asian ideograph */ - {"\xBA", 0, 0x276247}, /* East Asian ideograph */ - {"\xB3", 0, 0x292375}, /* East Asian ideograph */ - {"\xBC", 0, 0x29243A}, /* East Asian ideograph */ - {"\xB8", 0, 0x292574}, /* East Asian ideograph */ - {"\xB6", 0, 0x292658}, /* East Asian ideograph */ - {"\x86", 0, 0x2D555A}, /* East Asian ideograph */ - {"\x85", 0, 0x2D555B}, /* East Asian ideograph */ - {"\x92", 0, 0x4B552C}, /* East Asian ideograph */ - {"\xBD", 0, 0x4B553F}, /* East Asian ideograph (variant of EACC 21553F) */ - {"\xB5", 0, 0x4D222A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page223 = { - marc8r_31page223_flat, 0 -}; -/* PAGE 222 */ -struct yaz_iconv_trie_flat marc8r_31page222_flat[] = { - {"\x92", 0, 0x215473}, /* East Asian ideograph */ - {"\x8A", 0, 0x215474}, /* East Asian ideograph */ - {"\x94", 0, 0x215476}, /* East Asian ideograph */ - {"\x90", 0, 0x215477}, /* East Asian ideograph */ - {"\x89", 0, 0x215478}, /* East Asian ideograph */ - {"\x80", 0, 0x21547D}, /* East Asian ideograph */ - {"\x8F", 0, 0x215522}, /* East Asian ideograph */ - {"\xB8", 0, 0x215527}, /* East Asian ideograph */ - {"\xB7", 0, 0x215531}, /* East Asian ideograph */ - {"\xBC", 0, 0x215532}, /* East Asian ideograph */ - {"\xBB", 0, 0x215533}, /* East Asian ideograph */ - {"\x84", 0, 0x227D2B}, /* East Asian ideograph */ - {"\x91", 0, 0x227D2E}, /* East Asian ideograph */ - {"\x96", 0, 0x227D3B}, /* East Asian ideograph */ - {"\x8D", 0, 0x227D4A}, /* East Asian ideograph */ - {"\x83", 0, 0x227D4D}, /* East Asian ideograph (variant of EACC 4C7D4D) */ - {"\x88", 0, 0x227D53}, /* East Asian ideograph */ - {"\x87", 0, 0x227D5F}, /* East Asian ideograph */ - {"\xB3", 0, 0x227D6D}, /* East Asian ideograph */ - {"\xB5", 0, 0x227D7E}, /* East Asian ideograph */ - {"\xBF", 0, 0x227E21}, /* East Asian ideograph */ - {"\xA3", 0, 0x274537}, /* East Asian ideograph */ - {"\xA6", 0, 0x274A5E}, /* East Asian ideograph */ - {"\x85", 0, 0x275023}, /* East Asian ideograph */ - {"\x9A", 0, 0x275528}, /* East Asian ideograph */ - {"\xA4", 0, 0x275553}, /* East Asian ideograph */ - {"\xAA", 0, 0x275563}, /* East Asian ideograph */ - {"\xAB", 0, 0x27556E}, /* East Asian ideograph */ - {"\xA1", 0, 0x275576}, /* East Asian ideograph */ - {"\xAF", 0, 0x275635}, /* East Asian ideograph */ - {"\xA5", 0, 0x284B43}, /* East Asian ideograph */ - {"\xA7", 0, 0x285323}, /* East Asian ideograph */ - {"\xAD", 0, 0x29233C}, /* East Asian ideograph */ - {"\xAE", 0, 0x29233D}, /* East Asian ideograph */ - {"\x9C", 0, 0x29247D}, /* East Asian ideograph */ - {"\xA8", 0, 0x292546}, /* East Asian ideograph */ - {"\x9B", 0, 0x29254B}, /* East Asian ideograph */ - {"\xAC", 0, 0x292567}, /* East Asian ideograph */ - {"\x9E", 0, 0x292571}, /* East Asian ideograph */ - {"\x9F", 0, 0x292657}, /* East Asian ideograph */ - {"\xA0", 0, 0x292661}, /* East Asian ideograph */ - {"\xA9", 0, 0x292668}, /* East Asian ideograph */ - {"\x98", 0, 0x2D552D}, /* East Asian ideograph */ - {"\xBD", 0, 0x2D5547}, /* East Asian ideograph */ - {"\x83", 0, 0x4C7D4D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page222 = { - marc8r_31page222_flat, 0 -}; -/* PAGE 221 */ -struct yaz_iconv_trie_flat marc8r_31page221_flat[] = { - {"\x85", 0, 0x215461}, /* East Asian ideograph */ - {"\x89", 0, 0x215462}, /* East Asian ideograph */ - {"\x84", 0, 0x215466}, /* East Asian ideograph */ - {"\x82", 0, 0x215468}, /* East Asian ideograph */ - {"\x81", 0, 0x21546C}, /* East Asian ideograph */ - {"\xAB", 0, 0x215472}, /* East Asian ideograph */ - {"\xB8", 0, 0x215475}, /* East Asian ideograph */ - {"\xB5", 0, 0x215479}, /* East Asian ideograph */ - {"\xB4", 0, 0x21547A}, /* East Asian ideograph */ - {"\xB6", 0, 0x21547B}, /* East Asian ideograph */ - {"\xB1", 0, 0x21547C}, /* East Asian ideograph */ - {"\x97", 0, 0x21547E}, /* East Asian ideograph */ - {"\xB9", 0, 0x215523}, /* East Asian ideograph */ - {"\x80", 0, 0x227C5C}, /* East Asian ideograph */ - {"\xBA", 0, 0x227C63}, /* East Asian ideograph */ - {"\x87", 0, 0x227C67}, /* East Asian ideograph */ - {"\x94", 0, 0x227C6E}, /* East Asian ideograph */ - {"\x90", 0, 0x227C7B}, /* East Asian ideograph */ - {"\x8C", 0, 0x227D21}, /* East Asian ideograph */ - {"\xB3", 0, 0x227D26}, /* East Asian ideograph */ - {"\xA8", 0, 0x227D29}, /* East Asian ideograph */ - {"\x9B", 0, 0x227D35}, /* East Asian ideograph */ - {"\xA2", 0, 0x227D3F}, /* East Asian ideograph */ - {"\xAC", 0, 0x227D40}, /* East Asian ideograph */ - {"\xBC", 0, 0x227D48}, /* East Asian ideograph */ - {"\xAF", 0, 0x227D52}, /* East Asian ideograph */ - {"\x92", 0, 0x227D54}, /* East Asian ideograph */ - {"\x96", 0, 0x227D56}, /* East Asian ideograph */ - {"\x9A", 0, 0x227D58}, /* East Asian ideograph */ - {"\x9D", 0, 0x227D76}, /* East Asian ideograph */ - {"\xAD", 0, 0x27447C}, /* East Asian ideograph */ - {"\x83", 0, 0x275030}, /* East Asian ideograph */ - {"\xA7", 0, 0x275177}, /* East Asian ideograph */ - {"\x8E", 0, 0x275529}, /* East Asian ideograph */ - {"\x91", 0, 0x29252D}, /* East Asian ideograph */ - {"\x8F", 0, 0x292752}, /* East Asian ideograph */ - {"\x88", 0, 0x2D4450}, /* East Asian ideograph */ - {"\x86", 0, 0x2D5461}, /* East Asian ideograph */ - {"\x98", 0, 0x2D5476}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D5529}, /* East Asian ideograph (variant of EACC 275529) */ - {"\x9C", 0, 0x2E7C2E}, /* East Asian ideograph */ - {"\xB2", 0, 0x4B5521}, /* East Asian ideograph */ - {"\x95", 0, 0x4C5175}, /* East Asian ideograph */ - {"\xA3", 0, 0x4C7D6A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page221 = { - marc8r_31page221_flat, 0 -}; -/* PAGE 220 */ -struct yaz_iconv_trie_flat marc8r_31page220_flat[] = { - {"\xA7", 0, 0x215460}, /* East Asian ideograph */ - {"\xA3", 0, 0x215463}, /* East Asian ideograph */ - {"\x9B", 0, 0x215464}, /* East Asian ideograph */ - {"\xA6", 0, 0x215465}, /* East Asian ideograph */ - {"\xA5", 0, 0x215467}, /* East Asian ideograph */ - {"\x9C", 0, 0x215469}, /* East Asian ideograph */ - {"\x97", 0, 0x21546A}, /* East Asian ideograph */ - {"\xB1", 0, 0x21546B}, /* East Asian ideograph */ - {"\x93", 0, 0x21546D}, /* East Asian ideograph */ - {"\x94", 0, 0x21546E}, /* East Asian ideograph */ - {"\x91", 0, 0x21546F}, /* East Asian ideograph */ - {"\x9E", 0, 0x215470}, /* East Asian ideograph */ - {"\x9F", 0, 0x215471}, /* East Asian ideograph */ - {"\x99", 0, 0x227C55}, /* East Asian ideograph */ - {"\xBE", 0, 0x227C57}, /* East Asian ideograph */ - {"\xA0", 0, 0x227C5A}, /* East Asian ideograph */ - {"\x90", 0, 0x227C5B}, /* East Asian ideograph */ - {"\xAA", 0, 0x227C5F}, /* East Asian ideograph */ - {"\xB7", 0, 0x227C60}, /* East Asian ideograph */ - {"\xAF", 0, 0x227C62}, /* East Asian ideograph */ - {"\xA4", 0, 0x227C64}, /* East Asian ideograph */ - {"\x95", 0, 0x227C65}, /* East Asian ideograph */ - {"\xBA", 0, 0x227C68}, /* East Asian ideograph */ - {"\xB4", 0, 0x227C69}, /* East Asian ideograph */ - {"\xA2", 0, 0x227C6A}, /* East Asian ideograph */ - {"\x92", 0, 0x227C6D}, /* East Asian ideograph */ - {"\xAB", 0, 0x227C71}, /* East Asian ideograph */ - {"\x98", 0, 0x227C72}, /* East Asian ideograph */ - {"\xA1", 0, 0x227C73}, /* East Asian ideograph */ - {"\xB6", 0, 0x227C75}, /* East Asian ideograph */ - {"\xB3", 0, 0x227C7C}, /* East Asian ideograph */ - {"\xBB", 0, 0x227D22}, /* East Asian ideograph */ - {"\xBD", 0, 0x227D24}, /* East Asian ideograph */ - {"\x8B", 0, 0x27552A}, /* East Asian ideograph */ - {"\x87", 0, 0x27554D}, /* East Asian ideograph */ - {"\x8E", 0, 0x275564}, /* East Asian ideograph */ - {"\x8D", 0, 0x275567}, /* East Asian ideograph */ - {"\xB9", 0, 0x27563B}, /* East Asian ideograph */ - {"\x8F", 0, 0x27563C}, /* East Asian ideograph */ - {"\x8C", 0, 0x287E61}, /* East Asian ideograph */ - {"\x81", 0, 0x292535}, /* East Asian ideograph */ - {"\x88", 0, 0x292765}, /* East Asian ideograph */ - {"\xBA", 0, 0x2D552E}, /* East Asian ideograph (variant of EACC 227C68) */ - {"\x85", 0, 0x4B3354}, /* East Asian ideograph */ - {"\x93", 0, 0x4B546D}, /* East Asian ideograph (variant of EACC 21546D) */ - {"\x8A", 0, 0x705C43}, /* East Asian ideograph */ - {"\x84", 0, 0x705C50}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page220 = { - marc8r_31page220_flat, 0 -}; -/* PAGE 219 */ -struct yaz_iconv_trie_flat marc8r_31page219_flat[] = { - {"\x92", 0, 0x215451}, /* East Asian ideograph */ - {"\x8B", 0, 0x215452}, /* East Asian ideograph */ - {"\x8D", 0, 0x215453}, /* East Asian ideograph */ - {"\xB3", 0, 0x215454}, /* East Asian ideograph */ - {"\x9D", 0, 0x215455}, /* East Asian ideograph */ - {"\x99", 0, 0x215456}, /* East Asian ideograph */ - {"\xBD", 0, 0x215457}, /* East Asian ideograph */ - {"\xAD", 0, 0x215458}, /* East Asian ideograph */ - {"\xAC", 0, 0x215459}, /* East Asian ideograph */ - {"\xA5", 0, 0x21545A}, /* East Asian ideograph */ - {"\x9F", 0, 0x21545B}, /* East Asian ideograph */ - {"\xBB", 0, 0x21545C}, /* East Asian ideograph */ - {"\xB1", 0, 0x21545D}, /* East Asian ideograph */ - {"\xB9", 0, 0x21545E}, /* East Asian ideograph */ - {"\x88", 0, 0x216330}, /* East Asian ideograph */ - {"\x8E", 0, 0x227C24}, /* East Asian ideograph */ - {"\x91", 0, 0x227C25}, /* East Asian ideograph */ - {"\x8F", 0, 0x227C27}, /* East Asian ideograph */ - {"\x84", 0, 0x227C28}, /* East Asian ideograph */ - {"\x83", 0, 0x227C2D}, /* East Asian ideograph */ - {"\x8A", 0, 0x227C2E}, /* East Asian ideograph */ - {"\xAF", 0, 0x227C31}, /* East Asian ideograph */ - {"\xA7", 0, 0x227C34}, /* East Asian ideograph */ - {"\xAB", 0, 0x227C38}, /* East Asian ideograph */ - {"\xB0", 0, 0x227C3A}, /* East Asian ideograph */ - {"\xA4", 0, 0x227C3C}, /* East Asian ideograph */ - {"\x9A", 0, 0x227C3F}, /* East Asian ideograph */ - {"\xA3", 0, 0x227C42}, /* East Asian ideograph */ - {"\xB7", 0, 0x227C44}, /* East Asian ideograph */ - {"\xAE", 0, 0x227C45}, /* East Asian ideograph (variant of EACC 4C7C45) */ - {"\xA9", 0, 0x227C46}, /* East Asian ideograph */ - {"\xBC", 0, 0x227C49}, /* East Asian ideograph */ - {"\xA8", 0, 0x227C4C}, /* East Asian ideograph */ - {"\xB4", 0, 0x227C4E}, /* East Asian ideograph */ - {"\xA1", 0, 0x227C50}, /* East Asian ideograph */ - {"\xAA", 0, 0x227C53}, /* East Asian ideograph */ - {"\x82", 0, 0x275033}, /* East Asian ideograph */ - {"\x98", 0, 0x275568}, /* East Asian ideograph */ - {"\x9C", 0, 0x27557C}, /* East Asian ideograph */ - {"\xA6", 0, 0x27563A}, /* East Asian ideograph */ - {"\x98", 0, 0x292433}, /* East Asian ideograph (duplicate simplified) */ - {"\x97", 0, 0x292577}, /* East Asian ideograph */ - {"\x98", 0, 0x2D3C6D}, /* East Asian ideograph (duplicate simplified) */ - {"\xBE", 0, 0x355E76}, /* East Asian ideograph */ - {"\xB8", 0, 0x4B5631}, /* East Asian ideograph */ - {"\xA6", 0, 0x4B563A}, /* East Asian ideograph (variant of EACC 27563A) */ - {"\xAE", 0, 0x4C7C45}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page219 = { - marc8r_31page219_flat, 0 -}; -/* PAGE 218 */ -struct yaz_iconv_trie_flat marc8r_31page218_flat[] = { - {"\x87", 0, 0x215448}, /* East Asian ideograph */ - {"\x98", 0, 0x215449}, /* East Asian ideograph */ - {"\x99", 0, 0x21544A}, /* East Asian ideograph */ - {"\xA6", 0, 0x21544B}, /* East Asian ideograph */ - {"\xAE", 0, 0x21544C}, /* East Asian ideograph */ - {"\xAF", 0, 0x21544D}, /* East Asian ideograph */ - {"\xB1", 0, 0x21544E}, /* East Asian ideograph */ - {"\xB2", 0, 0x21544F}, /* East Asian ideograph */ - {"\xBE", 0, 0x215450}, /* East Asian ideograph */ - {"\x88", 0, 0x227B42}, /* East Asian ideograph */ - {"\x89", 0, 0x227B43}, /* East Asian ideograph */ - {"\x84", 0, 0x227B45}, /* East Asian ideograph */ - {"\x80", 0, 0x227B47}, /* East Asian ideograph */ - {"\x81", 0, 0x227B48}, /* East Asian ideograph */ - {"\x85", 0, 0x227B4A}, /* East Asian ideograph */ - {"\x8B", 0, 0x227B4B}, /* East Asian ideograph */ - {"\x8F", 0, 0x227B50}, /* East Asian ideograph */ - {"\x8E", 0, 0x227B53}, /* East Asian ideograph */ - {"\x96", 0, 0x227B56}, /* East Asian ideograph */ - {"\x97", 0, 0x227B57}, /* East Asian ideograph */ - {"\x9A", 0, 0x227B5E}, /* East Asian ideograph */ - {"\x9F", 0, 0x227B62}, /* East Asian ideograph */ - {"\xA2", 0, 0x227B67}, /* East Asian ideograph */ - {"\xA8", 0, 0x227B6B}, /* East Asian ideograph */ - {"\xAD", 0, 0x227B6F}, /* East Asian ideograph */ - {"\xB8", 0, 0x227B77}, /* East Asian ideograph */ - {"\xBF", 0, 0x227B7D}, /* East Asian ideograph */ - {"\xB0", 0, 0x27544E}, /* East Asian ideograph */ - {"\xBA", 0, 0x275631}, /* East Asian ideograph */ - {"\xBD", 0, 0x276030}, /* East Asian ideograph */ - {"\xB4", 0, 0x2D342E}, /* East Asian ideograph */ - {"\x8A", 0, 0x2D5447}, /* East Asian ideograph */ - {"\xB7", 0, 0x2D5959}, /* East Asian ideograph */ - {"\xAA", 0, 0x33456D}, /* East Asian ideograph */ - {"\xA4", 0, 0x344177}, /* East Asian ideograph */ - {"\xAB", 0, 0x39456D}, /* East Asian ideograph */ - {"\xA3", 0, 0x3F456D}, /* East Asian ideograph */ - {"\xB6", 0, 0x3F5959}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B5959}, /* East Asian ideograph */ - {"\x9D", 0, 0x69675C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page218 = { - marc8r_31page218_flat, 0 -}; -/* PAGE 217 */ -struct yaz_iconv_trie_dir marc8r_31page217_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21542F} /* East Asian ideograph */, - {0, 0, 0x227A72} /* East Asian ideograph */, - {0, 0, 0x215430} /* East Asian ideograph */, - {0, 0, 0x227A74} /* East Asian ideograph */, - {0, 0, 0x227A75} /* East Asian ideograph */, - {0, 0, 0x215431} /* East Asian ideograph */, - {0, 0, 0x275B53} /* East Asian ideograph */, - {0, 0, 0x215432} /* East Asian ideograph */, - {0, 0, 0x215433} /* East Asian ideograph */, - {0, 0, 0x215434} /* East Asian ideograph */, - {0, 0, 0x215435} /* East Asian ideograph */, - {0, 0, 0x227A77} /* East Asian ideograph */, - {0, 0, 0x215436} /* East Asian ideograph */, - {0, 0, 0x215437} /* East Asian ideograph */, - {0, 0, 0x4B5437} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215438} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215439} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21543A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x2D5D65} /* East Asian ideograph */, - {0, 0, 0x4B5D65} /* East Asian ideograph */, - {0, 0, 0x2D6079} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21543B} /* East Asian ideograph */, - {0, 0, 0x21543C} /* East Asian ideograph */, - {0, 0, 0x227B27} /* East Asian ideograph */, - {0, 0, 0x21543D} /* East Asian ideograph */, - {0, 0, 0x21543E} /* East Asian ideograph */, - {0, 0, 0x227B29} /* East Asian ideograph */, - {0, 0, 0x335446} /* East Asian ideograph */, - {0, 0, 0x21543F} /* East Asian ideograph */, - {0, 0, 0x4C4177} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x215443} /* East Asian ideograph */, - {0, 0, 0x2D5446} /* East Asian ideograph */, - {0, 0, 0x215440} /* East Asian ideograph */, - {0, 0, 0x215441} /* East Asian ideograph */, - {0, 0, 0x215442} /* East Asian ideograph */, - {0, 0, 0x227B2E} /* East Asian ideograph */, - {0, 0, 0x51456D} /* East Asian ideograph */, - {0, 0, 0x227B2F} /* East Asian ideograph */, - {0, 0, 0x27544B} /* East Asian ideograph */, - {0, 0, 0x27544A} /* East Asian ideograph */, - {0, 0, 0x227B3A} /* East Asian ideograph */, - {0, 0, 0x227B35} /* East Asian ideograph */, - {0, 0, 0x227B36} /* East Asian ideograph */, - {0, 0, 0x215445} /* East Asian ideograph */, - {0, 0, 0x215447} /* East Asian ideograph */, - {0, 0, 0x215444} /* East Asian ideograph */, - {0, 0, 0x227B32} /* East Asian ideograph */, - {0, 0, 0x215446} /* East Asian ideograph */, - {0, 0, 0x227B34} /* East Asian ideograph */, - {0, 0, 0x4B456D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x707438} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page217 = { - 0, marc8r_31page217_dir -}; -/* PAGE 216 */ -struct yaz_iconv_trie_flat marc8r_31page216_flat[] = { - {"\x86", 0, 0x215373}, /* East Asian ideograph */ - {"\x83", 0, 0x215375}, /* East Asian ideograph */ - {"\x80", 0, 0x215376}, /* East Asian ideograph */ - {"\x82", 0, 0x215377}, /* East Asian ideograph */ - {"\x89", 0, 0x21537A}, /* East Asian ideograph */ - {"\x8D", 0, 0x21537C}, /* East Asian ideograph */ - {"\x8F", 0, 0x21537D}, /* East Asian ideograph */ - {"\x98", 0, 0x21537E}, /* East Asian ideograph */ - {"\x9A", 0, 0x215421}, /* East Asian ideograph */ - {"\x9F", 0, 0x215422}, /* East Asian ideograph */ - {"\xA3", 0, 0x215423}, /* East Asian ideograph */ - {"\xA5", 0, 0x215424}, /* East Asian ideograph */ - {"\xA8", 0, 0x215425}, /* East Asian ideograph */ - {"\xAA", 0, 0x215426}, /* East Asian ideograph */ - {"\xAC", 0, 0x215427}, /* East Asian ideograph */ - {"\xAD", 0, 0x215428}, /* East Asian ideograph */ - {"\xB3", 0, 0x215429}, /* East Asian ideograph */ - {"\xBA", 0, 0x21542B}, /* East Asian ideograph */ - {"\xBB", 0, 0x21542C}, /* East Asian ideograph */ - {"\xBC", 0, 0x21542D}, /* East Asian ideograph */ - {"\xBE", 0, 0x21542E}, /* East Asian ideograph */ - {"\x81", 0, 0x227A38}, /* East Asian ideograph */ - {"\x8C", 0, 0x227A39}, /* East Asian ideograph */ - {"\x8A", 0, 0x227A3A}, /* East Asian ideograph */ - {"\x84", 0, 0x227A3B}, /* East Asian ideograph */ - {"\x91", 0, 0x227A40}, /* East Asian ideograph */ - {"\x8E", 0, 0x227A41}, /* East Asian ideograph */ - {"\x90", 0, 0x227A43}, /* East Asian ideograph */ - {"\x9B", 0, 0x227A4B}, /* East Asian ideograph */ - {"\x9D", 0, 0x227A4F}, /* East Asian ideograph */ - {"\x9E", 0, 0x227A53}, /* East Asian ideograph */ - {"\xA0", 0, 0x227A56}, /* East Asian ideograph */ - {"\xA2", 0, 0x227A57}, /* East Asian ideograph */ - {"\xA7", 0, 0x227A5B}, /* East Asian ideograph */ - {"\xAF", 0, 0x227A60}, /* East Asian ideograph */ - {"\xB2", 0, 0x227A65}, /* East Asian ideograph */ - {"\xB6", 0, 0x227A68}, /* East Asian ideograph */ - {"\xB4", 0, 0x275163}, /* East Asian ideograph */ - {"\x88", 0, 0x2D537E}, /* East Asian ideograph */ - {"\x99", 0, 0x335347}, /* East Asian ideograph */ - {"\x95", 0, 0x3A7970}, /* East Asian ideograph */ - {"\x93", 0, 0x4B5422}, /* East Asian ideograph */ - {"\xAD", 0, 0x4B5428}, /* East Asian ideograph (variant of EACC 215428) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page216 = { - marc8r_31page216_flat, 0 -}; -/* PAGE 215 */ -struct yaz_iconv_trie_flat marc8r_31page215_flat[] = { - {"\x80", 0, 0x215366}, /* East Asian ideograph */ - {"\x8F", 0, 0x215367}, /* East Asian ideograph */ - {"\x8A", 0, 0x215369}, /* East Asian ideograph */ - {"\x88", 0, 0x21536A}, /* East Asian ideograph */ - {"\x9D", 0, 0x21536B}, /* East Asian ideograph */ - {"\xA0", 0, 0x21536C}, /* East Asian ideograph */ - {"\x9B", 0, 0x21536D}, /* East Asian ideograph */ - {"\x9A", 0, 0x21536E}, /* East Asian ideograph */ - {"\x9C", 0, 0x21536F}, /* East Asian ideograph */ - {"\xB3", 0, 0x215370}, /* East Asian ideograph */ - {"\xA9", 0, 0x215371}, /* East Asian ideograph */ - {"\xA8", 0, 0x215372}, /* East Asian ideograph */ - {"\xBA", 0, 0x215374}, /* East Asian ideograph */ - {"\xBF", 0, 0x215378}, /* East Asian ideograph */ - {"\xBD", 0, 0x215379}, /* East Asian ideograph */ - {"\xBE", 0, 0x21537B}, /* East Asian ideograph */ - {"\x82", 0, 0x22794D}, /* East Asian ideograph */ - {"\x8B", 0, 0x227951}, /* East Asian ideograph */ - {"\x86", 0, 0x227952}, /* East Asian ideograph */ - {"\x83", 0, 0x227959}, /* East Asian ideograph */ - {"\x9F", 0, 0x22796A}, /* East Asian ideograph */ - {"\xA3", 0, 0x22796B}, /* East Asian ideograph */ - {"\x98", 0, 0x227970}, /* East Asian ideograph */ - {"\x95", 0, 0x227975}, /* East Asian ideograph */ - {"\x97", 0, 0x227977}, /* East Asian ideograph */ - {"\xAA", 0, 0x22797C}, /* East Asian ideograph */ - {"\xA6", 0, 0x22797D}, /* East Asian ideograph */ - {"\xB5", 0, 0x227A2C}, /* East Asian ideograph */ - {"\xB0", 0, 0x227A2E}, /* East Asian ideograph */ - {"\xB4", 0, 0x227A2F}, /* East Asian ideograph */ - {"\xB7", 0, 0x227A33}, /* East Asian ideograph */ - {"\xBB", 0, 0x227A37}, /* East Asian ideograph */ - {"\x91", 0, 0x27537D}, /* East Asian ideograph */ - {"\x93", 0, 0x2D535E}, /* East Asian ideograph */ - {"\xB8", 0, 0x4B6159}, /* East Asian ideograph */ - {"\xA4", 0, 0x696733}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page215 = { - marc8r_31page215_flat, 0 -}; -/* PAGE 214 */ -struct yaz_iconv_trie_flat marc8r_31page214_flat[] = { - {"\x95", 0, 0x215353}, /* East Asian ideograph */ - {"\x94", 0, 0x215354}, /* East Asian ideograph */ - {"\x8B", 0, 0x215355}, /* East Asian ideograph */ - {"\x91", 0, 0x215356}, /* East Asian ideograph */ - {"\x90", 0, 0x215357}, /* East Asian ideograph */ - {"\x8E", 0, 0x215358}, /* East Asian ideograph */ - {"\x86", 0, 0x21535A}, /* East Asian ideograph */ - {"\xB1", 0, 0x21535C}, /* East Asian ideograph */ - {"\xB0", 0, 0x21535D}, /* East Asian ideograph */ - {"\xB8", 0, 0x21535E}, /* East Asian ideograph */ - {"\xA5", 0, 0x21535F}, /* East Asian ideograph */ - {"\xAE", 0, 0x215360}, /* East Asian ideograph */ - {"\xB3", 0, 0x215361}, /* East Asian ideograph */ - {"\xAB", 0, 0x215362}, /* East Asian ideograph */ - {"\xB9", 0, 0x215363}, /* East Asian ideograph */ - {"\xBA", 0, 0x215364}, /* East Asian ideograph */ - {"\xA6", 0, 0x215365}, /* East Asian ideograph */ - {"\xBF", 0, 0x215368}, /* East Asian ideograph */ - {"\x9A", 0, 0x22786A}, /* East Asian ideograph */ - {"\x88", 0, 0x22786D}, /* East Asian ideograph */ - {"\x8C", 0, 0x227877}, /* East Asian ideograph */ - {"\x93", 0, 0x22787C}, /* East Asian ideograph */ - {"\x81", 0, 0x22787D}, /* East Asian ideograph */ - {"\x8D", 0, 0x227925}, /* East Asian ideograph */ - {"\xA0", 0, 0x227932}, /* East Asian ideograph */ - {"\xA9", 0, 0x22793B}, /* East Asian ideograph */ - {"\xBC", 0, 0x22793C}, /* East Asian ideograph */ - {"\xA1", 0, 0x227941}, /* East Asian ideograph */ - {"\xB6", 0, 0x227946}, /* East Asian ideograph */ - {"\xB4", 0, 0x227947}, /* East Asian ideograph */ - {"\xA7", 0, 0x227948}, /* East Asian ideograph */ - {"\xAF", 0, 0x22794B}, /* East Asian ideograph */ - {"\xBB", 0, 0x275371}, /* East Asian ideograph */ - {"\x8A", 0, 0x27537E}, /* East Asian ideograph */ - {"\xBE", 0, 0x276144}, /* East Asian ideograph */ - {"\xBD", 0, 0x4C7959}, /* East Asian ideograph */ - {"\x9F", 0, 0x4C796B}, /* East Asian ideograph */ - {"\xAD", 0, 0x4D6047}, /* East Asian ideograph */ - {"\x99", 0, 0x706B6A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page214 = { - marc8r_31page214_flat, 0 -}; -/* PAGE 213 */ -struct yaz_iconv_trie_flat marc8r_31page213_flat[] = { - {"\x82", 0, 0x215343}, /* East Asian ideograph */ - {"\x85", 0, 0x215344}, /* East Asian ideograph */ - {"\x86", 0, 0x215349}, /* East Asian ideograph */ - {"\x8A", 0, 0x21534C}, /* East Asian ideograph */ - {"\x88", 0, 0x21534D}, /* East Asian ideograph */ - {"\xAB", 0, 0x21534E}, /* East Asian ideograph */ - {"\xAF", 0, 0x21534F}, /* East Asian ideograph */ - {"\x96", 0, 0x215350}, /* East Asian ideograph */ - {"\xA9", 0, 0x215352}, /* East Asian ideograph */ - {"\xB9", 0, 0x215359}, /* East Asian ideograph */ - {"\xBE", 0, 0x21535B}, /* East Asian ideograph */ - {"\x83", 0, 0x22783C}, /* East Asian ideograph */ - {"\x9D", 0, 0x227849}, /* East Asian ideograph */ - {"\x98", 0, 0x22784B}, /* East Asian ideograph */ - {"\xB0", 0, 0x227850}, /* East Asian ideograph */ - {"\xA4", 0, 0x227854}, /* East Asian ideograph */ - {"\x9B", 0, 0x227855}, /* East Asian ideograph */ - {"\xAA", 0, 0x227860}, /* East Asian ideograph */ - {"\x9E", 0, 0x227861}, /* East Asian ideograph */ - {"\xA1", 0, 0x227864}, /* East Asian ideograph */ - {"\x97", 0, 0x227866}, /* East Asian ideograph */ - {"\xBA", 0, 0x227869}, /* East Asian ideograph */ - {"\x89", 0, 0x27534D}, /* East Asian ideograph */ - {"\x91", 0, 0x275365}, /* East Asian ideograph */ - {"\x93", 0, 0x275378}, /* East Asian ideograph */ - {"\xB8", 0, 0x27537A}, /* East Asian ideograph */ - {"\x8D", 0, 0x27537B}, /* East Asian ideograph */ - {"\x90", 0, 0x27537C}, /* East Asian ideograph */ - {"\x8F", 0, 0x275422}, /* East Asian ideograph (duplicate simplified) */ - {"\x8F", 0, 0x27615B}, /* East Asian ideograph */ - {"\xB6", 0, 0x287941}, /* East Asian ideograph */ - {"\x94", 0, 0x287A56}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D5340}, /* East Asian ideograph */ - {"\x87", 0, 0x2D5344}, /* East Asian ideograph */ - {"\x9A", 0, 0x2D5361}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D6F7D}, /* East Asian ideograph */ - {"\xB2", 0, 0x4B3B52}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B5365}, /* East Asian ideograph */ - {"\x8E", 0, 0x706B5B}, /* East Asian ideograph */ - {"\x92", 0, 0x706B5F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page213 = { - marc8r_31page213_flat, 0 -}; -/* PAGE 212 */ -struct yaz_iconv_trie_flat marc8r_31page212_flat[] = { - {"\x96", 0, 0x215337}, /* East Asian ideograph */ - {"\x8C", 0, 0x215338}, /* East Asian ideograph */ - {"\xA5", 0, 0x215339}, /* East Asian ideograph */ - {"\x9A", 0, 0x21533A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21533B}, /* East Asian ideograph */ - {"\x83", 0, 0x21533C}, /* East Asian ideograph */ - {"\x9B", 0, 0x21533D}, /* East Asian ideograph */ - {"\x84", 0, 0x21533E}, /* East Asian ideograph */ - {"\x8E", 0, 0x21533F}, /* East Asian ideograph */ - {"\x9E", 0, 0x215340}, /* East Asian ideograph */ - {"\xA4", 0, 0x215341}, /* East Asian ideograph */ - {"\xB0", 0, 0x215342}, /* East Asian ideograph */ - {"\xB1", 0, 0x215345}, /* East Asian ideograph */ - {"\xB4", 0, 0x215346}, /* East Asian ideograph */ - {"\xAD", 0, 0x215347}, /* East Asian ideograph */ - {"\xBD", 0, 0x215348}, /* East Asian ideograph */ - {"\xB3", 0, 0x21534A}, /* East Asian ideograph */ - {"\xB8", 0, 0x21534B}, /* East Asian ideograph */ - {"\xA0", 0, 0x227773}, /* East Asian ideograph */ - {"\x9F", 0, 0x22777B}, /* East Asian ideograph */ - {"\x82", 0, 0x22777D}, /* East Asian ideograph */ - {"\x99", 0, 0x227827}, /* East Asian ideograph */ - {"\x9D", 0, 0x22782A}, /* East Asian ideograph */ - {"\x8F", 0, 0x22782D}, /* East Asian ideograph */ - {"\x8D", 0, 0x22782F}, /* East Asian ideograph */ - {"\x97", 0, 0x227830}, /* East Asian ideograph */ - {"\xB2", 0, 0x227833}, /* East Asian ideograph */ - {"\xBA", 0, 0x227834}, /* East Asian ideograph */ - {"\xBE", 0, 0x227838}, /* East Asian ideograph */ - {"\xB9", 0, 0x227840}, /* East Asian ideograph */ - {"\xAF", 0, 0x227841}, /* East Asian ideograph */ - {"\x94", 0, 0x227842}, /* East Asian ideograph */ - {"\x9C", 0, 0x273437}, /* East Asian ideograph */ - {"\xA7", 0, 0x274366}, /* East Asian ideograph */ - {"\xA1", 0, 0x275062}, /* East Asian ideograph (duplicate simplified) */ - {"\x81", 0, 0x275344}, /* East Asian ideograph */ - {"\x80", 0, 0x275359}, /* East Asian ideograph */ - {"\xB6", 0, 0x27536C}, /* East Asian ideograph */ - {"\x86", 0, 0x275379}, /* East Asian ideograph */ - {"\xAA", 0, 0x275421}, /* East Asian ideograph */ - {"\xA1", 0, 0x275551}, /* East Asian ideograph (duplicate simplified) */ - {"\xA1", 0, 0x275679}, /* East Asian ideograph (duplicate simplified) */ - {"\xA1", 0, 0x276164}, /* East Asian ideograph (duplicate simplified) */ - {"\xAB", 0, 0x287855}, /* East Asian ideograph */ - {"\xA8", 0, 0x28786E}, /* East Asian ideograph */ - {"\xB7", 0, 0x2D534B}, /* East Asian ideograph */ - {"\xBC", 0, 0x3A787D}, /* East Asian ideograph */ - {"\xAC", 0, 0x706640}, /* East Asian ideograph */ - {"\xA9", 0, 0x706B4C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page212 = { - marc8r_31page212_flat, 0 -}; -/* PAGE 211 */ -struct yaz_iconv_trie_flat marc8r_31page211_flat[] = { - {"\x84", 0, 0x21527E}, /* East Asian ideograph */ - {"\x85", 0, 0x215321}, /* East Asian ideograph */ - {"\x87", 0, 0x215322}, /* East Asian ideograph */ - {"\x89", 0, 0x215323}, /* East Asian ideograph */ - {"\x8B", 0, 0x215324}, /* East Asian ideograph */ - {"\x8C", 0, 0x215325}, /* East Asian ideograph */ - {"\x93", 0, 0x215326}, /* East Asian ideograph */ - {"\x9D", 0, 0x215327}, /* East Asian ideograph */ - {"\x98", 0, 0x215328}, /* East Asian ideograph */ - {"\x9B", 0, 0x215329}, /* East Asian ideograph */ - {"\x9A", 0, 0x21532A}, /* East Asian ideograph */ - {"\x96", 0, 0x21532B}, /* East Asian ideograph */ - {"\xB2", 0, 0x21532C}, /* East Asian ideograph */ - {"\xAA", 0, 0x21532D}, /* East Asian ideograph */ - {"\xBA", 0, 0x21532E}, /* East Asian ideograph */ - {"\xBA", 0, 0x21532E}, /* East Asian ideograph */ - {"\xA5", 0, 0x21532F}, /* East Asian ideograph */ - {"\xA2", 0, 0x215330}, /* East Asian ideograph */ - {"\xAB", 0, 0x215331}, /* East Asian ideograph */ - {"\xB1", 0, 0x215332}, /* East Asian ideograph */ - {"\xAF", 0, 0x215333}, /* East Asian ideograph */ - {"\xA1", 0, 0x215334}, /* East Asian ideograph */ - {"\xA9", 0, 0x215335}, /* East Asian ideograph */ - {"\xB4", 0, 0x215336}, /* East Asian ideograph */ - {"\x9C", 0, 0x222973}, /* East Asian ideograph */ - {"\x8A", 0, 0x227747}, /* East Asian ideograph */ - {"\x8E", 0, 0x227749}, /* East Asian ideograph */ - {"\x9F", 0, 0x22774E}, /* East Asian ideograph */ - {"\xA7", 0, 0x227760}, /* East Asian ideograph */ - {"\xB0", 0, 0x227761}, /* East Asian ideograph */ - {"\xB8", 0, 0x227768}, /* East Asian ideograph */ - {"\xB5", 0, 0x227769}, /* East Asian ideograph */ - {"\xA6", 0, 0x22776A}, /* East Asian ideograph */ - {"\x83", 0, 0x275321}, /* East Asian ideograph */ - {"\x90", 0, 0x27534A}, /* East Asian ideograph */ - {"\xBE", 0, 0x275358}, /* East Asian ideograph */ - {"\xA0", 0, 0x27535E}, /* East Asian ideograph */ - {"\xBF", 0, 0x275362}, /* East Asian ideograph */ - {"\xA4", 0, 0x27536E}, /* East Asian ideograph */ - {"\xAE", 0, 0x276153}, /* East Asian ideograph */ - {"\x86", 0, 0x2D3765}, /* East Asian ideograph */ - {"\xAD", 0, 0x2E3A33}, /* East Asian ideograph */ - {"\xBB", 0, 0x335333}, /* East Asian ideograph */ - {"\xAC", 0, 0x345E3B}, /* East Asian ideograph */ - {"\x80", 0, 0x4B527C}, /* East Asian ideograph */ - {"\xAD", 0, 0x4C3A33}, /* East Asian ideograph (variant of EACC 2E3A33) */ - {"\xB7", 0, 0x4C794E}, /* East Asian ideograph */ - {"\xBC", 0, 0x706B42}, /* East Asian ideograph */ - {"\xBD", 0, 0x706B44}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page211 = { - marc8r_31page211_flat, 0 -}; -/* PAGE 210 */ -struct yaz_iconv_trie_flat marc8r_31page210_flat[] = { - {"\x8A", 0, 0x21526D}, /* East Asian ideograph */ - {"\x86", 0, 0x21526E}, /* East Asian ideograph */ - {"\x96", 0, 0x21526F}, /* East Asian ideograph */ - {"\x98", 0, 0x215270}, /* East Asian ideograph */ - {"\x9E", 0, 0x215271}, /* East Asian ideograph */ - {"\x9A", 0, 0x215272}, /* East Asian ideograph */ - {"\xB1", 0, 0x215273}, /* East Asian ideograph */ - {"\xB2", 0, 0x215274}, /* East Asian ideograph */ - {"\xB3", 0, 0x215275}, /* East Asian ideograph */ - {"\xB0", 0, 0x215276}, /* East Asian ideograph */ - {"\xAF", 0, 0x215277}, /* East Asian ideograph */ - {"\xB7", 0, 0x215278}, /* East Asian ideograph */ - {"\xB6", 0, 0x215279}, /* East Asian ideograph */ - {"\xBE", 0, 0x21527A}, /* East Asian ideograph */ - {"\xBD", 0, 0x21527B}, /* East Asian ideograph */ - {"\xBF", 0, 0x21527C}, /* East Asian ideograph */ - {"\x81", 0, 0x22766B}, /* East Asian ideograph */ - {"\x83", 0, 0x227670}, /* East Asian ideograph */ - {"\x92", 0, 0x22767B}, /* East Asian ideograph */ - {"\xA2", 0, 0x22767E}, /* East Asian ideograph */ - {"\xA3", 0, 0x227728}, /* East Asian ideograph */ - {"\xAC", 0, 0x227732}, /* East Asian ideograph */ - {"\xB5", 0, 0x227739}, /* East Asian ideograph */ - {"\xBB", 0, 0x22773E}, /* East Asian ideograph */ - {"\xB9", 0, 0x22773F}, /* East Asian ideograph */ - {"\xAA", 0, 0x275276}, /* East Asian ideograph */ - {"\x94", 0, 0x275277}, /* East Asian ideograph */ - {"\x8C", 0, 0x275278}, /* East Asian ideograph */ - {"\x82", 0, 0x275279}, /* East Asian ideograph */ - {"\x8B", 0, 0x27527A}, /* East Asian ideograph */ - {"\xA9", 0, 0x287739}, /* East Asian ideograph */ - {"\x8D", 0, 0x28773F}, /* East Asian ideograph */ - {"\xB4", 0, 0x2D527B}, /* East Asian ideograph */ - {"\xA1", 0, 0x335276}, /* East Asian ideograph */ - {"\x9F", 0, 0x4B3A2F}, /* East Asian ideograph */ - {"\x86", 0, 0x4B526E}, /* East Asian ideograph (variant of EACC 21526E) */ - {"\xA8", 0, 0x4B5277}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page210 = { - marc8r_31page210_flat, 0 -}; -/* PAGE 209 */ -struct yaz_iconv_trie_flat marc8r_31page209_flat[] = { - {"\x80", 0, 0x21525B}, /* East Asian ideograph */ - {"\x81", 0, 0x21525C}, /* East Asian ideograph */ - {"\x83", 0, 0x21525D}, /* East Asian ideograph */ - {"\x86", 0, 0x21525E}, /* East Asian ideograph */ - {"\x85", 0, 0x21525F}, /* East Asian ideograph */ - {"\x8C", 0, 0x215260}, /* East Asian ideograph */ - {"\x90", 0, 0x215261}, /* East Asian ideograph */ - {"\x8D", 0, 0x215262}, /* East Asian ideograph */ - {"\x92", 0, 0x215263}, /* East Asian ideograph */ - {"\x95", 0, 0x215264}, /* East Asian ideograph */ - {"\x98", 0, 0x215265}, /* East Asian ideograph */ - {"\x99", 0, 0x215266}, /* East Asian ideograph */ - {"\x97", 0, 0x215267}, /* East Asian ideograph */ - {"\x9C", 0, 0x215268}, /* East Asian ideograph */ - {"\xB3", 0, 0x215269}, /* East Asian ideograph */ - {"\xB6", 0, 0x21526A}, /* East Asian ideograph */ - {"\xBF", 0, 0x21526B}, /* East Asian ideograph */ - {"\xBD", 0, 0x21526C}, /* East Asian ideograph */ - {"\x84", 0, 0x22762E}, /* East Asian ideograph */ - {"\x88", 0, 0x227631}, /* East Asian ideograph */ - {"\x8B", 0, 0x227633}, /* East Asian ideograph */ - {"\x8E", 0, 0x227634}, /* East Asian ideograph */ - {"\x91", 0, 0x227635}, /* East Asian ideograph */ - {"\x8F", 0, 0x227636}, /* East Asian ideograph */ - {"\x94", 0, 0x227637}, /* East Asian ideograph */ - {"\x96", 0, 0x227639}, /* East Asian ideograph */ - {"\x9F", 0, 0x22763B}, /* East Asian ideograph */ - {"\x9E", 0, 0x22763D}, /* East Asian ideograph */ - {"\x9D", 0, 0x22763E}, /* East Asian ideograph */ - {"\xA5", 0, 0x22764B}, /* East Asian ideograph */ - {"\xA6", 0, 0x22764C}, /* East Asian ideograph */ - {"\xAA", 0, 0x22764D}, /* East Asian ideograph */ - {"\xA9", 0, 0x22764E}, /* East Asian ideograph */ - {"\xA8", 0, 0x22764F}, /* East Asian ideograph */ - {"\xB0", 0, 0x22765B}, /* East Asian ideograph */ - {"\xB1", 0, 0x22765D}, /* East Asian ideograph */ - {"\xB5", 0, 0x227660}, /* East Asian ideograph */ - {"\xB9", 0, 0x227669}, /* East Asian ideograph */ - {"\xB8", 0, 0x275275}, /* East Asian ideograph */ - {"\xA7", 0, 0x287655}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D3E3C}, /* East Asian ideograph */ - {"\xA4", 0, 0x2D562E}, /* East Asian ideograph */ - {"\xA1", 0, 0x2D5D68}, /* East Asian ideograph */ - {"\xA0", 0, 0x2E684E}, /* East Asian ideograph */ - {"\xB7", 0, 0x2E765F}, /* East Asian ideograph */ - {"\x99", 0, 0x2F4231}, /* East Asian ideograph (unrelated variant of EACC 215266) */ - {"\xA2", 0, 0x344138}, /* East Asian ideograph */ - {"\x82", 0, 0x4B525C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page209 = { - marc8r_31page209_flat, 0 -}; -/* PAGE 208 */ -struct yaz_iconv_trie_dir marc8r_31page208_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x293B5B} /* East Asian ideograph */, - {0, 0, 0x293B59} /* East Asian ideograph */, - {0, 0, 0x275B3D} /* East Asian ideograph */, - {0, 0, 0x275B42} /* East Asian ideograph */, - {0, 0, 0x275B41} /* East Asian ideograph */, - {0, 0, 0x275B46} /* East Asian ideograph */, - {0, 0, 0x275B45} /* East Asian ideograph */, - {0, 0, 0x275B49} /* East Asian ideograph */, - {0, 0, 0x275B48} /* East Asian ideograph */, - {0, 0, 0x293B6D} /* East Asian ideograph */, - {0, 0, 0x293B6B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275B47} /* East Asian ideograph */, - {0, 0, 0x275B4B} /* East Asian ideograph */, - {0, 0, 0x293B7A} /* East Asian ideograph */, - {0, 0, 0x275B4C} /* East Asian ideograph */, - {0, 0, 0x275B4D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275B4E} /* East Asian ideograph */, - {0, 0, 0x275B59} /* East Asian ideograph */, - {0, 0, 0x275B51} /* East Asian ideograph */, - {0, 0, 0x275B4F} /* East Asian ideograph */, - {0, 0, 0x275B50} /* East Asian ideograph */, - {0, 0, 0x293C30} /* East Asian ideograph */, - {0, 0, 0x275B54} /* East Asian ideograph */, - {0, 0, 0x275B56} /* East Asian ideograph */, - {0, 0, 0x215B5A} /* East Asian ideograph */, - {0, 0, 0x215B5B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275B60} /* East Asian ideograph */, - {0, 0, 0x275E6B} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x2D5232} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x2D5B5D} /* East Asian ideograph */, - {0, 0, 0x215B5D} /* East Asian ideograph */, - {0, 0, 0x233C65} /* East Asian ideograph */, - {0, 0, 0x233C66} /* East Asian ideograph */, - {0, 0, 0x215B5F} /* East Asian ideograph */, - {0, 0, 0x2D5B5E} /* East Asian ideograph */, - {0, 0, 0x215B5E} /* East Asian ideograph */, - {0, 0, 0x275B61} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27517A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215B60} /* East Asian ideograph */, - {0, 0, 0x21517A} /* East Asian ideograph */, - {0, 0, 0x215B61} /* East Asian ideograph */, - {0, 0, 0x215B62} /* East Asian ideograph */, - {0, 0, 0x215B63} /* East Asian ideograph */, - {0, 0, 0x215B64} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x233C6C} /* East Asian ideograph */, - {0, 0, 0x4D3C6C} /* East Asian ideograph */, - {0, 0, 0x233C6D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275C5B} /* East Asian ideograph */, - {0, 0, 0x4B5C5B} /* East Asian ideograph */, - {0, 0, 0x233C6E} /* East Asian ideograph */, - {0, 0, 0x233C70} /* East Asian ideograph */, - {0, 0, 0x275C52} /* East Asian ideograph */, - {0, 0, 0x275C39} /* East Asian ideograph */, - {0, 0, 0x233C74} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page208 = { - 0, marc8r_31page208_dir -}; -/* PAGE 207 */ -struct yaz_iconv_trie_flat marc8r_31page207_flat[] = { - {"\xAC", 0, 0x214F22}, /* East Asian ideograph */ - {"\x8D", 0, 0x215534}, /* East Asian ideograph */ - {"\x83", 0, 0x215538}, /* East Asian ideograph */ - {"\x8B", 0, 0x21553B}, /* East Asian ideograph */ - {"\x8A", 0, 0x215541}, /* East Asian ideograph */ - {"\x8C", 0, 0x215542}, /* East Asian ideograph */ - {"\x8E", 0, 0x215547}, /* East Asian ideograph */ - {"\x84", 0, 0x215548}, /* East Asian ideograph */ - {"\xBD", 0, 0x215549}, /* East Asian ideograph */ - {"\xB1", 0, 0x21554B}, /* East Asian ideograph */ - {"\xBC", 0, 0x215554}, /* East Asian ideograph */ - {"\xB5", 0, 0x215555}, /* East Asian ideograph */ - {"\xB8", 0, 0x215559}, /* East Asian ideograph */ - {"\xA1", 0, 0x227E45}, /* East Asian ideograph */ - {"\xA3", 0, 0x227E51}, /* East Asian ideograph */ - {"\x93", 0, 0x227E53}, /* East Asian ideograph */ - {"\x90", 0, 0x227E59}, /* East Asian ideograph */ - {"\x87", 0, 0x227E61}, /* East Asian ideograph */ - {"\x81", 0, 0x227E6D}, /* East Asian ideograph */ - {"\x98", 0, 0x227E74}, /* East Asian ideograph */ - {"\x9E", 0, 0x232225}, /* East Asian ideograph */ - {"\x9F", 0, 0x23222C}, /* East Asian ideograph */ - {"\x8F", 0, 0x23222E}, /* East Asian ideograph */ - {"\x91", 0, 0x232230}, /* East Asian ideograph */ - {"\xB9", 0, 0x23224C}, /* East Asian ideograph */ - {"\xBE", 0, 0x23226E}, /* East Asian ideograph */ - {"\xB2", 0, 0x232324}, /* East Asian ideograph */ - {"\xAA", 0, 0x23232D}, /* East Asian ideograph */ - {"\xA9", 0, 0x23232E}, /* East Asian ideograph */ - {"\xA5", 0, 0x274A2E}, /* East Asian ideograph */ - {"\xA6", 0, 0x275161}, /* East Asian ideograph */ - {"\xA7", 0, 0x275622}, /* East Asian ideograph */ - {"\xA8", 0, 0x27562A}, /* East Asian ideograph */ - {"\x9D", 0, 0x275642}, /* East Asian ideograph */ - {"\xA4", 0, 0x275724}, /* East Asian ideograph */ - {"\x86", 0, 0x335568}, /* East Asian ideograph */ - {"\xA0", 0, 0x4B5542}, /* East Asian ideograph */ - {"\xA2", 0, 0x69684D}, /* East Asian ideograph */ - {"\x9C", 0, 0x705D46}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page207 = { - marc8r_31page207_flat, 0 -}; -/* PAGE 206 */ -struct yaz_iconv_trie_flat marc8r_31page206_flat[] = { - {"\x85", 0, 0x21524A}, /* East Asian ideograph */ - {"\x81", 0, 0x21524B}, /* East Asian ideograph */ - {"\x8C", 0, 0x21524C}, /* East Asian ideograph */ - {"\x92", 0, 0x21524D}, /* East Asian ideograph */ - {"\x8E", 0, 0x21524E}, /* East Asian ideograph (variant of EACC 4B524E) */ - {"\x94", 0, 0x21524F}, /* East Asian ideograph */ - {"\x95", 0, 0x215250}, /* East Asian ideograph */ - {"\xA0", 0, 0x215251}, /* East Asian ideograph */ - {"\xA1", 0, 0x215252}, /* East Asian ideograph */ - {"\x9F", 0, 0x215253}, /* East Asian ideograph */ - {"\xA9", 0, 0x215254}, /* East Asian ideograph */ - {"\xB0", 0, 0x215255}, /* East Asian ideograph */ - {"\xB3", 0, 0x215256}, /* East Asian ideograph */ - {"\xBC", 0, 0x215257}, /* East Asian ideograph */ - {"\xB9", 0, 0x215258}, /* East Asian ideograph */ - {"\xBB", 0, 0x215259}, /* East Asian ideograph */ - {"\xB1", 0, 0x21525A}, /* East Asian ideograph */ - {"\x83", 0, 0x227551}, /* East Asian ideograph */ - {"\x8A", 0, 0x227557}, /* East Asian ideograph */ - {"\x9B", 0, 0x227567}, /* East Asian ideograph */ - {"\xA3", 0, 0x227568}, /* East Asian ideograph */ - {"\xA6", 0, 0x22756C}, /* East Asian ideograph */ - {"\xA5", 0, 0x22756F}, /* East Asian ideograph */ - {"\xAC", 0, 0x227572}, /* East Asian ideograph */ - {"\xAB", 0, 0x227573}, /* East Asian ideograph */ - {"\xAF", 0, 0x227577}, /* East Asian ideograph */ - {"\xAE", 0, 0x22757A}, /* East Asian ideograph */ - {"\xBD", 0, 0x227629}, /* East Asian ideograph */ - {"\xBE", 0, 0x22762A}, /* East Asian ideograph */ - {"\xBF", 0, 0x22762C}, /* East Asian ideograph */ - {"\x86", 0, 0x275251}, /* East Asian ideograph */ - {"\x98", 0, 0x275258}, /* East Asian ideograph */ - {"\x84", 0, 0x2D524A}, /* East Asian ideograph */ - {"\x8E", 0, 0x4B524E}, /* East Asian ideograph */ - {"\xBA", 0, 0x4B525A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page206 = { - marc8r_31page206_flat, 0 -}; -/* PAGE 205 */ -struct yaz_iconv_trie_flat marc8r_31page205_flat[] = { - {"\x85", 0, 0x215237}, /* East Asian ideograph */ - {"\x88", 0, 0x215238}, /* East Asian ideograph */ - {"\x8A", 0, 0x215239}, /* East Asian ideograph */ - {"\x8C", 0, 0x21523A}, /* East Asian ideograph */ - {"\x8E", 0, 0x21523B}, /* East Asian ideograph */ - {"\x94", 0, 0x21523C}, /* East Asian ideograph */ - {"\x9E", 0, 0x21523D}, /* East Asian ideograph */ - {"\x9A", 0, 0x21523E}, /* East Asian ideograph */ - {"\xA8", 0, 0x215240}, /* East Asian ideograph */ - {"\xA4", 0, 0x215241}, /* East Asian ideograph */ - {"\xA9", 0, 0x215242}, /* East Asian ideograph */ - {"\xAF", 0, 0x215243}, /* East Asian ideograph */ - {"\xB2", 0, 0x215244}, /* East Asian ideograph */ - {"\xB6", 0, 0x215245}, /* East Asian ideograph */ - {"\xB8", 0, 0x215246}, /* East Asian ideograph */ - {"\xB9", 0, 0x215247}, /* East Asian ideograph */ - {"\xBD", 0, 0x215248}, /* East Asian ideograph */ - {"\xBF", 0, 0x215249}, /* East Asian ideograph */ - {"\x86", 0, 0x227472}, /* East Asian ideograph */ - {"\x91", 0, 0x22747A}, /* East Asian ideograph */ - {"\x96", 0, 0x22747E}, /* East Asian ideograph */ - {"\x97", 0, 0x227523}, /* East Asian ideograph */ - {"\x95", 0, 0x227524}, /* East Asian ideograph */ - {"\xA2", 0, 0x22752C}, /* East Asian ideograph */ - {"\xA7", 0, 0x227533}, /* East Asian ideograph */ - {"\xB0", 0, 0x22753B}, /* East Asian ideograph */ - {"\xAD", 0, 0x22753C}, /* East Asian ideograph */ - {"\xB1", 0, 0x22753F}, /* East Asian ideograph */ - {"\xB4", 0, 0x227540}, /* East Asian ideograph */ - {"\xB5", 0, 0x227542}, /* East Asian ideograph */ - {"\xBC", 0, 0x22754A}, /* East Asian ideograph */ - {"\xBE", 0, 0x22754C}, /* East Asian ideograph */ - {"\x81", 0, 0x275238}, /* East Asian ideograph */ - {"\x9F", 0, 0x287531}, /* East Asian ideograph */ - {"\x9D", 0, 0x2D4A58}, /* East Asian ideograph */ - {"\xA1", 0, 0x2D5240}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D5241}, /* East Asian ideograph */ - {"\x82", 0, 0x2E7450}, /* East Asian ideograph */ - {"\x87", 0, 0x4B5238}, /* East Asian ideograph */ - {"\x9A", 0, 0x4B523E}, /* East Asian ideograph (variant of EACC 21523E) */ - {"\xAE", 0, 0x4B5247}, /* East Asian ideograph */ - {"\x83", 0, 0x4B6A22}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page205 = { - marc8r_31page205_flat, 0 -}; -/* PAGE 204 */ -struct yaz_iconv_trie_flat marc8r_31page204_flat[] = { - {"\x84", 0, 0x215229}, /* East Asian ideograph */ - {"\x90", 0, 0x21522B}, /* East Asian ideograph */ - {"\x95", 0, 0x21522C}, /* East Asian ideograph */ - {"\x94", 0, 0x21522D}, /* East Asian ideograph */ - {"\x9F", 0, 0x21522E}, /* East Asian ideograph */ - {"\xB2", 0, 0x21522F}, /* East Asian ideograph */ - {"\xAE", 0, 0x215230}, /* East Asian ideograph */ - {"\xA9", 0, 0x215231}, /* East Asian ideograph */ - {"\xAA", 0, 0x215232}, /* East Asian ideograph */ - {"\xB0", 0, 0x215233}, /* East Asian ideograph */ - {"\xB5", 0, 0x215234}, /* East Asian ideograph */ - {"\xB7", 0, 0x215235}, /* East Asian ideograph */ - {"\xB9", 0, 0x215236}, /* East Asian ideograph */ - {"\x83", 0, 0x227425}, /* East Asian ideograph */ - {"\x86", 0, 0x227427}, /* East Asian ideograph */ - {"\x85", 0, 0x227428}, /* East Asian ideograph */ - {"\x8B", 0, 0x22742B}, /* East Asian ideograph */ - {"\x8C", 0, 0x22742E}, /* East Asian ideograph */ - {"\x8D", 0, 0x22742F}, /* East Asian ideograph */ - {"\x8E", 0, 0x227431}, /* East Asian ideograph */ - {"\x8F", 0, 0x227432}, /* East Asian ideograph */ - {"\xA0", 0, 0x22743E}, /* East Asian ideograph */ - {"\xA1", 0, 0x22743F}, /* East Asian ideograph */ - {"\x9D", 0, 0x227443}, /* East Asian ideograph */ - {"\x9B", 0, 0x227445}, /* East Asian ideograph */ - {"\xA3", 0, 0x227447}, /* East Asian ideograph */ - {"\xA5", 0, 0x227450}, /* East Asian ideograph */ - {"\xA6", 0, 0x227451}, /* East Asian ideograph */ - {"\xAD", 0, 0x227453}, /* East Asian ideograph */ - {"\xAB", 0, 0x227454}, /* East Asian ideograph */ - {"\xA7", 0, 0x227455}, /* East Asian ideograph */ - {"\xA8", 0, 0x227457}, /* East Asian ideograph */ - {"\xB1", 0, 0x22745E}, /* East Asian ideograph */ - {"\xB3", 0, 0x227460}, /* East Asian ideograph */ - {"\xB6", 0, 0x227463}, /* East Asian ideograph */ - {"\xBF", 0, 0x22746A}, /* East Asian ideograph */ - {"\xBE", 0, 0x22746B}, /* East Asian ideograph */ - {"\xBD", 0, 0x22746C}, /* East Asian ideograph */ - {"\x97", 0, 0x273761}, /* East Asian ideograph (duplicate simplified) */ - {"\x91", 0, 0x275148}, /* East Asian ideograph */ - {"\x9A", 0, 0x275233}, /* East Asian ideograph */ - {"\xA2", 0, 0x275235}, /* East Asian ideograph */ - {"\x97", 0, 0x275237}, /* East Asian ideograph */ - {"\x82", 0, 0x28742E}, /* East Asian ideograph */ - {"\xB4", 0, 0x287472}, /* East Asian ideograph */ - {"\xB8", 0, 0x2D5233}, /* East Asian ideograph */ - {"\x88", 0, 0x2E7431}, /* East Asian ideograph */ - {"\x98", 0, 0x2E7451}, /* East Asian ideograph */ - {"\x87", 0, 0x334550}, /* East Asian ideograph */ - {"\xAE", 0, 0x335230}, /* East Asian ideograph (variant of EACC 215230) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page204 = { - marc8r_31page204_flat, 0 -}; -/* PAGE 203 */ -struct yaz_iconv_trie_dir marc8r_31page203_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x275146} /* East Asian ideograph */, - {0, 0, 0x275151} /* East Asian ideograph */, - {0, 0, 0x28722A} /* East Asian ideograph */, - {0, 0, 0x287231} /* East Asian ideograph */, - {0, 0, 0x275156} /* East Asian ideograph */, - {0, 0, 0x275157} /* East Asian ideograph */, - {0, 0, 0x275224} /* East Asian ideograph */, - {0, 0, 0x287236} /* East Asian ideograph */, - {0, 0, 0x28723C} /* East Asian ideograph */, - {0, 0, 0x275158} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4B5179} /* East Asian ideograph */, - {0, 0, 0x28723E} /* East Asian ideograph */, - {0, 0, 0x27515D} /* East Asian ideograph */, - {0, 0, 0x27515E} /* East Asian ideograph */, - {0, 0, 0x287248} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x287247} /* East Asian ideograph */, - {0, 0, 0x287253} /* East Asian ideograph */, - {0, 0, 0x275159} /* East Asian ideograph */, - {0, 0, 0x275152} /* East Asian ideograph */, - {0, 0, 0x275168} /* East Asian ideograph */, - {0, 0, 0x27515B} /* East Asian ideograph */, - {0, 0, 0x287229} /* East Asian ideograph */, - {0, 0, 0x27515A} /* East Asian ideograph */, - {0, 0, 0x28725E} /* East Asian ideograph */, - {0, 0, 0x275162} /* East Asian ideograph */, - {0, 0, 0x28725F} /* East Asian ideograph */, - {0, 0, 0x28725D} /* East Asian ideograph */, - {0, 0, 0x27516C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x287251} /* East Asian ideograph */, - {0, 0, 0x27517E} /* East Asian ideograph */, - {0, 0, 0x287272} /* East Asian ideograph */, - {0, 0, 0x275160} /* East Asian ideograph */, - {0, 0, 0x27515F} /* East Asian ideograph */, - {0, 0, 0x27517B} /* East Asian ideograph */, - {0, 0, 0x287279} /* East Asian ideograph */, - {0, 0, 0x287321} /* East Asian ideograph */, - {0, 0, 0x275169} /* East Asian ideograph */, - {0, 0, 0x275222} /* East Asian ideograph */, - {0, 0, 0x275165} /* East Asian ideograph */, - {0, 0, 0x275167} /* East Asian ideograph */, - {0, 0, 0x27516F} /* East Asian ideograph */, - {0, 0, 0x287360} /* East Asian ideograph */, - {0, 0, 0x275174} /* East Asian ideograph */, - {0, 0, 0x275170} /* East Asian ideograph */, - {0, 0, 0x28732D} /* East Asian ideograph */, - {0, 0, 0x287349} /* East Asian ideograph */, - {0, 0, 0x287359} /* East Asian ideograph */, - {0, 0, 0x28734E} /* East Asian ideograph */, - {0, 0, 0x287351} /* East Asian ideograph */, - {0, 0, 0x287352} /* East Asian ideograph */, - {0, 0, 0x287374} /* East Asian ideograph */, - {0, 0, 0x4B522B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215226} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215227} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x215228} /* East Asian ideograph */, - {0, 0, 0x2D4B71} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page203 = { - 0, marc8r_31page203_dir -}; -/* PAGE 202 */ -struct yaz_iconv_trie_dir marc8r_31page202_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x22735B} /* East Asian ideograph */, - {0, 0, 0x21517C} /* East Asian ideograph */, - {0, 0, 0x69656D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x227364} /* East Asian ideograph */, - {0, 0, 0x22735E} /* East Asian ideograph */, - {0, 0, 0x227360} /* East Asian ideograph */, - {0, 0, 0x2E7374} /* East Asian ideograph */, - {0, 0, 0x22735D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x215221} /* East Asian ideograph */, - {0, 0, 0x33512E} /* East Asian ideograph */, - {0, 0, 0x335223} /* East Asian ideograph */, - {0, 0, 0x21517E} /* East Asian ideograph */, - {0, 0, 0x696576} /* East Asian ideograph */, - {0, 0, 0x22736A} /* East Asian ideograph */, - {0, 0, 0x4B517E} /* East Asian ideograph */, - {0, 0, 0x215222} /* East Asian ideograph */, - {0, 0, 0x22736D} /* East Asian ideograph */, - {0, 0, 0x22736B} /* East Asian ideograph */, - {0, 0, 0x215223} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x227374} /* East Asian ideograph */, - {0, 0, 0x227373} /* East Asian ideograph */, - {0, 0, 0x227371} /* East Asian ideograph */, - {0, 0, 0x227370} /* East Asian ideograph */, - {0, 0, 0x215224} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x51513B} /* East Asian ideograph */, - {0, 0, 0x27506F} /* East Asian ideograph */, - {0, 0, 0x287042} /* East Asian ideograph */, - {0, 0, 0x275072} /* East Asian ideograph */, - {0, 0, 0x275071} /* East Asian ideograph */, - {0, 0, 0x287271} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x275075} /* East Asian ideograph */, - {0, 0, 0x275074} /* East Asian ideograph */, - {0, 0, 0x275123} /* East Asian ideograph */, - {0, 0, 0x287045} /* East Asian ideograph */, - {0, 0, 0x28735D} /* East Asian ideograph */, - {0, 0, 0x275070} /* East Asian ideograph */, - {0, 0, 0x275073} /* East Asian ideograph */, - {0, 0, 0x275153} /* East Asian ideograph */, - {0, 0, 0x27507A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27507D} /* East Asian ideograph */, - {0, 0, 0x27507C} /* East Asian ideograph */, - {0, 0, 0x275121} /* East Asian ideograph */, - {0, 0, 0x275149} /* East Asian ideograph */, - {0, 0, 0x275122} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27516E} /* East Asian ideograph */, - {0, 0, 0x275150} /* East Asian ideograph */, - {0, 0, 0x275125} /* East Asian ideograph */, - {0, 0, 0x275124} /* East Asian ideograph */, - {0, 0, 0x275077} /* East Asian ideograph */, - {0, 0, 0x275076} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x27507E} /* East Asian ideograph */, - {0, 0, 0x28704A} /* East Asian ideograph */, - {0, 0, 0x27515C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page202 = { - 0, marc8r_31page202_dir -}; -/* PAGE 201 */ -struct yaz_iconv_trie_flat marc8r_31page201_flat[] = { - {"\x86", 0, 0x215167}, /* East Asian ideograph */ - {"\x83", 0, 0x21516A}, /* East Asian ideograph */ - {"\x81", 0, 0x21516B}, /* East Asian ideograph */ - {"\x85", 0, 0x21516F}, /* East Asian ideograph */ - {"\x95", 0, 0x215170}, /* East Asian ideograph */ - {"\x94", 0, 0x215171}, /* East Asian ideograph */ - {"\xA1", 0, 0x215172}, /* East Asian ideograph */ - {"\x9E", 0, 0x215173}, /* East Asian ideograph */ - {"\x9A", 0, 0x215174}, /* East Asian ideograph */ - {"\xAB", 0, 0x215175}, /* East Asian ideograph */ - {"\xA9", 0, 0x215176}, /* East Asian ideograph */ - {"\xAD", 0, 0x215177}, /* East Asian ideograph */ - {"\xB9", 0, 0x215178}, /* East Asian ideograph */ - {"\xAA", 0, 0x215179}, /* East Asian ideograph */ - {"\xBD", 0, 0x21517B}, /* East Asian ideograph */ - {"\xBC", 0, 0x21517D}, /* East Asian ideograph */ - {"\x84", 0, 0x22727D}, /* East Asian ideograph */ - {"\x87", 0, 0x227328}, /* East Asian ideograph */ - {"\x92", 0, 0x22732D}, /* East Asian ideograph */ - {"\x91", 0, 0x22732F}, /* East Asian ideograph */ - {"\x90", 0, 0x227333}, /* East Asian ideograph */ - {"\xA7", 0, 0x227334}, /* East Asian ideograph */ - {"\x96", 0, 0x227337}, /* East Asian ideograph */ - {"\xA8", 0, 0x227348}, /* East Asian ideograph */ - {"\xAE", 0, 0x227349}, /* East Asian ideograph */ - {"\xB0", 0, 0x22734E}, /* East Asian ideograph */ - {"\xAF", 0, 0x227351}, /* East Asian ideograph */ - {"\xB3", 0, 0x227352}, /* East Asian ideograph */ - {"\xBB", 0, 0x227358}, /* East Asian ideograph */ - {"\xBE", 0, 0x227359}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D5179}, /* East Asian ideograph */ - {"\x88", 0, 0x2F2F5D}, /* East Asian ideograph */ - {"\x99", 0, 0x335259}, /* East Asian ideograph */ - {"\x8A", 0, 0x4B5223}, /* East Asian ideograph */ - {"\xBF", 0, 0x4B577E}, /* East Asian ideograph */ - {"\x9D", 0, 0x4D2F73}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page201 = { - marc8r_31page201_flat, 0 -}; -/* PAGE 200 */ -struct yaz_iconv_trie_flat marc8r_31page200_flat[] = { - {"\x91", 0, 0x21515F}, /* East Asian ideograph */ - {"\x8A", 0, 0x215160}, /* East Asian ideograph */ - {"\x88", 0, 0x215161}, /* East Asian ideograph */ - {"\x9B", 0, 0x215162}, /* East Asian ideograph */ - {"\xA3", 0, 0x215164}, /* East Asian ideograph */ - {"\xAE", 0, 0x215165}, /* East Asian ideograph */ - {"\xBE", 0, 0x215166}, /* East Asian ideograph */ - {"\xB7", 0, 0x215168}, /* East Asian ideograph */ - {"\xB2", 0, 0x215169}, /* East Asian ideograph */ - {"\xAB", 0, 0x21516C}, /* East Asian ideograph */ - {"\xBD", 0, 0x21516D}, /* East Asian ideograph */ - {"\xB1", 0, 0x21516E}, /* East Asian ideograph */ - {"\x86", 0, 0x22723A}, /* East Asian ideograph */ - {"\x97", 0, 0x227250}, /* East Asian ideograph */ - {"\x9E", 0, 0x227251}, /* East Asian ideograph */ - {"\xA1", 0, 0x227252}, /* East Asian ideograph */ - {"\x8B", 0, 0x227253}, /* East Asian ideograph */ - {"\x92", 0, 0x227255}, /* East Asian ideograph */ - {"\xA2", 0, 0x227256}, /* East Asian ideograph */ - {"\xA0", 0, 0x22725B}, /* East Asian ideograph */ - {"\x9D", 0, 0x22725D}, /* East Asian ideograph */ - {"\x89", 0, 0x22725E}, /* East Asian ideograph */ - {"\x9F", 0, 0x22725F}, /* East Asian ideograph */ - {"\x95", 0, 0x227265}, /* East Asian ideograph */ - {"\x90", 0, 0x227269}, /* East Asian ideograph */ - {"\x8F", 0, 0x22726A}, /* East Asian ideograph */ - {"\xBB", 0, 0x22726D}, /* East Asian ideograph */ - {"\xB4", 0, 0x227271}, /* East Asian ideograph */ - {"\xAD", 0, 0x227272}, /* East Asian ideograph */ - {"\xAF", 0, 0x227273}, /* East Asian ideograph */ - {"\xB6", 0, 0x227275}, /* East Asian ideograph */ - {"\xBA", 0, 0x227277}, /* East Asian ideograph */ - {"\xB9", 0, 0x227279}, /* East Asian ideograph */ - {"\xB5", 0, 0x227321}, /* East Asian ideograph */ - {"\xBF", 0, 0x227326}, /* East Asian ideograph */ - {"\xA7", 0, 0x2E715A}, /* East Asian ideograph */ - {"\x9A", 0, 0x34715A}, /* East Asian ideograph */ - {"\x81", 0, 0x4B515A}, /* East Asian ideograph */ - {"\xA6", 0, 0x4B516E}, /* East Asian ideograph */ - {"\x84", 0, 0x4B5176}, /* East Asian ideograph */ - {"\x85", 0, 0x69654F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page200 = { - marc8r_31page200_flat, 0 -}; -/* PAGE 199 */ -struct yaz_iconv_trie_flat marc8r_31page199_flat[] = { - {"\x8A", 0, 0x215144}, /* East Asian ideograph */ - {"\x87", 0, 0x215151}, /* East Asian ideograph */ - {"\xA0", 0, 0x215152}, /* East Asian ideograph */ - {"\xAF", 0, 0x215153}, /* East Asian ideograph */ - {"\xB4", 0, 0x215154}, /* East Asian ideograph (variant of EACC 4B5154) */ - {"\x96", 0, 0x215155}, /* East Asian ideograph */ - {"\x98", 0, 0x215156}, /* East Asian ideograph */ - {"\xAC", 0, 0x215157}, /* East Asian ideograph */ - {"\x9D", 0, 0x215158}, /* East Asian ideograph */ - {"\xA9", 0, 0x215159}, /* East Asian ideograph */ - {"\xA3", 0, 0x21515A}, /* East Asian ideograph */ - {"\xA8", 0, 0x21515B}, /* East Asian ideograph */ - {"\x9A", 0, 0x21515C}, /* East Asian ideograph */ - {"\x9E", 0, 0x21515E}, /* East Asian ideograph */ - {"\xBB", 0, 0x215163}, /* East Asian ideograph */ - {"\x8B", 0, 0x227167}, /* East Asian ideograph */ - {"\x8E", 0, 0x22716A}, /* East Asian ideograph */ - {"\x89", 0, 0x22716B}, /* East Asian ideograph */ - {"\x85", 0, 0x22716E}, /* East Asian ideograph */ - {"\x84", 0, 0x227174}, /* East Asian ideograph */ - {"\xA1", 0, 0x227229}, /* East Asian ideograph */ - {"\x99", 0, 0x22722A}, /* East Asian ideograph */ - {"\xA4", 0, 0x22722B}, /* East Asian ideograph */ - {"\x97", 0, 0x227231}, /* East Asian ideograph */ - {"\xB9", 0, 0x227236}, /* East Asian ideograph */ - {"\xB2", 0, 0x22723C}, /* East Asian ideograph */ - {"\xA6", 0, 0x22723E}, /* East Asian ideograph */ - {"\x9C", 0, 0x227246}, /* East Asian ideograph */ - {"\xB1", 0, 0x227247}, /* East Asian ideograph */ - {"\xB6", 0, 0x227248}, /* East Asian ideograph */ - {"\xA5", 0, 0x227249}, /* East Asian ideograph */ - {"\xB5", 0, 0x22724B}, /* East Asian ideograph */ - {"\x91", 0, 0x33514C}, /* East Asian ideograph */ - {"\x90", 0, 0x33516B}, /* East Asian ideograph */ - {"\xB4", 0, 0x4B5154}, /* East Asian ideograph */ - {"\x8F", 0, 0x4B516D}, /* East Asian ideograph */ - {"\xBC", 0, 0x4C7265}, /* East Asian ideograph */ - {"\x95", 0, 0x69656E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page199 = { - marc8r_31page199_flat, 0 -}; -/* PAGE 198 */ -struct yaz_iconv_trie_flat marc8r_31page198_flat[] = { - {"\x93", 0, 0x21513C}, /* East Asian ideograph */ - {"\x91", 0, 0x21513D}, /* East Asian ideograph */ - {"\x8F", 0, 0x21513F}, /* East Asian ideograph */ - {"\x81", 0, 0x215140}, /* East Asian ideograph */ - {"\x9C", 0, 0x215141}, /* East Asian ideograph */ - {"\xBB", 0, 0x215142}, /* East Asian ideograph */ - {"\xB0", 0, 0x215143}, /* East Asian ideograph */ - {"\xBE", 0, 0x215145}, /* East Asian ideograph */ - {"\xB4", 0, 0x215146}, /* East Asian ideograph */ - {"\xBA", 0, 0x215147}, /* East Asian ideograph */ - {"\xB2", 0, 0x215148}, /* East Asian ideograph */ - {"\xB1", 0, 0x215149}, /* East Asian ideograph */ - {"\xBD", 0, 0x21514A}, /* East Asian ideograph */ - {"\xB5", 0, 0x21514B}, /* East Asian ideograph */ - {"\xA0", 0, 0x21514C}, /* East Asian ideograph */ - {"\xA2", 0, 0x21514D}, /* East Asian ideograph */ - {"\xAD", 0, 0x21514E}, /* East Asian ideograph */ - {"\xBF", 0, 0x21514F}, /* East Asian ideograph */ - {"\xB8", 0, 0x215150}, /* East Asian ideograph */ - {"\x9E", 0, 0x21515D}, /* East Asian ideograph */ - {"\x8B", 0, 0x227137}, /* East Asian ideograph */ - {"\x88", 0, 0x227139}, /* East Asian ideograph */ - {"\x85", 0, 0x22713B}, /* East Asian ideograph */ - {"\x8E", 0, 0x22713D}, /* East Asian ideograph */ - {"\x86", 0, 0x227144}, /* East Asian ideograph */ - {"\x8D", 0, 0x227148}, /* East Asian ideograph */ - {"\x9B", 0, 0x22714B}, /* East Asian ideograph */ - {"\x83", 0, 0x22714D}, /* East Asian ideograph */ - {"\x96", 0, 0x227159}, /* East Asian ideograph */ - {"\x8C", 0, 0x22715B}, /* East Asian ideograph */ - {"\xA3", 0, 0x227161}, /* East Asian ideograph */ - {"\xAE", 0, 0x227162}, /* East Asian ideograph */ - {"\xAA", 0, 0x227169}, /* East Asian ideograph */ - {"\xA6", 0, 0x22716F}, /* East Asian ideograph */ - {"\xAC", 0, 0x227178}, /* East Asian ideograph */ - {"\xB9", 0, 0x22717D}, /* East Asian ideograph */ - {"\x9F", 0, 0x227222}, /* East Asian ideograph */ - {"\xB3", 0, 0x2D516A}, /* East Asian ideograph */ - {"\x99", 0, 0x2D517D}, /* East Asian ideograph */ - {"\xAB", 0, 0x33515C}, /* East Asian ideograph */ - {"\x89", 0, 0x335172}, /* East Asian ideograph */ - {"\xAF", 0, 0x395773}, /* East Asian ideograph */ - {"\x9A", 0, 0x4B5221}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page198 = { - marc8r_31page198_flat, 0 -}; -/* PAGE 197 */ -struct yaz_iconv_trie_flat marc8r_31page197_flat[] = { - {"\x86", 0, 0x215126}, /* East Asian ideograph */ - {"\x84", 0, 0x21512B}, /* East Asian ideograph */ - {"\x80", 0, 0x21512F}, /* East Asian ideograph */ - {"\x82", 0, 0x215130}, /* East Asian ideograph */ - {"\xB1", 0, 0x215131}, /* East Asian ideograph */ - {"\x9E", 0, 0x215132}, /* East Asian ideograph */ - {"\xA8", 0, 0x215133}, /* East Asian ideograph */ - {"\x90", 0, 0x215134}, /* East Asian ideograph */ - {"\xA2", 0, 0x215136}, /* East Asian ideograph */ - {"\xB6", 0, 0x215137}, /* East Asian ideograph */ - {"\xA1", 0, 0x215138}, /* East Asian ideograph */ - {"\xA6", 0, 0x215139}, /* East Asian ideograph */ - {"\xAE", 0, 0x21513A}, /* East Asian ideograph */ - {"\xB2", 0, 0x21513B}, /* East Asian ideograph */ - {"\xB9", 0, 0x21513E}, /* East Asian ideograph */ - {"\x85", 0, 0x227068}, /* East Asian ideograph */ - {"\x81", 0, 0x22706F}, /* East Asian ideograph */ - {"\x9C", 0, 0x22707A}, /* East Asian ideograph */ - {"\x93", 0, 0x22707C}, /* East Asian ideograph */ - {"\x9A", 0, 0x22707E}, /* East Asian ideograph */ - {"\xB0", 0, 0x227122}, /* East Asian ideograph */ - {"\xA7", 0, 0x227129}, /* East Asian ideograph */ - {"\xAA", 0, 0x22712B}, /* East Asian ideograph */ - {"\xAB", 0, 0x22712C}, /* East Asian ideograph */ - {"\xB3", 0, 0x227130}, /* East Asian ideograph */ - {"\x8E", 0, 0x227134}, /* East Asian ideograph */ - {"\xBF", 0, 0x227142}, /* East Asian ideograph */ - {"\xBD", 0, 0x22714F}, /* East Asian ideograph */ - {"\xBB", 0, 0x227154}, /* East Asian ideograph */ - {"\xBA", 0, 0x227158}, /* East Asian ideograph */ - {"\x9B", 0, 0x22715A}, /* East Asian ideograph */ - {"\xB7", 0, 0x287275}, /* East Asian ideograph */ - {"\x9D", 0, 0x2D5773}, /* East Asian ideograph */ - {"\x8F", 0, 0x2E7062}, /* East Asian ideograph */ - {"\xA3", 0, 0x2E717C}, /* East Asian ideograph */ - {"\x96", 0, 0x2E735D}, /* East Asian ideograph */ - {"\x83", 0, 0x333D42}, /* East Asian ideograph */ - {"\x8C", 0, 0x33513C}, /* East Asian ideograph */ - {"\xB5", 0, 0x395179}, /* East Asian ideograph */ - {"\x8B", 0, 0x4C735D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page197 = { - marc8r_31page197_flat, 0 -}; -/* PAGE 196 */ -struct yaz_iconv_trie_flat marc8r_31page196_flat[] = { - {"\x80", 0, 0x215070}, /* East Asian ideograph */ - {"\x82", 0, 0x215071}, /* East Asian ideograph */ - {"\x85", 0, 0x215072}, /* East Asian ideograph */ - {"\x89", 0, 0x215073}, /* East Asian ideograph */ - {"\x84", 0, 0x215074}, /* East Asian ideograph */ - {"\x87", 0, 0x215075}, /* East Asian ideograph */ - {"\xA1", 0, 0x215076}, /* East Asian ideograph */ - {"\x8B", 0, 0x215077}, /* East Asian ideograph */ - {"\x8A", 0, 0x215078}, /* East Asian ideograph */ - {"\xA0", 0, 0x215079}, /* East Asian ideograph */ - {"\x9C", 0, 0x21507A}, /* East Asian ideograph */ - {"\xA2", 0, 0x21507B}, /* East Asian ideograph */ - {"\x95", 0, 0x21507C}, /* East Asian ideograph */ - {"\x94", 0, 0x21507D}, /* East Asian ideograph */ - {"\x90", 0, 0x21507E}, /* East Asian ideograph */ - {"\x97", 0, 0x215121}, /* East Asian ideograph */ - {"\x8D", 0, 0x215122}, /* East Asian ideograph (variant of EACC 455122) */ - {"\x9A", 0, 0x215123}, /* East Asian ideograph */ - {"\x99", 0, 0x215124}, /* East Asian ideograph */ - {"\x9B", 0, 0x215125}, /* East Asian ideograph */ - {"\xBC", 0, 0x215128}, /* East Asian ideograph */ - {"\xAE", 0, 0x215129}, /* East Asian ideograph */ - {"\xB9", 0, 0x21512A}, /* East Asian ideograph */ - {"\xB0", 0, 0x21512C}, /* East Asian ideograph */ - {"\xB3", 0, 0x21512D}, /* East Asian ideograph */ - {"\xAF", 0, 0x21512E}, /* East Asian ideograph */ - {"\xAB", 0, 0x215135}, /* East Asian ideograph */ - {"\x86", 0, 0x227042}, /* East Asian ideograph */ - {"\x83", 0, 0x227044}, /* East Asian ideograph */ - {"\x88", 0, 0x227045}, /* East Asian ideograph */ - {"\x8F", 0, 0x227049}, /* East Asian ideograph */ - {"\x93", 0, 0x22704A}, /* East Asian ideograph */ - {"\x98", 0, 0x227050}, /* East Asian ideograph */ - {"\x9E", 0, 0x227051}, /* East Asian ideograph */ - {"\x9D", 0, 0x227052}, /* East Asian ideograph */ - {"\xB5", 0, 0x227059}, /* East Asian ideograph */ - {"\xBD", 0, 0x22705A}, /* East Asian ideograph */ - {"\xBA", 0, 0x227061}, /* East Asian ideograph */ - {"\xB2", 0, 0x227062}, /* East Asian ideograph */ - {"\xB1", 0, 0x227065}, /* East Asian ideograph */ - {"\xBF", 0, 0x22706A}, /* East Asian ideograph */ - {"\xA9", 0, 0x22706C}, /* East Asian ideograph */ - {"\xBE", 0, 0x227071}, /* East Asian ideograph */ - {"\xA7", 0, 0x275144}, /* East Asian ideograph */ - {"\xA5", 0, 0x2D5129}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D514D}, /* East Asian ideograph */ - {"\x8D", 0, 0x455122}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page196 = { - marc8r_31page196_flat, 0 -}; -/* PAGE 195 */ -struct yaz_iconv_trie_flat marc8r_31page195_flat[] = { - {"\x8A", 0, 0x215062}, /* East Asian ideograph */ - {"\x96", 0, 0x215063}, /* East Asian ideograph */ - {"\x95", 0, 0x215064}, /* East Asian ideograph */ - {"\xA0", 0, 0x215065}, /* East Asian ideograph */ - {"\x9C", 0, 0x215066}, /* East Asian ideograph */ - {"\x9F", 0, 0x215067}, /* East Asian ideograph */ - {"\x9E", 0, 0x215068}, /* East Asian ideograph */ - {"\xA2", 0, 0x215069}, /* East Asian ideograph */ - {"\x99", 0, 0x21506A}, /* East Asian ideograph */ - {"\xA7", 0, 0x21506B}, /* East Asian ideograph */ - {"\xAF", 0, 0x21506C}, /* East Asian ideograph */ - {"\xBB", 0, 0x21506E}, /* East Asian ideograph */ - {"\xBE", 0, 0x21506F}, /* East Asian ideograph */ - {"\x82", 0, 0x226F64}, /* East Asian ideograph */ - {"\x8E", 0, 0x226F66}, /* East Asian ideograph */ - {"\x88", 0, 0x226F68}, /* East Asian ideograph */ - {"\x85", 0, 0x226F69}, /* East Asian ideograph */ - {"\x8C", 0, 0x226F6D}, /* East Asian ideograph */ - {"\x89", 0, 0x226F6F}, /* East Asian ideograph */ - {"\x92", 0, 0x226F71}, /* East Asian ideograph */ - {"\x97", 0, 0x226F75}, /* East Asian ideograph */ - {"\xA1", 0, 0x226F77}, /* East Asian ideograph */ - {"\xA8", 0, 0x226F7B}, /* East Asian ideograph (variant of EACC 4C6F7B) */ - {"\x9D", 0, 0x227022}, /* East Asian ideograph */ - {"\xAD", 0, 0x227028}, /* East Asian ideograph */ - {"\xB0", 0, 0x22702E}, /* East Asian ideograph */ - {"\xB2", 0, 0x227030}, /* East Asian ideograph */ - {"\xB4", 0, 0x227035}, /* East Asian ideograph */ - {"\xB6", 0, 0x227039}, /* East Asian ideograph */ - {"\xBB", 0, 0x273169}, /* East Asian ideograph (duplicate simplified) */ - {"\xBB", 0, 0x275175}, /* East Asian ideograph (duplicate simplified) */ - {"\x81", 0, 0x287022}, /* East Asian ideograph */ - {"\xBA", 0, 0x2D506F}, /* East Asian ideograph */ - {"\x87", 0, 0x2F5158}, /* East Asian ideograph */ - {"\xB8", 0, 0x4B513B}, /* East Asian ideograph */ - {"\x8D", 0, 0x4C6F43}, /* East Asian ideograph */ - {"\xA8", 0, 0x4C6F7B}, /* East Asian ideograph */ - {"\x80", 0, 0x696471}, /* East Asian ideograph */ - {"\x98", 0, 0x696474}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page195 = { - marc8r_31page195_flat, 0 -}; -/* PAGE 194 */ -struct yaz_iconv_trie_flat marc8r_31page194_flat[] = { - {"\x89", 0, 0x215057}, /* East Asian ideograph */ - {"\x92", 0, 0x215058}, /* East Asian ideograph */ - {"\x97", 0, 0x215059}, /* East Asian ideograph */ - {"\x9F", 0, 0x21505A}, /* East Asian ideograph */ - {"\xA5", 0, 0x21505B}, /* East Asian ideograph */ - {"\xA4", 0, 0x21505C}, /* East Asian ideograph */ - {"\xB1", 0, 0x21505D}, /* East Asian ideograph */ - {"\xB3", 0, 0x21505E}, /* East Asian ideograph */ - {"\xBD", 0, 0x21505F}, /* East Asian ideograph */ - {"\xB9", 0, 0x215060}, /* East Asian ideograph */ - {"\xBE", 0, 0x215061}, /* East Asian ideograph (variant of EACC 4B5061) */ - {"\x81", 0, 0x226F21}, /* East Asian ideograph */ - {"\x8E", 0, 0x226F28}, /* East Asian ideograph */ - {"\x91", 0, 0x226F29}, /* East Asian ideograph */ - {"\x83", 0, 0x226F2A}, /* East Asian ideograph */ - {"\x8D", 0, 0x226F2C}, /* East Asian ideograph */ - {"\x99", 0, 0x226F3A}, /* East Asian ideograph */ - {"\x98", 0, 0x226F3B}, /* East Asian ideograph */ - {"\x9C", 0, 0x226F3E}, /* East Asian ideograph */ - {"\x95", 0, 0x226F40}, /* East Asian ideograph */ - {"\xA7", 0, 0x226F42}, /* East Asian ideograph */ - {"\xA2", 0, 0x226F43}, /* East Asian ideograph */ - {"\x9E", 0, 0x226F45}, /* East Asian ideograph */ - {"\xA9", 0, 0x226F46}, /* East Asian ideograph */ - {"\xA8", 0, 0x226F48}, /* East Asian ideograph */ - {"\xA1", 0, 0x226F49}, /* East Asian ideograph */ - {"\xAC", 0, 0x226F4A}, /* East Asian ideograph */ - {"\xA6", 0, 0x226F4C}, /* East Asian ideograph */ - {"\xB2", 0, 0x226F54}, /* East Asian ideograph */ - {"\xBB", 0, 0x226F58}, /* East Asian ideograph */ - {"\xBF", 0, 0x226F59}, /* East Asian ideograph */ - {"\xBA", 0, 0x226F5E}, /* East Asian ideograph */ - {"\xBC", 0, 0x226F5F}, /* East Asian ideograph */ - {"\x8B", 0, 0x275060}, /* East Asian ideograph */ - {"\xAA", 0, 0x275068}, /* East Asian ideograph */ - {"\xAE", 0, 0x27506B}, /* East Asian ideograph */ - {"\x9D", 0, 0x287030}, /* East Asian ideograph */ - {"\x9B", 0, 0x2D5321}, /* East Asian ideograph */ - {"\xBE", 0, 0x4B5061}, /* East Asian ideograph */ - {"\xAB", 0, 0x4B506C}, /* East Asian ideograph */ - {"\x82", 0, 0x693729}, /* East Asian ideograph */ - {"\x90", 0, 0x696464}, /* East Asian ideograph */ - {"\xAD", 0, 0x696466}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page194 = { - marc8r_31page194_flat, 0 -}; -/* PAGE 193 */ -struct yaz_iconv_trie_flat marc8r_31page193_flat[] = { - {"\x83", 0, 0x21504C}, /* East Asian ideograph */ - {"\x8C", 0, 0x21504D}, /* East Asian ideograph */ - {"\x8D", 0, 0x21504E}, /* East Asian ideograph */ - {"\x90", 0, 0x21504F}, /* East Asian ideograph */ - {"\xA0", 0, 0x215050}, /* East Asian ideograph */ - {"\x9F", 0, 0x215051}, /* East Asian ideograph */ - {"\xA4", 0, 0x215052}, /* East Asian ideograph */ - {"\xAC", 0, 0x215053}, /* East Asian ideograph */ - {"\xAE", 0, 0x215054}, /* East Asian ideograph */ - {"\xB2", 0, 0x215055}, /* East Asian ideograph */ - {"\xB3", 0, 0x215056}, /* East Asian ideograph */ - {"\x80", 0, 0x226E2A}, /* East Asian ideograph */ - {"\x82", 0, 0x226E3B}, /* East Asian ideograph */ - {"\x8E", 0, 0x226E46}, /* East Asian ideograph */ - {"\x9D", 0, 0x226E54}, /* East Asian ideograph */ - {"\x9C", 0, 0x226E56}, /* East Asian ideograph */ - {"\x9A", 0, 0x226E57}, /* East Asian ideograph */ - {"\x9B", 0, 0x226E58}, /* East Asian ideograph */ - {"\x99", 0, 0x226E59}, /* East Asian ideograph */ - {"\x9E", 0, 0x226E5B}, /* East Asian ideograph */ - {"\xA7", 0, 0x226E5C}, /* East Asian ideograph */ - {"\xA3", 0, 0x226E5E}, /* East Asian ideograph */ - {"\xA8", 0, 0x226E61}, /* East Asian ideograph */ - {"\xA5", 0, 0x226E62}, /* East Asian ideograph */ - {"\xAF", 0, 0x226E6F}, /* East Asian ideograph */ - {"\xB5", 0, 0x226E75}, /* East Asian ideograph */ - {"\xBE", 0, 0x226E79}, /* East Asian ideograph */ - {"\xB8", 0, 0x226E7A}, /* East Asian ideograph */ - {"\xBD", 0, 0x226E7D}, /* East Asian ideograph */ - {"\x81", 0, 0x275051}, /* East Asian ideograph */ - {"\xBB", 0, 0x276053}, /* East Asian ideograph */ - {"\xB4", 0, 0x287035}, /* East Asian ideograph */ - {"\x98", 0, 0x2D504F}, /* East Asian ideograph */ - {"\xBC", 0, 0x34682A}, /* East Asian ideograph */ - {"\x96", 0, 0x4B5052}, /* East Asian ideograph */ - {"\x94", 0, 0x4B5632}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page193 = { - marc8r_31page193_flat, 0 -}; -/* PAGE 192 */ -struct yaz_iconv_trie_flat marc8r_31page192_flat[] = { - {"\x91", 0, 0x215036}, /* East Asian ideograph */ - {"\x87", 0, 0x21503D}, /* East Asian ideograph */ - {"\x8D", 0, 0x21503E}, /* East Asian ideograph */ - {"\xA1", 0, 0x215041}, /* East Asian ideograph */ - {"\xAB", 0, 0x215042}, /* East Asian ideograph */ - {"\xAA", 0, 0x215043}, /* East Asian ideograph */ - {"\xA7", 0, 0x215044}, /* East Asian ideograph */ - {"\x9E", 0, 0x215045}, /* East Asian ideograph */ - {"\xA3", 0, 0x215046}, /* East Asian ideograph */ - {"\xBF", 0, 0x215047}, /* East Asian ideograph */ - {"\xBE", 0, 0x215048}, /* East Asian ideograph */ - {"\xB8", 0, 0x215049}, /* East Asian ideograph */ - {"\xB7", 0, 0x21504A}, /* East Asian ideograph */ - {"\xBD", 0, 0x21504B}, /* East Asian ideograph */ - {"\x86", 0, 0x226D3B}, /* East Asian ideograph */ - {"\x8F", 0, 0x226D41}, /* East Asian ideograph */ - {"\x8B", 0, 0x226D46}, /* East Asian ideograph */ - {"\x80", 0, 0x226D47}, /* East Asian ideograph */ - {"\x8C", 0, 0x226D4B}, /* East Asian ideograph */ - {"\x89", 0, 0x226D5A}, /* East Asian ideograph */ - {"\x83", 0, 0x226D5B}, /* East Asian ideograph */ - {"\x9C", 0, 0x226D5F}, /* East Asian ideograph */ - {"\xA6", 0, 0x226D61}, /* East Asian ideograph */ - {"\xA8", 0, 0x226D62}, /* East Asian ideograph */ - {"\xA0", 0, 0x226D63}, /* East Asian ideograph */ - {"\x9F", 0, 0x226D66}, /* East Asian ideograph */ - {"\xAF", 0, 0x226D68}, /* East Asian ideograph */ - {"\xB0", 0, 0x226D75}, /* East Asian ideograph */ - {"\xB5", 0, 0x226E27}, /* East Asian ideograph */ - {"\xB9", 0, 0x226E30}, /* East Asian ideograph */ - {"\xBB", 0, 0x226E34}, /* East Asian ideograph */ - {"\xB4", 0, 0x226E35}, /* East Asian ideograph */ - {"\x96", 0, 0x286E69}, /* East Asian ideograph */ - {"\x94", 0, 0x4B5036}, /* East Asian ideograph */ - {"\x92", 0, 0x4B503B}, /* East Asian ideograph */ - {"\xA7", 0, 0x4B5044}, /* East Asian ideograph (variant of EACC 215044) */ - {"\xB1", 0, 0x4C6E42}, /* East Asian ideograph */ - {"\x93", 0, 0x696449}, /* East Asian ideograph */ - {"\x97", 0, 0x69644C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page192 = { - marc8r_31page192_flat, 0 -}; -/* PAGE 191 */ -struct yaz_iconv_trie_flat marc8r_31page191_flat[] = { - {"\x87", 0, 0x21502E}, /* East Asian ideograph */ - {"\x84", 0, 0x215030}, /* East Asian ideograph */ - {"\x80", 0, 0x215033}, /* East Asian ideograph */ - {"\x86", 0, 0x215034}, /* East Asian ideograph */ - {"\x81", 0, 0x215035}, /* East Asian ideograph */ - {"\x99", 0, 0x215037}, /* East Asian ideograph */ - {"\x9B", 0, 0x215038}, /* East Asian ideograph */ - {"\xA4", 0, 0x215039}, /* East Asian ideograph */ - {"\x89", 0, 0x21503A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21503B}, /* East Asian ideograph */ - {"\xA9", 0, 0x21503C}, /* East Asian ideograph */ - {"\xBE", 0, 0x21503F}, /* East Asian ideograph */ - {"\xB7", 0, 0x215040}, /* East Asian ideograph */ - {"\x8B", 0, 0x226C58}, /* East Asian ideograph */ - {"\x8F", 0, 0x226C5A}, /* East Asian ideograph */ - {"\x90", 0, 0x226C5C}, /* East Asian ideograph */ - {"\x8C", 0, 0x226C6F}, /* East Asian ideograph */ - {"\x9D", 0, 0x226D22}, /* East Asian ideograph */ - {"\xA5", 0, 0x226D24}, /* East Asian ideograph */ - {"\xA8", 0, 0x226D29}, /* East Asian ideograph */ - {"\xB9", 0, 0x226D2E}, /* East Asian ideograph */ - {"\x94", 0, 0x226D2F}, /* East Asian ideograph */ - {"\x9F", 0, 0x226D32}, /* East Asian ideograph */ - {"\x98", 0, 0x226D35}, /* East Asian ideograph */ - {"\xAA", 0, 0x226D37}, /* East Asian ideograph (unrelated variant of EACC 3A6A7C) */ - {"\xB0", 0, 0x226D3E}, /* East Asian ideograph */ - {"\xB4", 0, 0x226D4F}, /* East Asian ideograph */ - {"\xB3", 0, 0x226D54}, /* East Asian ideograph */ - {"\xBC", 0, 0x226D5C}, /* East Asian ideograph */ - {"\x93", 0, 0x27503E}, /* East Asian ideograph */ - {"\x91", 0, 0x275046}, /* East Asian ideograph */ - {"\xAE", 0, 0x27504C}, /* East Asian ideograph */ - {"\xB1", 0, 0x275053}, /* East Asian ideograph */ - {"\xB2", 0, 0x2D3D4E}, /* East Asian ideograph */ - {"\xA0", 0, 0x2E6C26}, /* East Asian ideograph */ - {"\xA6", 0, 0x2E6C46}, /* East Asian ideograph */ - {"\x9A", 0, 0x343E38}, /* East Asian ideograph */ - {"\xAD", 0, 0x395050}, /* East Asian ideograph */ - {"\xAA", 0, 0x3A6A7C}, /* East Asian ideograph */ - {"\xB6", 0, 0x69644E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page191 = { - marc8r_31page191_flat, 0 -}; -/* PAGE 190 */ -struct yaz_iconv_trie_flat marc8r_31page190_flat[] = { - {"\xA1", 0, 0x215027}, /* East Asian ideograph */ - {"\x94", 0, 0x215028}, /* East Asian ideograph */ - {"\x95", 0, 0x215029}, /* East Asian ideograph */ - {"\x9D", 0, 0x21502A}, /* East Asian ideograph */ - {"\x8B", 0, 0x21502B}, /* East Asian ideograph */ - {"\x97", 0, 0x21502C}, /* East Asian ideograph */ - {"\x8F", 0, 0x21502D}, /* East Asian ideograph */ - {"\xAD", 0, 0x21502F}, /* East Asian ideograph */ - {"\xB1", 0, 0x215031}, /* East Asian ideograph */ - {"\xB4", 0, 0x215032}, /* East Asian ideograph */ - {"\x9A", 0, 0x216B5F}, /* East Asian ideograph */ - {"\x9C", 0, 0x226C2D}, /* East Asian ideograph */ - {"\x92", 0, 0x226C33}, /* East Asian ideograph */ - {"\x91", 0, 0x226C34}, /* East Asian ideograph */ - {"\x90", 0, 0x226C35}, /* East Asian ideograph */ - {"\xA3", 0, 0x226C38}, /* East Asian ideograph */ - {"\x8D", 0, 0x226C3A}, /* East Asian ideograph */ - {"\x85", 0, 0x226C41}, /* East Asian ideograph */ - {"\x8E", 0, 0x226C43}, /* East Asian ideograph */ - {"\x98", 0, 0x226C44}, /* East Asian ideograph */ - {"\x86", 0, 0x226C46}, /* East Asian ideograph */ - {"\x99", 0, 0x226C48}, /* East Asian ideograph */ - {"\xB2", 0, 0x226C52}, /* East Asian ideograph */ - {"\xB8", 0, 0x226C59}, /* East Asian ideograph */ - {"\xBE", 0, 0x226C60}, /* East Asian ideograph */ - {"\xAC", 0, 0x275038}, /* East Asian ideograph */ - {"\x80", 0, 0x275041}, /* East Asian ideograph */ - {"\xAB", 0, 0x275042}, /* East Asian ideograph */ - {"\xAA", 0, 0x275045}, /* East Asian ideograph */ - {"\xA9", 0, 0x275054}, /* East Asian ideograph */ - {"\xA7", 0, 0x286C58}, /* East Asian ideograph */ - {"\xA6", 0, 0x286D47}, /* East Asian ideograph */ - {"\xA8", 0, 0x286E56}, /* East Asian ideograph */ - {"\x87", 0, 0x2D3224}, /* East Asian ideograph */ - {"\xA0", 0, 0x2E3E3F}, /* East Asian ideograph */ - {"\x9F", 0, 0x4C6C46}, /* East Asian ideograph */ - {"\xA2", 0, 0x70736E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page190 = { - marc8r_31page190_flat, 0 -}; -/* PAGE 189 */ -struct yaz_iconv_trie_flat marc8r_31page189_flat[] = { - {"\x86", 0, 0x214F79}, /* East Asian ideograph */ - {"\x89", 0, 0x214F7A}, /* East Asian ideograph */ - {"\x90", 0, 0x214F7B}, /* East Asian ideograph */ - {"\x96", 0, 0x214F7C}, /* East Asian ideograph */ - {"\x92", 0, 0x214F7D}, /* East Asian ideograph */ - {"\x8B", 0, 0x214F7E}, /* East Asian ideograph */ - {"\x8D", 0, 0x215021}, /* East Asian ideograph */ - {"\x8F", 0, 0x215022}, /* East Asian ideograph */ - {"\x94", 0, 0x215023}, /* East Asian ideograph */ - {"\xA0", 0, 0x215024}, /* East Asian ideograph */ - {"\xB7", 0, 0x215025}, /* East Asian ideograph */ - {"\xB5", 0, 0x215026}, /* East Asian ideograph */ - {"\x8A", 0, 0x226B52}, /* East Asian ideograph */ - {"\x99", 0, 0x226B53}, /* East Asian ideograph */ - {"\x87", 0, 0x226B55}, /* East Asian ideograph */ - {"\x98", 0, 0x226B59}, /* East Asian ideograph */ - {"\xAC", 0, 0x226B5B}, /* East Asian ideograph */ - {"\x88", 0, 0x226B60}, /* East Asian ideograph */ - {"\x85", 0, 0x226B61}, /* East Asian ideograph */ - {"\x8C", 0, 0x226B62}, /* East Asian ideograph */ - {"\x8E", 0, 0x226B63}, /* East Asian ideograph */ - {"\xA6", 0, 0x226B68}, /* East Asian ideograph */ - {"\xA4", 0, 0x226B6C}, /* East Asian ideograph */ - {"\xA9", 0, 0x226B6E}, /* East Asian ideograph */ - {"\xAD", 0, 0x226B70}, /* East Asian ideograph */ - {"\xA2", 0, 0x226B74}, /* East Asian ideograph */ - {"\xAE", 0, 0x226B75}, /* East Asian ideograph */ - {"\xB4", 0, 0x226B76}, /* East Asian ideograph */ - {"\xB2", 0, 0x226B79}, /* East Asian ideograph */ - {"\xB8", 0, 0x226B7A}, /* East Asian ideograph */ - {"\xAF", 0, 0x226B7B}, /* East Asian ideograph */ - {"\xA7", 0, 0x226B7C}, /* East Asian ideograph */ - {"\xA5", 0, 0x226B7E}, /* East Asian ideograph */ - {"\xB1", 0, 0x226C26}, /* East Asian ideograph */ - {"\xB0", 0, 0x226C27}, /* East Asian ideograph */ - {"\xB3", 0, 0x226C29}, /* East Asian ideograph */ - {"\x91", 0, 0x27503A}, /* East Asian ideograph */ - {"\x9B", 0, 0x27503C}, /* East Asian ideograph */ - {"\xBE", 0, 0x27504B}, /* East Asian ideograph */ - {"\xB9", 0, 0x27504D}, /* East Asian ideograph */ - {"\xBE", 0, 0x275052}, /* East Asian ideograph (duplicate simplified) */ - {"\x9A", 0, 0x286D54}, /* East Asian ideograph */ - {"\x9E", 0, 0x2D4F7C}, /* East Asian ideograph */ - {"\x9D", 0, 0x2D502D}, /* East Asian ideograph */ - {"\x99", 0, 0x2E6C3E}, /* East Asian ideograph */ - {"\xBA", 0, 0x4B4F7B}, /* East Asian ideograph */ - {"\x8C", 0, 0x4C6B62}, /* East Asian ideograph (variant of EACC 226B62) */ - {"\xBB", 0, 0x707360}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page189 = { - marc8r_31page189_flat, 0 -}; -/* PAGE 188 */ -struct yaz_iconv_trie_flat marc8r_31page188_flat[] = { - {"\x86", 0, 0x214F70}, /* East Asian ideograph */ - {"\x91", 0, 0x214F71}, /* East Asian ideograph */ - {"\xA0", 0, 0x214F72}, /* East Asian ideograph */ - {"\xAC", 0, 0x214F73}, /* East Asian ideograph */ - {"\xA8", 0, 0x214F74}, /* East Asian ideograph */ - {"\x9B", 0, 0x214F75}, /* East Asian ideograph */ - {"\x9E", 0, 0x214F76}, /* East Asian ideograph */ - {"\x99", 0, 0x214F77}, /* East Asian ideograph */ - {"\xA6", 0, 0x214F78}, /* East Asian ideograph */ - {"\xB9", 0, 0x226B27}, /* East Asian ideograph */ - {"\x8F", 0, 0x226B2D}, /* East Asian ideograph */ - {"\x88", 0, 0x226B2E}, /* East Asian ideograph */ - {"\x8A", 0, 0x226B33}, /* East Asian ideograph */ - {"\xB5", 0, 0x226B35}, /* East Asian ideograph */ - {"\xA5", 0, 0x226B36}, /* East Asian ideograph */ - {"\xB8", 0, 0x226B39}, /* East Asian ideograph */ - {"\xBB", 0, 0x226B3B}, /* East Asian ideograph */ - {"\xA4", 0, 0x226B3F}, /* East Asian ideograph */ - {"\xB3", 0, 0x226B40}, /* East Asian ideograph */ - {"\xAA", 0, 0x226B42}, /* East Asian ideograph */ - {"\x98", 0, 0x226B44}, /* East Asian ideograph */ - {"\xB1", 0, 0x226B47}, /* East Asian ideograph */ - {"\xAB", 0, 0x226B4A}, /* East Asian ideograph */ - {"\xB7", 0, 0x226B4B}, /* East Asian ideograph */ - {"\x9F", 0, 0x226B4D}, /* East Asian ideograph */ - {"\x84", 0, 0x226B54}, /* East Asian ideograph (variant of EACC 2E6B54) */ - {"\x94", 0, 0x274F79}, /* East Asian ideograph */ - {"\x8B", 0, 0x275021}, /* East Asian ideograph */ - {"\xBA", 0, 0x27502B}, /* East Asian ideograph */ - {"\x83", 0, 0x275039}, /* East Asian ideograph */ - {"\xBC", 0, 0x275050}, /* East Asian ideograph */ - {"\x95", 0, 0x286B7C}, /* East Asian ideograph */ - {"\xBE", 0, 0x286E68}, /* East Asian ideograph */ - {"\x84", 0, 0x2E6B54}, /* East Asian ideograph */ - {"\xAE", 0, 0x2E6C27}, /* East Asian ideograph */ - {"\xB6", 0, 0x4B4E21}, /* East Asian ideograph */ - {"\x82", 0, 0x696373}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page188 = { - marc8r_31page188_flat, 0 -}; -/* PAGE 187 */ -struct yaz_iconv_trie_flat marc8r_31page187_flat[] = { - {"\x85", 0, 0x214F61}, /* East Asian ideograph */ - {"\x84", 0, 0x214F62}, /* East Asian ideograph */ - {"\x87", 0, 0x214F63}, /* East Asian ideograph */ - {"\x8A", 0, 0x214F64}, /* East Asian ideograph */ - {"\x8B", 0, 0x214F65}, /* East Asian ideograph */ - {"\x99", 0, 0x214F66}, /* East Asian ideograph */ - {"\xA5", 0, 0x214F67}, /* East Asian ideograph */ - {"\xA3", 0, 0x214F68}, /* East Asian ideograph */ - {"\xAD", 0, 0x214F69}, /* East Asian ideograph */ - {"\xAF", 0, 0x214F6A}, /* East Asian ideograph */ - {"\xB6", 0, 0x214F6B}, /* East Asian ideograph */ - {"\xB9", 0, 0x214F6C}, /* East Asian ideograph */ - {"\xBA", 0, 0x214F6D}, /* East Asian ideograph */ - {"\xBF", 0, 0x214F6E}, /* East Asian ideograph */ - {"\xBD", 0, 0x214F6F}, /* East Asian ideograph */ - {"\xA0", 0, 0x216032}, /* East Asian ideograph */ - {"\x9F", 0, 0x216033}, /* East Asian ideograph */ - {"\x8D", 0, 0x226A49}, /* East Asian ideograph */ - {"\x8F", 0, 0x226A4B}, /* East Asian ideograph */ - {"\x91", 0, 0x226A4F}, /* East Asian ideograph */ - {"\x93", 0, 0x226A51}, /* East Asian ideograph */ - {"\x94", 0, 0x226A52}, /* East Asian ideograph */ - {"\x95", 0, 0x226A54}, /* East Asian ideograph */ - {"\x9A", 0, 0x226A55}, /* East Asian ideograph */ - {"\xA1", 0, 0x226A5A}, /* East Asian ideograph */ - {"\xA6", 0, 0x226A5E}, /* East Asian ideograph */ - {"\xAB", 0, 0x226A66}, /* East Asian ideograph */ - {"\xB0", 0, 0x226A6B}, /* East Asian ideograph */ - {"\xB5", 0, 0x226A76}, /* East Asian ideograph */ - {"\xBE", 0, 0x226A7C}, /* East Asian ideograph */ - {"\x9E", 0, 0x274F6B}, /* East Asian ideograph */ - {"\x96", 0, 0x275957}, /* East Asian ideograph */ - {"\x9D", 0, 0x2D3032}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D3164}, /* East Asian ideograph */ - {"\x92", 0, 0x2D3932}, /* East Asian ideograph */ - {"\x88", 0, 0x2D4947}, /* East Asian ideograph */ - {"\xB8", 0, 0x2D4F6B}, /* East Asian ideograph */ - {"\xAA", 0, 0x2D5957}, /* East Asian ideograph */ - {"\x9C", 0, 0x33632B}, /* East Asian ideograph */ - {"\x83", 0, 0x4B4947}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page187 = { - marc8r_31page187_flat, 0 -}; -/* PAGE 186 */ -struct yaz_iconv_trie_flat marc8r_31page186_flat[] = { - {"\x81", 0, 0x214F52}, /* East Asian ideograph */ - {"\x84", 0, 0x214F53}, /* East Asian ideograph */ - {"\x88", 0, 0x214F54}, /* East Asian ideograph */ - {"\x92", 0, 0x214F55}, /* East Asian ideograph */ - {"\x95", 0, 0x214F56}, /* East Asian ideograph */ - {"\x98", 0, 0x214F57}, /* East Asian ideograph */ - {"\x96", 0, 0x214F58}, /* East Asian ideograph */ - {"\x97", 0, 0x214F59}, /* East Asian ideograph */ - {"\x9F", 0, 0x214F5A}, /* East Asian ideograph */ - {"\xA0", 0, 0x214F5B}, /* East Asian ideograph */ - {"\xAA", 0, 0x214F5C}, /* East Asian ideograph */ - {"\xA9", 0, 0x214F5D}, /* East Asian ideograph */ - {"\xAF", 0, 0x214F5E}, /* East Asian ideograph */ - {"\xAE", 0, 0x214F5F}, /* East Asian ideograph */ - {"\xBA", 0, 0x214F60}, /* East Asian ideograph */ - {"\x80", 0, 0x22696B}, /* East Asian ideograph */ - {"\x85", 0, 0x226970}, /* East Asian ideograph */ - {"\x86", 0, 0x226975}, /* East Asian ideograph */ - {"\x8A", 0, 0x226978}, /* East Asian ideograph */ - {"\x94", 0, 0x22697A}, /* East Asian ideograph */ - {"\xA3", 0, 0x226A28}, /* East Asian ideograph */ - {"\x9E", 0, 0x226A2B}, /* East Asian ideograph */ - {"\xA7", 0, 0x226A2C}, /* East Asian ideograph */ - {"\xA8", 0, 0x226A2E}, /* East Asian ideograph */ - {"\xAC", 0, 0x226A31}, /* East Asian ideograph */ - {"\xB3", 0, 0x226A36}, /* East Asian ideograph */ - {"\xBD", 0, 0x226A3A}, /* East Asian ideograph */ - {"\xB6", 0, 0x226A3C}, /* East Asian ideograph */ - {"\xB8", 0, 0x226A3D}, /* East Asian ideograph */ - {"\xB5", 0, 0x226A3E}, /* East Asian ideograph */ - {"\xBB", 0, 0x226A3F}, /* East Asian ideograph */ - {"\xBF", 0, 0x226A43}, /* East Asian ideograph */ - {"\x9D", 0, 0x274F5D}, /* East Asian ideograph */ - {"\xA5", 0, 0x274F60}, /* East Asian ideograph */ - {"\x8D", 0, 0x274F61}, /* East Asian ideograph */ - {"\x9C", 0, 0x274F62}, /* East Asian ideograph */ - {"\xA6", 0, 0x274F63}, /* East Asian ideograph */ - {"\x83", 0, 0x274F64}, /* East Asian ideograph */ - {"\xAD", 0, 0x286A3C}, /* East Asian ideograph */ - {"\xB0", 0, 0x2D4F5E}, /* East Asian ideograph */ - {"\x93", 0, 0x334F59}, /* East Asian ideograph */ - {"\x91", 0, 0x334F5E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page186 = { - marc8r_31page186_flat, 0 -}; -/* PAGE 185 */ -struct yaz_iconv_trie_flat marc8r_31page185_flat[] = { - {"\x80", 0, 0x214F40}, /* East Asian ideograph */ - {"\x8D", 0, 0x214F44}, /* East Asian ideograph */ - {"\x8E", 0, 0x214F45}, /* East Asian ideograph */ - {"\x8C", 0, 0x214F46}, /* East Asian ideograph */ - {"\x86", 0, 0x214F47}, /* East Asian ideograph */ - {"\x97", 0, 0x214F48}, /* East Asian ideograph */ - {"\xA1", 0, 0x214F49}, /* East Asian ideograph */ - {"\xA2", 0, 0x214F4A}, /* East Asian ideograph */ - {"\xAB", 0, 0x214F4B}, /* East Asian ideograph */ - {"\xA9", 0, 0x214F4C}, /* East Asian ideograph */ - {"\xB4", 0, 0x214F4D}, /* East Asian ideograph */ - {"\xB6", 0, 0x214F4E}, /* East Asian ideograph */ - {"\xB9", 0, 0x214F4F}, /* East Asian ideograph */ - {"\xBA", 0, 0x214F50}, /* East Asian ideograph */ - {"\xBF", 0, 0x214F51}, /* East Asian ideograph */ - {"\x88", 0, 0x226939}, /* East Asian ideograph */ - {"\x8B", 0, 0x22693D}, /* East Asian ideograph */ - {"\x87", 0, 0x22693E}, /* East Asian ideograph */ - {"\x84", 0, 0x22693F}, /* East Asian ideograph */ - {"\x9C", 0, 0x226940}, /* East Asian ideograph */ - {"\x9F", 0, 0x22694D}, /* East Asian ideograph */ - {"\xA0", 0, 0x22694F}, /* East Asian ideograph */ - {"\xAE", 0, 0x226957}, /* East Asian ideograph */ - {"\xB0", 0, 0x22695F}, /* East Asian ideograph */ - {"\xB5", 0, 0x226966}, /* East Asian ideograph */ - {"\xB8", 0, 0x226969}, /* East Asian ideograph */ - {"\x91", 0, 0x274F49}, /* East Asian ideograph */ - {"\xB7", 0, 0x274F5F}, /* East Asian ideograph */ - {"\x82", 0, 0x2D4F48}, /* East Asian ideograph */ - {"\x89", 0, 0x334F3A}, /* East Asian ideograph */ - {"\x85", 0, 0x335065}, /* East Asian ideograph */ - {"\xBD", 0, 0x395E6F}, /* East Asian ideograph */ - {"\x90", 0, 0x4B4F29}, /* East Asian ideograph */ - {"\x8F", 0, 0x4B4F4C}, /* East Asian ideograph */ - {"\xA3", 0, 0x4C695F}, /* East Asian ideograph */ - {"\x83", 0, 0x69634E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page185 = { - marc8r_31page185_flat, 0 -}; -/* PAGE 184 */ -struct yaz_iconv_trie_flat marc8r_31page184_flat[] = { - {"\x85", 0, 0x214F32}, /* East Asian ideograph */ - {"\x8D", 0, 0x214F33}, /* East Asian ideograph */ - {"\x88", 0, 0x214F34}, /* East Asian ideograph */ - {"\x8B", 0, 0x214F35}, /* East Asian ideograph */ - {"\x80", 0, 0x214F36}, /* East Asian ideograph */ - {"\x9F", 0, 0x214F37}, /* East Asian ideograph */ - {"\xA0", 0, 0x214F39}, /* East Asian ideograph */ - {"\x9A", 0, 0x214F3A}, /* East Asian ideograph */ - {"\x94", 0, 0x214F3B}, /* East Asian ideograph */ - {"\xB1", 0, 0x214F3C}, /* East Asian ideograph */ - {"\xAE", 0, 0x214F3D}, /* East Asian ideograph */ - {"\xBF", 0, 0x214F3E}, /* East Asian ideograph */ - {"\xBC", 0, 0x214F3F}, /* East Asian ideograph */ - {"\xBD", 0, 0x214F41}, /* East Asian ideograph */ - {"\xB7", 0, 0x214F42}, /* East Asian ideograph */ - {"\xBB", 0, 0x214F43}, /* East Asian ideograph */ - {"\xA5", 0, 0x223924}, /* East Asian ideograph */ - {"\x82", 0, 0x22684F}, /* East Asian ideograph */ - {"\x8A", 0, 0x226850}, /* East Asian ideograph */ - {"\x89", 0, 0x226854}, /* East Asian ideograph */ - {"\x83", 0, 0x22685C}, /* East Asian ideograph */ - {"\x8C", 0, 0x226861}, /* East Asian ideograph */ - {"\x91", 0, 0x22686B}, /* East Asian ideograph */ - {"\x98", 0, 0x22686C}, /* East Asian ideograph */ - {"\x99", 0, 0x22686F}, /* East Asian ideograph (variant of EACC 2E686F) */ - {"\x9E", 0, 0x226871}, /* East Asian ideograph */ - {"\x97", 0, 0x226876}, /* East Asian ideograph */ - {"\xAD", 0, 0x22687E}, /* East Asian ideograph */ - {"\xAC", 0, 0x226922}, /* East Asian ideograph */ - {"\xA3", 0, 0x274F46}, /* East Asian ideograph */ - {"\xB3", 0, 0x274F4C}, /* East Asian ideograph */ - {"\xBE", 0, 0x2D4F3E}, /* East Asian ideograph */ - {"\x9C", 0, 0x2E3D73}, /* East Asian ideograph */ - {"\x99", 0, 0x2E686F}, /* East Asian ideograph */ - {"\xB2", 0, 0x4B4F43}, /* East Asian ideograph */ - {"\x86", 0, 0x4C695C}, /* East Asian ideograph */ - {"\xB9", 0, 0x4C725D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page184 = { - marc8r_31page184_flat, 0 -}; -/* PAGE 183 */ -struct yaz_iconv_trie_flat marc8r_31page183_flat[] = { - {"\x80", 0, 0x214F24}, /* East Asian ideograph */ - {"\x81", 0, 0x214F25}, /* East Asian ideograph */ - {"\x89", 0, 0x214F27}, /* East Asian ideograph */ - {"\x91", 0, 0x214F28}, /* East Asian ideograph */ - {"\x8B", 0, 0x214F29}, /* East Asian ideograph */ - {"\x92", 0, 0x214F2A}, /* East Asian ideograph */ - {"\xA4", 0, 0x214F2B}, /* East Asian ideograph */ - {"\xA6", 0, 0x214F2C}, /* East Asian ideograph */ - {"\xA3", 0, 0x214F2D}, /* East Asian ideograph */ - {"\x9F", 0, 0x214F2E}, /* East Asian ideograph */ - {"\xA7", 0, 0x214F2F}, /* East Asian ideograph */ - {"\xA9", 0, 0x214F30}, /* East Asian ideograph */ - {"\xBB", 0, 0x214F31}, /* East Asian ideograph */ - {"\x8C", 0, 0x225070}, /* East Asian ideograph */ - {"\x86", 0, 0x226828}, /* East Asian ideograph */ - {"\x88", 0, 0x22682A}, /* East Asian ideograph */ - {"\x94", 0, 0x22682D}, /* East Asian ideograph */ - {"\x95", 0, 0x22682E}, /* East Asian ideograph */ - {"\x96", 0, 0x226832}, /* East Asian ideograph */ - {"\xAC", 0, 0x22683D}, /* East Asian ideograph */ - {"\xAB", 0, 0x22683E}, /* East Asian ideograph (variant of EACC 4C683E) */ - {"\xA1", 0, 0x226842}, /* East Asian ideograph */ - {"\x9D", 0, 0x226844}, /* East Asian ideograph */ - {"\xAD", 0, 0x226845}, /* East Asian ideograph */ - {"\xB8", 0, 0x226848}, /* East Asian ideograph */ - {"\xB0", 0, 0x274F3C}, /* East Asian ideograph */ - {"\x8D", 0, 0x274F3D}, /* East Asian ideograph */ - {"\xAF", 0, 0x274F44}, /* East Asian ideograph */ - {"\xBD", 0, 0x274F4A}, /* East Asian ideograph */ - {"\x8A", 0, 0x2D3C65}, /* East Asian ideograph */ - {"\x90", 0, 0x2D5265}, /* East Asian ideograph */ - {"\x8F", 0, 0x2D5267}, /* East Asian ideograph */ - {"\x98", 0, 0x4B4E67}, /* East Asian ideograph */ - {"\xB0", 0, 0x4B4F3C}, /* East Asian ideograph (variant of EACC 274F3C) */ - {"\xAB", 0, 0x4C683E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page183 = { - marc8r_31page183_flat, 0 -}; -/* PAGE 182 */ -struct yaz_iconv_trie_dir marc8r_31page182_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {210, 0, 0}, - {211, 0, 0}, - {212, 0, 0}, - {213, 0, 0}, - {214, 0, 0}, - {215, 0, 0}, - {216, 0, 0}, - {217, 0, 0}, - {218, 0, 0}, - {219, 0, 0}, - {220, 0, 0}, - {221, 0, 0}, - {222, 0, 0}, - {223, 0, 0}, - {224, 0, 0}, - {225, 0, 0}, - {208, 0, 0}, - {227, 0, 0}, - {226, 0, 0}, - {228, 0, 0}, - {229, 0, 0}, - {230, 0, 0}, - {231, 0, 0}, - {232, 0, 0}, - {233, 0, 0}, - {234, 0, 0}, - {235, 0, 0}, - {236, 0, 0}, - {237, 0, 0}, - {238, 0, 0}, - {239, 0, 0}, - {240, 0, 0}, - {241, 0, 0}, - {242, 0, 0}, - {243, 0, 0}, - {244, 0, 0}, - {245, 0, 0}, - {246, 0, 0}, - {247, 0, 0}, - {248, 0, 0}, - {249, 0, 0}, - {250, 0, 0}, - {251, 0, 0}, - {252, 0, 0}, - {253, 0, 0}, - {254, 0, 0}, - {255, 0, 0}, - {333, 0, 0}, - {257, 0, 0}, - {256, 0, 0}, - {258, 0, 0}, - {259, 0, 0}, - {260, 0, 0}, - {261, 0, 0}, - {262, 0, 0}, - {263, 0, 0}, - {264, 0, 0}, - {265, 0, 0}, - {266, 0, 0}, - {267, 0, 0}, - {268, 0, 0}, - {269, 0, 0}, - {209, 0, 0}, - {270, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page182 = { - 0, marc8r_31page182_dir -}; -/* PAGE 181 */ -struct yaz_iconv_trie_flat marc8r_31page181_flat[] = { - {"\x81", 0, 0x214E74}, /* East Asian ideograph */ - {"\x8F", 0, 0x214E76}, /* East Asian ideograph */ - {"\x8D", 0, 0x214E77}, /* East Asian ideograph */ - {"\x8E", 0, 0x214E78}, /* East Asian ideograph */ - {"\xA6", 0, 0x214E79}, /* East Asian ideograph */ - {"\xA7", 0, 0x214E7A}, /* East Asian ideograph */ - {"\xAA", 0, 0x214E7B}, /* East Asian ideograph */ - {"\xAE", 0, 0x214E7C}, /* East Asian ideograph */ - {"\xB1", 0, 0x214E7D}, /* East Asian ideograph */ - {"\xB9", 0, 0x214E7E}, /* East Asian ideograph */ - {"\xBD", 0, 0x214F21}, /* East Asian ideograph */ - {"\xBE", 0, 0x214F23}, /* East Asian ideograph */ - {"\xBF", 0, 0x214F26}, /* East Asian ideograph */ - {"\x98", 0, 0x22674A}, /* East Asian ideograph */ - {"\x8A", 0, 0x22674B}, /* East Asian ideograph */ - {"\x99", 0, 0x22674D}, /* East Asian ideograph */ - {"\x95", 0, 0x22674E}, /* East Asian ideograph */ - {"\x8B", 0, 0x22674F}, /* East Asian ideograph */ - {"\x96", 0, 0x226750}, /* East Asian ideograph */ - {"\x94", 0, 0x226754}, /* East Asian ideograph */ - {"\x93", 0, 0x226755}, /* East Asian ideograph */ - {"\x9A", 0, 0x22675C}, /* East Asian ideograph */ - {"\xA1", 0, 0x22675F}, /* East Asian ideograph */ - {"\x9B", 0, 0x226760}, /* East Asian ideograph */ - {"\xA3", 0, 0x226761}, /* East Asian ideograph */ - {"\x9D", 0, 0x226764}, /* East Asian ideograph */ - {"\xA9", 0, 0x22676E}, /* East Asian ideograph */ - {"\xAB", 0, 0x226770}, /* East Asian ideograph */ - {"\xA8", 0, 0x226771}, /* East Asian ideograph */ - {"\xB0", 0, 0x226775}, /* East Asian ideograph */ - {"\xB3", 0, 0x22677A}, /* East Asian ideograph */ - {"\xB4", 0, 0x22677B}, /* East Asian ideograph */ - {"\xB8", 0, 0x226822}, /* East Asian ideograph */ - {"\xBA", 0, 0x226823}, /* East Asian ideograph */ - {"\xBC", 0, 0x226825}, /* East Asian ideograph */ - {"\x85", 0, 0x274E7B}, /* East Asian ideograph */ - {"\xBB", 0, 0x275F4F}, /* East Asian ideograph */ - {"\x80", 0, 0x2D4F37}, /* East Asian ideograph */ - {"\xA5", 0, 0x334E73}, /* East Asian ideograph */ - {"\x84", 0, 0x454E75}, /* East Asian ideograph */ - {"\x85", 0, 0x4B4E7B}, /* East Asian ideograph (variant of EACC 274E7B) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page181 = { - marc8r_31page181_flat, 0 -}; -/* PAGE 180 */ -struct yaz_iconv_trie_flat marc8r_31page180_flat[] = { - {"\x80", 0, 0x214E60}, /* East Asian ideograph */ - {"\x81", 0, 0x214E62}, /* East Asian ideograph */ - {"\x85", 0, 0x214E63}, /* East Asian ideograph */ - {"\x89", 0, 0x214E64}, /* East Asian ideograph */ - {"\x88", 0, 0x214E65}, /* East Asian ideograph */ - {"\x87", 0, 0x214E66}, /* East Asian ideograph */ - {"\x95", 0, 0x214E67}, /* East Asian ideograph */ - {"\xA0", 0, 0x214E68}, /* East Asian ideograph */ - {"\x90", 0, 0x214E69}, /* East Asian ideograph */ - {"\x96", 0, 0x214E6A}, /* East Asian ideograph */ - {"\x9E", 0, 0x214E6B}, /* East Asian ideograph */ - {"\x9D", 0, 0x214E6C}, /* East Asian ideograph */ - {"\x9F", 0, 0x214E6D}, /* East Asian ideograph */ - {"\x9A", 0, 0x214E6E}, /* East Asian ideograph */ - {"\x97", 0, 0x214E6F}, /* East Asian ideograph */ - {"\xA5", 0, 0x214E70}, /* East Asian ideograph */ - {"\xA8", 0, 0x214E71}, /* East Asian ideograph */ - {"\xAD", 0, 0x214E72}, /* East Asian ideograph */ - {"\xBA", 0, 0x214E73}, /* East Asian ideograph */ - {"\xBF", 0, 0x214E75}, /* East Asian ideograph */ - {"\x82", 0, 0x226667}, /* East Asian ideograph */ - {"\x8A", 0, 0x22666A}, /* East Asian ideograph */ - {"\x8D", 0, 0x22666B}, /* East Asian ideograph */ - {"\x86", 0, 0x226675}, /* East Asian ideograph */ - {"\x98", 0, 0x226677}, /* East Asian ideograph */ - {"\x9B", 0, 0x226679}, /* East Asian ideograph */ - {"\x9C", 0, 0x22667A}, /* East Asian ideograph */ - {"\x8F", 0, 0x22667B}, /* East Asian ideograph */ - {"\x93", 0, 0x22667C}, /* East Asian ideograph */ - {"\x93", 0, 0x22667D}, /* East Asian ideograph (unrelated variant of EACC 22667C) */ - {"\x91", 0, 0x226721}, /* East Asian ideograph */ - {"\x94", 0, 0x226723}, /* East Asian ideograph */ - {"\xA7", 0, 0x22672A}, /* East Asian ideograph */ - {"\xAB", 0, 0x22672D}, /* East Asian ideograph */ - {"\xB2", 0, 0x226730}, /* East Asian ideograph */ - {"\xBC", 0, 0x22673E}, /* East Asian ideograph */ - {"\xB8", 0, 0x274E77}, /* East Asian ideograph */ - {"\xAF", 0, 0x274E78}, /* East Asian ideograph */ - {"\xB7", 0, 0x274E7D}, /* East Asian ideograph */ - {"\xA2", 0, 0x293032}, /* East Asian ideograph */ - {"\xA2", 0, 0x4C6775}, /* East Asian ideograph (unrelated variant of EACC 293032) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page180 = { - marc8r_31page180_flat, 0 -}; -/* PAGE 179 */ -struct yaz_iconv_trie_flat marc8r_31page179_flat[] = { - {"\x81", 0, 0x214E57}, /* East Asian ideograph */ - {"\x8E", 0, 0x214E59}, /* East Asian ideograph */ - {"\x99", 0, 0x214E5A}, /* East Asian ideograph */ - {"\xA6", 0, 0x214E5B}, /* East Asian ideograph */ - {"\xAC", 0, 0x214E5C}, /* East Asian ideograph */ - {"\xAA", 0, 0x214E5D}, /* East Asian ideograph */ - {"\xAB", 0, 0x214E5E}, /* East Asian ideograph */ - {"\xBA", 0, 0x214E5F}, /* East Asian ideograph */ - {"\xBE", 0, 0x214E61}, /* East Asian ideograph */ - {"\x85", 0, 0x22657E}, /* East Asian ideograph */ - {"\x84", 0, 0x22662B}, /* East Asian ideograph */ - {"\x92", 0, 0x22662E}, /* East Asian ideograph */ - {"\x8C", 0, 0x226632}, /* East Asian ideograph */ - {"\x93", 0, 0x226634}, /* East Asian ideograph */ - {"\x91", 0, 0x226635}, /* East Asian ideograph */ - {"\x9E", 0, 0x226643}, /* East Asian ideograph */ - {"\xA2", 0, 0x226646}, /* East Asian ideograph */ - {"\xA4", 0, 0x22664C}, /* East Asian ideograph */ - {"\xA7", 0, 0x22664D}, /* East Asian ideograph */ - {"\xA9", 0, 0x226650}, /* East Asian ideograph */ - {"\xB1", 0, 0x226655}, /* East Asian ideograph */ - {"\xB4", 0, 0x22665D}, /* East Asian ideograph */ - {"\xB6", 0, 0x226660}, /* East Asian ideograph */ - {"\xBD", 0, 0x226665}, /* East Asian ideograph */ - {"\xBF", 0, 0x226668}, /* East Asian ideograph */ - {"\xBC", 0, 0x274E7C}, /* East Asian ideograph */ - {"\xAE", 0, 0x394956}, /* East Asian ideograph */ - {"\x87", 0, 0x696325}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page179 = { - marc8r_31page179_flat, 0 -}; -/* PAGE 178 */ -struct yaz_iconv_trie_flat marc8r_31page178_flat[] = { - {"\x8B", 0, 0x214E48}, /* East Asian ideograph */ - {"\x81", 0, 0x214E4A}, /* East Asian ideograph */ - {"\x85", 0, 0x214E4B}, /* East Asian ideograph */ - {"\x95", 0, 0x214E4D}, /* East Asian ideograph */ - {"\x8A", 0, 0x214E4F}, /* East Asian ideograph */ - {"\x90", 0, 0x214E50}, /* East Asian ideograph */ - {"\xA8", 0, 0x214E51}, /* East Asian ideograph */ - {"\xAC", 0, 0x214E52}, /* East Asian ideograph */ - {"\x9A", 0, 0x214E53}, /* East Asian ideograph */ - {"\xB7", 0, 0x214E54}, /* East Asian ideograph */ - {"\xB4", 0, 0x214E55}, /* East Asian ideograph */ - {"\xBA", 0, 0x214E56}, /* East Asian ideograph (variant of EACC 4B4E56) */ - {"\xAF", 0, 0x214E58}, /* East Asian ideograph */ - {"\x8C", 0, 0x226555}, /* East Asian ideograph */ - {"\x89", 0, 0x226556}, /* East Asian ideograph */ - {"\x91", 0, 0x226558}, /* East Asian ideograph */ - {"\x98", 0, 0x22655A}, /* East Asian ideograph */ - {"\x88", 0, 0x22655E}, /* East Asian ideograph */ - {"\x94", 0, 0x226560}, /* East Asian ideograph */ - {"\x9F", 0, 0x226568}, /* East Asian ideograph */ - {"\xA7", 0, 0x22656A}, /* East Asian ideograph */ - {"\x9B", 0, 0x22656E}, /* East Asian ideograph */ - {"\xA1", 0, 0x22656F}, /* East Asian ideograph */ - {"\xA0", 0, 0x226573}, /* East Asian ideograph */ - {"\xAE", 0, 0x226576}, /* East Asian ideograph */ - {"\xA3", 0, 0x226577}, /* East Asian ideograph */ - {"\xB2", 0, 0x226579}, /* East Asian ideograph */ - {"\xB9", 0, 0x226621}, /* East Asian ideograph */ - {"\xBD", 0, 0x226622}, /* East Asian ideograph */ - {"\xBE", 0, 0x226627}, /* East Asian ideograph */ - {"\xBB", 0, 0x226629}, /* East Asian ideograph */ - {"\x92", 0, 0x2D5F35}, /* East Asian ideograph */ - {"\x86", 0, 0x4B4846}, /* East Asian ideograph */ - {"\xBA", 0, 0x4B4E56}, /* East Asian ideograph */ - {"\x99", 0, 0x4C6564}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page178 = { - marc8r_31page178_flat, 0 -}; -/* PAGE 177 */ -struct yaz_iconv_trie_flat marc8r_31page177_flat[] = { - {"\xB0", 0, 0x214E3C}, /* East Asian ideograph */ - {"\x97", 0, 0x214E3D}, /* East Asian ideograph */ - {"\x8E", 0, 0x214E3E}, /* East Asian ideograph */ - {"\x98", 0, 0x214E3F}, /* East Asian ideograph */ - {"\x89", 0, 0x214E40}, /* East Asian ideograph */ - {"\x91", 0, 0x214E41}, /* East Asian ideograph */ - {"\x8C", 0, 0x214E43}, /* East Asian ideograph */ - {"\xA7", 0, 0x214E44}, /* East Asian ideograph */ - {"\xA9", 0, 0x214E45}, /* East Asian ideograph */ - {"\x9F", 0, 0x214E46}, /* East Asian ideograph */ - {"\xB3", 0, 0x214E47}, /* East Asian ideograph */ - {"\xBA", 0, 0x214E49}, /* East Asian ideograph */ - {"\xBC", 0, 0x214E4C}, /* East Asian ideograph */ - {"\xBE", 0, 0x214E4E}, /* East Asian ideograph */ - {"\x86", 0, 0x226469}, /* East Asian ideograph */ - {"\x9A", 0, 0x22646B}, /* East Asian ideograph */ - {"\x87", 0, 0x22646D}, /* East Asian ideograph */ - {"\x94", 0, 0x226470}, /* East Asian ideograph */ - {"\x8F", 0, 0x226476}, /* East Asian ideograph */ - {"\x99", 0, 0x22647E}, /* East Asian ideograph */ - {"\x93", 0, 0x226529}, /* East Asian ideograph */ - {"\x92", 0, 0x22652C}, /* East Asian ideograph */ - {"\x96", 0, 0x22652D}, /* East Asian ideograph */ - {"\xB2", 0, 0x22652F}, /* East Asian ideograph */ - {"\xA1", 0, 0x226531}, /* East Asian ideograph */ - {"\xB6", 0, 0x226532}, /* East Asian ideograph */ - {"\xB7", 0, 0x226539}, /* East Asian ideograph */ - {"\xA4", 0, 0x22653B}, /* East Asian ideograph */ - {"\xB4", 0, 0x22653E}, /* East Asian ideograph */ - {"\xAD", 0, 0x226540}, /* East Asian ideograph */ - {"\xA3", 0, 0x226541}, /* East Asian ideograph */ - {"\x9E", 0, 0x226543}, /* East Asian ideograph */ - {"\xA8", 0, 0x226544}, /* East Asian ideograph */ - {"\xAB", 0, 0x226548}, /* East Asian ideograph */ - {"\xBB", 0, 0x22654E}, /* East Asian ideograph */ - {"\x8D", 0, 0x274E5A}, /* East Asian ideograph */ - {"\x9B", 0, 0x28656A}, /* East Asian ideograph */ - {"\x9C", 0, 0x286577}, /* East Asian ideograph */ - {"\xA5", 0, 0x2D3F76}, /* East Asian ideograph */ - {"\xAF", 0, 0x2D4B5B}, /* East Asian ideograph */ - {"\xAA", 0, 0x2D4E33}, /* East Asian ideograph */ - {"\xB1", 0, 0x2D6252}, /* East Asian ideograph */ - {"\x95", 0, 0x333C21}, /* East Asian ideograph */ - {"\x81", 0, 0x3F4472}, /* East Asian ideograph */ - {"\x8C", 0, 0x454E43}, /* East Asian ideograph (variant of EACC 214E43) */ - {"\xB9", 0, 0x4C6565}, /* East Asian ideograph */ - {"\xB5", 0, 0x696273}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page177 = { - marc8r_31page177_flat, 0 -}; -/* PAGE 176 */ -struct yaz_iconv_trie_flat marc8r_31page176_flat[] = { - {"\xAB", 0, 0x214E36}, /* East Asian ideograph */ - {"\x8F", 0, 0x214E37}, /* East Asian ideograph */ - {"\x83", 0, 0x214E38}, /* East Asian ideograph */ - {"\xAC", 0, 0x214E39}, /* East Asian ideograph */ - {"\x9D", 0, 0x214E3A}, /* East Asian ideograph */ - {"\xAF", 0, 0x214E3B}, /* East Asian ideograph */ - {"\xBC", 0, 0x214E42}, /* East Asian ideograph */ - {"\x8D", 0, 0x226444}, /* East Asian ideograph */ - {"\x88", 0, 0x226448}, /* East Asian ideograph */ - {"\x93", 0, 0x226449}, /* East Asian ideograph */ - {"\x94", 0, 0x22644A}, /* East Asian ideograph */ - {"\x85", 0, 0x22644B}, /* East Asian ideograph */ - {"\x92", 0, 0x22644C}, /* East Asian ideograph */ - {"\x90", 0, 0x22644E}, /* East Asian ideograph */ - {"\x98", 0, 0x22644F}, /* East Asian ideograph */ - {"\x87", 0, 0x226452}, /* East Asian ideograph */ - {"\x8C", 0, 0x226456}, /* East Asian ideograph */ - {"\xA8", 0, 0x22645A}, /* East Asian ideograph */ - {"\xAD", 0, 0x22645B}, /* East Asian ideograph */ - {"\xA4", 0, 0x226460}, /* East Asian ideograph */ - {"\x9C", 0, 0x226461}, /* East Asian ideograph */ - {"\xB6", 0, 0x226464}, /* East Asian ideograph */ - {"\xAA", 0, 0x226466}, /* East Asian ideograph */ - {"\xBF", 0, 0x22646C}, /* East Asian ideograph */ - {"\x95", 0, 0x274E45}, /* East Asian ideograph */ - {"\xAE", 0, 0x274E49}, /* East Asian ideograph */ - {"\x80", 0, 0x274E59}, /* East Asian ideograph */ - {"\xB7", 0, 0x276252}, /* East Asian ideograph */ - {"\x96", 0, 0x286460}, /* East Asian ideograph */ - {"\x97", 0, 0x286622}, /* East Asian ideograph */ - {"\x8E", 0, 0x334E37}, /* East Asian ideograph */ - {"\x8E", 0, 0x3F377B}, /* East Asian ideograph (Version J extension) */ - {"\xB2", 0, 0x694823}, /* East Asian ideograph */ - {"\xB4", 0, 0x69626D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page176 = { - marc8r_31page176_flat, 0 -}; -/* PAGE 175 */ -struct yaz_iconv_trie_flat marc8r_31page175_flat[] = { - {"\x82", 0, 0x214E2A}, /* East Asian ideograph */ - {"\x8D", 0, 0x214E2B}, /* East Asian ideograph */ - {"\x8C", 0, 0x214E2C}, /* East Asian ideograph */ - {"\xB0", 0, 0x214E2E}, /* East Asian ideograph */ - {"\x9D", 0, 0x214E2F}, /* East Asian ideograph */ - {"\xB4", 0, 0x214E30}, /* East Asian ideograph */ - {"\xB8", 0, 0x214E31}, /* East Asian ideograph */ - {"\xB7", 0, 0x214E32}, /* East Asian ideograph */ - {"\xA7", 0, 0x214E33}, /* East Asian ideograph */ - {"\xAD", 0, 0x214E34}, /* East Asian ideograph */ - {"\xA5", 0, 0x214E35}, /* East Asian ideograph */ - {"\x89", 0, 0x226370}, /* East Asian ideograph */ - {"\x86", 0, 0x226371}, /* East Asian ideograph */ - {"\x99", 0, 0x226373}, /* East Asian ideograph */ - {"\x91", 0, 0x226374}, /* East Asian ideograph */ - {"\x92", 0, 0x226378}, /* East Asian ideograph */ - {"\x9B", 0, 0x226424}, /* East Asian ideograph */ - {"\xAC", 0, 0x226426}, /* East Asian ideograph */ - {"\xA3", 0, 0x226427}, /* East Asian ideograph */ - {"\xAB", 0, 0x226428}, /* East Asian ideograph */ - {"\xA9", 0, 0x22642A}, /* East Asian ideograph */ - {"\xA2", 0, 0x22642D}, /* East Asian ideograph */ - {"\xB5", 0, 0x226431}, /* East Asian ideograph */ - {"\xB3", 0, 0x226432}, /* East Asian ideograph */ - {"\xAE", 0, 0x226433}, /* East Asian ideograph */ - {"\xA0", 0, 0x226435}, /* East Asian ideograph */ - {"\xBD", 0, 0x226438}, /* East Asian ideograph */ - {"\x9F", 0, 0x22643B}, /* East Asian ideograph */ - {"\xB1", 0, 0x22643D}, /* East Asian ideograph */ - {"\xA6", 0, 0x226450}, /* East Asian ideograph */ - {"\x9A", 0, 0x274E3B}, /* East Asian ideograph */ - {"\x95", 0, 0x274E3E}, /* East Asian ideograph */ - {"\x81", 0, 0x274E4C}, /* East Asian ideograph */ - {"\x96", 0, 0x274E53}, /* East Asian ideograph */ - {"\xBA", 0, 0x274E5D}, /* East Asian ideograph */ - {"\xBE", 0, 0x274E5E}, /* East Asian ideograph */ - {"\x97", 0, 0x28645A}, /* East Asian ideograph */ - {"\x80", 0, 0x286540}, /* East Asian ideograph */ - {"\xBB", 0, 0x286655}, /* East Asian ideograph */ - {"\xB2", 0, 0x3F4956}, /* East Asian ideograph */ - {"\x94", 0, 0x4B4E37}, /* East Asian ideograph */ - {"\xBF", 0, 0x4B4E5B}, /* East Asian ideograph */ - {"\xB9", 0, 0x4C6376}, /* East Asian ideograph */ - {"\x98", 0, 0x706D3B}, /* East Asian ideograph */ - {"\x9C", 0, 0x706D3F}, /* East Asian ideograph */ - {"\xBC", 0, 0x706D45}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page175 = { - marc8r_31page175_flat, 0 -}; -/* PAGE 174 */ -struct yaz_iconv_trie_flat marc8r_31page174_flat[] = { - {"\x93", 0, 0x214D7A}, /* East Asian ideograph */ - {"\x97", 0, 0x214D7B}, /* East Asian ideograph */ - {"\x9A", 0, 0x214D7C}, /* East Asian ideograph */ - {"\x9B", 0, 0x214D7D}, /* East Asian ideograph */ - {"\x9C", 0, 0x214D7E}, /* East Asian ideograph */ - {"\xA2", 0, 0x214E21}, /* East Asian ideograph */ - {"\xA3", 0, 0x214E22}, /* East Asian ideograph */ - {"\xA5", 0, 0x214E23}, /* East Asian ideograph */ - {"\xA9", 0, 0x214E24}, /* East Asian ideograph */ - {"\xAD", 0, 0x214E25}, /* East Asian ideograph */ - {"\xAE", 0, 0x214E26}, /* East Asian ideograph */ - {"\xAF", 0, 0x214E27}, /* East Asian ideograph */ - {"\xB3", 0, 0x214E28}, /* East Asian ideograph */ - {"\xBD", 0, 0x214E29}, /* East Asian ideograph */ - {"\x8D", 0, 0x226335}, /* East Asian ideograph */ - {"\x91", 0, 0x22633A}, /* East Asian ideograph */ - {"\x9E", 0, 0x226345}, /* East Asian ideograph */ - {"\x9F", 0, 0x226346}, /* East Asian ideograph */ - {"\xA7", 0, 0x22634F}, /* East Asian ideograph */ - {"\xA6", 0, 0x226352}, /* East Asian ideograph */ - {"\xAC", 0, 0x226355}, /* East Asian ideograph */ - {"\xB0", 0, 0x226359}, /* East Asian ideograph */ - {"\xB1", 0, 0x22635A}, /* East Asian ideograph */ - {"\xB4", 0, 0x22635C}, /* East Asian ideograph */ - {"\xBC", 0, 0x226360}, /* East Asian ideograph */ - {"\xB8", 0, 0x226367}, /* East Asian ideograph */ - {"\xBB", 0, 0x226368}, /* East Asian ideograph */ - {"\xAB", 0, 0x274E27}, /* East Asian ideograph */ - {"\xB6", 0, 0x274E58}, /* East Asian ideograph */ - {"\xBF", 0, 0x274E5B}, /* East Asian ideograph */ - {"\xBE", 0, 0x274E5C}, /* East Asian ideograph */ - {"\x81", 0, 0x2E625F}, /* East Asian ideograph */ - {"\x97", 0, 0x4B4D7B}, /* East Asian ideograph (variant of EACC 214D7B) */ - {"\x87", 0, 0x4B5564}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page174 = { - marc8r_31page174_flat, 0 -}; -/* PAGE 173 */ -struct yaz_iconv_trie_flat marc8r_31page173_flat[] = { - {"\x84", 0, 0x214D66}, /* East Asian ideograph */ - {"\x87", 0, 0x214D68}, /* East Asian ideograph */ - {"\x8E", 0, 0x214D69}, /* East Asian ideograph */ - {"\x8C", 0, 0x214D6A}, /* East Asian ideograph */ - {"\x91", 0, 0x214D6B}, /* East Asian ideograph */ - {"\x9F", 0, 0x214D6C}, /* East Asian ideograph */ - {"\x9E", 0, 0x214D6D}, /* East Asian ideograph */ - {"\xA0", 0, 0x214D6E}, /* East Asian ideograph */ - {"\xA5", 0, 0x214D6F}, /* East Asian ideograph */ - {"\xB3", 0, 0x214D70}, /* East Asian ideograph */ - {"\xAA", 0, 0x214D71}, /* East Asian ideograph */ - {"\xB0", 0, 0x214D72}, /* East Asian ideograph */ - {"\xAD", 0, 0x214D73}, /* East Asian ideograph */ - {"\xAC", 0, 0x214D74}, /* East Asian ideograph */ - {"\xA7", 0, 0x214D75}, /* East Asian ideograph */ - {"\xBD", 0, 0x214D76}, /* East Asian ideograph */ - {"\xBF", 0, 0x214D77}, /* East Asian ideograph */ - {"\xBB", 0, 0x214D78}, /* East Asian ideograph */ - {"\x80", 0, 0x226252}, /* East Asian ideograph */ - {"\x85", 0, 0x22625F}, /* East Asian ideograph */ - {"\x8B", 0, 0x226266}, /* East Asian ideograph (variant of EACC 4C6266) */ - {"\x8D", 0, 0x22626A}, /* East Asian ideograph */ - {"\x98", 0, 0x226272}, /* East Asian ideograph */ - {"\x96", 0, 0x226273}, /* East Asian ideograph */ - {"\xA2", 0, 0x226275}, /* East Asian ideograph */ - {"\x99", 0, 0x226276}, /* East Asian ideograph */ - {"\xB5", 0, 0x22627A}, /* East Asian ideograph */ - {"\xB7", 0, 0x22627D}, /* East Asian ideograph */ - {"\xB6", 0, 0x226323}, /* East Asian ideograph */ - {"\xBE", 0, 0x226329}, /* East Asian ideograph */ - {"\xB9", 0, 0x22632B}, /* East Asian ideograph */ - {"\xBC", 0, 0x22632C}, /* East Asian ideograph */ - {"\xA9", 0, 0x274D7C}, /* East Asian ideograph */ - {"\x92", 0, 0x2D4D6D}, /* East Asian ideograph */ - {"\x8B", 0, 0x4C6266}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page173 = { - marc8r_31page173_flat, 0 -}; -/* PAGE 172 */ -struct yaz_iconv_trie_flat marc8r_31page172_flat[] = { - {"\x8F", 0, 0x214D57}, /* East Asian ideograph */ - {"\xAB", 0, 0x214D58}, /* East Asian ideograph */ - {"\x9B", 0, 0x214D59}, /* East Asian ideograph */ - {"\xAA", 0, 0x214D5A}, /* East Asian ideograph */ - {"\xA6", 0, 0x214D5B}, /* East Asian ideograph */ - {"\xB9", 0, 0x214D5C}, /* East Asian ideograph */ - {"\x9E", 0, 0x214D5D}, /* East Asian ideograph */ - {"\xA3", 0, 0x214D5E}, /* East Asian ideograph */ - {"\x9C", 0, 0x214D5F}, /* East Asian ideograph */ - {"\xAC", 0, 0x214D60}, /* East Asian ideograph */ - {"\xA8", 0, 0x214D61}, /* East Asian ideograph */ - {"\xA5", 0, 0x214D62}, /* East Asian ideograph */ - {"\xBD", 0, 0x214D63}, /* East Asian ideograph */ - {"\xB1", 0, 0x214D64}, /* East Asian ideograph */ - {"\xBF", 0, 0x214D65}, /* East Asian ideograph */ - {"\xA1", 0, 0x214D67}, /* East Asian ideograph */ - {"\x80", 0, 0x226174}, /* East Asian ideograph */ - {"\x87", 0, 0x22622D}, /* East Asian ideograph */ - {"\x85", 0, 0x226231}, /* East Asian ideograph */ - {"\x8D", 0, 0x226232}, /* East Asian ideograph */ - {"\x8A", 0, 0x226233}, /* East Asian ideograph */ - {"\x83", 0, 0x226235}, /* East Asian ideograph */ - {"\x8E", 0, 0x226237}, /* East Asian ideograph */ - {"\x9F", 0, 0x22623A}, /* East Asian ideograph */ - {"\xA0", 0, 0x22623D}, /* East Asian ideograph */ - {"\x92", 0, 0x22623E}, /* East Asian ideograph */ - {"\x98", 0, 0x226242}, /* East Asian ideograph */ - {"\x96", 0, 0x226244}, /* East Asian ideograph */ - {"\x9A", 0, 0x226245}, /* East Asian ideograph */ - {"\xA2", 0, 0x22624F}, /* East Asian ideograph */ - {"\xAF", 0, 0x226256}, /* East Asian ideograph */ - {"\xBE", 0, 0x22625D}, /* East Asian ideograph */ - {"\xBA", 0, 0x226260}, /* East Asian ideograph */ - {"\x90", 0, 0x274D5D}, /* East Asian ideograph */ - {"\x91", 0, 0x28632C}, /* East Asian ideograph */ - {"\x81", 0, 0x2D4D5F}, /* East Asian ideograph */ - {"\x9B", 0, 0x4B4D59}, /* East Asian ideograph (variant of EACC 214D59) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page172 = { - marc8r_31page172_flat, 0 -}; -/* PAGE 171 */ -struct yaz_iconv_trie_flat marc8r_31page171_flat[] = { - {"\x89", 0, 0x214D46}, /* East Asian ideograph */ - {"\x81", 0, 0x214D49}, /* East Asian ideograph */ - {"\x8B", 0, 0x214D4A}, /* East Asian ideograph */ - {"\xA9", 0, 0x214D4D}, /* East Asian ideograph */ - {"\xA0", 0, 0x214D4E}, /* East Asian ideograph */ - {"\x9E", 0, 0x214D4F}, /* East Asian ideograph */ - {"\xA8", 0, 0x214D50}, /* East Asian ideograph */ - {"\xB7", 0, 0x214D51}, /* East Asian ideograph */ - {"\xBC", 0, 0x214D52}, /* East Asian ideograph */ - {"\xB6", 0, 0x214D53}, /* East Asian ideograph */ - {"\xB8", 0, 0x214D54}, /* East Asian ideograph */ - {"\xBA", 0, 0x214D55}, /* East Asian ideograph */ - {"\xBE", 0, 0x214D56}, /* East Asian ideograph */ - {"\x84", 0, 0x22614B}, /* East Asian ideograph */ - {"\x88", 0, 0x22614F}, /* East Asian ideograph */ - {"\x87", 0, 0x226150}, /* East Asian ideograph */ - {"\x8A", 0, 0x226154}, /* East Asian ideograph */ - {"\xAB", 0, 0x22615E}, /* East Asian ideograph */ - {"\x8E", 0, 0x226160}, /* East Asian ideograph */ - {"\x9B", 0, 0x226162}, /* East Asian ideograph */ - {"\xA4", 0, 0x226163}, /* East Asian ideograph */ - {"\xA2", 0, 0x22616C}, /* East Asian ideograph */ - {"\x9A", 0, 0x22616D}, /* East Asian ideograph */ - {"\xA1", 0, 0x22616F}, /* East Asian ideograph */ - {"\xB9", 0, 0x226175}, /* East Asian ideograph */ - {"\xAF", 0, 0x226176}, /* East Asian ideograph */ - {"\xB1", 0, 0x226177}, /* East Asian ideograph */ - {"\xA5", 0, 0x226222}, /* East Asian ideograph */ - {"\xB5", 0, 0x226225}, /* East Asian ideograph */ - {"\xB4", 0, 0x226226}, /* East Asian ideograph */ - {"\xA6", 0, 0x286222}, /* East Asian ideograph */ - {"\x8D", 0, 0x286272}, /* East Asian ideograph */ - {"\x9F", 0, 0x2D4D4F}, /* East Asian ideograph */ - {"\x99", 0, 0x2D4D71}, /* East Asian ideograph */ - {"\xAD", 0, 0x2E624F}, /* East Asian ideograph */ - {"\x98", 0, 0x333F24}, /* East Asian ideograph */ - {"\x8C", 0, 0x4B5164}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page171 = { - marc8r_31page171_flat, 0 -}; -/* PAGE 170 */ -struct yaz_iconv_trie_flat marc8r_31page170_flat[] = { - {"\x82", 0, 0x214D2F}, /* East Asian ideograph */ - {"\x88", 0, 0x214D31}, /* East Asian ideograph */ - {"\x86", 0, 0x214D32}, /* East Asian ideograph */ - {"\x8A", 0, 0x214D33}, /* East Asian ideograph */ - {"\x8D", 0, 0x214D34}, /* East Asian ideograph */ - {"\x8E", 0, 0x214D35}, /* East Asian ideograph */ - {"\x94", 0, 0x214D36}, /* East Asian ideograph */ - {"\x92", 0, 0x214D37}, /* East Asian ideograph */ - {"\x9C", 0, 0x214D38}, /* East Asian ideograph */ - {"\x9B", 0, 0x214D39}, /* East Asian ideograph */ - {"\x9E", 0, 0x214D3A}, /* East Asian ideograph */ - {"\x9F", 0, 0x214D3B}, /* East Asian ideograph */ - {"\xA1", 0, 0x214D3C}, /* East Asian ideograph */ - {"\xA3", 0, 0x214D3D}, /* East Asian ideograph */ - {"\xA4", 0, 0x214D3E}, /* East Asian ideograph */ - {"\xA7", 0, 0x214D3F}, /* East Asian ideograph */ - {"\xA5", 0, 0x214D40}, /* East Asian ideograph */ - {"\xAA", 0, 0x214D41}, /* East Asian ideograph */ - {"\xAE", 0, 0x214D42}, /* East Asian ideograph */ - {"\xAF", 0, 0x214D43}, /* East Asian ideograph */ - {"\xB2", 0, 0x214D44}, /* East Asian ideograph */ - {"\xB4", 0, 0x214D45}, /* East Asian ideograph */ - {"\xB9", 0, 0x214D47}, /* East Asian ideograph */ - {"\xB8", 0, 0x214D48}, /* East Asian ideograph */ - {"\xBC", 0, 0x214D4B}, /* East Asian ideograph */ - {"\xBE", 0, 0x214D4C}, /* East Asian ideograph */ - {"\x8B", 0, 0x226123}, /* East Asian ideograph */ - {"\x8C", 0, 0x226126}, /* East Asian ideograph */ - {"\xA6", 0, 0x22613B}, /* East Asian ideograph */ - {"\xA9", 0, 0x22613C}, /* East Asian ideograph */ - {"\xAC", 0, 0x226140}, /* East Asian ideograph */ - {"\xAD", 0, 0x226144}, /* East Asian ideograph */ - {"\xB1", 0, 0x226148}, /* East Asian ideograph */ - {"\xB7", 0, 0x226153}, /* East Asian ideograph */ - {"\xBB", 0, 0x226159}, /* East Asian ideograph */ - {"\x8F", 0, 0x274D3A}, /* East Asian ideograph */ - {"\x91", 0, 0x274D3D}, /* East Asian ideograph */ - {"\x98", 0, 0x274D3E}, /* East Asian ideograph */ - {"\x90", 0, 0x276251}, /* East Asian ideograph */ - {"\x87", 0, 0x2D4D34}, /* East Asian ideograph */ - {"\x97", 0, 0x2D4D38}, /* East Asian ideograph */ - {"\x96", 0, 0x2D5561}, /* East Asian ideograph */ - {"\x83", 0, 0x334425}, /* East Asian ideograph */ - {"\x85", 0, 0x334674}, /* East Asian ideograph */ - {"\xB4", 0, 0x4B4D45}, /* East Asian ideograph (variant of EACC 214D45) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page170 = { - marc8r_31page170_flat, 0 -}; -/* PAGE 169 */ -struct yaz_iconv_trie_flat marc8r_31page169_flat[] = { - {"\x82", 0, 0x214D21}, /* East Asian ideograph */ - {"\x84", 0, 0x214D22}, /* East Asian ideograph */ - {"\x87", 0, 0x214D23}, /* East Asian ideograph */ - {"\x86", 0, 0x214D24}, /* East Asian ideograph */ - {"\x8E", 0, 0x214D26}, /* East Asian ideograph */ - {"\x96", 0, 0x214D27}, /* East Asian ideograph */ - {"\x93", 0, 0x214D28}, /* East Asian ideograph */ - {"\x9A", 0, 0x214D29}, /* East Asian ideograph */ - {"\xAE", 0, 0x214D2A}, /* East Asian ideograph */ - {"\xB0", 0, 0x214D2B}, /* East Asian ideograph */ - {"\xB4", 0, 0x214D2C}, /* East Asian ideograph */ - {"\xBA", 0, 0x214D2D}, /* East Asian ideograph */ - {"\xBF", 0, 0x214D2E}, /* East Asian ideograph */ - {"\x80", 0, 0x226048}, /* East Asian ideograph */ - {"\x8B", 0, 0x22604A}, /* East Asian ideograph */ - {"\x95", 0, 0x226052}, /* East Asian ideograph */ - {"\x99", 0, 0x226059}, /* East Asian ideograph */ - {"\x9C", 0, 0x22605D}, /* East Asian ideograph */ - {"\x9D", 0, 0x22605F}, /* East Asian ideograph */ - {"\xA4", 0, 0x226065}, /* East Asian ideograph */ - {"\xA5", 0, 0x226066}, /* East Asian ideograph */ - {"\xA6", 0, 0x226067}, /* East Asian ideograph */ - {"\xAA", 0, 0x22606A}, /* East Asian ideograph */ - {"\xAD", 0, 0x22606D}, /* East Asian ideograph */ - {"\xB8", 0, 0x226074}, /* East Asian ideograph */ - {"\xBD", 0, 0x226077}, /* East Asian ideograph */ - {"\x91", 0, 0x274D29}, /* East Asian ideograph */ - {"\xB1", 0, 0x274D2D}, /* East Asian ideograph */ - {"\x83", 0, 0x275966}, /* East Asian ideograph */ - {"\x81", 0, 0x2D4D21}, /* East Asian ideograph */ - {"\xB7", 0, 0x2D6275}, /* East Asian ideograph */ - {"\x90", 0, 0x2E604A}, /* East Asian ideograph */ - {"\xA1", 0, 0x2E6060}, /* East Asian ideograph */ - {"\xBC", 0, 0x336275}, /* East Asian ideograph */ - {"\x88", 0, 0x45462B}, /* East Asian ideograph */ - {"\xB2", 0, 0x466074}, /* East Asian ideograph */ - {"\xB9", 0, 0x4C6074}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page169 = { - marc8r_31page169_flat, 0 -}; -/* PAGE 168 */ -struct yaz_iconv_trie_flat marc8r_31page168_flat[] = { - {"\x86", 0, 0x214C6D}, /* East Asian ideograph */ - {"\x82", 0, 0x214C6E}, /* East Asian ideograph */ - {"\x8C", 0, 0x214C6F}, /* East Asian ideograph */ - {"\x96", 0, 0x214C70}, /* East Asian ideograph */ - {"\x98", 0, 0x214C71}, /* East Asian ideograph */ - {"\xA2", 0, 0x214C73}, /* East Asian ideograph */ - {"\xA5", 0, 0x214C74}, /* East Asian ideograph */ - {"\xA9", 0, 0x214C75}, /* East Asian ideograph */ - {"\xAE", 0, 0x214C76}, /* East Asian ideograph */ - {"\xAC", 0, 0x214C77}, /* East Asian ideograph */ - {"\xB1", 0, 0x214C78}, /* East Asian ideograph */ - {"\xB2", 0, 0x214C79}, /* East Asian ideograph (variant of EACC 4B4C79) */ - {"\xB8", 0, 0x214C7A}, /* East Asian ideograph */ - {"\xBC", 0, 0x214C7B}, /* East Asian ideograph */ - {"\xBB", 0, 0x214C7C}, /* East Asian ideograph */ - {"\xBD", 0, 0x214C7D}, /* East Asian ideograph */ - {"\xBE", 0, 0x214C7E}, /* East Asian ideograph */ - {"\x88", 0, 0x225F67}, /* East Asian ideograph */ - {"\x8E", 0, 0x225F68}, /* East Asian ideograph */ - {"\x87", 0, 0x225F69}, /* East Asian ideograph */ - {"\x83", 0, 0x225F6A}, /* East Asian ideograph */ - {"\x8D", 0, 0x225F6E}, /* East Asian ideograph */ - {"\x89", 0, 0x225F6F}, /* East Asian ideograph */ - {"\x94", 0, 0x225F75}, /* East Asian ideograph */ - {"\x9C", 0, 0x225F7A}, /* East Asian ideograph */ - {"\x97", 0, 0x225F7B}, /* East Asian ideograph */ - {"\xA4", 0, 0x226022}, /* East Asian ideograph */ - {"\x99", 0, 0x226024}, /* East Asian ideograph */ - {"\x9F", 0, 0x22602B}, /* East Asian ideograph */ - {"\xA7", 0, 0x226032}, /* East Asian ideograph */ - {"\xAA", 0, 0x226035}, /* East Asian ideograph */ - {"\xAD", 0, 0x226037}, /* East Asian ideograph */ - {"\xAF", 0, 0x226038}, /* East Asian ideograph */ - {"\xB0", 0, 0x22603A}, /* East Asian ideograph */ - {"\xB6", 0, 0x226040}, /* East Asian ideograph */ - {"\xB7", 0, 0x226041}, /* East Asian ideograph */ - {"\x9E", 0, 0x274C75}, /* East Asian ideograph */ - {"\xA3", 0, 0x274C77}, /* East Asian ideograph */ - {"\xAB", 0, 0x274C79}, /* East Asian ideograph */ - {"\xA1", 0, 0x2D4C5D}, /* East Asian ideograph */ - {"\x92", 0, 0x333E7D}, /* East Asian ideograph */ - {"\xBA", 0, 0x334C7B}, /* East Asian ideograph */ - {"\xB2", 0, 0x4B4C79}, /* East Asian ideograph */ - {"\xA8", 0, 0x4B5F62}, /* East Asian ideograph */ - {"\x80", 0, 0x4C5F58}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page168 = { - marc8r_31page168_flat, 0 -}; -/* PAGE 167 */ -struct yaz_iconv_trie_flat marc8r_31page167_flat[] = { - {"\x81", 0, 0x214C58}, /* East Asian ideograph */ - {"\x80", 0, 0x214C59}, /* East Asian ideograph */ - {"\x8D", 0, 0x214C60}, /* East Asian ideograph */ - {"\xA7", 0, 0x214C61}, /* East Asian ideograph */ - {"\x93", 0, 0x214C62}, /* East Asian ideograph */ - {"\x8B", 0, 0x214C63}, /* East Asian ideograph */ - {"\xA0", 0, 0x214C65}, /* East Asian ideograph */ - {"\xA9", 0, 0x214C66}, /* East Asian ideograph */ - {"\x9F", 0, 0x214C67}, /* East Asian ideograph */ - {"\xA4", 0, 0x214C68}, /* East Asian ideograph */ - {"\xA6", 0, 0x214C69}, /* East Asian ideograph */ - {"\xA1", 0, 0x214C6A}, /* East Asian ideograph */ - {"\xB4", 0, 0x214C6B}, /* East Asian ideograph */ - {"\xB8", 0, 0x214C6C}, /* East Asian ideograph */ - {"\x82", 0, 0x225E7A}, /* East Asian ideograph */ - {"\x83", 0, 0x225E7E}, /* East Asian ideograph */ - {"\x96", 0, 0x225F29}, /* East Asian ideograph */ - {"\x88", 0, 0x225F2C}, /* East Asian ideograph */ - {"\x95", 0, 0x225F2D}, /* East Asian ideograph */ - {"\x8C", 0, 0x225F2E}, /* East Asian ideograph */ - {"\x8F", 0, 0x225F2F}, /* East Asian ideograph */ - {"\x90", 0, 0x225F3B}, /* East Asian ideograph */ - {"\x8A", 0, 0x225F3C}, /* East Asian ideograph */ - {"\xA5", 0, 0x225F3E}, /* East Asian ideograph */ - {"\x9A", 0, 0x225F3F}, /* East Asian ideograph */ - {"\x9B", 0, 0x225F40}, /* East Asian ideograph */ - {"\x99", 0, 0x225F47}, /* East Asian ideograph */ - {"\x9E", 0, 0x225F48}, /* East Asian ideograph */ - {"\x9D", 0, 0x225F4C}, /* East Asian ideograph */ - {"\xA2", 0, 0x225F50}, /* East Asian ideograph */ - {"\xAF", 0, 0x225F51}, /* East Asian ideograph */ - {"\xAD", 0, 0x225F54}, /* East Asian ideograph */ - {"\xB3", 0, 0x225F5C}, /* East Asian ideograph */ - {"\xBB", 0, 0x225F5E}, /* East Asian ideograph */ - {"\xB0", 0, 0x225F5F}, /* East Asian ideograph */ - {"\xBC", 0, 0x225F60}, /* East Asian ideograph */ - {"\xB5", 0, 0x225F62}, /* East Asian ideograph */ - {"\xBE", 0, 0x274C76}, /* East Asian ideograph */ - {"\xAB", 0, 0x274C78}, /* East Asian ideograph */ - {"\x97", 0, 0x285F48}, /* East Asian ideograph */ - {"\x98", 0, 0x285F5E}, /* East Asian ideograph */ - {"\x85", 0, 0x285F6F}, /* East Asian ideograph */ - {"\xAA", 0, 0x28602B}, /* East Asian ideograph */ - {"\xBF", 0, 0x286037}, /* East Asian ideograph */ - {"\x89", 0, 0x393E7D}, /* East Asian ideograph */ - {"\x9F", 0, 0x4B4C67}, /* East Asian ideograph (variant of EACC 214C67) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page167 = { - marc8r_31page167_flat, 0 -}; -/* PAGE 166 */ -struct yaz_iconv_trie_flat marc8r_31page166_flat[] = { - {"\x87", 0, 0x214C46}, /* East Asian ideograph */ - {"\x85", 0, 0x214C47}, /* East Asian ideograph */ - {"\x95", 0, 0x214C4E}, /* East Asian ideograph */ - {"\x94", 0, 0x214C4F}, /* East Asian ideograph */ - {"\x8A", 0, 0x214C51}, /* East Asian ideograph (variant of EACC 4B4C51) */ - {"\x9B", 0, 0x214C52}, /* East Asian ideograph */ - {"\xA3", 0, 0x214C53}, /* East Asian ideograph */ - {"\x98", 0, 0x214C54}, /* East Asian ideograph */ - {"\x9E", 0, 0x214C55}, /* East Asian ideograph */ - {"\x99", 0, 0x214C56}, /* East Asian ideograph */ - {"\xA2", 0, 0x214C57}, /* East Asian ideograph */ - {"\xB0", 0, 0x214C5A}, /* East Asian ideograph */ - {"\xB2", 0, 0x214C5B}, /* East Asian ideograph */ - {"\xB1", 0, 0x214C5C}, /* East Asian ideograph */ - {"\xB4", 0, 0x214C5D}, /* East Asian ideograph */ - {"\xBF", 0, 0x214C5E}, /* East Asian ideograph */ - {"\xBA", 0, 0x214C5F}, /* East Asian ideograph */ - {"\x83", 0, 0x225E44}, /* East Asian ideograph */ - {"\x82", 0, 0x225E4A}, /* East Asian ideograph */ - {"\x81", 0, 0x225E4E}, /* East Asian ideograph */ - {"\x84", 0, 0x225E51}, /* East Asian ideograph */ - {"\x8D", 0, 0x225E58}, /* East Asian ideograph */ - {"\x8F", 0, 0x225E5C}, /* East Asian ideograph */ - {"\x8C", 0, 0x225E5E}, /* East Asian ideograph */ - {"\x90", 0, 0x225E5F}, /* East Asian ideograph */ - {"\xA7", 0, 0x225E63}, /* East Asian ideograph */ - {"\xA1", 0, 0x225E66}, /* East Asian ideograph */ - {"\xA6", 0, 0x225E67}, /* East Asian ideograph */ - {"\xA4", 0, 0x225E71}, /* East Asian ideograph */ - {"\xA0", 0, 0x225E72}, /* East Asian ideograph */ - {"\x97", 0, 0x225E73}, /* East Asian ideograph */ - {"\xB9", 0, 0x225F21}, /* East Asian ideograph */ - {"\xBC", 0, 0x225F22}, /* East Asian ideograph */ - {"\x89", 0, 0x274C56}, /* East Asian ideograph */ - {"\xAA", 0, 0x274C62}, /* East Asian ideograph */ - {"\xA8", 0, 0x274C6D}, /* East Asian ideograph */ - {"\x92", 0, 0x274C73}, /* East Asian ideograph */ - {"\x96", 0, 0x285E7A}, /* East Asian ideograph */ - {"\x88", 0, 0x28603A}, /* East Asian ideograph */ - {"\xBE", 0, 0x345E47}, /* East Asian ideograph */ - {"\x8A", 0, 0x4B4C51}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B4C5B}, /* East Asian ideograph */ - {"\xAB", 0, 0x4C5F69}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page166 = { - marc8r_31page166_flat, 0 -}; -/* PAGE 165 */ -struct yaz_iconv_trie_flat marc8r_31page165_flat[] = { - {"\x86", 0, 0x214C3A}, /* East Asian ideograph */ - {"\x87", 0, 0x214C3B}, /* East Asian ideograph */ - {"\x8A", 0, 0x214C3C}, /* East Asian ideograph */ - {"\x8F", 0, 0x214C3E}, /* East Asian ideograph */ - {"\x91", 0, 0x214C3F}, /* East Asian ideograph */ - {"\x9D", 0, 0x214C40}, /* East Asian ideograph */ - {"\x99", 0, 0x214C41}, /* East Asian ideograph */ - {"\x9A", 0, 0x214C42}, /* East Asian ideograph */ - {"\xA4", 0, 0x214C43}, /* East Asian ideograph */ - {"\xAB", 0, 0x214C44}, /* East Asian ideograph */ - {"\xA5", 0, 0x214C45}, /* East Asian ideograph */ - {"\xB3", 0, 0x214C48}, /* East Asian ideograph */ - {"\xB2", 0, 0x214C49}, /* East Asian ideograph */ - {"\xBD", 0, 0x214C4A}, /* East Asian ideograph */ - {"\xBE", 0, 0x214C4B}, /* East Asian ideograph */ - {"\xBC", 0, 0x214C4C}, /* East Asian ideograph */ - {"\xB9", 0, 0x214C4D}, /* East Asian ideograph */ - {"\xB5", 0, 0x214C50}, /* East Asian ideograph */ - {"\x83", 0, 0x225E25}, /* East Asian ideograph */ - {"\x90", 0, 0x225E2C}, /* East Asian ideograph */ - {"\x92", 0, 0x225E2D}, /* East Asian ideograph */ - {"\x94", 0, 0x225E2E}, /* East Asian ideograph */ - {"\x95", 0, 0x225E31}, /* East Asian ideograph */ - {"\x98", 0, 0x225E35}, /* East Asian ideograph */ - {"\xA2", 0, 0x225E37}, /* East Asian ideograph */ - {"\xA3", 0, 0x225E3B}, /* East Asian ideograph */ - {"\xBA", 0, 0x225E3E}, /* East Asian ideograph */ - {"\xB0", 0, 0x225E43}, /* East Asian ideograph */ - {"\xBF", 0, 0x225E46}, /* East Asian ideograph */ - {"\xB4", 0, 0x225E47}, /* East Asian ideograph */ - {"\xB1", 0, 0x225E50}, /* East Asian ideograph */ - {"\xA1", 0, 0x274C60}, /* East Asian ideograph */ - {"\x9F", 0, 0x274C61}, /* East Asian ideograph */ - {"\xAF", 0, 0x274C63}, /* East Asian ideograph */ - {"\xAE", 0, 0x274C6A}, /* East Asian ideograph */ - {"\x97", 0, 0x274C6E}, /* East Asian ideograph */ - {"\xA0", 0, 0x274C71}, /* East Asian ideograph */ - {"\xAC", 0, 0x286032}, /* East Asian ideograph */ - {"\x8B", 0, 0x2D3453}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D4C3E}, /* East Asian ideograph */ - {"\xB8", 0, 0x2E5F6F}, /* East Asian ideograph */ - {"\x82", 0, 0x3F4C3C}, /* East Asian ideograph */ - {"\x89", 0, 0x454C3C}, /* East Asian ideograph */ - {"\x96", 0, 0x4C6022}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page165 = { - marc8r_31page165_flat, 0 -}; -/* PAGE 164 */ -struct yaz_iconv_trie_flat marc8r_31page164_flat[] = { - {"\x8F", 0, 0x214C2B}, /* East Asian ideograph */ - {"\x8C", 0, 0x214C2C}, /* East Asian ideograph */ - {"\x9D", 0, 0x214C2D}, /* East Asian ideograph */ - {"\x9C", 0, 0x214C2E}, /* East Asian ideograph */ - {"\x94", 0, 0x214C2F}, /* East Asian ideograph */ - {"\x9A", 0, 0x214C30}, /* East Asian ideograph */ - {"\x99", 0, 0x214C31}, /* East Asian ideograph */ - {"\xA6", 0, 0x214C32}, /* East Asian ideograph */ - {"\xA2", 0, 0x214C33}, /* East Asian ideograph */ - {"\xB0", 0, 0x214C34}, /* East Asian ideograph */ - {"\xA5", 0, 0x214C35}, /* East Asian ideograph */ - {"\xAB", 0, 0x214C36}, /* East Asian ideograph */ - {"\xAA", 0, 0x214C37}, /* East Asian ideograph */ - {"\xB8", 0, 0x214C38}, /* East Asian ideograph */ - {"\xB6", 0, 0x214C39}, /* East Asian ideograph */ - {"\x93", 0, 0x22477B}, /* East Asian ideograph */ - {"\x91", 0, 0x225068}, /* East Asian ideograph */ - {"\x80", 0, 0x225D51}, /* East Asian ideograph */ - {"\x8A", 0, 0x225D55}, /* East Asian ideograph */ - {"\x8E", 0, 0x225D57}, /* East Asian ideograph */ - {"\x87", 0, 0x225D58}, /* East Asian ideograph */ - {"\x8B", 0, 0x225D59}, /* East Asian ideograph */ - {"\x88", 0, 0x225D5A}, /* East Asian ideograph */ - {"\x9F", 0, 0x225D5F}, /* East Asian ideograph */ - {"\x9B", 0, 0x225D60}, /* East Asian ideograph */ - {"\xA4", 0, 0x225D62}, /* East Asian ideograph */ - {"\xA3", 0, 0x225D67}, /* East Asian ideograph */ - {"\xAF", 0, 0x225D69}, /* East Asian ideograph */ - {"\xAC", 0, 0x225D6B}, /* East Asian ideograph */ - {"\xB9", 0, 0x225D6D}, /* East Asian ideograph */ - {"\xBA", 0, 0x225D6E}, /* East Asian ideograph */ - {"\xB7", 0, 0x225D71}, /* East Asian ideograph */ - {"\xB1", 0, 0x225D75}, /* East Asian ideograph */ - {"\xBD", 0, 0x225D79}, /* East Asian ideograph */ - {"\xBF", 0, 0x225D7E}, /* East Asian ideograph */ - {"\x85", 0, 0x274343}, /* East Asian ideograph */ - {"\x84", 0, 0x274C31}, /* East Asian ideograph */ - {"\xB4", 0, 0x274C3B}, /* East Asian ideograph */ - {"\xB2", 0, 0x285D6B}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D4C2D}, /* East Asian ideograph */ - {"\xA7", 0, 0x2D4C35}, /* East Asian ideograph */ - {"\x8D", 0, 0x334C2C}, /* East Asian ideograph */ - {"\xAD", 0, 0x345D6B}, /* East Asian ideograph */ - {"\x86", 0, 0x394C2D}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B4C36}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B4C3C}, /* East Asian ideograph */ - {"\xA0", 0, 0x69482B}, /* East Asian ideograph */ - {"\x89", 0, 0x69613A}, /* East Asian ideograph */ - {"\xA9", 0, 0x69613E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page164 = { - marc8r_31page164_flat, 0 -}; -/* PAGE 163 */ -struct yaz_iconv_trie_flat marc8r_31page163_flat[] = { - {"\x84", 0, 0x214B73}, /* East Asian ideograph */ - {"\x8C", 0, 0x214B74}, /* East Asian ideograph */ - {"\x95", 0, 0x214B75}, /* East Asian ideograph */ - {"\x98", 0, 0x214B76}, /* East Asian ideograph */ - {"\x9A", 0, 0x214B77}, /* East Asian ideograph */ - {"\x9C", 0, 0x214B78}, /* East Asian ideograph */ - {"\x9F", 0, 0x214B79}, /* East Asian ideograph */ - {"\xA2", 0, 0x214B7A}, /* East Asian ideograph */ - {"\xA6", 0, 0x214B7B}, /* East Asian ideograph */ - {"\xA5", 0, 0x214B7C}, /* East Asian ideograph */ - {"\xA8", 0, 0x214B7D}, /* East Asian ideograph */ - {"\xA9", 0, 0x214B7E}, /* East Asian ideograph */ - {"\xAC", 0, 0x214C21}, /* East Asian ideograph */ - {"\xAB", 0, 0x214C22}, /* East Asian ideograph */ - {"\xAD", 0, 0x214C23}, /* East Asian ideograph */ - {"\xB0", 0, 0x214C24}, /* East Asian ideograph */ - {"\xB2", 0, 0x214C25}, /* East Asian ideograph */ - {"\xB1", 0, 0x214C26}, /* East Asian ideograph */ - {"\xB3", 0, 0x214C27}, /* East Asian ideograph */ - {"\xB7", 0, 0x214C28}, /* East Asian ideograph */ - {"\xB8", 0, 0x214C29}, /* East Asian ideograph */ - {"\xBD", 0, 0x214C2A}, /* East Asian ideograph */ - {"\x85", 0, 0x225C71}, /* East Asian ideograph */ - {"\x83", 0, 0x225C77}, /* East Asian ideograph */ - {"\x87", 0, 0x225C7D}, /* East Asian ideograph */ - {"\x8E", 0, 0x225D25}, /* East Asian ideograph */ - {"\x8D", 0, 0x225D28}, /* East Asian ideograph */ - {"\x91", 0, 0x225D2C}, /* East Asian ideograph */ - {"\x8F", 0, 0x225D2D}, /* East Asian ideograph */ - {"\x92", 0, 0x225D32}, /* East Asian ideograph */ - {"\x93", 0, 0x225D33}, /* East Asian ideograph */ - {"\x97", 0, 0x225D39}, /* East Asian ideograph */ - {"\xA1", 0, 0x225D42}, /* East Asian ideograph */ - {"\xA4", 0, 0x225D44}, /* East Asian ideograph */ - {"\xAF", 0, 0x225D49}, /* East Asian ideograph */ - {"\xBA", 0, 0x225D4D}, /* East Asian ideograph */ - {"\xBF", 0, 0x225D4F}, /* East Asian ideograph */ - {"\xBE", 0, 0x225D52}, /* East Asian ideograph */ - {"\xBB", 0, 0x274C36}, /* East Asian ideograph */ - {"\xB5", 0, 0x275F55}, /* East Asian ideograph */ - {"\x9E", 0, 0x2D3730}, /* East Asian ideograph */ - {"\x86", 0, 0x2D4B72}, /* East Asian ideograph */ - {"\xAA", 0, 0x2D5833}, /* East Asian ideograph */ - {"\x96", 0, 0x2E742E}, /* East Asian ideograph */ - {"\xBB", 0, 0x334C36}, /* East Asian ideograph (variant of EACC 274C36) */ - {"\xA3", 0, 0x454B7A}, /* East Asian ideograph */ - {"\xBC", 0, 0x696136}, /* East Asian ideograph */ - {"\x99", 0, 0x705F30}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page163 = { - marc8r_31page163_flat, 0 -}; -/* PAGE 162 */ -struct yaz_iconv_trie_flat marc8r_31page162_flat[] = { - {"\x8A", 0, 0x214B6A}, /* East Asian ideograph */ - {"\x8F", 0, 0x214B6B}, /* East Asian ideograph */ - {"\x9C", 0, 0x214B6C}, /* East Asian ideograph */ - {"\xA0", 0, 0x214B6D}, /* East Asian ideograph */ - {"\xA2", 0, 0x214B6E}, /* East Asian ideograph */ - {"\xA3", 0, 0x214B6F}, /* East Asian ideograph */ - {"\xA6", 0, 0x214B70}, /* East Asian ideograph */ - {"\xB6", 0, 0x214B71}, /* East Asian ideograph */ - {"\xB7", 0, 0x214B72}, /* East Asian ideograph */ - {"\x80", 0, 0x225B7A}, /* East Asian ideograph */ - {"\x88", 0, 0x225C30}, /* East Asian ideograph */ - {"\x85", 0, 0x225C31}, /* East Asian ideograph */ - {"\x8C", 0, 0x225C32}, /* East Asian ideograph */ - {"\x96", 0, 0x225C38}, /* East Asian ideograph */ - {"\x94", 0, 0x225C3A}, /* East Asian ideograph */ - {"\x98", 0, 0x225C3D}, /* East Asian ideograph */ - {"\x9A", 0, 0x225C40}, /* East Asian ideograph */ - {"\x9B", 0, 0x225C41}, /* East Asian ideograph */ - {"\x9E", 0, 0x225C47}, /* East Asian ideograph */ - {"\xA4", 0, 0x225C50}, /* East Asian ideograph */ - {"\xA7", 0, 0x225C52}, /* East Asian ideograph */ - {"\xA9", 0, 0x225C54}, /* East Asian ideograph */ - {"\xB1", 0, 0x225C58}, /* East Asian ideograph */ - {"\xB0", 0, 0x225C5A}, /* East Asian ideograph */ - {"\xAE", 0, 0x225C5C}, /* East Asian ideograph */ - {"\xB4", 0, 0x225C61}, /* East Asian ideograph */ - {"\xB8", 0, 0x225C63}, /* East Asian ideograph */ - {"\xBB", 0, 0x225C66}, /* East Asian ideograph */ - {"\xBF", 0, 0x225C67}, /* East Asian ideograph */ - {"\xAF", 0, 0x274B74}, /* East Asian ideograph */ - {"\x92", 0, 0x285C40}, /* East Asian ideograph */ - {"\xB4", 0, 0x4C5C61}, /* East Asian ideograph (variant of EACC 225C61) */ - {"\xB2", 0, 0x696126}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page162 = { - marc8r_31page162_flat, 0 -}; -/* PAGE 161 */ -struct yaz_iconv_trie_flat marc8r_31page161_flat[] = { - {"\x83", 0, 0x214B5C}, /* East Asian ideograph */ - {"\x8B", 0, 0x214B62}, /* East Asian ideograph */ - {"\x9C", 0, 0x214B63}, /* East Asian ideograph (variant of EACC 4B4B63) */ - {"\xA3", 0, 0x214B64}, /* East Asian ideograph */ - {"\xA7", 0, 0x214B65}, /* East Asian ideograph */ - {"\xA9", 0, 0x214B66}, /* East Asian ideograph */ - {"\xB0", 0, 0x214B67}, /* East Asian ideograph */ - {"\xA6", 0, 0x214B68}, /* East Asian ideograph */ - {"\xBD", 0, 0x214B69}, /* East Asian ideograph */ - {"\x84", 0, 0x225A7A}, /* East Asian ideograph */ - {"\x87", 0, 0x225A7B}, /* East Asian ideograph */ - {"\x88", 0, 0x225A7E}, /* East Asian ideograph */ - {"\x89", 0, 0x225B21}, /* East Asian ideograph */ - {"\x82", 0, 0x225B27}, /* East Asian ideograph */ - {"\x8A", 0, 0x225B2A}, /* East Asian ideograph */ - {"\x86", 0, 0x225B2D}, /* East Asian ideograph */ - {"\x80", 0, 0x225B38}, /* East Asian ideograph */ - {"\x81", 0, 0x225B3C}, /* East Asian ideograph */ - {"\x85", 0, 0x225B3F}, /* East Asian ideograph */ - {"\x97", 0, 0x225B40}, /* East Asian ideograph */ - {"\x98", 0, 0x225B43}, /* East Asian ideograph */ - {"\x9A", 0, 0x225B45}, /* East Asian ideograph */ - {"\xA4", 0, 0x225B4D}, /* East Asian ideograph */ - {"\x9F", 0, 0x225B54}, /* East Asian ideograph */ - {"\x9D", 0, 0x225B55}, /* East Asian ideograph */ - {"\x8D", 0, 0x225B56}, /* East Asian ideograph */ - {"\x9E", 0, 0x225B57}, /* East Asian ideograph */ - {"\xA0", 0, 0x225B59}, /* East Asian ideograph */ - {"\xA1", 0, 0x225B5D}, /* East Asian ideograph */ - {"\xB2", 0, 0x225B60}, /* East Asian ideograph */ - {"\xB1", 0, 0x225B61}, /* East Asian ideograph */ - {"\xB4", 0, 0x225B66}, /* East Asian ideograph */ - {"\xAB", 0, 0x225B67}, /* East Asian ideograph */ - {"\xAA", 0, 0x225B69}, /* East Asian ideograph */ - {"\x90", 0, 0x225B6A}, /* East Asian ideograph */ - {"\xA5", 0, 0x225B6C}, /* East Asian ideograph */ - {"\xA8", 0, 0x225B6E}, /* East Asian ideograph */ - {"\xB8", 0, 0x225B76}, /* East Asian ideograph */ - {"\xBF", 0, 0x225C25}, /* East Asian ideograph */ - {"\xB5", 0, 0x225C28}, /* East Asian ideograph */ - {"\xBA", 0, 0x225C29}, /* East Asian ideograph */ - {"\x8E", 0, 0x285C3A}, /* East Asian ideograph */ - {"\xA2", 0, 0x2E5A78}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B4B63}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page161 = { - marc8r_31page161_flat, 0 -}; -/* PAGE 160 */ -struct yaz_iconv_trie_flat marc8r_31page160_flat[] = { - {"\x95", 0, 0x214B53}, /* East Asian ideograph */ - {"\x9F", 0, 0x214B54}, /* East Asian ideograph */ - {"\x9A", 0, 0x214B55}, /* East Asian ideograph */ - {"\x81", 0, 0x214B56}, /* East Asian ideograph */ - {"\x9B", 0, 0x214B58}, /* East Asian ideograph */ - {"\x9E", 0, 0x214B59}, /* East Asian ideograph */ - {"\x9C", 0, 0x214B5A}, /* East Asian ideograph */ - {"\x99", 0, 0x214B5B}, /* East Asian ideograph */ - {"\xA9", 0, 0x214B5D}, /* East Asian ideograph */ - {"\xAA", 0, 0x214B5E}, /* East Asian ideograph */ - {"\xA3", 0, 0x214B5F}, /* East Asian ideograph */ - {"\xA4", 0, 0x214B60}, /* East Asian ideograph */ - {"\xB0", 0, 0x214B61}, /* East Asian ideograph */ - {"\x84", 0, 0x225A36}, /* East Asian ideograph */ - {"\x87", 0, 0x225A40}, /* East Asian ideograph */ - {"\x98", 0, 0x225A43}, /* East Asian ideograph */ - {"\x82", 0, 0x225A45}, /* East Asian ideograph */ - {"\x8B", 0, 0x225A47}, /* East Asian ideograph */ - {"\x8A", 0, 0x225A4A}, /* East Asian ideograph */ - {"\x92", 0, 0x225A4F}, /* East Asian ideograph */ - {"\x97", 0, 0x225A55}, /* East Asian ideograph */ - {"\x91", 0, 0x225A56}, /* East Asian ideograph */ - {"\x9D", 0, 0x225A5A}, /* East Asian ideograph */ - {"\x94", 0, 0x225A5B}, /* East Asian ideograph */ - {"\x80", 0, 0x225A5D}, /* East Asian ideograph */ - {"\xAD", 0, 0x225A60}, /* East Asian ideograph */ - {"\xA2", 0, 0x225A61}, /* East Asian ideograph */ - {"\xB3", 0, 0x225A62}, /* East Asian ideograph */ - {"\xB4", 0, 0x225A68}, /* East Asian ideograph */ - {"\xAE", 0, 0x225A69}, /* East Asian ideograph */ - {"\xB1", 0, 0x225A6A}, /* East Asian ideograph */ - {"\xA8", 0, 0x225A6B}, /* East Asian ideograph */ - {"\xA0", 0, 0x225A78}, /* East Asian ideograph */ - {"\xB2", 0, 0x225A79}, /* East Asian ideograph */ - {"\xBC", 0, 0x225B22}, /* East Asian ideograph */ - {"\xBE", 0, 0x225B28}, /* East Asian ideograph */ - {"\xBA", 0, 0x225B30}, /* East Asian ideograph */ - {"\xBD", 0, 0x225B3E}, /* East Asian ideograph */ - {"\xB7", 0, 0x274B68}, /* East Asian ideograph */ - {"\xAF", 0, 0x2D4B43}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page160 = { - marc8r_31page160_flat, 0 -}; -/* PAGE 159 */ -struct yaz_iconv_trie_flat marc8r_31page159_flat[] = { - {"\x85", 0, 0x214B43}, /* East Asian ideograph */ - {"\x89", 0, 0x214B44}, /* East Asian ideograph */ - {"\x83", 0, 0x214B45}, /* East Asian ideograph */ - {"\x8A", 0, 0x214B46}, /* East Asian ideograph */ - {"\x86", 0, 0x214B48}, /* East Asian ideograph */ - {"\x8D", 0, 0x214B49}, /* East Asian ideograph */ - {"\xBA", 0, 0x214B4A}, /* East Asian ideograph */ - {"\xB5", 0, 0x214B4B}, /* East Asian ideograph */ - {"\xB6", 0, 0x214B4C}, /* East Asian ideograph */ - {"\xB4", 0, 0x214B4D}, /* East Asian ideograph */ - {"\xAA", 0, 0x214B4E}, /* East Asian ideograph */ - {"\xB3", 0, 0x214B4F}, /* East Asian ideograph */ - {"\xA2", 0, 0x214B50}, /* East Asian ideograph */ - {"\xA5", 0, 0x214B51}, /* East Asian ideograph */ - {"\xBF", 0, 0x214B57}, /* East Asian ideograph */ - {"\xB9", 0, 0x223D66}, /* East Asian ideograph */ - {"\x87", 0, 0x22595C}, /* East Asian ideograph */ - {"\x92", 0, 0x22595E}, /* East Asian ideograph */ - {"\xBC", 0, 0x225963}, /* East Asian ideograph */ - {"\xAE", 0, 0x225966}, /* East Asian ideograph */ - {"\xAF", 0, 0x225967}, /* East Asian ideograph */ - {"\x94", 0, 0x225969}, /* East Asian ideograph */ - {"\xAC", 0, 0x22596A}, /* East Asian ideograph */ - {"\xB0", 0, 0x22596C}, /* East Asian ideograph */ - {"\xAB", 0, 0x22596E}, /* East Asian ideograph */ - {"\x9A", 0, 0x225971}, /* East Asian ideograph */ - {"\x96", 0, 0x225978}, /* East Asian ideograph */ - {"\xA6", 0, 0x22597A}, /* East Asian ideograph */ - {"\xA8", 0, 0x225A21}, /* East Asian ideograph */ - {"\xA9", 0, 0x225A23}, /* East Asian ideograph */ - {"\xA0", 0, 0x225A28}, /* East Asian ideograph */ - {"\x9B", 0, 0x225A2A}, /* East Asian ideograph */ - {"\xA4", 0, 0x225A2B}, /* East Asian ideograph */ - {"\xB2", 0, 0x225A2C}, /* East Asian ideograph */ - {"\xAD", 0, 0x225A2D}, /* East Asian ideograph */ - {"\x95", 0, 0x225A30}, /* East Asian ideograph */ - {"\xBB", 0, 0x225A32}, /* East Asian ideograph */ - {"\x90", 0, 0x274B5F}, /* East Asian ideograph */ - {"\x8F", 0, 0x285B21}, /* East Asian ideograph */ - {"\xB1", 0, 0x3F5F49}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page159 = { - marc8r_31page159_flat, 0 -}; -/* PAGE 158 */ -struct yaz_iconv_trie_flat marc8r_31page158_flat[] = { - {"\x8A", 0, 0x214B3A}, /* East Asian ideograph */ - {"\x80", 0, 0x214B3C}, /* East Asian ideograph */ - {"\x8D", 0, 0x214B3F}, /* East Asian ideograph */ - {"\xAD", 0, 0x214B40}, /* East Asian ideograph */ - {"\xAE", 0, 0x214B41}, /* East Asian ideograph */ - {"\xA0", 0, 0x214B42}, /* East Asian ideograph */ - {"\xBE", 0, 0x214B47}, /* East Asian ideograph */ - {"\x8F", 0, 0x225868}, /* East Asian ideograph */ - {"\x82", 0, 0x22586A}, /* East Asian ideograph */ - {"\x90", 0, 0x22586B}, /* East Asian ideograph */ - {"\x88", 0, 0x225870}, /* East Asian ideograph */ - {"\x8C", 0, 0x22587D}, /* East Asian ideograph */ - {"\x93", 0, 0x225921}, /* East Asian ideograph */ - {"\xAA", 0, 0x225927}, /* East Asian ideograph */ - {"\xA5", 0, 0x225928}, /* East Asian ideograph */ - {"\x99", 0, 0x22592A}, /* East Asian ideograph */ - {"\xAF", 0, 0x22592B}, /* East Asian ideograph */ - {"\x94", 0, 0x22592F}, /* East Asian ideograph */ - {"\x9B", 0, 0x225930}, /* East Asian ideograph */ - {"\x96", 0, 0x225932}, /* East Asian ideograph */ - {"\xA7", 0, 0x225936}, /* East Asian ideograph */ - {"\xA3", 0, 0x225938}, /* East Asian ideograph */ - {"\x9E", 0, 0x22593A}, /* East Asian ideograph */ - {"\xA6", 0, 0x22593C}, /* East Asian ideograph */ - {"\xA9", 0, 0x22593F}, /* East Asian ideograph */ - {"\xB6", 0, 0x225945}, /* East Asian ideograph */ - {"\xBA", 0, 0x225947}, /* East Asian ideograph */ - {"\xB8", 0, 0x22594A}, /* East Asian ideograph */ - {"\xB5", 0, 0x225954}, /* East Asian ideograph */ - {"\xBD", 0, 0x22595A}, /* East Asian ideograph */ - {"\xB7", 0, 0x225970}, /* East Asian ideograph */ - {"\xB2", 0, 0x274B57}, /* East Asian ideograph */ - {"\x91", 0, 0x274B6B}, /* East Asian ideograph */ - {"\x89", 0, 0x2D4B35}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D4B3F}, /* East Asian ideograph */ - {"\xB1", 0, 0x4C5C3A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page158 = { - marc8r_31page158_flat, 0 -}; -/* PAGE 157 */ -struct yaz_iconv_trie_flat marc8r_31page157_flat[] = { - {"\x80", 0, 0x214B2F}, /* East Asian ideograph */ - {"\x84", 0, 0x214B30}, /* East Asian ideograph */ - {"\x87", 0, 0x214B31}, /* East Asian ideograph */ - {"\x89", 0, 0x214B32}, /* East Asian ideograph */ - {"\x8B", 0, 0x214B33}, /* East Asian ideograph */ - {"\x96", 0, 0x214B34}, /* East Asian ideograph */ - {"\x9F", 0, 0x214B35}, /* East Asian ideograph */ - {"\xA8", 0, 0x214B36}, /* East Asian ideograph */ - {"\xA9", 0, 0x214B37}, /* East Asian ideograph */ - {"\xAB", 0, 0x214B38}, /* East Asian ideograph */ - {"\xBB", 0, 0x214B39}, /* East Asian ideograph */ - {"\xB7", 0, 0x214B3B}, /* East Asian ideograph */ - {"\xB2", 0, 0x214B3E}, /* East Asian ideograph */ - {"\x8D", 0, 0x216437}, /* East Asian ideograph */ - {"\x81", 0, 0x22583B}, /* East Asian ideograph */ - {"\x88", 0, 0x22583F}, /* East Asian ideograph */ - {"\x8E", 0, 0x225842}, /* East Asian ideograph */ - {"\x95", 0, 0x225846}, /* East Asian ideograph */ - {"\x92", 0, 0x225847}, /* East Asian ideograph */ - {"\x97", 0, 0x225848}, /* East Asian ideograph */ - {"\x93", 0, 0x22584C}, /* East Asian ideograph */ - {"\x94", 0, 0x22584D}, /* East Asian ideograph */ - {"\x9E", 0, 0x225851}, /* East Asian ideograph */ - {"\xA6", 0, 0x225852}, /* East Asian ideograph */ - {"\xA5", 0, 0x22585D}, /* East Asian ideograph */ - {"\xA2", 0, 0x225862}, /* East Asian ideograph */ - {"\xA0", 0, 0x225863}, /* East Asian ideograph */ - {"\xB6", 0, 0x225867}, /* East Asian ideograph */ - {"\xBF", 0, 0x22586F}, /* East Asian ideograph */ - {"\xBC", 0, 0x225935}, /* East Asian ideograph */ - {"\xB0", 0, 0x274B47}, /* East Asian ideograph */ - {"\x9B", 0, 0x274B5E}, /* East Asian ideograph */ - {"\x91", 0, 0x274B64}, /* East Asian ideograph */ - {"\xAF", 0, 0x274B67}, /* East Asian ideograph */ - {"\xBA", 0, 0x274B69}, /* East Asian ideograph */ - {"\xAE", 0, 0x285A47}, /* East Asian ideograph */ - {"\x85", 0, 0x2D3954}, /* East Asian ideograph */ - {"\xB3", 0, 0x2E5A40}, /* East Asian ideograph */ - {"\xB2", 0, 0x4B4B3E}, /* East Asian ideograph (variant of EACC 214B3E) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page157 = { - marc8r_31page157_flat, 0 -}; -/* PAGE 156 */ -struct yaz_iconv_trie_flat marc8r_31page156_flat[] = { - {"\x84", 0, 0x214A7E}, /* East Asian ideograph */ - {"\x85", 0, 0x214B23}, /* East Asian ideograph */ - {"\x90", 0, 0x214B24}, /* East Asian ideograph */ - {"\x97", 0, 0x214B26}, /* East Asian ideograph */ - {"\xA8", 0, 0x214B27}, /* East Asian ideograph */ - {"\xB0", 0, 0x214B28}, /* East Asian ideograph */ - {"\xB2", 0, 0x214B29}, /* East Asian ideograph */ - {"\xB7", 0, 0x214B2A}, /* East Asian ideograph */ - {"\xB8", 0, 0x214B2B}, /* East Asian ideograph */ - {"\xB5", 0, 0x214B2C}, /* East Asian ideograph */ - {"\xBA", 0, 0x214B2D}, /* East Asian ideograph */ - {"\xBB", 0, 0x214B2E}, /* East Asian ideograph */ - {"\x87", 0, 0x22575A}, /* East Asian ideograph */ - {"\x88", 0, 0x22575B}, /* East Asian ideograph */ - {"\x89", 0, 0x22575C}, /* East Asian ideograph */ - {"\x80", 0, 0x225765}, /* East Asian ideograph */ - {"\x8D", 0, 0x225768}, /* East Asian ideograph */ - {"\x92", 0, 0x22576B}, /* East Asian ideograph */ - {"\x9E", 0, 0x225772}, /* East Asian ideograph */ - {"\x9D", 0, 0x225774}, /* East Asian ideograph */ - {"\xA0", 0, 0x225779}, /* East Asian ideograph */ - {"\x98", 0, 0x22577B}, /* East Asian ideograph */ - {"\xA2", 0, 0x22577E}, /* East Asian ideograph */ - {"\x8B", 0, 0x225821}, /* East Asian ideograph */ - {"\xA7", 0, 0x225825}, /* East Asian ideograph */ - {"\xAC", 0, 0x225829}, /* East Asian ideograph */ - {"\xAB", 0, 0x22582B}, /* East Asian ideograph */ - {"\xAF", 0, 0x22582F}, /* East Asian ideograph */ - {"\xBC", 0, 0x225836}, /* East Asian ideograph */ - {"\xBE", 0, 0x225838}, /* East Asian ideograph */ - {"\xAD", 0, 0x274B2D}, /* East Asian ideograph */ - {"\x83", 0, 0x2D3556}, /* East Asian ideograph */ - {"\xAA", 0, 0x2D4B22}, /* East Asian ideograph */ - {"\xA3", 0, 0x4B4B2B}, /* East Asian ideograph */ - {"\x8F", 0, 0x4B5963}, /* East Asian ideograph */ - {"\x8E", 0, 0x517954}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page156 = { - marc8r_31page156_flat, 0 -}; -/* PAGE 155 */ -struct yaz_iconv_trie_flat marc8r_31page155_flat[] = { - {"\x9C", 0, 0x214A74}, /* East Asian ideograph */ - {"\x9B", 0, 0x214A75}, /* East Asian ideograph */ - {"\x93", 0, 0x214A76}, /* East Asian ideograph */ - {"\x96", 0, 0x214A77}, /* East Asian ideograph */ - {"\x99", 0, 0x214A78}, /* East Asian ideograph */ - {"\xB6", 0, 0x214A79}, /* East Asian ideograph */ - {"\xB7", 0, 0x214A7A}, /* East Asian ideograph */ - {"\xA9", 0, 0x214A7B}, /* East Asian ideograph */ - {"\xA5", 0, 0x214A7C}, /* East Asian ideograph */ - {"\xB4", 0, 0x214A7D}, /* East Asian ideograph */ - {"\xBF", 0, 0x214B21}, /* East Asian ideograph */ - {"\xBE", 0, 0x214B22}, /* East Asian ideograph */ - {"\x82", 0, 0x225729}, /* East Asian ideograph */ - {"\x81", 0, 0x22572D}, /* East Asian ideograph */ - {"\x9D", 0, 0x225731}, /* East Asian ideograph */ - {"\x8B", 0, 0x225735}, /* East Asian ideograph */ - {"\x97", 0, 0x225736}, /* East Asian ideograph */ - {"\x87", 0, 0x22573B}, /* East Asian ideograph */ - {"\x98", 0, 0x22573E}, /* East Asian ideograph */ - {"\x9E", 0, 0x225742}, /* East Asian ideograph */ - {"\xB1", 0, 0x225746}, /* East Asian ideograph */ - {"\xB8", 0, 0x225749}, /* East Asian ideograph */ - {"\xA2", 0, 0x22574A}, /* East Asian ideograph */ - {"\xB2", 0, 0x22574C}, /* East Asian ideograph */ - {"\xAC", 0, 0x22574D}, /* East Asian ideograph */ - {"\xA7", 0, 0x22574E}, /* East Asian ideograph */ - {"\xAB", 0, 0x22574F}, /* East Asian ideograph */ - {"\xAF", 0, 0x225752}, /* East Asian ideograph */ - {"\xA8", 0, 0x225755}, /* East Asian ideograph */ - {"\xBB", 0, 0x22575F}, /* East Asian ideograph */ - {"\xBA", 0, 0x225762}, /* East Asian ideograph */ - {"\x8E", 0, 0x274B2C}, /* East Asian ideograph */ - {"\xAE", 0, 0x274B2E}, /* East Asian ideograph */ - {"\xA1", 0, 0x274B2F}, /* East Asian ideograph */ - {"\x83", 0, 0x28582B}, /* East Asian ideograph */ - {"\x95", 0, 0x285836}, /* East Asian ideograph */ - {"\xAA", 0, 0x2D595F}, /* East Asian ideograph */ - {"\x8A", 0, 0x2F5D5C}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B4A74}, /* East Asian ideograph (variant of EACC 214A74) */ - {"\x9F", 0, 0x4B4B2C}, /* East Asian ideograph */ - {"\xB9", 0, 0x70622A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page155 = { - marc8r_31page155_flat, 0 -}; -/* PAGE 154 */ -struct yaz_iconv_trie_flat marc8r_31page154_flat[] = { - {"\x84", 0, 0x214A65}, /* East Asian ideograph */ - {"\x82", 0, 0x214A66}, /* East Asian ideograph */ - {"\x99", 0, 0x214A67}, /* East Asian ideograph */ - {"\x80", 0, 0x214A68}, /* East Asian ideograph */ - {"\x8E", 0, 0x214A69}, /* East Asian ideograph */ - {"\x97", 0, 0x214A6A}, /* East Asian ideograph */ - {"\x90", 0, 0x214A6B}, /* East Asian ideograph */ - {"\xA1", 0, 0x214A6C}, /* East Asian ideograph */ - {"\xA9", 0, 0x214A6D}, /* East Asian ideograph */ - {"\xA0", 0, 0x214A6E}, /* East Asian ideograph */ - {"\xBC", 0, 0x214A6F}, /* East Asian ideograph */ - {"\xB9", 0, 0x214A70}, /* East Asian ideograph */ - {"\xBD", 0, 0x214A72}, /* East Asian ideograph */ - {"\xB7", 0, 0x214A73}, /* East Asian ideograph */ - {"\x86", 0, 0x225651}, /* East Asian ideograph */ - {"\x83", 0, 0x225658}, /* East Asian ideograph */ - {"\x81", 0, 0x22565B}, /* East Asian ideograph */ - {"\x96", 0, 0x225660}, /* East Asian ideograph */ - {"\x92", 0, 0x225664}, /* East Asian ideograph */ - {"\x89", 0, 0x225667}, /* East Asian ideograph */ - {"\x8C", 0, 0x22566C}, /* East Asian ideograph */ - {"\x9B", 0, 0x22566E}, /* East Asian ideograph */ - {"\x8D", 0, 0x22566F}, /* East Asian ideograph */ - {"\xA8", 0, 0x225673}, /* East Asian ideograph */ - {"\xAB", 0, 0x225676}, /* East Asian ideograph */ - {"\xA5", 0, 0x225679}, /* East Asian ideograph */ - {"\xBA", 0, 0x22567E}, /* East Asian ideograph */ - {"\xB4", 0, 0x225724}, /* East Asian ideograph */ - {"\xBE", 0, 0x225725}, /* East Asian ideograph */ - {"\xBB", 0, 0x22572C}, /* East Asian ideograph */ - {"\xB3", 0, 0x22572E}, /* East Asian ideograph */ - {"\xAD", 0, 0x274A70}, /* East Asian ideograph */ - {"\x88", 0, 0x274A72}, /* East Asian ideograph */ - {"\xB1", 0, 0x274A7E}, /* East Asian ideograph */ - {"\xAF", 0, 0x274B22}, /* East Asian ideograph */ - {"\xAE", 0, 0x274B23}, /* East Asian ideograph */ - {"\xAC", 0, 0x274B27}, /* East Asian ideograph */ - {"\x9E", 0, 0x274B28}, /* East Asian ideograph */ - {"\xB2", 0, 0x28575F}, /* East Asian ideograph */ - {"\xB8", 0, 0x2D5965}, /* East Asian ideograph */ - {"\xB0", 0, 0x4B4A78}, /* East Asian ideograph */ - {"\xA2", 0, 0x4B5964}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page154 = { - marc8r_31page154_flat, 0 -}; -/* PAGE 153 */ -struct yaz_iconv_trie_flat marc8r_31page153_flat[] = { - {"\x81", 0, 0x214A5B}, /* East Asian ideograph */ - {"\x80", 0, 0x214A5C}, /* East Asian ideograph */ - {"\x84", 0, 0x214A5D}, /* East Asian ideograph */ - {"\x96", 0, 0x214A5E}, /* East Asian ideograph */ - {"\x92", 0, 0x214A5F}, /* East Asian ideograph */ - {"\x9B", 0, 0x214A60}, /* East Asian ideograph */ - {"\xA2", 0, 0x214A61}, /* East Asian ideograph */ - {"\xA7", 0, 0x214A62}, /* East Asian ideograph */ - {"\xAC", 0, 0x214A63}, /* East Asian ideograph */ - {"\xAF", 0, 0x214A64}, /* East Asian ideograph */ - {"\x89", 0, 0x225574}, /* East Asian ideograph */ - {"\x8B", 0, 0x22557C}, /* East Asian ideograph */ - {"\x8D", 0, 0x225622}, /* East Asian ideograph */ - {"\x8F", 0, 0x225628}, /* East Asian ideograph */ - {"\xA8", 0, 0x225648}, /* East Asian ideograph */ - {"\xAB", 0, 0x22564C}, /* East Asian ideograph */ - {"\xB0", 0, 0x22564E}, /* East Asian ideograph */ - {"\xB4", 0, 0x22564F}, /* East Asian ideograph */ - {"\xB5", 0, 0x225652}, /* East Asian ideograph */ - {"\xBC", 0, 0x225656}, /* East Asian ideograph */ - {"\x8A", 0, 0x274A61}, /* East Asian ideograph */ - {"\xB6", 0, 0x274A68}, /* East Asian ideograph */ - {"\xB9", 0, 0x274A79}, /* East Asian ideograph */ - {"\xB7", 0, 0x274B2A}, /* East Asian ideograph */ - {"\xB8", 0, 0x28575E}, /* East Asian ideograph */ - {"\x87", 0, 0x2D392F}, /* East Asian ideograph */ - {"\x82", 0, 0x2D4A5B}, /* East Asian ideograph */ - {"\xB2", 0, 0x2D5960}, /* East Asian ideograph */ - {"\xA0", 0, 0x4B4A62}, /* East Asian ideograph */ - {"\x9F", 0, 0x4C5638}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page153 = { - marc8r_31page153_flat, 0 -}; -/* PAGE 152 */ -struct yaz_iconv_trie_flat marc8r_31page152_flat[] = { - {"\x86", 0, 0x214A46}, /* East Asian ideograph */ - {"\x87", 0, 0x214A47}, /* East Asian ideograph */ - {"\x88", 0, 0x214A48}, /* East Asian ideograph */ - {"\x8C", 0, 0x214A49}, /* East Asian ideograph */ - {"\x92", 0, 0x214A4A}, /* East Asian ideograph */ - {"\x96", 0, 0x214A4B}, /* East Asian ideograph */ - {"\x98", 0, 0x214A4C}, /* East Asian ideograph */ - {"\x99", 0, 0x214A4D}, /* East Asian ideograph */ - {"\x9B", 0, 0x214A4E}, /* East Asian ideograph */ - {"\x9F", 0, 0x214A4F}, /* East Asian ideograph */ - {"\x9D", 0, 0x214A50}, /* East Asian ideograph */ - {"\xA2", 0, 0x214A51}, /* East Asian ideograph */ - {"\xA1", 0, 0x214A52}, /* East Asian ideograph */ - {"\xA0", 0, 0x214A53}, /* East Asian ideograph */ - {"\xA7", 0, 0x214A54}, /* East Asian ideograph */ - {"\xA9", 0, 0x214A55}, /* East Asian ideograph */ - {"\xAF", 0, 0x214A56}, /* East Asian ideograph */ - {"\xB2", 0, 0x214A57}, /* East Asian ideograph */ - {"\xB4", 0, 0x214A58}, /* East Asian ideograph */ - {"\xB9", 0, 0x214A59}, /* East Asian ideograph */ - {"\xBD", 0, 0x214A5A}, /* East Asian ideograph */ - {"\x81", 0, 0x225543}, /* East Asian ideograph */ - {"\x82", 0, 0x225544}, /* East Asian ideograph */ - {"\x90", 0, 0x22554F}, /* East Asian ideograph */ - {"\x8F", 0, 0x225551}, /* East Asian ideograph */ - {"\x93", 0, 0x225552}, /* East Asian ideograph */ - {"\x95", 0, 0x225553}, /* East Asian ideograph */ - {"\x9A", 0, 0x225556}, /* East Asian ideograph */ - {"\xA3", 0, 0x225559}, /* East Asian ideograph */ - {"\xB3", 0, 0x225561}, /* East Asian ideograph */ - {"\xAE", 0, 0x225563}, /* East Asian ideograph */ - {"\xB6", 0, 0x225566}, /* East Asian ideograph */ - {"\xB7", 0, 0x225568}, /* East Asian ideograph */ - {"\xBE", 0, 0x22556B}, /* East Asian ideograph */ - {"\xBC", 0, 0x22556D}, /* East Asian ideograph */ - {"\xBF", 0, 0x225571}, /* East Asian ideograph */ - {"\x8D", 0, 0x274A4C}, /* East Asian ideograph */ - {"\xB5", 0, 0x274A5A}, /* East Asian ideograph */ - {"\xBA", 0, 0x274A62}, /* East Asian ideograph */ - {"\x80", 0, 0x2D3C6E}, /* East Asian ideograph */ - {"\x8B", 0, 0x33502B}, /* East Asian ideograph */ - {"\xA6", 0, 0x3F4A60}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page152 = { - marc8r_31page152_flat, 0 -}; -/* PAGE 151 */ -struct yaz_iconv_trie_flat marc8r_31page151_flat[] = { - {"\x86", 0, 0x214A35}, /* East Asian ideograph */ - {"\x8D", 0, 0x214A36}, /* East Asian ideograph */ - {"\x90", 0, 0x214A37}, /* East Asian ideograph */ - {"\x9B", 0, 0x214A38}, /* East Asian ideograph */ - {"\xA8", 0, 0x214A39}, /* East Asian ideograph */ - {"\xAA", 0, 0x214A3A}, /* East Asian ideograph */ - {"\xAD", 0, 0x214A3B}, /* East Asian ideograph */ - {"\xAC", 0, 0x214A3C}, /* East Asian ideograph */ - {"\xB0", 0, 0x214A3D}, /* East Asian ideograph */ - {"\xB5", 0, 0x214A3E}, /* East Asian ideograph (variant of EACC 4B4A3E) */ - {"\xB6", 0, 0x214A3F}, /* East Asian ideograph */ - {"\xB8", 0, 0x214A40}, /* East Asian ideograph */ - {"\xB9", 0, 0x214A41}, /* East Asian ideograph */ - {"\xBA", 0, 0x214A42}, /* East Asian ideograph */ - {"\xBB", 0, 0x214A43}, /* East Asian ideograph */ - {"\xBD", 0, 0x214A44}, /* East Asian ideograph */ - {"\xBE", 0, 0x214A45}, /* East Asian ideograph */ - {"\x8C", 0, 0x22544B}, /* East Asian ideograph */ - {"\x8E", 0, 0x22545B}, /* East Asian ideograph */ - {"\x8A", 0, 0x22545E}, /* East Asian ideograph */ - {"\x97", 0, 0x225460}, /* East Asian ideograph */ - {"\x87", 0, 0x225461}, /* East Asian ideograph */ - {"\x95", 0, 0x225466}, /* East Asian ideograph */ - {"\x93", 0, 0x225469}, /* East Asian ideograph */ - {"\x98", 0, 0x22546E}, /* East Asian ideograph */ - {"\x8B", 0, 0x225471}, /* East Asian ideograph */ - {"\x9A", 0, 0x225479}, /* East Asian ideograph */ - {"\x9F", 0, 0x22547D}, /* East Asian ideograph */ - {"\x9D", 0, 0x225521}, /* East Asian ideograph */ - {"\xA5", 0, 0x225529}, /* East Asian ideograph */ - {"\xA6", 0, 0x22552A}, /* East Asian ideograph */ - {"\xBF", 0, 0x225541}, /* East Asian ideograph */ - {"\xB1", 0, 0x273E77}, /* East Asian ideograph */ - {"\xB7", 0, 0x274A42}, /* East Asian ideograph */ - {"\xBC", 0, 0x4B316A}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B4A3E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page151 = { - marc8r_31page151_flat, 0 -}; -/* PAGE 150 */ -struct yaz_iconv_trie_flat marc8r_31page150_flat[] = { - {"\x99", 0, 0x21497E}, /* East Asian ideograph */ - {"\x89", 0, 0x214A22}, /* East Asian ideograph */ - {"\x90", 0, 0x214A23}, /* East Asian ideograph */ - {"\x88", 0, 0x214A24}, /* East Asian ideograph */ - {"\x9C", 0, 0x214A25}, /* East Asian ideograph */ - {"\x92", 0, 0x214A26}, /* East Asian ideograph */ - {"\x95", 0, 0x214A28}, /* East Asian ideograph */ - {"\x8E", 0, 0x214A29}, /* East Asian ideograph */ - {"\x83", 0, 0x214A2A}, /* East Asian ideograph */ - {"\x84", 0, 0x214A2B}, /* East Asian ideograph */ - {"\xAE", 0, 0x214A2C}, /* East Asian ideograph */ - {"\xA7", 0, 0x214A2D}, /* East Asian ideograph */ - {"\x9F", 0, 0x214A2E}, /* East Asian ideograph */ - {"\xA5", 0, 0x214A2F}, /* East Asian ideograph */ - {"\xAD", 0, 0x214A30}, /* East Asian ideograph */ - {"\xA6", 0, 0x214A31}, /* East Asian ideograph */ - {"\xAC", 0, 0x214A32}, /* East Asian ideograph */ - {"\xB4", 0, 0x214A33}, /* East Asian ideograph */ - {"\xBB", 0, 0x214A34}, /* East Asian ideograph */ - {"\x91", 0, 0x225367}, /* East Asian ideograph */ - {"\x87", 0, 0x225369}, /* East Asian ideograph */ - {"\x8A", 0, 0x22536D}, /* East Asian ideograph */ - {"\x8F", 0, 0x22536F}, /* East Asian ideograph */ - {"\x96", 0, 0x225370}, /* East Asian ideograph */ - {"\x82", 0, 0x225375}, /* East Asian ideograph */ - {"\x85", 0, 0x225377}, /* East Asian ideograph */ - {"\x9D", 0, 0x225421}, /* East Asian ideograph */ - {"\x80", 0, 0x225422}, /* East Asian ideograph */ - {"\x81", 0, 0x225424}, /* East Asian ideograph */ - {"\x94", 0, 0x225426}, /* East Asian ideograph */ - {"\x8B", 0, 0x225429}, /* East Asian ideograph */ - {"\x9E", 0, 0x22542A}, /* East Asian ideograph */ - {"\xAB", 0, 0x225432}, /* East Asian ideograph */ - {"\xA8", 0, 0x225436}, /* East Asian ideograph */ - {"\xB5", 0, 0x22543A}, /* East Asian ideograph */ - {"\xB3", 0, 0x22543D}, /* East Asian ideograph */ - {"\xA1", 0, 0x22543F}, /* East Asian ideograph */ - {"\xA0", 0, 0x225447}, /* East Asian ideograph */ - {"\xBC", 0, 0x22544F}, /* East Asian ideograph */ - {"\xB9", 0, 0x225456}, /* East Asian ideograph */ - {"\xBE", 0, 0x2E5452}, /* East Asian ideograph */ - {"\xBF", 0, 0x33525B}, /* East Asian ideograph */ - {"\x97", 0, 0x4B4A38}, /* East Asian ideograph */ - {"\xA0", 0, 0x4C5447}, /* East Asian ideograph (variant of EACC 225447) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page150 = { - marc8r_31page150_flat, 0 -}; -/* PAGE 149 */ -struct yaz_iconv_trie_flat marc8r_31page149_flat[] = { - {"\x99", 0, 0x214977}, /* East Asian ideograph */ - {"\x8A", 0, 0x214978}, /* East Asian ideograph */ - {"\x84", 0, 0x214979}, /* East Asian ideograph */ - {"\x9F", 0, 0x21497A}, /* East Asian ideograph */ - {"\xA8", 0, 0x21497B}, /* East Asian ideograph */ - {"\xAC", 0, 0x21497C}, /* East Asian ideograph */ - {"\xB1", 0, 0x21497D}, /* East Asian ideograph */ - {"\xBE", 0, 0x214A21}, /* East Asian ideograph */ - {"\xB9", 0, 0x214A27}, /* East Asian ideograph */ - {"\x87", 0, 0x22527B}, /* East Asian ideograph */ - {"\x92", 0, 0x225323}, /* East Asian ideograph */ - {"\x80", 0, 0x22532B}, /* East Asian ideograph */ - {"\x89", 0, 0x22532C}, /* East Asian ideograph */ - {"\x85", 0, 0x225332}, /* East Asian ideograph */ - {"\x96", 0, 0x225333}, /* East Asian ideograph */ - {"\x98", 0, 0x225339}, /* East Asian ideograph */ - {"\x97", 0, 0x22533C}, /* East Asian ideograph */ - {"\xB5", 0, 0x22533E}, /* East Asian ideograph */ - {"\xA9", 0, 0x22533F}, /* East Asian ideograph */ - {"\xA5", 0, 0x225342}, /* East Asian ideograph */ - {"\x9E", 0, 0x225346}, /* East Asian ideograph */ - {"\xB2", 0, 0x225347}, /* East Asian ideograph */ - {"\x9B", 0, 0x22534A}, /* East Asian ideograph */ - {"\xAF", 0, 0x22534E}, /* East Asian ideograph */ - {"\xA4", 0, 0x225351}, /* East Asian ideograph */ - {"\xA0", 0, 0x225352}, /* East Asian ideograph */ - {"\x9A", 0, 0x225355}, /* East Asian ideograph */ - {"\xB3", 0, 0x225357}, /* East Asian ideograph */ - {"\xB4", 0, 0x225359}, /* East Asian ideograph */ - {"\xB7", 0, 0x22536A}, /* East Asian ideograph */ - {"\xBA", 0, 0x225372}, /* East Asian ideograph */ - {"\xBF", 0, 0x22537A}, /* East Asian ideograph */ - {"\xB8", 0, 0x22537C}, /* East Asian ideograph */ - {"\x8F", 0, 0x2D4A34}, /* East Asian ideograph */ - {"\x94", 0, 0x2D5E26}, /* East Asian ideograph */ - {"\x88", 0, 0x4B4977}, /* East Asian ideograph */ - {"\x95", 0, 0x695F70}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page149 = { - marc8r_31page149_flat, 0 -}; -/* PAGE 148 */ -struct yaz_iconv_trie_flat marc8r_31page148_flat[] = { - {"\xAE", 0, 0x214963}, /* East Asian ideograph */ - {"\x8E", 0, 0x214969}, /* East Asian ideograph */ - {"\x89", 0, 0x21496A}, /* East Asian ideograph */ - {"\x99", 0, 0x21496B}, /* East Asian ideograph */ - {"\xA4", 0, 0x21496C}, /* East Asian ideograph */ - {"\xA9", 0, 0x21496D}, /* East Asian ideograph */ - {"\x9C", 0, 0x21496E}, /* East Asian ideograph */ - {"\xAC", 0, 0x21496F}, /* East Asian ideograph */ - {"\xA6", 0, 0x214970}, /* East Asian ideograph */ - {"\xA7", 0, 0x214971}, /* East Asian ideograph */ - {"\x9E", 0, 0x214972}, /* East Asian ideograph */ - {"\xA5", 0, 0x214973}, /* East Asian ideograph */ - {"\x8C", 0, 0x214974}, /* East Asian ideograph */ - {"\xBD", 0, 0x214975}, /* East Asian ideograph */ - {"\xB7", 0, 0x225248}, /* East Asian ideograph */ - {"\x86", 0, 0x225251}, /* East Asian ideograph */ - {"\x92", 0, 0x225252}, /* East Asian ideograph */ - {"\x8F", 0, 0x225254}, /* East Asian ideograph */ - {"\x9D", 0, 0x225255}, /* East Asian ideograph */ - {"\x81", 0, 0x225256}, /* East Asian ideograph */ - {"\xA0", 0, 0x225257}, /* East Asian ideograph */ - {"\xB5", 0, 0x225259}, /* East Asian ideograph */ - {"\xB3", 0, 0x22525A}, /* East Asian ideograph */ - {"\x83", 0, 0x22525C}, /* East Asian ideograph */ - {"\x9A", 0, 0x22525D}, /* East Asian ideograph */ - {"\xB6", 0, 0x22525E}, /* East Asian ideograph */ - {"\x8B", 0, 0x225260}, /* East Asian ideograph */ - {"\x87", 0, 0x225262}, /* East Asian ideograph */ - {"\xA8", 0, 0x225265}, /* East Asian ideograph */ - {"\xB1", 0, 0x225266}, /* East Asian ideograph */ - {"\x9F", 0, 0x225267}, /* East Asian ideograph */ - {"\x90", 0, 0x225269}, /* East Asian ideograph */ - {"\x93", 0, 0x22526B}, /* East Asian ideograph */ - {"\x84", 0, 0x225270}, /* East Asian ideograph */ - {"\xB2", 0, 0x225276}, /* East Asian ideograph */ - {"\xB8", 0, 0x225278}, /* East Asian ideograph */ - {"\xBB", 0, 0x22527C}, /* East Asian ideograph */ - {"\xBC", 0, 0x225336}, /* East Asian ideograph */ - {"\x85", 0, 0x2D5E24}, /* East Asian ideograph */ - {"\x8A", 0, 0x2E3870}, /* East Asian ideograph */ - {"\x9B", 0, 0x2E525D}, /* East Asian ideograph */ - {"\x96", 0, 0x334342}, /* East Asian ideograph */ - {"\xA2", 0, 0x345175}, /* East Asian ideograph */ - {"\xBA", 0, 0x4C523A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page148 = { - marc8r_31page148_flat, 0 -}; -/* PAGE 147 */ -struct yaz_iconv_trie_flat marc8r_31page147_flat[] = { - {"\x89", 0, 0x21495F}, /* East Asian ideograph */ - {"\x8A", 0, 0x214960}, /* East Asian ideograph */ - {"\x99", 0, 0x214962}, /* East Asian ideograph */ - {"\x9A", 0, 0x214964}, /* East Asian ideograph */ - {"\xB6", 0, 0x214965}, /* East Asian ideograph */ - {"\xA1", 0, 0x214966}, /* East Asian ideograph */ - {"\xA1", 0, 0x214966}, /* East Asian ideograph */ - {"\xB0", 0, 0x214967}, /* East Asian ideograph */ - {"\xA6", 0, 0x214968}, /* East Asian ideograph */ - {"\x84", 0, 0x225144}, /* East Asian ideograph */ - {"\x90", 0, 0x22514A}, /* East Asian ideograph */ - {"\x83", 0, 0x22514C}, /* East Asian ideograph */ - {"\x91", 0, 0x225155}, /* East Asian ideograph */ - {"\x92", 0, 0x225156}, /* East Asian ideograph */ - {"\x8C", 0, 0x22515C}, /* East Asian ideograph */ - {"\x93", 0, 0x225166}, /* East Asian ideograph */ - {"\x80", 0, 0x225168}, /* East Asian ideograph */ - {"\x9E", 0, 0x22516C}, /* East Asian ideograph */ - {"\xB4", 0, 0x22516D}, /* East Asian ideograph */ - {"\xA0", 0, 0x22516E}, /* East Asian ideograph */ - {"\xBF", 0, 0x22516F}, /* East Asian ideograph */ - {"\xB1", 0, 0x225174}, /* East Asian ideograph */ - {"\xAD", 0, 0x225175}, /* East Asian ideograph */ - {"\xB9", 0, 0x225227}, /* East Asian ideograph */ - {"\xB5", 0, 0x225228}, /* East Asian ideograph */ - {"\xBB", 0, 0x22522C}, /* East Asian ideograph */ - {"\x9C", 0, 0x22522E}, /* East Asian ideograph */ - {"\xBD", 0, 0x225232}, /* East Asian ideograph */ - {"\xAF", 0, 0x225235}, /* East Asian ideograph */ - {"\xA9", 0, 0x22523B}, /* East Asian ideograph */ - {"\xAE", 0, 0x225243}, /* East Asian ideograph */ - {"\x96", 0, 0x274A25}, /* East Asian ideograph */ - {"\xBC", 0, 0x2D4A26}, /* East Asian ideograph */ - {"\xB3", 0, 0x334968}, /* East Asian ideograph */ - {"\x98", 0, 0x345452}, /* East Asian ideograph */ - {"\x95", 0, 0x4B4973}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page147 = { - marc8r_31page147_flat, 0 -}; -/* PAGE 146 */ -struct yaz_iconv_trie_flat marc8r_31page146_flat[] = { - {"\x8A", 0, 0x214958}, /* East Asian ideograph */ - {"\xA4", 0, 0x214959}, /* East Asian ideograph */ - {"\x98", 0, 0x21495A}, /* East Asian ideograph */ - {"\x88", 0, 0x21495B}, /* East Asian ideograph */ - {"\x99", 0, 0x21495C}, /* East Asian ideograph */ - {"\x8F", 0, 0x21495D}, /* East Asian ideograph */ - {"\xB9", 0, 0x21495E}, /* East Asian ideograph */ - {"\xBD", 0, 0x214961}, /* East Asian ideograph */ - {"\xBE", 0, 0x217627}, /* East Asian ideograph */ - {"\xAA", 0, 0x225078}, /* East Asian ideograph */ - {"\xA5", 0, 0x22507B}, /* East Asian ideograph */ - {"\x9C", 0, 0x22507C}, /* East Asian ideograph */ - {"\x93", 0, 0x22507D}, /* East Asian ideograph */ - {"\x9D", 0, 0x225122}, /* East Asian ideograph */ - {"\xA1", 0, 0x225123}, /* East Asian ideograph */ - {"\xA3", 0, 0x225126}, /* East Asian ideograph */ - {"\xA0", 0, 0x225128}, /* East Asian ideograph */ - {"\x94", 0, 0x22512B}, /* East Asian ideograph */ - {"\x91", 0, 0x22512E}, /* East Asian ideograph */ - {"\x8B", 0, 0x225138}, /* East Asian ideograph */ - {"\x90", 0, 0x22513A}, /* East Asian ideograph */ - {"\x87", 0, 0x22513B}, /* East Asian ideograph */ - {"\x9A", 0, 0x22513C}, /* East Asian ideograph */ - {"\x86", 0, 0x22513D}, /* East Asian ideograph */ - {"\xBA", 0, 0x22513F}, /* East Asian ideograph */ - {"\xB7", 0, 0x225142}, /* East Asian ideograph */ - {"\xB3", 0, 0x225148}, /* East Asian ideograph */ - {"\xB4", 0, 0x225150}, /* East Asian ideograph */ - {"\xB6", 0, 0x225160}, /* East Asian ideograph */ - {"\xAF", 0, 0x225167}, /* East Asian ideograph */ - {"\xA6", 0, 0x27496D}, /* East Asian ideograph */ - {"\xAD", 0, 0x27497D}, /* East Asian ideograph */ - {"\xAB", 0, 0x27497E}, /* East Asian ideograph */ - {"\xA7", 0, 0x274A26}, /* East Asian ideograph */ - {"\x9B", 0, 0x274A30}, /* East Asian ideograph */ - {"\xA9", 0, 0x274A33}, /* East Asian ideograph */ - {"\x81", 0, 0x274A36}, /* East Asian ideograph */ - {"\x82", 0, 0x274A38}, /* East Asian ideograph */ - {"\x83", 0, 0x285150}, /* East Asian ideograph */ - {"\xA8", 0, 0x285424}, /* East Asian ideograph */ - {"\xAC", 0, 0x28544F}, /* East Asian ideograph */ - {"\xB1", 0, 0x2D4954}, /* East Asian ideograph */ - {"\x9F", 0, 0x2D496B}, /* East Asian ideograph */ - {"\x96", 0, 0x33494A}, /* East Asian ideograph */ - {"\x80", 0, 0x706C43}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page146 = { - marc8r_31page146_flat, 0 -}; -/* PAGE 145 */ -struct yaz_iconv_trie_flat marc8r_31page145_flat[] = { - {"\x95", 0, 0x21494B}, /* East Asian ideograph */ - {"\x8E", 0, 0x21494C}, /* East Asian ideograph */ - {"\x92", 0, 0x21494D}, /* East Asian ideograph */ - {"\x99", 0, 0x21494E}, /* East Asian ideograph */ - {"\x8A", 0, 0x21494F}, /* East Asian ideograph */ - {"\xAB", 0, 0x214950}, /* East Asian ideograph */ - {"\xBA", 0, 0x214951}, /* East Asian ideograph */ - {"\xAC", 0, 0x214952}, /* East Asian ideograph */ - {"\xB3", 0, 0x214953}, /* East Asian ideograph */ - {"\xAF", 0, 0x214954}, /* East Asian ideograph */ - {"\xAD", 0, 0x214955}, /* East Asian ideograph */ - {"\xAE", 0, 0x214956}, /* East Asian ideograph */ - {"\xB8", 0, 0x214957}, /* East Asian ideograph */ - {"\x93", 0, 0x225040}, /* East Asian ideograph */ - {"\x86", 0, 0x225042}, /* East Asian ideograph */ - {"\x96", 0, 0x225048}, /* East Asian ideograph */ - {"\x84", 0, 0x225049}, /* East Asian ideograph */ - {"\x81", 0, 0x22504A}, /* East Asian ideograph */ - {"\x88", 0, 0x225056}, /* East Asian ideograph */ - {"\x98", 0, 0x225057}, /* East Asian ideograph */ - {"\x8C", 0, 0x225059}, /* East Asian ideograph */ - {"\xB7", 0, 0x22505C}, /* East Asian ideograph */ - {"\xA1", 0, 0x225062}, /* East Asian ideograph */ - {"\xA3", 0, 0x225063}, /* East Asian ideograph */ - {"\xA7", 0, 0x22506F}, /* East Asian ideograph */ - {"\xB5", 0, 0x225071}, /* East Asian ideograph */ - {"\xBF", 0, 0x225072}, /* East Asian ideograph */ - {"\xA9", 0, 0x225073}, /* East Asian ideograph */ - {"\xBC", 0, 0x27496A}, /* East Asian ideograph */ - {"\x80", 0, 0x27496F}, /* East Asian ideograph */ - {"\xBD", 0, 0x274A21}, /* East Asian ideograph */ - {"\x96", 0, 0x274A22}, /* East Asian ideograph */ - {"\x89", 0, 0x274A37}, /* East Asian ideograph */ - {"\xB9", 0, 0x27626A}, /* East Asian ideograph */ - {"\x9C", 0, 0x285252}, /* East Asian ideograph */ - {"\x9D", 0, 0x28533C}, /* East Asian ideograph */ - {"\xB0", 0, 0x2D4956}, /* East Asian ideograph */ - {"\xA4", 0, 0x2D4971}, /* East Asian ideograph */ - {"\x85", 0, 0x2D526B}, /* East Asian ideograph */ - {"\xB1", 0, 0x2E506D}, /* East Asian ideograph */ - {"\x94", 0, 0x39526B}, /* East Asian ideograph */ - {"\xBB", 0, 0x706C42}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page145 = { - marc8r_31page145_flat, 0 -}; -/* PAGE 144 */ -struct yaz_iconv_trie_flat marc8r_31page144_flat[] = { - {"\x8C", 0, 0x214940}, /* East Asian ideograph */ - {"\x91", 0, 0x214941}, /* East Asian ideograph */ - {"\x98", 0, 0x214942}, /* East Asian ideograph */ - {"\xA3", 0, 0x214943}, /* East Asian ideograph */ - {"\xA4", 0, 0x214944}, /* East Asian ideograph */ - {"\xAB", 0, 0x214945}, /* East Asian ideograph */ - {"\xB0", 0, 0x214946}, /* East Asian ideograph */ - {"\xB6", 0, 0x214947}, /* East Asian ideograph */ - {"\xBC", 0, 0x214948}, /* East Asian ideograph */ - {"\xB8", 0, 0x214949}, /* East Asian ideograph */ - {"\xBD", 0, 0x21494A}, /* East Asian ideograph */ - {"\x83", 0, 0x224F5D}, /* East Asian ideograph */ - {"\x84", 0, 0x224F61}, /* East Asian ideograph */ - {"\x87", 0, 0x224F67}, /* East Asian ideograph */ - {"\x89", 0, 0x224F69}, /* East Asian ideograph */ - {"\x95", 0, 0x224F6B}, /* East Asian ideograph */ - {"\x92", 0, 0x224F71}, /* East Asian ideograph */ - {"\x9C", 0, 0x224F73}, /* East Asian ideograph */ - {"\x99", 0, 0x224F78}, /* East Asian ideograph */ - {"\x9E", 0, 0x224F7B}, /* East Asian ideograph */ - {"\xA1", 0, 0x224F7C}, /* East Asian ideograph */ - {"\x9D", 0, 0x224F7D}, /* East Asian ideograph */ - {"\xA6", 0, 0x225025}, /* East Asian ideograph */ - {"\xA5", 0, 0x225027}, /* East Asian ideograph */ - {"\xA8", 0, 0x225028}, /* East Asian ideograph */ - {"\x94", 0, 0x225029}, /* East Asian ideograph */ - {"\xB4", 0, 0x225039}, /* East Asian ideograph */ - {"\xBA", 0, 0x22503B}, /* East Asian ideograph */ - {"\xAD", 0, 0x274842}, /* East Asian ideograph */ - {"\xBE", 0, 0x27494A}, /* East Asian ideograph */ - {"\xAF", 0, 0x274A24}, /* East Asian ideograph */ - {"\xBF", 0, 0x274A31}, /* East Asian ideograph */ - {"\xB5", 0, 0x275F6F}, /* East Asian ideograph */ - {"\x8F", 0, 0x284F7D}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D3272}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page144 = { - marc8r_31page144_flat, 0 -}; -/* PAGE 143 */ -struct yaz_iconv_trie_flat marc8r_31page143_flat[] = { - {"\x8B", 0, 0x214931}, /* East Asian ideograph */ - {"\x89", 0, 0x214932}, /* East Asian ideograph */ - {"\x86", 0, 0x214933}, /* East Asian ideograph */ - {"\x91", 0, 0x214935}, /* East Asian ideograph */ - {"\x8F", 0, 0x214937}, /* East Asian ideograph */ - {"\x9B", 0, 0x214938}, /* East Asian ideograph */ - {"\x9A", 0, 0x214939}, /* East Asian ideograph */ - {"\xA8", 0, 0x21493A}, /* East Asian ideograph */ - {"\x9D", 0, 0x21493B}, /* East Asian ideograph */ - {"\x95", 0, 0x21493C}, /* East Asian ideograph */ - {"\x9F", 0, 0x21493D}, /* East Asian ideograph */ - {"\xBE", 0, 0x21493F}, /* East Asian ideograph */ - {"\x85", 0, 0x224E66}, /* East Asian ideograph */ - {"\x8C", 0, 0x224E67}, /* East Asian ideograph */ - {"\x8D", 0, 0x224E6A}, /* East Asian ideograph */ - {"\xA6", 0, 0x224E72}, /* East Asian ideograph */ - {"\xA0", 0, 0x224F24}, /* East Asian ideograph */ - {"\xA7", 0, 0x224F26}, /* East Asian ideograph */ - {"\x9E", 0, 0x224F2B}, /* East Asian ideograph (variant of EACC 4C4F2B) */ - {"\xAE", 0, 0x224F2F}, /* East Asian ideograph */ - {"\xAD", 0, 0x224F31}, /* East Asian ideograph */ - {"\xA1", 0, 0x224F35}, /* East Asian ideograph */ - {"\x98", 0, 0x224F39}, /* East Asian ideograph */ - {"\xA3", 0, 0x224F3A}, /* East Asian ideograph */ - {"\xBC", 0, 0x224F41}, /* East Asian ideograph */ - {"\xB5", 0, 0x224F44}, /* East Asian ideograph */ - {"\xB4", 0, 0x224F51}, /* East Asian ideograph */ - {"\xB9", 0, 0x224F53}, /* East Asian ideograph */ - {"\xBA", 0, 0x224F54}, /* East Asian ideograph */ - {"\x81", 0, 0x2D4853}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D493A}, /* East Asian ideograph */ - {"\xB2", 0, 0x2E4E41}, /* East Asian ideograph */ - {"\xB0", 0, 0x333D4C}, /* East Asian ideograph */ - {"\x9E", 0, 0x4C4F2B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page143 = { - marc8r_31page143_flat, 0 -}; -/* PAGE 142 */ -struct yaz_iconv_trie_dir marc8r_31page142_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {144, 0, 0}, - {145, 0, 0}, - {146, 0, 0}, - {147, 0, 0}, - {148, 0, 0}, - {149, 0, 0}, - {150, 0, 0}, - {151, 0, 0}, - {152, 0, 0}, - {153, 0, 0}, - {154, 0, 0}, - {155, 0, 0}, - {156, 0, 0}, - {157, 0, 0}, - {158, 0, 0}, - {159, 0, 0}, - {160, 0, 0}, - {161, 0, 0}, - {162, 0, 0}, - {163, 0, 0}, - {164, 0, 0}, - {165, 0, 0}, - {166, 0, 0}, - {167, 0, 0}, - {168, 0, 0}, - {169, 0, 0}, - {170, 0, 0}, - {171, 0, 0}, - {172, 0, 0}, - {173, 0, 0}, - {174, 0, 0}, - {175, 0, 0}, - {176, 0, 0}, - {177, 0, 0}, - {178, 0, 0}, - {179, 0, 0}, - {180, 0, 0}, - {181, 0, 0}, - {182, 0, 0}, - {184, 0, 0}, - {185, 0, 0}, - {186, 0, 0}, - {187, 0, 0}, - {188, 0, 0}, - {189, 0, 0}, - {190, 0, 0}, - {191, 0, 0}, - {192, 0, 0}, - {193, 0, 0}, - {194, 0, 0}, - {195, 0, 0}, - {196, 0, 0}, - {197, 0, 0}, - {198, 0, 0}, - {199, 0, 0}, - {200, 0, 0}, - {201, 0, 0}, - {202, 0, 0}, - {203, 0, 0}, - {332, 0, 0}, - {204, 0, 0}, - {205, 0, 0}, - {206, 0, 0}, - {207, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page142 = { - 0, marc8r_31page142_dir -}; -/* PAGE 141 */ -struct yaz_iconv_trie_flat marc8r_31page141_flat[] = { - {"\x82", 0, 0x21487A}, /* East Asian ideograph */ - {"\x83", 0, 0x21487C}, /* East Asian ideograph */ - {"\x81", 0, 0x214922}, /* East Asian ideograph */ - {"\x80", 0, 0x214924}, /* East Asian ideograph */ - {"\x9F", 0, 0x214926}, /* East Asian ideograph */ - {"\x98", 0, 0x214927}, /* East Asian ideograph */ - {"\xB1", 0, 0x214928}, /* East Asian ideograph */ - {"\xA0", 0, 0x214929}, /* East Asian ideograph */ - {"\xAF", 0, 0x21492A}, /* East Asian ideograph */ - {"\xAB", 0, 0x21492B}, /* East Asian ideograph (variant of EACC 4B492B) */ - {"\xA1", 0, 0x21492C}, /* East Asian ideograph */ - {"\xA4", 0, 0x21492D}, /* East Asian ideograph */ - {"\xBA", 0, 0x214934}, /* East Asian ideograph */ - {"\xBE", 0, 0x214936}, /* East Asian ideograph */ - {"\x86", 0, 0x224D7C}, /* East Asian ideograph */ - {"\x87", 0, 0x224E26}, /* East Asian ideograph */ - {"\x89", 0, 0x224E2D}, /* East Asian ideograph */ - {"\x88", 0, 0x224E2F}, /* East Asian ideograph */ - {"\x8A", 0, 0x224E32}, /* East Asian ideograph */ - {"\x99", 0, 0x224E43}, /* East Asian ideograph */ - {"\x9A", 0, 0x224E44}, /* East Asian ideograph */ - {"\x94", 0, 0x224E50}, /* East Asian ideograph */ - {"\xA9", 0, 0x224E56}, /* East Asian ideograph */ - {"\xB8", 0, 0x224E57}, /* East Asian ideograph */ - {"\x9E", 0, 0x224E5D}, /* East Asian ideograph */ - {"\xAE", 0, 0x224E5E}, /* East Asian ideograph */ - {"\xB0", 0, 0x224E62}, /* East Asian ideograph */ - {"\x91", 0, 0x27493A}, /* East Asian ideograph */ - {"\x92", 0, 0x27493C}, /* East Asian ideograph */ - {"\xBC", 0, 0x2D4738}, /* East Asian ideograph */ - {"\x95", 0, 0x2D4844}, /* East Asian ideograph */ - {"\xB6", 0, 0x2D5E61}, /* East Asian ideograph */ - {"\xAC", 0, 0x334755}, /* East Asian ideograph */ - {"\x9B", 0, 0x455564}, /* East Asian ideograph (Version J extension) */ - {"\xB3", 0, 0x4B4874}, /* East Asian ideograph */ - {"\xAB", 0, 0x4B492B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page141 = { - marc8r_31page141_flat, 0 -}; -/* PAGE 140 */ -struct yaz_iconv_trie_flat marc8r_31page140_flat[] = { - {"\x88", 0, 0x21486A}, /* East Asian ideograph */ - {"\x84", 0, 0x21486B}, /* East Asian ideograph */ - {"\x97", 0, 0x21486E}, /* East Asian ideograph */ - {"\x86", 0, 0x214871}, /* East Asian ideograph */ - {"\x8E", 0, 0x214872}, /* East Asian ideograph */ - {"\xB1", 0, 0x21487B}, /* East Asian ideograph */ - {"\xA7", 0, 0x21487D}, /* East Asian ideograph */ - {"\xA1", 0, 0x21487E}, /* East Asian ideograph */ - {"\xA4", 0, 0x214921}, /* East Asian ideograph */ - {"\xB3", 0, 0x214925}, /* East Asian ideograph */ - {"\x80", 0, 0x21492E}, /* East Asian ideograph */ - {"\x95", 0, 0x224C64}, /* East Asian ideograph */ - {"\x9D", 0, 0x224D24}, /* East Asian ideograph */ - {"\x87", 0, 0x224D27}, /* East Asian ideograph */ - {"\x90", 0, 0x224D35}, /* East Asian ideograph */ - {"\x8D", 0, 0x224D37}, /* East Asian ideograph */ - {"\x92", 0, 0x224D39}, /* East Asian ideograph */ - {"\x89", 0, 0x224D3A}, /* East Asian ideograph */ - {"\x8C", 0, 0x224D3C}, /* East Asian ideograph */ - {"\x8B", 0, 0x224D4D}, /* East Asian ideograph */ - {"\xB6", 0, 0x224D73}, /* East Asian ideograph */ - {"\x9F", 0, 0x224D74}, /* East Asian ideograph */ - {"\xA6", 0, 0x224D79}, /* East Asian ideograph */ - {"\xBC", 0, 0x224D7D}, /* East Asian ideograph */ - {"\xAA", 0, 0x224E21}, /* East Asian ideograph */ - {"\xBF", 0, 0x224E25}, /* East Asian ideograph */ - {"\xA0", 0, 0x224E30}, /* East Asian ideograph */ - {"\xB4", 0, 0x224E35}, /* East Asian ideograph */ - {"\xAF", 0, 0x224E37}, /* East Asian ideograph */ - {"\xA8", 0, 0x224E3C}, /* East Asian ideograph */ - {"\xA5", 0, 0x224E40}, /* East Asian ideograph */ - {"\xB0", 0, 0x224E41}, /* East Asian ideograph */ - {"\xAE", 0, 0x224E42}, /* East Asian ideograph */ - {"\x9C", 0, 0x27493F}, /* East Asian ideograph */ - {"\x94", 0, 0x2D4756}, /* East Asian ideograph */ - {"\x82", 0, 0x2D486B}, /* East Asian ideograph */ - {"\x97", 0, 0x2D486E}, /* East Asian ideograph */ - {"\xA3", 0, 0x2E4873}, /* East Asian ideograph */ - {"\xB9", 0, 0x33475E}, /* East Asian ideograph */ - {"\x81", 0, 0x33492E}, /* East Asian ideograph */ - {"\x91", 0, 0x4B484C}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B4925}, /* East Asian ideograph (variant of EACC 214925) */ - {"\x99", 0, 0x4C4D63}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page140 = { - marc8r_31page140_flat, 0 -}; -/* PAGE 139 */ -struct yaz_iconv_trie_flat marc8r_31page139_flat[] = { - {"\xBC", 0, 0x214869}, /* East Asian ideograph */ - {"\x91", 0, 0x21486C}, /* East Asian ideograph */ - {"\xA4", 0, 0x21486D}, /* East Asian ideograph */ - {"\x94", 0, 0x21486F}, /* East Asian ideograph */ - {"\xBA", 0, 0x214870}, /* East Asian ideograph */ - {"\xAD", 0, 0x214873}, /* East Asian ideograph */ - {"\x9B", 0, 0x214874}, /* East Asian ideograph */ - {"\xAE", 0, 0x214875}, /* East Asian ideograph */ - {"\xB8", 0, 0x214876}, /* East Asian ideograph */ - {"\xA6", 0, 0x214877}, /* East Asian ideograph */ - {"\xB0", 0, 0x214878}, /* East Asian ideograph */ - {"\x98", 0, 0x214879}, /* East Asian ideograph */ - {"\xA3", 0, 0x224C3D}, /* East Asian ideograph */ - {"\x81", 0, 0x224C62}, /* East Asian ideograph */ - {"\x89", 0, 0x224C6B}, /* East Asian ideograph */ - {"\xBE", 0, 0x224D23}, /* East Asian ideograph */ - {"\xAF", 0, 0x224D2B}, /* East Asian ideograph */ - {"\x9A", 0, 0x224D2F}, /* East Asian ideograph */ - {"\xA0", 0, 0x224D30}, /* East Asian ideograph */ - {"\xA2", 0, 0x224D3D}, /* East Asian ideograph (variant of EACC 4C4D3D) */ - {"\xAC", 0, 0x224D4B}, /* East Asian ideograph */ - {"\x95", 0, 0x224D5A}, /* East Asian ideograph */ - {"\xB2", 0, 0x224D5F}, /* East Asian ideograph */ - {"\x97", 0, 0x224D62}, /* East Asian ideograph */ - {"\x9F", 0, 0x224D63}, /* East Asian ideograph */ - {"\x9D", 0, 0x224D68}, /* East Asian ideograph */ - {"\x9E", 0, 0x224E2E}, /* East Asian ideograph */ - {"\x87", 0, 0x27493D}, /* East Asian ideograph */ - {"\x8B", 0, 0x284E41}, /* East Asian ideograph */ - {"\x8D", 0, 0x284E62}, /* East Asian ideograph */ - {"\x84", 0, 0x2D485C}, /* East Asian ideograph */ - {"\x9C", 0, 0x2D4874}, /* East Asian ideograph */ - {"\xB4", 0, 0x2E4E72}, /* East Asian ideograph */ - {"\x85", 0, 0x4B4940}, /* East Asian ideograph */ - {"\xA2", 0, 0x4C4D3D}, /* East Asian ideograph */ - {"\x86", 0, 0x4C4F24}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page139 = { - marc8r_31page139_flat, 0 -}; -/* PAGE 138 */ -struct yaz_iconv_trie_flat marc8r_31page138_flat[] = { - {"\xB3", 0, 0x21484D}, /* East Asian ideograph */ - {"\xA9", 0, 0x214851}, /* East Asian ideograph */ - {"\x94", 0, 0x214852}, /* East Asian ideograph */ - {"\xBE", 0, 0x214853}, /* East Asian ideograph */ - {"\xAC", 0, 0x214854}, /* East Asian ideograph */ - {"\xB2", 0, 0x214855}, /* East Asian ideograph */ - {"\x8F", 0, 0x214856}, /* East Asian ideograph */ - {"\xA2", 0, 0x214857}, /* East Asian ideograph (variant of EACC 4B4857) */ - {"\xA3", 0, 0x214859}, /* East Asian ideograph */ - {"\xB8", 0, 0x21485A}, /* East Asian ideograph */ - {"\x95", 0, 0x21485B}, /* East Asian ideograph */ - {"\xB1", 0, 0x21485C}, /* East Asian ideograph */ - {"\x82", 0, 0x21485D}, /* East Asian ideograph */ - {"\x86", 0, 0x21485E}, /* East Asian ideograph */ - {"\xAB", 0, 0x214860}, /* East Asian ideograph */ - {"\xAF", 0, 0x214861}, /* East Asian ideograph */ - {"\xA0", 0, 0x214862}, /* East Asian ideograph */ - {"\xBF", 0, 0x214863}, /* East Asian ideograph */ - {"\x81", 0, 0x214865}, /* East Asian ideograph */ - {"\x91", 0, 0x214866}, /* East Asian ideograph */ - {"\xAA", 0, 0x214868}, /* East Asian ideograph */ - {"\xB7", 0, 0x224C30}, /* East Asian ideograph */ - {"\x89", 0, 0x224C35}, /* East Asian ideograph */ - {"\xBB", 0, 0x224C3C}, /* East Asian ideograph */ - {"\x92", 0, 0x224C3E}, /* East Asian ideograph */ - {"\xA6", 0, 0x224C3F}, /* East Asian ideograph */ - {"\x9A", 0, 0x224C41}, /* East Asian ideograph */ - {"\x99", 0, 0x224C43}, /* East Asian ideograph */ - {"\x80", 0, 0x224C44}, /* East Asian ideograph */ - {"\xA4", 0, 0x224C4B}, /* East Asian ideograph */ - {"\x98", 0, 0x224C51}, /* East Asian ideograph */ - {"\x9F", 0, 0x224C57}, /* East Asian ideograph */ - {"\x8A", 0, 0x224C5A}, /* East Asian ideograph */ - {"\xB6", 0, 0x224C5E}, /* East Asian ideograph */ - {"\xAD", 0, 0x224C65}, /* East Asian ideograph */ - {"\xB4", 0, 0x224C67}, /* East Asian ideograph */ - {"\xB0", 0, 0x224C6D}, /* East Asian ideograph */ - {"\x88", 0, 0x224C78}, /* East Asian ideograph */ - {"\x8E", 0, 0x224C79}, /* East Asian ideograph */ - {"\xB5", 0, 0x224C7B}, /* East Asian ideograph */ - {"\x8B", 0, 0x224D44}, /* East Asian ideograph */ - {"\x93", 0, 0x284F6B}, /* East Asian ideograph */ - {"\xA2", 0, 0x4B4857}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page138 = { - marc8r_31page138_flat, 0 -}; -/* PAGE 137 */ -struct yaz_iconv_trie_flat marc8r_31page137_flat[] = { - {"\xB6", 0, 0x214838}, /* East Asian ideograph */ - {"\xAF", 0, 0x21483B}, /* East Asian ideograph */ - {"\xA2", 0, 0x21483C}, /* East Asian ideograph */ - {"\x9D", 0, 0x21483D}, /* East Asian ideograph */ - {"\xA5", 0, 0x21483F}, /* East Asian ideograph */ - {"\x98", 0, 0x214840}, /* East Asian ideograph */ - {"\x90", 0, 0x214841}, /* East Asian ideograph */ - {"\xBC", 0, 0x214844}, /* East Asian ideograph */ - {"\xAB", 0, 0x214845}, /* East Asian ideograph */ - {"\xAA", 0, 0x21484A}, /* East Asian ideograph */ - {"\x96", 0, 0x21484B}, /* East Asian ideograph */ - {"\x9C", 0, 0x21484C}, /* East Asian ideograph */ - {"\x8A", 0, 0x224A60}, /* East Asian ideograph */ - {"\x84", 0, 0x224B2C}, /* East Asian ideograph */ - {"\x8B", 0, 0x224B3B}, /* East Asian ideograph */ - {"\x9B", 0, 0x224B45}, /* East Asian ideograph */ - {"\x9F", 0, 0x224B46}, /* East Asian ideograph */ - {"\x8F", 0, 0x224B4A}, /* East Asian ideograph */ - {"\x93", 0, 0x224B4D}, /* East Asian ideograph */ - {"\xA0", 0, 0x224B4F}, /* East Asian ideograph */ - {"\xB1", 0, 0x224B51}, /* East Asian ideograph */ - {"\xA8", 0, 0x224B57}, /* East Asian ideograph */ - {"\x92", 0, 0x224B59}, /* East Asian ideograph */ - {"\xA7", 0, 0x224B5A}, /* East Asian ideograph */ - {"\x8E", 0, 0x224B5E}, /* East Asian ideograph */ - {"\xBD", 0, 0x224B61}, /* East Asian ideograph */ - {"\xBB", 0, 0x224B69}, /* East Asian ideograph */ - {"\xB3", 0, 0x224B6C}, /* East Asian ideograph */ - {"\xB7", 0, 0x224B6D}, /* East Asian ideograph */ - {"\xA4", 0, 0x224B75}, /* East Asian ideograph */ - {"\xB4", 0, 0x224C24}, /* East Asian ideograph */ - {"\xB2", 0, 0x224C26}, /* East Asian ideograph */ - {"\xB5", 0, 0x224C29}, /* East Asian ideograph */ - {"\x88", 0, 0x224D58}, /* East Asian ideograph */ - {"\x83", 0, 0x274878}, /* East Asian ideograph */ - {"\x85", 0, 0x274934}, /* East Asian ideograph */ - {"\xBA", 0, 0x2D3B52}, /* East Asian ideograph */ - {"\xA6", 0, 0x2E4A6B}, /* East Asian ideograph */ - {"\x86", 0, 0x2E4C7B}, /* East Asian ideograph */ - {"\x80", 0, 0x4B4858}, /* East Asian ideograph */ - {"\x89", 0, 0x4B4866}, /* East Asian ideograph */ - {"\x82", 0, 0x695E63}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page137 = { - marc8r_31page137_flat, 0 -}; -/* PAGE 136 */ -struct yaz_iconv_trie_flat marc8r_31page136_flat[] = { - {"\x93", 0, 0x214837}, /* East Asian ideograph */ - {"\x82", 0, 0x214839}, /* East Asian ideograph */ - {"\x85", 0, 0x214842}, /* East Asian ideograph */ - {"\x87", 0, 0x214843}, /* East Asian ideograph */ - {"\x91", 0, 0x214846}, /* East Asian ideograph */ - {"\x8B", 0, 0x214847}, /* East Asian ideograph */ - {"\x84", 0, 0x214848}, /* East Asian ideograph */ - {"\x94", 0, 0x214849}, /* East Asian ideograph */ - {"\xB4", 0, 0x21484E}, /* East Asian ideograph */ - {"\xAC", 0, 0x21484F}, /* East Asian ideograph */ - {"\xBE", 0, 0x214850}, /* East Asian ideograph */ - {"\xBF", 0, 0x214858}, /* East Asian ideograph */ - {"\xAF", 0, 0x21485F}, /* East Asian ideograph */ - {"\xB2", 0, 0x214864}, /* East Asian ideograph */ - {"\x8C", 0, 0x214867}, /* East Asian ideograph */ - {"\x8E", 0, 0x224B43}, /* East Asian ideograph */ - {"\x88", 0, 0x224B48}, /* East Asian ideograph */ - {"\x98", 0, 0x224B49}, /* East Asian ideograph */ - {"\x99", 0, 0x224B60}, /* East Asian ideograph */ - {"\x81", 0, 0x224B63}, /* East Asian ideograph */ - {"\x89", 0, 0x224B6A}, /* East Asian ideograph */ - {"\x8F", 0, 0x224B79}, /* East Asian ideograph */ - {"\x8A", 0, 0x224B7C}, /* East Asian ideograph */ - {"\x95", 0, 0x224B7D}, /* East Asian ideograph */ - {"\x83", 0, 0x224C21}, /* East Asian ideograph */ - {"\xB8", 0, 0x224C2E}, /* East Asian ideograph */ - {"\xBD", 0, 0x224C34}, /* East Asian ideograph */ - {"\xB6", 0, 0x224C42}, /* East Asian ideograph */ - {"\xB9", 0, 0x224C60}, /* East Asian ideograph */ - {"\xAE", 0, 0x224C61}, /* East Asian ideograph */ - {"\xBA", 0, 0x224C76}, /* East Asian ideograph */ - {"\xAB", 0, 0x224C77}, /* East Asian ideograph */ - {"\xA1", 0, 0x274858}, /* East Asian ideograph */ - {"\x9E", 0, 0x27485F}, /* East Asian ideograph */ - {"\xA8", 0, 0x274928}, /* East Asian ideograph */ - {"\xA5", 0, 0x27492B}, /* East Asian ideograph */ - {"\xA4", 0, 0x274936}, /* East Asian ideograph */ - {"\xA9", 0, 0x274942}, /* East Asian ideograph */ - {"\xA6", 0, 0x274944}, /* East Asian ideograph */ - {"\x97", 0, 0x284D59}, /* East Asian ideograph */ - {"\xA2", 0, 0x284E66}, /* East Asian ideograph */ - {"\xA0", 0, 0x284F61}, /* East Asian ideograph */ - {"\x9F", 0, 0x285029}, /* East Asian ideograph */ - {"\x9A", 0, 0x2D4850}, /* East Asian ideograph */ - {"\xB7", 0, 0x2F5D3C}, /* East Asian ideograph */ - {"\x9E", 0, 0x4B485F}, /* East Asian ideograph (variant of EACC 27485F) */ - {"\x9D", 0, 0x4C4F26}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page136 = { - marc8r_31page136_flat, 0 -}; -/* PAGE 135 */ -struct yaz_iconv_trie_flat marc8r_31page135_flat[] = { - {"\xA1", 0, 0x21477A}, /* East Asian ideograph */ - {"\xB8", 0, 0x21477B}, /* East Asian ideograph */ - {"\xB2", 0, 0x21477C}, /* East Asian ideograph */ - {"\xA0", 0, 0x21477E}, /* East Asian ideograph */ - {"\x9A", 0, 0x214822}, /* East Asian ideograph */ - {"\xAF", 0, 0x214824}, /* East Asian ideograph */ - {"\xA3", 0, 0x214827}, /* East Asian ideograph */ - {"\xA4", 0, 0x214828}, /* East Asian ideograph */ - {"\x9B", 0, 0x214829}, /* East Asian ideograph */ - {"\xA5", 0, 0x21482A}, /* East Asian ideograph */ - {"\xBA", 0, 0x21482C}, /* East Asian ideograph */ - {"\xAD", 0, 0x21482E}, /* East Asian ideograph */ - {"\xB4", 0, 0x21482F}, /* East Asian ideograph */ - {"\xAC", 0, 0x214830}, /* East Asian ideograph */ - {"\xA6", 0, 0x214831}, /* East Asian ideograph */ - {"\xBE", 0, 0x214833}, /* East Asian ideograph */ - {"\x99", 0, 0x214835}, /* East Asian ideograph */ - {"\x9D", 0, 0x214836}, /* East Asian ideograph */ - {"\x8F", 0, 0x224979}, /* East Asian ideograph */ - {"\x92", 0, 0x224A44}, /* East Asian ideograph */ - {"\x9F", 0, 0x224A4C}, /* East Asian ideograph */ - {"\xA7", 0, 0x224A50}, /* East Asian ideograph */ - {"\xBC", 0, 0x224A58}, /* East Asian ideograph */ - {"\xA8", 0, 0x224B22}, /* East Asian ideograph */ - {"\xB1", 0, 0x224B26}, /* East Asian ideograph */ - {"\xAE", 0, 0x224B2E}, /* East Asian ideograph */ - {"\xB6", 0, 0x224B30}, /* East Asian ideograph */ - {"\xB0", 0, 0x224B33}, /* East Asian ideograph */ - {"\xB9", 0, 0x224B36}, /* East Asian ideograph */ - {"\xAA", 0, 0x224B40}, /* East Asian ideograph */ - {"\xA2", 0, 0x224B42}, /* East Asian ideograph */ - {"\x8A", 0, 0x274774}, /* East Asian ideograph */ - {"\x8D", 0, 0x274854}, /* East Asian ideograph */ - {"\x90", 0, 0x27485A}, /* East Asian ideograph */ - {"\x97", 0, 0x274864}, /* East Asian ideograph */ - {"\x94", 0, 0x274865}, /* East Asian ideograph */ - {"\x8E", 0, 0x274933}, /* East Asian ideograph */ - {"\x91", 0, 0x284E30}, /* East Asian ideograph */ - {"\x87", 0, 0x2D482F}, /* East Asian ideograph */ - {"\xA9", 0, 0x2D4845}, /* East Asian ideograph */ - {"\xAB", 0, 0x334729}, /* East Asian ideograph */ - {"\x88", 0, 0x3F4926}, /* East Asian ideograph */ - {"\x95", 0, 0x454774}, /* East Asian ideograph */ - {"\x85", 0, 0x4B4761}, /* East Asian ideograph */ - {"\x93", 0, 0x4B484A}, /* East Asian ideograph */ - {"\x8B", 0, 0x4B492E}, /* East Asian ideograph */ - {"\x96", 0, 0x4B4931}, /* East Asian ideograph */ - {"\x8C", 0, 0x4C4C35}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page135 = { - marc8r_31page135_flat, 0 -}; -/* PAGE 134 */ -struct yaz_iconv_trie_flat marc8r_31page134_flat[] = { - {"\x94", 0, 0x214779}, /* East Asian ideograph */ - {"\xA7", 0, 0x21477D}, /* East Asian ideograph */ - {"\x9B", 0, 0x214821}, /* East Asian ideograph */ - {"\x96", 0, 0x214823}, /* East Asian ideograph */ - {"\xAE", 0, 0x214825}, /* East Asian ideograph */ - {"\x98", 0, 0x214826}, /* East Asian ideograph */ - {"\x8A", 0, 0x21482B}, /* East Asian ideograph */ - {"\xAF", 0, 0x21482D}, /* East Asian ideograph */ - {"\x8D", 0, 0x214832}, /* East Asian ideograph */ - {"\x83", 0, 0x214834}, /* East Asian ideograph */ - {"\x89", 0, 0x224A55}, /* East Asian ideograph */ - {"\x8B", 0, 0x224A62}, /* East Asian ideograph */ - {"\xA2", 0, 0x224A66}, /* East Asian ideograph */ - {"\x91", 0, 0x224A6A}, /* East Asian ideograph */ - {"\x84", 0, 0x224A6B}, /* East Asian ideograph */ - {"\xA3", 0, 0x224A6D}, /* East Asian ideograph */ - {"\xB3", 0, 0x224A71}, /* East Asian ideograph */ - {"\x8F", 0, 0x224A74}, /* East Asian ideograph */ - {"\x8E", 0, 0x224A77}, /* East Asian ideograph */ - {"\x9C", 0, 0x224B24}, /* East Asian ideograph */ - {"\x9E", 0, 0x224B28}, /* East Asian ideograph */ - {"\x9D", 0, 0x224B31}, /* East Asian ideograph */ - {"\xB2", 0, 0x224B32}, /* East Asian ideograph */ - {"\x93", 0, 0x224B34}, /* East Asian ideograph */ - {"\xB1", 0, 0x224B37}, /* East Asian ideograph */ - {"\xA9", 0, 0x224B38}, /* East Asian ideograph */ - {"\xAB", 0, 0x224B39}, /* East Asian ideograph */ - {"\xB6", 0, 0x224B3E}, /* East Asian ideograph */ - {"\x8C", 0, 0x224B41}, /* East Asian ideograph */ - {"\xBF", 0, 0x274844}, /* East Asian ideograph */ - {"\xBE", 0, 0x274943}, /* East Asian ideograph */ - {"\xBC", 0, 0x2E493B}, /* East Asian ideograph */ - {"\x9F", 0, 0x334730}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page134 = { - marc8r_31page134_flat, 0 -}; -/* PAGE 133 */ -struct yaz_iconv_trie_flat marc8r_31page133_flat[] = { - {"\x99", 0, 0x214758}, /* East Asian ideograph */ - {"\x9A", 0, 0x214759}, /* East Asian ideograph */ - {"\xB3", 0, 0x21475A}, /* East Asian ideograph */ - {"\xA4", 0, 0x21475C}, /* East Asian ideograph */ - {"\xA1", 0, 0x21475E}, /* East Asian ideograph */ - {"\x92", 0, 0x21475F}, /* East Asian ideograph */ - {"\xB8", 0, 0x214761}, /* East Asian ideograph */ - {"\x87", 0, 0x214762}, /* East Asian ideograph */ - {"\x8B", 0, 0x214763}, /* East Asian ideograph */ - {"\x85", 0, 0x214764}, /* East Asian ideograph */ - {"\x9E", 0, 0x214765}, /* East Asian ideograph */ - {"\xBA", 0, 0x214768}, /* East Asian ideograph */ - {"\xB9", 0, 0x214769}, /* East Asian ideograph */ - {"\x8C", 0, 0x21476A}, /* East Asian ideograph */ - {"\xB7", 0, 0x21476B}, /* East Asian ideograph */ - {"\x91", 0, 0x21476D}, /* East Asian ideograph */ - {"\xB1", 0, 0x21476E}, /* East Asian ideograph */ - {"\xA8", 0, 0x21476F}, /* East Asian ideograph */ - {"\xAB", 0, 0x214770}, /* East Asian ideograph */ - {"\x98", 0, 0x214771}, /* East Asian ideograph */ - {"\xBB", 0, 0x214772}, /* East Asian ideograph */ - {"\xAE", 0, 0x214773}, /* East Asian ideograph */ - {"\xB5", 0, 0x214774}, /* East Asian ideograph */ - {"\x86", 0, 0x214776}, /* East Asian ideograph */ - {"\xAA", 0, 0x214777}, /* East Asian ideograph */ - {"\x84", 0, 0x214778}, /* East Asian ideograph */ - {"\xAF", 0, 0x224935}, /* East Asian ideograph */ - {"\xAC", 0, 0x224960}, /* East Asian ideograph */ - {"\xA2", 0, 0x22496C}, /* East Asian ideograph */ - {"\x95", 0, 0x22496D}, /* East Asian ideograph */ - {"\xA9", 0, 0x22496E}, /* East Asian ideograph */ - {"\xB6", 0, 0x224971}, /* East Asian ideograph */ - {"\x9F", 0, 0x224A2A}, /* East Asian ideograph */ - {"\x93", 0, 0x224A2D}, /* East Asian ideograph */ - {"\xBC", 0, 0x224A32}, /* East Asian ideograph */ - {"\x9D", 0, 0x224A35}, /* East Asian ideograph */ - {"\x9C", 0, 0x224A36}, /* East Asian ideograph */ - {"\x9B", 0, 0x224A39}, /* East Asian ideograph */ - {"\xB0", 0, 0x224A46}, /* East Asian ideograph */ - {"\xA6", 0, 0x224A4A}, /* East Asian ideograph */ - {"\x80", 0, 0x27487B}, /* East Asian ideograph */ - {"\x96", 0, 0x2D514A}, /* East Asian ideograph */ - {"\xA5", 0, 0x2E4C35}, /* East Asian ideograph */ - {"\xA0", 0, 0x2E4E5D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page133 = { - marc8r_31page133_flat, 0 -}; -/* PAGE 132 */ -struct yaz_iconv_trie_flat marc8r_31page132_flat[] = { - {"\x95", 0, 0x21474A}, /* East Asian ideograph */ - {"\x87", 0, 0x21474E}, /* East Asian ideograph */ - {"\x88", 0, 0x21474F}, /* East Asian ideograph */ - {"\x93", 0, 0x214751}, /* East Asian ideograph */ - {"\x89", 0, 0x214752}, /* East Asian ideograph */ - {"\xBC", 0, 0x21475B}, /* East Asian ideograph */ - {"\xB2", 0, 0x21475D}, /* East Asian ideograph */ - {"\xAE", 0, 0x214760}, /* East Asian ideograph */ - {"\xAF", 0, 0x214766}, /* East Asian ideograph */ - {"\xB5", 0, 0x214767}, /* East Asian ideograph */ - {"\xB8", 0, 0x21476C}, /* East Asian ideograph */ - {"\x8E", 0, 0x214775}, /* East Asian ideograph */ - {"\xA5", 0, 0x224877}, /* East Asian ideograph */ - {"\x92", 0, 0x22487D}, /* East Asian ideograph */ - {"\x91", 0, 0x224929}, /* East Asian ideograph */ - {"\x81", 0, 0x22492C}, /* East Asian ideograph */ - {"\x8A", 0, 0x22492E}, /* East Asian ideograph */ - {"\x85", 0, 0x22493B}, /* East Asian ideograph */ - {"\x94", 0, 0x224943}, /* East Asian ideograph */ - {"\x98", 0, 0x224948}, /* East Asian ideograph */ - {"\x96", 0, 0x22494F}, /* East Asian ideograph */ - {"\xAB", 0, 0x224959}, /* East Asian ideograph */ - {"\xB4", 0, 0x22495A}, /* East Asian ideograph */ - {"\xAA", 0, 0x22495C}, /* East Asian ideograph */ - {"\xAC", 0, 0x22496A}, /* East Asian ideograph */ - {"\xB7", 0, 0x22496B}, /* East Asian ideograph */ - {"\xBF", 0, 0x22497B}, /* East Asian ideograph */ - {"\xA4", 0, 0x224A3D}, /* East Asian ideograph */ - {"\x82", 0, 0x27384D}, /* East Asian ideograph */ - {"\x8C", 0, 0x27477D}, /* East Asian ideograph */ - {"\xA1", 0, 0x274831}, /* East Asian ideograph */ - {"\xA8", 0, 0x274855}, /* East Asian ideograph */ - {"\x9F", 0, 0x274859}, /* East Asian ideograph */ - {"\xA6", 0, 0x27486D}, /* East Asian ideograph */ - {"\xA7", 0, 0x27486E}, /* East Asian ideograph */ - {"\x9B", 0, 0x27492D}, /* East Asian ideograph */ - {"\xA9", 0, 0x27492E}, /* East Asian ideograph */ - {"\x9E", 0, 0x284971}, /* East Asian ideograph */ - {"\x9D", 0, 0x284D27}, /* East Asian ideograph */ - {"\xA0", 0, 0x284D49}, /* East Asian ideograph */ - {"\x99", 0, 0x4B4759}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B4767}, /* East Asian ideograph (variant of EACC 214767) */ - {"\xA3", 0, 0x4B4835}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page132 = { - marc8r_31page132_flat, 0 -}; -/* PAGE 131 */ -struct yaz_iconv_trie_flat marc8r_31page131_flat[] = { - {"\x8B", 0, 0x21473C}, /* East Asian ideograph */ - {"\xB2", 0, 0x21473D}, /* East Asian ideograph */ - {"\xA5", 0, 0x21473E}, /* East Asian ideograph */ - {"\xB1", 0, 0x21473F}, /* East Asian ideograph */ - {"\xAA", 0, 0x214740}, /* East Asian ideograph */ - {"\x8C", 0, 0x214741}, /* East Asian ideograph */ - {"\x9E", 0, 0x214742}, /* East Asian ideograph */ - {"\x97", 0, 0x214743}, /* East Asian ideograph */ - {"\xBB", 0, 0x214744}, /* East Asian ideograph */ - {"\x9B", 0, 0x214745}, /* East Asian ideograph */ - {"\xB6", 0, 0x214746}, /* East Asian ideograph */ - {"\xBD", 0, 0x214747}, /* East Asian ideograph */ - {"\xBE", 0, 0x214748}, /* East Asian ideograph */ - {"\x9D", 0, 0x224837}, /* East Asian ideograph */ - {"\xA8", 0, 0x22483B}, /* East Asian ideograph */ - {"\xB9", 0, 0x224844}, /* East Asian ideograph */ - {"\xA6", 0, 0x22484D}, /* East Asian ideograph */ - {"\xA7", 0, 0x22484E}, /* East Asian ideograph */ - {"\x8F", 0, 0x22484F}, /* East Asian ideograph */ - {"\x8A", 0, 0x224850}, /* East Asian ideograph */ - {"\xBF", 0, 0x224851}, /* East Asian ideograph */ - {"\x87", 0, 0x22485A}, /* East Asian ideograph */ - {"\x84", 0, 0x22485B}, /* East Asian ideograph */ - {"\xAE", 0, 0x224860}, /* East Asian ideograph */ - {"\xB5", 0, 0x224861}, /* East Asian ideograph */ - {"\xBA", 0, 0x224862}, /* East Asian ideograph */ - {"\x99", 0, 0x224864}, /* East Asian ideograph */ - {"\x8E", 0, 0x224867}, /* East Asian ideograph */ - {"\xAB", 0, 0x22486A}, /* East Asian ideograph */ - {"\x91", 0, 0x22486B}, /* East Asian ideograph */ - {"\x80", 0, 0x22486C}, /* East Asian ideograph */ - {"\xA4", 0, 0x22486D}, /* East Asian ideograph */ - {"\xB3", 0, 0x22486F}, /* East Asian ideograph */ - {"\xB4", 0, 0x22492F}, /* East Asian ideograph (variant of EACC 34492F) */ - {"\x81", 0, 0x27486F}, /* East Asian ideograph */ - {"\x92", 0, 0x274941}, /* East Asian ideograph */ - {"\xBC", 0, 0x274F5C}, /* East Asian ideograph */ - {"\xA9", 0, 0x2D4729}, /* East Asian ideograph */ - {"\xB8", 0, 0x2E4D3D}, /* East Asian ideograph */ - {"\x9A", 0, 0x334740}, /* East Asian ideograph */ - {"\x9F", 0, 0x33474A}, /* East Asian ideograph */ - {"\xB4", 0, 0x34492F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page131 = { - marc8r_31page131_flat, 0 -}; -/* PAGE 130 */ -struct yaz_iconv_trie_flat marc8r_31page130_flat[] = { - {"\x81", 0, 0x21473B}, /* East Asian ideograph */ - {"\xAA", 0, 0x214749}, /* East Asian ideograph */ - {"\xB8", 0, 0x21474B}, /* East Asian ideograph */ - {"\xA6", 0, 0x21474C}, /* East Asian ideograph */ - {"\x99", 0, 0x21474D}, /* East Asian ideograph */ - {"\xAC", 0, 0x214750}, /* East Asian ideograph */ - {"\xAE", 0, 0x214753}, /* East Asian ideograph */ - {"\xB4", 0, 0x214754}, /* East Asian ideograph */ - {"\x9A", 0, 0x214755}, /* East Asian ideograph */ - {"\xA9", 0, 0x214756}, /* East Asian ideograph */ - {"\xB7", 0, 0x214757}, /* East Asian ideograph */ - {"\xA3", 0, 0x224873}, /* East Asian ideograph */ - {"\xAD", 0, 0x224925}, /* East Asian ideograph */ - {"\xAF", 0, 0x224926}, /* East Asian ideograph */ - {"\xA1", 0, 0x224928}, /* East Asian ideograph */ - {"\xB9", 0, 0x224934}, /* East Asian ideograph */ - {"\xBF", 0, 0x224939}, /* East Asian ideograph */ - {"\xA5", 0, 0x22493C}, /* East Asian ideograph */ - {"\x9E", 0, 0x22493E}, /* East Asian ideograph */ - {"\xA7", 0, 0x224940}, /* East Asian ideograph */ - {"\xA0", 0, 0x224946}, /* East Asian ideograph */ - {"\xBC", 0, 0x22494B}, /* East Asian ideograph */ - {"\xB0", 0, 0x22494C}, /* East Asian ideograph */ - {"\x85", 0, 0x274768}, /* East Asian ideograph */ - {"\x8B", 0, 0x274830}, /* East Asian ideograph */ - {"\x91", 0, 0x274833}, /* East Asian ideograph */ - {"\x86", 0, 0x274863}, /* East Asian ideograph */ - {"\x87", 0, 0x274871}, /* East Asian ideograph */ - {"\x93", 0, 0x27487C}, /* East Asian ideograph */ - {"\x8A", 0, 0x274922}, /* East Asian ideograph */ - {"\x8E", 0, 0x274926}, /* East Asian ideograph */ - {"\x8F", 0, 0x274937}, /* East Asian ideograph */ - {"\x83", 0, 0x284934}, /* East Asian ideograph */ - {"\x88", 0, 0x284B28}, /* East Asian ideograph */ - {"\x92", 0, 0x284C2E}, /* East Asian ideograph */ - {"\x94", 0, 0x284D2B}, /* East Asian ideograph */ - {"\x8D", 0, 0x284E42}, /* East Asian ideograph */ - {"\x85", 0, 0x2D4768}, /* East Asian ideograph (variant of EACC 274768) */ - {"\xA4", 0, 0x2E4747}, /* East Asian ideograph */ - {"\x84", 0, 0x33476F}, /* East Asian ideograph */ - {"\x9C", 0, 0x394928}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page130 = { - marc8r_31page130_flat, 0 -}; -/* PAGE 129 */ -struct yaz_iconv_trie_flat marc8r_31page129_flat[] = { - {"\xB3", 0, 0x21467E}, /* East Asian ideograph */ - {"\xA3", 0, 0x214721}, /* East Asian ideograph */ - {"\xB0", 0, 0x214722}, /* East Asian ideograph */ - {"\x93", 0, 0x214724}, /* East Asian ideograph */ - {"\xA5", 0, 0x214726}, /* East Asian ideograph */ - {"\x84", 0, 0x214729}, /* East Asian ideograph */ - {"\x95", 0, 0x21472A}, /* East Asian ideograph */ - {"\xA2", 0, 0x21472B}, /* East Asian ideograph */ - {"\xB1", 0, 0x21472F}, /* East Asian ideograph */ - {"\x81", 0, 0x214730}, /* East Asian ideograph */ - {"\x85", 0, 0x214732}, /* East Asian ideograph */ - {"\x97", 0, 0x214733}, /* East Asian ideograph */ - {"\x9B", 0, 0x214735}, /* East Asian ideograph */ - {"\xA1", 0, 0x214736}, /* East Asian ideograph */ - {"\x8A", 0, 0x214738}, /* East Asian ideograph */ - {"\x8C", 0, 0x214739}, /* East Asian ideograph */ - {"\x89", 0, 0x21473A}, /* East Asian ideograph */ - {"\xAB", 0, 0x224762}, /* East Asian ideograph */ - {"\xAE", 0, 0x224763}, /* East Asian ideograph */ - {"\x80", 0, 0x224764}, /* East Asian ideograph */ - {"\xAF", 0, 0x224766}, /* East Asian ideograph */ - {"\xB5", 0, 0x224772}, /* East Asian ideograph */ - {"\x82", 0, 0x22477D}, /* East Asian ideograph */ - {"\x98", 0, 0x224824}, /* East Asian ideograph */ - {"\x86", 0, 0x224826}, /* East Asian ideograph */ - {"\x8E", 0, 0x224828}, /* East Asian ideograph */ - {"\xA9", 0, 0x224829}, /* East Asian ideograph */ - {"\xB2", 0, 0x22482D}, /* East Asian ideograph */ - {"\xA0", 0, 0x22482F}, /* East Asian ideograph */ - {"\x91", 0, 0x224830}, /* East Asian ideograph */ - {"\x92", 0, 0x224832}, /* East Asian ideograph */ - {"\x9A", 0, 0x22485C}, /* East Asian ideograph */ - {"\xBE", 0, 0x27474E}, /* East Asian ideograph */ - {"\xAA", 0, 0x274759}, /* East Asian ideograph */ - {"\xBC", 0, 0x27486C}, /* East Asian ideograph */ - {"\xBD", 0, 0x274921}, /* East Asian ideograph */ - {"\x9E", 0, 0x274927}, /* East Asian ideograph */ - {"\xBB", 0, 0x274932}, /* East Asian ideograph */ - {"\xA8", 0, 0x27584C}, /* East Asian ideograph */ - {"\xB6", 0, 0x284E3E}, /* East Asian ideograph */ - {"\xB7", 0, 0x284F26}, /* East Asian ideograph */ - {"\xB8", 0, 0x284F39}, /* East Asian ideograph */ - {"\x90", 0, 0x2E4670}, /* East Asian ideograph */ - {"\x99", 0, 0x2E492F}, /* East Asian ideograph */ - {"\x94", 0, 0x2E6F35}, /* East Asian ideograph */ - {"\x9D", 0, 0x33483B}, /* East Asian ideograph */ - {"\x96", 0, 0x335461}, /* East Asian ideograph */ - {"\xBA", 0, 0x454738}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page129 = { - marc8r_31page129_flat, 0 -}; -/* PAGE 128 */ -struct yaz_iconv_trie_dir marc8r_31page128_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21466B} /* East Asian ideograph */, - {0, 0, 0x22475A} /* East Asian ideograph */, - {0, 0, 0x21467B} /* East Asian ideograph */, - {0, 0, 0x22473B} /* East Asian ideograph */, - {0, 0, 0x274841} /* East Asian ideograph */, - {0, 0, 0x224732} /* East Asian ideograph */, - {0, 0, 0x224751} /* East Asian ideograph */, - {0, 0, 0x274931} /* East Asian ideograph */, - {0, 0, 0x4B4676} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21466F} /* East Asian ideograph */, - {0, 0, 0x4B6A26} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x224740} /* East Asian ideograph */, - {0, 0, 0x214670} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21467A} /* East Asian ideograph */, - {0, 0, 0x22474D} /* East Asian ideograph */, - {0, 0, 0x22473E} /* East Asian ideograph */, - {0, 0, 0x224756} /* East Asian ideograph */, - {0, 0, 0x214674} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x214677} /* East Asian ideograph */, - {0, 0, 0x22474B} /* East Asian ideograph */, - {0, 0, 0x21466A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x224749} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27483D} /* East Asian ideograph */, - {0, 0, 0x22475C} /* East Asian ideograph */, - {0, 0, 0x33467A} /* East Asian ideograph */, - {0, 0, 0x4B4921} /* East Asian ideograph */, - {0, 0, 0x284F5D} /* East Asian ideograph */, - {0, 0, 0x284C41} /* East Asian ideograph */, - {0, 0, 0x27493B} /* East Asian ideograph */, - {0, 0, 0x274777} /* East Asian ideograph */, - {0, 0, 0x274848} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x284D58} /* East Asian ideograph */, - {0, 0, 0x27484F} /* East Asian ideograph */, - {0, 0, 0x214725} /* East Asian ideograph */, - {0, 0, 0x224767} /* East Asian ideograph */, - {0, 0, 0x22476E} /* East Asian ideograph (variant of EACC 4C476E) */, - {0, 0, 0x21472D} /* East Asian ideograph */, - {0, 0, 0x224770} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21467C} /* East Asian ideograph */, - {0, 0, 0x2D467C} /* East Asian ideograph */, - {0, 0, 0x214728} /* East Asian ideograph */, - {0, 0, 0x224833} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x214723} /* East Asian ideograph */, - {0, 0, 0x21472E} /* East Asian ideograph */, - {0, 0, 0x22477A} /* East Asian ideograph */, - {0, 0, 0x214734} /* East Asian ideograph */, - {0, 0, 0x21472C} /* East Asian ideograph */, - {0, 0, 0x214727} /* East Asian ideograph */, - {0, 0, 0x214731} /* East Asian ideograph */, - {0, 0, 0x214737} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page128 = { - 0, marc8r_31page128_dir -}; -/* PAGE 127 */ -struct yaz_iconv_trie_flat marc8r_31page127_flat[] = { - {"\x81", 0, 0x21465E}, /* East Asian ideograph */ - {"\x80", 0, 0x214660}, /* East Asian ideograph */ - {"\x82", 0, 0x214661}, /* East Asian ideograph */ - {"\x9E", 0, 0x214662}, /* East Asian ideograph */ - {"\x97", 0, 0x214663}, /* East Asian ideograph */ - {"\x9F", 0, 0x214664}, /* East Asian ideograph */ - {"\x99", 0, 0x214665}, /* East Asian ideograph */ - {"\xA0", 0, 0x214666}, /* East Asian ideograph */ - {"\x95", 0, 0x214667}, /* East Asian ideograph */ - {"\x90", 0, 0x214668}, /* East Asian ideograph */ - {"\x9D", 0, 0x214669}, /* East Asian ideograph */ - {"\xBA", 0, 0x21466D}, /* East Asian ideograph */ - {"\xAA", 0, 0x21466E}, /* East Asian ideograph */ - {"\xB2", 0, 0x214671}, /* East Asian ideograph */ - {"\xB0", 0, 0x214672}, /* East Asian ideograph */ - {"\xA8", 0, 0x214673}, /* East Asian ideograph */ - {"\xBE", 0, 0x214678}, /* East Asian ideograph */ - {"\xBD", 0, 0x214679}, /* East Asian ideograph */ - {"\x86", 0, 0x224678}, /* East Asian ideograph */ - {"\x92", 0, 0x22467A}, /* East Asian ideograph */ - {"\xA2", 0, 0x22467B}, /* East Asian ideograph */ - {"\x8A", 0, 0x22467C}, /* East Asian ideograph */ - {"\x9C", 0, 0x224724}, /* East Asian ideograph */ - {"\x9B", 0, 0x224726}, /* East Asian ideograph */ - {"\x8D", 0, 0x224727}, /* East Asian ideograph */ - {"\x8B", 0, 0x22472B}, /* East Asian ideograph */ - {"\x94", 0, 0x22472C}, /* East Asian ideograph */ - {"\xA3", 0, 0x22472D}, /* East Asian ideograph */ - {"\xB8", 0, 0x224730}, /* East Asian ideograph */ - {"\xB4", 0, 0x224731}, /* East Asian ideograph */ - {"\xB6", 0, 0x224733}, /* East Asian ideograph */ - {"\xAC", 0, 0x224738}, /* East Asian ideograph */ - {"\xA7", 0, 0x224739}, /* East Asian ideograph */ - {"\xA5", 0, 0x224742}, /* East Asian ideograph */ - {"\xAF", 0, 0x224747}, /* East Asian ideograph */ - {"\xA9", 0, 0x22474A}, /* East Asian ideograph */ - {"\xAD", 0, 0x22474C}, /* East Asian ideograph */ - {"\xAE", 0, 0x224752}, /* East Asian ideograph */ - {"\x87", 0, 0x273451}, /* East Asian ideograph */ - {"\x87", 0, 0x273D4F}, /* East Asian ideograph (duplicate simplified) */ - {"\xA4", 0, 0x27482D}, /* East Asian ideograph */ - {"\x89", 0, 0x274857}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D4735}, /* East Asian ideograph */ - {"\xB9", 0, 0x2D4746}, /* East Asian ideograph */ - {"\xB3", 0, 0x2E4731}, /* East Asian ideograph */ - {"\xA7", 0, 0x2E4739}, /* East Asian ideograph (variant of EACC 224739) */ - {"\xA1", 0, 0x334665}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page127 = { - marc8r_31page127_flat, 0 -}; -/* PAGE 126 */ -struct yaz_iconv_trie_flat marc8r_31page126_flat[] = { - {"\x8F", 0, 0x21464C}, /* East Asian ideograph */ - {"\x91", 0, 0x21464D}, /* East Asian ideograph */ - {"\x90", 0, 0x21464E}, /* East Asian ideograph */ - {"\x93", 0, 0x21464F}, /* East Asian ideograph */ - {"\x96", 0, 0x214650}, /* East Asian ideograph */ - {"\x9B", 0, 0x214651}, /* East Asian ideograph */ - {"\x9F", 0, 0x214652}, /* East Asian ideograph */ - {"\xA7", 0, 0x214653}, /* East Asian ideograph */ - {"\xA6", 0, 0x214654}, /* East Asian ideograph */ - {"\xA3", 0, 0x214655}, /* East Asian ideograph */ - {"\xA8", 0, 0x214656}, /* East Asian ideograph */ - {"\xA4", 0, 0x214657}, /* East Asian ideograph */ - {"\xAB", 0, 0x214658}, /* East Asian ideograph */ - {"\xAE", 0, 0x214659}, /* East Asian ideograph */ - {"\xB3", 0, 0x21465A}, /* East Asian ideograph */ - {"\xAF", 0, 0x21465B}, /* East Asian ideograph (variant of EACC 45465B) */ - {"\xB4", 0, 0x21465C}, /* East Asian ideograph */ - {"\xB8", 0, 0x21465D}, /* East Asian ideograph */ - {"\xB9", 0, 0x21643F}, /* East Asian ideograph */ - {"\x86", 0, 0x224644}, /* East Asian ideograph */ - {"\x84", 0, 0x224648}, /* East Asian ideograph */ - {"\x85", 0, 0x22464A}, /* East Asian ideograph */ - {"\x88", 0, 0x22464C}, /* East Asian ideograph */ - {"\x8C", 0, 0x224651}, /* East Asian ideograph */ - {"\x8D", 0, 0x224652}, /* East Asian ideograph */ - {"\x95", 0, 0x224659}, /* East Asian ideograph */ - {"\x98", 0, 0x22465A}, /* East Asian ideograph */ - {"\x99", 0, 0x22465B}, /* East Asian ideograph */ - {"\x9A", 0, 0x22465C}, /* East Asian ideograph */ - {"\x9D", 0, 0x22465E}, /* East Asian ideograph */ - {"\xA0", 0, 0x224660}, /* East Asian ideograph */ - {"\xA1", 0, 0x224662}, /* East Asian ideograph */ - {"\xAA", 0, 0x224664}, /* East Asian ideograph */ - {"\xAD", 0, 0x224666}, /* East Asian ideograph */ - {"\xB0", 0, 0x224667}, /* East Asian ideograph */ - {"\xAC", 0, 0x224668}, /* East Asian ideograph */ - {"\xB1", 0, 0x224669}, /* East Asian ideograph */ - {"\xBB", 0, 0x224670}, /* East Asian ideograph */ - {"\xBF", 0, 0x224674}, /* East Asian ideograph */ - {"\x94", 0, 0x274655}, /* East Asian ideograph */ - {"\xA2", 0, 0x274658}, /* East Asian ideograph */ - {"\x87", 0, 0x284651}, /* East Asian ideograph */ - {"\xA9", 0, 0x284668}, /* East Asian ideograph */ - {"\x82", 0, 0x2D4A60}, /* East Asian ideograph */ - {"\xB7", 0, 0x33333C}, /* East Asian ideograph */ - {"\xBE", 0, 0x394735}, /* East Asian ideograph */ - {"\xAF", 0, 0x45465B}, /* East Asian ideograph */ - {"\x97", 0, 0x4B4655}, /* East Asian ideograph */ - {"\xB2", 0, 0x4B465A}, /* East Asian ideograph */ - {"\xBD", 0, 0x513B52}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page126 = { - marc8r_31page126_flat, 0 -}; -/* PAGE 125 */ -struct yaz_iconv_trie_flat marc8r_31page125_flat[] = { - {"\x80", 0, 0x21463D}, /* East Asian ideograph */ - {"\x85", 0, 0x21463F}, /* East Asian ideograph */ - {"\x86", 0, 0x214640}, /* East Asian ideograph */ - {"\x8B", 0, 0x214641}, /* East Asian ideograph */ - {"\x8D", 0, 0x214642}, /* East Asian ideograph */ - {"\x8F", 0, 0x214643}, /* East Asian ideograph */ - {"\x92", 0, 0x214644}, /* East Asian ideograph */ - {"\x94", 0, 0x214646}, /* East Asian ideograph */ - {"\x97", 0, 0x214647}, /* East Asian ideograph */ - {"\x9B", 0, 0x214648}, /* East Asian ideograph */ - {"\xAB", 0, 0x214649}, /* East Asian ideograph */ - {"\xAF", 0, 0x21464A}, /* East Asian ideograph */ - {"\xBD", 0, 0x21464B}, /* East Asian ideograph */ - {"\x88", 0, 0x224554}, /* East Asian ideograph */ - {"\x96", 0, 0x22455B}, /* East Asian ideograph */ - {"\x9A", 0, 0x224560}, /* East Asian ideograph */ - {"\x9C", 0, 0x224562}, /* East Asian ideograph */ - {"\x9D", 0, 0x224563}, /* East Asian ideograph */ - {"\x9F", 0, 0x224565}, /* East Asian ideograph */ - {"\xA7", 0, 0x22456F}, /* East Asian ideograph */ - {"\xAA", 0, 0x224570}, /* East Asian ideograph */ - {"\xA8", 0, 0x224571}, /* East Asian ideograph */ - {"\xB6", 0, 0x22462A}, /* East Asian ideograph */ - {"\xB3", 0, 0x22462C}, /* East Asian ideograph */ - {"\xB8", 0, 0x224633}, /* East Asian ideograph */ - {"\xBA", 0, 0x224637}, /* East Asian ideograph */ - {"\xB9", 0, 0x224638}, /* East Asian ideograph */ - {"\xBF", 0, 0x224642}, /* East Asian ideograph */ - {"\x99", 0, 0x274257}, /* East Asian ideograph */ - {"\x95", 0, 0x274C33}, /* East Asian ideograph */ - {"\x82", 0, 0x275B52}, /* East Asian ideograph */ - {"\xB5", 0, 0x284642}, /* East Asian ideograph */ - {"\xA1", 0, 0x28464C}, /* East Asian ideograph */ - {"\x98", 0, 0x2D4647}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D4B45}, /* East Asian ideograph */ - {"\x93", 0, 0x2D532C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page125 = { - marc8r_31page125_flat, 0 -}; -/* PAGE 124 */ -struct yaz_iconv_trie_flat marc8r_31page124_flat[] = { - {"\x83", 0, 0x21462F}, /* East Asian ideograph */ - {"\x86", 0, 0x214630}, /* East Asian ideograph */ - {"\x8A", 0, 0x214631}, /* East Asian ideograph */ - {"\x89", 0, 0x214632}, /* East Asian ideograph */ - {"\x98", 0, 0x214633}, /* East Asian ideograph */ - {"\x96", 0, 0x214634}, /* East Asian ideograph */ - {"\xA4", 0, 0x214635}, /* East Asian ideograph */ - {"\xAE", 0, 0x214636}, /* East Asian ideograph */ - {"\xAF", 0, 0x214637}, /* East Asian ideograph */ - {"\xB2", 0, 0x214638}, /* East Asian ideograph */ - {"\xB5", 0, 0x214639}, /* East Asian ideograph */ - {"\xB7", 0, 0x21463A}, /* East Asian ideograph */ - {"\xBA", 0, 0x21463B}, /* East Asian ideograph */ - {"\xBC", 0, 0x21463C}, /* East Asian ideograph */ - {"\xBF", 0, 0x21463E}, /* East Asian ideograph */ - {"\x82", 0, 0x224471}, /* East Asian ideograph */ - {"\x84", 0, 0x224473}, /* East Asian ideograph */ - {"\x8D", 0, 0x224479}, /* East Asian ideograph */ - {"\x95", 0, 0x22447B}, /* East Asian ideograph */ - {"\x99", 0, 0x224525}, /* East Asian ideograph */ - {"\x9B", 0, 0x224529}, /* East Asian ideograph */ - {"\xA3", 0, 0x224535}, /* East Asian ideograph */ - {"\xA2", 0, 0x224536}, /* East Asian ideograph */ - {"\xAA", 0, 0x224538}, /* East Asian ideograph */ - {"\xAB", 0, 0x224539}, /* East Asian ideograph */ - {"\xAD", 0, 0x22453B}, /* East Asian ideograph */ - {"\xB0", 0, 0x22453D}, /* East Asian ideograph */ - {"\xB3", 0, 0x22453F}, /* East Asian ideograph */ - {"\xBD", 0, 0x224547}, /* East Asian ideograph */ - {"\x8B", 0, 0x274633}, /* East Asian ideograph */ - {"\x87", 0, 0x274635}, /* East Asian ideograph */ - {"\x93", 0, 0x274636}, /* East Asian ideograph */ - {"\xA1", 0, 0x274637}, /* East Asian ideograph */ - {"\xB4", 0, 0x274640}, /* East Asian ideograph */ - {"\x9A", 0, 0x284539}, /* East Asian ideograph */ - {"\x80", 0, 0x2D3929}, /* East Asian ideograph */ - {"\x8B", 0, 0x334633}, /* East Asian ideograph (variant of EACC 274633) */ - {"\xBB", 0, 0x33463C}, /* East Asian ideograph */ - {"\x96", 0, 0x394634}, /* East Asian ideograph (variant of EACC 214634) */ - {"\x9E", 0, 0x3F5F35}, /* East Asian ideograph */ - {"\x81", 0, 0x4B462E}, /* East Asian ideograph */ - {"\xB1", 0, 0x4B4638}, /* East Asian ideograph */ - {"\x92", 0, 0x4B5F35}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page124 = { - marc8r_31page124_flat, 0 -}; -/* PAGE 123 */ -struct yaz_iconv_trie_flat marc8r_31page123_flat[] = { - {"\x87", 0, 0x214579}, /* East Asian ideograph */ - {"\x89", 0, 0x21457A}, /* East Asian ideograph */ - {"\x8C", 0, 0x21457B}, /* East Asian ideograph */ - {"\x90", 0, 0x21457C}, /* East Asian ideograph */ - {"\x99", 0, 0x21457D}, /* East Asian ideograph */ - {"\x9F", 0, 0x21457E}, /* East Asian ideograph */ - {"\xA1", 0, 0x214621}, /* East Asian ideograph */ - {"\xA3", 0, 0x214623}, /* East Asian ideograph */ - {"\xA4", 0, 0x214624}, /* East Asian ideograph */ - {"\xA5", 0, 0x214625}, /* East Asian ideograph */ - {"\xA6", 0, 0x214627}, /* East Asian ideograph */ - {"\xAA", 0, 0x214628}, /* East Asian ideograph */ - {"\xB2", 0, 0x214629}, /* East Asian ideograph */ - {"\xB7", 0, 0x21462A}, /* East Asian ideograph */ - {"\xB8", 0, 0x21462B}, /* East Asian ideograph */ - {"\xB9", 0, 0x21462C}, /* East Asian ideograph */ - {"\xBB", 0, 0x21462D}, /* East Asian ideograph */ - {"\xBF", 0, 0x21462E}, /* East Asian ideograph */ - {"\x86", 0, 0x224437}, /* East Asian ideograph */ - {"\x81", 0, 0x224438}, /* East Asian ideograph */ - {"\x80", 0, 0x22443A}, /* East Asian ideograph */ - {"\x82", 0, 0x22443B}, /* East Asian ideograph */ - {"\x83", 0, 0x22443C}, /* East Asian ideograph */ - {"\x88", 0, 0x22443E}, /* East Asian ideograph */ - {"\x8A", 0, 0x22443F}, /* East Asian ideograph */ - {"\x8E", 0, 0x224446}, /* East Asian ideograph (variant of EACC 4C4446) */ - {"\x97", 0, 0x22444A}, /* East Asian ideograph */ - {"\x94", 0, 0x22444C}, /* East Asian ideograph */ - {"\x95", 0, 0x22444E}, /* East Asian ideograph */ - {"\x9C", 0, 0x224451}, /* East Asian ideograph */ - {"\x9E", 0, 0x224453}, /* East Asian ideograph */ - {"\xA0", 0, 0x224454}, /* East Asian ideograph */ - {"\xAB", 0, 0x22445B}, /* East Asian ideograph */ - {"\xAC", 0, 0x22445D}, /* East Asian ideograph */ - {"\xAE", 0, 0x22445F}, /* East Asian ideograph */ - {"\xB1", 0, 0x224461}, /* East Asian ideograph */ - {"\xBE", 0, 0x22446B}, /* East Asian ideograph */ - {"\xBC", 0, 0x274638}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D353C}, /* East Asian ideograph */ - {"\xBA", 0, 0x2D462C}, /* East Asian ideograph */ - {"\x9B", 0, 0x334256}, /* East Asian ideograph */ - {"\xAF", 0, 0x336321}, /* East Asian ideograph */ - {"\xA7", 0, 0x4B3B67}, /* East Asian ideograph */ - {"\x93", 0, 0x4B4621}, /* East Asian ideograph */ - {"\xB4", 0, 0x4B462A}, /* East Asian ideograph */ - {"\x8E", 0, 0x4C4446}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page123 = { - marc8r_31page123_flat, 0 -}; -/* PAGE 122 */ -struct yaz_iconv_trie_flat marc8r_31page122_flat[] = { - {"\x84", 0, 0x21456E}, /* East Asian ideograph */ - {"\x8A", 0, 0x214570}, /* East Asian ideograph */ - {"\x96", 0, 0x214571}, /* East Asian ideograph */ - {"\xA1", 0, 0x214573}, /* East Asian ideograph */ - {"\xA3", 0, 0x214574}, /* East Asian ideograph */ - {"\xBE", 0, 0x214576}, /* East Asian ideograph */ - {"\xBA", 0, 0x214577}, /* East Asian ideograph */ - {"\xBD", 0, 0x214578}, /* East Asian ideograph */ - {"\x81", 0, 0x224352}, /* East Asian ideograph */ - {"\x83", 0, 0x224358}, /* East Asian ideograph */ - {"\x8D", 0, 0x22435F}, /* East Asian ideograph */ - {"\x89", 0, 0x224360}, /* East Asian ideograph */ - {"\x8E", 0, 0x224361}, /* East Asian ideograph */ - {"\x91", 0, 0x224367}, /* East Asian ideograph */ - {"\x99", 0, 0x22436D}, /* East Asian ideograph */ - {"\x97", 0, 0x22436E}, /* East Asian ideograph */ - {"\x9E", 0, 0x224372}, /* East Asian ideograph */ - {"\xAC", 0, 0x22437E}, /* East Asian ideograph */ - {"\xB5", 0, 0x22442A}, /* East Asian ideograph */ - {"\xB7", 0, 0x22442C}, /* East Asian ideograph */ - {"\xBB", 0, 0x22442D}, /* East Asian ideograph */ - {"\xB9", 0, 0x224432}, /* East Asian ideograph */ - {"\xBF", 0, 0x224435}, /* East Asian ideograph */ - {"\xB2", 0, 0x273F3C}, /* East Asian ideograph */ - {"\xA0", 0, 0x27457A}, /* East Asian ideograph (duplicate simplified) */ - {"\xA7", 0, 0x27457C}, /* East Asian ideograph */ - {"\xA4", 0, 0x27457E}, /* East Asian ideograph */ - {"\xA2", 0, 0x274621}, /* East Asian ideograph */ - {"\xB8", 0, 0x2D3642}, /* East Asian ideograph */ - {"\x9D", 0, 0x2D616A}, /* East Asian ideograph */ - {"\x92", 0, 0x394944}, /* East Asian ideograph */ - {"\xA0", 0, 0x4B5227}, /* East Asian ideograph */ - {"\x85", 0, 0x4C4359}, /* East Asian ideograph */ - {"\x9F", 0, 0x695D36}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page122 = { - marc8r_31page122_flat, 0 -}; -/* PAGE 121 */ -struct yaz_iconv_trie_flat marc8r_31page121_flat[] = { - {"\x83", 0, 0x214565}, /* East Asian ideograph */ - {"\xA5", 0, 0x214569}, /* East Asian ideograph */ - {"\x9A", 0, 0x21456A}, /* East Asian ideograph */ - {"\x9D", 0, 0x21456B}, /* East Asian ideograph */ - {"\x9B", 0, 0x21456C}, /* East Asian ideograph */ - {"\x93", 0, 0x21456D}, /* East Asian ideograph */ - {"\xBB", 0, 0x21456F}, /* East Asian ideograph */ - {"\x88", 0, 0x224255}, /* East Asian ideograph */ - {"\x8A", 0, 0x224264}, /* East Asian ideograph */ - {"\xA6", 0, 0x224279}, /* East Asian ideograph */ - {"\xAD", 0, 0x22427E}, /* East Asian ideograph */ - {"\x8C", 0, 0x224325}, /* East Asian ideograph */ - {"\x91", 0, 0x224328}, /* East Asian ideograph */ - {"\x9F", 0, 0x224333}, /* East Asian ideograph */ - {"\x8D", 0, 0x224334}, /* East Asian ideograph */ - {"\x9E", 0, 0x224335}, /* East Asian ideograph */ - {"\xAC", 0, 0x224337}, /* East Asian ideograph */ - {"\xB3", 0, 0x224339}, /* East Asian ideograph */ - {"\xA7", 0, 0x22433A}, /* East Asian ideograph */ - {"\xAB", 0, 0x22433F}, /* East Asian ideograph */ - {"\xAA", 0, 0x224340}, /* East Asian ideograph */ - {"\xB1", 0, 0x224344}, /* East Asian ideograph */ - {"\xA8", 0, 0x224345}, /* East Asian ideograph */ - {"\xB5", 0, 0x224348}, /* East Asian ideograph */ - {"\xBD", 0, 0x22434E}, /* East Asian ideograph */ - {"\xBA", 0, 0x224350}, /* East Asian ideograph */ - {"\xB8", 0, 0x224359}, /* East Asian ideograph */ - {"\x89", 0, 0x2D4569}, /* East Asian ideograph */ - {"\x81", 0, 0x2E403D}, /* East Asian ideograph */ - {"\x82", 0, 0x39447D}, /* East Asian ideograph */ - {"\x9B", 0, 0x4B456C}, /* East Asian ideograph (variant of EACC 21456C) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page121 = { - marc8r_31page121_flat, 0 -}; -/* PAGE 120 */ -struct yaz_iconv_trie_flat marc8r_31page120_flat[] = { - {"\x80", 0, 0x21455E}, /* East Asian ideograph */ - {"\x94", 0, 0x21455F}, /* East Asian ideograph */ - {"\x84", 0, 0x214560}, /* East Asian ideograph */ - {"\xA2", 0, 0x214561}, /* East Asian ideograph */ - {"\x9C", 0, 0x214562}, /* East Asian ideograph */ - {"\xB8", 0, 0x214563}, /* East Asian ideograph */ - {"\xB3", 0, 0x214564}, /* East Asian ideograph */ - {"\xBB", 0, 0x214566}, /* East Asian ideograph */ - {"\xAC", 0, 0x214568}, /* East Asian ideograph */ - {"\xAF", 0, 0x223B7D}, /* East Asian ideograph */ - {"\x8D", 0, 0x224173}, /* East Asian ideograph */ - {"\xA8", 0, 0x224175}, /* East Asian ideograph */ - {"\xA5", 0, 0x224177}, /* East Asian ideograph */ - {"\x96", 0, 0x224179}, /* East Asian ideograph */ - {"\x89", 0, 0x224223}, /* East Asian ideograph */ - {"\x91", 0, 0x224224}, /* East Asian ideograph */ - {"\x9F", 0, 0x224226}, /* East Asian ideograph */ - {"\x92", 0, 0x22422A}, /* East Asian ideograph */ - {"\xA3", 0, 0x22422B}, /* East Asian ideograph */ - {"\x99", 0, 0x224234}, /* East Asian ideograph */ - {"\x9D", 0, 0x224235}, /* East Asian ideograph */ - {"\x9B", 0, 0x224237}, /* East Asian ideograph */ - {"\xA0", 0, 0x224242}, /* East Asian ideograph */ - {"\x90", 0, 0x224247}, /* East Asian ideograph */ - {"\x9E", 0, 0x224249}, /* East Asian ideograph */ - {"\x87", 0, 0x22424A}, /* East Asian ideograph */ - {"\x8E", 0, 0x22424B}, /* East Asian ideograph */ - {"\xAB", 0, 0x224251}, /* East Asian ideograph */ - {"\xAE", 0, 0x224257}, /* East Asian ideograph */ - {"\xBF", 0, 0x22425D}, /* East Asian ideograph */ - {"\xB4", 0, 0x224268}, /* East Asian ideograph */ - {"\x97", 0, 0x2D563F}, /* East Asian ideograph */ - {"\xA9", 0, 0x2E4174}, /* East Asian ideograph */ - {"\x98", 0, 0x4B563F}, /* East Asian ideograph */ - {"\xAA", 0, 0x4C4333}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page120 = { - marc8r_31page120_flat, 0 -}; -/* PAGE 119 */ -struct yaz_iconv_trie_flat marc8r_31page119_flat[] = { - {"\x98", 0, 0x214551}, /* East Asian ideograph */ - {"\x99", 0, 0x214552}, /* East Asian ideograph */ - {"\xA2", 0, 0x214553}, /* East Asian ideograph */ - {"\x84", 0, 0x214554}, /* East Asian ideograph */ - {"\xAB", 0, 0x214556}, /* East Asian ideograph */ - {"\x87", 0, 0x214559}, /* East Asian ideograph */ - {"\xA1", 0, 0x21455A}, /* East Asian ideograph */ - {"\x8B", 0, 0x21455B}, /* East Asian ideograph */ - {"\x9F", 0, 0x21455D}, /* East Asian ideograph */ - {"\xA3", 0, 0x224129}, /* East Asian ideograph */ - {"\xA7", 0, 0x224137}, /* East Asian ideograph */ - {"\x83", 0, 0x224139}, /* East Asian ideograph */ - {"\x9A", 0, 0x22413C}, /* East Asian ideograph */ - {"\x88", 0, 0x224140}, /* East Asian ideograph */ - {"\x90", 0, 0x224141}, /* East Asian ideograph */ - {"\x92", 0, 0x224142}, /* East Asian ideograph */ - {"\xB2", 0, 0x224143}, /* East Asian ideograph */ - {"\xB7", 0, 0x224146}, /* East Asian ideograph */ - {"\x9B", 0, 0x224147}, /* East Asian ideograph */ - {"\x9E", 0, 0x22414A}, /* East Asian ideograph */ - {"\x9C", 0, 0x22414B}, /* East Asian ideograph */ - {"\x91", 0, 0x22414F}, /* East Asian ideograph */ - {"\x96", 0, 0x224151}, /* East Asian ideograph */ - {"\xBA", 0, 0x224156}, /* East Asian ideograph */ - {"\xA4", 0, 0x22416D}, /* East Asian ideograph */ - {"\xBD", 0, 0x22417E}, /* East Asian ideograph */ - {"\xBF", 0, 0x224222}, /* East Asian ideograph */ - {"\xBE", 0, 0x224236}, /* East Asian ideograph */ - {"\xB9", 0, 0x27456D}, /* East Asian ideograph */ - {"\xBC", 0, 0x284335}, /* East Asian ideograph */ - {"\xA6", 0, 0x2D3C5F}, /* East Asian ideograph */ - {"\xB1", 0, 0x4B4569}, /* East Asian ideograph */ - {"\xA5", 0, 0x4C433F}, /* East Asian ideograph */ - {"\xB8", 0, 0x695C71}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page119 = { - marc8r_31page119_flat, 0 -}; -/* PAGE 118 */ -struct yaz_iconv_trie_flat marc8r_31page118_flat[] = { - {"\x9F", 0, 0x214542}, /* East Asian ideograph */ - {"\xA3", 0, 0x214544}, /* East Asian ideograph */ - {"\x81", 0, 0x214546}, /* East Asian ideograph */ - {"\x99", 0, 0x214547}, /* East Asian ideograph */ - {"\x9E", 0, 0x214549}, /* East Asian ideograph */ - {"\x93", 0, 0x21454A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21454B}, /* East Asian ideograph */ - {"\x8A", 0, 0x21454D}, /* East Asian ideograph */ - {"\x82", 0, 0x21454E}, /* East Asian ideograph */ - {"\x85", 0, 0x21454F}, /* East Asian ideograph */ - {"\xBD", 0, 0x214550}, /* East Asian ideograph */ - {"\xB9", 0, 0x214555}, /* East Asian ideograph */ - {"\xBA", 0, 0x214557}, /* East Asian ideograph */ - {"\xB8", 0, 0x214558}, /* East Asian ideograph */ - {"\xB5", 0, 0x21455C}, /* East Asian ideograph */ - {"\x92", 0, 0x22403D}, /* East Asian ideograph */ - {"\x91", 0, 0x22403E}, /* East Asian ideograph */ - {"\x80", 0, 0x224041}, /* East Asian ideograph */ - {"\x8B", 0, 0x22404B}, /* East Asian ideograph */ - {"\x97", 0, 0x224054}, /* East Asian ideograph */ - {"\xAB", 0, 0x22405E}, /* East Asian ideograph */ - {"\xA0", 0, 0x224060}, /* East Asian ideograph */ - {"\x9B", 0, 0x224067}, /* East Asian ideograph */ - {"\xAD", 0, 0x224068}, /* East Asian ideograph */ - {"\x98", 0, 0x22406E}, /* East Asian ideograph */ - {"\x9D", 0, 0x224072}, /* East Asian ideograph */ - {"\x8C", 0, 0x224075}, /* East Asian ideograph */ - {"\x8F", 0, 0x224076}, /* East Asian ideograph */ - {"\x94", 0, 0x224128}, /* East Asian ideograph */ - {"\xB3", 0, 0x22413A}, /* East Asian ideograph */ - {"\xB2", 0, 0x22413B}, /* East Asian ideograph */ - {"\xA8", 0, 0x22413F}, /* East Asian ideograph */ - {"\xBE", 0, 0x224145}, /* East Asian ideograph */ - {"\xB6", 0, 0x224153}, /* East Asian ideograph */ - {"\xBF", 0, 0x224158}, /* East Asian ideograph */ - {"\xB1", 0, 0x27456F}, /* East Asian ideograph */ - {"\xAF", 0, 0x28422B}, /* East Asian ideograph */ - {"\xA2", 0, 0x2F252D}, /* East Asian ideograph */ - {"\x90", 0, 0x45456D}, /* East Asian ideograph */ - {"\xAA", 0, 0x4B4556}, /* East Asian ideograph */ - {"\xA9", 0, 0x4B4570}, /* East Asian ideograph */ - {"\xAE", 0, 0x695C53}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page118 = { - marc8r_31page118_flat, 0 -}; -/* PAGE 117 */ -struct yaz_iconv_trie_flat marc8r_31page117_flat[] = { - {"\x81", 0, 0x214535}, /* East Asian ideograph */ - {"\x8B", 0, 0x214539}, /* East Asian ideograph */ - {"\x93", 0, 0x21453A}, /* East Asian ideograph */ - {"\x8C", 0, 0x21453D}, /* East Asian ideograph */ - {"\x90", 0, 0x21453F}, /* East Asian ideograph */ - {"\x8D", 0, 0x214540}, /* East Asian ideograph */ - {"\xA8", 0, 0x214543}, /* East Asian ideograph */ - {"\xAA", 0, 0x214545}, /* East Asian ideograph */ - {"\xBD", 0, 0x214548}, /* East Asian ideograph */ - {"\xB3", 0, 0x21454C}, /* East Asian ideograph */ - {"\x8E", 0, 0x223F50}, /* East Asian ideograph */ - {"\x8A", 0, 0x223F51}, /* East Asian ideograph */ - {"\x99", 0, 0x223F68}, /* East Asian ideograph */ - {"\x96", 0, 0x223F6D}, /* East Asian ideograph */ - {"\x91", 0, 0x223F78}, /* East Asian ideograph */ - {"\xB6", 0, 0x223F7A}, /* East Asian ideograph */ - {"\x95", 0, 0x223F7E}, /* East Asian ideograph */ - {"\x94", 0, 0x224034}, /* East Asian ideograph */ - {"\x83", 0, 0x224038}, /* East Asian ideograph */ - {"\xA6", 0, 0x224046}, /* East Asian ideograph */ - {"\xA5", 0, 0x22404C}, /* East Asian ideograph */ - {"\xA9", 0, 0x22404D}, /* East Asian ideograph */ - {"\xBC", 0, 0x224050}, /* East Asian ideograph */ - {"\xA7", 0, 0x224056}, /* East Asian ideograph */ - {"\xAB", 0, 0x224057}, /* East Asian ideograph */ - {"\xB1", 0, 0x22405B}, /* East Asian ideograph */ - {"\xBF", 0, 0x22405F}, /* East Asian ideograph */ - {"\xAD", 0, 0x224064}, /* East Asian ideograph */ - {"\xAE", 0, 0x22407C}, /* East Asian ideograph */ - {"\xB0", 0, 0x224123}, /* East Asian ideograph */ - {"\xB2", 0, 0x224124}, /* East Asian ideograph */ - {"\xB9", 0, 0x22416C}, /* East Asian ideograph */ - {"\x9F", 0, 0x274564}, /* East Asian ideograph */ - {"\x9B", 0, 0x274566}, /* East Asian ideograph */ - {"\xA0", 0, 0x28433A}, /* East Asian ideograph */ - {"\x85", 0, 0x2D4444}, /* East Asian ideograph */ - {"\xA3", 0, 0x2E3645}, /* East Asian ideograph */ - {"\xBB", 0, 0x395829}, /* East Asian ideograph */ - {"\x98", 0, 0x4B4544}, /* East Asian ideograph */ - {"\x87", 0, 0x4C3F68}, /* East Asian ideograph */ - {"\x9E", 0, 0x4C4339}, /* East Asian ideograph */ - {"\x9D", 0, 0x695C4F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page117 = { - marc8r_31page117_flat, 0 -}; -/* PAGE 116 */ -struct yaz_iconv_trie_flat marc8r_31page116_flat[] = { - {"\x86", 0, 0x214530}, /* East Asian ideograph */ - {"\xA8", 0, 0x214531}, /* East Asian ideograph */ - {"\x95", 0, 0x214532}, /* East Asian ideograph */ - {"\x9C", 0, 0x214533}, /* East Asian ideograph */ - {"\x94", 0, 0x214534}, /* East Asian ideograph */ - {"\xB7", 0, 0x214536}, /* East Asian ideograph */ - {"\xAE", 0, 0x214537}, /* East Asian ideograph */ - {"\x9B", 0, 0x214538}, /* East Asian ideograph */ - {"\xBB", 0, 0x21453B}, /* East Asian ideograph */ - {"\xAB", 0, 0x21453C}, /* East Asian ideograph */ - {"\xAD", 0, 0x21453E}, /* East Asian ideograph */ - {"\xB4", 0, 0x214541}, /* East Asian ideograph */ - {"\x80", 0, 0x223E7D}, /* East Asian ideograph */ - {"\x85", 0, 0x223F2D}, /* East Asian ideograph */ - {"\x8A", 0, 0x223F44}, /* East Asian ideograph */ - {"\xA0", 0, 0x223F45}, /* East Asian ideograph */ - {"\xB1", 0, 0x223F46}, /* East Asian ideograph */ - {"\x8D", 0, 0x223F59}, /* East Asian ideograph */ - {"\x91", 0, 0x223F5A}, /* East Asian ideograph */ - {"\xAA", 0, 0x223F5C}, /* East Asian ideograph */ - {"\xBC", 0, 0x223F60}, /* East Asian ideograph */ - {"\xA7", 0, 0x223F61}, /* East Asian ideograph */ - {"\x9E", 0, 0x223F65}, /* East Asian ideograph */ - {"\x8E", 0, 0x223F6A}, /* East Asian ideograph */ - {"\xA5", 0, 0x223F75}, /* East Asian ideograph */ - {"\xBE", 0, 0x223F77}, /* East Asian ideograph */ - {"\xBF", 0, 0x224027}, /* East Asian ideograph */ - {"\xA3", 0, 0x22402D}, /* East Asian ideograph */ - {"\xA4", 0, 0x22402E}, /* East Asian ideograph */ - {"\x96", 0, 0x22454D}, /* East Asian ideograph */ - {"\x88", 0, 0x27456A}, /* East Asian ideograph */ - {"\x84", 0, 0x274571}, /* East Asian ideograph */ - {"\x87", 0, 0x284337}, /* East Asian ideograph */ - {"\x89", 0, 0x284359}, /* East Asian ideograph */ - {"\x98", 0, 0x2D4E24}, /* East Asian ideograph */ - {"\xB2", 0, 0x2E3F2D}, /* East Asian ideograph */ - {"\xA6", 0, 0x45304C}, /* East Asian ideograph */ - {"\x94", 0, 0x4B4534}, /* East Asian ideograph (variant of EACC 214534) */ - {"\x82", 0, 0x4B4545}, /* East Asian ideograph */ - {"\x81", 0, 0x695C43}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page116 = { - marc8r_31page116_flat, 0 -}; -/* PAGE 115 */ -struct yaz_iconv_trie_flat marc8r_31page115_flat[] = { - {"\x94", 0, 0x214523}, /* East Asian ideograph */ - {"\xB7", 0, 0x214525}, /* East Asian ideograph */ - {"\xB5", 0, 0x214526}, /* East Asian ideograph */ - {"\x9A", 0, 0x214527}, /* East Asian ideograph */ - {"\xA0", 0, 0x214528}, /* East Asian ideograph */ - {"\xAB", 0, 0x214529}, /* East Asian ideograph */ - {"\x8A", 0, 0x21452A}, /* East Asian ideograph */ - {"\xA8", 0, 0x21452B}, /* East Asian ideograph */ - {"\x9E", 0, 0x21452C}, /* East Asian ideograph */ - {"\xAD", 0, 0x21452D}, /* East Asian ideograph */ - {"\xB9", 0, 0x21452E}, /* East Asian ideograph */ - {"\x93", 0, 0x21452F}, /* East Asian ideograph */ - {"\xB4", 0, 0x223E53}, /* East Asian ideograph */ - {"\xA2", 0, 0x223E58}, /* East Asian ideograph */ - {"\x98", 0, 0x223E5D}, /* East Asian ideograph */ - {"\x97", 0, 0x223E5F}, /* East Asian ideograph */ - {"\xB1", 0, 0x223E61}, /* East Asian ideograph */ - {"\x85", 0, 0x223E64}, /* East Asian ideograph */ - {"\x9D", 0, 0x223E65}, /* East Asian ideograph */ - {"\xAE", 0, 0x223E69}, /* East Asian ideograph */ - {"\xA3", 0, 0x223E6A}, /* East Asian ideograph */ - {"\x88", 0, 0x223E6B}, /* East Asian ideograph */ - {"\xAA", 0, 0x223E70}, /* East Asian ideograph */ - {"\xAC", 0, 0x223E7A}, /* East Asian ideograph */ - {"\x8E", 0, 0x223E7B}, /* East Asian ideograph */ - {"\x92", 0, 0x223F21}, /* East Asian ideograph */ - {"\x9B", 0, 0x223F25}, /* East Asian ideograph */ - {"\xB8", 0, 0x223F35}, /* East Asian ideograph */ - {"\xBB", 0, 0x223F37}, /* East Asian ideograph */ - {"\xA9", 0, 0x223F3B}, /* East Asian ideograph */ - {"\x84", 0, 0x223F3D}, /* East Asian ideograph */ - {"\xAF", 0, 0x223F3E}, /* East Asian ideograph */ - {"\xBC", 0, 0x27454A}, /* East Asian ideograph */ - {"\xA6", 0, 0x283F30}, /* East Asian ideograph */ - {"\x82", 0, 0x2D443A}, /* East Asian ideograph */ - {"\xB3", 0, 0x2D4466}, /* East Asian ideograph */ - {"\xBD", 0, 0x2D454E}, /* East Asian ideograph */ - {"\x99", 0, 0x2D5468}, /* East Asian ideograph */ - {"\x95", 0, 0x4B4553}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B533B}, /* East Asian ideograph */ - {"\xBE", 0, 0x695C39}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page115 = { - marc8r_31page115_flat, 0 -}; -/* PAGE 114 */ -struct yaz_iconv_trie_flat marc8r_31page114_flat[] = { - {"\x8D", 0, 0x214474}, /* East Asian ideograph */ - {"\x85", 0, 0x214475}, /* East Asian ideograph */ - {"\x92", 0, 0x21447C}, /* East Asian ideograph */ - {"\x8E", 0, 0x214521}, /* East Asian ideograph */ - {"\xB0", 0, 0x214524}, /* East Asian ideograph */ - {"\xAC", 0, 0x223D50}, /* East Asian ideograph */ - {"\x97", 0, 0x223D51}, /* East Asian ideograph */ - {"\x8C", 0, 0x223D53}, /* East Asian ideograph */ - {"\x8B", 0, 0x223D56}, /* East Asian ideograph */ - {"\x84", 0, 0x223D59}, /* East Asian ideograph */ - {"\x8A", 0, 0x223D5B}, /* East Asian ideograph */ - {"\x89", 0, 0x223D5C}, /* East Asian ideograph */ - {"\xA9", 0, 0x223D5D}, /* East Asian ideograph */ - {"\xAA", 0, 0x223D63}, /* East Asian ideograph */ - {"\x90", 0, 0x223D6A}, /* East Asian ideograph */ - {"\x93", 0, 0x223D7C}, /* East Asian ideograph */ - {"\x87", 0, 0x223E21}, /* East Asian ideograph */ - {"\x9A", 0, 0x223E23}, /* East Asian ideograph */ - {"\x99", 0, 0x223E24}, /* East Asian ideograph */ - {"\x9B", 0, 0x223E2B}, /* East Asian ideograph */ - {"\x88", 0, 0x223E39}, /* East Asian ideograph */ - {"\x91", 0, 0x223E44}, /* East Asian ideograph */ - {"\xB8", 0, 0x223E55}, /* East Asian ideograph */ - {"\xBF", 0, 0x223E60}, /* East Asian ideograph */ - {"\xB2", 0, 0x223E66}, /* East Asian ideograph */ - {"\xB9", 0, 0x223E6E}, /* East Asian ideograph */ - {"\xB7", 0, 0x223E73}, /* East Asian ideograph */ - {"\xB3", 0, 0x223E7E}, /* East Asian ideograph */ - {"\xBD", 0, 0x223F32}, /* East Asian ideograph */ - {"\xB4", 0, 0x223F3A}, /* East Asian ideograph */ - {"\xAD", 0, 0x274553}, /* East Asian ideograph */ - {"\x9F", 0, 0x27456B}, /* East Asian ideograph */ - {"\xA0", 0, 0x284056}, /* East Asian ideograph */ - {"\xA4", 0, 0x284366}, /* East Asian ideograph */ - {"\xB6", 0, 0x2D446B}, /* East Asian ideograph */ - {"\x8D", 0, 0x2D4474}, /* East Asian ideograph (variant of EACC 214474) */ - {"\x81", 0, 0x2D4543}, /* East Asian ideograph */ - {"\xBE", 0, 0x2D502B}, /* East Asian ideograph */ - {"\x8F", 0, 0x2E3B22}, /* East Asian ideograph */ - {"\x98", 0, 0x334527}, /* East Asian ideograph */ - {"\x80", 0, 0x346126}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B4561}, /* East Asian ideograph */ - {"\xA2", 0, 0x4C3F7A}, /* East Asian ideograph */ - {"\xA6", 0, 0x695B7B}, /* East Asian ideograph */ - {"\xA5", 0, 0x695C29}, /* East Asian ideograph */ - {"\xA8", 0, 0x695C2D}, /* East Asian ideograph */ - {"\xA3", 0, 0x695C30}, /* East Asian ideograph */ - {"\xA1", 0, 0x695C31}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page114 = { - marc8r_31page114_flat, 0 -}; -/* PAGE 113 */ -struct yaz_iconv_trie_flat marc8r_31page113_flat[] = { - {"\x95", 0, 0x21446B}, /* East Asian ideograph */ - {"\xBA", 0, 0x21446C}, /* East Asian ideograph */ - {"\x84", 0, 0x21446D}, /* East Asian ideograph */ - {"\xB2", 0, 0x21446E}, /* East Asian ideograph */ - {"\x92", 0, 0x21446F}, /* East Asian ideograph */ - {"\xA3", 0, 0x214470}, /* East Asian ideograph */ - {"\x9F", 0, 0x214471}, /* East Asian ideograph */ - {"\x8B", 0, 0x214472}, /* East Asian ideograph */ - {"\xAE", 0, 0x214473}, /* East Asian ideograph */ - {"\xA7", 0, 0x214476}, /* East Asian ideograph */ - {"\xA0", 0, 0x214477}, /* East Asian ideograph */ - {"\xB5", 0, 0x214478}, /* East Asian ideograph */ - {"\x8D", 0, 0x214479}, /* East Asian ideograph */ - {"\x97", 0, 0x21447A}, /* East Asian ideograph */ - {"\x98", 0, 0x21447B}, /* East Asian ideograph */ - {"\xB9", 0, 0x21447D}, /* East Asian ideograph */ - {"\x9A", 0, 0x21447E}, /* East Asian ideograph */ - {"\x89", 0, 0x214522}, /* East Asian ideograph */ - {"\x93", 0, 0x223D58}, /* East Asian ideograph */ - {"\xAC", 0, 0x223D62}, /* East Asian ideograph */ - {"\xAA", 0, 0x223D64}, /* East Asian ideograph */ - {"\x96", 0, 0x223D6E}, /* East Asian ideograph */ - {"\xAB", 0, 0x223D6F}, /* East Asian ideograph */ - {"\xB1", 0, 0x223D73}, /* East Asian ideograph */ - {"\xBD", 0, 0x223D78}, /* East Asian ideograph */ - {"\xBC", 0, 0x223D79}, /* East Asian ideograph */ - {"\xB3", 0, 0x223D7B}, /* East Asian ideograph */ - {"\x9E", 0, 0x223E2A}, /* East Asian ideograph */ - {"\xBB", 0, 0x223E2D}, /* East Asian ideograph */ - {"\xA1", 0, 0x223E33}, /* East Asian ideograph */ - {"\x91", 0, 0x223E37}, /* East Asian ideograph */ - {"\x90", 0, 0x223E38}, /* East Asian ideograph */ - {"\xA8", 0, 0x223E3E}, /* East Asian ideograph */ - {"\xB0", 0, 0x223E3F}, /* East Asian ideograph */ - {"\x83", 0, 0x223E40}, /* East Asian ideograph */ - {"\x94", 0, 0x223E46}, /* East Asian ideograph */ - {"\xAF", 0, 0x223E47}, /* East Asian ideograph */ - {"\x86", 0, 0x223E49}, /* East Asian ideograph */ - {"\x87", 0, 0x223E4B}, /* East Asian ideograph */ - {"\x80", 0, 0x274561}, /* East Asian ideograph */ - {"\x82", 0, 0x284350}, /* East Asian ideograph */ - {"\x8A", 0, 0x2D4472}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page113 = { - marc8r_31page113_flat, 0 -}; -/* PAGE 112 */ -struct yaz_iconv_trie_flat marc8r_31page112_flat[] = { - {"\x81", 0, 0x214457}, /* East Asian ideograph */ - {"\x93", 0, 0x214458}, /* East Asian ideograph */ - {"\xAF", 0, 0x214459}, /* East Asian ideograph */ - {"\xB0", 0, 0x21445B}, /* East Asian ideograph */ - {"\xA7", 0, 0x21445C}, /* East Asian ideograph */ - {"\x97", 0, 0x21445D}, /* East Asian ideograph */ - {"\xB5", 0, 0x21445E}, /* East Asian ideograph */ - {"\xB3", 0, 0x21445F}, /* East Asian ideograph */ - {"\xA2", 0, 0x214460}, /* East Asian ideograph */ - {"\xB1", 0, 0x214462}, /* East Asian ideograph */ - {"\x9D", 0, 0x214463}, /* East Asian ideograph */ - {"\xAD", 0, 0x214464}, /* East Asian ideograph */ - {"\x86", 0, 0x214465}, /* East Asian ideograph */ - {"\x85", 0, 0x214466}, /* East Asian ideograph */ - {"\xA8", 0, 0x214467}, /* East Asian ideograph */ - {"\x9F", 0, 0x214468}, /* East Asian ideograph */ - {"\x94", 0, 0x214469}, /* East Asian ideograph */ - {"\x83", 0, 0x21446A}, /* East Asian ideograph */ - {"\xB2", 0, 0x223C6E}, /* East Asian ideograph */ - {"\x9B", 0, 0x223C71}, /* East Asian ideograph */ - {"\xB6", 0, 0x223C74}, /* East Asian ideograph */ - {"\x82", 0, 0x223C76}, /* East Asian ideograph */ - {"\x90", 0, 0x223C7A}, /* East Asian ideograph */ - {"\x9C", 0, 0x223D22}, /* East Asian ideograph */ - {"\xA9", 0, 0x223D2E}, /* East Asian ideograph */ - {"\x98", 0, 0x223D30}, /* East Asian ideograph */ - {"\x8B", 0, 0x223D32}, /* East Asian ideograph */ - {"\xA0", 0, 0x223D33}, /* East Asian ideograph */ - {"\xA3", 0, 0x223D39}, /* East Asian ideograph */ - {"\x8F", 0, 0x223D40}, /* East Asian ideograph */ - {"\x8E", 0, 0x223D44}, /* East Asian ideograph */ - {"\xB4", 0, 0x223D4B}, /* East Asian ideograph */ - {"\xA5", 0, 0x22697E}, /* East Asian ideograph */ - {"\xA6", 0, 0x273924}, /* East Asian ideograph */ - {"\xBC", 0, 0x284257}, /* East Asian ideograph */ - {"\xB9", 0, 0x2D4564}, /* East Asian ideograph */ - {"\xBA", 0, 0x4B6258}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page112 = { - marc8r_31page112_flat, 0 -}; -/* PAGE 111 */ -struct yaz_iconv_trie_flat marc8r_31page111_flat[] = { - {"\x88", 0, 0x214442}, /* East Asian ideograph */ - {"\x93", 0, 0x214445}, /* East Asian ideograph */ - {"\x86", 0, 0x214446}, /* East Asian ideograph */ - {"\x82", 0, 0x214447}, /* East Asian ideograph */ - {"\x94", 0, 0x214448}, /* East Asian ideograph */ - {"\x91", 0, 0x21444B}, /* East Asian ideograph */ - {"\x90", 0, 0x21444D}, /* East Asian ideograph */ - {"\x83", 0, 0x214451}, /* East Asian ideograph */ - {"\x80", 0, 0x214452}, /* East Asian ideograph */ - {"\x85", 0, 0x214454}, /* East Asian ideograph */ - {"\xB6", 0, 0x21445A}, /* East Asian ideograph */ - {"\xBF", 0, 0x214461}, /* East Asian ideograph */ - {"\x89", 0, 0x223C30}, /* East Asian ideograph */ - {"\x8B", 0, 0x223C37}, /* East Asian ideograph */ - {"\x8E", 0, 0x223C44}, /* East Asian ideograph */ - {"\x8D", 0, 0x223C4A}, /* East Asian ideograph */ - {"\x84", 0, 0x223C4F}, /* East Asian ideograph */ - {"\x9D", 0, 0x223C55}, /* East Asian ideograph */ - {"\x9E", 0, 0x223C56}, /* East Asian ideograph */ - {"\x9A", 0, 0x223C65}, /* East Asian ideograph */ - {"\xAB", 0, 0x223C68}, /* East Asian ideograph */ - {"\xAC", 0, 0x223C69}, /* East Asian ideograph */ - {"\xB9", 0, 0x223C6B}, /* East Asian ideograph */ - {"\xBE", 0, 0x223C72}, /* East Asian ideograph */ - {"\xB2", 0, 0x223D21}, /* East Asian ideograph */ - {"\xAD", 0, 0x223D25}, /* East Asian ideograph */ - {"\xAF", 0, 0x223D34}, /* East Asian ideograph */ - {"\xB4", 0, 0x223D3B}, /* East Asian ideograph */ - {"\xB5", 0, 0x223D3C}, /* East Asian ideograph */ - {"\xB7", 0, 0x223D3F}, /* East Asian ideograph */ - {"\xBB", 0, 0x223D43}, /* East Asian ideograph */ - {"\xA2", 0, 0x27452B}, /* East Asian ideograph */ - {"\xA9", 0, 0x274546}, /* East Asian ideograph */ - {"\xA8", 0, 0x27454C}, /* East Asian ideograph */ - {"\xA6", 0, 0x274557}, /* East Asian ideograph */ - {"\xA5", 0, 0x27455B}, /* East Asian ideograph */ - {"\xA3", 0, 0x27455F}, /* East Asian ideograph */ - {"\xA7", 0, 0x274562}, /* East Asian ideograph */ - {"\xA4", 0, 0x284027}, /* East Asian ideograph */ - {"\xA1", 0, 0x284140}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D4425}, /* East Asian ideograph */ - {"\x92", 0, 0x2D444B}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D447D}, /* East Asian ideograph */ - {"\x81", 0, 0x2D5440}, /* East Asian ideograph */ - {"\x8A", 0, 0x2E3D62}, /* East Asian ideograph */ - {"\x95", 0, 0x3A4034}, /* East Asian ideograph */ - {"\x9F", 0, 0x4B4476}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B456F}, /* East Asian ideograph */ - {"\x99", 0, 0x4C3A5B}, /* East Asian ideograph */ - {"\xA0", 0, 0x4C3B22}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page111 = { - marc8r_31page111_flat, 0 -}; -/* PAGE 110 */ -struct yaz_iconv_trie_flat marc8r_31page110_flat[] = { - {"\x85", 0, 0x21443D}, /* East Asian ideograph */ - {"\xA1", 0, 0x214443}, /* East Asian ideograph */ - {"\xB8", 0, 0x214444}, /* East Asian ideograph */ - {"\x97", 0, 0x214449}, /* East Asian ideograph */ - {"\xBD", 0, 0x21444A}, /* East Asian ideograph */ - {"\xA9", 0, 0x21444C}, /* East Asian ideograph */ - {"\xB9", 0, 0x21444E}, /* East Asian ideograph */ - {"\xAA", 0, 0x214453}, /* East Asian ideograph */ - {"\xBC", 0, 0x214455}, /* East Asian ideograph */ - {"\x93", 0, 0x214456}, /* East Asian ideograph (variant of EACC 4B4456) */ - {"\x90", 0, 0x223B4E}, /* East Asian ideograph */ - {"\x83", 0, 0x223B60}, /* East Asian ideograph */ - {"\x82", 0, 0x223B6D}, /* East Asian ideograph */ - {"\x86", 0, 0x223B78}, /* East Asian ideograph */ - {"\xBE", 0, 0x223C31}, /* East Asian ideograph */ - {"\x94", 0, 0x223C36}, /* East Asian ideograph */ - {"\x9E", 0, 0x223C38}, /* East Asian ideograph */ - {"\xB3", 0, 0x223C3B}, /* East Asian ideograph */ - {"\xB1", 0, 0x223C40}, /* East Asian ideograph */ - {"\xB2", 0, 0x223C41}, /* East Asian ideograph */ - {"\xB5", 0, 0x223C42}, /* East Asian ideograph */ - {"\xBB", 0, 0x223C43}, /* East Asian ideograph */ - {"\xAB", 0, 0x223C47}, /* East Asian ideograph */ - {"\xAD", 0, 0x223C48}, /* East Asian ideograph */ - {"\xB4", 0, 0x223C58}, /* East Asian ideograph */ - {"\x92", 0, 0x223C59}, /* East Asian ideograph */ - {"\x9F", 0, 0x223D65}, /* East Asian ideograph */ - {"\x80", 0, 0x274469}, /* East Asian ideograph */ - {"\x96", 0, 0x27446E}, /* East Asian ideograph */ - {"\x8B", 0, 0x274471}, /* East Asian ideograph */ - {"\x88", 0, 0x274476}, /* East Asian ideograph */ - {"\xB7", 0, 0x274544}, /* East Asian ideograph */ - {"\x87", 0, 0x274547}, /* East Asian ideograph */ - {"\x91", 0, 0x274555}, /* East Asian ideograph */ - {"\x89", 0, 0x27456C}, /* East Asian ideograph */ - {"\x8F", 0, 0x27456E}, /* East Asian ideograph */ - {"\x8E", 0, 0x284333}, /* East Asian ideograph */ - {"\x8A", 0, 0x284339}, /* East Asian ideograph */ - {"\x8C", 0, 0x284345}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D4440}, /* East Asian ideograph */ - {"\x9D", 0, 0x2D4562}, /* East Asian ideograph */ - {"\x93", 0, 0x4B4456}, /* East Asian ideograph */ - {"\x84", 0, 0x4B4537}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page110 = { - marc8r_31page110_flat, 0 -}; -/* PAGE 109 */ -struct yaz_iconv_trie_flat marc8r_31page109_flat[] = { - {"\x93", 0, 0x21442E}, /* East Asian ideograph */ - {"\xB1", 0, 0x21442F}, /* East Asian ideograph */ - {"\xBF", 0, 0x214430}, /* East Asian ideograph */ - {"\x94", 0, 0x214431}, /* East Asian ideograph */ - {"\x84", 0, 0x214432}, /* East Asian ideograph */ - {"\x90", 0, 0x214434}, /* East Asian ideograph */ - {"\x91", 0, 0x214435}, /* East Asian ideograph */ - {"\xAF", 0, 0x214436}, /* East Asian ideograph */ - {"\xA9", 0, 0x214437}, /* East Asian ideograph */ - {"\xAC", 0, 0x214439}, /* East Asian ideograph */ - {"\xA5", 0, 0x21443A}, /* East Asian ideograph */ - {"\xBA", 0, 0x21443B}, /* East Asian ideograph */ - {"\x9A", 0, 0x21443C}, /* East Asian ideograph */ - {"\x9E", 0, 0x21443E}, /* East Asian ideograph */ - {"\x8F", 0, 0x214440}, /* East Asian ideograph */ - {"\xB3", 0, 0x214441}, /* East Asian ideograph */ - {"\xB4", 0, 0x214450}, /* East Asian ideograph */ - {"\xB9", 0, 0x223B44}, /* East Asian ideograph */ - {"\xBC", 0, 0x223B4C}, /* East Asian ideograph */ - {"\x88", 0, 0x223B51}, /* East Asian ideograph */ - {"\x8C", 0, 0x223B54}, /* East Asian ideograph */ - {"\x85", 0, 0x223B58}, /* East Asian ideograph */ - {"\xB8", 0, 0x223B61}, /* East Asian ideograph */ - {"\x98", 0, 0x223B63}, /* East Asian ideograph */ - {"\xA4", 0, 0x223B6F}, /* East Asian ideograph */ - {"\x99", 0, 0x223B70}, /* East Asian ideograph */ - {"\x9B", 0, 0x223B71}, /* East Asian ideograph */ - {"\x9F", 0, 0x223B74}, /* East Asian ideograph */ - {"\xB7", 0, 0x223B75}, /* East Asian ideograph */ - {"\xB6", 0, 0x223B7A}, /* East Asian ideograph */ - {"\xAE", 0, 0x223B7C}, /* East Asian ideograph */ - {"\x82", 0, 0x223C23}, /* East Asian ideograph */ - {"\xA3", 0, 0x223C24}, /* East Asian ideograph */ - {"\x8A", 0, 0x223C26}, /* East Asian ideograph */ - {"\x8E", 0, 0x223C28}, /* East Asian ideograph */ - {"\xA2", 0, 0x223C29}, /* East Asian ideograph */ - {"\xB2", 0, 0x223C2A}, /* East Asian ideograph */ - {"\x83", 0, 0x223C2B}, /* East Asian ideograph */ - {"\x9D", 0, 0x223C2D}, /* East Asian ideograph */ - {"\xA7", 0, 0x223C2F}, /* East Asian ideograph */ - {"\xA0", 0, 0x274563}, /* East Asian ideograph */ - {"\x9C", 0, 0x274565}, /* East Asian ideograph */ - {"\xBD", 0, 0x28405E}, /* East Asian ideograph */ - {"\xB0", 0, 0x2D3931}, /* East Asian ideograph */ - {"\x86", 0, 0x2D4039}, /* East Asian ideograph */ - {"\xBE", 0, 0x2D4437}, /* East Asian ideograph */ - {"\x92", 0, 0x33485E}, /* East Asian ideograph */ - {"\x81", 0, 0x335445}, /* East Asian ideograph */ - {"\x83", 0, 0x4B3C2B}, /* East Asian ideograph (Version J extension) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page109 = { - marc8r_31page109_flat, 0 -}; -/* PAGE 108 */ -struct yaz_iconv_trie_dir marc8r_31page108_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x2D442D} /* East Asian ideograph */, - {0, 0, 0x274526} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x274539} /* East Asian ideograph */, - {0, 0, 0x223A7C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x214421} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21437E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21437C} /* East Asian ideograph */, - {0, 0, 0x223B49} /* East Asian ideograph */, - {0, 0, 0x223B48} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x223B2E} /* East Asian ideograph */, - {0, 0, 0x21442B} /* East Asian ideograph */, - {0, 0, 0x223B25} /* East Asian ideograph */, - {0, 0, 0x223B22} /* East Asian ideograph */, - {0, 0, 0x223A75} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21437D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x214424} /* East Asian ideograph */, - {0, 0, 0x4C3B31} /* East Asian ideograph */, - {0, 0, 0x223B26} /* East Asian ideograph */, - {0, 0, 0x21442A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x214428} /* East Asian ideograph */, - {0, 0, 0x214423} /* East Asian ideograph */, - {0, 0, 0x27454F} /* East Asian ideograph */, - {0, 0, 0x223A7A} /* East Asian ideograph */, - {0, 0, 0x223B3B} /* East Asian ideograph */, - {0, 0, 0x223B3F} /* East Asian ideograph */, - {0, 0, 0x274549} /* East Asian ideograph */, - {0, 0, 0x27447A} /* East Asian ideograph */, - {0, 0, 0x223B28} /* East Asian ideograph */, - {0, 0, 0x284340} /* East Asian ideograph */, - {0, 0, 0x4C4345} /* East Asian ideograph */, - {0, 0, 0x283D30} /* East Asian ideograph */, - {0, 0, 0x283D6E} /* East Asian ideograph */, - {0, 0, 0x4B442D} /* East Asian ideograph */, - {0, 0, 0x274540} /* East Asian ideograph */, - {0, 0, 0x27452F} /* East Asian ideograph */, - {0, 0, 0x223B39} /* East Asian ideograph */, - {0, 0, 0x274468} /* East Asian ideograph */, - {0, 0, 0x223B79} /* East Asian ideograph */, - {0, 0, 0x214433} /* East Asian ideograph */, - {0, 0, 0x223B5F} /* East Asian ideograph */, - {0, 0, 0x3A3B7D} /* East Asian ideograph */, - {0, 0, 0x223B7E} /* East Asian ideograph */, - {0, 0, 0x223B77} /* East Asian ideograph */, - {0, 0, 0x2D4049} /* East Asian ideograph */, - {0, 0, 0x223B72} /* East Asian ideograph */, - {0, 0, 0x214438} /* East Asian ideograph */, - {0, 0, 0x223B64} /* East Asian ideograph */, - {0, 0, 0x21443F} /* East Asian ideograph */, - {0, 0, 0x223C21} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x223B5C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page108 = { - 0, marc8r_31page108_dir -}; -/* PAGE 107 */ -struct yaz_iconv_trie_flat marc8r_31page107_flat[] = { - {"\x9E", 0, 0x214371}, /* East Asian ideograph */ - {"\x91", 0, 0x214372}, /* East Asian ideograph */ - {"\x8E", 0, 0x214373}, /* East Asian ideograph */ - {"\x9C", 0, 0x214374}, /* East Asian ideograph */ - {"\x90", 0, 0x214375}, /* East Asian ideograph */ - {"\x96", 0, 0x214376}, /* East Asian ideograph */ - {"\x9F", 0, 0x214377}, /* East Asian ideograph */ - {"\x8F", 0, 0x214378}, /* East Asian ideograph */ - {"\x89", 0, 0x214379}, /* East Asian ideograph */ - {"\xAD", 0, 0x21437B}, /* East Asian ideograph */ - {"\xB7", 0, 0x214422}, /* East Asian ideograph */ - {"\xAF", 0, 0x214425}, /* East Asian ideograph */ - {"\xB1", 0, 0x214426}, /* East Asian ideograph */ - {"\xB3", 0, 0x214427}, /* East Asian ideograph */ - {"\xB5", 0, 0x214429}, /* East Asian ideograph */ - {"\xBE", 0, 0x21442D}, /* East Asian ideograph */ - {"\x97", 0, 0x223A58}, /* East Asian ideograph */ - {"\x85", 0, 0x223A5B}, /* East Asian ideograph */ - {"\x87", 0, 0x223A5C}, /* East Asian ideograph */ - {"\x9D", 0, 0x223A60}, /* East Asian ideograph */ - {"\x95", 0, 0x223A61}, /* East Asian ideograph */ - {"\x8C", 0, 0x223A66}, /* East Asian ideograph */ - {"\x99", 0, 0x223A67}, /* East Asian ideograph */ - {"\x88", 0, 0x223A68}, /* East Asian ideograph */ - {"\xA3", 0, 0x223A6B}, /* East Asian ideograph */ - {"\x93", 0, 0x223A6E}, /* East Asian ideograph */ - {"\x8A", 0, 0x223A71}, /* East Asian ideograph */ - {"\xBC", 0, 0x223A78}, /* East Asian ideograph */ - {"\xBB", 0, 0x223B21}, /* East Asian ideograph */ - {"\xB6", 0, 0x223B23}, /* East Asian ideograph */ - {"\xB2", 0, 0x223B30}, /* East Asian ideograph */ - {"\xAA", 0, 0x223B32}, /* East Asian ideograph */ - {"\xA5", 0, 0x27314C}, /* East Asian ideograph */ - {"\xB0", 0, 0x273241}, /* East Asian ideograph */ - {"\xA1", 0, 0x274463}, /* East Asian ideograph */ - {"\xA8", 0, 0x27452A}, /* East Asian ideograph */ - {"\x83", 0, 0x274570}, /* East Asian ideograph */ - {"\x80", 0, 0x27463B}, /* East Asian ideograph */ - {"\xBF", 0, 0x275E65}, /* East Asian ideograph */ - {"\x82", 0, 0x275F4B}, /* East Asian ideograph */ - {"\xBE", 0, 0x276163}, /* East Asian ideograph (duplicate simplified) */ - {"\xA9", 0, 0x283F5C}, /* East Asian ideograph */ - {"\x86", 0, 0x2D4461}, /* East Asian ideograph */ - {"\xA0", 0, 0x2D453A}, /* East Asian ideograph */ - {"\x81", 0, 0x4C3A55}, /* East Asian ideograph */ - {"\xA4", 0, 0x4C3B60}, /* East Asian ideograph */ - {"\xA2", 0, 0x694C5D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page107 = { - marc8r_31page107_flat, 0 -}; -/* PAGE 106 */ -struct yaz_iconv_trie_flat marc8r_31page106_flat[] = { - {"\x91", 0, 0x21433A}, /* East Asian ideograph */ - {"\x97", 0, 0x21433E}, /* East Asian ideograph */ - {"\x87", 0, 0x21433F}, /* East Asian ideograph */ - {"\x89", 0, 0x214340}, /* East Asian ideograph */ - {"\x88", 0, 0x214341}, /* East Asian ideograph */ - {"\x96", 0, 0x214342}, /* East Asian ideograph */ - {"\xA2", 0, 0x214343}, /* East Asian ideograph */ - {"\xAB", 0, 0x214344}, /* East Asian ideograph */ - {"\xB4", 0, 0x214345}, /* East Asian ideograph */ - {"\xAE", 0, 0x214346}, /* East Asian ideograph */ - {"\xB9", 0, 0x21434A}, /* East Asian ideograph */ - {"\x84", 0, 0x223870}, /* East Asian ideograph */ - {"\x8C", 0, 0x223871}, /* East Asian ideograph */ - {"\x93", 0, 0x223872}, /* East Asian ideograph */ - {"\x8B", 0, 0x223875}, /* East Asian ideograph */ - {"\x90", 0, 0x223876}, /* East Asian ideograph */ - {"\x94", 0, 0x223879}, /* East Asian ideograph */ - {"\x8A", 0, 0x22387A}, /* East Asian ideograph */ - {"\x98", 0, 0x22387C}, /* East Asian ideograph */ - {"\x8D", 0, 0x22387D}, /* East Asian ideograph */ - {"\xA0", 0, 0x22392A}, /* East Asian ideograph */ - {"\x9D", 0, 0x223932}, /* East Asian ideograph */ - {"\xB2", 0, 0x22393A}, /* East Asian ideograph */ - {"\xB5", 0, 0x223940}, /* East Asian ideograph */ - {"\xAA", 0, 0x223941}, /* East Asian ideograph */ - {"\xAC", 0, 0x223943}, /* East Asian ideograph */ - {"\xB1", 0, 0x223947}, /* East Asian ideograph */ - {"\xBE", 0, 0x22394F}, /* East Asian ideograph */ - {"\xBB", 0, 0x22395A}, /* East Asian ideograph */ - {"\x82", 0, 0x274344}, /* East Asian ideograph */ - {"\xA7", 0, 0x27434B}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D4329}, /* East Asian ideograph */ - {"\x81", 0, 0x2D4348}, /* East Asian ideograph */ - {"\xA6", 0, 0x2D4349}, /* East Asian ideograph */ - {"\xA8", 0, 0x4B4347}, /* East Asian ideograph */ - {"\xB8", 0, 0x4B4D73}, /* East Asian ideograph */ - {"\x83", 0, 0x695A73}, /* East Asian ideograph */ - {"\xBC", 0, 0x695A7E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page106 = { - marc8r_31page106_flat, 0 -}; -/* PAGE 105 */ -struct yaz_iconv_trie_flat marc8r_31page105_flat[] = { - {"\x8F", 0, 0x21432C}, /* East Asian ideograph */ - {"\x82", 0, 0x21432D}, /* East Asian ideograph */ - {"\x92", 0, 0x21432E}, /* East Asian ideograph */ - {"\x89", 0, 0x21432F}, /* East Asian ideograph */ - {"\x83", 0, 0x214330}, /* East Asian ideograph */ - {"\x8C", 0, 0x214331}, /* East Asian ideograph */ - {"\x9D", 0, 0x214332}, /* East Asian ideograph */ - {"\xA4", 0, 0x214333}, /* East Asian ideograph */ - {"\xA8", 0, 0x214334}, /* East Asian ideograph */ - {"\xA6", 0, 0x214335}, /* East Asian ideograph */ - {"\x9A", 0, 0x214336}, /* East Asian ideograph */ - {"\xAF", 0, 0x214337}, /* East Asian ideograph */ - {"\xAE", 0, 0x214338}, /* East Asian ideograph */ - {"\xB4", 0, 0x214339}, /* East Asian ideograph (variant of EACC 4B4339) */ - {"\xB0", 0, 0x21433B}, /* East Asian ideograph */ - {"\xB6", 0, 0x21433C}, /* East Asian ideograph */ - {"\xBA", 0, 0x21433D}, /* East Asian ideograph */ - {"\x85", 0, 0x223831}, /* East Asian ideograph */ - {"\x9F", 0, 0x223832}, /* East Asian ideograph */ - {"\xA5", 0, 0x22383D}, /* East Asian ideograph */ - {"\x9C", 0, 0x22383E}, /* East Asian ideograph */ - {"\xA1", 0, 0x22383F}, /* East Asian ideograph */ - {"\x9B", 0, 0x223848}, /* East Asian ideograph */ - {"\x99", 0, 0x223849}, /* East Asian ideograph */ - {"\xA7", 0, 0x22384A}, /* East Asian ideograph */ - {"\x9E", 0, 0x22384C}, /* East Asian ideograph */ - {"\x97", 0, 0x22384D}, /* East Asian ideograph */ - {"\xBE", 0, 0x223850}, /* East Asian ideograph */ - {"\xAC", 0, 0x223851}, /* East Asian ideograph */ - {"\xB8", 0, 0x22385A}, /* East Asian ideograph */ - {"\xB3", 0, 0x223860}, /* East Asian ideograph */ - {"\xAD", 0, 0x223866}, /* East Asian ideograph */ - {"\xB7", 0, 0x223868}, /* East Asian ideograph */ - {"\x96", 0, 0x274340}, /* East Asian ideograph */ - {"\x95", 0, 0x274341}, /* East Asian ideograph */ - {"\x93", 0, 0x274348}, /* East Asian ideograph */ - {"\x94", 0, 0x28395C}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D433B}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D433E}, /* East Asian ideograph */ - {"\x81", 0, 0x2F5E7D}, /* East Asian ideograph */ - {"\x8B", 0, 0x33432F}, /* East Asian ideograph */ - {"\x84", 0, 0x394330}, /* East Asian ideograph */ - {"\xB4", 0, 0x4B4339}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page105 = { - marc8r_31page105_flat, 0 -}; -/* PAGE 104 */ -struct yaz_iconv_trie_flat marc8r_31page104_flat[] = { - {"\x86", 0, 0x21427B}, /* East Asian ideograph */ - {"\x94", 0, 0x21427C}, /* East Asian ideograph */ - {"\x8C", 0, 0x21427D}, /* East Asian ideograph */ - {"\x80", 0, 0x21427E}, /* East Asian ideograph */ - {"\x8E", 0, 0x214321}, /* East Asian ideograph */ - {"\x93", 0, 0x214322}, /* East Asian ideograph */ - {"\x82", 0, 0x214323}, /* East Asian ideograph */ - {"\x8F", 0, 0x214324}, /* East Asian ideograph */ - {"\xA5", 0, 0x214325}, /* East Asian ideograph */ - {"\xA7", 0, 0x214326}, /* East Asian ideograph */ - {"\xAF", 0, 0x214327}, /* East Asian ideograph */ - {"\xAD", 0, 0x214328}, /* East Asian ideograph */ - {"\xA0", 0, 0x214329}, /* East Asian ideograph */ - {"\x9F", 0, 0x21432A}, /* East Asian ideograph */ - {"\xA8", 0, 0x21432B}, /* East Asian ideograph */ - {"\x89", 0, 0x22375A}, /* East Asian ideograph */ - {"\x8A", 0, 0x22375E}, /* East Asian ideograph */ - {"\x83", 0, 0x223764}, /* East Asian ideograph */ - {"\x91", 0, 0x22376A}, /* East Asian ideograph */ - {"\x95", 0, 0x22376B}, /* East Asian ideograph */ - {"\x84", 0, 0x22376D}, /* East Asian ideograph */ - {"\xB1", 0, 0x22376E}, /* East Asian ideograph */ - {"\xA1", 0, 0x223772}, /* East Asian ideograph */ - {"\xAC", 0, 0x223775}, /* East Asian ideograph */ - {"\xB5", 0, 0x223777}, /* East Asian ideograph */ - {"\x9E", 0, 0x22377C}, /* East Asian ideograph */ - {"\xBA", 0, 0x22377D}, /* East Asian ideograph */ - {"\xB3", 0, 0x223827}, /* East Asian ideograph */ - {"\xAB", 0, 0x223828}, /* East Asian ideograph */ - {"\xB4", 0, 0x22382B}, /* East Asian ideograph */ - {"\xA4", 0, 0x22382C}, /* East Asian ideograph */ - {"\xBC", 0, 0x274332}, /* East Asian ideograph */ - {"\xBE", 0, 0x276058}, /* East Asian ideograph */ - {"\x99", 0, 0x283955}, /* East Asian ideograph */ - {"\x87", 0, 0x2D345B}, /* East Asian ideograph */ - {"\x9A", 0, 0x2D3F24}, /* East Asian ideograph */ - {"\xB0", 0, 0x2D4327}, /* East Asian ideograph */ - {"\xB6", 0, 0x2D4343}, /* East Asian ideograph */ - {"\x9C", 0, 0x2D5F2E}, /* East Asian ideograph */ - {"\x9D", 0, 0x2E3A26}, /* East Asian ideograph */ - {"\xBF", 0, 0x4B434D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page104 = { - marc8r_31page104_flat, 0 -}; -/* PAGE 103 */ -struct yaz_iconv_trie_flat marc8r_31page103_flat[] = { - {"\x81", 0, 0x21426A}, /* East Asian ideograph */ - {"\x85", 0, 0x21426B}, /* East Asian ideograph */ - {"\x8E", 0, 0x21426C}, /* East Asian ideograph */ - {"\x8B", 0, 0x21426D}, /* East Asian ideograph */ - {"\x8C", 0, 0x21426E}, /* East Asian ideograph */ - {"\x8F", 0, 0x21426F}, /* East Asian ideograph */ - {"\x97", 0, 0x214270}, /* East Asian ideograph */ - {"\x96", 0, 0x214271}, /* East Asian ideograph */ - {"\xA2", 0, 0x214272}, /* East Asian ideograph */ - {"\xA5", 0, 0x214273}, /* East Asian ideograph */ - {"\xA9", 0, 0x214275}, /* East Asian ideograph */ - {"\xAC", 0, 0x214276}, /* East Asian ideograph */ - {"\xAD", 0, 0x214277}, /* East Asian ideograph */ - {"\xA8", 0, 0x214278}, /* East Asian ideograph */ - {"\xB1", 0, 0x214279}, /* East Asian ideograph */ - {"\xBA", 0, 0x21427A}, /* East Asian ideograph */ - {"\x86", 0, 0x223731}, /* East Asian ideograph */ - {"\x83", 0, 0x223732}, /* East Asian ideograph */ - {"\x84", 0, 0x223733}, /* East Asian ideograph */ - {"\x82", 0, 0x223734}, /* East Asian ideograph */ - {"\x90", 0, 0x22373B}, /* East Asian ideograph */ - {"\x92", 0, 0x22373C}, /* East Asian ideograph */ - {"\x9B", 0, 0x223744}, /* East Asian ideograph */ - {"\x9C", 0, 0x223745}, /* East Asian ideograph */ - {"\x9D", 0, 0x223747}, /* East Asian ideograph */ - {"\x9F", 0, 0x223748}, /* East Asian ideograph */ - {"\xA1", 0, 0x22374A}, /* East Asian ideograph */ - {"\xA4", 0, 0x22374E}, /* East Asian ideograph */ - {"\xB4", 0, 0x223754}, /* East Asian ideograph */ - {"\xB0", 0, 0x223755}, /* East Asian ideograph */ - {"\xBB", 0, 0x22375B}, /* East Asian ideograph */ - {"\xBC", 0, 0x22375C}, /* East Asian ideograph */ - {"\xB6", 0, 0x27432D}, /* East Asian ideograph */ - {"\xB7", 0, 0x27434D}, /* East Asian ideograph */ - {"\xA0", 0, 0x274966}, /* East Asian ideograph */ - {"\xA7", 0, 0x275435}, /* East Asian ideograph */ - {"\xA6", 0, 0x27565A}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D4272}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D4277}, /* East Asian ideograph */ - {"\xAF", 0, 0x334277}, /* East Asian ideograph */ - {"\x99", 0, 0x4C3744}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page103 = { - marc8r_31page103_flat, 0 -}; -/* PAGE 102 */ -struct yaz_iconv_trie_flat marc8r_31page102_flat[] = { - {"\x82", 0, 0x214256}, /* East Asian ideograph */ - {"\x83", 0, 0x214257}, /* East Asian ideograph */ - {"\x87", 0, 0x214258}, /* East Asian ideograph */ - {"\x91", 0, 0x214259}, /* East Asian ideograph */ - {"\x90", 0, 0x21425A}, /* East Asian ideograph */ - {"\x99", 0, 0x21425C}, /* East Asian ideograph */ - {"\x9C", 0, 0x21425D}, /* East Asian ideograph */ - {"\x9F", 0, 0x21425E}, /* East Asian ideograph */ - {"\xA1", 0, 0x21425F}, /* East Asian ideograph */ - {"\xA4", 0, 0x214260}, /* East Asian ideograph */ - {"\xA5", 0, 0x214261}, /* East Asian ideograph */ - {"\xA7", 0, 0x214262}, /* East Asian ideograph */ - {"\xAC", 0, 0x214263}, /* East Asian ideograph */ - {"\xAF", 0, 0x214264}, /* East Asian ideograph */ - {"\xB0", 0, 0x214265}, /* East Asian ideograph */ - {"\xB7", 0, 0x214266}, /* East Asian ideograph */ - {"\xB9", 0, 0x214267}, /* East Asian ideograph */ - {"\xBD", 0, 0x214269}, /* East Asian ideograph */ - {"\xAB", 0, 0x214E2D}, /* East Asian ideograph */ - {"\x85", 0, 0x223664}, /* East Asian ideograph */ - {"\x8C", 0, 0x22366E}, /* East Asian ideograph */ - {"\x92", 0, 0x223670}, /* East Asian ideograph */ - {"\x95", 0, 0x223671}, /* East Asian ideograph */ - {"\x9B", 0, 0x223675}, /* East Asian ideograph */ - {"\x9D", 0, 0x223677}, /* East Asian ideograph */ - {"\xA0", 0, 0x22367A}, /* East Asian ideograph */ - {"\xA8", 0, 0x223722}, /* East Asian ideograph */ - {"\xA6", 0, 0x223723}, /* East Asian ideograph */ - {"\xAE", 0, 0x223727}, /* East Asian ideograph */ - {"\xB6", 0, 0x22372A}, /* East Asian ideograph */ - {"\xB8", 0, 0x22372C}, /* East Asian ideograph */ - {"\xBF", 0, 0x22372F}, /* East Asian ideograph */ - {"\xA9", 0, 0x274263}, /* East Asian ideograph */ - {"\xAD", 0, 0x274266}, /* East Asian ideograph */ - {"\x97", 0, 0x276167}, /* East Asian ideograph */ - {"\x8E", 0, 0x27627E}, /* East Asian ideograph */ - {"\x93", 0, 0x283671}, /* East Asian ideograph */ - {"\x88", 0, 0x2D3A60}, /* East Asian ideograph */ - {"\x8B", 0, 0x2D627E}, /* East Asian ideograph */ - {"\xB5", 0, 0x2E3729}, /* East Asian ideograph */ - {"\x8D", 0, 0x335830}, /* East Asian ideograph */ - {"\x89", 0, 0x33627D}, /* East Asian ideograph */ - {"\xBC", 0, 0x393052}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page102 = { - marc8r_31page102_flat, 0 -}; -/* PAGE 101 */ -struct yaz_iconv_trie_flat marc8r_31page101_flat[] = { - {"\x85", 0, 0x214242}, /* East Asian ideograph */ - {"\x88", 0, 0x214243}, /* East Asian ideograph */ - {"\x8E", 0, 0x214244}, /* East Asian ideograph */ - {"\x96", 0, 0x214245}, /* East Asian ideograph */ - {"\x91", 0, 0x214246}, /* East Asian ideograph */ - {"\x97", 0, 0x214247}, /* East Asian ideograph */ - {"\x9D", 0, 0x214248}, /* East Asian ideograph */ - {"\x98", 0, 0x214249}, /* East Asian ideograph */ - {"\x8F", 0, 0x21424A}, /* East Asian ideograph */ - {"\xA6", 0, 0x21424B}, /* East Asian ideograph */ - {"\xA2", 0, 0x21424C}, /* East Asian ideograph */ - {"\xA3", 0, 0x21424D}, /* East Asian ideograph */ - {"\x9E", 0, 0x21424E}, /* East Asian ideograph */ - {"\xAC", 0, 0x214250}, /* East Asian ideograph */ - {"\xB2", 0, 0x214251}, /* East Asian ideograph */ - {"\xB5", 0, 0x214252}, /* East Asian ideograph */ - {"\xB7", 0, 0x214253}, /* East Asian ideograph */ - {"\xB8", 0, 0x214254}, /* East Asian ideograph */ - {"\xB4", 0, 0x214255}, /* East Asian ideograph */ - {"\x81", 0, 0x22357C}, /* East Asian ideograph */ - {"\x82", 0, 0x223634}, /* East Asian ideograph */ - {"\x89", 0, 0x223636}, /* East Asian ideograph */ - {"\x94", 0, 0x22363E}, /* East Asian ideograph */ - {"\x95", 0, 0x22363F}, /* East Asian ideograph */ - {"\xA7", 0, 0x223645}, /* East Asian ideograph */ - {"\xA1", 0, 0x223647}, /* East Asian ideograph */ - {"\xAD", 0, 0x22364F}, /* East Asian ideograph */ - {"\xBA", 0, 0x223654}, /* East Asian ideograph */ - {"\xAB", 0, 0x226055}, /* East Asian ideograph */ - {"\x8C", 0, 0x274252}, /* East Asian ideograph */ - {"\xB0", 0, 0x274254}, /* East Asian ideograph */ - {"\x9B", 0, 0x274256}, /* East Asian ideograph */ - {"\xBF", 0, 0x2E3654}, /* East Asian ideograph */ - {"\x99", 0, 0x334244}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page101 = { - marc8r_31page101_flat, 0 -}; -/* PAGE 100 */ -struct yaz_iconv_trie_flat marc8r_31page100_flat[] = { - {"\x86", 0, 0x21422C}, /* East Asian ideograph */ - {"\x80", 0, 0x21422D}, /* East Asian ideograph */ - {"\x8F", 0, 0x214231}, /* East Asian ideograph */ - {"\x98", 0, 0x214232}, /* East Asian ideograph */ - {"\x94", 0, 0x214233}, /* East Asian ideograph */ - {"\x99", 0, 0x214234}, /* East Asian ideograph */ - {"\x9D", 0, 0x214235}, /* East Asian ideograph */ - {"\x9C", 0, 0x214236}, /* East Asian ideograph */ - {"\xA3", 0, 0x214237}, /* East Asian ideograph */ - {"\xA4", 0, 0x214238}, /* East Asian ideograph */ - {"\xAB", 0, 0x214239}, /* East Asian ideograph */ - {"\xAA", 0, 0x21423A}, /* East Asian ideograph */ - {"\xAC", 0, 0x21423B}, /* East Asian ideograph */ - {"\xAF", 0, 0x21423C}, /* East Asian ideograph */ - {"\xB6", 0, 0x21423D}, /* East Asian ideograph */ - {"\xB9", 0, 0x21423E}, /* East Asian ideograph */ - {"\xBB", 0, 0x21423F}, /* East Asian ideograph */ - {"\xBE", 0, 0x214240}, /* East Asian ideograph */ - {"\xBF", 0, 0x214241}, /* East Asian ideograph */ - {"\xB5", 0, 0x217874}, /* East Asian ideograph */ - {"\x84", 0, 0x223546}, /* East Asian ideograph */ - {"\x88", 0, 0x22354F}, /* East Asian ideograph */ - {"\x89", 0, 0x223553}, /* East Asian ideograph */ - {"\x9A", 0, 0x223559}, /* East Asian ideograph */ - {"\x96", 0, 0x22355B}, /* East Asian ideograph */ - {"\x9B", 0, 0x223561}, /* East Asian ideograph */ - {"\xA7", 0, 0x223569}, /* East Asian ideograph */ - {"\xA2", 0, 0x22356D}, /* East Asian ideograph */ - {"\xA9", 0, 0x22356F}, /* East Asian ideograph */ - {"\xA5", 0, 0x223572}, /* East Asian ideograph */ - {"\xAE", 0, 0x223577}, /* East Asian ideograph */ - {"\xB8", 0, 0x22362C}, /* East Asian ideograph */ - {"\x92", 0, 0x28356D}, /* East Asian ideograph */ - {"\xB4", 0, 0x2D416E}, /* East Asian ideograph */ - {"\xB7", 0, 0x2D525D}, /* East Asian ideograph */ - {"\x9F", 0, 0x2E3144}, /* East Asian ideograph */ - {"\xA8", 0, 0x2E3328}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page100 = { - marc8r_31page100_flat, 0 -}; -/* PAGE 99 */ -struct yaz_iconv_trie_flat marc8r_31page99_flat[] = { - {"\x85", 0, 0x214173}, /* East Asian ideograph */ - {"\x81", 0, 0x214174}, /* East Asian ideograph */ - {"\x98", 0, 0x214175}, /* East Asian ideograph */ - {"\x8A", 0, 0x214176}, /* East Asian ideograph */ - {"\x82", 0, 0x214178}, /* East Asian ideograph */ - {"\x8B", 0, 0x21417A}, /* East Asian ideograph */ - {"\x8D", 0, 0x21417B}, /* East Asian ideograph */ - {"\x9A", 0, 0x21417C}, /* East Asian ideograph */ - {"\x84", 0, 0x21417D}, /* East Asian ideograph */ - {"\x87", 0, 0x21417E}, /* East Asian ideograph */ - {"\x8E", 0, 0x214221}, /* East Asian ideograph */ - {"\x94", 0, 0x214222}, /* East Asian ideograph */ - {"\x92", 0, 0x214223}, /* East Asian ideograph */ - {"\xA0", 0, 0x214225}, /* East Asian ideograph */ - {"\xB0", 0, 0x214226}, /* East Asian ideograph */ - {"\xA6", 0, 0x214227}, /* East Asian ideograph */ - {"\xAC", 0, 0x214228}, /* East Asian ideograph */ - {"\xB1", 0, 0x214229}, /* East Asian ideograph */ - {"\xB4", 0, 0x21422A}, /* East Asian ideograph */ - {"\xB2", 0, 0x21422B}, /* East Asian ideograph */ - {"\xBE", 0, 0x21422E}, /* East Asian ideograph */ - {"\xBB", 0, 0x21422F}, /* East Asian ideograph */ - {"\xBA", 0, 0x214230}, /* East Asian ideograph */ - {"\x97", 0, 0x22346A}, /* East Asian ideograph */ - {"\x93", 0, 0x22346C}, /* East Asian ideograph */ - {"\x90", 0, 0x223475}, /* East Asian ideograph */ - {"\xAF", 0, 0x22352A}, /* East Asian ideograph */ - {"\xA1", 0, 0x22352D}, /* East Asian ideograph */ - {"\xA5", 0, 0x22352E}, /* East Asian ideograph */ - {"\xAB", 0, 0x223531}, /* East Asian ideograph */ - {"\xA2", 0, 0x223533}, /* East Asian ideograph */ - {"\xAD", 0, 0x223536}, /* East Asian ideograph */ - {"\xA4", 0, 0x223538}, /* East Asian ideograph */ - {"\xB7", 0, 0x223542}, /* East Asian ideograph */ - {"\xBD", 0, 0x22354B}, /* East Asian ideograph */ - {"\x9E", 0, 0x27422F}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D4153}, /* East Asian ideograph */ - {"\xA7", 0, 0x2D5434}, /* East Asian ideograph */ - {"\x80", 0, 0x3A2F7C}, /* East Asian ideograph */ - {"\xB6", 0, 0x695A31}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page99 = { - marc8r_31page99_flat, 0 -}; -/* PAGE 98 */ -struct yaz_iconv_trie_flat marc8r_31page98_flat[] = { - {"\x9E", 0, 0x214162}, /* East Asian ideograph */ - {"\xA4", 0, 0x214163}, /* East Asian ideograph */ - {"\x87", 0, 0x214164}, /* East Asian ideograph */ - {"\x88", 0, 0x214165}, /* East Asian ideograph */ - {"\xA5", 0, 0x214166}, /* East Asian ideograph */ - {"\xB0", 0, 0x214167}, /* East Asian ideograph */ - {"\x93", 0, 0x214168}, /* East Asian ideograph */ - {"\x95", 0, 0x214169}, /* East Asian ideograph */ - {"\x92", 0, 0x21416A}, /* East Asian ideograph */ - {"\xA9", 0, 0x21416B}, /* East Asian ideograph */ - {"\x91", 0, 0x21416C}, /* East Asian ideograph */ - {"\xAE", 0, 0x21416D}, /* East Asian ideograph */ - {"\xB2", 0, 0x21416E}, /* East Asian ideograph */ - {"\xAD", 0, 0x21416F}, /* East Asian ideograph */ - {"\x9A", 0, 0x214170}, /* East Asian ideograph */ - {"\xAB", 0, 0x214171}, /* East Asian ideograph */ - {"\xAC", 0, 0x214172}, /* East Asian ideograph */ - {"\xBB", 0, 0x214177}, /* East Asian ideograph */ - {"\xBC", 0, 0x214179}, /* East Asian ideograph */ - {"\xBF", 0, 0x214224}, /* East Asian ideograph */ - {"\x82", 0, 0x223427}, /* East Asian ideograph */ - {"\x9D", 0, 0x22343C}, /* East Asian ideograph */ - {"\x99", 0, 0x22343F}, /* East Asian ideograph */ - {"\x8F", 0, 0x223442}, /* East Asian ideograph */ - {"\x96", 0, 0x22344D}, /* East Asian ideograph */ - {"\xA2", 0, 0x22344E}, /* East Asian ideograph */ - {"\x90", 0, 0x223454}, /* East Asian ideograph */ - {"\xB6", 0, 0x22345B}, /* East Asian ideograph */ - {"\x98", 0, 0x223461}, /* East Asian ideograph */ - {"\x9F", 0, 0x223462}, /* East Asian ideograph */ - {"\xA7", 0, 0x223465}, /* East Asian ideograph */ - {"\xB3", 0, 0x223466}, /* East Asian ideograph */ - {"\xBE", 0, 0x223474}, /* East Asian ideograph */ - {"\xB5", 0, 0x27422C}, /* East Asian ideograph */ - {"\xB7", 0, 0x283542}, /* East Asian ideograph */ - {"\x84", 0, 0x28355B}, /* East Asian ideograph */ - {"\xBA", 0, 0x283561}, /* East Asian ideograph */ - {"\xA6", 0, 0x2D4031}, /* East Asian ideograph */ - {"\x85", 0, 0x2D4122}, /* East Asian ideograph */ - {"\x83", 0, 0x2D4176}, /* East Asian ideograph */ - {"\xB9", 0, 0x4B423A}, /* East Asian ideograph */ - {"\xB8", 0, 0x4C354A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page98 = { - marc8r_31page98_flat, 0 -}; -/* PAGE 97 */ -struct yaz_iconv_trie_flat marc8r_31page97_flat[] = { - {"\x98", 0, 0x214157}, /* East Asian ideograph */ - {"\xA9", 0, 0x214158}, /* East Asian ideograph */ - {"\x94", 0, 0x214159}, /* East Asian ideograph */ - {"\x92", 0, 0x21415A}, /* East Asian ideograph */ - {"\xAF", 0, 0x21415B}, /* East Asian ideograph */ - {"\xB8", 0, 0x21415C}, /* East Asian ideograph */ - {"\xB9", 0, 0x21415D}, /* East Asian ideograph */ - {"\xBA", 0, 0x21415E}, /* East Asian ideograph */ - {"\x9F", 0, 0x21415F}, /* East Asian ideograph */ - {"\x91", 0, 0x214160}, /* East Asian ideograph */ - {"\xA7", 0, 0x214161}, /* East Asian ideograph */ - {"\x81", 0, 0x223345}, /* East Asian ideograph */ - {"\x80", 0, 0x223353}, /* East Asian ideograph */ - {"\x9B", 0, 0x223368}, /* East Asian ideograph */ - {"\x8F", 0, 0x22336A}, /* East Asian ideograph */ - {"\xAB", 0, 0x22336C}, /* East Asian ideograph */ - {"\xB6", 0, 0x22336F}, /* East Asian ideograph */ - {"\xB4", 0, 0x223376}, /* East Asian ideograph */ - {"\xBD", 0, 0x223378}, /* East Asian ideograph */ - {"\xB3", 0, 0x22337B}, /* East Asian ideograph */ - {"\x8E", 0, 0x223423}, /* East Asian ideograph */ - {"\xA4", 0, 0x223424}, /* East Asian ideograph */ - {"\x9E", 0, 0x223428}, /* East Asian ideograph */ - {"\xBB", 0, 0x22342C}, /* East Asian ideograph */ - {"\x9C", 0, 0x22342E}, /* East Asian ideograph */ - {"\x86", 0, 0x274230}, /* East Asian ideograph */ - {"\x84", 0, 0x274235}, /* East Asian ideograph */ - {"\x8A", 0, 0x274238}, /* East Asian ideograph */ - {"\x88", 0, 0x28352A}, /* East Asian ideograph */ - {"\x85", 0, 0x283546}, /* East Asian ideograph */ - {"\x87", 0, 0x2D4152}, /* East Asian ideograph */ - {"\x83", 0, 0x394022}, /* East Asian ideograph */ - {"\xAD", 0, 0x394042}, /* East Asian ideograph */ - {"\x82", 0, 0x4B4235}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page97 = { - marc8r_31page97_flat, 0 -}; -/* PAGE 96 */ -struct yaz_iconv_trie_flat marc8r_31page96_flat[] = { - {"\x9E", 0, 0x214149}, /* East Asian ideograph */ - {"\xAA", 0, 0x21414A}, /* East Asian ideograph */ - {"\xBE", 0, 0x21414B}, /* East Asian ideograph */ - {"\x93", 0, 0x21414C}, /* East Asian ideograph */ - {"\x8F", 0, 0x21414D}, /* East Asian ideograph */ - {"\x94", 0, 0x21414E}, /* East Asian ideograph */ - {"\x8D", 0, 0x21414F}, /* East Asian ideograph */ - {"\xAD", 0, 0x214150}, /* East Asian ideograph */ - {"\xBD", 0, 0x214151}, /* East Asian ideograph */ - {"\x96", 0, 0x214152}, /* East Asian ideograph */ - {"\x97", 0, 0x214153}, /* East Asian ideograph */ - {"\x9C", 0, 0x214154}, /* East Asian ideograph */ - {"\xB6", 0, 0x214155}, /* East Asian ideograph */ - {"\xAC", 0, 0x214156}, /* East Asian ideograph */ - {"\x92", 0, 0x22327E}, /* East Asian ideograph */ - {"\x90", 0, 0x223322}, /* East Asian ideograph */ - {"\xB4", 0, 0x223324}, /* East Asian ideograph */ - {"\x9B", 0, 0x223329}, /* East Asian ideograph */ - {"\xA0", 0, 0x22332B}, /* East Asian ideograph */ - {"\xA4", 0, 0x22332C}, /* East Asian ideograph */ - {"\xA6", 0, 0x22332F}, /* East Asian ideograph */ - {"\x8C", 0, 0x223331}, /* East Asian ideograph */ - {"\x95", 0, 0x223336}, /* East Asian ideograph */ - {"\x98", 0, 0x223337}, /* East Asian ideograph */ - {"\x8E", 0, 0x223338}, /* East Asian ideograph */ - {"\x8E", 0, 0x223339}, /* East Asian ideograph (Unicode CJK Extension B) */ - {"\xA2", 0, 0x22333B}, /* East Asian ideograph */ - {"\xA1", 0, 0x22333D}, /* East Asian ideograph */ - {"\xB0", 0, 0x223344}, /* East Asian ideograph */ - {"\xB5", 0, 0x223348}, /* East Asian ideograph */ - {"\x89", 0, 0x22334C}, /* East Asian ideograph */ - {"\x8A", 0, 0x223351}, /* East Asian ideograph */ - {"\x87", 0, 0x223359}, /* East Asian ideograph */ - {"\xBB", 0, 0x22335B}, /* East Asian ideograph */ - {"\xBF", 0, 0x22335D}, /* East Asian ideograph */ - {"\x82", 0, 0x27415F}, /* East Asian ideograph */ - {"\x81", 0, 0x274229}, /* East Asian ideograph */ - {"\x80", 0, 0x274234}, /* East Asian ideograph */ - {"\x85", 0, 0x27423A}, /* East Asian ideograph */ - {"\xAF", 0, 0x2D4132}, /* East Asian ideograph */ - {"\xA8", 0, 0x2D4150}, /* East Asian ideograph */ - {"\x86", 0, 0x2D4539}, /* East Asian ideograph */ - {"\x8B", 0, 0x2E3028}, /* East Asian ideograph */ - {"\xA5", 0, 0x334131}, /* East Asian ideograph */ - {"\x83", 0, 0x3F516D}, /* East Asian ideograph */ - {"\xBA", 0, 0x4B4236}, /* East Asian ideograph */ - {"\xA7", 0, 0x4B4975}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page96 = { - marc8r_31page96_flat, 0 -}; -/* PAGE 95 */ -struct yaz_iconv_trie_flat marc8r_31page95_flat[] = { - {"\x86", 0, 0x214138}, /* East Asian ideograph */ - {"\x89", 0, 0x214139}, /* East Asian ideograph */ - {"\x8D", 0, 0x21413A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21413B}, /* East Asian ideograph */ - {"\x80", 0, 0x21413C}, /* East Asian ideograph */ - {"\xA9", 0, 0x21413D}, /* East Asian ideograph */ - {"\x90", 0, 0x21413E}, /* East Asian ideograph */ - {"\x9A", 0, 0x21413F}, /* East Asian ideograph */ - {"\x96", 0, 0x214140}, /* East Asian ideograph */ - {"\xAD", 0, 0x214141}, /* East Asian ideograph */ - {"\xAE", 0, 0x214142}, /* East Asian ideograph */ - {"\x8F", 0, 0x214143}, /* East Asian ideograph */ - {"\xA3", 0, 0x214144}, /* East Asian ideograph */ - {"\xB4", 0, 0x214145}, /* East Asian ideograph */ - {"\x9B", 0, 0x214146}, /* East Asian ideograph (variant of EACC 454146) */ - {"\x92", 0, 0x214147}, /* East Asian ideograph */ - {"\xAA", 0, 0x214148}, /* East Asian ideograph */ - {"\x9E", 0, 0x223243}, /* East Asian ideograph */ - {"\xA5", 0, 0x223244}, /* East Asian ideograph */ - {"\x93", 0, 0x223247}, /* East Asian ideograph */ - {"\x83", 0, 0x223250}, /* East Asian ideograph */ - {"\xB5", 0, 0x223252}, /* East Asian ideograph */ - {"\xA6", 0, 0x223258}, /* East Asian ideograph */ - {"\xA0", 0, 0x22325B}, /* East Asian ideograph */ - {"\x95", 0, 0x22325C}, /* East Asian ideograph */ - {"\xB6", 0, 0x22325D}, /* East Asian ideograph */ - {"\xB2", 0, 0x22325E}, /* East Asian ideograph */ - {"\xB8", 0, 0x22325F}, /* East Asian ideograph */ - {"\x85", 0, 0x223266}, /* East Asian ideograph */ - {"\xB9", 0, 0x22326A}, /* East Asian ideograph */ - {"\xAB", 0, 0x223272}, /* East Asian ideograph */ - {"\x9D", 0, 0x223273}, /* East Asian ideograph */ - {"\x91", 0, 0x223276}, /* East Asian ideograph */ - {"\x84", 0, 0x223279}, /* East Asian ideograph */ - {"\x9C", 0, 0x22327A}, /* East Asian ideograph */ - {"\x97", 0, 0x22327B}, /* East Asian ideograph */ - {"\xBD", 0, 0x27423B}, /* East Asian ideograph */ - {"\xBF", 0, 0x283466}, /* East Asian ideograph */ - {"\x8E", 0, 0x2D4066}, /* East Asian ideograph */ - {"\x9B", 0, 0x454146}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page95 = { - marc8r_31page95_flat, 0 -}; -/* PAGE 94 */ -struct yaz_iconv_trie_flat marc8r_31page94_flat[] = { - {"\xA5", 0, 0x214076}, /* East Asian ideograph */ - {"\xA0", 0, 0x214078}, /* East Asian ideograph */ - {"\x96", 0, 0x214079}, /* East Asian ideograph */ - {"\xA7", 0, 0x21407A}, /* East Asian ideograph */ - {"\x83", 0, 0x21407D}, /* East Asian ideograph */ - {"\x98", 0, 0x214122}, /* East Asian ideograph */ - {"\x9B", 0, 0x214123}, /* East Asian ideograph */ - {"\xAA", 0, 0x214124}, /* East Asian ideograph */ - {"\xA9", 0, 0x214126}, /* East Asian ideograph */ - {"\x8C", 0, 0x214127}, /* East Asian ideograph */ - {"\x89", 0, 0x214128}, /* East Asian ideograph */ - {"\xA2", 0, 0x214129}, /* East Asian ideograph */ - {"\x99", 0, 0x21412A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21412B}, /* East Asian ideograph */ - {"\x88", 0, 0x21412C}, /* East Asian ideograph */ - {"\xAC", 0, 0x21412D}, /* East Asian ideograph */ - {"\x92", 0, 0x21412F}, /* East Asian ideograph */ - {"\xA3", 0, 0x214130}, /* East Asian ideograph */ - {"\x8F", 0, 0x214132}, /* East Asian ideograph */ - {"\xA8", 0, 0x214133}, /* East Asian ideograph */ - {"\x84", 0, 0x214136}, /* East Asian ideograph */ - {"\x80", 0, 0x214137}, /* East Asian ideograph */ - {"\xB6", 0, 0x22316A}, /* East Asian ideograph */ - {"\x82", 0, 0x22316B}, /* East Asian ideograph */ - {"\x9F", 0, 0x22316E}, /* East Asian ideograph */ - {"\x9E", 0, 0x223172}, /* East Asian ideograph */ - {"\x81", 0, 0x223179}, /* East Asian ideograph */ - {"\x97", 0, 0x22317B}, /* East Asian ideograph */ - {"\xAB", 0, 0x22317D}, /* East Asian ideograph */ - {"\x87", 0, 0x223225}, /* East Asian ideograph */ - {"\x8E", 0, 0x223227}, /* East Asian ideograph */ - {"\x86", 0, 0x22322A}, /* East Asian ideograph */ - {"\xAF", 0, 0x223230}, /* East Asian ideograph */ - {"\xB1", 0, 0x223237}, /* East Asian ideograph */ - {"\xB0", 0, 0x223238}, /* East Asian ideograph */ - {"\xAE", 0, 0x223239}, /* East Asian ideograph */ - {"\x90", 0, 0x22323B}, /* East Asian ideograph */ - {"\xAD", 0, 0x22323D}, /* East Asian ideograph */ - {"\xBD", 0, 0x22324F}, /* East Asian ideograph */ - {"\xBE", 0, 0x223270}, /* East Asian ideograph */ - {"\xB4", 0, 0x274160}, /* East Asian ideograph */ - {"\xB3", 0, 0x27417D}, /* East Asian ideograph */ - {"\xB7", 0, 0x27422B}, /* East Asian ideograph */ - {"\xBA", 0, 0x28342C}, /* East Asian ideograph */ - {"\xBC", 0, 0x28342E}, /* East Asian ideograph */ - {"\xB8", 0, 0x283457}, /* East Asian ideograph */ - {"\xB2", 0, 0x2D4141}, /* East Asian ideograph */ - {"\x8A", 0, 0x3F404F}, /* East Asian ideograph */ - {"\xB5", 0, 0x69595E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page94 = { - marc8r_31page94_flat, 0 -}; -/* PAGE 93 */ -struct yaz_iconv_trie_flat marc8r_31page93_flat[] = { - {"\x82", 0, 0x214069}, /* East Asian ideograph */ - {"\x95", 0, 0x21406B}, /* East Asian ideograph */ - {"\x8E", 0, 0x21406E}, /* East Asian ideograph */ - {"\x8F", 0, 0x21406F}, /* East Asian ideograph */ - {"\x90", 0, 0x214070}, /* East Asian ideograph */ - {"\x89", 0, 0x214071}, /* East Asian ideograph */ - {"\xA9", 0, 0x214077}, /* East Asian ideograph */ - {"\xB2", 0, 0x21407B}, /* East Asian ideograph */ - {"\xB7", 0, 0x21407C}, /* East Asian ideograph */ - {"\xAB", 0, 0x21407E}, /* East Asian ideograph */ - {"\xA7", 0, 0x214121}, /* East Asian ideograph */ - {"\xB1", 0, 0x214125}, /* East Asian ideograph */ - {"\xB6", 0, 0x214131}, /* East Asian ideograph */ - {"\xBB", 0, 0x214134}, /* East Asian ideograph */ - {"\xA8", 0, 0x214135}, /* East Asian ideograph (variant of EACC 4B4135) */ - {"\xA0", 0, 0x223132}, /* East Asian ideograph */ - {"\x85", 0, 0x223142}, /* East Asian ideograph */ - {"\x83", 0, 0x223144}, /* East Asian ideograph */ - {"\x93", 0, 0x223147}, /* East Asian ideograph */ - {"\xA4", 0, 0x223148}, /* East Asian ideograph */ - {"\x84", 0, 0x22314A}, /* East Asian ideograph */ - {"\x97", 0, 0x223158}, /* East Asian ideograph */ - {"\x98", 0, 0x22315B}, /* East Asian ideograph */ - {"\x8B", 0, 0x22315C}, /* East Asian ideograph */ - {"\x94", 0, 0x22315F}, /* East Asian ideograph */ - {"\xBD", 0, 0x223168}, /* East Asian ideograph */ - {"\xAC", 0, 0x22316C}, /* East Asian ideograph */ - {"\xBF", 0, 0x223173}, /* East Asian ideograph */ - {"\xBA", 0, 0x223226}, /* East Asian ideograph */ - {"\xB5", 0, 0x22322F}, /* East Asian ideograph */ - {"\xBC", 0, 0x22323A}, /* East Asian ideograph */ - {"\xAD", 0, 0x223241}, /* East Asian ideograph */ - {"\x9F", 0, 0x27414F}, /* East Asian ideograph */ - {"\xA3", 0, 0x274153}, /* East Asian ideograph */ - {"\x9E", 0, 0x274165}, /* East Asian ideograph */ - {"\xAE", 0, 0x27417C}, /* East Asian ideograph */ - {"\xA1", 0, 0x274224}, /* East Asian ideograph */ - {"\x86", 0, 0x27513D}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D3324}, /* East Asian ideograph */ - {"\x9C", 0, 0x2D4154}, /* East Asian ideograph */ - {"\x8D", 0, 0x2E2F7C}, /* East Asian ideograph */ - {"\xB4", 0, 0x33516D}, /* East Asian ideograph */ - {"\x8C", 0, 0x4B3324}, /* East Asian ideograph (variant of EACC 2D3324) */ - {"\xA8", 0, 0x4B4135}, /* East Asian ideograph */ - {"\xA2", 0, 0x4B4146}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page93 = { - marc8r_31page93_flat, 0 -}; -/* PAGE 92 */ -struct yaz_iconv_trie_flat marc8r_31page92_flat[] = { - {"\x89", 0, 0x214057}, /* East Asian ideograph */ - {"\x96", 0, 0x214058}, /* East Asian ideograph */ - {"\x88", 0, 0x21405B}, /* East Asian ideograph */ - {"\x81", 0, 0x21405D}, /* East Asian ideograph */ - {"\x87", 0, 0x214061}, /* East Asian ideograph */ - {"\x91", 0, 0x214064}, /* East Asian ideograph */ - {"\xAA", 0, 0x21406A}, /* East Asian ideograph */ - {"\xBE", 0, 0x21406C}, /* East Asian ideograph */ - {"\xAF", 0, 0x21406D}, /* East Asian ideograph */ - {"\xAB", 0, 0x214073}, /* East Asian ideograph */ - {"\xA8", 0, 0x214074}, /* East Asian ideograph */ - {"\xBA", 0, 0x214075}, /* East Asian ideograph */ - {"\xBD", 0, 0x21412E}, /* East Asian ideograph */ - {"\x8D", 0, 0x223072}, /* East Asian ideograph */ - {"\x8C", 0, 0x223131}, /* East Asian ideograph */ - {"\xB1", 0, 0x22313A}, /* East Asian ideograph */ - {"\xB5", 0, 0x223145}, /* East Asian ideograph */ - {"\xB6", 0, 0x223149}, /* East Asian ideograph */ - {"\xB9", 0, 0x223154}, /* East Asian ideograph */ - {"\xBC", 0, 0x22315A}, /* East Asian ideograph */ - {"\x9F", 0, 0x27406C}, /* East Asian ideograph */ - {"\x82", 0, 0x274123}, /* East Asian ideograph */ - {"\xA5", 0, 0x274142}, /* East Asian ideograph */ - {"\x9A", 0, 0x27415B}, /* East Asian ideograph */ - {"\xA0", 0, 0x274168}, /* East Asian ideograph */ - {"\x9E", 0, 0x274177}, /* East Asian ideograph */ - {"\xA1", 0, 0x27417A}, /* East Asian ideograph */ - {"\xA4", 0, 0x274225}, /* East Asian ideograph */ - {"\x9B", 0, 0x274237}, /* East Asian ideograph */ - {"\xA2", 0, 0x283462}, /* East Asian ideograph */ - {"\xB2", 0, 0x2E313A}, /* East Asian ideograph */ - {"\x8E", 0, 0x2E337B}, /* East Asian ideograph */ - {"\xA3", 0, 0x4B412A}, /* East Asian ideograph */ - {"\xBF", 0, 0x4B4147}, /* East Asian ideograph */ - {"\x99", 0, 0x4B5434}, /* East Asian ideograph */ - {"\x9D", 0, 0x4C3474}, /* East Asian ideograph */ - {"\xA7", 0, 0x69594B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page92 = { - marc8r_31page92_flat, 0 -}; -/* PAGE 91 */ -struct yaz_iconv_trie_dir marc8r_31page91_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21403F} /* East Asian ideograph */, - {0, 0, 0x22306A} /* East Asian ideograph */, - {0, 0, 0x21403A} /* East Asian ideograph */, - {0, 0, 0x274222} /* East Asian ideograph */, - {0, 0, 0x214056} /* East Asian ideograph */, - {0, 0, 0x21404E} /* East Asian ideograph */, - {0, 0, 0x21404A} /* East Asian ideograph */, - {0, 0, 0x214039} /* East Asian ideograph */, - {0, 0, 0x2D4171} /* East Asian ideograph */, - {0, 0, 0x214045} /* East Asian ideograph */, - {0, 0, 0x21403B} /* East Asian ideograph */, - {0, 0, 0x214052} /* East Asian ideograph */, - {0, 0, 0x214054} /* East Asian ideograph */, - {0, 0, 0x2D4067} /* East Asian ideograph */, - {0, 0, 0x214049} /* East Asian ideograph (variant of EACC 4B4049) */, - {0, 0, 0x223057} /* East Asian ideograph */, - {0, 0, 0x214041} /* East Asian ideograph */, - {0, 0, 0x214042} /* East Asian ideograph */, - {0, 0, 0x214046} /* East Asian ideograph */, - {0, 0, 0x334050} /* East Asian ideograph */, - {0, 0, 0x214050} /* East Asian ideograph */, - {0, 0, 0x214055} /* East Asian ideograph */, - {0, 0, 0x214051} /* East Asian ideograph */, - {0, 0, 0x21404B} /* East Asian ideograph */, - {0, 0, 0x21404C} /* East Asian ideograph */, - {0, 0, 0x214043} /* East Asian ideograph */, - {0, 0, 0x21403D} /* East Asian ideograph */, - {0, 0, 0x4B403D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x274228} /* East Asian ideograph */, - {0, 0, 0x39417C} /* East Asian ideograph */, - {0, 0, 0x33422A} /* East Asian ideograph */, - {0, 0, 0x274231} /* East Asian ideograph */, - {0, 0, 0x27413C} /* East Asian ideograph */, - {0, 0, 0x223061} /* East Asian ideograph */, - {0, 0, 0x274174} /* East Asian ideograph */, - {0, 0, 0x274233} /* East Asian ideograph */, - {0, 0, 0x274226} /* East Asian ideograph */, - {0, 0, 0x274166} /* East Asian ideograph */, - {0, 0, 0x27417E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x214065} /* East Asian ideograph */, - {0, 0, 0x21405C} /* East Asian ideograph */, - {0, 0, 0x21405E} /* East Asian ideograph */, - {0, 0, 0x21405F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x214062} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21405A} /* East Asian ideograph */, - {0, 0, 0x214066} /* East Asian ideograph (variant of EACC 4B4066) */, - {0, 0, 0x223125} /* East Asian ideograph */, - {0, 0, 0x223137} /* East Asian ideograph */, - {0, 0, 0x214060} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x214059} /* East Asian ideograph */, - {0, 0, 0x214063} /* East Asian ideograph */, - {0, 0, 0x2D3457} /* East Asian ideograph */, - {0, 0, 0x214067} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page91 = { - 0, marc8r_31page91_dir -}; -/* PAGE 90 */ -struct yaz_iconv_trie_flat marc8r_31page90_flat[] = { - {"\x96", 0, 0x214025}, /* East Asian ideograph */ - {"\x97", 0, 0x214026}, /* East Asian ideograph */ - {"\x92", 0, 0x214027}, /* East Asian ideograph */ - {"\x89", 0, 0x214029}, /* East Asian ideograph */ - {"\x80", 0, 0x21402C}, /* East Asian ideograph */ - {"\x8A", 0, 0x21402D}, /* East Asian ideograph */ - {"\x84", 0, 0x214032}, /* East Asian ideograph */ - {"\x95", 0, 0x214033}, /* East Asian ideograph */ - {"\x91", 0, 0x214034}, /* East Asian ideograph */ - {"\x98", 0, 0x214035}, /* East Asian ideograph */ - {"\x93", 0, 0x214038}, /* East Asian ideograph */ - {"\xA8", 0, 0x21403C}, /* East Asian ideograph */ - {"\xBF", 0, 0x21403E}, /* East Asian ideograph */ - {"\xB9", 0, 0x214040}, /* East Asian ideograph */ - {"\xAB", 0, 0x214044}, /* East Asian ideograph */ - {"\xBD", 0, 0x214047}, /* East Asian ideograph */ - {"\xBC", 0, 0x214048}, /* East Asian ideograph */ - {"\xAC", 0, 0x21404D}, /* East Asian ideograph */ - {"\xB1", 0, 0x21404F}, /* East Asian ideograph */ - {"\xB5", 0, 0x214053}, /* East Asian ideograph */ - {"\x86", 0, 0x223031}, /* East Asian ideograph */ - {"\x8E", 0, 0x223032}, /* East Asian ideograph */ - {"\xA3", 0, 0x223041}, /* East Asian ideograph */ - {"\x82", 0, 0x223043}, /* East Asian ideograph */ - {"\x85", 0, 0x223046}, /* East Asian ideograph */ - {"\x9D", 0, 0x22304B}, /* East Asian ideograph */ - {"\xA6", 0, 0x223056}, /* East Asian ideograph */ - {"\xB6", 0, 0x223069}, /* East Asian ideograph */ - {"\xA5", 0, 0x273844}, /* East Asian ideograph */ - {"\xA1", 0, 0x274136}, /* East Asian ideograph */ - {"\xA2", 0, 0x274155}, /* East Asian ideograph */ - {"\x9A", 0, 0x274171}, /* East Asian ideograph */ - {"\xA4", 0, 0x275948}, /* East Asian ideograph */ - {"\x9F", 0, 0x28336F}, /* East Asian ideograph */ - {"\xA0", 0, 0x28337B}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D313A}, /* East Asian ideograph */ - {"\x83", 0, 0x2D404C}, /* East Asian ideograph */ - {"\x94", 0, 0x2D404F}, /* East Asian ideograph */ - {"\x9B", 0, 0x334045}, /* East Asian ideograph */ - {"\x9E", 0, 0x33417E}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B4046}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page90 = { - marc8r_31page90_flat, 0 -}; -/* PAGE 89 */ -struct yaz_iconv_trie_flat marc8r_31page89_flat[] = { - {"\x80", 0, 0x213F75}, /* East Asian ideograph */ - {"\x81", 0, 0x213F76}, /* East Asian ideograph */ - {"\x88", 0, 0x213F78}, /* East Asian ideograph */ - {"\x89", 0, 0x213F79}, /* East Asian ideograph */ - {"\x8B", 0, 0x213F7A}, /* East Asian ideograph */ - {"\x93", 0, 0x213F7D}, /* East Asian ideograph */ - {"\x94", 0, 0x213F7E}, /* East Asian ideograph */ - {"\x92", 0, 0x214021}, /* East Asian ideograph */ - {"\x9B", 0, 0x214022}, /* East Asian ideograph */ - {"\xA3", 0, 0x214023}, /* East Asian ideograph */ - {"\x98", 0, 0x214024}, /* East Asian ideograph */ - {"\xB6", 0, 0x214028}, /* East Asian ideograph */ - {"\xBF", 0, 0x21402A}, /* East Asian ideograph */ - {"\xB9", 0, 0x21402B}, /* East Asian ideograph */ - {"\xAD", 0, 0x21402E}, /* East Asian ideograph */ - {"\xBC", 0, 0x21402F}, /* East Asian ideograph */ - {"\xBE", 0, 0x214030}, /* East Asian ideograph */ - {"\xAF", 0, 0x214031}, /* East Asian ideograph */ - {"\xAE", 0, 0x214036}, /* East Asian ideograph */ - {"\xB3", 0, 0x214037}, /* East Asian ideograph */ - {"\x83", 0, 0x222F75}, /* East Asian ideograph */ - {"\x86", 0, 0x222F77}, /* East Asian ideograph */ - {"\x85", 0, 0x222F78}, /* East Asian ideograph */ - {"\x8A", 0, 0x222F79}, /* East Asian ideograph */ - {"\x90", 0, 0x222F7A}, /* East Asian ideograph */ - {"\x9E", 0, 0x222F7C}, /* East Asian ideograph */ - {"\xA8", 0, 0x223026}, /* East Asian ideograph */ - {"\xA0", 0, 0x223028}, /* East Asian ideograph */ - {"\x9A", 0, 0x22302B}, /* East Asian ideograph */ - {"\xA2", 0, 0x22302C}, /* East Asian ideograph */ - {"\xA6", 0, 0x22302D}, /* East Asian ideograph */ - {"\xA7", 0, 0x27383B}, /* East Asian ideograph */ - {"\xAB", 0, 0x27407D}, /* East Asian ideograph */ - {"\xAA", 0, 0x27407E}, /* East Asian ideograph */ - {"\xAC", 0, 0x27413F}, /* East Asian ideograph */ - {"\x91", 0, 0x27416E}, /* East Asian ideograph */ - {"\xA9", 0, 0x27422A}, /* East Asian ideograph */ - {"\xB0", 0, 0x27422E}, /* East Asian ideograph */ - {"\x87", 0, 0x274975}, /* East Asian ideograph */ - {"\x8E", 0, 0x275129}, /* East Asian ideograph */ - {"\x8D", 0, 0x28736D}, /* East Asian ideograph */ - {"\x95", 0, 0x2D403F}, /* East Asian ideograph */ - {"\xB1", 0, 0x2D4147}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B3052}, /* East Asian ideograph */ - {"\xBA", 0, 0x4B4053}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page89 = { - marc8r_31page89_flat, 0 -}; -/* PAGE 88 */ -struct yaz_iconv_trie_flat marc8r_31page88_flat[] = { - {"\x80", 0, 0x213F5C}, /* East Asian ideograph */ - {"\x88", 0, 0x213F5D}, /* East Asian ideograph */ - {"\x8A", 0, 0x213F5E}, /* East Asian ideograph */ - {"\x8E", 0, 0x213F5F}, /* East Asian ideograph */ - {"\x8D", 0, 0x213F60}, /* East Asian ideograph */ - {"\x8C", 0, 0x213F61}, /* East Asian ideograph */ - {"\x90", 0, 0x213F62}, /* East Asian ideograph */ - {"\x92", 0, 0x213F63}, /* East Asian ideograph */ - {"\x91", 0, 0x213F64}, /* East Asian ideograph */ - {"\x96", 0, 0x213F65}, /* East Asian ideograph */ - {"\x95", 0, 0x213F66}, /* East Asian ideograph */ - {"\x9B", 0, 0x213F67}, /* East Asian ideograph */ - {"\x9A", 0, 0x213F68}, /* East Asian ideograph */ - {"\x9F", 0, 0x213F69}, /* East Asian ideograph */ - {"\xA1", 0, 0x213F6A}, /* East Asian ideograph */ - {"\xA2", 0, 0x213F6B}, /* East Asian ideograph */ - {"\xAA", 0, 0x213F6C}, /* East Asian ideograph */ - {"\xAE", 0, 0x213F6D}, /* East Asian ideograph */ - {"\xB0", 0, 0x213F6E}, /* East Asian ideograph */ - {"\xB2", 0, 0x213F6F}, /* East Asian ideograph */ - {"\xB4", 0, 0x213F70}, /* East Asian ideograph */ - {"\xB3", 0, 0x213F71}, /* East Asian ideograph */ - {"\xB6", 0, 0x213F72}, /* East Asian ideograph */ - {"\xBF", 0, 0x213F73}, /* East Asian ideograph */ - {"\xBE", 0, 0x213F74}, /* East Asian ideograph */ - {"\x81", 0, 0x222F3D}, /* East Asian ideograph */ - {"\x84", 0, 0x222F41}, /* East Asian ideograph */ - {"\x87", 0, 0x222F43}, /* East Asian ideograph */ - {"\x89", 0, 0x222F44}, /* East Asian ideograph */ - {"\x94", 0, 0x222F47}, /* East Asian ideograph */ - {"\xA3", 0, 0x222F56}, /* East Asian ideograph */ - {"\xA5", 0, 0x222F5B}, /* East Asian ideograph */ - {"\xA4", 0, 0x222F5D}, /* East Asian ideograph */ - {"\xA9", 0, 0x222F61}, /* East Asian ideograph */ - {"\xAD", 0, 0x222F67}, /* East Asian ideograph */ - {"\xB9", 0, 0x222F6E}, /* East Asian ideograph */ - {"\xBA", 0, 0x222F6F}, /* East Asian ideograph */ - {"\xBD", 0, 0x222F70}, /* East Asian ideograph */ - {"\x98", 0, 0x273F6E}, /* East Asian ideograph */ - {"\x8F", 0, 0x273F6F}, /* East Asian ideograph */ - {"\x86", 0, 0x282F43}, /* East Asian ideograph */ - {"\x8B", 0, 0x282F47}, /* East Asian ideograph */ - {"\x97", 0, 0x282F66}, /* East Asian ideograph */ - {"\x9E", 0, 0x2D3F67}, /* East Asian ideograph */ - {"\xA6", 0, 0x2D3F6E}, /* East Asian ideograph */ - {"\xAF", 0, 0x2D3F6F}, /* East Asian ideograph */ - {"\xBB", 0, 0x4B3F74}, /* East Asian ideograph */ - {"\x9D", 0, 0x4B5A23}, /* East Asian ideograph */ - {"\xAC", 0, 0x4C2F61}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page88 = { - marc8r_31page88_flat, 0 -}; -/* PAGE 87 */ -struct yaz_iconv_trie_flat marc8r_31page87_flat[] = { - {"\x8D", 0, 0x213F49}, /* East Asian ideograph */ - {"\x89", 0, 0x213F4A}, /* East Asian ideograph */ - {"\x82", 0, 0x213F4D}, /* East Asian ideograph */ - {"\x87", 0, 0x213F4E}, /* East Asian ideograph */ - {"\x88", 0, 0x213F4F}, /* East Asian ideograph */ - {"\x8A", 0, 0x213F50}, /* East Asian ideograph */ - {"\xA3", 0, 0x213F51}, /* East Asian ideograph */ - {"\xA6", 0, 0x213F52}, /* East Asian ideograph */ - {"\xB2", 0, 0x213F53}, /* East Asian ideograph (variant of EACC 4B3F53) */ - {"\xB7", 0, 0x213F54}, /* East Asian ideograph */ - {"\xB6", 0, 0x213F55}, /* East Asian ideograph */ - {"\xB8", 0, 0x213F56}, /* East Asian ideograph */ - {"\xB5", 0, 0x213F57}, /* East Asian ideograph */ - {"\xBA", 0, 0x213F58}, /* East Asian ideograph */ - {"\xBE", 0, 0x213F59}, /* East Asian ideograph */ - {"\xBF", 0, 0x213F5A}, /* East Asian ideograph */ - {"\xBC", 0, 0x213F5B}, /* East Asian ideograph */ - {"\x8B", 0, 0x222E5A}, /* East Asian ideograph */ - {"\x8C", 0, 0x222E5C}, /* East Asian ideograph */ - {"\x86", 0, 0x222E5D}, /* East Asian ideograph */ - {"\xA0", 0, 0x222E71}, /* East Asian ideograph */ - {"\xA5", 0, 0x222E77}, /* East Asian ideograph */ - {"\x9C", 0, 0x222E7D}, /* East Asian ideograph */ - {"\x9F", 0, 0x222E7E}, /* East Asian ideograph */ - {"\xB3", 0, 0x222F29}, /* East Asian ideograph */ - {"\x92", 0, 0x273F55}, /* East Asian ideograph */ - {"\x90", 0, 0x2D3F54}, /* East Asian ideograph */ - {"\xBD", 0, 0x2D4621}, /* East Asian ideograph */ - {"\xB4", 0, 0x333F58}, /* East Asian ideograph */ - {"\x83", 0, 0x393439}, /* East Asian ideograph */ - {"\x9E", 0, 0x3F5564}, /* East Asian ideograph */ - {"\x8A", 0, 0x4B3F50}, /* East Asian ideograph (variant of EACC 213F50) */ - {"\x91", 0, 0x4B3F51}, /* East Asian ideograph */ - {"\xB2", 0, 0x4B3F53}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page87 = { - marc8r_31page87_flat, 0 -}; -/* PAGE 86 */ -struct yaz_iconv_trie_flat marc8r_31page86_flat[] = { - {"\x82", 0, 0x213F33}, /* East Asian ideograph */ - {"\xA7", 0, 0x213F3D}, /* East Asian ideograph */ - {"\xB2", 0, 0x213F3E}, /* East Asian ideograph */ - {"\x91", 0, 0x213F3F}, /* East Asian ideograph */ - {"\x8E", 0, 0x213F40}, /* East Asian ideograph */ - {"\xAB", 0, 0x213F41}, /* East Asian ideograph */ - {"\xA4", 0, 0x213F42}, /* East Asian ideograph */ - {"\xAC", 0, 0x213F43}, /* East Asian ideograph */ - {"\x9A", 0, 0x213F44}, /* East Asian ideograph */ - {"\xA9", 0, 0x213F45}, /* East Asian ideograph */ - {"\x94", 0, 0x213F46}, /* East Asian ideograph */ - {"\x8A", 0, 0x213F47}, /* East Asian ideograph */ - {"\xB6", 0, 0x213F48}, /* East Asian ideograph */ - {"\x90", 0, 0x213F4B}, /* East Asian ideograph */ - {"\xBE", 0, 0x213F4C}, /* East Asian ideograph */ - {"\x83", 0, 0x222D6B}, /* East Asian ideograph */ - {"\x8B", 0, 0x222E23}, /* East Asian ideograph */ - {"\x9D", 0, 0x222E32}, /* East Asian ideograph */ - {"\xA6", 0, 0x222E33}, /* East Asian ideograph */ - {"\xA2", 0, 0x222E3D}, /* East Asian ideograph */ - {"\xA8", 0, 0x222E40}, /* East Asian ideograph */ - {"\x9C", 0, 0x222E42}, /* East Asian ideograph */ - {"\xAF", 0, 0x222E43}, /* East Asian ideograph */ - {"\x96", 0, 0x222E45}, /* East Asian ideograph */ - {"\x97", 0, 0x222E46}, /* East Asian ideograph */ - {"\xAD", 0, 0x222E47}, /* East Asian ideograph */ - {"\x92", 0, 0x222E4C}, /* East Asian ideograph */ - {"\xAE", 0, 0x222E52}, /* East Asian ideograph */ - {"\x8D", 0, 0x222E55}, /* East Asian ideograph */ - {"\xBA", 0, 0x222E68}, /* East Asian ideograph */ - {"\xB8", 0, 0x222E6A}, /* East Asian ideograph */ - {"\x87", 0, 0x273F45}, /* East Asian ideograph */ - {"\x99", 0, 0x2D3661}, /* East Asian ideograph */ - {"\x85", 0, 0x2D3F3A}, /* East Asian ideograph */ - {"\x8E", 0, 0x4B3F40}, /* East Asian ideograph (variant of EACC 213F40) */ - {"\xB7", 0, 0x706340}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page86 = { - marc8r_31page86_flat, 0 -}; -/* PAGE 85 */ -struct yaz_iconv_trie_flat marc8r_31page85_flat[] = { - {"\x88", 0, 0x213F21}, /* East Asian ideograph */ - {"\xA8", 0, 0x213F22}, /* East Asian ideograph */ - {"\x8C", 0, 0x213F26}, /* East Asian ideograph */ - {"\x8D", 0, 0x213F27}, /* East Asian ideograph */ - {"\x8B", 0, 0x213F28}, /* East Asian ideograph */ - {"\x87", 0, 0x213F2C}, /* East Asian ideograph */ - {"\xB7", 0, 0x213F2D}, /* East Asian ideograph */ - {"\xB6", 0, 0x213F2E}, /* East Asian ideograph */ - {"\xA7", 0, 0x213F2F}, /* East Asian ideograph */ - {"\xB0", 0, 0x213F30}, /* East Asian ideograph */ - {"\x9A", 0, 0x213F31}, /* East Asian ideograph */ - {"\x9D", 0, 0x213F32}, /* East Asian ideograph */ - {"\xBC", 0, 0x213F34}, /* East Asian ideograph */ - {"\xA2", 0, 0x213F35}, /* East Asian ideograph */ - {"\xAE", 0, 0x213F36}, /* East Asian ideograph */ - {"\x95", 0, 0x213F37}, /* East Asian ideograph */ - {"\x98", 0, 0x213F38}, /* East Asian ideograph */ - {"\xA3", 0, 0x213F39}, /* East Asian ideograph */ - {"\x9F", 0, 0x213F3A}, /* East Asian ideograph */ - {"\xAB", 0, 0x213F3B}, /* East Asian ideograph */ - {"\xBE", 0, 0x213F3C}, /* East Asian ideograph */ - {"\x89", 0, 0x222D48}, /* East Asian ideograph */ - {"\x8A", 0, 0x222D4A}, /* East Asian ideograph */ - {"\x90", 0, 0x222D51}, /* East Asian ideograph */ - {"\x81", 0, 0x222D5B}, /* East Asian ideograph */ - {"\x86", 0, 0x222D61}, /* East Asian ideograph */ - {"\x9E", 0, 0x222D66}, /* East Asian ideograph */ - {"\xB5", 0, 0x222D67}, /* East Asian ideograph */ - {"\xB4", 0, 0x222D68}, /* East Asian ideograph */ - {"\xB1", 0, 0x222D70}, /* East Asian ideograph */ - {"\xAA", 0, 0x222D74}, /* East Asian ideograph */ - {"\xB3", 0, 0x222D77}, /* East Asian ideograph */ - {"\xA4", 0, 0x222D79}, /* East Asian ideograph */ - {"\x93", 0, 0x222D7B}, /* East Asian ideograph */ - {"\xAF", 0, 0x222E2C}, /* East Asian ideograph */ - {"\xA5", 0, 0x222E2D}, /* East Asian ideograph */ - {"\x9C", 0, 0x222E2F}, /* East Asian ideograph */ - {"\x91", 0, 0x273F59}, /* East Asian ideograph */ - {"\x99", 0, 0x2D3F31}, /* East Asian ideograph */ - {"\xA8", 0, 0x333F22}, /* East Asian ideograph (variant of EACC 213F22) */ - {"\x84", 0, 0x334449}, /* East Asian ideograph */ - {"\x82", 0, 0x393E4C}, /* East Asian ideograph */ - {"\x8E", 0, 0x3F3F24}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page85 = { - marc8r_31page85_flat, 0 -}; -/* PAGE 84 */ -struct yaz_iconv_trie_flat marc8r_31page84_flat[] = { - {"\x8F", 0, 0x213E6B}, /* East Asian ideograph */ - {"\x9C", 0, 0x213E6C}, /* East Asian ideograph */ - {"\x9F", 0, 0x213E6E}, /* East Asian ideograph */ - {"\x9A", 0, 0x213E72}, /* East Asian ideograph */ - {"\x95", 0, 0x213E73}, /* East Asian ideograph */ - {"\xA3", 0, 0x213E75}, /* East Asian ideograph */ - {"\x9B", 0, 0x213E77}, /* East Asian ideograph */ - {"\x8E", 0, 0x213E78}, /* East Asian ideograph */ - {"\x80", 0, 0x213E79}, /* East Asian ideograph */ - {"\x81", 0, 0x213E7A}, /* East Asian ideograph */ - {"\x89", 0, 0x213E7C}, /* East Asian ideograph */ - {"\x88", 0, 0x213E7D}, /* East Asian ideograph */ - {"\xBC", 0, 0x213F24}, /* East Asian ideograph */ - {"\xBE", 0, 0x213F29}, /* East Asian ideograph */ - {"\xA7", 0, 0x213F2A}, /* East Asian ideograph */ - {"\xB4", 0, 0x213F2B}, /* East Asian ideograph */ - {"\x94", 0, 0x222C70}, /* East Asian ideograph */ - {"\x83", 0, 0x222C73}, /* East Asian ideograph */ - {"\x99", 0, 0x222C75}, /* East Asian ideograph */ - {"\x8D", 0, 0x222C7D}, /* East Asian ideograph */ - {"\x8A", 0, 0x222D2A}, /* East Asian ideograph */ - {"\x90", 0, 0x222D2C}, /* East Asian ideograph */ - {"\x92", 0, 0x222D32}, /* East Asian ideograph */ - {"\xA5", 0, 0x222D37}, /* East Asian ideograph */ - {"\xA1", 0, 0x222D3F}, /* East Asian ideograph */ - {"\x86", 0, 0x222D43}, /* East Asian ideograph */ - {"\xAB", 0, 0x222D4E}, /* East Asian ideograph */ - {"\xA9", 0, 0x222D50}, /* East Asian ideograph */ - {"\xB0", 0, 0x222D58}, /* East Asian ideograph */ - {"\xB7", 0, 0x222D5E}, /* East Asian ideograph */ - {"\xA4", 0, 0x273F42}, /* East Asian ideograph */ - {"\xBF", 0, 0x276055}, /* East Asian ideograph */ - {"\xA6", 0, 0x282E4C}, /* East Asian ideograph */ - {"\xBD", 0, 0x2D3464}, /* East Asian ideograph */ - {"\xA0", 0, 0x2D3F27}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D5856}, /* East Asian ideograph */ - {"\xA8", 0, 0x2E2D79}, /* East Asian ideograph */ - {"\xB3", 0, 0x333F5B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page84 = { - marc8r_31page84_flat, 0 -}; -/* PAGE 83 */ -struct yaz_iconv_trie_flat marc8r_31page83_flat[] = { - {"\xA6", 0, 0x213E58}, /* East Asian ideograph */ - {"\x8B", 0, 0x213E59}, /* East Asian ideograph */ - {"\x8B", 0, 0x213E59}, /* East Asian ideograph */ - {"\x85", 0, 0x213E5B}, /* East Asian ideograph (variant of EACC 4B3E5B) */ - {"\x91", 0, 0x213E5D}, /* East Asian ideograph */ - {"\xA0", 0, 0x213E60}, /* East Asian ideograph */ - {"\xA1", 0, 0x213E61}, /* East Asian ideograph */ - {"\x9C", 0, 0x213E62}, /* East Asian ideograph */ - {"\x98", 0, 0x213E63}, /* East Asian ideograph */ - {"\x95", 0, 0x213E64}, /* East Asian ideograph */ - {"\x86", 0, 0x213E67}, /* East Asian ideograph */ - {"\x9A", 0, 0x213E69}, /* East Asian ideograph */ - {"\x9F", 0, 0x213E6A}, /* East Asian ideograph */ - {"\xB3", 0, 0x213E6D}, /* East Asian ideograph */ - {"\xB0", 0, 0x213E6F}, /* East Asian ideograph */ - {"\xBB", 0, 0x213E70}, /* East Asian ideograph */ - {"\xBA", 0, 0x213E71}, /* East Asian ideograph */ - {"\xB9", 0, 0x213E74}, /* East Asian ideograph */ - {"\xB4", 0, 0x213E76}, /* East Asian ideograph */ - {"\xB6", 0, 0x213E7B}, /* East Asian ideograph */ - {"\xB1", 0, 0x213E7E}, /* East Asian ideograph */ - {"\x87", 0, 0x222C3E}, /* East Asian ideograph */ - {"\x93", 0, 0x222C47}, /* East Asian ideograph */ - {"\x94", 0, 0x222C48}, /* East Asian ideograph */ - {"\x8E", 0, 0x222C4E}, /* East Asian ideograph */ - {"\x8F", 0, 0x222C51}, /* East Asian ideograph */ - {"\x99", 0, 0x222C53}, /* East Asian ideograph */ - {"\x9D", 0, 0x222C56}, /* East Asian ideograph */ - {"\x84", 0, 0x222C5D}, /* East Asian ideograph */ - {"\xA3", 0, 0x222C62}, /* East Asian ideograph */ - {"\xA2", 0, 0x222C66}, /* East Asian ideograph */ - {"\xA5", 0, 0x222C67}, /* East Asian ideograph */ - {"\x9B", 0, 0x222C69}, /* East Asian ideograph */ - {"\xA9", 0, 0x222C6E}, /* East Asian ideograph */ - {"\xBD", 0, 0x222C7C}, /* East Asian ideograph */ - {"\xB2", 0, 0x222D34}, /* East Asian ideograph */ - {"\xB8", 0, 0x222D3B}, /* East Asian ideograph */ - {"\xBC", 0, 0x222D41}, /* East Asian ideograph */ - {"\xAC", 0, 0x273E6C}, /* East Asian ideograph */ - {"\xAD", 0, 0x273F31}, /* East Asian ideograph */ - {"\xA8", 0, 0x273F38}, /* East Asian ideograph */ - {"\xAF", 0, 0x273F39}, /* East Asian ideograph */ - {"\xAE", 0, 0x273F44}, /* East Asian ideograph */ - {"\xAB", 0, 0x273F47}, /* East Asian ideograph */ - {"\xA7", 0, 0x273F5B}, /* East Asian ideograph */ - {"\x8A", 0, 0x27614B}, /* East Asian ideograph */ - {"\xAA", 0, 0x2D3D75}, /* East Asian ideograph */ - {"\xB7", 0, 0x2D573B}, /* East Asian ideograph */ - {"\x85", 0, 0x4B3E5B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page83 = { - marc8r_31page83_flat, 0 -}; -/* PAGE 82 */ -struct yaz_iconv_trie_flat marc8r_31page82_flat[] = { - {"\x8C", 0, 0x213E4A}, /* East Asian ideograph */ - {"\xA6", 0, 0x213E4B}, /* East Asian ideograph */ - {"\x9F", 0, 0x213E4D}, /* East Asian ideograph */ - {"\x9A", 0, 0x213E4E}, /* East Asian ideograph */ - {"\x96", 0, 0x213E4F}, /* East Asian ideograph */ - {"\x84", 0, 0x213E50}, /* East Asian ideograph */ - {"\x8D", 0, 0x213E51}, /* East Asian ideograph */ - {"\xA3", 0, 0x213E52}, /* East Asian ideograph */ - {"\x89", 0, 0x213E53}, /* East Asian ideograph */ - {"\x94", 0, 0x213E54}, /* East Asian ideograph */ - {"\xA0", 0, 0x213E55}, /* East Asian ideograph */ - {"\xA8", 0, 0x213E56}, /* East Asian ideograph */ - {"\xB4", 0, 0x213E57}, /* East Asian ideograph */ - {"\xB6", 0, 0x213E5C}, /* East Asian ideograph */ - {"\xB5", 0, 0x213E5E}, /* East Asian ideograph */ - {"\xBB", 0, 0x213E5F}, /* East Asian ideograph */ - {"\xBC", 0, 0x213E65}, /* East Asian ideograph */ - {"\xB2", 0, 0x213E66}, /* East Asian ideograph */ - {"\xB8", 0, 0x213E68}, /* East Asian ideograph */ - {"\x8A", 0, 0x222C24}, /* East Asian ideograph */ - {"\x92", 0, 0x222C2B}, /* East Asian ideograph */ - {"\x9D", 0, 0x222C2C}, /* East Asian ideograph */ - {"\x81", 0, 0x222C2D}, /* East Asian ideograph */ - {"\x9E", 0, 0x222C2F}, /* East Asian ideograph */ - {"\x83", 0, 0x222C30}, /* East Asian ideograph */ - {"\x97", 0, 0x222C32}, /* East Asian ideograph */ - {"\xA7", 0, 0x222C34}, /* East Asian ideograph */ - {"\x95", 0, 0x222C3A}, /* East Asian ideograph */ - {"\xB0", 0, 0x222C42}, /* East Asian ideograph */ - {"\xBE", 0, 0x222C46}, /* East Asian ideograph */ - {"\xB3", 0, 0x222C54}, /* East Asian ideograph */ - {"\xB1", 0, 0x222C60}, /* East Asian ideograph */ - {"\xAF", 0, 0x273F41}, /* East Asian ideograph */ - {"\xAC", 0, 0x273F56}, /* East Asian ideograph */ - {"\xAD", 0, 0x282D77}, /* East Asian ideograph */ - {"\xAB", 0, 0x282D79}, /* East Asian ideograph */ - {"\x9B", 0, 0x2E2B74}, /* East Asian ideograph */ - {"\x8B", 0, 0x33354E}, /* East Asian ideograph */ - {"\xBD", 0, 0x33475F}, /* East Asian ideograph */ - {"\xAA", 0, 0x393E61}, /* East Asian ideograph */ - {"\xA4", 0, 0x396C6B}, /* East Asian ideograph */ - {"\xA9", 0, 0x4B3E7E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page82 = { - marc8r_31page82_flat, 0 -}; -/* PAGE 81 */ -struct yaz_iconv_trie_flat marc8r_31page81_flat[] = { - {"\x99", 0, 0x213E38}, /* East Asian ideograph */ - {"\xA3", 0, 0x213E39}, /* East Asian ideograph */ - {"\xA8", 0, 0x213E3A}, /* East Asian ideograph */ - {"\x83", 0, 0x213E3B}, /* East Asian ideograph */ - {"\xA5", 0, 0x213E3C}, /* East Asian ideograph */ - {"\x90", 0, 0x213E3D}, /* East Asian ideograph */ - {"\xAD", 0, 0x213E3E}, /* East Asian ideograph */ - {"\xA2", 0, 0x213E3F}, /* East Asian ideograph */ - {"\x86", 0, 0x213E40}, /* East Asian ideograph (variant of EACC 4B3E40) */ - {"\x8D", 0, 0x213E41}, /* East Asian ideograph */ - {"\xAB", 0, 0x213E42}, /* East Asian ideograph */ - {"\xA9", 0, 0x213E43}, /* East Asian ideograph */ - {"\xAC", 0, 0x213E44}, /* East Asian ideograph */ - {"\xAF", 0, 0x213E45}, /* East Asian ideograph */ - {"\xAA", 0, 0x213E46}, /* East Asian ideograph */ - {"\xA4", 0, 0x213E47}, /* East Asian ideograph */ - {"\xB0", 0, 0x213E48}, /* East Asian ideograph */ - {"\x95", 0, 0x213E49}, /* East Asian ideograph */ - {"\xBF", 0, 0x213E4C}, /* East Asian ideograph */ - {"\x94", 0, 0x222B53}, /* East Asian ideograph */ - {"\x9D", 0, 0x222B57}, /* East Asian ideograph */ - {"\x87", 0, 0x222B5A}, /* East Asian ideograph */ - {"\x89", 0, 0x222B5E}, /* East Asian ideograph */ - {"\x93", 0, 0x222B5F}, /* East Asian ideograph */ - {"\xA7", 0, 0x222B68}, /* East Asian ideograph */ - {"\x8C", 0, 0x222B6F}, /* East Asian ideograph */ - {"\x81", 0, 0x222B71}, /* East Asian ideograph */ - {"\xB7", 0, 0x222B72}, /* East Asian ideograph */ - {"\x82", 0, 0x222B74}, /* East Asian ideograph */ - {"\x9F", 0, 0x222B76}, /* East Asian ideograph */ - {"\xA1", 0, 0x222B7A}, /* East Asian ideograph */ - {"\xB6", 0, 0x273E61}, /* East Asian ideograph */ - {"\xBB", 0, 0x273E70}, /* East Asian ideograph */ - {"\xBC", 0, 0x273E7E}, /* East Asian ideograph */ - {"\xB8", 0, 0x273F3A}, /* East Asian ideograph */ - {"\xB3", 0, 0x273F4E}, /* East Asian ideograph */ - {"\x8B", 0, 0x273F5C}, /* East Asian ideograph */ - {"\xB6", 0, 0x277258}, /* East Asian ideograph (duplicate simplified) */ - {"\xBD", 0, 0x282D34}, /* East Asian ideograph */ - {"\xBA", 0, 0x282D5E}, /* East Asian ideograph */ - {"\xB9", 0, 0x282E79}, /* East Asian ideograph */ - {"\xA0", 0, 0x2D3E2B}, /* East Asian ideograph */ - {"\x92", 0, 0x2D3E40}, /* East Asian ideograph */ - {"\xB5", 0, 0x2D3E60}, /* East Asian ideograph */ - {"\x9A", 0, 0x2E2B5B}, /* East Asian ideograph */ - {"\x8A", 0, 0x393460}, /* East Asian ideograph */ - {"\x86", 0, 0x4B3E40}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page81 = { - marc8r_31page81_flat, 0 -}; -/* PAGE 80 */ -struct yaz_iconv_trie_flat marc8r_31page80_flat[] = { - {"\x94", 0, 0x213E29}, /* East Asian ideograph */ - {"\xB5", 0, 0x213E2A}, /* East Asian ideograph (variant of EACC 4B3E2A) */ - {"\xAA", 0, 0x213E2B}, /* East Asian ideograph */ - {"\xAF", 0, 0x213E2C}, /* East Asian ideograph */ - {"\x96", 0, 0x213E2D}, /* East Asian ideograph */ - {"\x9D", 0, 0x213E2E}, /* East Asian ideograph */ - {"\x8F", 0, 0x213E2F}, /* East Asian ideograph */ - {"\xA1", 0, 0x213E30}, /* East Asian ideograph */ - {"\xA0", 0, 0x213E31}, /* East Asian ideograph */ - {"\xA8", 0, 0x213E32}, /* East Asian ideograph */ - {"\xA5", 0, 0x213E33}, /* East Asian ideograph */ - {"\xA7", 0, 0x213E34}, /* East Asian ideograph */ - {"\x8E", 0, 0x213E35}, /* East Asian ideograph */ - {"\x95", 0, 0x213E36}, /* East Asian ideograph */ - {"\x92", 0, 0x213E37}, /* East Asian ideograph */ - {"\xA6", 0, 0x222B2A}, /* East Asian ideograph */ - {"\xA9", 0, 0x222B2C}, /* East Asian ideograph */ - {"\xAB", 0, 0x222B2D}, /* East Asian ideograph */ - {"\x99", 0, 0x222B30}, /* East Asian ideograph */ - {"\x88", 0, 0x222B31}, /* East Asian ideograph */ - {"\x8A", 0, 0x222B36}, /* East Asian ideograph */ - {"\x8C", 0, 0x222B37}, /* East Asian ideograph */ - {"\x9B", 0, 0x222B38}, /* East Asian ideograph */ - {"\x97", 0, 0x222B3C}, /* East Asian ideograph */ - {"\xB3", 0, 0x222B3D}, /* East Asian ideograph */ - {"\x8D", 0, 0x222B45}, /* East Asian ideograph */ - {"\x90", 0, 0x222B46}, /* East Asian ideograph */ - {"\xB9", 0, 0x222B4B}, /* East Asian ideograph */ - {"\x93", 0, 0x222B50}, /* East Asian ideograph */ - {"\x85", 0, 0x273E5E}, /* East Asian ideograph */ - {"\x81", 0, 0x273F28}, /* East Asian ideograph */ - {"\x86", 0, 0x273F2B}, /* East Asian ideograph */ - {"\x82", 0, 0x273F3B}, /* East Asian ideograph */ - {"\x9C", 0, 0x273F4B}, /* East Asian ideograph */ - {"\x80", 0, 0x273F54}, /* East Asian ideograph */ - {"\xBB", 0, 0x27516D}, /* East Asian ideograph */ - {"\x84", 0, 0x282D74}, /* East Asian ideograph */ - {"\x83", 0, 0x282E52}, /* East Asian ideograph */ - {"\xBF", 0, 0x282E5C}, /* East Asian ideograph */ - {"\xBC", 0, 0x282E7E}, /* East Asian ideograph */ - {"\xB1", 0, 0x336C6B}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B3E2A}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B3F4B}, /* East Asian ideograph (variant of EACC 273F4B) */ - {"\xBA", 0, 0x69576A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page80 = { - marc8r_31page80_flat, 0 -}; -/* PAGE 79 */ -struct yaz_iconv_trie_flat marc8r_31page79_flat[] = { - {"\xBC", 0, 0x21352A}, /* East Asian ideograph */ - {"\x81", 0, 0x214347}, /* East Asian ideograph */ - {"\x89", 0, 0x214348}, /* East Asian ideograph */ - {"\x86", 0, 0x214349}, /* East Asian ideograph */ - {"\x96", 0, 0x21434B}, /* East Asian ideograph */ - {"\x99", 0, 0x21434C}, /* East Asian ideograph */ - {"\xA0", 0, 0x21434D}, /* East Asian ideograph */ - {"\x9D", 0, 0x21434E}, /* East Asian ideograph */ - {"\xA6", 0, 0x21434F}, /* East Asian ideograph */ - {"\xB0", 0, 0x214350}, /* East Asian ideograph */ - {"\xB2", 0, 0x214351}, /* East Asian ideograph */ - {"\xB3", 0, 0x214352}, /* East Asian ideograph */ - {"\xB4", 0, 0x214353}, /* East Asian ideograph */ - {"\xB7", 0, 0x214354}, /* East Asian ideograph */ - {"\xB8", 0, 0x214355}, /* East Asian ideograph */ - {"\xB9", 0, 0x214356}, /* East Asian ideograph */ - {"\xBE", 0, 0x214358}, /* East Asian ideograph */ - {"\xBF", 0, 0x214359}, /* East Asian ideograph */ - {"\x88", 0, 0x22394E}, /* East Asian ideograph */ - {"\x80", 0, 0x223954}, /* East Asian ideograph */ - {"\x87", 0, 0x223955}, /* East Asian ideograph */ - {"\x84", 0, 0x22395C}, /* East Asian ideograph */ - {"\x8F", 0, 0x223960}, /* East Asian ideograph */ - {"\x9A", 0, 0x223971}, /* East Asian ideograph */ - {"\x9B", 0, 0x223972}, /* East Asian ideograph */ - {"\xA2", 0, 0x223973}, /* East Asian ideograph */ - {"\xA1", 0, 0x223976}, /* East Asian ideograph */ - {"\xA8", 0, 0x223978}, /* East Asian ideograph */ - {"\xA9", 0, 0x22397C}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D432E}, /* East Asian ideograph */ - {"\x8D", 0, 0x2E3936}, /* East Asian ideograph */ - {"\x9C", 0, 0x39525B}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B4352}, /* East Asian ideograph */ - {"\xBD", 0, 0x4B4358}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B525B}, /* East Asian ideograph (variant of EACC 39525B) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page79 = { - marc8r_31page79_flat, 0 -}; -/* PAGE 78 */ -struct yaz_iconv_trie_flat marc8r_31page78_flat[] = { - {"\x80", 0, 0x213335}, /* East Asian ideograph */ - {"\x83", 0, 0x21435A}, /* East Asian ideograph */ - {"\x88", 0, 0x21435B}, /* East Asian ideograph */ - {"\x89", 0, 0x21435C}, /* East Asian ideograph */ - {"\x8D", 0, 0x21435D}, /* East Asian ideograph */ - {"\x8B", 0, 0x21435E}, /* East Asian ideograph */ - {"\x97", 0, 0x21435F}, /* East Asian ideograph */ - {"\x95", 0, 0x214360}, /* East Asian ideograph */ - {"\x94", 0, 0x214361}, /* East Asian ideograph */ - {"\x9B", 0, 0x214362}, /* East Asian ideograph */ - {"\x9D", 0, 0x214363}, /* East Asian ideograph */ - {"\x9F", 0, 0x214364}, /* East Asian ideograph */ - {"\xA7", 0, 0x214366}, /* East Asian ideograph */ - {"\xA8", 0, 0x214367}, /* East Asian ideograph */ - {"\xAC", 0, 0x214369}, /* East Asian ideograph */ - {"\xAB", 0, 0x21436A}, /* East Asian ideograph */ - {"\xAA", 0, 0x21436B}, /* East Asian ideograph */ - {"\xBD", 0, 0x21436D}, /* East Asian ideograph */ - {"\xB1", 0, 0x21436F}, /* East Asian ideograph */ - {"\xB5", 0, 0x214370}, /* East Asian ideograph */ - {"\x86", 0, 0x216C7B}, /* East Asian ideograph */ - {"\x85", 0, 0x223A28}, /* East Asian ideograph */ - {"\x8F", 0, 0x223A30}, /* East Asian ideograph */ - {"\x90", 0, 0x223A31}, /* East Asian ideograph */ - {"\x92", 0, 0x223A33}, /* East Asian ideograph */ - {"\x93", 0, 0x223A34}, /* East Asian ideograph */ - {"\x99", 0, 0x223A38}, /* East Asian ideograph */ - {"\x98", 0, 0x223A39}, /* East Asian ideograph */ - {"\xA3", 0, 0x223A47}, /* East Asian ideograph */ - {"\xBE", 0, 0x223A4C}, /* East Asian ideograph */ - {"\xBF", 0, 0x223A4E}, /* East Asian ideograph */ - {"\x8A", 0, 0x22775C}, /* East Asian ideograph */ - {"\x91", 0, 0x227775}, /* East Asian ideograph */ - {"\xA0", 0, 0x22792E}, /* East Asian ideograph */ - {"\xA5", 0, 0x22797E}, /* East Asian ideograph */ - {"\xB4", 0, 0x274558}, /* East Asian ideograph */ - {"\xBA", 0, 0x27455D}, /* East Asian ideograph */ - {"\xAE", 0, 0x275746}, /* East Asian ideograph */ - {"\xAD", 0, 0x276B5F}, /* East Asian ideograph */ - {"\x96", 0, 0x2D435F}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D4362}, /* East Asian ideograph */ - {"\x9E", 0, 0x2D4364}, /* East Asian ideograph */ - {"\xB6", 0, 0x2D4370}, /* East Asian ideograph */ - {"\xB8", 0, 0x2E2F7A}, /* East Asian ideograph */ - {"\x82", 0, 0x334357}, /* East Asian ideograph */ - {"\xA6", 0, 0x395564}, /* East Asian ideograph */ - {"\xAF", 0, 0x455746}, /* East Asian ideograph */ - {"\xB7", 0, 0x695B37}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page78 = { - marc8r_31page78_flat, 0 -}; -/* PAGE 77 */ -struct yaz_iconv_trie_flat marc8r_31page77_flat[] = { - {"\x83", 0, 0x213D78}, /* East Asian ideograph */ - {"\x85", 0, 0x213D79}, /* East Asian ideograph */ - {"\x99", 0, 0x213D7A}, /* East Asian ideograph */ - {"\x98", 0, 0x213D7B}, /* East Asian ideograph */ - {"\x8C", 0, 0x213D7C}, /* East Asian ideograph */ - {"\x96", 0, 0x213D7D}, /* East Asian ideograph */ - {"\x8D", 0, 0x213E21}, /* East Asian ideograph */ - {"\xAB", 0, 0x213E22}, /* East Asian ideograph */ - {"\xA0", 0, 0x213E23}, /* East Asian ideograph */ - {"\xB1", 0, 0x213E24}, /* East Asian ideograph */ - {"\xBD", 0, 0x213E25}, /* East Asian ideograph */ - {"\x9D", 0, 0x213E26}, /* East Asian ideograph */ - {"\xB5", 0, 0x213E27}, /* East Asian ideograph */ - {"\xBF", 0, 0x213E28}, /* East Asian ideograph */ - {"\x89", 0, 0x222A57}, /* East Asian ideograph */ - {"\x91", 0, 0x222A5F}, /* East Asian ideograph */ - {"\x92", 0, 0x222A61}, /* East Asian ideograph */ - {"\x90", 0, 0x222A63}, /* East Asian ideograph */ - {"\x8E", 0, 0x222A67}, /* East Asian ideograph */ - {"\xAD", 0, 0x222A68}, /* East Asian ideograph */ - {"\xAE", 0, 0x222A72}, /* East Asian ideograph */ - {"\xB8", 0, 0x222A73}, /* East Asian ideograph */ - {"\xA1", 0, 0x222A78}, /* East Asian ideograph */ - {"\xA4", 0, 0x222A7B}, /* East Asian ideograph */ - {"\xAA", 0, 0x222B24}, /* East Asian ideograph */ - {"\xB0", 0, 0x273E57}, /* East Asian ideograph */ - {"\xBE", 0, 0x273F29}, /* East Asian ideograph */ - {"\xA7", 0, 0x273F33}, /* East Asian ideograph */ - {"\x86", 0, 0x273F48}, /* East Asian ideograph */ - {"\x8F", 0, 0x273F58}, /* East Asian ideograph */ - {"\x97", 0, 0x27586D}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D4574}, /* East Asian ideograph */ - {"\x88", 0, 0x333066}, /* East Asian ideograph */ - {"\x9E", 0, 0x343875}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B3F4A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page77 = { - marc8r_31page77_flat, 0 -}; -/* PAGE 76 */ -struct yaz_iconv_trie_flat marc8r_31page76_flat[] = { - {"\x80", 0, 0x213D5C}, /* East Asian ideograph */ - {"\x85", 0, 0x213D60}, /* East Asian ideograph */ - {"\x88", 0, 0x213D61}, /* East Asian ideograph */ - {"\x8B", 0, 0x213D62}, /* East Asian ideograph */ - {"\x8A", 0, 0x213D63}, /* East Asian ideograph */ - {"\x87", 0, 0x213D64}, /* East Asian ideograph */ - {"\x8C", 0, 0x213D65}, /* East Asian ideograph */ - {"\x92", 0, 0x213D66}, /* East Asian ideograph */ - {"\x91", 0, 0x213D67}, /* East Asian ideograph */ - {"\x90", 0, 0x213D68}, /* East Asian ideograph */ - {"\x98", 0, 0x213D69}, /* East Asian ideograph */ - {"\x97", 0, 0x213D6A}, /* East Asian ideograph */ - {"\x99", 0, 0x213D6B}, /* East Asian ideograph */ - {"\x9E", 0, 0x213D6C}, /* East Asian ideograph */ - {"\xA9", 0, 0x213D6F}, /* East Asian ideograph */ - {"\xAA", 0, 0x213D71}, /* East Asian ideograph */ - {"\xAC", 0, 0x213D72}, /* East Asian ideograph */ - {"\xAE", 0, 0x213D73}, /* East Asian ideograph */ - {"\xB9", 0, 0x213D74}, /* East Asian ideograph */ - {"\xB7", 0, 0x213D75}, /* East Asian ideograph */ - {"\xB5", 0, 0x213D76}, /* East Asian ideograph */ - {"\xBD", 0, 0x213D77}, /* East Asian ideograph */ - {"\x82", 0, 0x222A23}, /* East Asian ideograph */ - {"\x89", 0, 0x222A27}, /* East Asian ideograph */ - {"\x94", 0, 0x222A2B}, /* East Asian ideograph */ - {"\x94", 0, 0x222A34}, /* East Asian ideograph (Unicode CJK Extension B) */ - {"\x9C", 0, 0x222A39}, /* East Asian ideograph */ - {"\x9A", 0, 0x222A3D}, /* East Asian ideograph */ - {"\xAF", 0, 0x222A46}, /* East Asian ideograph */ - {"\xBC", 0, 0x222A50}, /* East Asian ideograph */ - {"\x84", 0, 0x273D67}, /* East Asian ideograph */ - {"\x81", 0, 0x273D76}, /* East Asian ideograph */ - {"\x93", 0, 0x2D3D6C}, /* East Asian ideograph */ - {"\xB4", 0, 0x2D3D76}, /* East Asian ideograph */ - {"\xA1", 0, 0x2D4E79}, /* East Asian ideograph */ - {"\xA7", 0, 0x2D5C3F}, /* East Asian ideograph */ - {"\xA8", 0, 0x2D5C40}, /* East Asian ideograph */ - {"\xAD", 0, 0x2E7328}, /* East Asian ideograph */ - {"\x8F", 0, 0x2F4A4A}, /* East Asian ideograph */ - {"\xA0", 0, 0x33314C}, /* East Asian ideograph */ - {"\xBA", 0, 0x333251}, /* East Asian ideograph */ - {"\xB3", 0, 0x333D75}, /* East Asian ideograph */ - {"\x95", 0, 0x4B314C}, /* East Asian ideograph */ - {"\x83", 0, 0x4B3D5C}, /* East Asian ideograph */ - {"\x84", 0, 0x4B3D67}, /* East Asian ideograph (variant of EACC 273D67) */ - {"\xAD", 0, 0x4C7328}, /* East Asian ideograph (variant of EACC 2E7328) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page76 = { - marc8r_31page76_flat, 0 -}; -/* PAGE 75 */ -struct yaz_iconv_trie_flat marc8r_31page75_flat[] = { - {"\x86", 0, 0x213D4A}, /* East Asian ideograph */ - {"\x88", 0, 0x213D4B}, /* East Asian ideograph */ - {"\x8C", 0, 0x213D4C}, /* East Asian ideograph */ - {"\x8E", 0, 0x213D4D}, /* East Asian ideograph */ - {"\x97", 0, 0x213D4E}, /* East Asian ideograph */ - {"\x99", 0, 0x213D4F}, /* East Asian ideograph */ - {"\x9D", 0, 0x213D50}, /* East Asian ideograph */ - {"\xA2", 0, 0x213D51}, /* East Asian ideograph */ - {"\xA4", 0, 0x213D52}, /* East Asian ideograph */ - {"\xA5", 0, 0x213D53}, /* East Asian ideograph */ - {"\xAC", 0, 0x213D54}, /* East Asian ideograph */ - {"\xA9", 0, 0x213D55}, /* East Asian ideograph */ - {"\xAD", 0, 0x213D57}, /* East Asian ideograph */ - {"\xB0", 0, 0x213D58}, /* East Asian ideograph */ - {"\xB1", 0, 0x213D59}, /* East Asian ideograph */ - {"\xB9", 0, 0x213D5B}, /* East Asian ideograph */ - {"\xBF", 0, 0x213D5E}, /* East Asian ideograph */ - {"\xBC", 0, 0x213D5F}, /* East Asian ideograph */ - {"\xAA", 0, 0x215646}, /* East Asian ideograph */ - {"\x80", 0, 0x22295C}, /* East Asian ideograph */ - {"\x84", 0, 0x22295F}, /* East Asian ideograph */ - {"\x8D", 0, 0x222962}, /* East Asian ideograph */ - {"\x90", 0, 0x222968}, /* East Asian ideograph */ - {"\x94", 0, 0x222969}, /* East Asian ideograph */ - {"\x96", 0, 0x22296A}, /* East Asian ideograph */ - {"\x98", 0, 0x22296C}, /* East Asian ideograph */ - {"\xA0", 0, 0x222970}, /* East Asian ideograph */ - {"\xA1", 0, 0x222971}, /* East Asian ideograph */ - {"\xA3", 0, 0x222972}, /* East Asian ideograph */ - {"\xA7", 0, 0x222974}, /* East Asian ideograph */ - {"\xB2", 0, 0x222978}, /* East Asian ideograph */ - {"\xB3", 0, 0x222979}, /* East Asian ideograph */ - {"\xB4", 0, 0x22297C}, /* East Asian ideograph */ - {"\x93", 0, 0x273746}, /* East Asian ideograph (duplicate simplified) */ - {"\xBB", 0, 0x273D74}, /* East Asian ideograph */ - {"\x92", 0, 0x27462B}, /* East Asian ideograph */ - {"\x93", 0, 0x274C39}, /* East Asian ideograph */ - {"\x95", 0, 0x275D74}, /* East Asian ideograph */ - {"\x8A", 0, 0x2D3D48}, /* East Asian ideograph */ - {"\x9C", 0, 0x2D3D50}, /* East Asian ideograph */ - {"\x91", 0, 0x2E2968}, /* East Asian ideograph */ - {"\xB7", 0, 0x333078}, /* East Asian ideograph */ - {"\xAB", 0, 0x395F49}, /* East Asian ideograph */ - {"\xA6", 0, 0x453D53}, /* East Asian ideograph */ - {"\x8D", 0, 0x4C2962}, /* East Asian ideograph (variant of EACC 222962) */ - {"\x81", 0, 0x69573B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page75 = { - marc8r_31page75_flat, 0 -}; -/* PAGE 74 */ -struct yaz_iconv_trie_flat marc8r_31page74_flat[] = { - {"\x84", 0, 0x213D36}, /* East Asian ideograph */ - {"\x88", 0, 0x213D37}, /* East Asian ideograph */ - {"\x8A", 0, 0x213D38}, /* East Asian ideograph */ - {"\x8F", 0, 0x213D39}, /* East Asian ideograph */ - {"\x92", 0, 0x213D3A}, /* East Asian ideograph */ - {"\x93", 0, 0x213D3B}, /* East Asian ideograph */ - {"\x95", 0, 0x213D3C}, /* East Asian ideograph */ - {"\x94", 0, 0x213D3D}, /* East Asian ideograph */ - {"\x98", 0, 0x213D3E}, /* East Asian ideograph */ - {"\x97", 0, 0x213D3F}, /* East Asian ideograph */ - {"\x9B", 0, 0x213D40}, /* East Asian ideograph */ - {"\x9F", 0, 0x213D41}, /* East Asian ideograph */ - {"\xA6", 0, 0x213D42}, /* East Asian ideograph */ - {"\xA7", 0, 0x213D43}, /* East Asian ideograph */ - {"\xA9", 0, 0x213D44}, /* East Asian ideograph */ - {"\xAD", 0, 0x213D45}, /* East Asian ideograph */ - {"\xB1", 0, 0x213D46}, /* East Asian ideograph */ - {"\xB5", 0, 0x213D47}, /* East Asian ideograph */ - {"\xB7", 0, 0x213D48}, /* East Asian ideograph */ - {"\xBC", 0, 0x213D49}, /* East Asian ideograph */ - {"\x87", 0, 0x222935}, /* East Asian ideograph */ - {"\x8B", 0, 0x22293A}, /* East Asian ideograph */ - {"\xA8", 0, 0x22294A}, /* East Asian ideograph */ - {"\xA2", 0, 0x22294B}, /* East Asian ideograph */ - {"\xA3", 0, 0x22294C}, /* East Asian ideograph */ - {"\xA4", 0, 0x22294D}, /* East Asian ideograph */ - {"\xB3", 0, 0x222951}, /* East Asian ideograph */ - {"\xB0", 0, 0x222952}, /* East Asian ideograph */ - {"\xB8", 0, 0x222958}, /* East Asian ideograph */ - {"\xA0", 0, 0x273D47}, /* East Asian ideograph */ - {"\xB9", 0, 0x273D4B}, /* East Asian ideograph */ - {"\xA5", 0, 0x273D4C}, /* East Asian ideograph */ - {"\xAF", 0, 0x273D4D}, /* East Asian ideograph */ - {"\x83", 0, 0x27446D}, /* East Asian ideograph */ - {"\x82", 0, 0x274C34}, /* East Asian ideograph */ - {"\x80", 0, 0x275E53}, /* East Asian ideograph */ - {"\xAA", 0, 0x282951}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D3021}, /* East Asian ideograph */ - {"\x8D", 0, 0x2D3051}, /* East Asian ideograph */ - {"\xBA", 0, 0x333D48}, /* East Asian ideograph */ - {"\x90", 0, 0x4B3051}, /* East Asian ideograph */ - {"\x89", 0, 0x4B393A}, /* East Asian ideograph */ - {"\xBE", 0, 0x4B3D4B}, /* East Asian ideograph */ - {"\xA5", 0, 0x4B3D4C}, /* East Asian ideograph (variant of EACC 273D4C) */ - {"\x81", 0, 0x4B5B5E}, /* East Asian ideograph */ - {"\x96", 0, 0x695737}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page74 = { - marc8r_31page74_flat, 0 -}; -/* PAGE 73 */ -struct yaz_iconv_trie_dir marc8r_31page73_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {272, 0, 0}, - {273, 0, 0}, - {274, 0, 0}, - {275, 0, 0}, - {276, 0, 0}, - {277, 0, 0}, - {278, 0, 0}, - {279, 0, 0}, - {280, 0, 0}, - {281, 0, 0}, - {282, 0, 0}, - {283, 0, 0}, - {284, 0, 0}, - {285, 0, 0}, - {286, 0, 0}, - {287, 0, 0}, - {288, 0, 0}, - {289, 0, 0}, - {331, 0, 0}, - {334, 0, 0}, - {335, 0, 0}, - {290, 0, 0}, - {291, 0, 0}, - {292, 0, 0}, - {293, 0, 0}, - {294, 0, 0}, - {295, 0, 0}, - {296, 0, 0}, - {297, 0, 0}, - {298, 0, 0}, - {299, 0, 0}, - {300, 0, 0}, - {301, 0, 0}, - {302, 0, 0}, - {303, 0, 0}, - {304, 0, 0}, - {305, 0, 0}, - {306, 0, 0}, - {307, 0, 0}, - {308, 0, 0}, - {309, 0, 0}, - {310, 0, 0}, - {311, 0, 0}, - {312, 0, 0}, - {313, 0, 0}, - {314, 0, 0}, - {315, 0, 0}, - {316, 0, 0}, - {317, 0, 0}, - {318, 0, 0}, - {336, 0, 0}, - {319, 0, 0}, - {320, 0, 0}, - {321, 0, 0}, - {322, 0, 0}, - {323, 0, 0}, - {324, 0, 0}, - {325, 0, 0}, - {326, 0, 0}, - {327, 0, 0}, - {328, 0, 0}, - {329, 0, 0}, - {271, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page73 = { - 0, marc8r_31page73_dir -}; -/* PAGE 72 */ -struct yaz_iconv_trie_flat marc8r_31page72_flat[] = { - {"\x82", 0, 0x213C7D}, /* East Asian ideograph */ - {"\x81", 0, 0x213C7E}, /* East Asian ideograph */ - {"\x8A", 0, 0x213D22}, /* East Asian ideograph */ - {"\x89", 0, 0x213D23}, /* East Asian ideograph */ - {"\x88", 0, 0x213D24}, /* East Asian ideograph */ - {"\x93", 0, 0x213D25}, /* East Asian ideograph */ - {"\x96", 0, 0x213D26}, /* East Asian ideograph */ - {"\xA2", 0, 0x213D27}, /* East Asian ideograph */ - {"\x9A", 0, 0x213D28}, /* East Asian ideograph */ - {"\x9D", 0, 0x213D29}, /* East Asian ideograph */ - {"\xA3", 0, 0x213D2A}, /* East Asian ideograph (variant of EACC 4B3D2A) */ - {"\x9F", 0, 0x213D2B}, /* East Asian ideograph */ - {"\xA0", 0, 0x213D2C}, /* East Asian ideograph */ - {"\xAC", 0, 0x213D2E}, /* East Asian ideograph */ - {"\xB3", 0, 0x213D2F}, /* East Asian ideograph */ - {"\xB7", 0, 0x213D30}, /* East Asian ideograph */ - {"\xB6", 0, 0x213D32}, /* East Asian ideograph */ - {"\xBA", 0, 0x213D33}, /* East Asian ideograph */ - {"\xBF", 0, 0x213D34}, /* East Asian ideograph */ - {"\x84", 0, 0x22284C}, /* East Asian ideograph */ - {"\x8C", 0, 0x222851}, /* East Asian ideograph */ - {"\x8B", 0, 0x222855}, /* East Asian ideograph */ - {"\x8D", 0, 0x222857}, /* East Asian ideograph */ - {"\x92", 0, 0x22285A}, /* East Asian ideograph */ - {"\x91", 0, 0x22285B}, /* East Asian ideograph */ - {"\x95", 0, 0x22285C}, /* East Asian ideograph */ - {"\x94", 0, 0x22285F}, /* East Asian ideograph */ - {"\x99", 0, 0x222860}, /* East Asian ideograph */ - {"\x8E", 0, 0x222861}, /* East Asian ideograph */ - {"\xA1", 0, 0x222868}, /* East Asian ideograph */ - {"\xA7", 0, 0x22286D}, /* East Asian ideograph */ - {"\xA8", 0, 0x222871}, /* East Asian ideograph */ - {"\xAD", 0, 0x22287C}, /* East Asian ideograph */ - {"\xB1", 0, 0x222921}, /* East Asian ideograph */ - {"\xB4", 0, 0x222923}, /* East Asian ideograph */ - {"\xBE", 0, 0x2D3D34}, /* East Asian ideograph */ - {"\xB5", 0, 0x2D5B69}, /* East Asian ideograph */ - {"\x8F", 0, 0x2E284C}, /* East Asian ideograph */ - {"\xA9", 0, 0x334F37}, /* East Asian ideograph */ - {"\xB8", 0, 0x335B70}, /* East Asian ideograph */ - {"\xBC", 0, 0x39303A}, /* East Asian ideograph */ - {"\xBB", 0, 0x453768}, /* East Asian ideograph */ - {"\x90", 0, 0x46284C}, /* East Asian ideograph */ - {"\x83", 0, 0x4B3D27}, /* East Asian ideograph */ - {"\xA3", 0, 0x4B3D2A}, /* East Asian ideograph */ - {"\xB0", 0, 0x4B3D2F}, /* East Asian ideograph */ - {"\x9B", 0, 0x4C2867}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page72 = { - marc8r_31page72_flat, 0 -}; -/* PAGE 71 */ -struct yaz_iconv_trie_flat marc8r_31page71_flat[] = { - {"\x8F", 0, 0x213C6C}, /* East Asian ideograph */ - {"\x87", 0, 0x213C6D}, /* East Asian ideograph */ - {"\x8A", 0, 0x213C6E}, /* East Asian ideograph */ - {"\x9A", 0, 0x213C6F}, /* East Asian ideograph */ - {"\x97", 0, 0x213C70}, /* East Asian ideograph */ - {"\x96", 0, 0x213C71}, /* East Asian ideograph */ - {"\x9C", 0, 0x213C72}, /* East Asian ideograph */ - {"\x95", 0, 0x213C73}, /* East Asian ideograph */ - {"\xA0", 0, 0x213C74}, /* East Asian ideograph */ - {"\xA6", 0, 0x213C75}, /* East Asian ideograph */ - {"\xAB", 0, 0x213C76}, /* East Asian ideograph */ - {"\xA7", 0, 0x213C77}, /* East Asian ideograph */ - {"\xAD", 0, 0x213C78}, /* East Asian ideograph */ - {"\xB7", 0, 0x213C79}, /* East Asian ideograph */ - {"\xB8", 0, 0x213C7A}, /* East Asian ideograph */ - {"\xB6", 0, 0x213C7B}, /* East Asian ideograph */ - {"\xB5", 0, 0x213C7C}, /* East Asian ideograph */ - {"\xBE", 0, 0x213D21}, /* East Asian ideograph */ - {"\x80", 0, 0x222777}, /* East Asian ideograph */ - {"\x8B", 0, 0x22277E}, /* East Asian ideograph */ - {"\xA4", 0, 0x22282F}, /* East Asian ideograph */ - {"\xA5", 0, 0x222835}, /* East Asian ideograph */ - {"\xAF", 0, 0x222836}, /* East Asian ideograph */ - {"\xB9", 0, 0x222842}, /* East Asian ideograph */ - {"\xB3", 0, 0x22284B}, /* East Asian ideograph */ - {"\x93", 0, 0x273C76}, /* East Asian ideograph */ - {"\x9F", 0, 0x273D27}, /* East Asian ideograph */ - {"\x99", 0, 0x273D2B}, /* East Asian ideograph */ - {"\x9E", 0, 0x273D2D}, /* East Asian ideograph */ - {"\x90", 0, 0x273D2E}, /* East Asian ideograph */ - {"\x86", 0, 0x273F2E}, /* East Asian ideograph */ - {"\x94", 0, 0x273F4A}, /* East Asian ideograph */ - {"\x84", 0, 0x27552D}, /* East Asian ideograph */ - {"\x91", 0, 0x282868}, /* East Asian ideograph */ - {"\xBD", 0, 0x2D3B2A}, /* East Asian ideograph */ - {"\xBF", 0, 0x2D3D2B}, /* East Asian ideograph */ - {"\x85", 0, 0x2D6260}, /* East Asian ideograph */ - {"\x83", 0, 0x333D2A}, /* East Asian ideograph */ - {"\x81", 0, 0x333D2F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page71 = { - marc8r_31page71_flat, 0 -}; -/* PAGE 70 */ -struct yaz_iconv_trie_flat marc8r_31page70_flat[] = { - {"\x85", 0, 0x213C56}, /* East Asian ideograph */ - {"\x80", 0, 0x213C58}, /* East Asian ideograph */ - {"\x8C", 0, 0x213C59}, /* East Asian ideograph */ - {"\x9B", 0, 0x213C5A}, /* East Asian ideograph */ - {"\x94", 0, 0x213C5B}, /* East Asian ideograph */ - {"\x97", 0, 0x213C5C}, /* East Asian ideograph */ - {"\x95", 0, 0x213C5D}, /* East Asian ideograph */ - {"\xA3", 0, 0x213C5E}, /* East Asian ideograph */ - {"\xA2", 0, 0x213C5F}, /* East Asian ideograph */ - {"\x9F", 0, 0x213C60}, /* East Asian ideograph */ - {"\xAB", 0, 0x213C61}, /* East Asian ideograph */ - {"\xB3", 0, 0x213C63}, /* East Asian ideograph */ - {"\xB4", 0, 0x213C65}, /* East Asian ideograph */ - {"\xBB", 0, 0x213C68}, /* East Asian ideograph */ - {"\xBC", 0, 0x213C69}, /* East Asian ideograph */ - {"\xBD", 0, 0x213C6A}, /* East Asian ideograph */ - {"\xBE", 0, 0x213C6B}, /* East Asian ideograph */ - {"\x84", 0, 0x222735}, /* East Asian ideograph */ - {"\x83", 0, 0x222736}, /* East Asian ideograph */ - {"\x82", 0, 0x222739}, /* East Asian ideograph */ - {"\x8E", 0, 0x22273F}, /* East Asian ideograph */ - {"\x98", 0, 0x222747}, /* East Asian ideograph */ - {"\x88", 0, 0x222748}, /* East Asian ideograph */ - {"\x9E", 0, 0x222757}, /* East Asian ideograph */ - {"\xA1", 0, 0x222758}, /* East Asian ideograph */ - {"\xA8", 0, 0x22275D}, /* East Asian ideograph */ - {"\xAC", 0, 0x22275F}, /* East Asian ideograph */ - {"\xAA", 0, 0x222760}, /* East Asian ideograph */ - {"\xAE", 0, 0x222763}, /* East Asian ideograph */ - {"\xAD", 0, 0x222764}, /* East Asian ideograph */ - {"\xB0", 0, 0x222765}, /* East Asian ideograph */ - {"\xB5", 0, 0x22276D}, /* East Asian ideograph */ - {"\xB6", 0, 0x273032}, /* East Asian ideograph */ - {"\xB2", 0, 0x27304C}, /* East Asian ideograph */ - {"\xB2", 0, 0x273C67}, /* East Asian ideograph (Version J extension) */ - {"\xBF", 0, 0x273D2A}, /* East Asian ideograph */ - {"\xB8", 0, 0x2D3177}, /* East Asian ideograph */ - {"\x87", 0, 0x2D3C61}, /* East Asian ideograph */ - {"\xB9", 0, 0x3F304C}, /* East Asian ideograph */ - {"\xBA", 0, 0x456260}, /* East Asian ideograph */ - {"\xA4", 0, 0x4B3C5E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page70 = { - marc8r_31page70_flat, 0 -}; -/* PAGE 69 */ -struct yaz_iconv_trie_flat marc8r_31page69_flat[] = { - {"\x82", 0, 0x213C44}, /* East Asian ideograph */ - {"\x86", 0, 0x213C46}, /* East Asian ideograph */ - {"\x9A", 0, 0x213C49}, /* East Asian ideograph */ - {"\x96", 0, 0x213C4A}, /* East Asian ideograph */ - {"\x95", 0, 0x213C4B}, /* East Asian ideograph */ - {"\x9B", 0, 0x213C4C}, /* East Asian ideograph */ - {"\x91", 0, 0x213C4D}, /* East Asian ideograph */ - {"\x9D", 0, 0x213C4E}, /* East Asian ideograph */ - {"\xA5", 0, 0x213C4F}, /* East Asian ideograph */ - {"\xAB", 0, 0x213C51}, /* East Asian ideograph */ - {"\xB3", 0, 0x213C52}, /* East Asian ideograph */ - {"\xB6", 0, 0x213C53}, /* East Asian ideograph */ - {"\xB8", 0, 0x213C54}, /* East Asian ideograph */ - {"\xB7", 0, 0x213C55}, /* East Asian ideograph */ - {"\xBD", 0, 0x213C57}, /* East Asian ideograph */ - {"\x80", 0, 0x222662}, /* East Asian ideograph */ - {"\x94", 0, 0x222672}, /* East Asian ideograph */ - {"\x97", 0, 0x222673}, /* East Asian ideograph */ - {"\x99", 0, 0x222676}, /* East Asian ideograph */ - {"\x92", 0, 0x222677}, /* East Asian ideograph */ - {"\x9F", 0, 0x222678}, /* East Asian ideograph */ - {"\xA3", 0, 0x22267A}, /* East Asian ideograph */ - {"\xA1", 0, 0x22267B}, /* East Asian ideograph */ - {"\xA2", 0, 0x222722}, /* East Asian ideograph */ - {"\xA8", 0, 0x222724}, /* East Asian ideograph */ - {"\x83", 0, 0x273138}, /* East Asian ideograph */ - {"\x85", 0, 0x273C4F}, /* East Asian ideograph */ - {"\x88", 0, 0x273C51}, /* East Asian ideograph */ - {"\x90", 0, 0x273C52}, /* East Asian ideograph */ - {"\xA6", 0, 0x273C53}, /* East Asian ideograph */ - {"\xA7", 0, 0x273C58}, /* East Asian ideograph */ - {"\xBC", 0, 0x273C5C}, /* East Asian ideograph */ - {"\x81", 0, 0x273C5E}, /* East Asian ideograph */ - {"\x9C", 0, 0x273C60}, /* East Asian ideograph */ - {"\xAE", 0, 0x273C61}, /* East Asian ideograph */ - {"\x8C", 0, 0x274F36}, /* East Asian ideograph */ - {"\x98", 0, 0x275048}, /* East Asian ideograph */ - {"\xAD", 0, 0x27555D}, /* East Asian ideograph */ - {"\x8F", 0, 0x282736}, /* East Asian ideograph */ - {"\xBB", 0, 0x282747}, /* East Asian ideograph */ - {"\xB1", 0, 0x28275F}, /* East Asian ideograph */ - {"\x8B", 0, 0x2D5124}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D5760}, /* East Asian ideograph */ - {"\xB2", 0, 0x2F3B63}, /* East Asian ideograph */ - {"\xB0", 0, 0x3F462B}, /* East Asian ideograph */ - {"\xAF", 0, 0x4B3C53}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page69 = { - marc8r_31page69_flat, 0 -}; -/* PAGE 68 */ -struct yaz_iconv_trie_flat marc8r_31page68_flat[] = { - {"\x8D", 0, 0x213C30}, /* East Asian ideograph */ - {"\x92", 0, 0x213C31}, /* East Asian ideograph */ - {"\x94", 0, 0x213C32}, /* East Asian ideograph */ - {"\x96", 0, 0x213C33}, /* East Asian ideograph */ - {"\x9D", 0, 0x213C34}, /* East Asian ideograph */ - {"\x9E", 0, 0x213C35}, /* East Asian ideograph */ - {"\xA2", 0, 0x213C36}, /* East Asian ideograph */ - {"\xA5", 0, 0x213C37}, /* East Asian ideograph */ - {"\xA8", 0, 0x213C38}, /* East Asian ideograph */ - {"\xA7", 0, 0x213C39}, /* East Asian ideograph */ - {"\xA6", 0, 0x213C3A}, /* East Asian ideograph */ - {"\xAB", 0, 0x213C3B}, /* East Asian ideograph */ - {"\xAE", 0, 0x213C3C}, /* East Asian ideograph */ - {"\xB1", 0, 0x213C3D}, /* East Asian ideograph */ - {"\xB2", 0, 0x213C3E}, /* East Asian ideograph */ - {"\xB3", 0, 0x213C3F}, /* East Asian ideograph */ - {"\xB4", 0, 0x213C40}, /* East Asian ideograph */ - {"\xB7", 0, 0x213C41}, /* East Asian ideograph */ - {"\xBD", 0, 0x213C42}, /* East Asian ideograph */ - {"\xBE", 0, 0x213C43}, /* East Asian ideograph */ - {"\xA1", 0, 0x215B69}, /* East Asian ideograph */ - {"\x83", 0, 0x22263E}, /* East Asian ideograph */ - {"\x87", 0, 0x222644}, /* East Asian ideograph */ - {"\x89", 0, 0x222646}, /* East Asian ideograph */ - {"\x8B", 0, 0x222647}, /* East Asian ideograph */ - {"\x98", 0, 0x22264E}, /* East Asian ideograph */ - {"\x9B", 0, 0x222650}, /* East Asian ideograph */ - {"\x9C", 0, 0x222652}, /* East Asian ideograph */ - {"\xA4", 0, 0x222656}, /* East Asian ideograph */ - {"\x85", 0, 0x273C32}, /* East Asian ideograph */ - {"\xB4", 0, 0x274F70}, /* East Asian ideograph (duplicate simplified) */ - {"\xB4", 0, 0x275458}, /* East Asian ideograph (duplicate simplified) */ - {"\xA9", 0, 0x276023}, /* East Asian ideograph */ - {"\xAF", 0, 0x282659}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D3C36}, /* East Asian ideograph */ - {"\xB5", 0, 0x4B346B}, /* East Asian ideograph */ - {"\x93", 0, 0x4B3C32}, /* East Asian ideograph */ - {"\x8C", 0, 0x4B3C33}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page68 = { - marc8r_31page68_flat, 0 -}; -/* PAGE 67 */ -struct yaz_iconv_trie_flat marc8r_31page67_flat[] = { - {"\x84", 0, 0x213C2A}, /* East Asian ideograph */ - {"\x87", 0, 0x213C2B}, /* East Asian ideograph */ - {"\x9D", 0, 0x213C2C}, /* East Asian ideograph */ - {"\xBC", 0, 0x213C2D}, /* East Asian ideograph */ - {"\xBD", 0, 0x213C2E}, /* East Asian ideograph */ - {"\xBA", 0, 0x213C2F}, /* East Asian ideograph (variant of EACC 4B3C2F) */ - {"\x82", 0, 0x22254D}, /* East Asian ideograph */ - {"\x8E", 0, 0x222551}, /* East Asian ideograph */ - {"\x81", 0, 0x22255A}, /* East Asian ideograph */ - {"\x92", 0, 0x222566}, /* East Asian ideograph */ - {"\x99", 0, 0x222568}, /* East Asian ideograph */ - {"\x97", 0, 0x222569}, /* East Asian ideograph */ - {"\xA2", 0, 0x22256A}, /* East Asian ideograph */ - {"\xA1", 0, 0x222573}, /* East Asian ideograph */ - {"\x93", 0, 0x222575}, /* East Asian ideograph */ - {"\xA0", 0, 0x222577}, /* East Asian ideograph */ - {"\x94", 0, 0x22257B}, /* East Asian ideograph */ - {"\xAC", 0, 0x22257E}, /* East Asian ideograph */ - {"\xA7", 0, 0x222626}, /* East Asian ideograph */ - {"\xB0", 0, 0x22262A}, /* East Asian ideograph */ - {"\xB4", 0, 0x22262E}, /* East Asian ideograph */ - {"\xAE", 0, 0x22262F}, /* East Asian ideograph */ - {"\xB6", 0, 0x222630}, /* East Asian ideograph */ - {"\xB8", 0, 0x222632}, /* East Asian ideograph */ - {"\xBF", 0, 0x222634}, /* East Asian ideograph */ - {"\xB7", 0, 0x222636}, /* East Asian ideograph */ - {"\x8B", 0, 0x2D3B79}, /* East Asian ideograph */ - {"\x8C", 0, 0x4B3B79}, /* East Asian ideograph */ - {"\xBA", 0, 0x4B3C2F}, /* East Asian ideograph */ - {"\x90", 0, 0x695657}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page67 = { - marc8r_31page67_flat, 0 -}; -/* PAGE 66 */ -struct yaz_iconv_trie_flat marc8r_31page66_flat[] = { - {"\x8C", 0, 0x213C27}, /* East Asian ideograph */ - {"\x90", 0, 0x213C28}, /* East Asian ideograph */ - {"\xA9", 0, 0x213C29}, /* East Asian ideograph */ - {"\x8B", 0, 0x222474}, /* East Asian ideograph */ - {"\x97", 0, 0x222476}, /* East Asian ideograph */ - {"\x92", 0, 0x222526}, /* East Asian ideograph */ - {"\x8E", 0, 0x222528}, /* East Asian ideograph */ - {"\x99", 0, 0x22252C}, /* East Asian ideograph */ - {"\x87", 0, 0x22252D}, /* East Asian ideograph */ - {"\x82", 0, 0x222531}, /* East Asian ideograph */ - {"\xB4", 0, 0x222534}, /* East Asian ideograph */ - {"\xAF", 0, 0x222539}, /* East Asian ideograph */ - {"\xAB", 0, 0x22253A}, /* East Asian ideograph */ - {"\xB5", 0, 0x22253F}, /* East Asian ideograph */ - {"\x8A", 0, 0x222544}, /* East Asian ideograph */ - {"\xAC", 0, 0x222549}, /* East Asian ideograph */ - {"\xA2", 0, 0x22254A}, /* East Asian ideograph */ - {"\xB9", 0, 0x222550}, /* East Asian ideograph */ - {"\xBE", 0, 0x222560}, /* East Asian ideograph */ - {"\x9D", 0, 0x28255A}, /* East Asian ideograph */ - {"\x98", 0, 0x282632}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B3C21}, /* East Asian ideograph */ - {"\x9B", 0, 0x4C2532}, /* East Asian ideograph */ - {"\xB3", 0, 0x4C2539}, /* East Asian ideograph */ - {"\xB6", 0, 0x69564E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page66 = { - marc8r_31page66_flat, 0 -}; -/* PAGE 65 */ -struct yaz_iconv_trie_flat marc8r_31page65_flat[] = { - {"\x81", 0, 0x213B73}, /* East Asian ideograph */ - {"\x87", 0, 0x213B7B}, /* East Asian ideograph */ - {"\x86", 0, 0x213B7C}, /* East Asian ideograph */ - {"\x9B", 0, 0x213B7D}, /* East Asian ideograph */ - {"\x96", 0, 0x213B7E}, /* East Asian ideograph */ - {"\x8E", 0, 0x213C21}, /* East Asian ideograph */ - {"\x91", 0, 0x213C22}, /* East Asian ideograph */ - {"\xA2", 0, 0x213C23}, /* East Asian ideograph */ - {"\xA9", 0, 0x213C24}, /* East Asian ideograph */ - {"\x94", 0, 0x213C25}, /* East Asian ideograph */ - {"\x99", 0, 0x213C26}, /* East Asian ideograph */ - {"\x80", 0, 0x222434}, /* East Asian ideograph */ - {"\x9E", 0, 0x222449}, /* East Asian ideograph */ - {"\x92", 0, 0x22244A}, /* East Asian ideograph */ - {"\x9A", 0, 0x222450}, /* East Asian ideograph */ - {"\x8C", 0, 0x222452}, /* East Asian ideograph */ - {"\xA0", 0, 0x222453}, /* East Asian ideograph */ - {"\xA1", 0, 0x222454}, /* East Asian ideograph */ - {"\xA7", 0, 0x222457}, /* East Asian ideograph */ - {"\x8D", 0, 0x222458}, /* East Asian ideograph */ - {"\xA6", 0, 0x22245A}, /* East Asian ideograph */ - {"\xAE", 0, 0x22245D}, /* East Asian ideograph */ - {"\xA4", 0, 0x222469}, /* East Asian ideograph */ - {"\xB6", 0, 0x222471}, /* East Asian ideograph */ - {"\xBE", 0, 0x222472}, /* East Asian ideograph */ - {"\xB4", 0, 0x222477}, /* East Asian ideograph */ - {"\xBF", 0, 0x222525}, /* East Asian ideograph */ - {"\xBD", 0, 0x222527}, /* East Asian ideograph */ - {"\xB2", 0, 0x22252F}, /* East Asian ideograph */ - {"\xAD", 0, 0x273C2A}, /* East Asian ideograph */ - {"\x83", 0, 0x282458}, /* East Asian ideograph */ - {"\x82", 0, 0x282569}, /* East Asian ideograph */ - {"\x97", 0, 0x2D3B6E}, /* East Asian ideograph */ - {"\x88", 0, 0x2D3B7B}, /* East Asian ideograph */ - {"\x90", 0, 0x2D3C22}, /* East Asian ideograph */ - {"\x98", 0, 0x2D3C26}, /* East Asian ideograph */ - {"\x9F", 0, 0x2E257B}, /* East Asian ideograph */ - {"\x8B", 0, 0x39553C}, /* East Asian ideograph */ - {"\x95", 0, 0x4B3B7E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page65 = { - marc8r_31page65_flat, 0 -}; -/* PAGE 64 */ -struct yaz_iconv_trie_flat marc8r_31page64_flat[] = { - {"\x99", 0, 0x213B72}, /* East Asian ideograph */ - {"\xBD", 0, 0x213B74}, /* East Asian ideograph */ - {"\xAD", 0, 0x213B75}, /* East Asian ideograph */ - {"\xBB", 0, 0x213B76}, /* East Asian ideograph */ - {"\xA8", 0, 0x213B77}, /* East Asian ideograph */ - {"\xB0", 0, 0x213B78}, /* East Asian ideograph */ - {"\xB6", 0, 0x213B79}, /* East Asian ideograph */ - {"\xAA", 0, 0x213B7A}, /* East Asian ideograph */ - {"\x81", 0, 0x22236D}, /* East Asian ideograph */ - {"\x95", 0, 0x222370}, /* East Asian ideograph */ - {"\x93", 0, 0x222378}, /* East Asian ideograph */ - {"\xA0", 0, 0x222426}, /* East Asian ideograph */ - {"\x92", 0, 0x222428}, /* East Asian ideograph */ - {"\x9D", 0, 0x222429}, /* East Asian ideograph */ - {"\x8B", 0, 0x22242B}, /* East Asian ideograph */ - {"\x87", 0, 0x222430}, /* East Asian ideograph */ - {"\x9C", 0, 0x222431}, /* East Asian ideograph */ - {"\xBF", 0, 0x22243B}, /* East Asian ideograph */ - {"\xAB", 0, 0x22243C}, /* East Asian ideograph */ - {"\xB4", 0, 0x222441}, /* East Asian ideograph */ - {"\xB1", 0, 0x222446}, /* East Asian ideograph */ - {"\xA1", 0, 0x273B74}, /* East Asian ideograph */ - {"\xA6", 0, 0x273C31}, /* East Asian ideograph */ - {"\xA4", 0, 0x282577}, /* East Asian ideograph */ - {"\x84", 0, 0x282626}, /* East Asian ideograph */ - {"\xA9", 0, 0x2D3B77}, /* East Asian ideograph */ - {"\xAF", 0, 0x2D3B78}, /* East Asian ideograph */ - {"\x84", 0, 0x393B78}, /* East Asian ideograph (duplicate simplified) */ - {"\xA5", 0, 0x4B3C23}, /* East Asian ideograph */ - {"\xBA", 0, 0x4B4E39}, /* East Asian ideograph */ - {"\x85", 0, 0x695632}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page64 = { - marc8r_31page64_flat, 0 -}; -/* PAGE 63 */ -struct yaz_iconv_trie_flat marc8r_31page63_flat[] = { - {"\x90", 0, 0x213B67}, /* East Asian ideograph */ - {"\x8C", 0, 0x213B68}, /* East Asian ideograph */ - {"\x91", 0, 0x213B69}, /* East Asian ideograph */ - {"\x94", 0, 0x213B6A}, /* East Asian ideograph */ - {"\xB7", 0, 0x213B6B}, /* East Asian ideograph */ - {"\xB8", 0, 0x213B6C}, /* East Asian ideograph */ - {"\xA1", 0, 0x213B6E}, /* East Asian ideograph */ - {"\xAB", 0, 0x213B6F}, /* East Asian ideograph */ - {"\xB1", 0, 0x213B71}, /* East Asian ideograph */ - {"\x8F", 0, 0x222346}, /* East Asian ideograph */ - {"\x88", 0, 0x222349}, /* East Asian ideograph */ - {"\x8D", 0, 0x22234B}, /* East Asian ideograph */ - {"\x99", 0, 0x22234D}, /* East Asian ideograph */ - {"\xA6", 0, 0x222355}, /* East Asian ideograph */ - {"\xA0", 0, 0x222357}, /* East Asian ideograph */ - {"\xA2", 0, 0x22235C}, /* East Asian ideograph */ - {"\xB5", 0, 0x222360}, /* East Asian ideograph */ - {"\xA7", 0, 0x222361}, /* East Asian ideograph */ - {"\xA8", 0, 0x222366}, /* East Asian ideograph */ - {"\xAC", 0, 0x222367}, /* East Asian ideograph */ - {"\xA3", 0, 0x22236B}, /* East Asian ideograph */ - {"\xB6", 0, 0x22236C}, /* East Asian ideograph */ - {"\xAD", 0, 0x22236F}, /* East Asian ideograph */ - {"\x8D", 0, 0x222379}, /* East Asian ideograph */ - {"\x9B", 0, 0x273B79}, /* East Asian ideograph */ - {"\x9A", 0, 0x273C28}, /* East Asian ideograph */ - {"\x96", 0, 0x273C2B}, /* East Asian ideograph */ - {"\xB3", 0, 0x273C2E}, /* East Asian ideograph */ - {"\xA9", 0, 0x273C33}, /* East Asian ideograph */ - {"\x81", 0, 0x274629}, /* East Asian ideograph */ - {"\x82", 0, 0x275954}, /* East Asian ideograph */ - {"\x98", 0, 0x282441}, /* East Asian ideograph */ - {"\xBF", 0, 0x282647}, /* East Asian ideograph */ - {"\xBD", 0, 0x342453}, /* East Asian ideograph */ - {"\x97", 0, 0x393B6E}, /* East Asian ideograph */ - {"\xBB", 0, 0x69562E}, /* East Asian ideograph */ - {"\xBC", 0, 0x695630}, /* East Asian ideograph */ - {"\xBE", 0, 0x695633}, /* East Asian ideograph */ - {"\x9C", 0, 0x706131}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page63 = { - marc8r_31page63_flat, 0 -}; -/* PAGE 62 */ -struct yaz_iconv_trie_flat marc8r_31page62_flat[] = { - {"\x80", 0, 0x213B50}, /* East Asian ideograph */ - {"\x81", 0, 0x213B51}, /* East Asian ideograph */ - {"\x86", 0, 0x213B54}, /* East Asian ideograph */ - {"\x85", 0, 0x213B55}, /* East Asian ideograph */ - {"\x88", 0, 0x213B56}, /* East Asian ideograph */ - {"\x8E", 0, 0x213B57}, /* East Asian ideograph */ - {"\x8B", 0, 0x213B58}, /* East Asian ideograph */ - {"\x8D", 0, 0x213B59}, /* East Asian ideograph */ - {"\x95", 0, 0x213B5A}, /* East Asian ideograph */ - {"\x91", 0, 0x213B5B}, /* East Asian ideograph */ - {"\x90", 0, 0x213B5C}, /* East Asian ideograph */ - {"\x9B", 0, 0x213B5D}, /* East Asian ideograph */ - {"\xA0", 0, 0x213B5E}, /* East Asian ideograph */ - {"\x9C", 0, 0x213B5F}, /* East Asian ideograph */ - {"\xA2", 0, 0x213B60}, /* East Asian ideograph */ - {"\xA4", 0, 0x213B61}, /* East Asian ideograph (variant of EACC 4B3B61) */ - {"\xA5", 0, 0x213B62}, /* East Asian ideograph */ - {"\xAC", 0, 0x213B63}, /* East Asian ideograph */ - {"\xAF", 0, 0x213B64}, /* East Asian ideograph */ - {"\xB1", 0, 0x213B65}, /* East Asian ideograph */ - {"\xB9", 0, 0x213B66}, /* East Asian ideograph */ - {"\x98", 0, 0x217E27}, /* East Asian ideograph */ - {"\x97", 0, 0x222235}, /* East Asian ideograph */ - {"\x84", 0, 0x222265}, /* East Asian ideograph */ - {"\x89", 0, 0x222267}, /* East Asian ideograph */ - {"\x99", 0, 0x222279}, /* East Asian ideograph */ - {"\x9D", 0, 0x22227B}, /* East Asian ideograph */ - {"\x9F", 0, 0x22227C}, /* East Asian ideograph */ - {"\xA3", 0, 0x222323}, /* East Asian ideograph */ - {"\xA7", 0, 0x222329}, /* East Asian ideograph */ - {"\xA8", 0, 0x22232B}, /* East Asian ideograph */ - {"\xAD", 0, 0x222330}, /* East Asian ideograph */ - {"\xAE", 0, 0x222331}, /* East Asian ideograph */ - {"\xB4", 0, 0x222337}, /* East Asian ideograph */ - {"\xB3", 0, 0x222339}, /* East Asian ideograph */ - {"\xB7", 0, 0x22233B}, /* East Asian ideograph */ - {"\xBA", 0, 0x22233C}, /* East Asian ideograph */ - {"\xBC", 0, 0x222340}, /* East Asian ideograph */ - {"\xA1", 0, 0x273B60}, /* East Asian ideograph */ - {"\x82", 0, 0x273B61}, /* East Asian ideograph */ - {"\x9E", 0, 0x273B63}, /* East Asian ideograph */ - {"\xBF", 0, 0x273C2D}, /* East Asian ideograph */ - {"\x8F", 0, 0x27415A}, /* East Asian ideograph */ - {"\xA6", 0, 0x28232B}, /* East Asian ideograph */ - {"\x8A", 0, 0x2D3B54}, /* East Asian ideograph */ - {"\xA4", 0, 0x4B3B61}, /* East Asian ideograph */ - {"\xA9", 0, 0x4B5A7E}, /* East Asian ideograph */ - {"\x93", 0, 0x4C2330}, /* East Asian ideograph */ - {"\xB6", 0, 0x4C233F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page62 = { - marc8r_31page62_flat, 0 -}; -/* PAGE 61 */ -struct yaz_iconv_trie_flat marc8r_31page61_flat[] = { - {"\x86", 0, 0x213B21}, /* East Asian ideograph */ - {"\x87", 0, 0x213B22}, /* East Asian ideograph */ - {"\x85", 0, 0x213B23}, /* East Asian ideograph */ - {"\x84", 0, 0x213B24}, /* East Asian ideograph */ - {"\x82", 0, 0x213B25}, /* East Asian ideograph */ - {"\x8C", 0, 0x213B27}, /* East Asian ideograph */ - {"\x92", 0, 0x213B28}, /* East Asian ideograph */ - {"\x90", 0, 0x213B29}, /* East Asian ideograph */ - {"\x93", 0, 0x213B2A}, /* East Asian ideograph */ - {"\xA1", 0, 0x213B2B}, /* East Asian ideograph */ - {"\xA5", 0, 0x213B2C}, /* East Asian ideograph */ - {"\xA8", 0, 0x213B2D}, /* East Asian ideograph */ - {"\xA2", 0, 0x213B2E}, /* East Asian ideograph */ - {"\xA4", 0, 0x213B2F}, /* East Asian ideograph */ - {"\x9E", 0, 0x213B30}, /* East Asian ideograph */ - {"\xA6", 0, 0x213B31}, /* East Asian ideograph */ - {"\xA7", 0, 0x213B32}, /* East Asian ideograph */ - {"\x9F", 0, 0x213B33}, /* East Asian ideograph */ - {"\xAE", 0, 0x213B34}, /* East Asian ideograph */ - {"\xAC", 0, 0x213B35}, /* East Asian ideograph */ - {"\xA9", 0, 0x213B36}, /* East Asian ideograph */ - {"\xAB", 0, 0x213B37}, /* East Asian ideograph */ - {"\xB5", 0, 0x213B38}, /* East Asian ideograph */ - {"\xB6", 0, 0x213B39}, /* East Asian ideograph */ - {"\xB8", 0, 0x213B3A}, /* East Asian ideograph */ - {"\xBA", 0, 0x213B3B}, /* East Asian ideograph */ - {"\x81", 0, 0x217E59}, /* East Asian ideograph */ - {"\x89", 0, 0x217E60}, /* East Asian ideograph */ - {"\x94", 0, 0x217E68}, /* East Asian ideograph */ - {"\x83", 0, 0x217E6A}, /* East Asian ideograph */ - {"\x96", 0, 0x217E6E}, /* East Asian ideograph */ - {"\x97", 0, 0x217E75}, /* East Asian ideograph */ - {"\xA0", 0, 0x217E79}, /* East Asian ideograph */ - {"\xAA", 0, 0x217E7E}, /* East Asian ideograph */ - {"\xB0", 0, 0x222224}, /* East Asian ideograph */ - {"\xAF", 0, 0x222225}, /* East Asian ideograph */ - {"\xBF", 0, 0x273877}, /* East Asian ideograph */ - {"\x9D", 0, 0x273B2E}, /* East Asian ideograph */ - {"\xBB", 0, 0x273B42}, /* East Asian ideograph */ - {"\xB9", 0, 0x273B43}, /* East Asian ideograph */ - {"\xBC", 0, 0x273B44}, /* East Asian ideograph */ - {"\xB3", 0, 0x393B39}, /* East Asian ideograph */ - {"\x98", 0, 0x395230}, /* East Asian ideograph */ - {"\xBE", 0, 0x4B3B43}, /* East Asian ideograph */ - {"\x83", 0, 0x4B7E6A}, /* East Asian ideograph (variant of EACC 217E6A) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page61 = { - marc8r_31page61_flat, 0 -}; -/* PAGE 60 */ -struct yaz_iconv_trie_flat marc8r_31page60_flat[] = { - {"\x87", 0, 0x213A65}, /* East Asian ideograph */ - {"\x88", 0, 0x213A66}, /* East Asian ideograph */ - {"\x89", 0, 0x213A67}, /* East Asian ideograph */ - {"\x85", 0, 0x213A68}, /* East Asian ideograph */ - {"\x8C", 0, 0x213A69}, /* East Asian ideograph */ - {"\x8B", 0, 0x213A6A}, /* East Asian ideograph */ - {"\x8F", 0, 0x213A6B}, /* East Asian ideograph */ - {"\x97", 0, 0x213A6C}, /* East Asian ideograph */ - {"\x9A", 0, 0x213A6D}, /* East Asian ideograph */ - {"\x9C", 0, 0x213A6E}, /* East Asian ideograph */ - {"\x98", 0, 0x213A6F}, /* East Asian ideograph */ - {"\x99", 0, 0x213A70}, /* East Asian ideograph */ - {"\x9B", 0, 0x213A71}, /* East Asian ideograph */ - {"\xA5", 0, 0x213A72}, /* East Asian ideograph */ - {"\xA3", 0, 0x213A73}, /* East Asian ideograph */ - {"\xA6", 0, 0x213A74}, /* East Asian ideograph */ - {"\xA4", 0, 0x213A75}, /* East Asian ideograph */ - {"\xA2", 0, 0x213A76}, /* East Asian ideograph */ - {"\xB0", 0, 0x213A77}, /* East Asian ideograph */ - {"\xB8", 0, 0x213A78}, /* East Asian ideograph */ - {"\xB5", 0, 0x213A7A}, /* East Asian ideograph */ - {"\xB4", 0, 0x213A7B}, /* East Asian ideograph */ - {"\xAE", 0, 0x213A7C}, /* East Asian ideograph */ - {"\xB9", 0, 0x213A7D}, /* East Asian ideograph */ - {"\xB3", 0, 0x213A7E}, /* East Asian ideograph */ - {"\xBF", 0, 0x213B26}, /* East Asian ideograph */ - {"\x80", 0, 0x217E32}, /* East Asian ideograph */ - {"\x84", 0, 0x217E34}, /* East Asian ideograph */ - {"\x82", 0, 0x217E35}, /* East Asian ideograph */ - {"\x95", 0, 0x217E40}, /* East Asian ideograph */ - {"\x93", 0, 0x217E43}, /* East Asian ideograph */ - {"\xAC", 0, 0x217E49}, /* East Asian ideograph */ - {"\xA7", 0, 0x217E52}, /* East Asian ideograph */ - {"\xB7", 0, 0x217E55}, /* East Asian ideograph */ - {"\xB6", 0, 0x27323E}, /* East Asian ideograph */ - {"\x9E", 0, 0x273B31}, /* East Asian ideograph */ - {"\x81", 0, 0x273B32}, /* East Asian ideograph */ - {"\xBD", 0, 0x273B35}, /* East Asian ideograph */ - {"\xA1", 0, 0x273B36}, /* East Asian ideograph */ - {"\xA0", 0, 0x273B38}, /* East Asian ideograph */ - {"\x9D", 0, 0x273B39}, /* East Asian ideograph */ - {"\xAA", 0, 0x273F3E}, /* East Asian ideograph */ - {"\x83", 0, 0x274A53}, /* East Asian ideograph */ - {"\xBE", 0, 0x275A29}, /* East Asian ideograph */ - {"\x8D", 0, 0x2D5323}, /* East Asian ideograph */ - {"\x82", 0, 0x453336}, /* East Asian ideograph */ - {"\x9F", 0, 0x4B3B31}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page60 = { - marc8r_31page60_flat, 0 -}; -/* PAGE 59 */ -struct yaz_iconv_trie_flat marc8r_31page59_flat[] = { - {"\x80", 0, 0x213A4C}, /* East Asian ideograph */ - {"\x90", 0, 0x213A4D}, /* East Asian ideograph */ - {"\x91", 0, 0x213A4E}, /* East Asian ideograph */ - {"\x93", 0, 0x213A4F}, /* East Asian ideograph */ - {"\x94", 0, 0x213A50}, /* East Asian ideograph */ - {"\x95", 0, 0x213A51}, /* East Asian ideograph */ - {"\x97", 0, 0x213A52}, /* East Asian ideograph */ - {"\x98", 0, 0x213A53}, /* East Asian ideograph */ - {"\x9D", 0, 0x213A54}, /* East Asian ideograph */ - {"\x9C", 0, 0x213A55}, /* East Asian ideograph */ - {"\x9F", 0, 0x213A57}, /* East Asian ideograph */ - {"\xA3", 0, 0x213A58}, /* East Asian ideograph */ - {"\xA4", 0, 0x213A59}, /* East Asian ideograph */ - {"\xA9", 0, 0x213A5A}, /* East Asian ideograph */ - {"\xAB", 0, 0x213A5B}, /* East Asian ideograph */ - {"\xB0", 0, 0x213A5C}, /* East Asian ideograph */ - {"\xB3", 0, 0x213A5D}, /* East Asian ideograph */ - {"\xB1", 0, 0x213A5E}, /* East Asian ideograph */ - {"\xB5", 0, 0x213A5F}, /* East Asian ideograph */ - {"\xB8", 0, 0x213A60}, /* East Asian ideograph */ - {"\xBA", 0, 0x213A61}, /* East Asian ideograph */ - {"\xBD", 0, 0x213A62}, /* East Asian ideograph */ - {"\xBF", 0, 0x213A63}, /* East Asian ideograph */ - {"\x85", 0, 0x217D6E}, /* East Asian ideograph */ - {"\x8C", 0, 0x217D74}, /* East Asian ideograph */ - {"\x8B", 0, 0x217D76}, /* East Asian ideograph */ - {"\x96", 0, 0x217D7C}, /* East Asian ideograph */ - {"\x9B", 0, 0x217E21}, /* East Asian ideograph */ - {"\xA2", 0, 0x217E23}, /* East Asian ideograph */ - {"\xA5", 0, 0x217E24}, /* East Asian ideograph */ - {"\xA7", 0, 0x217E25}, /* East Asian ideograph */ - {"\xAC", 0, 0x217E28}, /* East Asian ideograph */ - {"\xAE", 0, 0x217E2A}, /* East Asian ideograph */ - {"\xBB", 0, 0x217E30}, /* East Asian ideograph */ - {"\xBC", 0, 0x217E31}, /* East Asian ideograph */ - {"\x99", 0, 0x273A5B}, /* East Asian ideograph */ - {"\x9A", 0, 0x273A5F}, /* East Asian ideograph */ - {"\xA6", 0, 0x273A60}, /* East Asian ideograph */ - {"\xAA", 0, 0x273A63}, /* East Asian ideograph */ - {"\x83", 0, 0x2D3974}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page59 = { - marc8r_31page59_flat, 0 -}; -/* PAGE 58 */ -struct yaz_iconv_trie_flat marc8r_31page58_flat[] = { - {"\x89", 0, 0x213A42}, /* East Asian ideograph */ - {"\x8B", 0, 0x213A43}, /* East Asian ideograph */ - {"\x8C", 0, 0x213A44}, /* East Asian ideograph */ - {"\xB4", 0, 0x213A46}, /* East Asian ideograph */ - {"\x9D", 0, 0x213A47}, /* East Asian ideograph */ - {"\xAA", 0, 0x213A48}, /* East Asian ideograph */ - {"\xA4", 0, 0x213A49}, /* East Asian ideograph */ - {"\xB0", 0, 0x213A4A}, /* East Asian ideograph */ - {"\xB8", 0, 0x213A4B}, /* East Asian ideograph */ - {"\x88", 0, 0x217D2B}, /* East Asian ideograph */ - {"\x8D", 0, 0x217D2E}, /* East Asian ideograph */ - {"\x83", 0, 0x217D38}, /* East Asian ideograph */ - {"\x97", 0, 0x217D3D}, /* East Asian ideograph */ - {"\x96", 0, 0x217D3E}, /* East Asian ideograph */ - {"\x99", 0, 0x217D40}, /* East Asian ideograph */ - {"\x9B", 0, 0x217D47}, /* East Asian ideograph */ - {"\xA1", 0, 0x217D48}, /* East Asian ideograph */ - {"\xAC", 0, 0x217D52}, /* East Asian ideograph */ - {"\xB2", 0, 0x217D59}, /* East Asian ideograph */ - {"\xBF", 0, 0x217D63}, /* East Asian ideograph */ - {"\xAD", 0, 0x333944}, /* East Asian ideograph */ - {"\xBE", 0, 0x333F55}, /* East Asian ideograph */ - {"\xA2", 0, 0x4B3974}, /* East Asian ideograph */ - {"\xB7", 0, 0x4B3A49}, /* East Asian ideograph */ - {"\xB6", 0, 0x69554E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page58 = { - marc8r_31page58_flat, 0 -}; -/* PAGE 57 */ -struct yaz_iconv_trie_flat marc8r_31page57_flat[] = { - {"\x8C", 0, 0x213A32}, /* East Asian ideograph */ - {"\x81", 0, 0x213A33}, /* East Asian ideograph */ - {"\x89", 0, 0x213A34}, /* East Asian ideograph */ - {"\x82", 0, 0x213A38}, /* East Asian ideograph */ - {"\xA1", 0, 0x213A3A}, /* East Asian ideograph */ - {"\x97", 0, 0x213A3B}, /* East Asian ideograph */ - {"\x96", 0, 0x213A3C}, /* East Asian ideograph */ - {"\xA3", 0, 0x213A3D}, /* East Asian ideograph */ - {"\xA9", 0, 0x213A3E}, /* East Asian ideograph */ - {"\x98", 0, 0x213A3F}, /* East Asian ideograph */ - {"\xA6", 0, 0x213A40}, /* East Asian ideograph */ - {"\xBB", 0, 0x213A41}, /* East Asian ideograph */ - {"\xB5", 0, 0x213A45}, /* East Asian ideograph */ - {"\x8F", 0, 0x217B69}, /* East Asian ideograph */ - {"\x88", 0, 0x217C39}, /* East Asian ideograph */ - {"\x84", 0, 0x217C41}, /* East Asian ideograph */ - {"\x91", 0, 0x217C49}, /* East Asian ideograph */ - {"\x93", 0, 0x217C59}, /* East Asian ideograph */ - {"\x9C", 0, 0x217C60}, /* East Asian ideograph */ - {"\xA5", 0, 0x217C6D}, /* East Asian ideograph */ - {"\xA0", 0, 0x217C6E}, /* East Asian ideograph */ - {"\xAA", 0, 0x217C72}, /* East Asian ideograph */ - {"\x9A", 0, 0x217C7B}, /* East Asian ideograph */ - {"\xAB", 0, 0x217C7C}, /* East Asian ideograph */ - {"\xBF", 0, 0x217D26}, /* East Asian ideograph */ - {"\xBD", 0, 0x217D2A}, /* East Asian ideograph */ - {"\x94", 0, 0x273A48}, /* East Asian ideograph */ - {"\xB1", 0, 0x277D40}, /* East Asian ideograph */ - {"\x92", 0, 0x277D48}, /* East Asian ideograph */ - {"\xBA", 0, 0x2D3A41}, /* East Asian ideograph */ - {"\x8B", 0, 0x2D3A47}, /* East Asian ideograph */ - {"\x90", 0, 0x453666}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page57 = { - marc8r_31page57_flat, 0 -}; -/* PAGE 56 */ -struct yaz_iconv_trie_flat marc8r_31page56_flat[] = { - {"\x9A", 0, 0x213A2D}, /* East Asian ideograph */ - {"\x92", 0, 0x213A2E}, /* East Asian ideograph */ - {"\xBC", 0, 0x213A30}, /* East Asian ideograph */ - {"\x9B", 0, 0x213A31}, /* East Asian ideograph */ - {"\xBE", 0, 0x213A35}, /* East Asian ideograph */ - {"\xBD", 0, 0x213A36}, /* East Asian ideograph */ - {"\xB2", 0, 0x213A37}, /* East Asian ideograph */ - {"\xB3", 0, 0x213A39}, /* East Asian ideograph */ - {"\x8A", 0, 0x217B65}, /* East Asian ideograph */ - {"\x9F", 0, 0x217B71}, /* East Asian ideograph */ - {"\xA0", 0, 0x217B75}, /* East Asian ideograph */ - {"\xA6", 0, 0x217C21}, /* East Asian ideograph */ - {"\x8C", 0, 0x217C22}, /* East Asian ideograph */ - {"\xA7", 0, 0x217C24}, /* East Asian ideograph */ - {"\x9E", 0, 0x217C25}, /* East Asian ideograph */ - {"\xA2", 0, 0x217C26}, /* East Asian ideograph */ - {"\x9C", 0, 0x217C27}, /* East Asian ideograph */ - {"\x96", 0, 0x217C29}, /* East Asian ideograph */ - {"\x93", 0, 0x217C30}, /* East Asian ideograph */ - {"\xAC", 0, 0x217C31}, /* East Asian ideograph */ - {"\xAE", 0, 0x217C34}, /* East Asian ideograph */ - {"\x95", 0, 0x217C35}, /* East Asian ideograph */ - {"\xAF", 0, 0x217C36}, /* East Asian ideograph */ - {"\xB5", 0, 0x217C3E}, /* East Asian ideograph */ - {"\xB7", 0, 0x217C45}, /* East Asian ideograph */ - {"\x90", 0, 0x217C4A}, /* East Asian ideograph */ - {"\xB8", 0, 0x217C4F}, /* East Asian ideograph */ - {"\xBA", 0, 0x217C50}, /* East Asian ideograph */ - {"\xAA", 0, 0x217C52}, /* East Asian ideograph */ - {"\xB1", 0, 0x217C5B}, /* East Asian ideograph */ - {"\xBF", 0, 0x2D3F2A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page56 = { - marc8r_31page56_flat, 0 -}; -/* PAGE 55 */ -struct yaz_iconv_trie_flat marc8r_31page55_flat[] = { - {"\x86", 0, 0x213A21}, /* East Asian ideograph */ - {"\x89", 0, 0x213A22}, /* East Asian ideograph */ - {"\xAA", 0, 0x213A23}, /* East Asian ideograph */ - {"\x8A", 0, 0x213A25}, /* East Asian ideograph */ - {"\x80", 0, 0x213A26}, /* East Asian ideograph */ - {"\xA6", 0, 0x213A27}, /* East Asian ideograph */ - {"\x81", 0, 0x213A28}, /* East Asian ideograph */ - {"\xA2", 0, 0x213A2A}, /* East Asian ideograph */ - {"\x9A", 0, 0x213A2B}, /* East Asian ideograph */ - {"\xB7", 0, 0x213A2C}, /* East Asian ideograph */ - {"\xBF", 0, 0x213A2F}, /* East Asian ideograph */ - {"\xA0", 0, 0x217B2C}, /* East Asian ideograph */ - {"\xA7", 0, 0x217B31}, /* East Asian ideograph */ - {"\x9E", 0, 0x217B3B}, /* East Asian ideograph */ - {"\xAD", 0, 0x217B3C}, /* East Asian ideograph */ - {"\x95", 0, 0x217B3E}, /* East Asian ideograph */ - {"\x90", 0, 0x217B48}, /* East Asian ideograph */ - {"\xA5", 0, 0x217B49}, /* East Asian ideograph */ - {"\xA4", 0, 0x217B52}, /* East Asian ideograph */ - {"\xBA", 0, 0x217B6A}, /* East Asian ideograph */ - {"\xBC", 0, 0x217C28}, /* East Asian ideograph */ - {"\xB5", 0, 0x273A43}, /* East Asian ideograph */ - {"\xB4", 0, 0x273A4A}, /* East Asian ideograph */ - {"\xB6", 0, 0x273A4B}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D3970}, /* East Asian ideograph */ - {"\xAC", 0, 0x334770}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page55 = { - marc8r_31page55_flat, 0 -}; -/* PAGE 54 */ -struct yaz_iconv_trie_flat marc8r_31page54_flat[] = { - {"\x83", 0, 0x21396B}, /* East Asian ideograph */ - {"\x81", 0, 0x21396F}, /* East Asian ideograph */ - {"\x91", 0, 0x213973}, /* East Asian ideograph */ - {"\x98", 0, 0x213974}, /* East Asian ideograph */ - {"\xA3", 0, 0x213975}, /* East Asian ideograph */ - {"\x9C", 0, 0x213976}, /* East Asian ideograph */ - {"\x93", 0, 0x213977}, /* East Asian ideograph */ - {"\xA0", 0, 0x213979}, /* East Asian ideograph */ - {"\x9F", 0, 0x21397A}, /* East Asian ideograph */ - {"\x9B", 0, 0x21397B}, /* East Asian ideograph */ - {"\x8C", 0, 0x21397C}, /* East Asian ideograph */ - {"\xA9", 0, 0x21397D}, /* East Asian ideograph */ - {"\xA5", 0, 0x21397E}, /* East Asian ideograph */ - {"\xB6", 0, 0x213A24}, /* East Asian ideograph */ - {"\xBC", 0, 0x213A29}, /* East Asian ideograph */ - {"\x80", 0, 0x217A51}, /* East Asian ideograph */ - {"\xAA", 0, 0x217A6E}, /* East Asian ideograph */ - {"\x96", 0, 0x217A75}, /* East Asian ideograph */ - {"\x89", 0, 0x217A78}, /* East Asian ideograph */ - {"\x92", 0, 0x217A7E}, /* East Asian ideograph */ - {"\xB8", 0, 0x217B3A}, /* East Asian ideograph */ - {"\xB5", 0, 0x217B3D}, /* East Asian ideograph */ - {"\xAC", 0, 0x217B41}, /* East Asian ideograph */ - {"\x84", 0, 0x273A28}, /* East Asian ideograph */ - {"\xB4", 0, 0x273A41}, /* East Asian ideograph */ - {"\x87", 0, 0x273A44}, /* East Asian ideograph */ - {"\x85", 0, 0x277B3C}, /* East Asian ideograph */ - {"\xB2", 0, 0x277C24}, /* East Asian ideograph */ - {"\x86", 0, 0x277D2B}, /* East Asian ideograph */ - {"\x88", 0, 0x277D74}, /* East Asian ideograph */ - {"\xB1", 0, 0x2D397B}, /* East Asian ideograph */ - {"\xBF", 0, 0x2D3A26}, /* East Asian ideograph */ - {"\x9A", 0, 0x4B3666}, /* East Asian ideograph */ - {"\xAF", 0, 0x4B397B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page54 = { - marc8r_31page54_flat, 0 -}; -/* PAGE 53 */ -struct yaz_iconv_trie_flat marc8r_31page53_flat[] = { - {"\x91", 0, 0x21395B}, /* East Asian ideograph */ - {"\x86", 0, 0x21395D}, /* East Asian ideograph */ - {"\x90", 0, 0x21395E}, /* East Asian ideograph */ - {"\x97", 0, 0x21395F}, /* East Asian ideograph */ - {"\x92", 0, 0x213961}, /* East Asian ideograph */ - {"\x93", 0, 0x213962}, /* East Asian ideograph */ - {"\x8A", 0, 0x213963}, /* East Asian ideograph */ - {"\x8B", 0, 0x213965}, /* East Asian ideograph */ - {"\x94", 0, 0x213966}, /* East Asian ideograph */ - {"\xA3", 0, 0x213967}, /* East Asian ideograph */ - {"\xBF", 0, 0x213969}, /* East Asian ideograph */ - {"\x98", 0, 0x21396A}, /* East Asian ideograph */ - {"\xA8", 0, 0x21396C}, /* East Asian ideograph */ - {"\xA5", 0, 0x21396D}, /* East Asian ideograph */ - {"\xAA", 0, 0x21396E}, /* East Asian ideograph */ - {"\xBB", 0, 0x213970}, /* East Asian ideograph */ - {"\xA6", 0, 0x213971}, /* East Asian ideograph */ - {"\x9A", 0, 0x213972}, /* East Asian ideograph */ - {"\xAC", 0, 0x213978}, /* East Asian ideograph */ - {"\x85", 0, 0x217A24}, /* East Asian ideograph */ - {"\x8F", 0, 0x217A28}, /* East Asian ideograph */ - {"\x81", 0, 0x217A3E}, /* East Asian ideograph */ - {"\xB9", 0, 0x217A43}, /* East Asian ideograph */ - {"\xB8", 0, 0x217A44}, /* East Asian ideograph */ - {"\xAE", 0, 0x217A4F}, /* East Asian ideograph */ - {"\xB1", 0, 0x217A50}, /* East Asian ideograph */ - {"\x9E", 0, 0x217A52}, /* East Asian ideograph */ - {"\xBD", 0, 0x217A56}, /* East Asian ideograph */ - {"\xB6", 0, 0x217A5D}, /* East Asian ideograph */ - {"\x9D", 0, 0x217A5E}, /* East Asian ideograph */ - {"\xBA", 0, 0x217A5F}, /* East Asian ideograph */ - {"\xA4", 0, 0x217A61}, /* East Asian ideograph */ - {"\x9C", 0, 0x275624}, /* East Asian ideograph */ - {"\x99", 0, 0x2D3956}, /* East Asian ideograph */ - {"\x89", 0, 0x333963}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page53 = { - marc8r_31page53_flat, 0 -}; -/* PAGE 52 */ -struct yaz_iconv_trie_flat marc8r_31page52_flat[] = { - {"\x84", 0, 0x213945}, /* East Asian ideograph */ - {"\x83", 0, 0x213946}, /* East Asian ideograph */ - {"\x82", 0, 0x21394A}, /* East Asian ideograph */ - {"\x81", 0, 0x21394B}, /* East Asian ideograph */ - {"\xA8", 0, 0x21394C}, /* East Asian ideograph */ - {"\x92", 0, 0x21394D}, /* East Asian ideograph */ - {"\xA4", 0, 0x21394F}, /* East Asian ideograph */ - {"\xA3", 0, 0x213950}, /* East Asian ideograph */ - {"\x93", 0, 0x213951}, /* East Asian ideograph */ - {"\x9E", 0, 0x213952}, /* East Asian ideograph */ - {"\x9D", 0, 0x213953}, /* East Asian ideograph */ - {"\x99", 0, 0x213954}, /* East Asian ideograph */ - {"\xA5", 0, 0x213955}, /* East Asian ideograph */ - {"\x8A", 0, 0x213956}, /* East Asian ideograph */ - {"\x96", 0, 0x213957}, /* East Asian ideograph */ - {"\xBE", 0, 0x213958}, /* East Asian ideograph */ - {"\xBB", 0, 0x213959}, /* East Asian ideograph */ - {"\xAE", 0, 0x21395A}, /* East Asian ideograph */ - {"\xB9", 0, 0x21395C}, /* East Asian ideograph */ - {"\xAF", 0, 0x213960}, /* East Asian ideograph */ - {"\xA7", 0, 0x217969}, /* East Asian ideograph */ - {"\x98", 0, 0x21796B}, /* East Asian ideograph */ - {"\x9A", 0, 0x21796F}, /* East Asian ideograph */ - {"\xA0", 0, 0x217971}, /* East Asian ideograph */ - {"\x97", 0, 0x21797C}, /* East Asian ideograph */ - {"\x90", 0, 0x217A21}, /* East Asian ideograph */ - {"\xB5", 0, 0x217A25}, /* East Asian ideograph */ - {"\xBA", 0, 0x217A2A}, /* East Asian ideograph */ - {"\xB8", 0, 0x217A2C}, /* East Asian ideograph */ - {"\xB2", 0, 0x217A35}, /* East Asian ideograph */ - {"\xB7", 0, 0x217A3A}, /* East Asian ideograph */ - {"\x86", 0, 0x273953}, /* East Asian ideograph */ - {"\x87", 0, 0x273A27}, /* East Asian ideograph */ - {"\x88", 0, 0x273A36}, /* East Asian ideograph */ - {"\xAA", 0, 0x273A3B}, /* East Asian ideograph */ - {"\xA9", 0, 0x273A45}, /* East Asian ideograph */ - {"\xAB", 0, 0x277C36}, /* East Asian ideograph */ - {"\xAC", 0, 0x2D394D}, /* East Asian ideograph */ - {"\x8D", 0, 0x2D7A44}, /* East Asian ideograph */ - {"\xB3", 0, 0x393944}, /* East Asian ideograph */ - {"\x9B", 0, 0x69562C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page52 = { - marc8r_31page52_flat, 0 -}; -/* PAGE 51 */ -struct yaz_iconv_trie_flat marc8r_31page51_flat[] = { - {"\x94", 0, 0x21392F}, /* East Asian ideograph */ - {"\x89", 0, 0x213930}, /* East Asian ideograph */ - {"\x88", 0, 0x213931}, /* East Asian ideograph */ - {"\x87", 0, 0x213932}, /* East Asian ideograph */ - {"\x84", 0, 0x213933}, /* East Asian ideograph */ - {"\x95", 0, 0x213934}, /* East Asian ideograph */ - {"\x91", 0, 0x213935}, /* East Asian ideograph */ - {"\x8E", 0, 0x213936}, /* East Asian ideograph */ - {"\x8F", 0, 0x213937}, /* East Asian ideograph */ - {"\x90", 0, 0x213938}, /* East Asian ideograph */ - {"\x97", 0, 0x213939}, /* East Asian ideograph */ - {"\x98", 0, 0x21393A}, /* East Asian ideograph */ - {"\x9A", 0, 0x21393B}, /* East Asian ideograph */ - {"\xA0", 0, 0x21393C}, /* East Asian ideograph */ - {"\xA2", 0, 0x21393D}, /* East Asian ideograph */ - {"\xA7", 0, 0x21393E}, /* East Asian ideograph */ - {"\xA9", 0, 0x21393F}, /* East Asian ideograph */ - {"\xAA", 0, 0x213940}, /* East Asian ideograph */ - {"\xAE", 0, 0x213941}, /* East Asian ideograph */ - {"\xB3", 0, 0x213942}, /* East Asian ideograph */ - {"\xB4", 0, 0x213943}, /* East Asian ideograph */ - {"\xB6", 0, 0x213944}, /* East Asian ideograph */ - {"\xB8", 0, 0x213947}, /* East Asian ideograph */ - {"\xBD", 0, 0x213948}, /* East Asian ideograph */ - {"\xB9", 0, 0x213949}, /* East Asian ideograph */ - {"\x80", 0, 0x217933}, /* East Asian ideograph */ - {"\x8D", 0, 0x217938}, /* East Asian ideograph */ - {"\x93", 0, 0x217943}, /* East Asian ideograph */ - {"\x9C", 0, 0x21794B}, /* East Asian ideograph */ - {"\xA1", 0, 0x21794F}, /* East Asian ideograph */ - {"\xAC", 0, 0x217954}, /* East Asian ideograph */ - {"\xAD", 0, 0x217955}, /* East Asian ideograph */ - {"\xBC", 0, 0x217965}, /* East Asian ideograph */ - {"\x81", 0, 0x27393F}, /* East Asian ideograph */ - {"\x8B", 0, 0x273941}, /* East Asian ideograph */ - {"\x96", 0, 0x277954}, /* East Asian ideograph */ - {"\x82", 0, 0x4B3938}, /* East Asian ideograph */ - {"\xA5", 0, 0x4B393E}, /* East Asian ideograph */ - {"\xA8", 0, 0x4B7954}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page51 = { - marc8r_31page51_flat, 0 -}; -/* PAGE 50 */ -struct yaz_iconv_trie_flat marc8r_31page50_flat[] = { - {"\x8F", 0, 0x213878}, /* East Asian ideograph */ - {"\x94", 0, 0x213879}, /* East Asian ideograph */ - {"\x95", 0, 0x21387A}, /* East Asian ideograph */ - {"\x96", 0, 0x21387B}, /* East Asian ideograph */ - {"\x99", 0, 0x21387C}, /* East Asian ideograph */ - {"\x9A", 0, 0x21387D}, /* East Asian ideograph */ - {"\x9C", 0, 0x21387E}, /* East Asian ideograph */ - {"\xA0", 0, 0x213921}, /* East Asian ideograph */ - {"\xA4", 0, 0x213922}, /* East Asian ideograph */ - {"\xA5", 0, 0x213923}, /* East Asian ideograph */ - {"\xA2", 0, 0x213924}, /* East Asian ideograph */ - {"\xA7", 0, 0x213925}, /* East Asian ideograph */ - {"\xAA", 0, 0x213926}, /* East Asian ideograph */ - {"\xAB", 0, 0x213927}, /* East Asian ideograph */ - {"\xA9", 0, 0x213928}, /* East Asian ideograph */ - {"\xAD", 0, 0x213929}, /* East Asian ideograph */ - {"\xAE", 0, 0x21392A}, /* East Asian ideograph */ - {"\xB1", 0, 0x21392B}, /* East Asian ideograph */ - {"\xB7", 0, 0x21392C}, /* East Asian ideograph */ - {"\xBE", 0, 0x21392E}, /* East Asian ideograph */ - {"\x82", 0, 0x217870}, /* East Asian ideograph */ - {"\x86", 0, 0x217873}, /* East Asian ideograph */ - {"\x90", 0, 0x21787A}, /* East Asian ideograph */ - {"\xAC", 0, 0x217928}, /* East Asian ideograph */ - {"\xAF", 0, 0x21792B}, /* East Asian ideograph */ - {"\xBC", 0, 0x217930}, /* East Asian ideograph */ - {"\x91", 0, 0x22545C}, /* East Asian ideograph */ - {"\x87", 0, 0x273240}, /* East Asian ideograph */ - {"\xB9", 0, 0x27392E}, /* East Asian ideograph */ - {"\xBA", 0, 0x273940}, /* East Asian ideograph */ - {"\x8D", 0, 0x273D6F}, /* East Asian ideograph */ - {"\x84", 0, 0x275647}, /* East Asian ideograph */ - {"\xB8", 0, 0x275861}, /* East Asian ideograph */ - {"\xB4", 0, 0x276046}, /* East Asian ideograph */ - {"\x98", 0, 0x2D346A}, /* East Asian ideograph */ - {"\x80", 0, 0x2D3877}, /* East Asian ideograph */ - {"\x9F", 0, 0x2D3921}, /* East Asian ideograph */ - {"\xB2", 0, 0x334369}, /* East Asian ideograph */ - {"\x9B", 0, 0x4B387D}, /* East Asian ideograph */ - {"\x89", 0, 0x4B594B}, /* East Asian ideograph */ - {"\x8A", 0, 0x4B7874}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page50 = { - marc8r_31page50_flat, 0 -}; -/* PAGE 49 */ -struct yaz_iconv_trie_flat marc8r_31page49_flat[] = { - {"\x87", 0, 0x213864}, /* East Asian ideograph (variant of EACC 4B3864) */ - {"\x85", 0, 0x213865}, /* East Asian ideograph */ - {"\x81", 0, 0x213866}, /* East Asian ideograph */ - {"\x95", 0, 0x213868}, /* East Asian ideograph */ - {"\x93", 0, 0x213869}, /* East Asian ideograph */ - {"\x91", 0, 0x21386A}, /* East Asian ideograph */ - {"\x99", 0, 0x21386B}, /* East Asian ideograph */ - {"\x98", 0, 0x21386C}, /* East Asian ideograph */ - {"\x9F", 0, 0x21386D}, /* East Asian ideograph */ - {"\x9E", 0, 0x21386E}, /* East Asian ideograph */ - {"\xA2", 0, 0x21386F}, /* East Asian ideograph */ - {"\xA4", 0, 0x213870}, /* East Asian ideograph */ - {"\xA9", 0, 0x213871}, /* East Asian ideograph */ - {"\xAB", 0, 0x213872}, /* East Asian ideograph */ - {"\xAC", 0, 0x213873}, /* East Asian ideograph */ - {"\xAF", 0, 0x213874}, /* East Asian ideograph */ - {"\xBA", 0, 0x213876}, /* East Asian ideograph */ - {"\xBD", 0, 0x213877}, /* East Asian ideograph */ - {"\x88", 0, 0x21783A}, /* East Asian ideograph */ - {"\x86", 0, 0x21784B}, /* East Asian ideograph */ - {"\x96", 0, 0x217850}, /* East Asian ideograph */ - {"\x92", 0, 0x217854}, /* East Asian ideograph */ - {"\x8E", 0, 0x217856}, /* East Asian ideograph */ - {"\xA0", 0, 0x21785A}, /* East Asian ideograph */ - {"\x9A", 0, 0x21785E}, /* East Asian ideograph */ - {"\xBC", 0, 0x21786C}, /* East Asian ideograph */ - {"\xAE", 0, 0x273874}, /* East Asian ideograph */ - {"\xB6", 0, 0x273876}, /* East Asian ideograph */ - {"\xB3", 0, 0x27463C}, /* East Asian ideograph */ - {"\xB0", 0, 0x275274}, /* East Asian ideograph */ - {"\x8A", 0, 0x2D386E}, /* East Asian ideograph */ - {"\xB7", 0, 0x2D3876}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D3A2F}, /* East Asian ideograph */ - {"\xB9", 0, 0x333021}, /* East Asian ideograph */ - {"\x9C", 0, 0x347431}, /* East Asian ideograph */ - {"\xB2", 0, 0x395A2F}, /* East Asian ideograph */ - {"\xB1", 0, 0x4B3021}, /* East Asian ideograph */ - {"\x87", 0, 0x4B3864}, /* East Asian ideograph */ - {"\x8C", 0, 0x4B3870}, /* East Asian ideograph */ - {"\x97", 0, 0x69545C}, /* East Asian ideograph */ - {"\xA5", 0, 0x69545F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page49 = { - marc8r_31page49_flat, 0 -}; -/* PAGE 48 */ -struct yaz_iconv_trie_flat marc8r_31page48_flat[] = { - {"\x83", 0, 0x213857}, /* East Asian ideograph */ - {"\x8A", 0, 0x21385A}, /* East Asian ideograph */ - {"\x85", 0, 0x21385C}, /* East Asian ideograph */ - {"\x93", 0, 0x21385D}, /* East Asian ideograph */ - {"\x9E", 0, 0x21385E}, /* East Asian ideograph */ - {"\x80", 0, 0x21385F}, /* East Asian ideograph */ - {"\xB3", 0, 0x213860}, /* East Asian ideograph */ - {"\x9C", 0, 0x213861}, /* East Asian ideograph */ - {"\xAE", 0, 0x213862}, /* East Asian ideograph */ - {"\x9F", 0, 0x213863}, /* East Asian ideograph */ - {"\xBE", 0, 0x213867}, /* East Asian ideograph */ - {"\xA8", 0, 0x216267}, /* East Asian ideograph */ - {"\x9A", 0, 0x217755}, /* East Asian ideograph */ - {"\x92", 0, 0x217758}, /* East Asian ideograph */ - {"\x8E", 0, 0x21775A}, /* East Asian ideograph */ - {"\x89", 0, 0x21775C}, /* East Asian ideograph */ - {"\x9B", 0, 0x217760}, /* East Asian ideograph */ - {"\x88", 0, 0x217763}, /* East Asian ideograph */ - {"\x90", 0, 0x217765}, /* East Asian ideograph */ - {"\x98", 0, 0x217768}, /* East Asian ideograph */ - {"\x81", 0, 0x217770}, /* East Asian ideograph */ - {"\xA9", 0, 0x21777B}, /* East Asian ideograph */ - {"\xA1", 0, 0x21777E}, /* East Asian ideograph */ - {"\xB1", 0, 0x217824}, /* East Asian ideograph */ - {"\xAD", 0, 0x21782B}, /* East Asian ideograph */ - {"\xA0", 0, 0x21782E}, /* East Asian ideograph */ - {"\xA3", 0, 0x217830}, /* East Asian ideograph */ - {"\xA6", 0, 0x217832}, /* East Asian ideograph */ - {"\xBC", 0, 0x217841}, /* East Asian ideograph */ - {"\xBF", 0, 0x217849}, /* East Asian ideograph */ - {"\xBA", 0, 0x21784C}, /* East Asian ideograph */ - {"\x99", 0, 0x274A46}, /* East Asian ideograph */ - {"\x96", 0, 0x2D3854}, /* East Asian ideograph */ - {"\xAB", 0, 0x2D4550}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D4A46}, /* East Asian ideograph */ - {"\x9D", 0, 0x346622}, /* East Asian ideograph */ - {"\x97", 0, 0x4B385E}, /* East Asian ideograph */ - {"\xB9", 0, 0x695451}, /* East Asian ideograph */ - {"\xB8", 0, 0x695457}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page48 = { - marc8r_31page48_flat, 0 -}; -/* PAGE 47 */ -struct yaz_iconv_trie_flat marc8r_31page47_flat[] = { - {"\x9E", 0, 0x21384C}, /* East Asian ideograph */ - {"\x97", 0, 0x21384D}, /* East Asian ideograph */ - {"\x98", 0, 0x21384E}, /* East Asian ideograph */ - {"\x91", 0, 0x21384F}, /* East Asian ideograph */ - {"\xAB", 0, 0x213850}, /* East Asian ideograph */ - {"\x8C", 0, 0x213851}, /* East Asian ideograph */ - {"\x9A", 0, 0x213852}, /* East Asian ideograph */ - {"\xAD", 0, 0x213853}, /* East Asian ideograph */ - {"\x94", 0, 0x213854}, /* East Asian ideograph */ - {"\xA2", 0, 0x213855}, /* East Asian ideograph */ - {"\x8A", 0, 0x213856}, /* East Asian ideograph */ - {"\xBE", 0, 0x213858}, /* East Asian ideograph */ - {"\xB5", 0, 0x213859}, /* East Asian ideograph */ - {"\xB9", 0, 0x21385B}, /* East Asian ideograph */ - {"\x87", 0, 0x21765F}, /* East Asian ideograph */ - {"\x84", 0, 0x21767D}, /* East Asian ideograph */ - {"\x88", 0, 0x217721}, /* East Asian ideograph */ - {"\x8E", 0, 0x217730}, /* East Asian ideograph */ - {"\x9D", 0, 0x217733}, /* East Asian ideograph */ - {"\x99", 0, 0x217735}, /* East Asian ideograph */ - {"\x8B", 0, 0x217737}, /* East Asian ideograph */ - {"\xA5", 0, 0x21773D}, /* East Asian ideograph */ - {"\xAC", 0, 0x217740}, /* East Asian ideograph */ - {"\x92", 0, 0x217742}, /* East Asian ideograph */ - {"\xA4", 0, 0x217745}, /* East Asian ideograph */ - {"\x93", 0, 0x217747}, /* East Asian ideograph */ - {"\x8F", 0, 0x217748}, /* East Asian ideograph */ - {"\x8D", 0, 0x21774D}, /* East Asian ideograph */ - {"\x96", 0, 0x21774E}, /* East Asian ideograph */ - {"\x80", 0, 0x21775F}, /* East Asian ideograph */ - {"\xBC", 0, 0x217761}, /* East Asian ideograph */ - {"\xBD", 0, 0x21776B}, /* East Asian ideograph */ - {"\xBF", 0, 0x21776F}, /* East Asian ideograph */ - {"\xB2", 0, 0x2D384A}, /* East Asian ideograph */ - {"\x9F", 0, 0x2D5550}, /* East Asian ideograph */ - {"\xA9", 0, 0x2D6251}, /* East Asian ideograph */ - {"\xA1", 0, 0x4B3850}, /* East Asian ideograph (variant of EACC 213850) */ - {"\xAD", 0, 0x4B3853}, /* East Asian ideograph */ - {"\x81", 0, 0x4B386C}, /* East Asian ideograph */ - {"\xB0", 0, 0x69544B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page47 = { - marc8r_31page47_flat, 0 -}; -/* PAGE 46 */ -struct yaz_iconv_trie_flat marc8r_31page46_flat[] = { - {"\x8A", 0, 0x21383E}, /* East Asian ideograph */ - {"\x85", 0, 0x21383F}, /* East Asian ideograph */ - {"\x82", 0, 0x213840}, /* East Asian ideograph */ - {"\x86", 0, 0x213841}, /* East Asian ideograph */ - {"\xB1", 0, 0x213844}, /* East Asian ideograph */ - {"\xAF", 0, 0x213845}, /* East Asian ideograph */ - {"\xB5", 0, 0x213846}, /* East Asian ideograph */ - {"\xAA", 0, 0x213847}, /* East Asian ideograph */ - {"\xB0", 0, 0x213848}, /* East Asian ideograph */ - {"\xA4", 0, 0x213849}, /* East Asian ideograph */ - {"\xB4", 0, 0x21384A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21384B}, /* East Asian ideograph */ - {"\x89", 0, 0x21756A}, /* East Asian ideograph */ - {"\x83", 0, 0x21762B}, /* East Asian ideograph */ - {"\x80", 0, 0x217633}, /* East Asian ideograph */ - {"\x87", 0, 0x217636}, /* East Asian ideograph */ - {"\x8E", 0, 0x217639}, /* East Asian ideograph */ - {"\x8F", 0, 0x21763B}, /* East Asian ideograph */ - {"\x90", 0, 0x21763E}, /* East Asian ideograph */ - {"\x8D", 0, 0x217640}, /* East Asian ideograph */ - {"\x81", 0, 0x217648}, /* East Asian ideograph */ - {"\x92", 0, 0x217649}, /* East Asian ideograph */ - {"\x8C", 0, 0x217650}, /* East Asian ideograph */ - {"\x93", 0, 0x217651}, /* East Asian ideograph */ - {"\x8B", 0, 0x217656}, /* East Asian ideograph */ - {"\x84", 0, 0x217659}, /* East Asian ideograph */ - {"\x9B", 0, 0x217667}, /* East Asian ideograph */ - {"\x99", 0, 0x217669}, /* East Asian ideograph */ - {"\xB3", 0, 0x21766A}, /* East Asian ideograph */ - {"\x9E", 0, 0x21766C}, /* East Asian ideograph */ - {"\xBF", 0, 0x21766D}, /* East Asian ideograph */ - {"\xA7", 0, 0x217671}, /* East Asian ideograph */ - {"\xA8", 0, 0x217676}, /* East Asian ideograph */ - {"\xAE", 0, 0x217678}, /* East Asian ideograph */ - {"\x9D", 0, 0x21767A}, /* East Asian ideograph */ - {"\x98", 0, 0x217723}, /* East Asian ideograph */ - {"\xAD", 0, 0x217729}, /* East Asian ideograph */ - {"\xA0", 0, 0x21772B}, /* East Asian ideograph */ - {"\xBD", 0, 0x217749}, /* East Asian ideograph */ - {"\x91", 0, 0x27385B}, /* East Asian ideograph */ - {"\x95", 0, 0x273862}, /* East Asian ideograph */ - {"\xBA", 0, 0x2D4C2C}, /* East Asian ideograph */ - {"\xA6", 0, 0x2D5F2C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page46 = { - marc8r_31page46_flat, 0 -}; -/* PAGE 45 */ -struct yaz_iconv_trie_flat marc8r_31page45_flat[] = { - {"\x94", 0, 0x213835}, /* East Asian ideograph */ - {"\x82", 0, 0x213836}, /* East Asian ideograph */ - {"\x8E", 0, 0x213837}, /* East Asian ideograph */ - {"\x8B", 0, 0x213838}, /* East Asian ideograph */ - {"\x83", 0, 0x213839}, /* East Asian ideograph */ - {"\xB9", 0, 0x21383A}, /* East Asian ideograph */ - {"\xB7", 0, 0x21383B}, /* East Asian ideograph */ - {"\xBA", 0, 0x21383C}, /* East Asian ideograph */ - {"\x9F", 0, 0x21383D}, /* East Asian ideograph */ - {"\xA4", 0, 0x213842}, /* East Asian ideograph */ - {"\xA0", 0, 0x213843}, /* East Asian ideograph */ - {"\x87", 0, 0x217560}, /* East Asian ideograph */ - {"\x9B", 0, 0x217571}, /* East Asian ideograph */ - {"\x95", 0, 0x217573}, /* East Asian ideograph */ - {"\x92", 0, 0x217577}, /* East Asian ideograph */ - {"\x86", 0, 0x21757E}, /* East Asian ideograph */ - {"\x84", 0, 0x217622}, /* East Asian ideograph */ - {"\xA3", 0, 0x217629}, /* East Asian ideograph */ - {"\xBB", 0, 0x21762A}, /* East Asian ideograph */ - {"\xB6", 0, 0x21762C}, /* East Asian ideograph */ - {"\xA6", 0, 0x21762D}, /* East Asian ideograph */ - {"\xAD", 0, 0x217631}, /* East Asian ideograph */ - {"\xAC", 0, 0x217635}, /* East Asian ideograph */ - {"\xB4", 0, 0x21763D}, /* East Asian ideograph */ - {"\xAF", 0, 0x217643}, /* East Asian ideograph */ - {"\xBD", 0, 0x21764D}, /* East Asian ideograph */ - {"\xB8", 0, 0x21764E}, /* East Asian ideograph */ - {"\xB0", 0, 0x217652}, /* East Asian ideograph */ - {"\xB3", 0, 0x217658}, /* East Asian ideograph */ - {"\x8F", 0, 0x21765A}, /* East Asian ideograph */ - {"\x9D", 0, 0x21765B}, /* East Asian ideograph */ - {"\xB5", 0, 0x217726}, /* East Asian ideograph */ - {"\x9A", 0, 0x27767A}, /* East Asian ideograph */ - {"\x98", 0, 0x277742}, /* East Asian ideograph */ - {"\x99", 0, 0x277745}, /* East Asian ideograph */ - {"\xBC", 0, 0x2D3C21}, /* East Asian ideograph */ - {"\x9C", 0, 0x335D3B}, /* East Asian ideograph */ - {"\x80", 0, 0x4B382E}, /* East Asian ideograph */ - {"\x93", 0, 0x4B7577}, /* East Asian ideograph */ - {"\xB4", 0, 0x4B763D}, /* East Asian ideograph (variant of EACC 21763D) */ - {"\x96", 0, 0x695442}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page45 = { - marc8r_31page45_flat, 0 -}; -/* PAGE 44 */ -struct yaz_iconv_trie_flat marc8r_31page44_flat[] = { - {"\x83", 0, 0x213827}, /* East Asian ideograph */ - {"\x82", 0, 0x21382E}, /* East Asian ideograph */ - {"\xA0", 0, 0x213830}, /* East Asian ideograph */ - {"\x8B", 0, 0x213831}, /* East Asian ideograph */ - {"\xA3", 0, 0x213832}, /* East Asian ideograph */ - {"\xAE", 0, 0x213833}, /* East Asian ideograph */ - {"\xA2", 0, 0x213834}, /* East Asian ideograph */ - {"\x8A", 0, 0x217475}, /* East Asian ideograph */ - {"\x89", 0, 0x21752E}, /* East Asian ideograph */ - {"\x88", 0, 0x217533}, /* East Asian ideograph */ - {"\x9F", 0, 0x217538}, /* East Asian ideograph */ - {"\x90", 0, 0x217539}, /* East Asian ideograph */ - {"\x93", 0, 0x21753A}, /* East Asian ideograph */ - {"\x9E", 0, 0x21753F}, /* East Asian ideograph */ - {"\xB5", 0, 0x217540}, /* East Asian ideograph */ - {"\x9A", 0, 0x217543}, /* East Asian ideograph */ - {"\x94", 0, 0x217545}, /* East Asian ideograph */ - {"\xA4", 0, 0x217547}, /* East Asian ideograph */ - {"\x99", 0, 0x217548}, /* East Asian ideograph */ - {"\x8C", 0, 0x217549}, /* East Asian ideograph */ - {"\x97", 0, 0x21754B}, /* East Asian ideograph */ - {"\x9D", 0, 0x21754E}, /* East Asian ideograph */ - {"\x9C", 0, 0x217552}, /* East Asian ideograph */ - {"\xA7", 0, 0x217554}, /* East Asian ideograph */ - {"\xA1", 0, 0x217557}, /* East Asian ideograph */ - {"\xA1", 0, 0x217559}, /* East Asian ideograph (Unicode CJK Extension B) */ - {"\x95", 0, 0x21755B}, /* East Asian ideograph */ - {"\xB8", 0, 0x21755F}, /* East Asian ideograph */ - {"\xBE", 0, 0x21756C}, /* East Asian ideograph */ - {"\xA9", 0, 0x27383E}, /* East Asian ideograph */ - {"\xAB", 0, 0x27385A}, /* East Asian ideograph */ - {"\xA6", 0, 0x273867}, /* East Asian ideograph */ - {"\x92", 0, 0x27386C}, /* East Asian ideograph */ - {"\x84", 0, 0x27386D}, /* East Asian ideograph */ - {"\xAD", 0, 0x277638}, /* East Asian ideograph */ - {"\xB2", 0, 0x277748}, /* East Asian ideograph */ - {"\x85", 0, 0x27785A}, /* East Asian ideograph */ - {"\x86", 0, 0x27785E}, /* East Asian ideograph */ - {"\x9B", 0, 0x2D7552}, /* East Asian ideograph */ - {"\xBB", 0, 0x4B3871}, /* East Asian ideograph */ - {"\xB3", 0, 0x695438}, /* East Asian ideograph */ - {"\xAA", 0, 0x69543A}, /* East Asian ideograph */ - {"\xB0", 0, 0x69543B}, /* East Asian ideograph */ - {"\xB4", 0, 0x705B71}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page44 = { - marc8r_31page44_flat, 0 -}; -/* PAGE 43 */ -struct yaz_iconv_trie_flat marc8r_31page43_flat[] = { - {"\x91", 0, 0x21377C}, /* East Asian ideograph */ - {"\x8A", 0, 0x21377D}, /* East Asian ideograph */ - {"\x80", 0, 0x213821}, /* East Asian ideograph */ - {"\x87", 0, 0x213822}, /* East Asian ideograph */ - {"\x8D", 0, 0x213823}, /* East Asian ideograph */ - {"\x8E", 0, 0x213825}, /* East Asian ideograph */ - {"\xAA", 0, 0x213828}, /* East Asian ideograph */ - {"\xA9", 0, 0x213829}, /* East Asian ideograph */ - {"\xB7", 0, 0x21382A}, /* East Asian ideograph */ - {"\xA1", 0, 0x21382B}, /* East Asian ideograph */ - {"\xA4", 0, 0x21382C}, /* East Asian ideograph */ - {"\xA6", 0, 0x21382D}, /* East Asian ideograph */ - {"\xBC", 0, 0x21382F}, /* East Asian ideograph */ - {"\x89", 0, 0x217463}, /* East Asian ideograph */ - {"\x85", 0, 0x217465}, /* East Asian ideograph */ - {"\x8B", 0, 0x217468}, /* East Asian ideograph */ - {"\x8C", 0, 0x217469}, /* East Asian ideograph */ - {"\xA8", 0, 0x217470}, /* East Asian ideograph */ - {"\xAD", 0, 0x217477}, /* East Asian ideograph */ - {"\xB4", 0, 0x217479}, /* East Asian ideograph */ - {"\xA7", 0, 0x21747A}, /* East Asian ideograph */ - {"\xB0", 0, 0x217526}, /* East Asian ideograph */ - {"\xB1", 0, 0x217528}, /* East Asian ideograph */ - {"\xAE", 0, 0x21752A}, /* East Asian ideograph */ - {"\xB6", 0, 0x21752D}, /* East Asian ideograph */ - {"\xBF", 0, 0x217530}, /* East Asian ideograph */ - {"\xB5", 0, 0x217531}, /* East Asian ideograph */ - {"\xBB", 0, 0x217532}, /* East Asian ideograph */ - {"\xB3", 0, 0x217535}, /* East Asian ideograph */ - {"\x9E", 0, 0x273855}, /* East Asian ideograph */ - {"\x97", 0, 0x273856}, /* East Asian ideograph */ - {"\x9F", 0, 0x273860}, /* East Asian ideograph */ - {"\xA0", 0, 0x273861}, /* East Asian ideograph */ - {"\x9B", 0, 0x273864}, /* East Asian ideograph */ - {"\x8F", 0, 0x27386E}, /* East Asian ideograph */ - {"\x9C", 0, 0x27386F}, /* East Asian ideograph */ - {"\x9D", 0, 0x273871}, /* East Asian ideograph */ - {"\x90", 0, 0x273C77}, /* East Asian ideograph */ - {"\x9B", 0, 0x287431}, /* East Asian ideograph (duplicate simplified) */ - {"\x9A", 0, 0x2D383F}, /* East Asian ideograph */ - {"\xAB", 0, 0x2D3C70}, /* East Asian ideograph */ - {"\xAF", 0, 0x33386E}, /* East Asian ideograph */ - {"\x82", 0, 0x395E71}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page43 = { - marc8r_31page43_flat, 0 -}; -/* PAGE 42 */ -struct yaz_iconv_trie_flat marc8r_31page42_flat[] = { - {"\x83", 0, 0x21376D}, /* East Asian ideograph */ - {"\x88", 0, 0x21376E}, /* East Asian ideograph */ - {"\x8B", 0, 0x21376F}, /* East Asian ideograph */ - {"\x8D", 0, 0x213770}, /* East Asian ideograph */ - {"\x92", 0, 0x213771}, /* East Asian ideograph */ - {"\x93", 0, 0x213772}, /* East Asian ideograph */ - {"\x98", 0, 0x213773}, /* East Asian ideograph */ - {"\x96", 0, 0x213774}, /* East Asian ideograph */ - {"\x9F", 0, 0x213775}, /* East Asian ideograph */ - {"\xAD", 0, 0x213777}, /* East Asian ideograph */ - {"\xAF", 0, 0x213778}, /* East Asian ideograph */ - {"\xB0", 0, 0x213779}, /* East Asian ideograph */ - {"\xA8", 0, 0x21377A}, /* East Asian ideograph */ - {"\xB3", 0, 0x21377B}, /* East Asian ideograph */ - {"\xBE", 0, 0x213824}, /* East Asian ideograph */ - {"\x85", 0, 0x217427}, /* East Asian ideograph */ - {"\x84", 0, 0x217428}, /* East Asian ideograph */ - {"\x82", 0, 0x217429}, /* East Asian ideograph */ - {"\x8A", 0, 0x21742C}, /* East Asian ideograph */ - {"\x89", 0, 0x21742D}, /* East Asian ideograph */ - {"\x87", 0, 0x21742E}, /* East Asian ideograph */ - {"\x8C", 0, 0x217430}, /* East Asian ideograph */ - {"\x95", 0, 0x217431}, /* East Asian ideograph */ - {"\x94", 0, 0x217432}, /* East Asian ideograph */ - {"\x9A", 0, 0x217435}, /* East Asian ideograph */ - {"\x9B", 0, 0x217436}, /* East Asian ideograph */ - {"\x9C", 0, 0x217437}, /* East Asian ideograph */ - {"\x9D", 0, 0x217439}, /* East Asian ideograph */ - {"\x9E", 0, 0x21743A}, /* East Asian ideograph */ - {"\xA4", 0, 0x217441}, /* East Asian ideograph */ - {"\xAE", 0, 0x217442}, /* East Asian ideograph */ - {"\xA9", 0, 0x217443}, /* East Asian ideograph */ - {"\xB8", 0, 0x217448}, /* East Asian ideograph */ - {"\xAA", 0, 0x21744C}, /* East Asian ideograph */ - {"\xBF", 0, 0x21746A}, /* East Asian ideograph */ - {"\x86", 0, 0x273772}, /* East Asian ideograph */ - {"\xBA", 0, 0x27384A}, /* East Asian ideograph */ - {"\xB9", 0, 0x27386B}, /* East Asian ideograph */ - {"\xA3", 0, 0x27526F}, /* East Asian ideograph */ - {"\x80", 0, 0x2D376F}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D3830}, /* East Asian ideograph */ - {"\xAC", 0, 0x343A5B}, /* East Asian ideograph */ - {"\xA7", 0, 0x4B3869}, /* East Asian ideograph */ - {"\xA6", 0, 0x695429}, /* East Asian ideograph */ - {"\xB7", 0, 0x69542A}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page42 = { - marc8r_31page42_flat, 0 -}; -/* PAGE 41 */ -struct yaz_iconv_trie_flat marc8r_31page41_flat[] = { - {"\x80", 0, 0x21375C}, /* East Asian ideograph */ - {"\x81", 0, 0x21375D}, /* East Asian ideograph */ - {"\x82", 0, 0x21375E}, /* East Asian ideograph */ - {"\x8A", 0, 0x213760}, /* East Asian ideograph */ - {"\x89", 0, 0x213761}, /* East Asian ideograph */ - {"\x88", 0, 0x213762}, /* East Asian ideograph */ - {"\x91", 0, 0x213764}, /* East Asian ideograph */ - {"\x9B", 0, 0x213765}, /* East Asian ideograph */ - {"\x9A", 0, 0x213766}, /* East Asian ideograph */ - {"\xA0", 0, 0x213767}, /* East Asian ideograph */ - {"\x9E", 0, 0x213768}, /* East Asian ideograph */ - {"\xA4", 0, 0x213769}, /* East Asian ideograph */ - {"\xB1", 0, 0x21376B}, /* East Asian ideograph */ - {"\xBA", 0, 0x21376C}, /* East Asian ideograph */ - {"\x83", 0, 0x21735B}, /* East Asian ideograph */ - {"\x85", 0, 0x217360}, /* East Asian ideograph */ - {"\x8F", 0, 0x217362}, /* East Asian ideograph */ - {"\x8D", 0, 0x217367}, /* East Asian ideograph */ - {"\x94", 0, 0x21736A}, /* East Asian ideograph */ - {"\x97", 0, 0x21736B}, /* East Asian ideograph */ - {"\x9D", 0, 0x21736D}, /* East Asian ideograph */ - {"\xA1", 0, 0x21736F}, /* East Asian ideograph */ - {"\x9F", 0, 0x217370}, /* East Asian ideograph */ - {"\xAB", 0, 0x217375}, /* East Asian ideograph */ - {"\xAE", 0, 0x217376}, /* East Asian ideograph */ - {"\xA7", 0, 0x217377}, /* East Asian ideograph */ - {"\xBB", 0, 0x217379}, /* East Asian ideograph */ - {"\xB7", 0, 0x21737E}, /* East Asian ideograph */ - {"\xB9", 0, 0x217421}, /* East Asian ideograph */ - {"\xBF", 0, 0x217424}, /* East Asian ideograph */ - {"\xAF", 0, 0x27376F}, /* East Asian ideograph */ - {"\xB4", 0, 0x273770}, /* East Asian ideograph */ - {"\xAD", 0, 0x273771}, /* East Asian ideograph */ - {"\xA2", 0, 0x273773}, /* East Asian ideograph */ - {"\xBE", 0, 0x273774}, /* East Asian ideograph */ - {"\xB0", 0, 0x274D57}, /* East Asian ideograph */ - {"\xB5", 0, 0x27742E}, /* East Asian ideograph */ - {"\xA2", 0, 0x28702E}, /* East Asian ideograph (duplicate simplified) */ - {"\xAC", 0, 0x2D3768}, /* East Asian ideograph */ - {"\x93", 0, 0x2D7345}, /* East Asian ideograph */ - {"\xB2", 0, 0x393770}, /* East Asian ideograph */ - {"\x8C", 0, 0x39563C}, /* East Asian ideograph */ - {"\x98", 0, 0x4B3768}, /* East Asian ideograph */ - {"\xBD", 0, 0x4B376F}, /* East Asian ideograph */ - {"\xA3", 0, 0x4B3773}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B3774}, /* East Asian ideograph */ - {"\xB9", 0, 0x4B7421}, /* East Asian ideograph (variant of EACC 217421) */ - {"\x8E", 0, 0x695375}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page41 = { - marc8r_31page41_flat, 0 -}; -/* PAGE 40 */ -struct yaz_iconv_trie_flat marc8r_31page40_flat[] = { - {"\x80", 0, 0x21374E}, /* East Asian ideograph */ - {"\x8E", 0, 0x21374F}, /* East Asian ideograph */ - {"\x85", 0, 0x213750}, /* East Asian ideograph */ - {"\x87", 0, 0x213751}, /* East Asian ideograph */ - {"\x90", 0, 0x213752}, /* East Asian ideograph */ - {"\x8F", 0, 0x213753}, /* East Asian ideograph */ - {"\x95", 0, 0x213754}, /* East Asian ideograph */ - {"\xAE", 0, 0x213755}, /* East Asian ideograph (variant of EACC 453755) */ - {"\xA8", 0, 0x213756}, /* East Asian ideograph */ - {"\xB0", 0, 0x213757}, /* East Asian ideograph */ - {"\xA5", 0, 0x213758}, /* East Asian ideograph */ - {"\xB7", 0, 0x213759}, /* East Asian ideograph */ - {"\xB4", 0, 0x21375A}, /* East Asian ideograph */ - {"\xB6", 0, 0x21375B}, /* East Asian ideograph */ - {"\xBC", 0, 0x21375F}, /* East Asian ideograph */ - {"\x93", 0, 0x217325}, /* East Asian ideograph */ - {"\x8C", 0, 0x217328}, /* East Asian ideograph */ - {"\xBA", 0, 0x217332}, /* East Asian ideograph */ - {"\x86", 0, 0x217334}, /* East Asian ideograph */ - {"\x84", 0, 0x217335}, /* East Asian ideograph */ - {"\x91", 0, 0x217336}, /* East Asian ideograph */ - {"\x8A", 0, 0x217337}, /* East Asian ideograph */ - {"\x9E", 0, 0x21733E}, /* East Asian ideograph */ - {"\x9C", 0, 0x217341}, /* East Asian ideograph */ - {"\x9A", 0, 0x217342}, /* East Asian ideograph */ - {"\x99", 0, 0x217345}, /* East Asian ideograph */ - {"\xAD", 0, 0x21734B}, /* East Asian ideograph */ - {"\xA6", 0, 0x21734C}, /* East Asian ideograph */ - {"\xAC", 0, 0x21734E}, /* East Asian ideograph */ - {"\xB2", 0, 0x217353}, /* East Asian ideograph */ - {"\xB3", 0, 0x21735A}, /* East Asian ideograph */ - {"\xA3", 0, 0x27375E}, /* East Asian ideograph */ - {"\xAE", 0, 0x453755}, /* East Asian ideograph */ - {"\xA5", 0, 0x4B3758}, /* East Asian ideograph (variant of EACC 213758) */ - {"\xA0", 0, 0x4B4937}, /* East Asian ideograph */ - {"\xAF", 0, 0x4D3359}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page40 = { - marc8r_31page40_flat, 0 -}; -/* PAGE 39 */ -struct yaz_iconv_trie_flat marc8r_31page39_flat[] = { - {"\x8E", 0, 0x213734}, /* East Asian ideograph */ - {"\x97", 0, 0x213739}, /* East Asian ideograph */ - {"\x93", 0, 0x21373B}, /* East Asian ideograph */ - {"\x99", 0, 0x21373F}, /* East Asian ideograph */ - {"\xAB", 0, 0x213741}, /* East Asian ideograph */ - {"\xA4", 0, 0x213742}, /* East Asian ideograph */ - {"\xA9", 0, 0x213743}, /* East Asian ideograph */ - {"\xB8", 0, 0x213744}, /* East Asian ideograph */ - {"\xB4", 0, 0x213745}, /* East Asian ideograph */ - {"\xB9", 0, 0x213746}, /* East Asian ideograph */ - {"\xA5", 0, 0x213747}, /* East Asian ideograph */ - {"\xAA", 0, 0x213748}, /* East Asian ideograph */ - {"\xA8", 0, 0x213749}, /* East Asian ideograph */ - {"\xB1", 0, 0x21374A}, /* East Asian ideograph */ - {"\xAF", 0, 0x21374B}, /* East Asian ideograph */ - {"\xA2", 0, 0x21374C}, /* East Asian ideograph (variant of EACC 4B374C) */ - {"\xAC", 0, 0x21374D}, /* East Asian ideograph */ - {"\x82", 0, 0x217247}, /* East Asian ideograph */ - {"\x8C", 0, 0x217248}, /* East Asian ideograph */ - {"\x8B", 0, 0x21724B}, /* East Asian ideograph */ - {"\x80", 0, 0x217252}, /* East Asian ideograph */ - {"\x89", 0, 0x217257}, /* East Asian ideograph */ - {"\x81", 0, 0x217258}, /* East Asian ideograph */ - {"\x98", 0, 0x21725C}, /* East Asian ideograph */ - {"\x94", 0, 0x21725E}, /* East Asian ideograph */ - {"\x8D", 0, 0x217269}, /* East Asian ideograph */ - {"\x8F", 0, 0x21726C}, /* East Asian ideograph */ - {"\xB0", 0, 0x21726E}, /* East Asian ideograph */ - {"\x9F", 0, 0x21726F}, /* East Asian ideograph */ - {"\xBC", 0, 0x217270}, /* East Asian ideograph */ - {"\xA0", 0, 0x217272}, /* East Asian ideograph */ - {"\xB6", 0, 0x217278}, /* East Asian ideograph */ - {"\xA6", 0, 0x21727A}, /* East Asian ideograph */ - {"\xB3", 0, 0x21727B}, /* East Asian ideograph */ - {"\xAD", 0, 0x21727C}, /* East Asian ideograph */ - {"\xB2", 0, 0x21727E}, /* East Asian ideograph */ - {"\x9C", 0, 0x273754}, /* East Asian ideograph */ - {"\x90", 0, 0x2D3749}, /* East Asian ideograph */ - {"\xA8", 0, 0x4B3749}, /* East Asian ideograph (variant of EACC 213749) */ - {"\xA2", 0, 0x4B374C}, /* East Asian ideograph */ - {"\xBA", 0, 0x694838}, /* East Asian ideograph */ - {"\xBB", 0, 0x706067}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page39 = { - marc8r_31page39_flat, 0 -}; -/* PAGE 38 */ -struct yaz_iconv_trie_flat marc8r_31page38_flat[] = { - {"\x80", 0, 0x213724}, /* East Asian ideograph */ - {"\x9B", 0, 0x213725}, /* East Asian ideograph */ - {"\x96", 0, 0x213727}, /* East Asian ideograph */ - {"\x88", 0, 0x213729}, /* East Asian ideograph */ - {"\x9F", 0, 0x21372A}, /* East Asian ideograph */ - {"\x86", 0, 0x21372C}, /* East Asian ideograph (variant of EACC 4B372C) */ - {"\x89", 0, 0x21372D}, /* East Asian ideograph */ - {"\x94", 0, 0x21372E}, /* East Asian ideograph */ - {"\x8E", 0, 0x21372F}, /* East Asian ideograph */ - {"\x97", 0, 0x213730}, /* East Asian ideograph */ - {"\x8D", 0, 0x213731}, /* East Asian ideograph */ - {"\xAE", 0, 0x213732}, /* East Asian ideograph */ - {"\xAF", 0, 0x213733}, /* East Asian ideograph */ - {"\xB6", 0, 0x213735}, /* East Asian ideograph */ - {"\xB2", 0, 0x213736}, /* East Asian ideograph */ - {"\xBB", 0, 0x213737}, /* East Asian ideograph */ - {"\xB9", 0, 0x213738}, /* East Asian ideograph */ - {"\xBF", 0, 0x21373C}, /* East Asian ideograph */ - {"\xB4", 0, 0x21373D}, /* East Asian ideograph */ - {"\xB7", 0, 0x21373E}, /* East Asian ideograph */ - {"\xB0", 0, 0x213740}, /* East Asian ideograph */ - {"\x85", 0, 0x21712A}, /* East Asian ideograph */ - {"\xA7", 0, 0x21717E}, /* East Asian ideograph */ - {"\x92", 0, 0x217225}, /* East Asian ideograph */ - {"\x8F", 0, 0x217228}, /* East Asian ideograph */ - {"\x9E", 0, 0x21722E}, /* East Asian ideograph */ - {"\x8C", 0, 0x217231}, /* East Asian ideograph */ - {"\x9C", 0, 0x217234}, /* East Asian ideograph */ - {"\x90", 0, 0x217235}, /* East Asian ideograph */ - {"\x81", 0, 0x217236}, /* East Asian ideograph */ - {"\x93", 0, 0x217238}, /* East Asian ideograph */ - {"\x82", 0, 0x21723C}, /* East Asian ideograph */ - {"\x9D", 0, 0x217242}, /* East Asian ideograph */ - {"\xB5", 0, 0x217255}, /* East Asian ideograph */ - {"\xA0", 0, 0x21725D}, /* East Asian ideograph */ - {"\xAA", 0, 0x217260}, /* East Asian ideograph */ - {"\xBD", 0, 0x217261}, /* East Asian ideograph */ - {"\xAC", 0, 0x217264}, /* East Asian ideograph */ - {"\xB8", 0, 0x217267}, /* East Asian ideograph */ - {"\xAB", 0, 0x21726B}, /* East Asian ideograph */ - {"\xA4", 0, 0x27375B}, /* East Asian ideograph */ - {"\xB1", 0, 0x273764}, /* East Asian ideograph */ - {"\xA9", 0, 0x2D5941}, /* East Asian ideograph */ - {"\x91", 0, 0x393573}, /* East Asian ideograph */ - {"\x86", 0, 0x4B372C}, /* East Asian ideograph */ - {"\xA3", 0, 0x706054}, /* East Asian ideograph */ - {"\xAD", 0, 0x706058}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page38 = { - marc8r_31page38_flat, 0 -}; -/* PAGE 37 */ -struct yaz_iconv_trie_dir marc8r_31page37_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x217178} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21715E} /* East Asian ideograph */, - {0, 0, 0x217165} /* East Asian ideograph */, - {0, 0, 0x21367E} /* East Asian ideograph */, - {0, 0, 0x213722} /* East Asian ideograph */, - {0, 0, 0x213678} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21715F} /* East Asian ideograph */, - {0, 0, 0x217161} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x217158} /* East Asian ideograph */, - {0, 0, 0x21715B} /* East Asian ideograph */, - {0, 0, 0x21367A} /* East Asian ideograph */, - {0, 0, 0x21716F} /* East Asian ideograph */, - {0, 0, 0x217159} /* East Asian ideograph */, - {0, 0, 0x213675} /* East Asian ideograph */, - {0, 0, 0x217170} /* East Asian ideograph */, - {0, 0, 0x213679} /* East Asian ideograph */, - {0, 0, 0x2D7164} /* East Asian ideograph (variant of EACC 217164) */, - {0, 0, 0}, - {0, 0, 0x217177} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21715D} /* East Asian ideograph */, - {0, 0, 0x213721} /* East Asian ideograph */, - {0, 0, 0x21715A} /* East Asian ideograph */, - {0, 0, 0x213676} /* East Asian ideograph */, - {0, 0, 0x217162} /* East Asian ideograph */, - {0, 0, 0x21715C} /* East Asian ideograph */, - {0, 0, 0x213674} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213723} /* East Asian ideograph */, - {0, 0, 0x2D7143} /* East Asian ideograph */, - {0, 0, 0x21367B} /* East Asian ideograph */, - {0, 0, 0x21367D} /* East Asian ideograph */, - {0, 0, 0x217175} /* East Asian ideograph */, - {0, 0, 0x213677} /* East Asian ideograph */, - {0, 0, 0x216C50} /* East Asian ideograph */, - {0, 0, 0x213673} /* East Asian ideograph */, - {0, 0, 0x217169} /* East Asian ideograph */, - {0, 0, 0x70603A} /* East Asian ideograph */, - {0, 0, 0x27375D} /* East Asian ideograph */, - {0, 0, 0x4B356A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21367C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x217179} /* East Asian ideograph */, - {0, 0, 0x27374B} /* East Asian ideograph */, - {0, 0, 0x217156} /* East Asian ideograph */, - {0, 0, 0x70604C} /* East Asian ideograph */, - {0, 0, 0x217239} /* East Asian ideograph */, - {0, 0, 0x213728} /* East Asian ideograph */, - {0, 0, 0x217227} /* East Asian ideograph */, - {0, 0, 0x21722B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x217224} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21372B} /* East Asian ideograph */, - {0, 0, 0x213726} /* East Asian ideograph */, - {0, 0, 0x217244} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page37 = { - 0, marc8r_31page37_dir -}; -/* PAGE 36 */ -struct yaz_iconv_trie_flat marc8r_31page36_flat[] = { - {"\xA7", 0, 0x21365A}, /* East Asian ideograph */ - {"\x80", 0, 0x21365B}, /* East Asian ideograph */ - {"\x94", 0, 0x21365F}, /* East Asian ideograph */ - {"\x87", 0, 0x213660}, /* East Asian ideograph */ - {"\x9C", 0, 0x213661}, /* East Asian ideograph */ - {"\x8B", 0, 0x213662}, /* East Asian ideograph */ - {"\xAA", 0, 0x213663}, /* East Asian ideograph */ - {"\xB3", 0, 0x213664}, /* East Asian ideograph */ - {"\x8A", 0, 0x213665}, /* East Asian ideograph */ - {"\x83", 0, 0x213666}, /* East Asian ideograph */ - {"\xB1", 0, 0x213667}, /* East Asian ideograph */ - {"\xAE", 0, 0x213668}, /* East Asian ideograph */ - {"\x82", 0, 0x213669}, /* East Asian ideograph */ - {"\x9F", 0, 0x21366A}, /* East Asian ideograph */ - {"\x9D", 0, 0x21366B}, /* East Asian ideograph */ - {"\x98", 0, 0x21366C}, /* East Asian ideograph */ - {"\x9A", 0, 0x21366D}, /* East Asian ideograph */ - {"\xAC", 0, 0x21366F}, /* East Asian ideograph */ - {"\x89", 0, 0x213670}, /* East Asian ideograph */ - {"\xB2", 0, 0x213671}, /* East Asian ideograph */ - {"\xBB", 0, 0x213672}, /* East Asian ideograph */ - {"\x84", 0, 0x21523F}, /* East Asian ideograph */ - {"\x91", 0, 0x217123}, /* East Asian ideograph */ - {"\xA8", 0, 0x217126}, /* East Asian ideograph */ - {"\xAD", 0, 0x217127}, /* East Asian ideograph */ - {"\x93", 0, 0x21712D}, /* East Asian ideograph */ - {"\x86", 0, 0x21712F}, /* East Asian ideograph */ - {"\x88", 0, 0x217134}, /* East Asian ideograph */ - {"\xB4", 0, 0x217136}, /* East Asian ideograph */ - {"\x81", 0, 0x217144}, /* East Asian ideograph */ - {"\x8E", 0, 0x217145}, /* East Asian ideograph */ - {"\xB5", 0, 0x217147}, /* East Asian ideograph */ - {"\x8F", 0, 0x217149}, /* East Asian ideograph */ - {"\xA4", 0, 0x217150}, /* East Asian ideograph */ - {"\x92", 0, 0x217151}, /* East Asian ideograph */ - {"\x99", 0, 0x217152}, /* East Asian ideograph */ - {"\xBD", 0, 0x273731}, /* East Asian ideograph */ - {"\xB7", 0, 0x273745}, /* East Asian ideograph */ - {"\xBE", 0, 0x27735A}, /* East Asian ideograph */ - {"\xAB", 0, 0x2D3547}, /* East Asian ideograph */ - {"\x9E", 0, 0x39365E}, /* East Asian ideograph */ - {"\xB0", 0, 0x396074}, /* East Asian ideograph */ - {"\xB6", 0, 0x4B4A2E}, /* East Asian ideograph */ - {"\xB9", 0, 0x70602D}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page36 = { - marc8r_31page36_flat, 0 -}; -/* PAGE 35 */ -struct yaz_iconv_trie_flat marc8r_31page35_flat[] = { - {"\x96", 0, 0x213644}, /* East Asian ideograph */ - {"\x86", 0, 0x213646}, /* East Asian ideograph */ - {"\x8F", 0, 0x213648}, /* East Asian ideograph */ - {"\x9E", 0, 0x213649}, /* East Asian ideograph */ - {"\xA6", 0, 0x21364A}, /* East Asian ideograph */ - {"\xAA", 0, 0x21364B}, /* East Asian ideograph */ - {"\x8A", 0, 0x21364C}, /* East Asian ideograph */ - {"\x84", 0, 0x21364D}, /* East Asian ideograph */ - {"\x9C", 0, 0x21364E}, /* East Asian ideograph */ - {"\x83", 0, 0x213650}, /* East Asian ideograph */ - {"\xA1", 0, 0x213652}, /* East Asian ideograph */ - {"\xA3", 0, 0x213654}, /* East Asian ideograph */ - {"\x95", 0, 0x213655}, /* East Asian ideograph */ - {"\xA4", 0, 0x213658}, /* East Asian ideograph */ - {"\xBB", 0, 0x21365C}, /* East Asian ideograph */ - {"\xBC", 0, 0x21365D}, /* East Asian ideograph */ - {"\xBE", 0, 0x21366E}, /* East Asian ideograph */ - {"\x93", 0, 0x21424F}, /* East Asian ideograph */ - {"\xB5", 0, 0x21704B}, /* East Asian ideograph */ - {"\xB3", 0, 0x21704D}, /* East Asian ideograph */ - {"\x8C", 0, 0x21704E}, /* East Asian ideograph */ - {"\xB6", 0, 0x21704F}, /* East Asian ideograph */ - {"\x8D", 0, 0x217050}, /* East Asian ideograph */ - {"\x9A", 0, 0x217051}, /* East Asian ideograph */ - {"\x90", 0, 0x217055}, /* East Asian ideograph */ - {"\x88", 0, 0x217058}, /* East Asian ideograph */ - {"\x91", 0, 0x21705A}, /* East Asian ideograph */ - {"\xA2", 0, 0x217060}, /* East Asian ideograph */ - {"\x89", 0, 0x217064}, /* East Asian ideograph */ - {"\x80", 0, 0x21706A}, /* East Asian ideograph */ - {"\x85", 0, 0x217070}, /* East Asian ideograph */ - {"\x81", 0, 0x21707B}, /* East Asian ideograph */ - {"\xA5", 0, 0x21707D}, /* East Asian ideograph */ - {"\xB7", 0, 0x217125}, /* East Asian ideograph */ - {"\x99", 0, 0x21714B}, /* East Asian ideograph */ - {"\xAC", 0, 0x273678}, /* East Asian ideograph */ - {"\xA7", 0, 0x273727}, /* East Asian ideograph */ - {"\xB8", 0, 0x273733}, /* East Asian ideograph */ - {"\xAD", 0, 0x27375C}, /* East Asian ideograph */ - {"\xAE", 0, 0x277345}, /* East Asian ideograph */ - {"\x97", 0, 0x2D3644}, /* East Asian ideograph */ - {"\x9F", 0, 0x2D424F}, /* East Asian ideograph */ - {"\x94", 0, 0x39424F}, /* East Asian ideograph */ - {"\x9D", 0, 0x69533B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page35 = { - marc8r_31page35_flat, 0 -}; -/* PAGE 34 */ -struct yaz_iconv_trie_flat marc8r_31page34_flat[] = { - {"\x81", 0, 0x213634}, /* East Asian ideograph */ - {"\x90", 0, 0x213636}, /* East Asian ideograph */ - {"\x94", 0, 0x213638}, /* East Asian ideograph */ - {"\x86", 0, 0x213641}, /* East Asian ideograph */ - {"\x89", 0, 0x213642}, /* East Asian ideograph */ - {"\xB3", 0, 0x213645}, /* East Asian ideograph */ - {"\xB7", 0, 0x213647}, /* East Asian ideograph (Version J extension) */ - {"\xB1", 0, 0x21364F}, /* East Asian ideograph */ - {"\xAC", 0, 0x213651}, /* East Asian ideograph */ - {"\xBE", 0, 0x213653}, /* East Asian ideograph */ - {"\xAF", 0, 0x213656}, /* East Asian ideograph */ - {"\xAE", 0, 0x213657}, /* East Asian ideograph */ - {"\xB8", 0, 0x213659}, /* East Asian ideograph */ - {"\xA7", 0, 0x21365E}, /* East Asian ideograph */ - {"\x9A", 0, 0x216F7B}, /* East Asian ideograph */ - {"\x87", 0, 0x216F7D}, /* East Asian ideograph */ - {"\x97", 0, 0x217023}, /* East Asian ideograph */ - {"\x8A", 0, 0x21702B}, /* East Asian ideograph */ - {"\x98", 0, 0x21702E}, /* East Asian ideograph */ - {"\x84", 0, 0x217030}, /* East Asian ideograph */ - {"\x88", 0, 0x217034}, /* East Asian ideograph */ - {"\x8E", 0, 0x21703E}, /* East Asian ideograph */ - {"\xA3", 0, 0x217044}, /* East Asian ideograph */ - {"\x8F", 0, 0x217046}, /* East Asian ideograph */ - {"\x91", 0, 0x217047}, /* East Asian ideograph */ - {"\xBC", 0, 0x217053}, /* East Asian ideograph */ - {"\xB9", 0, 0x217057}, /* East Asian ideograph */ - {"\xAD", 0, 0x217059}, /* East Asian ideograph */ - {"\xAA", 0, 0x21705D}, /* East Asian ideograph */ - {"\xB6", 0, 0x217061}, /* East Asian ideograph */ - {"\xB0", 0, 0x217068}, /* East Asian ideograph */ - {"\xB5", 0, 0x21706B}, /* East Asian ideograph */ - {"\xBF", 0, 0x217079}, /* East Asian ideograph */ - {"\xA4", 0, 0x27366D}, /* East Asian ideograph */ - {"\xA0", 0, 0x273732}, /* East Asian ideograph */ - {"\xA2", 0, 0x277169}, /* East Asian ideograph */ - {"\x9B", 0, 0x277234}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page34 = { - marc8r_31page34_flat, 0 -}; -/* PAGE 33 */ -struct yaz_iconv_trie_flat marc8r_31page33_flat[] = { - {"\x80", 0, 0x213624}, /* East Asian ideograph */ - {"\x87", 0, 0x213628}, /* East Asian ideograph */ - {"\x89", 0, 0x213629}, /* East Asian ideograph */ - {"\x84", 0, 0x21362A}, /* East Asian ideograph */ - {"\x82", 0, 0x21362B}, /* East Asian ideograph */ - {"\x81", 0, 0x21362D}, /* East Asian ideograph */ - {"\x8E", 0, 0x21362F}, /* East Asian ideograph */ - {"\x88", 0, 0x213633}, /* East Asian ideograph */ - {"\xBC", 0, 0x213635}, /* East Asian ideograph */ - {"\xAA", 0, 0x213637}, /* East Asian ideograph */ - {"\xBA", 0, 0x213639}, /* East Asian ideograph */ - {"\xA5", 0, 0x21363A}, /* East Asian ideograph */ - {"\xAE", 0, 0x21363B}, /* East Asian ideograph */ - {"\xB2", 0, 0x21363C}, /* East Asian ideograph */ - {"\xA8", 0, 0x21363D}, /* East Asian ideograph */ - {"\xA1", 0, 0x21363E}, /* East Asian ideograph */ - {"\xA9", 0, 0x21363F}, /* East Asian ideograph */ - {"\xAD", 0, 0x213640}, /* East Asian ideograph */ - {"\xA6", 0, 0x213643}, /* East Asian ideograph */ - {"\x8F", 0, 0x216F5C}, /* East Asian ideograph */ - {"\x9E", 0, 0x216F6B}, /* East Asian ideograph */ - {"\x96", 0, 0x216F6C}, /* East Asian ideograph */ - {"\x86", 0, 0x216F74}, /* East Asian ideograph */ - {"\xA2", 0, 0x216F7C}, /* East Asian ideograph */ - {"\xBD", 0, 0x217024}, /* East Asian ideograph */ - {"\xA7", 0, 0x217025}, /* East Asian ideograph */ - {"\xB3", 0, 0x217027}, /* East Asian ideograph */ - {"\xA4", 0, 0x21702A}, /* East Asian ideograph */ - {"\xBF", 0, 0x21702D}, /* East Asian ideograph */ - {"\xAF", 0, 0x217032}, /* East Asian ideograph */ - {"\xB6", 0, 0x217038}, /* East Asian ideograph */ - {"\xB7", 0, 0x217039}, /* East Asian ideograph */ - {"\x91", 0, 0x273649}, /* East Asian ideograph */ - {"\x9F", 0, 0x273671}, /* East Asian ideograph */ - {"\x9D", 0, 0x273747}, /* East Asian ideograph */ - {"\x8D", 0, 0x276036}, /* East Asian ideograph */ - {"\x94", 0, 0x277239}, /* East Asian ideograph */ - {"\x93", 0, 0x277255}, /* East Asian ideograph */ - {"\x92", 0, 0x277272}, /* East Asian ideograph */ - {"\x95", 0, 0x27727A}, /* East Asian ideograph */ - {"\x99", 0, 0x27727E}, /* East Asian ideograph */ - {"\x9C", 0, 0x277328}, /* East Asian ideograph */ - {"\x97", 0, 0x335941}, /* East Asian ideograph */ - {"\x8C", 0, 0x4B357B}, /* East Asian ideograph */ - {"\x98", 0, 0x695326}, /* East Asian ideograph */ - {"\x90", 0, 0x705F51}, /* East Asian ideograph */ - {"\x9A", 0, 0x705F61}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page33 = { - marc8r_31page33_flat, 0 -}; -/* PAGE 32 */ -struct yaz_iconv_trie_flat marc8r_31page32_flat[] = { - {"\x95", 0, 0x21356B}, /* East Asian ideograph */ - {"\x96", 0, 0x21356D}, /* East Asian ideograph */ - {"\x92", 0, 0x213571}, /* East Asian ideograph */ - {"\x84", 0, 0x213572}, /* East Asian ideograph */ - {"\x86", 0, 0x213575}, /* East Asian ideograph */ - {"\x8B", 0, 0x213576}, /* East Asian ideograph */ - {"\x8C", 0, 0x213577}, /* East Asian ideograph */ - {"\x90", 0, 0x213578}, /* East Asian ideograph */ - {"\x9A", 0, 0x21357C}, /* East Asian ideograph */ - {"\x8E", 0, 0x21357D}, /* East Asian ideograph */ - {"\xA9", 0, 0x21357E}, /* East Asian ideograph */ - {"\xAA", 0, 0x213621}, /* East Asian ideograph */ - {"\xA8", 0, 0x213622}, /* East Asian ideograph */ - {"\xAC", 0, 0x213623}, /* East Asian ideograph */ - {"\xB3", 0, 0x213625}, /* East Asian ideograph */ - {"\xA6", 0, 0x213626}, /* East Asian ideograph */ - {"\xAB", 0, 0x213627}, /* East Asian ideograph */ - {"\xB1", 0, 0x213630}, /* East Asian ideograph */ - {"\xBB", 0, 0x213631}, /* East Asian ideograph */ - {"\xAF", 0, 0x213632}, /* East Asian ideograph */ - {"\x9C", 0, 0x216F2F}, /* East Asian ideograph */ - {"\x88", 0, 0x216F35}, /* East Asian ideograph */ - {"\x82", 0, 0x216F39}, /* East Asian ideograph */ - {"\x91", 0, 0x216F3B}, /* East Asian ideograph */ - {"\x94", 0, 0x216F42}, /* East Asian ideograph */ - {"\x8D", 0, 0x216F49}, /* East Asian ideograph */ - {"\xA4", 0, 0x216F55}, /* East Asian ideograph */ - {"\xA1", 0, 0x216F58}, /* East Asian ideograph */ - {"\xAD", 0, 0x216F5A}, /* East Asian ideograph */ - {"\xBA", 0, 0x216F5B}, /* East Asian ideograph */ - {"\xBE", 0, 0x216F5E}, /* East Asian ideograph */ - {"\xA5", 0, 0x216F60}, /* East Asian ideograph */ - {"\xA7", 0, 0x216F63}, /* East Asian ideograph */ - {"\xB5", 0, 0x216F64}, /* East Asian ideograph */ - {"\xA2", 0, 0x216F66}, /* East Asian ideograph */ - {"\xBC", 0, 0x216F69}, /* East Asian ideograph */ - {"\xB7", 0, 0x216F6A}, /* East Asian ideograph */ - {"\xAE", 0, 0x216F6D}, /* East Asian ideograph */ - {"\xBF", 0, 0x216F71}, /* East Asian ideograph */ - {"\x80", 0, 0x27373D}, /* East Asian ideograph */ - {"\x9B", 0, 0x27374E}, /* East Asian ideograph */ - {"\x99", 0, 0x273756}, /* East Asian ideograph */ - {"\xB8", 0, 0x276250}, /* East Asian ideograph */ - {"\xBD", 0, 0x2D3758}, /* East Asian ideograph */ - {"\x8F", 0, 0x2D584D}, /* East Asian ideograph */ - {"\xB2", 0, 0x334F71}, /* East Asian ideograph */ - {"\x9D", 0, 0x705F50}, /* East Asian ideograph */ - {"\xB4", 0, 0x705F54}, /* East Asian ideograph */ - {"\xA3", 0, 0x705F5B}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page32 = { - marc8r_31page32_flat, 0 -}; -/* PAGE 31 */ -struct yaz_iconv_trie_flat marc8r_31page31_flat[] = { - {"\x8E", 0, 0x213551}, /* East Asian ideograph */ - {"\x80", 0, 0x213554}, /* East Asian ideograph */ - {"\x86", 0, 0x213556}, /* East Asian ideograph */ - {"\x83", 0, 0x213558}, /* East Asian ideograph */ - {"\x8A", 0, 0x21355F}, /* East Asian ideograph */ - {"\x88", 0, 0x213560}, /* East Asian ideograph */ - {"\x82", 0, 0x213564}, /* East Asian ideograph */ - {"\xB3", 0, 0x213568}, /* East Asian ideograph */ - {"\xA2", 0, 0x213569}, /* East Asian ideograph */ - {"\xB5", 0, 0x21356A}, /* East Asian ideograph */ - {"\xB8", 0, 0x21356C}, /* East Asian ideograph */ - {"\xB7", 0, 0x21356E}, /* East Asian ideograph */ - {"\xBB", 0, 0x21356F}, /* East Asian ideograph */ - {"\xBC", 0, 0x213573}, /* East Asian ideograph */ - {"\xA8", 0, 0x213574}, /* East Asian ideograph */ - {"\xBD", 0, 0x213579}, /* East Asian ideograph */ - {"\xB6", 0, 0x21357A}, /* East Asian ideograph */ - {"\xB1", 0, 0x21357B}, /* East Asian ideograph */ - {"\x8C", 0, 0x216E6C}, /* East Asian ideograph */ - {"\x85", 0, 0x216E6D}, /* East Asian ideograph */ - {"\x94", 0, 0x216E79}, /* East Asian ideograph */ - {"\x8F", 0, 0x216F21}, /* East Asian ideograph */ - {"\x9F", 0, 0x216F2E}, /* East Asian ideograph */ - {"\xBF", 0, 0x216F37}, /* East Asian ideograph */ - {"\xAD", 0, 0x216F3A}, /* East Asian ideograph */ - {"\xAB", 0, 0x216F43}, /* East Asian ideograph */ - {"\xA3", 0, 0x216F4A}, /* East Asian ideograph */ - {"\xB4", 0, 0x216F4B}, /* East Asian ideograph */ - {"\xA6", 0, 0x216F52}, /* East Asian ideograph */ - {"\xA4", 0, 0x216F53}, /* East Asian ideograph */ - {"\xB2", 0, 0x216F67}, /* East Asian ideograph */ - {"\xB0", 0, 0x216F68}, /* East Asian ideograph */ - {"\x98", 0, 0x27363E}, /* East Asian ideograph */ - {"\x9C", 0, 0x273721}, /* East Asian ideograph */ - {"\x9B", 0, 0x273722}, /* East Asian ideograph */ - {"\x95", 0, 0x27372E}, /* East Asian ideograph */ - {"\x93", 0, 0x273762}, /* East Asian ideograph */ - {"\x99", 0, 0x276F69}, /* East Asian ideograph */ - {"\x97", 0, 0x277030}, /* East Asian ideograph */ - {"\x92", 0, 0x277267}, /* East Asian ideograph */ - {"\x96", 0, 0x27734C}, /* East Asian ideograph */ - {"\xAA", 0, 0x2D3571}, /* East Asian ideograph */ - {"\x89", 0, 0x33355C}, /* East Asian ideograph */ - {"\x8B", 0, 0x4D386F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page31 = { - marc8r_31page31_flat, 0 -}; -/* PAGE 30 */ -struct yaz_iconv_trie_dir marc8r_31page30_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x275055} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213547} /* East Asian ideograph */, - {0, 0, 0x213546} /* East Asian ideograph */, - {0, 0, 0x33365A} /* East Asian ideograph */, - {0, 0, 0x216E68} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275E5D} /* East Asian ideograph */, - {0, 0, 0x213540} /* East Asian ideograph */, - {0, 0, 0x213544} /* East Asian ideograph */, - {0, 0, 0x21353F} /* East Asian ideograph */, - {0, 0, 0x213543} /* East Asian ideograph */, - {0, 0, 0x213545} /* East Asian ideograph */, - {0, 0, 0x273D65} /* East Asian ideograph */, - {0, 0, 0x213542} /* East Asian ideograph */, - {0, 0, 0x213541} /* East Asian ideograph */, - {0, 0, 0x273755} /* East Asian ideograph */, - {0, 0, 0x213548} /* East Asian ideograph */, - {0, 0, 0x273751} /* East Asian ideograph */, - {0, 0, 0x216E61} /* East Asian ideograph */, - {0, 0, 0x333564} /* East Asian ideograph */, - {0, 0, 0x705F39} /* East Asian ideograph */, - {0, 0, 0x27367A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x216E6F} /* East Asian ideograph */, - {0, 0, 0x213550} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21354E} /* East Asian ideograph */, - {0, 0, 0x21354F} /* East Asian ideograph */, - {0, 0, 0x213566} /* East Asian ideograph */, - {0, 0, 0x21355A} /* East Asian ideograph */, - {0, 0, 0x216E76} /* East Asian ideograph */, - {0, 0, 0x216F26} /* East Asian ideograph */, - {0, 0, 0x216F27} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x213559} /* East Asian ideograph */, - {0, 0, 0x213553} /* East Asian ideograph */, - {0, 0, 0x273744} /* East Asian ideograph */, - {0, 0, 0x213567} /* East Asian ideograph */, - {0, 0, 0x216F24} /* East Asian ideograph */, - {0, 0, 0x213565} /* East Asian ideograph */, - {0, 0, 0x27527B} /* East Asian ideograph */, - {0, 0, 0x21354D} /* East Asian ideograph */, - {0, 0, 0x21355E} /* East Asian ideograph */, - {0, 0, 0x27424F} /* East Asian ideograph */, - {0, 0, 0x216E78} /* East Asian ideograph */, - {0, 0, 0x213555} /* East Asian ideograph */, - {0, 0, 0x216E70} /* East Asian ideograph */, - {0, 0, 0x21355C} /* East Asian ideograph */, - {0, 0, 0x2D355C} /* East Asian ideograph */, - {0, 0, 0x21355D} /* East Asian ideograph */, - {0, 0, 0x21355B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213562} /* East Asian ideograph */, - {0, 0, 0x213563} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213561} /* East Asian ideograph */, - {0, 0, 0x213557} /* East Asian ideograph */, - {0, 0, 0x216E7D} /* East Asian ideograph */, - {0, 0, 0x213552} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page30 = { - 0, marc8r_31page30_dir -}; -/* PAGE 29 */ -struct yaz_iconv_trie_flat marc8r_31page29_flat[] = { - {"\x84", 0, 0x213475}, /* East Asian ideograph */ - {"\x9A", 0, 0x213476}, /* East Asian ideograph */ - {"\x9D", 0, 0x213477}, /* East Asian ideograph */ - {"\x9F", 0, 0x213478}, /* East Asian ideograph */ - {"\xA5", 0, 0x213479}, /* East Asian ideograph */ - {"\xAD", 0, 0x21347A}, /* East Asian ideograph */ - {"\xB2", 0, 0x21347B}, /* East Asian ideograph */ - {"\xBB", 0, 0x21347C}, /* East Asian ideograph */ - {"\x80", 0, 0x216D5D}, /* East Asian ideograph */ - {"\x8E", 0, 0x216D64}, /* East Asian ideograph */ - {"\x93", 0, 0x216D66}, /* East Asian ideograph */ - {"\x94", 0, 0x216D67}, /* East Asian ideograph */ - {"\x99", 0, 0x216D6D}, /* East Asian ideograph */ - {"\xA4", 0, 0x216D7A}, /* East Asian ideograph */ - {"\xAB", 0, 0x216D7B}, /* East Asian ideograph */ - {"\xB5", 0, 0x216E2C}, /* East Asian ideograph */ - {"\xB9", 0, 0x216E2E}, /* East Asian ideograph */ - {"\xAF", 0, 0x222D56}, /* East Asian ideograph */ - {"\x8C", 0, 0x27347A}, /* East Asian ideograph */ - {"\x89", 0, 0x27347B}, /* East Asian ideograph */ - {"\x8B", 0, 0x273869}, /* East Asian ideograph */ - {"\x95", 0, 0x273C7E}, /* East Asian ideograph */ - {"\x82", 0, 0x273D2C}, /* East Asian ideograph */ - {"\x85", 0, 0x273D2F}, /* East Asian ideograph */ - {"\x86", 0, 0x274349}, /* East Asian ideograph (duplicate simplified) */ - {"\x86", 0, 0x27462A}, /* East Asian ideograph */ - {"\xB6", 0, 0x274F25}, /* East Asian ideograph */ - {"\xBF", 0, 0x275164}, /* East Asian ideograph (variant of EACC 455164) */ - {"\x98", 0, 0x275D3D}, /* East Asian ideograph */ - {"\x8D", 0, 0x276D6D}, /* East Asian ideograph */ - {"\xA3", 0, 0x276E2A}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D3C7D}, /* East Asian ideograph */ - {"\xA0", 0, 0x2D3C7E}, /* East Asian ideograph */ - {"\xAE", 0, 0x2D3D29}, /* East Asian ideograph */ - {"\x96", 0, 0x2D3D2D}, /* East Asian ideograph */ - {"\x9B", 0, 0x2D3D2F}, /* East Asian ideograph */ - {"\xA8", 0, 0x333D28}, /* East Asian ideograph */ - {"\xA9", 0, 0x3A284C}, /* East Asian ideograph (variant of EACC 4C284C) */ - {"\xBF", 0, 0x455164}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B375A}, /* East Asian ideograph */ - {"\xA6", 0, 0x4B3D24}, /* East Asian ideograph */ - {"\xB0", 0, 0x4B3D2C}, /* East Asian ideograph */ - {"\xA9", 0, 0x4C284C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page29 = { - marc8r_31page29_flat, 0 -}; -/* PAGE 28 */ -struct yaz_iconv_trie_dir marc8r_31page28_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x213455} /* East Asian ideograph */, - {0, 0, 0x213457} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213458} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213459} /* East Asian ideograph */, - {0, 0, 0x27345F} /* East Asian ideograph */, - {0, 0, 0x21345B} /* East Asian ideograph */, - {0, 0, 0x21345A} /* East Asian ideograph */, - {0, 0, 0x2D345D} /* East Asian ideograph */, - {0, 0, 0x21345C} /* East Asian ideograph */, - {0, 0, 0x39302D} /* East Asian ideograph */, - {0, 0, 0x216D41} /* East Asian ideograph */, - {0, 0, 0x216D42} /* East Asian ideograph */, - {0, 0, 0x27553C} /* East Asian ideograph */, - {0, 0, 0x273460} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213462} /* East Asian ideograph */, - {0, 0, 0x21345F} /* East Asian ideograph */, - {0, 0, 0x213461} /* East Asian ideograph */, - {0, 0, 0x213460} /* East Asian ideograph */, - {0, 0, 0x273668} /* East Asian ideograph */, - {0, 0, 0x275A2F} /* East Asian ideograph */, - {0, 0, 0x213463} /* East Asian ideograph */, - {0, 0, 0x4B3668} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213464} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275573} /* East Asian ideograph */, - {0, 0, 0x216D4B} /* East Asian ideograph */, - {0, 0, 0x213466} /* East Asian ideograph */, - {0, 0, 0x216E58} /* East Asian ideograph */, - {0, 0, 0x27313C} /* East Asian ideograph */, - {0, 0, 0x213467} /* East Asian ideograph */, - {0, 0, 0x274D3F} /* East Asian ideograph */, - {0, 0, 0x216D4C} /* East Asian ideograph */, - {0, 0, 0x295D3C} /* East Asian ideograph */, - {0, 0, 0x216D4E} /* East Asian ideograph */, - {0, 0, 0x213469} /* East Asian ideograph */, - {0, 0, 0x2D5424} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275C6B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275749} /* East Asian ideograph */, - {0, 0, 0x216D53} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21346B} /* East Asian ideograph */, - {0, 0, 0x21346A} /* East Asian ideograph */, - {0, 0, 0x21346C} /* East Asian ideograph */, - {0, 0, 0x21346D} /* East Asian ideograph */, - {0, 0, 0x216D57} /* East Asian ideograph */, - {0, 0, 0x2D346E} /* East Asian ideograph */, - {0, 0, 0x2D3473} /* East Asian ideograph */, - {0, 0, 0x21346F} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27407B} /* East Asian ideograph */, - {0, 0, 0x213471} /* East Asian ideograph */, - {0, 0, 0x3F3E47} /* East Asian ideograph */, - {0, 0, 0x216D58} /* East Asian ideograph */, - {0, 0, 0x213473} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21346E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213474} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page28 = { - 0, marc8r_31page28_dir -}; -/* PAGE 27 */ -struct yaz_iconv_trie_dir marc8r_31page27_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x33347D} /* East Asian ideograph */, - {0, 0, 0x27347D} /* East Asian ideograph */, - {0, 0, 0x21347D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21347E} /* East Asian ideograph */, - {0, 0, 0x213521} /* East Asian ideograph */, - {0, 0, 0x213523} /* East Asian ideograph */, - {0, 0, 0x213522} /* East Asian ideograph */, - {0, 0, 0x275F4E} /* East Asian ideograph */, - {0, 0, 0x213524} /* East Asian ideograph */, - {0, 0, 0x33423D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x216E3E} /* East Asian ideograph */, - {0, 0, 0x27615F} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x213526} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213525} /* East Asian ideograph */, - {0, 0, 0x213527} /* East Asian ideograph */, - {0, 0, 0x27594B} /* East Asian ideograph */, - {0, 0, 0x2D4249} /* East Asian ideograph */, - {0, 0, 0x216E48} /* East Asian ideograph */, - {0, 0, 0x213528} /* East Asian ideograph */, - {0, 0, 0x333529} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x213529} /* East Asian ideograph */, - {0, 0, 0x2D4C3C} /* East Asian ideograph */, - {0, 0, 0x2D4D65} /* East Asian ideograph */, - {0, 0, 0x21352B} /* East Asian ideograph */, - {0, 0, 0x21352C} /* East Asian ideograph */, - {0, 0, 0x21352E} /* East Asian ideograph */, - {0, 0, 0x213539} /* East Asian ideograph */, - {0, 0, 0x213535} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213534} /* East Asian ideograph */, - {0, 0, 0x213531} /* East Asian ideograph */, - {0, 0, 0x275F3E} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x213537} /* East Asian ideograph */, - {0, 0, 0x213536} /* East Asian ideograph */, - {0, 0, 0x21353B} /* East Asian ideograph */, - {0, 0, 0x21352F} /* East Asian ideograph */, - {0, 0, 0x213530} /* East Asian ideograph */, - {0, 0, 0x283B7D} /* East Asian ideograph (duplicate simplified) */, - {0, 0, 0x21353A} /* East Asian ideograph */, - {0, 0, 0x21353D} /* East Asian ideograph */, - {0, 0, 0x213532} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21344B} /* East Asian ideograph */, - {0, 0, 0x27554F} /* East Asian ideograph */, - {0, 0, 0x27564A} /* East Asian ideograph */, - {0, 0, 0x21352D} /* East Asian ideograph */, - {0, 0, 0x27372C} /* East Asian ideograph */, - {0, 0, 0x69525D} /* East Asian ideograph */, - {0, 0, 0x216E57} /* East Asian ideograph */, - {0, 0, 0x213533} /* East Asian ideograph */, - {0, 0, 0x273740} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page27 = { - 0, marc8r_31page27_dir -}; -/* PAGE 26 */ -struct yaz_iconv_trie_flat marc8r_31page26_flat[] = { - {"\x85", 0, 0x213441}, /* East Asian ideograph */ - {"\x86", 0, 0x213442}, /* East Asian ideograph */ - {"\x88", 0, 0x213443}, /* East Asian ideograph */ - {"\x8D", 0, 0x213444}, /* East Asian ideograph */ - {"\x90", 0, 0x213445}, /* East Asian ideograph */ - {"\x8F", 0, 0x213446}, /* East Asian ideograph */ - {"\x95", 0, 0x213447}, /* East Asian ideograph */ - {"\x96", 0, 0x213448}, /* East Asian ideograph */ - {"\x97", 0, 0x213449}, /* East Asian ideograph */ - {"\x99", 0, 0x21344A}, /* East Asian ideograph */ - {"\x9D", 0, 0x21344C}, /* East Asian ideograph */ - {"\xA1", 0, 0x21344D}, /* East Asian ideograph */ - {"\xA0", 0, 0x21344E}, /* East Asian ideograph */ - {"\xA3", 0, 0x21344F}, /* East Asian ideograph */ - {"\xAA", 0, 0x213450}, /* East Asian ideograph */ - {"\xAF", 0, 0x213451}, /* East Asian ideograph */ - {"\xB1", 0, 0x213452}, /* East Asian ideograph */ - {"\xB9", 0, 0x213453}, /* East Asian ideograph */ - {"\xBE", 0, 0x213454}, /* East Asian ideograph */ - {"\xBF", 0, 0x213456}, /* East Asian ideograph */ - {"\x87", 0, 0x216C69}, /* East Asian ideograph */ - {"\x83", 0, 0x216C6A}, /* East Asian ideograph */ - {"\x86", 0, 0x216C6B}, /* East Asian ideograph */ - {"\x8A", 0, 0x216C6E}, /* East Asian ideograph */ - {"\x8B", 0, 0x216C6F}, /* East Asian ideograph */ - {"\x91", 0, 0x216C77}, /* East Asian ideograph */ - {"\x9A", 0, 0x216D23}, /* East Asian ideograph */ - {"\x9C", 0, 0x216D24}, /* East Asian ideograph */ - {"\x9F", 0, 0x216D25}, /* East Asian ideograph */ - {"\xAD", 0, 0x216D2E}, /* East Asian ideograph */ - {"\xB0", 0, 0x216D33}, /* East Asian ideograph */ - {"\xB5", 0, 0x216D36}, /* East Asian ideograph */ - {"\xB8", 0, 0x216D3A}, /* East Asian ideograph */ - {"\xBD", 0, 0x216D3E}, /* East Asian ideograph */ - {"\xAE", 0, 0x273452}, /* East Asian ideograph */ - {"\xBA", 0, 0x273455}, /* East Asian ideograph */ - {"\xBB", 0, 0x275D31}, /* East Asian ideograph */ - {"\xA6", 0, 0x276D2E}, /* East Asian ideograph */ - {"\xB3", 0, 0x4B393F}, /* East Asian ideograph */ - {"\x82", 0, 0x694677}, /* East Asian ideograph */ - {"\x81", 0, 0x694C68}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page26 = { - marc8r_31page26_flat, 0 -}; -/* PAGE 25 */ -struct yaz_iconv_trie_flat marc8r_31page25_flat[] = { - {"\x87", 0, 0x21342D}, /* East Asian ideograph */ - {"\x83", 0, 0x21342E}, /* East Asian ideograph */ - {"\x81", 0, 0x21342F}, /* East Asian ideograph */ - {"\x89", 0, 0x213430}, /* East Asian ideograph */ - {"\x98", 0, 0x213431}, /* East Asian ideograph */ - {"\x92", 0, 0x213432}, /* East Asian ideograph */ - {"\x99", 0, 0x213433}, /* East Asian ideograph */ - {"\x95", 0, 0x213434}, /* East Asian ideograph */ - {"\x9E", 0, 0x213435}, /* East Asian ideograph */ - {"\x9B", 0, 0x213436}, /* East Asian ideograph */ - {"\x9D", 0, 0x213437}, /* East Asian ideograph */ - {"\xA2", 0, 0x213438}, /* East Asian ideograph */ - {"\xA4", 0, 0x213439}, /* East Asian ideograph */ - {"\x9F", 0, 0x21343A}, /* East Asian ideograph */ - {"\xB5", 0, 0x21343C}, /* East Asian ideograph */ - {"\xB8", 0, 0x21343D}, /* East Asian ideograph */ - {"\xBB", 0, 0x21343E}, /* East Asian ideograph */ - {"\xBF", 0, 0x213440}, /* East Asian ideograph */ - {"\x97", 0, 0x214357}, /* East Asian ideograph */ - {"\x8A", 0, 0x216C3C}, /* East Asian ideograph */ - {"\x8D", 0, 0x216C3D}, /* East Asian ideograph */ - {"\x90", 0, 0x216C40}, /* East Asian ideograph */ - {"\x91", 0, 0x216C41}, /* East Asian ideograph */ - {"\x94", 0, 0x216C46}, /* East Asian ideograph */ - {"\x96", 0, 0x216C48}, /* East Asian ideograph */ - {"\xA3", 0, 0x216C4C}, /* East Asian ideograph */ - {"\xA1", 0, 0x216C4E}, /* East Asian ideograph */ - {"\xA9", 0, 0x216C53}, /* East Asian ideograph */ - {"\xB0", 0, 0x216C58}, /* East Asian ideograph */ - {"\xB1", 0, 0x216C5A}, /* East Asian ideograph */ - {"\xB7", 0, 0x216C5E}, /* East Asian ideograph */ - {"\xB9", 0, 0x216C61}, /* East Asian ideograph */ - {"\xBA", 0, 0x216C62}, /* East Asian ideograph */ - {"\xBC", 0, 0x216C64}, /* East Asian ideograph */ - {"\x8B", 0, 0x273436}, /* East Asian ideograph */ - {"\xB3", 0, 0x2D3436}, /* East Asian ideograph */ - {"\xA7", 0, 0x2D343D}, /* East Asian ideograph */ - {"\xBE", 0, 0x2D3539}, /* East Asian ideograph */ - {"\x85", 0, 0x2E363F}, /* East Asian ideograph */ - {"\xA6", 0, 0x33337B}, /* East Asian ideograph */ - {"\xA0", 0, 0x453F6D}, /* East Asian ideograph */ - {"\xB2", 0, 0x4B3436}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page25 = { - marc8r_31page25_flat, 0 -}; -/* PAGE 24 */ -struct yaz_iconv_trie_flat marc8r_31page24_flat[] = { - {"\x83", 0, 0x21337C}, /* East Asian ideograph */ - {"\x88", 0, 0x21337D}, /* East Asian ideograph */ - {"\x87", 0, 0x21337E}, /* East Asian ideograph */ - {"\x8D", 0, 0x213421}, /* East Asian ideograph */ - {"\x89", 0, 0x213422}, /* East Asian ideograph */ - {"\x91", 0, 0x213423}, /* East Asian ideograph */ - {"\x9B", 0, 0x213424}, /* East Asian ideograph */ - {"\x9F", 0, 0x213425}, /* East Asian ideograph */ - {"\xA0", 0, 0x213426}, /* East Asian ideograph */ - {"\xA3", 0, 0x213427}, /* East Asian ideograph */ - {"\xAB", 0, 0x213428}, /* East Asian ideograph */ - {"\xA9", 0, 0x213429}, /* East Asian ideograph */ - {"\xAC", 0, 0x21342A}, /* East Asian ideograph */ - {"\xAA", 0, 0x21342B}, /* East Asian ideograph */ - {"\xBE", 0, 0x21342C}, /* East Asian ideograph */ - {"\x82", 0, 0x216B74}, /* East Asian ideograph */ - {"\x81", 0, 0x216B75}, /* East Asian ideograph */ - {"\x8C", 0, 0x216B79}, /* East Asian ideograph */ - {"\x8A", 0, 0x216B7A}, /* East Asian ideograph */ - {"\x90", 0, 0x216B7C}, /* East Asian ideograph */ - {"\x93", 0, 0x216C21}, /* East Asian ideograph */ - {"\x96", 0, 0x216C27}, /* East Asian ideograph */ - {"\x98", 0, 0x216C29}, /* East Asian ideograph */ - {"\x9A", 0, 0x216C2B}, /* East Asian ideograph */ - {"\x99", 0, 0x216C2C}, /* East Asian ideograph */ - {"\xA6", 0, 0x216C2E}, /* East Asian ideograph */ - {"\xAD", 0, 0x216C31}, /* East Asian ideograph */ - {"\xAE", 0, 0x216C33}, /* East Asian ideograph */ - {"\xBB", 0, 0x216C37}, /* East Asian ideograph */ - {"\xBC", 0, 0x216C38}, /* East Asian ideograph */ - {"\xB2", 0, 0x27342F}, /* East Asian ideograph */ - {"\xA1", 0, 0x273433}, /* East Asian ideograph */ - {"\xA8", 0, 0x273434}, /* East Asian ideograph */ - {"\xB3", 0, 0x273435}, /* East Asian ideograph */ - {"\xBF", 0, 0x273438}, /* East Asian ideograph */ - {"\xB1", 0, 0x27343C}, /* East Asian ideograph */ - {"\x9D", 0, 0x27343D}, /* East Asian ideograph */ - {"\x9E", 0, 0x275B5F}, /* East Asian ideograph */ - {"\xB5", 0, 0x2D335F}, /* East Asian ideograph */ - {"\x94", 0, 0x2D3421}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D343C}, /* East Asian ideograph */ - {"\xB9", 0, 0x334243}, /* East Asian ideograph */ - {"\xB4", 0, 0x4B3435}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page24 = { - marc8r_31page24_flat, 0 -}; -/* PAGE 23 */ -struct yaz_iconv_trie_flat marc8r_31page23_flat[] = { - {"\x81", 0, 0x213366}, /* East Asian ideograph */ - {"\x83", 0, 0x213368}, /* East Asian ideograph */ - {"\x8D", 0, 0x213369}, /* East Asian ideograph */ - {"\x8C", 0, 0x21336A}, /* East Asian ideograph */ - {"\x8B", 0, 0x21336B}, /* East Asian ideograph */ - {"\x8A", 0, 0x21336C}, /* East Asian ideograph */ - {"\x87", 0, 0x21336D}, /* East Asian ideograph */ - {"\x9C", 0, 0x21336E}, /* East Asian ideograph */ - {"\x96", 0, 0x21336F}, /* East Asian ideograph */ - {"\x9B", 0, 0x213370}, /* East Asian ideograph */ - {"\x94", 0, 0x213371}, /* East Asian ideograph */ - {"\x9D", 0, 0x213372}, /* East Asian ideograph */ - {"\xAA", 0, 0x213373}, /* East Asian ideograph */ - {"\xAF", 0, 0x213374}, /* East Asian ideograph */ - {"\xB2", 0, 0x213375}, /* East Asian ideograph */ - {"\xB4", 0, 0x213376}, /* East Asian ideograph */ - {"\xA9", 0, 0x213377}, /* East Asian ideograph */ - {"\xB5", 0, 0x213378}, /* East Asian ideograph */ - {"\xBD", 0, 0x21337A}, /* East Asian ideograph */ - {"\xBF", 0, 0x21337B}, /* East Asian ideograph */ - {"\x84", 0, 0x216B3E}, /* East Asian ideograph */ - {"\x89", 0, 0x216B43}, /* East Asian ideograph */ - {"\xA0", 0, 0x216B47}, /* East Asian ideograph */ - {"\x9A", 0, 0x216B4B}, /* East Asian ideograph */ - {"\x92", 0, 0x216B4C}, /* East Asian ideograph */ - {"\x9E", 0, 0x216B4D}, /* East Asian ideograph */ - {"\x9F", 0, 0x216B50}, /* East Asian ideograph */ - {"\x95", 0, 0x216B53}, /* East Asian ideograph */ - {"\xAE", 0, 0x216B5B}, /* East Asian ideograph */ - {"\xA8", 0, 0x216B5E}, /* East Asian ideograph */ - {"\xB8", 0, 0x216B6B}, /* East Asian ideograph */ - {"\x80", 0, 0x273376}, /* East Asian ideograph */ - {"\xA7", 0, 0x27337E}, /* East Asian ideograph */ - {"\x91", 0, 0x273421}, /* East Asian ideograph */ - {"\x82", 0, 0x273423}, /* East Asian ideograph */ - {"\x90", 0, 0x276B5B}, /* East Asian ideograph */ - {"\xA5", 0, 0x2D3372}, /* East Asian ideograph */ - {"\xB3", 0, 0x2D6B5F}, /* East Asian ideograph */ - {"\xA1", 0, 0x2E3172}, /* East Asian ideograph */ - {"\xB0", 0, 0x333377}, /* East Asian ideograph */ - {"\xA4", 0, 0x333423}, /* East Asian ideograph */ - {"\x97", 0, 0x335E2F}, /* East Asian ideograph */ - {"\x8F", 0, 0x336B33}, /* East Asian ideograph */ - {"\xB7", 0, 0x395E2F}, /* East Asian ideograph */ - {"\x99", 0, 0x396B33}, /* East Asian ideograph */ - {"\xB1", 0, 0x453421}, /* East Asian ideograph */ - {"\xA3", 0, 0x4B3421}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page23 = { - marc8r_31page23_flat, 0 -}; -/* PAGE 22 */ -struct yaz_iconv_trie_dir marc8r_31page22_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21334F} /* East Asian ideograph */, - {0, 0, 0x213350} /* East Asian ideograph */, - {0, 0, 0x2D334F} /* East Asian ideograph */, - {0, 0, 0x213351} /* East Asian ideograph */, - {0, 0, 0x4B3351} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213353} /* East Asian ideograph */, - {0, 0, 0x213352} /* East Asian ideograph */, - {0, 0, 0x213354} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213355} /* East Asian ideograph */, - {0, 0, 0x4B3355} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27545C} /* East Asian ideograph */, - {0, 0, 0x213359} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x2D3356} /* East Asian ideograph */, - {0, 0, 0x27337C} /* East Asian ideograph */, - {0, 0, 0x216B24} /* East Asian ideograph */, - {0, 0, 0x2D4029} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x216B26} /* East Asian ideograph */, - {0, 0, 0x213357} /* East Asian ideograph */, - {0, 0, 0x273422} /* East Asian ideograph */, - {0, 0, 0x27336D} /* East Asian ideograph */, - {0, 0, 0x273370} /* East Asian ideograph */, - {0, 0, 0x273378} /* East Asian ideograph */, - {0, 0, 0x216B2A} /* East Asian ideograph */, - {0, 0, 0x21574E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x396B2F} /* East Asian ideograph */, - {0, 0, 0x21335C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21335A} /* East Asian ideograph */, - {0, 0, 0x21335B} /* East Asian ideograph */, - {0, 0, 0x2D3428} /* East Asian ideograph */, - {0, 0, 0x393428} /* East Asian ideograph */, - {0, 0, 0x21335D} /* East Asian ideograph */, - {0, 0, 0x21335E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x4B335B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x276B3E} /* East Asian ideograph */, - {0, 0, 0x27605E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213362} /* East Asian ideograph */, - {0, 0, 0x2D6B33} /* East Asian ideograph */, - {0, 0, 0x216B37} /* East Asian ideograph */, - {0, 0, 0x216B39} /* East Asian ideograph */, - {0, 0, 0x2D3366} /* East Asian ideograph */, - {0, 0, 0x216B36} /* East Asian ideograph */, - {0, 0, 0x27576C} /* East Asian ideograph */, - {0, 0, 0x213361} /* East Asian ideograph */, - {0, 0, 0x21335F} /* East Asian ideograph */, - {0, 0, 0x213367} /* East Asian ideograph */, - {0, 0, 0x213363} /* East Asian ideograph */, - {0, 0, 0x213360} /* East Asian ideograph */, - {0, 0, 0x333428} /* East Asian ideograph */, - {0, 0, 0x276B7A} /* East Asian ideograph */, - {0, 0, 0x4B576C} /* East Asian ideograph */, - {0, 0, 0x276B79} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page22 = { - 0, marc8r_31page22_dir -}; -/* PAGE 21 */ -struct yaz_iconv_trie_dir marc8r_31page21_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {81, 0, 0}, - {82, 0, 0}, - {83, 0, 0}, - {84, 0, 0}, - {85, 0, 0}, - {86, 0, 0}, - {87, 0, 0}, - {88, 0, 0}, - {89, 0, 0}, - {90, 0, 0}, - {91, 0, 0}, - {92, 0, 0}, - {93, 0, 0}, - {94, 0, 0}, - {95, 0, 0}, - {96, 0, 0}, - {97, 0, 0}, - {98, 0, 0}, - {99, 0, 0}, - {100, 0, 0}, - {101, 0, 0}, - {102, 0, 0}, - {103, 0, 0}, - {104, 0, 0}, - {105, 0, 0}, - {106, 0, 0}, - {107, 0, 0}, - {80, 0, 0}, - {79, 0, 0}, - {108, 0, 0}, - {109, 0, 0}, - {110, 0, 0}, - {111, 0, 0}, - {112, 0, 0}, - {113, 0, 0}, - {114, 0, 0}, - {115, 0, 0}, - {116, 0, 0}, - {117, 0, 0}, - {118, 0, 0}, - {119, 0, 0}, - {120, 0, 0}, - {121, 0, 0}, - {122, 0, 0}, - {123, 0, 0}, - {124, 0, 0}, - {125, 0, 0}, - {126, 0, 0}, - {127, 0, 0}, - {128, 0, 0}, - {129, 0, 0}, - {130, 0, 0}, - {132, 0, 0}, - {131, 0, 0}, - {133, 0, 0}, - {134, 0, 0}, - {136, 0, 0}, - {135, 0, 0}, - {138, 0, 0}, - {137, 0, 0}, - {139, 0, 0}, - {140, 0, 0}, - {141, 0, 0}, - {142, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page21 = { - 0, marc8r_31page21_dir -}; -/* PAGE 20 */ -struct yaz_iconv_trie_flat marc8r_31page20_flat[] = { - {"\x80", 0, 0x21332E}, /* East Asian ideograph */ - {"\x89", 0, 0x21332F}, /* East Asian ideograph */ - {"\x8C", 0, 0x213330}, /* East Asian ideograph */ - {"\x8D", 0, 0x213331}, /* East Asian ideograph */ - {"\x92", 0, 0x213332}, /* East Asian ideograph */ - {"\x91", 0, 0x213333}, /* East Asian ideograph */ - {"\x95", 0, 0x213334}, /* East Asian ideograph */ - {"\x97", 0, 0x213336}, /* East Asian ideograph */ - {"\xA0", 0, 0x213337}, /* East Asian ideograph */ - {"\xA5", 0, 0x213339}, /* East Asian ideograph */ - {"\xB0", 0, 0x21333C}, /* East Asian ideograph */ - {"\xB6", 0, 0x21333D}, /* East Asian ideograph */ - {"\xB7", 0, 0x21333E}, /* East Asian ideograph */ - {"\x87", 0, 0x216425}, /* East Asian ideograph */ - {"\x82", 0, 0x216967}, /* East Asian ideograph */ - {"\x84", 0, 0x216969}, /* East Asian ideograph */ - {"\x8F", 0, 0x21696E}, /* East Asian ideograph */ - {"\x94", 0, 0x216970}, /* East Asian ideograph */ - {"\x93", 0, 0x216971}, /* East Asian ideograph */ - {"\x96", 0, 0x216975}, /* East Asian ideograph */ - {"\xA1", 0, 0x21697B}, /* East Asian ideograph */ - {"\xA3", 0, 0x21697C}, /* East Asian ideograph */ - {"\xAA", 0, 0x216A22}, /* East Asian ideograph */ - {"\xAB", 0, 0x216A23}, /* East Asian ideograph */ - {"\xB1", 0, 0x216A26}, /* East Asian ideograph */ - {"\xBC", 0, 0x216A35}, /* East Asian ideograph */ - {"\xBB", 0, 0x273340}, /* East Asian ideograph */ - {"\x99", 0, 0x273B37}, /* East Asian ideograph */ - {"\x88", 0, 0x273B6E}, /* East Asian ideograph */ - {"\xB2", 0, 0x27574A}, /* East Asian ideograph (duplicate simplified) */ - {"\x9B", 0, 0x275B34}, /* East Asian ideograph */ - {"\x9C", 0, 0x275B64}, /* East Asian ideograph */ - {"\xAF", 0, 0x27612D}, /* East Asian ideograph */ - {"\xAC", 0, 0x276276}, /* East Asian ideograph */ - {"\x81", 0, 0x277360}, /* East Asian ideograph */ - {"\x90", 0, 0x2D3332}, /* East Asian ideograph */ - {"\xA2", 0, 0x2D3852}, /* East Asian ideograph */ - {"\xA8", 0, 0x2D3B27}, /* East Asian ideograph */ - {"\xB3", 0, 0x2D466D}, /* East Asian ideograph */ - {"\xB2", 0, 0x2D4674}, /* East Asian ideograph */ - {"\xB5", 0, 0x2D4730}, /* East Asian ideograph */ - {"\xA4", 0, 0x2D7E6A}, /* East Asian ideograph */ - {"\x8A", 0, 0x333330}, /* East Asian ideograph */ - {"\x85", 0, 0x4B3321}, /* East Asian ideograph */ - {"\xB7", 0, 0x4B333E}, /* East Asian ideograph (variant of EACC 21333E) */ - {"\x86", 0, 0x4B3772}, /* East Asian ideograph */ - {"\xA6", 0, 0x4B3B22}, /* East Asian ideograph */ - {"\xA9", 0, 0x4B3B37}, /* East Asian ideograph */ - {"\xBD", 0, 0x4B4741}, /* East Asian ideograph */ - {"\xB4", 0, 0x516A26}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page20 = { - marc8r_31page20_flat, 0 -}; -/* PAGE 19 */ -struct yaz_iconv_trie_dir marc8r_31page19_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x21326C} /* East Asian ideograph */, - {0, 0, 0x21326E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21326D} /* East Asian ideograph */, - {0, 0, 0x213270} /* East Asian ideograph */, - {0, 0, 0x21326F} /* East Asian ideograph */, - {0, 0, 0x213271} /* East Asian ideograph */, - {0, 0, 0x213273} /* East Asian ideograph */, - {0, 0, 0x213274} /* East Asian ideograph */, - {0, 0, 0x213272} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27336B} /* East Asian ideograph */, - {0, 0, 0x213275} /* East Asian ideograph */, - {0, 0, 0x213277} /* East Asian ideograph */, - {0, 0, 0x2D3279} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x33327A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21327A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213279} /* East Asian ideograph */, - {0, 0, 0x213278} /* East Asian ideograph */, - {0, 0, 0x27327B} /* East Asian ideograph */, - {0, 0, 0x21327B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x216951} /* East Asian ideograph */, - {0, 0, 0x27626F} /* East Asian ideograph */, - {0, 0, 0x216952} /* East Asian ideograph */, - {0, 0, 0x21327C} /* East Asian ideograph */, - {0, 0, 0x216955} /* East Asian ideograph */, - {0, 0, 0x216956} /* East Asian ideograph */, - {0, 0, 0x216958} /* East Asian ideograph */, - {0, 0, 0x216A73} /* East Asian ideograph */, - {0, 0, 0x216959} /* East Asian ideograph */, - {0, 0, 0x21327D} /* East Asian ideograph */, - {0, 0, 0x21695C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21327E} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213321} /* East Asian ideograph */, - {0, 0, 0x213322} /* East Asian ideograph */, - {0, 0, 0x213323} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213324} /* East Asian ideograph */, - {0, 0, 0x213327} /* East Asian ideograph */, - {0, 0, 0x213325} /* East Asian ideograph */, - {0, 0, 0x213326} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27563E} /* East Asian ideograph */, - {0, 0, 0x213328} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275E69} /* East Asian ideograph */, - {0, 0, 0x275433} /* East Asian ideograph */, - {0, 0, 0x213329} /* East Asian ideograph */, - {0, 0, 0x21332A} /* East Asian ideograph */, - {0, 0, 0x21332B} /* East Asian ideograph */, - {0, 0, 0x21332C} /* East Asian ideograph */, - {0, 0, 0x215521} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x276071} /* East Asian ideograph */, - {0, 0, 0x21332D} /* East Asian ideograph */, - {0, 0, 0x274B2B} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x3F5631} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page19 = { - 0, marc8r_31page19_dir -}; -/* PAGE 18 */ -struct yaz_iconv_trie_flat marc8r_31page18_flat[] = { - {"\x80", 0, 0x213259}, /* East Asian ideograph */ - {"\x84", 0, 0x21325A}, /* East Asian ideograph */ - {"\x82", 0, 0x21325E}, /* East Asian ideograph */ - {"\x8D", 0, 0x21325F}, /* East Asian ideograph */ - {"\x88", 0, 0x213260}, /* East Asian ideograph */ - {"\x89", 0, 0x213261}, /* East Asian ideograph */ - {"\x90", 0, 0x213262}, /* East Asian ideograph */ - {"\x98", 0, 0x213263}, /* East Asian ideograph */ - {"\x92", 0, 0x213264}, /* East Asian ideograph */ - {"\x94", 0, 0x213265}, /* East Asian ideograph */ - {"\xAA", 0, 0x213266}, /* East Asian ideograph */ - {"\x9F", 0, 0x213267}, /* East Asian ideograph */ - {"\xA1", 0, 0x213268}, /* East Asian ideograph */ - {"\xB2", 0, 0x213269}, /* East Asian ideograph */ - {"\xB7", 0, 0x21326A}, /* East Asian ideograph */ - {"\xBC", 0, 0x21326B}, /* East Asian ideograph */ - {"\x8E", 0, 0x21685B}, /* East Asian ideograph */ - {"\x85", 0, 0x21685F}, /* East Asian ideograph */ - {"\x86", 0, 0x216865}, /* East Asian ideograph */ - {"\x87", 0, 0x216866}, /* East Asian ideograph */ - {"\x8F", 0, 0x216867}, /* East Asian ideograph */ - {"\x8B", 0, 0x216869}, /* East Asian ideograph */ - {"\x81", 0, 0x21686D}, /* East Asian ideograph */ - {"\x95", 0, 0x216871}, /* East Asian ideograph */ - {"\x93", 0, 0x216872}, /* East Asian ideograph */ - {"\x9A", 0, 0x216878}, /* East Asian ideograph */ - {"\xA6", 0, 0x21687E}, /* East Asian ideograph */ - {"\xA4", 0, 0x216929}, /* East Asian ideograph */ - {"\xA9", 0, 0x21692B}, /* East Asian ideograph */ - {"\xB1", 0, 0x216930}, /* East Asian ideograph */ - {"\xB5", 0, 0x21693E}, /* East Asian ideograph */ - {"\xB3", 0, 0x216940}, /* East Asian ideograph */ - {"\xBA", 0, 0x216944}, /* East Asian ideograph */ - {"\xB9", 0, 0x216947}, /* East Asian ideograph */ - {"\xBB", 0, 0x216948}, /* East Asian ideograph */ - {"\xBF", 0, 0x27327A}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D3251}, /* East Asian ideograph */ - {"\x9E", 0, 0x2D3944}, /* East Asian ideograph */ - {"\x97", 0, 0x2D4228}, /* East Asian ideograph */ - {"\x96", 0, 0x695130}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page18 = { - marc8r_31page18_flat, 0 -}; -/* PAGE 17 */ -struct yaz_iconv_trie_flat marc8r_31page17_flat[] = { - {"\x85", 0, 0x213249}, /* East Asian ideograph */ - {"\xA7", 0, 0x21324E}, /* East Asian ideograph */ - {"\xAE", 0, 0x21324F}, /* East Asian ideograph */ - {"\xB1", 0, 0x213250}, /* East Asian ideograph */ - {"\xA5", 0, 0x213251}, /* East Asian ideograph */ - {"\x96", 0, 0x213252}, /* East Asian ideograph */ - {"\xAD", 0, 0x213253}, /* East Asian ideograph */ - {"\x9A", 0, 0x213254}, /* East Asian ideograph */ - {"\x95", 0, 0x213255}, /* East Asian ideograph */ - {"\x8F", 0, 0x213257}, /* East Asian ideograph */ - {"\x91", 0, 0x213258}, /* East Asian ideograph */ - {"\xBB", 0, 0x21325B}, /* East Asian ideograph */ - {"\xB5", 0, 0x21325C}, /* East Asian ideograph */ - {"\xB9", 0, 0x21325D}, /* East Asian ideograph */ - {"\x87", 0, 0x216771}, /* East Asian ideograph */ - {"\x89", 0, 0x216775}, /* East Asian ideograph */ - {"\x8A", 0, 0x21677B}, /* East Asian ideograph */ - {"\x82", 0, 0x216822}, /* East Asian ideograph */ - {"\x8D", 0, 0x21682E}, /* East Asian ideograph */ - {"\x94", 0, 0x216832}, /* East Asian ideograph */ - {"\xAF", 0, 0x216834}, /* East Asian ideograph */ - {"\xA6", 0, 0x216835}, /* East Asian ideograph */ - {"\xB4", 0, 0x21683A}, /* East Asian ideograph */ - {"\x8E", 0, 0x21683B}, /* East Asian ideograph */ - {"\x9D", 0, 0x21683C}, /* East Asian ideograph */ - {"\xB3", 0, 0x216841}, /* East Asian ideograph */ - {"\xA8", 0, 0x216842}, /* East Asian ideograph */ - {"\xB0", 0, 0x216844}, /* East Asian ideograph */ - {"\x99", 0, 0x216846}, /* East Asian ideograph */ - {"\xAC", 0, 0x216855}, /* East Asian ideograph */ - {"\xBC", 0, 0x216861}, /* East Asian ideograph */ - {"\xBE", 0, 0x216868}, /* East Asian ideograph */ - {"\xBD", 0, 0x21686A}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D3253}, /* East Asian ideograph */ - {"\xA7", 0, 0x4B324E}, /* East Asian ideograph (variant of EACC 21324E) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page17 = { - marc8r_31page17_flat, 0 -}; -/* PAGE 16 */ -struct yaz_iconv_trie_flat marc8r_31page16_flat[] = { - {"\x8D", 0, 0x21323D}, /* East Asian ideograph */ - {"\xA2", 0, 0x21323E}, /* East Asian ideograph */ - {"\x85", 0, 0x21323F}, /* East Asian ideograph */ - {"\x99", 0, 0x213240}, /* East Asian ideograph */ - {"\x91", 0, 0x213241}, /* East Asian ideograph */ - {"\x80", 0, 0x213242}, /* East Asian ideograph */ - {"\x96", 0, 0x213243}, /* East Asian ideograph */ - {"\x98", 0, 0x213244}, /* East Asian ideograph */ - {"\xAD", 0, 0x213245}, /* East Asian ideograph */ - {"\xB3", 0, 0x213246}, /* East Asian ideograph */ - {"\xB5", 0, 0x213247}, /* East Asian ideograph */ - {"\xB5", 0, 0x213247}, /* East Asian ideograph */ - {"\xB2", 0, 0x213248}, /* East Asian ideograph */ - {"\xBE", 0, 0x21324A}, /* East Asian ideograph */ - {"\xAC", 0, 0x21324B}, /* East Asian ideograph */ - {"\xB7", 0, 0x21324C}, /* East Asian ideograph */ - {"\xAF", 0, 0x21324D}, /* East Asian ideograph */ - {"\x94", 0, 0x21674E}, /* East Asian ideograph */ - {"\x9E", 0, 0x216750}, /* East Asian ideograph */ - {"\x9B", 0, 0x216752}, /* East Asian ideograph */ - {"\x9A", 0, 0x216753}, /* East Asian ideograph */ - {"\xA3", 0, 0x216757}, /* East Asian ideograph */ - {"\x8C", 0, 0x21675A}, /* East Asian ideograph */ - {"\x88", 0, 0x21675C}, /* East Asian ideograph */ - {"\x8E", 0, 0x216762}, /* East Asian ideograph */ - {"\x95", 0, 0x216764}, /* East Asian ideograph */ - {"\xA6", 0, 0x216767}, /* East Asian ideograph */ - {"\x92", 0, 0x21676A}, /* East Asian ideograph */ - {"\x9C", 0, 0x21676C}, /* East Asian ideograph */ - {"\xB4", 0, 0x21677C}, /* East Asian ideograph */ - {"\xBA", 0, 0x21682C}, /* East Asian ideograph */ - {"\xA7", 0, 0x273262}, /* East Asian ideograph */ - {"\xA8", 0, 0x273269}, /* East Asian ideograph */ - {"\xA9", 0, 0x276944}, /* East Asian ideograph */ - {"\xA5", 0, 0x276948}, /* East Asian ideograph */ - {"\xBB", 0, 0x2D325F}, /* East Asian ideograph (variant of EACC 4B325F) */ - {"\xB2", 0, 0x4B3248}, /* East Asian ideograph */ - {"\xBB", 0, 0x4B325F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page16 = { - marc8r_31page16_flat, 0 -}; -/* PAGE 15 */ -struct yaz_iconv_trie_flat marc8r_31page15_flat[] = { - {"\x9C", 0, 0x21322E}, /* East Asian ideograph */ - {"\x8F", 0, 0x21322F}, /* East Asian ideograph */ - {"\xA5", 0, 0x213230}, /* East Asian ideograph */ - {"\x87", 0, 0x213231}, /* East Asian ideograph */ - {"\x9A", 0, 0x213232}, /* East Asian ideograph */ - {"\x89", 0, 0x213233}, /* East Asian ideograph */ - {"\x83", 0, 0x213234}, /* East Asian ideograph */ - {"\xB4", 0, 0x213235}, /* East Asian ideograph */ - {"\xB6", 0, 0x213236}, /* East Asian ideograph */ - {"\x8E", 0, 0x213237}, /* East Asian ideograph */ - {"\xB5", 0, 0x213238}, /* East Asian ideograph */ - {"\x8C", 0, 0x213239}, /* East Asian ideograph */ - {"\x95", 0, 0x21323A}, /* East Asian ideograph */ - {"\xB7", 0, 0x21323C}, /* East Asian ideograph */ - {"\xBD", 0, 0x213256}, /* East Asian ideograph */ - {"\xAF", 0, 0x216722}, /* East Asian ideograph */ - {"\x90", 0, 0x216723}, /* East Asian ideograph */ - {"\xB0", 0, 0x216725}, /* East Asian ideograph */ - {"\x93", 0, 0x216729}, /* East Asian ideograph */ - {"\xAA", 0, 0x21672A}, /* East Asian ideograph */ - {"\x96", 0, 0x21672C}, /* East Asian ideograph */ - {"\xAD", 0, 0x216731}, /* East Asian ideograph */ - {"\x9D", 0, 0x216738}, /* East Asian ideograph */ - {"\x88", 0, 0x216739}, /* East Asian ideograph */ - {"\x98", 0, 0x21673B}, /* East Asian ideograph */ - {"\xB2", 0, 0x21673C}, /* East Asian ideograph */ - {"\x81", 0, 0x216741}, /* East Asian ideograph */ - {"\xBA", 0, 0x216748}, /* East Asian ideograph */ - {"\xAC", 0, 0x21674A}, /* East Asian ideograph */ - {"\x9F", 0, 0x21674B}, /* East Asian ideograph */ - {"\xAB", 0, 0x21674D}, /* East Asian ideograph */ - {"\xBF", 0, 0x273267}, /* East Asian ideograph */ - {"\xBB", 0, 0x276822}, /* East Asian ideograph */ - {"\xBE", 0, 0x276842}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page15 = { - marc8r_31page15_flat, 0 -}; -/* PAGE 14 */ -struct yaz_iconv_trie_flat marc8r_31page14_flat[] = { - {"\x89", 0, 0x21316C}, /* East Asian ideograph */ - {"\x8D", 0, 0x21316E}, /* East Asian ideograph */ - {"\xA6", 0, 0x213170}, /* East Asian ideograph */ - {"\x8C", 0, 0x213171}, /* East Asian ideograph */ - {"\xA5", 0, 0x213172}, /* East Asian ideograph */ - {"\x91", 0, 0x213173}, /* East Asian ideograph */ - {"\xA8", 0, 0x213175}, /* East Asian ideograph */ - {"\x94", 0, 0x213176}, /* East Asian ideograph */ - {"\x96", 0, 0x213177}, /* East Asian ideograph */ - {"\xA9", 0, 0x213178}, /* East Asian ideograph */ - {"\x86", 0, 0x213179}, /* East Asian ideograph */ - {"\x92", 0, 0x21317B}, /* East Asian ideograph */ - {"\xBC", 0, 0x21317C}, /* East Asian ideograph */ - {"\x9A", 0, 0x21317D}, /* East Asian ideograph */ - {"\x98", 0, 0x213221}, /* East Asian ideograph */ - {"\xA1", 0, 0x213223}, /* East Asian ideograph */ - {"\x8B", 0, 0x213224}, /* East Asian ideograph */ - {"\x99", 0, 0x213225}, /* East Asian ideograph */ - {"\x80", 0, 0x213226}, /* East Asian ideograph */ - {"\xAD", 0, 0x213229}, /* East Asian ideograph */ - {"\x83", 0, 0x21322A}, /* East Asian ideograph */ - {"\xAA", 0, 0x21322C}, /* East Asian ideograph */ - {"\xAB", 0, 0x21322D}, /* East Asian ideograph */ - {"\x8F", 0, 0x21323B}, /* East Asian ideograph */ - {"\x9E", 0, 0x216646}, /* East Asian ideograph */ - {"\xBF", 0, 0x216648}, /* East Asian ideograph */ - {"\x85", 0, 0x216649}, /* East Asian ideograph */ - {"\x87", 0, 0x21664C}, /* East Asian ideograph */ - {"\x93", 0, 0x21664D}, /* East Asian ideograph */ - {"\xA2", 0, 0x21664E}, /* East Asian ideograph */ - {"\xB7", 0, 0x21665B}, /* East Asian ideograph */ - {"\xAE", 0, 0x21665E}, /* East Asian ideograph */ - {"\x9C", 0, 0x216662}, /* East Asian ideograph */ - {"\xAC", 0, 0x216666}, /* East Asian ideograph */ - {"\x90", 0, 0x216669}, /* East Asian ideograph */ - {"\xBD", 0, 0x216679}, /* East Asian ideograph */ - {"\x95", 0, 0x216746}, /* East Asian ideograph */ - {"\xBA", 0, 0x273247}, /* East Asian ideograph */ - {"\xBE", 0, 0x27324A}, /* East Asian ideograph */ - {"\x9F", 0, 0x27562E}, /* East Asian ideograph */ - {"\x82", 0, 0x2D3147}, /* East Asian ideograph */ - {"\x88", 0, 0x2D314C}, /* East Asian ideograph */ - {"\xB9", 0, 0x2D3261}, /* East Asian ideograph */ - {"\xA3", 0, 0x3F3078}, /* East Asian ideograph */ - {"\xA9", 0, 0x4B3178}, /* East Asian ideograph (variant of EACC 213178) */ - {"\xA4", 0, 0x4B317C}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page14 = { - marc8r_31page14_flat, 0 -}; -/* PAGE 13 */ -struct yaz_iconv_trie_flat marc8r_31page13_flat[] = { - {"\xB9", 0, 0x21303E}, /* East Asian ideograph */ - {"\x81", 0, 0x213B3C}, /* East Asian ideograph */ - {"\x84", 0, 0x213B3D}, /* East Asian ideograph */ - {"\x89", 0, 0x213B3E}, /* East Asian ideograph */ - {"\x88", 0, 0x213B3F}, /* East Asian ideograph */ - {"\x87", 0, 0x213B40}, /* East Asian ideograph */ - {"\x8A", 0, 0x213B41}, /* East Asian ideograph */ - {"\x8B", 0, 0x213B42}, /* East Asian ideograph */ - {"\x8D", 0, 0x213B43}, /* East Asian ideograph */ - {"\x8E", 0, 0x213B44}, /* East Asian ideograph */ - {"\x8F", 0, 0x213B45}, /* East Asian ideograph */ - {"\x91", 0, 0x213B46}, /* East Asian ideograph */ - {"\x96", 0, 0x213B47}, /* East Asian ideograph */ - {"\x9A", 0, 0x213B48}, /* East Asian ideograph */ - {"\xA4", 0, 0x213B49}, /* East Asian ideograph */ - {"\xAC", 0, 0x213B4A}, /* East Asian ideograph */ - {"\xB1", 0, 0x213B4B}, /* East Asian ideograph */ - {"\xB7", 0, 0x213B4C}, /* East Asian ideograph */ - {"\xB8", 0, 0x213B4D}, /* East Asian ideograph */ - {"\xBA", 0, 0x213B4E}, /* East Asian ideograph */ - {"\xBC", 0, 0x213B4F}, /* East Asian ideograph */ - {"\xBF", 0, 0x213B52}, /* East Asian ideograph */ - {"\xBE", 0, 0x213B53}, /* East Asian ideograph */ - {"\x80", 0, 0x222233}, /* East Asian ideograph */ - {"\x95", 0, 0x22223C}, /* East Asian ideograph */ - {"\xA2", 0, 0x222246}, /* East Asian ideograph */ - {"\xA5", 0, 0x222248}, /* East Asian ideograph */ - {"\xAA", 0, 0x22224B}, /* East Asian ideograph */ - {"\xAF", 0, 0x222252}, /* East Asian ideograph */ - {"\xB2", 0, 0x22225B}, /* East Asian ideograph */ - {"\xBB", 0, 0x222263}, /* East Asian ideograph */ - {"\xA1", 0, 0x223930}, /* East Asian ideograph */ - {"\xBD", 0, 0x273263}, /* East Asian ideograph (duplicate simplified) */ - {"\x9D", 0, 0x273730}, /* East Asian ideograph */ - {"\xA7", 0, 0x273845}, /* East Asian ideograph */ - {"\x98", 0, 0x273859}, /* East Asian ideograph */ - {"\x86", 0, 0x273B40}, /* East Asian ideograph */ - {"\xB4", 0, 0x273B4C}, /* East Asian ideograph */ - {"\x94", 0, 0x274A45}, /* East Asian ideograph */ - {"\xBD", 0, 0x274D3C}, /* East Asian ideograph */ - {"\x85", 0, 0x2D336B}, /* East Asian ideograph */ - {"\x82", 0, 0x2D3B3F}, /* East Asian ideograph */ - {"\x86", 0, 0x2D3B40}, /* East Asian ideograph (variant of EACC 273B40) */ - {"\x92", 0, 0x2D4A45}, /* East Asian ideograph */ - {"\xA8", 0, 0x2D632B}, /* East Asian ideograph */ - {"\xA0", 0, 0x396179}, /* East Asian ideograph */ - {"\x9F", 0, 0x3F6179}, /* East Asian ideograph */ - {"\x9C", 0, 0x4B372F}, /* East Asian ideograph */ - {"\x93", 0, 0x4B4A45}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page13 = { - marc8r_31page13_flat, 0 -}; -/* PAGE 12 */ -struct yaz_iconv_trie_flat marc8r_31page12_flat[] = { - {"\xA1", 0, 0x213036}, /* East Asian ideograph */ - {"\x8D", 0, 0x213340}, /* East Asian ideograph */ - {"\x8C", 0, 0x213341}, /* East Asian ideograph */ - {"\x9C", 0, 0x213344}, /* East Asian ideograph */ - {"\x9D", 0, 0x213345}, /* East Asian ideograph */ - {"\xB0", 0, 0x213347}, /* East Asian ideograph */ - {"\xB1", 0, 0x213348}, /* East Asian ideograph */ - {"\xB3", 0, 0x213349}, /* East Asian ideograph */ - {"\xBA", 0, 0x21334B}, /* East Asian ideograph */ - {"\xB9", 0, 0x21334C}, /* East Asian ideograph */ - {"\xB8", 0, 0x21334D}, /* East Asian ideograph */ - {"\xBD", 0, 0x21334E}, /* East Asian ideograph */ - {"\x8A", 0, 0x216A43}, /* East Asian ideograph */ - {"\x87", 0, 0x216A46}, /* East Asian ideograph */ - {"\x91", 0, 0x216A4E}, /* East Asian ideograph */ - {"\x90", 0, 0x216A4F}, /* East Asian ideograph */ - {"\x93", 0, 0x216A54}, /* East Asian ideograph */ - {"\x99", 0, 0x216A63}, /* East Asian ideograph */ - {"\x9F", 0, 0x216A66}, /* East Asian ideograph */ - {"\xA2", 0, 0x216A68}, /* East Asian ideograph */ - {"\xB5", 0, 0x216A78}, /* East Asian ideograph */ - {"\xB7", 0, 0x216A79}, /* East Asian ideograph */ - {"\xA7", 0, 0x222664}, /* East Asian ideograph */ - {"\xB6", 0, 0x273273}, /* East Asian ideograph */ - {"\xAF", 0, 0x273348}, /* East Asian ideograph */ - {"\xA0", 0, 0x273C6B}, /* East Asian ideograph */ - {"\xAD", 0, 0x273F3F}, /* East Asian ideograph */ - {"\xBB", 0, 0x274176}, /* East Asian ideograph */ - {"\x86", 0, 0x27484B}, /* East Asian ideograph */ - {"\xBF", 0, 0x275E4B}, /* East Asian ideograph */ - {"\xA4", 0, 0x276233}, /* East Asian ideograph */ - {"\xBC", 0, 0x2D3C6A}, /* East Asian ideograph */ - {"\x89", 0, 0x2D475B}, /* East Asian ideograph */ - {"\x84", 0, 0x2D475F}, /* East Asian ideograph */ - {"\x8F", 0, 0x2D4829}, /* East Asian ideograph */ - {"\x9B", 0, 0x333344}, /* East Asian ideograph */ - {"\xBE", 0, 0x33334E}, /* East Asian ideograph */ - {"\xB4", 0, 0x333F3F}, /* East Asian ideograph */ - {"\x80", 0, 0x39476F}, /* East Asian ideograph */ - {"\x88", 0, 0x3F476F}, /* East Asian ideograph */ - {"\x85", 0, 0x4B476C}, /* East Asian ideograph */ - {"\x96", 0, 0x4B484B}, /* East Asian ideograph */ - {"\xA6", 0, 0x4B5647}, /* East Asian ideograph */ - {"\x8B", 0, 0x4B5F49}, /* East Asian ideograph */ - {"\xAB", 0, 0x4D5973}, /* East Asian ideograph */ - {"\x83", 0, 0x51384D}, /* East Asian ideograph */ - {"\xAA", 0, 0x694664}, /* East Asian ideograph */ - {"\xA9", 0, 0x69515E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page12 = { - marc8r_31page12_flat, 0 -}; -/* PAGE 11 */ -struct yaz_iconv_trie_flat marc8r_31page11_flat[] = { - {"\xA1", 0, 0x213157}, /* East Asian ideograph */ - {"\x91", 0, 0x213158}, /* East Asian ideograph */ - {"\x9E", 0, 0x21315C}, /* East Asian ideograph */ - {"\xA0", 0, 0x21315D}, /* East Asian ideograph */ - {"\x8F", 0, 0x21315E}, /* East Asian ideograph */ - {"\x9A", 0, 0x213160}, /* East Asian ideograph */ - {"\x9D", 0, 0x213161}, /* East Asian ideograph */ - {"\x83", 0, 0x213162}, /* East Asian ideograph */ - {"\x98", 0, 0x213163}, /* East Asian ideograph */ - {"\x9F", 0, 0x213164}, /* East Asian ideograph */ - {"\x8A", 0, 0x213165}, /* East Asian ideograph */ - {"\x90", 0, 0x213167}, /* East Asian ideograph */ - {"\x84", 0, 0x213168}, /* East Asian ideograph */ - {"\x82", 0, 0x213169}, /* East Asian ideograph */ - {"\x8E", 0, 0x21316A}, /* East Asian ideograph */ - {"\x97", 0, 0x21316B}, /* East Asian ideograph */ - {"\xAF", 0, 0x21316F}, /* East Asian ideograph */ - {"\xB8", 0, 0x213174}, /* East Asian ideograph */ - {"\xBA", 0, 0x21317E}, /* East Asian ideograph */ - {"\xB1", 0, 0x213222}, /* East Asian ideograph */ - {"\xAE", 0, 0x213227}, /* East Asian ideograph */ - {"\xB3", 0, 0x213228}, /* East Asian ideograph */ - {"\xBE", 0, 0x21322B}, /* East Asian ideograph */ - {"\x8D", 0, 0x21657C}, /* East Asian ideograph */ - {"\xA4", 0, 0x216622}, /* East Asian ideograph */ - {"\x85", 0, 0x216627}, /* East Asian ideograph */ - {"\x89", 0, 0x216629}, /* East Asian ideograph */ - {"\xA5", 0, 0x21662A}, /* East Asian ideograph */ - {"\xA7", 0, 0x21662C}, /* East Asian ideograph */ - {"\x9C", 0, 0x216633}, /* East Asian ideograph */ - {"\x94", 0, 0x216635}, /* East Asian ideograph */ - {"\x81", 0, 0x216637}, /* East Asian ideograph */ - {"\x9B", 0, 0x21663B}, /* East Asian ideograph */ - {"\x86", 0, 0x21663E}, /* East Asian ideograph */ - {"\xB5", 0, 0x216652}, /* East Asian ideograph */ - {"\xB4", 0, 0x216659}, /* East Asian ideograph */ - {"\xB6", 0, 0x216661}, /* East Asian ideograph */ - {"\xA9", 0, 0x273179}, /* East Asian ideograph */ - {"\xAD", 0, 0x273261}, /* East Asian ideograph */ - {"\xA6", 0, 0x273265}, /* East Asian ideograph */ - {"\xAA", 0, 0x27326A}, /* East Asian ideograph */ - {"\xA8", 0, 0x27326B}, /* East Asian ideograph */ - {"\xBB", 0, 0x333240}, /* East Asian ideograph */ - {"\xB2", 0, 0x394243}, /* East Asian ideograph */ - {"\xA3", 0, 0x4B6637}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page11 = { - marc8r_31page11_flat, 0 -}; -/* PAGE 10 */ -struct yaz_iconv_trie_flat marc8r_31page10_flat[] = { - {"\x9D", 0, 0x213145}, /* East Asian ideograph */ - {"\x8D", 0, 0x213148}, /* East Asian ideograph */ - {"\x9B", 0, 0x21314B}, /* East Asian ideograph */ - {"\x86", 0, 0x21314C}, /* East Asian ideograph */ - {"\x8B", 0, 0x21314E}, /* East Asian ideograph */ - {"\x96", 0, 0x21314F}, /* East Asian ideograph */ - {"\x83", 0, 0x213151}, /* East Asian ideograph */ - {"\x88", 0, 0x213153}, /* East Asian ideograph */ - {"\x8F", 0, 0x213155}, /* East Asian ideograph */ - {"\xB5", 0, 0x213159}, /* East Asian ideograph */ - {"\xAF", 0, 0x21315A}, /* East Asian ideograph */ - {"\xBF", 0, 0x21315B}, /* East Asian ideograph */ - {"\xB6", 0, 0x21315F}, /* East Asian ideograph */ - {"\xAE", 0, 0x213166}, /* East Asian ideograph */ - {"\x82", 0, 0x216556}, /* East Asian ideograph */ - {"\x98", 0, 0x21655A}, /* East Asian ideograph */ - {"\x92", 0, 0x21655B}, /* East Asian ideograph */ - {"\x80", 0, 0x216560}, /* East Asian ideograph */ - {"\xA2", 0, 0x216564}, /* East Asian ideograph */ - {"\x91", 0, 0x216566}, /* East Asian ideograph */ - {"\x95", 0, 0x216567}, /* East Asian ideograph */ - {"\x97", 0, 0x21656D}, /* East Asian ideograph */ - {"\x94", 0, 0x21656E}, /* East Asian ideograph */ - {"\x9A", 0, 0x216571}, /* East Asian ideograph */ - {"\x81", 0, 0x216572}, /* East Asian ideograph */ - {"\x9C", 0, 0x216576}, /* East Asian ideograph */ - {"\x90", 0, 0x216577}, /* East Asian ideograph */ - {"\xB7", 0, 0x216626}, /* East Asian ideograph */ - {"\xB9", 0, 0x216643}, /* East Asian ideograph */ - {"\xA0", 0, 0x27315D}, /* East Asian ideograph */ - {"\xA7", 0, 0x273235}, /* East Asian ideograph */ - {"\xA6", 0, 0x273238}, /* East Asian ideograph */ - {"\xA5", 0, 0x273251}, /* East Asian ideograph */ - {"\xA8", 0, 0x273258}, /* East Asian ideograph */ - {"\xAC", 0, 0x27325E}, /* East Asian ideograph */ - {"\xA9", 0, 0x273260}, /* East Asian ideograph */ - {"\xAA", 0, 0x276871}, /* East Asian ideograph */ - {"\xA3", 0, 0x2D315F}, /* East Asian ideograph */ - {"\xAD", 0, 0x2D3263}, /* East Asian ideograph */ - {"\x84", 0, 0x2D396E}, /* East Asian ideograph */ - {"\xA1", 0, 0x33325D}, /* East Asian ideograph */ - {"\xAB", 0, 0x4B3130}, /* East Asian ideograph */ - {"\x89", 0, 0x4B5861}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page10 = { - marc8r_31page10_flat, 0 -}; -/* PAGE 9 */ -struct yaz_iconv_trie_flat marc8r_31page9_flat[] = { - {"\x8F", 0, 0x21312A}, /* East Asian ideograph */ - {"\x8D", 0, 0x21312B}, /* East Asian ideograph */ - {"\x87", 0, 0x21312D}, /* East Asian ideograph */ - {"\x97", 0, 0x21312E}, /* East Asian ideograph */ - {"\x9E", 0, 0x213130}, /* East Asian ideograph */ - {"\x9B", 0, 0x213132}, /* East Asian ideograph */ - {"\x95", 0, 0x213133}, /* East Asian ideograph */ - {"\x90", 0, 0x213135}, /* East Asian ideograph */ - {"\x91", 0, 0x213136}, /* East Asian ideograph */ - {"\x88", 0, 0x213138}, /* East Asian ideograph */ - {"\x86", 0, 0x213139}, /* East Asian ideograph */ - {"\x83", 0, 0x21313B}, /* East Asian ideograph */ - {"\x94", 0, 0x21313C}, /* East Asian ideograph */ - {"\xA3", 0, 0x21313E}, /* East Asian ideograph */ - {"\x9C", 0, 0x21313F}, /* East Asian ideograph */ - {"\xA0", 0, 0x213140}, /* East Asian ideograph */ - {"\x8E", 0, 0x213142}, /* East Asian ideograph */ - {"\x9D", 0, 0x213143}, /* East Asian ideograph */ - {"\xAF", 0, 0x213146}, /* East Asian ideograph */ - {"\xB5", 0, 0x213147}, /* East Asian ideograph */ - {"\xB3", 0, 0x213149}, /* East Asian ideograph */ - {"\xBF", 0, 0x21314A}, /* East Asian ideograph */ - {"\xAC", 0, 0x21314D}, /* East Asian ideograph */ - {"\xBB", 0, 0x213152}, /* East Asian ideograph */ - {"\xA9", 0, 0x213154}, /* East Asian ideograph */ - {"\xBE", 0, 0x213156}, /* East Asian ideograph */ - {"\x98", 0, 0x216536}, /* East Asian ideograph */ - {"\xA2", 0, 0x216537}, /* East Asian ideograph */ - {"\xA4", 0, 0x216539}, /* East Asian ideograph */ - {"\x89", 0, 0x21653A}, /* East Asian ideograph */ - {"\xA6", 0, 0x216540}, /* East Asian ideograph */ - {"\xA7", 0, 0x216544}, /* East Asian ideograph */ - {"\xA8", 0, 0x21654D}, /* East Asian ideograph */ - {"\x9A", 0, 0x21654E}, /* East Asian ideograph */ - {"\x9F", 0, 0x21654F}, /* East Asian ideograph */ - {"\xBC", 0, 0x216557}, /* East Asian ideograph */ - {"\xBD", 0, 0x21655C}, /* East Asian ideograph */ - {"\xB4", 0, 0x216561}, /* East Asian ideograph */ - {"\xB6", 0, 0x216562}, /* East Asian ideograph */ - {"\x8C", 0, 0x21656C}, /* East Asian ideograph */ - {"\xB9", 0, 0x216570}, /* East Asian ideograph */ - {"\xB8", 0, 0x216573}, /* East Asian ideograph */ - {"\xBA", 0, 0x21657B}, /* East Asian ideograph */ - {"\x99", 0, 0x276076}, /* East Asian ideograph */ - {"\x93", 0, 0x27615A}, /* East Asian ideograph */ - {"\xA5", 0, 0x276775}, /* East Asian ideograph */ - {"\xB0", 0, 0x2D4C7E}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page9 = { - marc8r_31page9_flat, 0 -}; -/* PAGE 8 */ -struct yaz_iconv_trie_flat marc8r_31page8_flat[] = { - {"\x89", 0, 0x213079}, /* East Asian ideograph */ - {"\x8A", 0, 0x21307D}, /* East Asian ideograph */ - {"\x95", 0, 0x21307E}, /* East Asian ideograph */ - {"\x91", 0, 0x213121}, /* East Asian ideograph */ - {"\x90", 0, 0x213122}, /* East Asian ideograph */ - {"\x8F", 0, 0x213123}, /* East Asian ideograph */ - {"\x81", 0, 0x213125}, /* East Asian ideograph */ - {"\xB4", 0, 0x21312C}, /* East Asian ideograph */ - {"\xBA", 0, 0x21312F}, /* East Asian ideograph */ - {"\xB0", 0, 0x213134}, /* East Asian ideograph */ - {"\xBD", 0, 0x213137}, /* East Asian ideograph */ - {"\xB8", 0, 0x21313A}, /* East Asian ideograph */ - {"\xBC", 0, 0x21313D}, /* East Asian ideograph */ - {"\xAF", 0, 0x213141}, /* East Asian ideograph */ - {"\xB6", 0, 0x213144}, /* East Asian ideograph */ - {"\x88", 0, 0x216472}, /* East Asian ideograph */ - {"\x8E", 0, 0x216473}, /* East Asian ideograph */ - {"\x83", 0, 0x216475}, /* East Asian ideograph */ - {"\xA2", 0, 0x21647C}, /* East Asian ideograph */ - {"\x87", 0, 0x216528}, /* East Asian ideograph */ - {"\x80", 0, 0x21652A}, /* East Asian ideograph */ - {"\x8B", 0, 0x21652C}, /* East Asian ideograph */ - {"\xBB", 0, 0x216532}, /* East Asian ideograph */ - {"\xBE", 0, 0x21653F}, /* East Asian ideograph */ - {"\xA5", 0, 0x273226}, /* East Asian ideograph */ - {"\xA6", 0, 0x27322D}, /* East Asian ideograph */ - {"\x9F", 0, 0x273233}, /* East Asian ideograph */ - {"\xA7", 0, 0x273243}, /* East Asian ideograph */ - {"\x9E", 0, 0x273244}, /* East Asian ideograph */ - {"\xA0", 0, 0x273246}, /* East Asian ideograph */ - {"\xA4", 0, 0x27324C}, /* East Asian ideograph */ - {"\xAA", 0, 0x273256}, /* East Asian ideograph */ - {"\x98", 0, 0x273266}, /* East Asian ideograph */ - {"\x99", 0, 0x273923}, /* East Asian ideograph */ - {"\x9A", 0, 0x27435A}, /* East Asian ideograph */ - {"\x97", 0, 0x274D56}, /* East Asian ideograph */ - {"\x9C", 0, 0x276649}, /* East Asian ideograph */ - {"\x9B", 0, 0x27677C}, /* East Asian ideograph */ - {"\xB2", 0, 0x2D3140}, /* East Asian ideograph */ - {"\x8D", 0, 0x393054}, /* East Asian ideograph */ - {"\x9D", 0, 0x393246}, /* East Asian ideograph */ - {"\xAB", 0, 0x4B312D}, /* East Asian ideograph */ - {"\xB6", 0, 0x4B3144}, /* East Asian ideograph (variant of EACC 213144) */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page8 = { - marc8r_31page8_flat, 0 -}; -/* PAGE 7 */ -struct yaz_iconv_trie_flat marc8r_31page7_flat[] = { - {"\x8A", 0, 0x213065}, /* East Asian ideograph */ - {"\x81", 0, 0x213066}, /* East Asian ideograph */ - {"\x83", 0, 0x213068}, /* East Asian ideograph */ - {"\x84", 0, 0x213069}, /* East Asian ideograph */ - {"\x8D", 0, 0x21306B}, /* East Asian ideograph */ - {"\x87", 0, 0x21306C}, /* East Asian ideograph */ - {"\x8B", 0, 0x21306D}, /* East Asian ideograph */ - {"\xA4", 0, 0x21306E}, /* East Asian ideograph */ - {"\x98", 0, 0x21306F}, /* East Asian ideograph */ - {"\x95", 0, 0x213070}, /* East Asian ideograph */ - {"\x96", 0, 0x213071}, /* East Asian ideograph */ - {"\x9E", 0, 0x213072}, /* East Asian ideograph */ - {"\xA3", 0, 0x213073}, /* East Asian ideograph */ - {"\x94", 0, 0x213074}, /* East Asian ideograph */ - {"\x97", 0, 0x213075}, /* East Asian ideograph */ - {"\x99", 0, 0x213076}, /* East Asian ideograph */ - {"\xA5", 0, 0x213077}, /* East Asian ideograph */ - {"\xBF", 0, 0x213078}, /* East Asian ideograph */ - {"\xBB", 0, 0x21307C}, /* East Asian ideograph */ - {"\xB2", 0, 0x213124}, /* East Asian ideograph */ - {"\xB3", 0, 0x213126}, /* East Asian ideograph */ - {"\xB6", 0, 0x213127}, /* East Asian ideograph */ - {"\xB0", 0, 0x213128}, /* East Asian ideograph */ - {"\x89", 0, 0x21645E}, /* East Asian ideograph */ - {"\x88", 0, 0x216461}, /* East Asian ideograph */ - {"\x8E", 0, 0x216462}, /* East Asian ideograph */ - {"\xA8", 0, 0x216463}, /* East Asian ideograph */ - {"\xA1", 0, 0x21646B}, /* East Asian ideograph */ - {"\xB5", 0, 0x216527}, /* East Asian ideograph */ - {"\x91", 0, 0x27314F}, /* East Asian ideograph */ - {"\x93", 0, 0x27316C}, /* East Asian ideograph */ - {"\xAC", 0, 0x273173}, /* East Asian ideograph */ - {"\x83", 0, 0x27322E}, /* East Asian ideograph (duplicate simplified) */ - {"\x85", 0, 0x273249}, /* East Asian ideograph */ - {"\x86", 0, 0x273255}, /* East Asian ideograph */ - {"\xAA", 0, 0x273259}, /* East Asian ideograph */ - {"\xB7", 0, 0x27325D}, /* East Asian ideograph */ - {"\x8E", 0, 0x273D6C}, /* East Asian ideograph */ - {"\x8F", 0, 0x2D3132}, /* East Asian ideograph */ - {"\x9F", 0, 0x2D3458}, /* East Asian ideograph */ - {"\x9D", 0, 0x2D3543}, /* East Asian ideograph */ - {"\xBD", 0, 0x333D54}, /* East Asian ideograph */ - {"\xA4", 0, 0x4B306E}, /* East Asian ideograph (variant of EACC 21306E) */ - {"\xAD", 0, 0x4B3072}, /* East Asian ideograph */ - {"\xAE", 0, 0x4B3231}, /* East Asian ideograph */ - {"\x80", 0, 0x4B4B77}, /* East Asian ideograph */ - {"\x82", 0, 0x4B682E}, /* East Asian ideograph */ - {"\xAB", 0, 0x70586F}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page7 = { - marc8r_31page7_flat, 0 -}; -/* PAGE 6 */ -struct yaz_iconv_trie_dir marc8r_31page6_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x2D632D} /* East Asian ideograph */, - {0, 0, 0x39304C} /* East Asian ideograph */, - {0, 0, 0x21304D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x216446} /* East Asian ideograph */, - {0, 0, 0x274D73} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27595E} /* East Asian ideograph */, - {0, 0, 0x2D4A3B} /* East Asian ideograph */, - {0, 0, 0x4B3050} /* East Asian ideograph */, - {0, 0, 0x213050} /* East Asian ideograph */, - {0, 0, 0x213051} /* East Asian ideograph */, - {0, 0, 0x275747} /* East Asian ideograph */, - {0, 0, 0x213052} /* East Asian ideograph */, - {0, 0, 0x27564C} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275F54} /* East Asian ideograph */, - {0, 0, 0x213055} /* East Asian ideograph */, - {0, 0, 0x33332A} /* East Asian ideograph */, - {0, 0, 0x213054} /* East Asian ideograph */, - {0, 0, 0x213053} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x3F4629} /* East Asian ideograph */, - {0, 0, 0x513057} /* East Asian ideograph */, - {0, 0, 0x213057} /* East Asian ideograph (variant of EACC 4B3057) */, - {0, 0, 0x273058} /* East Asian ideograph */, - {0, 0, 0x213059} /* East Asian ideograph */, - {0, 0, 0x2D3058} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213058} /* East Asian ideograph */, - {0, 0, 0x21305A} /* East Asian ideograph */, - {0, 0, 0x216450} /* East Asian ideograph */, - {0, 0, 0x21305B} /* East Asian ideograph */, - {0, 0, 0x216451} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21305E} /* East Asian ideograph */, - {0, 0, 0x21305D} /* East Asian ideograph */, - {0, 0, 0x21305C} /* East Asian ideograph */, - {0, 0, 0x274B7A} /* East Asian ideograph */, - {0, 0, 0x21305F} /* East Asian ideograph */, - {0, 0, 0x274C2D} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x213060} /* East Asian ideograph */, - {0, 0, 0x213061} /* East Asian ideograph */, - {0, 0, 0x213062} /* East Asian ideograph */, - {0, 0, 0x213063} /* East Asian ideograph */, - {0, 0, 0x333060} /* East Asian ideograph */, - {0, 0, 0x2D3061} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x27582C} /* East Asian ideograph */, - {0, 0, 0x216452} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x275777} /* East Asian ideograph */, - {0, 0, 0x216455} /* East Asian ideograph (variant of EACC 4B6455) */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0x216458} /* East Asian ideograph */, - {0, 0, 0x213064} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x21645A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0x2D305B} /* East Asian ideograph */, - {0, 0, 0x27325A} /* East Asian ideograph */, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page6 = { - 0, marc8r_31page6_dir -}; -/* PAGE 5 */ -struct yaz_iconv_trie_flat marc8r_31page5_flat[] = { - {"\x83", 0, 0x21303A}, /* East Asian ideograph */ - {"\x85", 0, 0x21303B}, /* East Asian ideograph */ - {"\x8B", 0, 0x21303D}, /* East Asian ideograph */ - {"\x8F", 0, 0x21303F}, /* East Asian ideograph */ - {"\x8E", 0, 0x213040}, /* East Asian ideograph */ - {"\x8D", 0, 0x213041}, /* East Asian ideograph */ - {"\x92", 0, 0x213042}, /* East Asian ideograph */ - {"\x93", 0, 0x213043}, /* East Asian ideograph */ - {"\x96", 0, 0x213044}, /* East Asian ideograph */ - {"\x98", 0, 0x213045}, /* East Asian ideograph */ - {"\x99", 0, 0x213046}, /* East Asian ideograph */ - {"\x9D", 0, 0x213047}, /* East Asian ideograph */ - {"\x9F", 0, 0x213048}, /* East Asian ideograph */ - {"\x9E", 0, 0x213049}, /* East Asian ideograph */ - {"\xB3", 0, 0x21304B}, /* East Asian ideograph */ - {"\xBE", 0, 0x21304C}, /* East Asian ideograph */ - {"\x82", 0, 0x216434}, /* East Asian ideograph */ - {"\x9C", 0, 0x21643C}, /* East Asian ideograph */ - {"\xB1", 0, 0x27304D}, /* East Asian ideograph */ - {"\x94", 0, 0x27366F}, /* East Asian ideograph */ - {"\xA6", 0, 0x274355}, /* East Asian ideograph */ - {"\x90", 0, 0x27454E}, /* East Asian ideograph */ - {"\x8C", 0, 0x27495D}, /* East Asian ideograph */ - {"\x89", 0, 0x275242}, /* East Asian ideograph */ - {"\xA0", 0, 0x27524D}, /* East Asian ideograph */ - {"\x87", 0, 0x275644}, /* East Asian ideograph */ - {"\xB0", 0, 0x27597A}, /* East Asian ideograph */ - {"\xA1", 0, 0x275C70}, /* East Asian ideograph */ - {"\x88", 0, 0x276260}, /* East Asian ideograph */ - {"\x97", 0, 0x2D3045}, /* East Asian ideograph */ - {"\xA9", 0, 0x2D4F41}, /* East Asian ideograph */ - {"\xB9", 0, 0x33304C}, /* East Asian ideograph */ - {"\x95", 0, 0x395643}, /* East Asian ideograph */ - {"\xA2", 0, 0x695626}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page5 = { - marc8r_31page5_flat, 0 -}; -/* PAGE 4 */ -struct yaz_iconv_trie_flat marc8r_31page4_flat[] = { - {"\x80", 0, 0x213021}, /* East Asian ideograph */ - {"\x81", 0, 0x213022}, /* East Asian ideograph */ - {"\x83", 0, 0x213023}, /* East Asian ideograph */ - {"\x89", 0, 0x213024}, /* East Asian ideograph */ - {"\x8B", 0, 0x213025}, /* East Asian ideograph */ - {"\x8A", 0, 0x213026}, /* East Asian ideograph */ - {"\x88", 0, 0x213027}, /* East Asian ideograph */ - {"\x90", 0, 0x213029}, /* East Asian ideograph */ - {"\x8D", 0, 0x21302A}, /* East Asian ideograph */ - {"\x94", 0, 0x21302B}, /* East Asian ideograph */ - {"\x99", 0, 0x21302C}, /* East Asian ideograph */ - {"\x96", 0, 0x21302D}, /* East Asian ideograph */ - {"\x95", 0, 0x21302E}, /* East Asian ideograph */ - {"\x98", 0, 0x21302F}, /* East Asian ideograph */ - {"\xA2", 0, 0x213030}, /* East Asian ideograph */ - {"\x9E", 0, 0x213031}, /* East Asian ideograph */ - {"\xA6", 0, 0x213032}, /* East Asian ideograph */ - {"\xAD", 0, 0x213034}, /* East Asian ideograph */ - {"\xB2", 0, 0x213035}, /* East Asian ideograph */ - {"\xB8", 0, 0x213037}, /* East Asian ideograph */ - {"\xB9", 0, 0x213038}, /* East Asian ideograph */ - {"\xBB", 0, 0x213039}, /* East Asian ideograph */ - {"\x8F", 0, 0x216424}, /* East Asian ideograph */ - {"\xA8", 0, 0x216429}, /* East Asian ideograph */ - {"\xB1", 0, 0x21642E}, /* East Asian ideograph */ - {"\xB6", 0, 0x216431}, /* East Asian ideograph */ - {"\xBF", 0, 0x216433}, /* East Asian ideograph */ - {"\xAA", 0, 0x273224}, /* East Asian ideograph */ - {"\xA4", 0, 0x273323}, /* East Asian ideograph */ - {"\x9B", 0, 0x27352B}, /* East Asian ideograph */ - {"\xA7", 0, 0x273663}, /* East Asian ideograph */ - {"\xA5", 0, 0x27375A}, /* East Asian ideograph */ - {"\x93", 0, 0x273B3F}, /* East Asian ideograph */ - {"\x9C", 0, 0x274426}, /* East Asian ideograph */ - {"\x9A", 0, 0x27452D}, /* East Asian ideograph */ - {"\xBA", 0, 0x274951}, /* East Asian ideograph */ - {"\x87", 0, 0x274F22}, /* East Asian ideograph */ - {"\x9D", 0, 0x27513B}, /* East Asian ideograph */ - {"\xB4", 0, 0x275425}, /* East Asian ideograph */ - {"\x8E", 0, 0x275432}, /* East Asian ideograph */ - {"\xBE", 0, 0x275434}, /* East Asian ideograph */ - {"\xB0", 0, 0x275958}, /* East Asian ideograph */ - {"\x91", 0, 0x275D30}, /* East Asian ideograph */ - {"\xBD", 0, 0x276256}, /* East Asian ideograph */ - {"\xAB", 0, 0x283B22}, /* East Asian ideograph */ - {"\x97", 0, 0x2D302D}, /* East Asian ideograph */ - {"\xBC", 0, 0x2D3053}, /* East Asian ideograph */ - {"\x8C", 0, 0x2D332A}, /* East Asian ideograph */ - {"\xA1", 0, 0x333323}, /* East Asian ideograph */ - {"\xAC", 0, 0x4C5541}, /* East Asian ideograph */ - {"", 0} -}; -struct yaz_iconv_trie marc8r_31page4 = { - marc8r_31page4_flat, 0 -}; -/* PAGE 3 */ -struct yaz_iconv_trie_dir marc8r_31page3_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {15, 0, 0}, - {16, 0, 0}, - {17, 0, 0}, - {18, 0, 0}, - {19, 0, 0}, - {20, 0, 0}, - {21, 0, 0}, - {13, 0, 0}, - {23, 0, 0}, - {24, 0, 0}, - {25, 0, 0}, - {26, 0, 0}, - {27, 0, 0}, - {29, 0, 0}, - {30, 0, 0}, - {28, 0, 0}, - {31, 0, 0}, - {32, 0, 0}, - {33, 0, 0}, - {34, 0, 0}, - {35, 0, 0}, - {36, 0, 0}, - {37, 0, 0}, - {38, 0, 0}, - {39, 0, 0}, - {40, 0, 0}, - {41, 0, 0}, - {42, 0, 0}, - {43, 0, 0}, - {44, 0, 0}, - {45, 0, 0}, - {46, 0, 0}, - {47, 0, 0}, - {48, 0, 0}, - {49, 0, 0}, - {50, 0, 0}, - {51, 0, 0}, - {52, 0, 0}, - {53, 0, 0}, - {54, 0, 0}, - {55, 0, 0}, - {56, 0, 0}, - {57, 0, 0}, - {58, 0, 0}, - {59, 0, 0}, - {60, 0, 0}, - {61, 0, 0}, - {62, 0, 0}, - {14, 0, 0}, - {63, 0, 0}, - {64, 0, 0}, - {65, 0, 0}, - {66, 0, 0}, - {67, 0, 0}, - {68, 0, 0}, - {69, 0, 0}, - {70, 0, 0}, - {71, 0, 0}, - {72, 0, 0}, - {73, 0, 0}, - {75, 0, 0}, - {76, 0, 0}, - {77, 0, 0}, - {78, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page3 = { - 0, marc8r_31page3_dir -}; -/* PAGE 2 */ -struct yaz_iconv_trie_dir marc8r_31page2_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {330, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {5, 0, 0}, - {6, 0, 0}, - {7, 0, 0}, - {8, 0, 0}, - {9, 0, 0}, - {10, 0, 0}, - {11, 0, 0}, - {12, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page2 = { - 0, marc8r_31page2_dir -}; -/* PAGE 1 */ -struct yaz_iconv_trie_dir marc8r_31page1_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {337, 0, 0}, - {341, 0, 0}, - {342, 0, 0}, - {340, 0, 0}, - {343, 0, 0}, - {344, 0, 0}, - {523, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {339, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {338, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page1 = { - 0, marc8r_31page1_dir -}; -/* PAGE 0 */ -struct yaz_iconv_trie_dir marc8r_31page0_dir[256] = { - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {2, 0, 0}, - {3, 0, 0}, - {4, 0, 0}, - {22, 0, 0}, - {143, 0, 0}, - {183, 0, 0}, - {74, 0, 0}, - {345, 0, 0}, - {362, 0, 0}, - {427, 0, 0}, - {491, 0, 0}, - {524, 0, 0}, - {525, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0}, - {0, 0, 0} -}; -struct yaz_iconv_trie marc8r_31page0 = { - 0, marc8r_31page0_dir -}; -struct yaz_iconv_trie *marc8r_31ptrs [] = { - &marc8r_31page0, - &marc8r_31page1, - &marc8r_31page2, - &marc8r_31page3, - &marc8r_31page4, - &marc8r_31page5, - &marc8r_31page6, - &marc8r_31page7, - &marc8r_31page8, - &marc8r_31page9, - &marc8r_31page10, - &marc8r_31page11, - &marc8r_31page12, - &marc8r_31page13, - &marc8r_31page14, - &marc8r_31page15, - &marc8r_31page16, - &marc8r_31page17, - &marc8r_31page18, - &marc8r_31page19, - &marc8r_31page20, - &marc8r_31page21, - &marc8r_31page22, - &marc8r_31page23, - &marc8r_31page24, - &marc8r_31page25, - &marc8r_31page26, - &marc8r_31page27, - &marc8r_31page28, - &marc8r_31page29, - &marc8r_31page30, - &marc8r_31page31, - &marc8r_31page32, - &marc8r_31page33, - &marc8r_31page34, - &marc8r_31page35, - &marc8r_31page36, - &marc8r_31page37, - &marc8r_31page38, - &marc8r_31page39, - &marc8r_31page40, - &marc8r_31page41, - &marc8r_31page42, - &marc8r_31page43, - &marc8r_31page44, - &marc8r_31page45, - &marc8r_31page46, - &marc8r_31page47, - &marc8r_31page48, - &marc8r_31page49, - &marc8r_31page50, - &marc8r_31page51, - &marc8r_31page52, - &marc8r_31page53, - &marc8r_31page54, - &marc8r_31page55, - &marc8r_31page56, - &marc8r_31page57, - &marc8r_31page58, - &marc8r_31page59, - &marc8r_31page60, - &marc8r_31page61, - &marc8r_31page62, - &marc8r_31page63, - &marc8r_31page64, - &marc8r_31page65, - &marc8r_31page66, - &marc8r_31page67, - &marc8r_31page68, - &marc8r_31page69, - &marc8r_31page70, - &marc8r_31page71, - &marc8r_31page72, - &marc8r_31page73, - &marc8r_31page74, - &marc8r_31page75, - &marc8r_31page76, - &marc8r_31page77, - &marc8r_31page78, - &marc8r_31page79, - &marc8r_31page80, - &marc8r_31page81, - &marc8r_31page82, - &marc8r_31page83, - &marc8r_31page84, - &marc8r_31page85, - &marc8r_31page86, - &marc8r_31page87, - &marc8r_31page88, - &marc8r_31page89, - &marc8r_31page90, - &marc8r_31page91, - &marc8r_31page92, - &marc8r_31page93, - &marc8r_31page94, - &marc8r_31page95, - &marc8r_31page96, - &marc8r_31page97, - &marc8r_31page98, - &marc8r_31page99, - &marc8r_31page100, - &marc8r_31page101, - &marc8r_31page102, - &marc8r_31page103, - &marc8r_31page104, - &marc8r_31page105, - &marc8r_31page106, - &marc8r_31page107, - &marc8r_31page108, - &marc8r_31page109, - &marc8r_31page110, - &marc8r_31page111, - &marc8r_31page112, - &marc8r_31page113, - &marc8r_31page114, - &marc8r_31page115, - &marc8r_31page116, - &marc8r_31page117, - &marc8r_31page118, - &marc8r_31page119, - &marc8r_31page120, - &marc8r_31page121, - &marc8r_31page122, - &marc8r_31page123, - &marc8r_31page124, - &marc8r_31page125, - &marc8r_31page126, - &marc8r_31page127, - &marc8r_31page128, - &marc8r_31page129, - &marc8r_31page130, - &marc8r_31page131, - &marc8r_31page132, - &marc8r_31page133, - &marc8r_31page134, - &marc8r_31page135, - &marc8r_31page136, - &marc8r_31page137, - &marc8r_31page138, - &marc8r_31page139, - &marc8r_31page140, - &marc8r_31page141, - &marc8r_31page142, - &marc8r_31page143, - &marc8r_31page144, - &marc8r_31page145, - &marc8r_31page146, - &marc8r_31page147, - &marc8r_31page148, - &marc8r_31page149, - &marc8r_31page150, - &marc8r_31page151, - &marc8r_31page152, - &marc8r_31page153, - &marc8r_31page154, - &marc8r_31page155, - &marc8r_31page156, - &marc8r_31page157, - &marc8r_31page158, - &marc8r_31page159, - &marc8r_31page160, - &marc8r_31page161, - &marc8r_31page162, - &marc8r_31page163, - &marc8r_31page164, - &marc8r_31page165, - &marc8r_31page166, - &marc8r_31page167, - &marc8r_31page168, - &marc8r_31page169, - &marc8r_31page170, - &marc8r_31page171, - &marc8r_31page172, - &marc8r_31page173, - &marc8r_31page174, - &marc8r_31page175, - &marc8r_31page176, - &marc8r_31page177, - &marc8r_31page178, - &marc8r_31page179, - &marc8r_31page180, - &marc8r_31page181, - &marc8r_31page182, - &marc8r_31page183, - &marc8r_31page184, - &marc8r_31page185, - &marc8r_31page186, - &marc8r_31page187, - &marc8r_31page188, - &marc8r_31page189, - &marc8r_31page190, - &marc8r_31page191, - &marc8r_31page192, - &marc8r_31page193, - &marc8r_31page194, - &marc8r_31page195, - &marc8r_31page196, - &marc8r_31page197, - &marc8r_31page198, - &marc8r_31page199, - &marc8r_31page200, - &marc8r_31page201, - &marc8r_31page202, - &marc8r_31page203, - &marc8r_31page204, - &marc8r_31page205, - &marc8r_31page206, - &marc8r_31page207, - &marc8r_31page208, - &marc8r_31page209, - &marc8r_31page210, - &marc8r_31page211, - &marc8r_31page212, - &marc8r_31page213, - &marc8r_31page214, - &marc8r_31page215, - &marc8r_31page216, - &marc8r_31page217, - &marc8r_31page218, - &marc8r_31page219, - &marc8r_31page220, - &marc8r_31page221, - &marc8r_31page222, - &marc8r_31page223, - &marc8r_31page224, - &marc8r_31page225, - &marc8r_31page226, - &marc8r_31page227, - &marc8r_31page228, - &marc8r_31page229, - &marc8r_31page230, - &marc8r_31page231, - &marc8r_31page232, - &marc8r_31page233, - &marc8r_31page234, - &marc8r_31page235, - &marc8r_31page236, - &marc8r_31page237, - &marc8r_31page238, - &marc8r_31page239, - &marc8r_31page240, - &marc8r_31page241, - &marc8r_31page242, - &marc8r_31page243, - &marc8r_31page244, - &marc8r_31page245, - &marc8r_31page246, - &marc8r_31page247, - &marc8r_31page248, - &marc8r_31page249, - &marc8r_31page250, - &marc8r_31page251, - &marc8r_31page252, - &marc8r_31page253, - &marc8r_31page254, - &marc8r_31page255, - &marc8r_31page256, - &marc8r_31page257, - &marc8r_31page258, - &marc8r_31page259, - &marc8r_31page260, - &marc8r_31page261, - &marc8r_31page262, - &marc8r_31page263, - &marc8r_31page264, - &marc8r_31page265, - &marc8r_31page266, - &marc8r_31page267, - &marc8r_31page268, - &marc8r_31page269, - &marc8r_31page270, - &marc8r_31page271, - &marc8r_31page272, - &marc8r_31page273, - &marc8r_31page274, - &marc8r_31page275, - &marc8r_31page276, - &marc8r_31page277, - &marc8r_31page278, - &marc8r_31page279, - &marc8r_31page280, - &marc8r_31page281, - &marc8r_31page282, - &marc8r_31page283, - &marc8r_31page284, - &marc8r_31page285, - &marc8r_31page286, - &marc8r_31page287, - &marc8r_31page288, - &marc8r_31page289, - &marc8r_31page290, - &marc8r_31page291, - &marc8r_31page292, - &marc8r_31page293, - &marc8r_31page294, - &marc8r_31page295, - &marc8r_31page296, - &marc8r_31page297, - &marc8r_31page298, - &marc8r_31page299, - &marc8r_31page300, - &marc8r_31page301, - &marc8r_31page302, - &marc8r_31page303, - &marc8r_31page304, - &marc8r_31page305, - &marc8r_31page306, - &marc8r_31page307, - &marc8r_31page308, - &marc8r_31page309, - &marc8r_31page310, - &marc8r_31page311, - &marc8r_31page312, - &marc8r_31page313, - &marc8r_31page314, - &marc8r_31page315, - &marc8r_31page316, - &marc8r_31page317, - &marc8r_31page318, - &marc8r_31page319, - &marc8r_31page320, - &marc8r_31page321, - &marc8r_31page322, - &marc8r_31page323, - &marc8r_31page324, - &marc8r_31page325, - &marc8r_31page326, - &marc8r_31page327, - &marc8r_31page328, - &marc8r_31page329, - &marc8r_31page330, - &marc8r_31page331, - &marc8r_31page332, - &marc8r_31page333, - &marc8r_31page334, - &marc8r_31page335, - &marc8r_31page336, - &marc8r_31page337, - &marc8r_31page338, - &marc8r_31page339, - &marc8r_31page340, - &marc8r_31page341, - &marc8r_31page342, - &marc8r_31page343, - &marc8r_31page344, - &marc8r_31page345, - &marc8r_31page346, - &marc8r_31page347, - &marc8r_31page348, - &marc8r_31page349, - &marc8r_31page350, - &marc8r_31page351, - &marc8r_31page352, - &marc8r_31page353, - &marc8r_31page354, - &marc8r_31page355, - &marc8r_31page356, - &marc8r_31page357, - &marc8r_31page358, - &marc8r_31page359, - &marc8r_31page360, - &marc8r_31page361, - &marc8r_31page362, - &marc8r_31page363, - &marc8r_31page364, - &marc8r_31page365, - &marc8r_31page366, - &marc8r_31page367, - &marc8r_31page368, - &marc8r_31page369, - &marc8r_31page370, - &marc8r_31page371, - &marc8r_31page372, - &marc8r_31page373, - &marc8r_31page374, - &marc8r_31page375, - &marc8r_31page376, - &marc8r_31page377, - &marc8r_31page378, - &marc8r_31page379, - &marc8r_31page380, - &marc8r_31page381, - &marc8r_31page382, - &marc8r_31page383, - &marc8r_31page384, - &marc8r_31page385, - &marc8r_31page386, - &marc8r_31page387, - &marc8r_31page388, - &marc8r_31page389, - &marc8r_31page390, - &marc8r_31page391, - &marc8r_31page392, - &marc8r_31page393, - &marc8r_31page394, - &marc8r_31page395, - &marc8r_31page396, - &marc8r_31page397, - &marc8r_31page398, - &marc8r_31page399, - &marc8r_31page400, - &marc8r_31page401, - &marc8r_31page402, - &marc8r_31page403, - &marc8r_31page404, - &marc8r_31page405, - &marc8r_31page406, - &marc8r_31page407, - &marc8r_31page408, - &marc8r_31page409, - &marc8r_31page410, - &marc8r_31page411, - &marc8r_31page412, - &marc8r_31page413, - &marc8r_31page414, - &marc8r_31page415, - &marc8r_31page416, - &marc8r_31page417, - &marc8r_31page418, - &marc8r_31page419, - &marc8r_31page420, - &marc8r_31page421, - &marc8r_31page422, - &marc8r_31page423, - &marc8r_31page424, - &marc8r_31page425, - &marc8r_31page426, - &marc8r_31page427, - &marc8r_31page428, - &marc8r_31page429, - &marc8r_31page430, - &marc8r_31page431, - &marc8r_31page432, - &marc8r_31page433, - &marc8r_31page434, - &marc8r_31page435, - &marc8r_31page436, - &marc8r_31page437, - &marc8r_31page438, - &marc8r_31page439, - &marc8r_31page440, - &marc8r_31page441, - &marc8r_31page442, - &marc8r_31page443, - &marc8r_31page444, - &marc8r_31page445, - &marc8r_31page446, - &marc8r_31page447, - &marc8r_31page448, - &marc8r_31page449, - &marc8r_31page450, - &marc8r_31page451, - &marc8r_31page452, - &marc8r_31page453, - &marc8r_31page454, - &marc8r_31page455, - &marc8r_31page456, - &marc8r_31page457, - &marc8r_31page458, - &marc8r_31page459, - &marc8r_31page460, - &marc8r_31page461, - &marc8r_31page462, - &marc8r_31page463, - &marc8r_31page464, - &marc8r_31page465, - &marc8r_31page466, - &marc8r_31page467, - &marc8r_31page468, - &marc8r_31page469, - &marc8r_31page470, - &marc8r_31page471, - &marc8r_31page472, - &marc8r_31page473, - &marc8r_31page474, - &marc8r_31page475, - &marc8r_31page476, - &marc8r_31page477, - &marc8r_31page478, - &marc8r_31page479, - &marc8r_31page480, - &marc8r_31page481, - &marc8r_31page482, - &marc8r_31page483, - &marc8r_31page484, - &marc8r_31page485, - &marc8r_31page486, - &marc8r_31page487, - &marc8r_31page488, - &marc8r_31page489, - &marc8r_31page490, - &marc8r_31page491, - &marc8r_31page492, - &marc8r_31page493, - &marc8r_31page494, - &marc8r_31page495, - &marc8r_31page496, - &marc8r_31page497, - &marc8r_31page498, - &marc8r_31page499, - &marc8r_31page500, - &marc8r_31page501, - &marc8r_31page502, - &marc8r_31page503, - &marc8r_31page504, - &marc8r_31page505, - &marc8r_31page506, - &marc8r_31page507, - &marc8r_31page508, - &marc8r_31page509, - &marc8r_31page510, - &marc8r_31page511, - &marc8r_31page512, - &marc8r_31page513, - &marc8r_31page514, - &marc8r_31page515, - &marc8r_31page516, - &marc8r_31page517, - &marc8r_31page518, - &marc8r_31page519, - &marc8r_31page520, - &marc8r_31page521, - &marc8r_31page522, - &marc8r_31page523, - &marc8r_31page524, - &marc8r_31page525, - &marc8r_31page526, -0, }; - -unsigned long yaz_marc8r_31_conv - (unsigned char *inp, size_t inbytesleft, size_t *no_read, int *combining) - { - unsigned long code; - - code = lookup(marc8r_31ptrs, 1, inp, inbytesleft, no_read, combining); - if (!code) - { - *no_read = 1; - } - return code; - } - diff --git a/dependencies/yaz_3.0.14/src/marc_read_iso2709.c b/dependencies/yaz_3.0.14/src/marc_read_iso2709.c deleted file mode 100644 index eed863c..0000000 --- a/dependencies/yaz_3.0.14/src/marc_read_iso2709.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: marc_read_iso2709.c,v 1.2 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file marc_read_iso2709.c - * \brief Implements reading of MARC as ISO2709 - */ - -#if HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#include -#endif - -#include -#include -#include -#include -#include -#include - -int yaz_marc_read_iso2709(yaz_marc_t mt, const char *buf, int bsize) -{ - int entry_p; - int record_length; - int indicator_length; - int identifier_length; - int end_of_directory; - int base_address; - int length_data_entry; - int length_starting; - int length_implementation; - - yaz_marc_reset(mt); - - record_length = atoi_n (buf, 5); - if (record_length < 25) - { - yaz_marc_cprintf(mt, "Record length %d < 24", record_length); - return -1; - } - /* ballout if bsize is known and record_length is less than that */ - if (bsize != -1 && record_length > bsize) - { - yaz_marc_cprintf(mt, "Record appears to be larger than buffer %d < %d", - record_length, bsize); - return -1; - } - if (yaz_marc_get_debug(mt)) - yaz_marc_cprintf(mt, "Record length %5d", record_length); - - yaz_marc_set_leader(mt, buf, - &indicator_length, - &identifier_length, - &base_address, - &length_data_entry, - &length_starting, - &length_implementation); - - /* First pass. determine length of directory & base of data */ - for (entry_p = 24; buf[entry_p] != ISO2709_FS; ) - { - /* length of directory entry */ - int l = 3 + length_data_entry + length_starting; - if (entry_p + l >= record_length) - { - yaz_marc_cprintf(mt, "Directory offset %d: end of record." - " Missing FS char", entry_p); - return -1; - } - if (yaz_marc_get_debug(mt)) - { - yaz_marc_cprintf(mt, "Directory offset %d: Tag %.3s", - entry_p, buf+entry_p); - } - /* Check for digits in length info */ - while (--l >= 3) - if (!isdigit(*(const unsigned char *) (buf + entry_p+l))) - break; - if (l >= 3) - { - /* Not all digits, so stop directory scan */ - yaz_marc_cprintf(mt, "Directory offset %d: Bad value for data" - " length and/or length starting", entry_p); - break; - } - entry_p += 3 + length_data_entry + length_starting; - } - end_of_directory = entry_p; - if (base_address != entry_p+1) - { - yaz_marc_cprintf(mt, "Base address not at end of directory," - " base %d, end %d", base_address, entry_p+1); - } - - /* Second pass. parse control - and datafields */ - for (entry_p = 24; entry_p != end_of_directory; ) - { - int data_length; - int data_offset; - int end_offset; - int i; - char tag[4]; - int identifier_flag = 0; - int entry_p0 = entry_p; - - memcpy (tag, buf+entry_p, 3); - entry_p += 3; - tag[3] = '\0'; - data_length = atoi_n(buf+entry_p, length_data_entry); - entry_p += length_data_entry; - data_offset = atoi_n(buf+entry_p, length_starting); - entry_p += length_starting; - i = data_offset + base_address; - end_offset = i+data_length-1; - - if (data_length <= 0 || data_offset < 0) - break; - - if (yaz_marc_get_debug(mt)) - { - yaz_marc_cprintf(mt, "Tag: %s. Directory offset %d: data-length %d," - " data-offset %d", - tag, entry_p0, data_length, data_offset); - } - if (end_offset >= record_length) - { - yaz_marc_cprintf(mt, "Directory offset %d: Data out of bounds %d >= %d", - entry_p0, end_offset, record_length); - break; - } - - if (memcmp (tag, "00", 2)) - identifier_flag = 1; /* if not 00X assume subfields */ - else if (indicator_length < 4 && indicator_length > 0) - { - /* Danmarc 00X have subfields */ - if (buf[i + indicator_length] == ISO2709_IDFS) - identifier_flag = 1; - else if (buf[i + indicator_length + 1] == ISO2709_IDFS) - identifier_flag = 2; - } - - if (identifier_flag) - { - /* datafield */ - i += identifier_flag-1; - yaz_marc_add_datafield(mt, tag, buf+i, indicator_length); - i += indicator_length; - - while (i < end_offset && - buf[i] != ISO2709_RS && buf[i] != ISO2709_FS) - { - int code_offset = i+1; - - i ++; - while (i < end_offset && - buf[i] != ISO2709_RS && buf[i] != ISO2709_IDFS && - buf[i] != ISO2709_FS) - i++; - yaz_marc_add_subfield(mt, buf+code_offset, i - code_offset); - } - } - else - { - /* controlfield */ - int i0 = i; - while (i < end_offset && - buf[i] != ISO2709_RS && buf[i] != ISO2709_FS) - i++; - yaz_marc_add_controlfield(mt, tag, buf+i0, i-i0); - } - if (i < end_offset) - { - yaz_marc_cprintf(mt, "Separator but not at end of field length=%d", - data_length); - } - if (buf[i] != ISO2709_RS && buf[i] != ISO2709_FS) - { - yaz_marc_cprintf(mt, "No separator at end of field length=%d", - data_length); - } - } - return record_length; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/marc_read_line.c b/dependencies/yaz_3.0.14/src/marc_read_line.c deleted file mode 100644 index c730ccd..0000000 --- a/dependencies/yaz_3.0.14/src/marc_read_line.c +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: marc_read_line.c,v 1.6 2007/03/18 13:00:37 adam Exp $ - */ - -/** - * \file marc_read_line.c - * \brief Implements reading of MARC in line format - */ - -#if HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#include -#endif - -#include -#include -#include -#include - -#include -#include -#include - -int yaz_gets(int (*getbyte)(void *client_data), - void (*ungetbyte)(int b, void *client_data), - void *client_data, - WRBUF w) -{ - size_t sz = 0; - int ch = getbyte(client_data); - - while (ch != '\0' && ch != '\r' && ch != '\n') - { - wrbuf_putc(w, ch); - sz++; - ch = getbyte(client_data); - } - if (ch == '\r') - { - ch = getbyte(client_data); - if (ch != '\n' && ch != '\0') - ungetbyte(ch, client_data); - } - else if (ch == '\n') - { - ch = getbyte(client_data); - if (ch != '\r' && ch != '\0') - ungetbyte(ch, client_data); - } - if (sz) - { - return 1; - } - return 0; -} - -static int yaz_marc_line_gets(int (*getbyte)(void *client_data), - void (*ungetbyte)(int b, void *client_data), - void *client_data, - WRBUF w) -{ - int more; - - wrbuf_rewind(w); - more = yaz_gets(getbyte, ungetbyte, client_data, w); - if (!more) - return 0; - - while (more) - { - int i; - for (i = 0; i<4; i++) - { - int ch = getbyte(client_data); - if (ch != ' ') - { - if (ch) - ungetbyte(ch, client_data); - return 1; - } - } - if (wrbuf_len(w) > 60 && wrbuf_buf(w)[wrbuf_len(w)-1] == '=') - wrbuf_cut_right(w, 1); - else - wrbuf_puts(w, " "); - more = yaz_gets(getbyte, ungetbyte, client_data, w); - } - return 1; -} - - -int yaz_marc_read_line(yaz_marc_t mt, - int (*getbyte)(void *client_data), - void (*ungetbyte)(int b, void *client_data), - void *client_data) -{ - int indicator_length; - int identifier_length; - int base_address; - int length_data_entry; - int length_starting; - int length_implementation; - int marker_ch = 0; - int marker_skip = 0; - int header_created = 0; - WRBUF wrbuf_line = wrbuf_alloc(); - - yaz_marc_reset(mt); - - while (yaz_marc_line_gets(getbyte, ungetbyte, client_data, wrbuf_line)) - { - const char *line = wrbuf_cstr(wrbuf_line); - int val; - size_t line_len = strlen(line); - if (line_len == 0) /* empty line indicates end of record */ - { - if (header_created) - break; - } - else if (line[0] == '$') /* indicates beginning/end of record */ - { - if (header_created) - break; - } - else if (line[0] == '(') /* annotation, skip it */ - ; - else if (line_len == 24 && atoi_n_check(line, 5, &val) && val >= 24) - { - /* deal with header lines: 00366nam 22001698a 4500 - */ - - if (header_created) - break; - yaz_marc_set_leader(mt, line, - &indicator_length, - &identifier_length, - &base_address, - &length_data_entry, - &length_starting, - &length_implementation); - header_created = 1; - } - else if (line_len > 5 && line[0] != ' ' && line[1] != ' ' - && line[2] != ' ' && line[3] == ' ' ) - { - /* deal with data/control lines: 245 12 ........ */ - char tag[4]; - const char *datafield_start = line+6; - marker_ch = 0; - marker_skip = 0; - - memcpy(tag, line, 3); - tag[3] = '\0'; - if (line_len >= 8) /* control - or datafield ? */ - { - if (*datafield_start == ' ') - datafield_start++; /* skip blank after indicator */ - - if (strchr("$_*", *datafield_start)) - { - marker_ch = *datafield_start; - if (datafield_start[2] == ' ') - marker_skip = 1; /* subfields has blank before data */ - } - } - if (!header_created) - { - const char *leader = "01000cam 2200265 i 4500"; - - yaz_marc_set_leader(mt, leader, - &indicator_length, - &identifier_length, - &base_address, - &length_data_entry, - &length_starting, - &length_implementation); - header_created = 1; - } - - if (marker_ch == 0) - { /* control field */ - yaz_marc_add_controlfield(mt, tag, line+4, strlen(line+4)); - } - else - { /* data field */ - const char *indicator = line+4; - int indicator_len = 2; - const char *cp = datafield_start; - - yaz_marc_add_datafield(mt, tag, indicator, indicator_len); - for (;;) - { - const char *next; - size_t len; - - assert(cp[0] == marker_ch); - cp++; - next = cp; - while ((next = strchr(next, marker_ch))) - { - if ((next[1] >= 'A' && next[1] <= 'Z') - ||(next[1] >= 'a' && next[1] <= 'z')) - { - if (!marker_skip) - break; - else if (next[2] == ' ') - break; - } - next++; - } - len = strlen(cp); - if (next) - len = next - cp - marker_skip; - - if (marker_skip) - { - /* remove ' ' after subfield marker */ - char *cp_blank = strchr(cp, ' '); - if (cp_blank) - { - len--; - while (cp_blank != cp) - { - cp_blank[0] = cp_blank[-1]; - cp_blank--; - } - cp++; - } - } - assert(len >= 0); - yaz_marc_add_subfield(mt, cp, len); - if (!next) - break; - cp = next; - } - } - } - else - { - yaz_marc_cprintf(mt, "Ignoring line: %s", line); - } - } - wrbuf_destroy(wrbuf_line); - if (!header_created) - return -1; - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/marc_read_xml.c b/dependencies/yaz_3.0.14/src/marc_read_xml.c deleted file mode 100644 index 81476fc..0000000 --- a/dependencies/yaz_3.0.14/src/marc_read_xml.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: marc_read_xml.c,v 1.3 2007/05/06 20:12:20 adam Exp $ - */ - -/** - * \file marc_read_xml.c - * \brief Implements reading of MARC as XML - */ - -#if HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#include -#endif - -#include -#include -#include -#include -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include -#endif - -#if YAZ_HAVE_XML2 -int yaz_marc_read_xml_subfields(yaz_marc_t mt, const xmlNode *ptr) -{ - NMEM nmem = yaz_marc_get_nmem(mt); - for (; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE) - { - if (!strcmp((const char *) ptr->name, "subfield")) - { - size_t ctrl_data_len = 0; - char *ctrl_data_buf = 0; - const xmlNode *p = 0, *ptr_code = 0; - struct _xmlAttr *attr; - for (attr = ptr->properties; attr; attr = attr->next) - if (!strcmp((const char *)attr->name, "code")) - ptr_code = attr->children; - else - { - yaz_marc_cprintf( - mt, "Bad attribute '%.80s' for 'subfield'", - attr->name); - return -1; - } - if (!ptr_code) - { - yaz_marc_cprintf( - mt, "Missing attribute 'code' for 'subfield'" ); - return -1; - } - if (ptr_code->type == XML_TEXT_NODE) - { - ctrl_data_len = - strlen((const char *)ptr_code->content); - } - else - { - yaz_marc_cprintf( - mt, "Missing value for 'code' in 'subfield'" ); - return -1; - } - for (p = ptr->children; p ; p = p->next) - if (p->type == XML_TEXT_NODE) - ctrl_data_len += strlen((const char *)p->content); - ctrl_data_buf = (char *) nmem_malloc(nmem, ctrl_data_len+1); - strcpy(ctrl_data_buf, (const char *)ptr_code->content); - for (p = ptr->children; p ; p = p->next) - if (p->type == XML_TEXT_NODE) - strcat(ctrl_data_buf, (const char *)p->content); - yaz_marc_add_subfield(mt, ctrl_data_buf, ctrl_data_len); - } - else - { - yaz_marc_cprintf( - mt, "Expected element 'subfield', got '%.80s'", ptr->name); - return -1; - } - } - } - return 0; -} - -static int yaz_marc_read_xml_leader(yaz_marc_t mt, const xmlNode **ptr_p) -{ - int indicator_length; - int identifier_length; - int base_address; - int length_data_entry; - int length_starting; - int length_implementation; - const char *leader = 0; - const xmlNode *ptr = *ptr_p; - - for(; ptr; ptr = ptr->next) - if (ptr->type == XML_ELEMENT_NODE) - { - if (!strcmp((const char *) ptr->name, "leader")) - { - xmlNode *p = ptr->children; - for(; p; p = p->next) - if (p->type == XML_TEXT_NODE) - leader = (const char *) p->content; - break; - } - else - { - yaz_marc_cprintf( - mt, "Expected element 'leader', got '%.80s'", ptr->name); - return -1; - } - } - if (!leader) - { - yaz_marc_cprintf(mt, "Missing element 'leader'"); - return -1; - } - if (strlen(leader) != 24) - { - yaz_marc_cprintf(mt, "Bad length %d of leader data." - " Must have length of 24 characters", strlen(leader)); - return -1; - } - yaz_marc_set_leader(mt, leader, - &indicator_length, - &identifier_length, - &base_address, - &length_data_entry, - &length_starting, - &length_implementation); - *ptr_p = ptr; - return 0; -} - -static int yaz_marc_read_xml_fields(yaz_marc_t mt, const xmlNode *ptr) -{ - for(; ptr; ptr = ptr->next) - if (ptr->type == XML_ELEMENT_NODE) - { - if (!strcmp((const char *) ptr->name, "controlfield")) - { - const xmlNode *ptr_tag = 0; - struct _xmlAttr *attr; - for (attr = ptr->properties; attr; attr = attr->next) - if (!strcmp((const char *)attr->name, "tag")) - ptr_tag = attr->children; - else - { - yaz_marc_cprintf( - mt, "Bad attribute '%.80s' for 'controlfield'", - attr->name); - return -1; - } - if (!ptr_tag) - { - yaz_marc_cprintf( - mt, "Missing attribute 'tag' for 'controlfield'" ); - return -1; - } - yaz_marc_add_controlfield_xml(mt, ptr_tag, ptr->children); - } - else if (!strcmp((const char *) ptr->name, "datafield")) - { - char indstr[11]; /* 0(unused), 1,....9, + zero term */ - const xmlNode *ptr_tag = 0; - struct _xmlAttr *attr; - int i; - for (i = 0; i<11; i++) - indstr[i] = '\0'; - for (attr = ptr->properties; attr; attr = attr->next) - if (!strcmp((const char *)attr->name, "tag")) - ptr_tag = attr->children; - else if (strlen((const char *)attr->name) == 4 && - !memcmp(attr->name, "ind", 3)) - { - int no = atoi((const char *)attr->name+3); - if (attr->children - && attr->children->type == XML_TEXT_NODE) - indstr[no] = attr->children->content[0]; - } - else - { - yaz_marc_cprintf( - mt, "Bad attribute '%.80s' for 'datafield'", - attr->name); - return -1; - } - if (!ptr_tag) - { - yaz_marc_cprintf( - mt, "Missing attribute 'tag' for 'datafield'" ); - return -1; - } - /* note that indstr[0] is unused so we use indstr[1..] */ - yaz_marc_add_datafield_xml(mt, ptr_tag, - indstr+1, strlen(indstr+1)); - - if (yaz_marc_read_xml_subfields(mt, ptr->children)) - return -1; - } - else - { - yaz_marc_cprintf(mt, - "Expected element controlfield or datafield," - " got %.80s", ptr->name); - return -1; - } - } - return 0; -} -#endif - -int yaz_marc_read_xml(yaz_marc_t mt, const xmlNode *ptr) -{ -#if YAZ_HAVE_XML2 - for(; ptr; ptr = ptr->next) - if (ptr->type == XML_ELEMENT_NODE) - { - if (!strcmp((const char *) ptr->name, "record")) - break; - else - { - yaz_marc_cprintf( - mt, "Unknown element '%.80s' in MARC XML reader", - ptr->name); - return -1; - } - } - if (!ptr) - { - yaz_marc_cprintf(mt, "Missing element 'record' in MARC XML record"); - return -1; - } - /* ptr points to record node now */ - ptr = ptr->children; - if (yaz_marc_read_xml_leader(mt, &ptr)) - return -1; - return yaz_marc_read_xml_fields(mt, ptr->next); -#else - return -1; -#endif -} - - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/marcdisp.c b/dependencies/yaz_3.0.14/src/marcdisp.c deleted file mode 100644 index b36bd7f..0000000 --- a/dependencies/yaz_3.0.14/src/marcdisp.c +++ /dev/null @@ -1,1067 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: marcdisp.c,v 1.51 2007/09/20 17:22:45 adam Exp $ - */ - -/** - * \file marcdisp.c - * \brief Implements MARC conversion utilities - */ - -#if HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include -#include -#endif - -/** \brief node types for yaz_marc_node */ -enum YAZ_MARC_NODE_TYPE -{ - YAZ_MARC_DATAFIELD, - YAZ_MARC_CONTROLFIELD, - YAZ_MARC_COMMENT, - YAZ_MARC_LEADER -}; - -/** \brief represets a data field */ -struct yaz_marc_datafield { - char *tag; - char *indicator; - struct yaz_marc_subfield *subfields; -}; - -/** \brief represents a control field */ -struct yaz_marc_controlfield { - char *tag; - char *data; -}; - -/** \brief a comment node */ -struct yaz_marc_comment { - char *comment; -}; - -/** \brief MARC node */ -struct yaz_marc_node { - enum YAZ_MARC_NODE_TYPE which; - union { - struct yaz_marc_datafield datafield; - struct yaz_marc_controlfield controlfield; - char *comment; - char *leader; - } u; - struct yaz_marc_node *next; -}; - -/** \brief represents a subfield */ -struct yaz_marc_subfield { - char *code_data; - struct yaz_marc_subfield *next; -}; - -/** \brief the internals of a yaz_marc_t handle */ -struct yaz_marc_t_ { - WRBUF m_wr; - NMEM nmem; - int xml; - int debug; - int write_using_libxml2; - yaz_iconv_t iconv_cd; - char subfield_str[8]; - char endline_str[8]; - char *leader_spec; - struct yaz_marc_node *nodes; - struct yaz_marc_node **nodes_pp; - struct yaz_marc_subfield **subfield_pp; -}; - -yaz_marc_t yaz_marc_create(void) -{ - yaz_marc_t mt = (yaz_marc_t) xmalloc(sizeof(*mt)); - mt->xml = YAZ_MARC_LINE; - mt->debug = 0; - mt->write_using_libxml2 = 0; - mt->m_wr = wrbuf_alloc(); - mt->iconv_cd = 0; - mt->leader_spec = 0; - strcpy(mt->subfield_str, " $"); - strcpy(mt->endline_str, "\n"); - - mt->nmem = nmem_create(); - yaz_marc_reset(mt); - return mt; -} - -void yaz_marc_destroy(yaz_marc_t mt) -{ - if (!mt) - return ; - nmem_destroy(mt->nmem); - wrbuf_destroy(mt->m_wr); - xfree(mt->leader_spec); - xfree(mt); -} - -NMEM yaz_marc_get_nmem(yaz_marc_t mt) -{ - return mt->nmem; -} - -static void marc_iconv_reset(yaz_marc_t mt, WRBUF wr) -{ - wrbuf_iconv_reset(wr, mt->iconv_cd); -} - -static int marc_exec_leader(const char *leader_spec, char *leader, - size_t size); - - -static struct yaz_marc_node *yaz_marc_add_node(yaz_marc_t mt) -{ - struct yaz_marc_node *n = (struct yaz_marc_node *) - nmem_malloc(mt->nmem, sizeof(*n)); - n->next = 0; - *mt->nodes_pp = n; - mt->nodes_pp = &n->next; - return n; -} - -#if YAZ_HAVE_XML2 -void yaz_marc_add_controlfield_xml(yaz_marc_t mt, const xmlNode *ptr_tag, - const xmlNode *ptr_data) -{ - struct yaz_marc_node *n = yaz_marc_add_node(mt); - n->which = YAZ_MARC_CONTROLFIELD; - n->u.controlfield.tag = nmem_text_node_cdata(ptr_tag, mt->nmem); - n->u.controlfield.data = nmem_text_node_cdata(ptr_data, mt->nmem); -} -#endif - - -void yaz_marc_add_comment(yaz_marc_t mt, char *comment) -{ - struct yaz_marc_node *n = yaz_marc_add_node(mt); - n->which = YAZ_MARC_COMMENT; - n->u.comment = nmem_strdup(mt->nmem, comment); -} - -void yaz_marc_cprintf(yaz_marc_t mt, const char *fmt, ...) -{ - va_list ap; - char buf[200]; - - va_start(ap, fmt); - yaz_vsnprintf(buf, sizeof(buf)-1, fmt, ap); - yaz_marc_add_comment(mt, buf); - va_end (ap); -} - -int yaz_marc_get_debug(yaz_marc_t mt) -{ - return mt->debug; -} - -void yaz_marc_add_leader(yaz_marc_t mt, const char *leader, size_t leader_len) -{ - struct yaz_marc_node *n = yaz_marc_add_node(mt); - n->which = YAZ_MARC_LEADER; - n->u.leader = nmem_strdupn(mt->nmem, leader, leader_len); - marc_exec_leader(mt->leader_spec, n->u.leader, leader_len); -} - -void yaz_marc_add_controlfield(yaz_marc_t mt, const char *tag, - const char *data, size_t data_len) -{ - struct yaz_marc_node *n = yaz_marc_add_node(mt); - n->which = YAZ_MARC_CONTROLFIELD; - n->u.controlfield.tag = nmem_strdup(mt->nmem, tag); - n->u.controlfield.data = nmem_strdupn(mt->nmem, data, data_len); - if (mt->debug) - { - size_t i; - char msg[80]; - - sprintf(msg, "controlfield:"); - for (i = 0; i < 16 && i < data_len; i++) - sprintf(msg + strlen(msg), " %02X", data[i] & 0xff); - if (i < data_len) - sprintf(msg + strlen(msg), " .."); - yaz_marc_add_comment(mt, msg); - } -} - -void yaz_marc_add_datafield(yaz_marc_t mt, const char *tag, - const char *indicator, size_t indicator_len) -{ - struct yaz_marc_node *n = yaz_marc_add_node(mt); - n->which = YAZ_MARC_DATAFIELD; - n->u.datafield.tag = nmem_strdup(mt->nmem, tag); - n->u.datafield.indicator = - nmem_strdupn(mt->nmem, indicator, indicator_len); - n->u.datafield.subfields = 0; - - /* make subfield_pp the current (last one) */ - mt->subfield_pp = &n->u.datafield.subfields; -} - -#if YAZ_HAVE_XML2 -void yaz_marc_add_datafield_xml(yaz_marc_t mt, const xmlNode *ptr_tag, - const char *indicator, size_t indicator_len) -{ - struct yaz_marc_node *n = yaz_marc_add_node(mt); - n->which = YAZ_MARC_DATAFIELD; - n->u.datafield.tag = nmem_text_node_cdata(ptr_tag, mt->nmem); - n->u.datafield.indicator = - nmem_strdupn(mt->nmem, indicator, indicator_len); - n->u.datafield.subfields = 0; - - /* make subfield_pp the current (last one) */ - mt->subfield_pp = &n->u.datafield.subfields; -} -#endif - -void yaz_marc_add_subfield(yaz_marc_t mt, - const char *code_data, size_t code_data_len) -{ - if (mt->debug) - { - size_t i; - char msg[80]; - - sprintf(msg, "subfield:"); - for (i = 0; i < 16 && i < code_data_len; i++) - sprintf(msg + strlen(msg), " %02X", code_data[i] & 0xff); - if (i < code_data_len) - sprintf(msg + strlen(msg), " .."); - yaz_marc_add_comment(mt, msg); - } - - if (mt->subfield_pp) - { - struct yaz_marc_subfield *n = (struct yaz_marc_subfield *) - nmem_malloc(mt->nmem, sizeof(*n)); - n->code_data = nmem_strdupn(mt->nmem, code_data, code_data_len); - n->next = 0; - /* mark subfield_pp to point to this one, so we append here next */ - *mt->subfield_pp = n; - mt->subfield_pp = &n->next; - } -} - -int atoi_n_check(const char *buf, int size, int *val) -{ - int i; - for (i = 0; i < size; i++) - if (!isdigit(i[(const unsigned char *) buf])) - return 0; - *val = atoi_n(buf, size); - return 1; -} - -void yaz_marc_set_leader(yaz_marc_t mt, const char *leader_c, - int *indicator_length, - int *identifier_length, - int *base_address, - int *length_data_entry, - int *length_starting, - int *length_implementation) -{ - char leader[24]; - - memcpy(leader, leader_c, 24); - - if (!atoi_n_check(leader+10, 1, indicator_length)) - { - yaz_marc_cprintf(mt, - "Indicator length at offset 10 should hold a digit." - " Assuming 2"); - leader[10] = '2'; - *indicator_length = 2; - } - if (!atoi_n_check(leader+11, 1, identifier_length)) - { - yaz_marc_cprintf(mt, - "Identifier length at offset 11 should hold a digit." - " Assuming 2"); - leader[11] = '2'; - *identifier_length = 2; - } - if (!atoi_n_check(leader+12, 5, base_address)) - { - yaz_marc_cprintf(mt, - "Base address at offsets 12..16 should hold a number." - " Assuming 0"); - *base_address = 0; - } - if (!atoi_n_check(leader+20, 1, length_data_entry)) - { - yaz_marc_cprintf(mt, - "Length data entry at offset 20 should hold a digit." - " Assuming 4"); - *length_data_entry = 4; - leader[20] = '4'; - } - if (!atoi_n_check(leader+21, 1, length_starting)) - { - yaz_marc_cprintf(mt, - "Length starting at offset 21 should hold a digit." - " Assuming 5"); - *length_starting = 5; - leader[21] = '5'; - } - if (!atoi_n_check(leader+22, 1, length_implementation)) - { - yaz_marc_cprintf(mt, - "Length implementation at offset 22 should hold a digit." - " Assuming 0"); - *length_implementation = 0; - leader[22] = '0'; - } - - if (mt->debug) - { - yaz_marc_cprintf(mt, "Indicator length %5d", *indicator_length); - yaz_marc_cprintf(mt, "Identifier length %5d", *identifier_length); - yaz_marc_cprintf(mt, "Base address %5d", *base_address); - yaz_marc_cprintf(mt, "Length data entry %5d", *length_data_entry); - yaz_marc_cprintf(mt, "Length starting %5d", *length_starting); - yaz_marc_cprintf(mt, "Length implementation %5d", *length_implementation); - } - yaz_marc_add_leader(mt, leader, 24); -} - -void yaz_marc_subfield_str(yaz_marc_t mt, const char *s) -{ - strncpy(mt->subfield_str, s, sizeof(mt->subfield_str)-1); - mt->subfield_str[sizeof(mt->subfield_str)-1] = '\0'; -} - -void yaz_marc_endline_str(yaz_marc_t mt, const char *s) -{ - strncpy(mt->endline_str, s, sizeof(mt->endline_str)-1); - mt->endline_str[sizeof(mt->endline_str)-1] = '\0'; -} - -/* try to guess how many bytes the identifier really is! */ -static size_t cdata_one_character(yaz_marc_t mt, const char *buf) -{ - if (mt->iconv_cd) - { - size_t i; - for (i = 1; i<5; i++) - { - char outbuf[12]; - size_t outbytesleft = sizeof(outbuf); - char *outp = outbuf; - const char *inp = buf; - - size_t inbytesleft = i; - size_t r = yaz_iconv(mt->iconv_cd, (char**) &inp, &inbytesleft, - &outp, &outbytesleft); - if (r != (size_t) (-1)) - return i; /* got a complete sequence */ - } - return 1; /* giving up */ - } - return 1; /* we don't know */ -} - -void yaz_marc_reset(yaz_marc_t mt) -{ - nmem_reset(mt->nmem); - mt->nodes = 0; - mt->nodes_pp = &mt->nodes; - mt->subfield_pp = 0; -} - -int yaz_marc_write_check(yaz_marc_t mt, WRBUF wr) -{ - struct yaz_marc_node *n; - int identifier_length; - const char *leader = 0; - - for (n = mt->nodes; n; n = n->next) - if (n->which == YAZ_MARC_LEADER) - { - leader = n->u.leader; - break; - } - - if (!leader) - return -1; - if (!atoi_n_check(leader+11, 1, &identifier_length)) - return -1; - - for (n = mt->nodes; n; n = n->next) - { - switch(n->which) - { - case YAZ_MARC_COMMENT: - wrbuf_iconv_write(wr, mt->iconv_cd, - n->u.comment, strlen(n->u.comment)); - wrbuf_puts(wr, ")\n"); - break; - default: - break; - } - } - return 0; -} - - -int yaz_marc_write_line(yaz_marc_t mt, WRBUF wr) -{ - struct yaz_marc_node *n; - int identifier_length; - const char *leader = 0; - - for (n = mt->nodes; n; n = n->next) - if (n->which == YAZ_MARC_LEADER) - { - leader = n->u.leader; - break; - } - - if (!leader) - return -1; - if (!atoi_n_check(leader+11, 1, &identifier_length)) - return -1; - - for (n = mt->nodes; n; n = n->next) - { - struct yaz_marc_subfield *s; - switch(n->which) - { - case YAZ_MARC_DATAFIELD: - wrbuf_printf(wr, "%s %s", n->u.datafield.tag, - n->u.datafield.indicator); - for (s = n->u.datafield.subfields; s; s = s->next) - { - /* if identifier length is 2 (most MARCs), - the code is a single character .. However we've - seen multibyte codes, so see how big it really is */ - size_t using_code_len = - (identifier_length != 2) ? identifier_length - 1 - : - cdata_one_character(mt, s->code_data); - - wrbuf_puts (wr, mt->subfield_str); - wrbuf_iconv_write(wr, mt->iconv_cd, s->code_data, - using_code_len); - wrbuf_iconv_puts(wr, mt->iconv_cd, " "); - wrbuf_iconv_puts(wr, mt->iconv_cd, - s->code_data + using_code_len); - marc_iconv_reset(mt, wr); - } - wrbuf_puts (wr, mt->endline_str); - break; - case YAZ_MARC_CONTROLFIELD: - wrbuf_printf(wr, "%s", n->u.controlfield.tag); - wrbuf_iconv_puts(wr, mt->iconv_cd, " "); - wrbuf_iconv_puts(wr, mt->iconv_cd, n->u.controlfield.data); - marc_iconv_reset(mt, wr); - wrbuf_puts (wr, mt->endline_str); - break; - case YAZ_MARC_COMMENT: - wrbuf_puts(wr, "("); - wrbuf_iconv_write(wr, mt->iconv_cd, - n->u.comment, strlen(n->u.comment)); - marc_iconv_reset(mt, wr); - wrbuf_puts(wr, ")\n"); - break; - case YAZ_MARC_LEADER: - wrbuf_printf(wr, "%s\n", n->u.leader); - } - } - wrbuf_puts(wr, "\n"); - return 0; -} - -int yaz_marc_write_mode(yaz_marc_t mt, WRBUF wr) -{ - switch(mt->xml) - { - case YAZ_MARC_LINE: - return yaz_marc_write_line(mt, wr); - case YAZ_MARC_MARCXML: - return yaz_marc_write_marcxml(mt, wr); - case YAZ_MARC_XCHANGE: - return yaz_marc_write_marcxchange(mt, wr, 0, 0); /* no format, type */ - case YAZ_MARC_ISO2709: - return yaz_marc_write_iso2709(mt, wr); - case YAZ_MARC_CHECK: - return yaz_marc_write_check(mt, wr); - } - return -1; -} - -/** \brief common MARC XML/Xchange writer - \param mt handle - \param wr WRBUF output - \param ns XMLNS for the elements - \param format record format (e.g. "MARC21") - \param type record type (e.g. "Bibliographic") -*/ -static int yaz_marc_write_marcxml_ns1(yaz_marc_t mt, WRBUF wr, - const char *ns, - const char *format, - const char *type) -{ - struct yaz_marc_node *n; - int identifier_length; - const char *leader = 0; - - for (n = mt->nodes; n; n = n->next) - if (n->which == YAZ_MARC_LEADER) - { - leader = n->u.leader; - break; - } - - if (!leader) - return -1; - if (!atoi_n_check(leader+11, 1, &identifier_length)) - return -1; - - wrbuf_printf(wr, "\n"); - for (n = mt->nodes; n; n = n->next) - { - struct yaz_marc_subfield *s; - - switch(n->which) - { - case YAZ_MARC_DATAFIELD: - wrbuf_printf(wr, " iconv_cd, n->u.datafield.tag, - strlen(n->u.datafield.tag)); - wrbuf_printf(wr, "\""); - if (n->u.datafield.indicator) - { - int i; - for (i = 0; n->u.datafield.indicator[i]; i++) - { - wrbuf_printf(wr, " ind%d=\"", i+1); - wrbuf_iconv_write_cdata(wr, mt->iconv_cd, - n->u.datafield.indicator+i, 1); - wrbuf_iconv_puts(wr, mt->iconv_cd, "\""); - } - } - wrbuf_printf(wr, ">\n"); - for (s = n->u.datafield.subfields; s; s = s->next) - { - /* if identifier length is 2 (most MARCs), - the code is a single character .. However we've - seen multibyte codes, so see how big it really is */ - size_t using_code_len = - (identifier_length != 2) ? identifier_length - 1 - : - cdata_one_character(mt, s->code_data); - - wrbuf_iconv_puts(wr, mt->iconv_cd, " iconv_cd, - s->code_data, using_code_len); - wrbuf_iconv_puts(wr, mt->iconv_cd, "\">"); - wrbuf_iconv_write_cdata(wr, mt->iconv_cd, - s->code_data + using_code_len, - strlen(s->code_data + using_code_len)); - marc_iconv_reset(mt, wr); - wrbuf_iconv_puts(wr, mt->iconv_cd, ""); - wrbuf_puts(wr, "\n"); - } - wrbuf_printf(wr, " \n"); - break; - case YAZ_MARC_CONTROLFIELD: - wrbuf_printf(wr, " iconv_cd, n->u.controlfield.tag, - strlen(n->u.controlfield.tag)); - wrbuf_iconv_puts(wr, mt->iconv_cd, "\">"); - wrbuf_iconv_write_cdata(wr, mt->iconv_cd, - n->u.controlfield.data, - strlen(n->u.controlfield.data)); - - marc_iconv_reset(mt, wr); - wrbuf_iconv_puts(wr, mt->iconv_cd, ""); - wrbuf_puts(wr, "\n"); - break; - case YAZ_MARC_COMMENT: - wrbuf_printf(wr, "\n"); - break; - case YAZ_MARC_LEADER: - wrbuf_printf(wr, " "); - wrbuf_iconv_write_cdata(wr, - 0 /* no charset conversion for leader */, - n->u.leader, strlen(n->u.leader)); - wrbuf_printf(wr, "\n"); - } - } - wrbuf_puts(wr, "\n"); - return 0; -} - -static int yaz_marc_write_marcxml_ns(yaz_marc_t mt, WRBUF wr, - const char *ns, - const char *format, - const char *type) -{ - if (mt->write_using_libxml2) - { -#if YAZ_HAVE_XML2 - int ret; - xmlNode *root_ptr; - - ret = yaz_marc_write_xml(mt, &root_ptr, ns, format, type); - if (ret == 0) - { - xmlChar *buf_out; - xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0"); - int len_out; - - xmlDocSetRootElement(doc, root_ptr); - xmlDocDumpMemory(doc, &buf_out, &len_out); - - wrbuf_write(wr, (const char *) buf_out, len_out); - wrbuf_puts(wr, ""); - xmlFree(buf_out); - xmlFreeDoc(doc); - } - return ret; -#else - return -1; -#endif - } - else - return yaz_marc_write_marcxml_ns1(mt, wr, ns, format, type); -} - -int yaz_marc_write_marcxml(yaz_marc_t mt, WRBUF wr) -{ - if (!mt->leader_spec) - yaz_marc_modify_leader(mt, 9, "a"); - return yaz_marc_write_marcxml_ns(mt, wr, "http://www.loc.gov/MARC21/slim", - 0, 0); -} - -int yaz_marc_write_marcxchange(yaz_marc_t mt, WRBUF wr, - const char *format, - const char *type) -{ - return yaz_marc_write_marcxml_ns(mt, wr, - "http://www.bs.dk/standards/MarcXchange", - 0, 0); -} - - -int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr, - const char *ns, - const char *format, - const char *type) -{ -#if YAZ_HAVE_XML2 - struct yaz_marc_node *n; - int identifier_length; - const char *leader = 0; - xmlNode *record_ptr; - xmlNsPtr ns_record; - WRBUF wr_cdata = 0; - - for (n = mt->nodes; n; n = n->next) - if (n->which == YAZ_MARC_LEADER) - { - leader = n->u.leader; - break; - } - - if (!leader) - return -1; - if (!atoi_n_check(leader+11, 1, &identifier_length)) - return -1; - - wr_cdata = wrbuf_alloc(); - - record_ptr = xmlNewNode(0, BAD_CAST "record"); - *root_ptr = record_ptr; - - ns_record = xmlNewNs(record_ptr, BAD_CAST ns, 0); - xmlSetNs(record_ptr, ns_record); - - if (format) - xmlNewProp(record_ptr, BAD_CAST "format", BAD_CAST format); - if (type) - xmlNewProp(record_ptr, BAD_CAST "type", BAD_CAST type); - for (n = mt->nodes; n; n = n->next) - { - struct yaz_marc_subfield *s; - xmlNode *ptr; - - switch(n->which) - { - case YAZ_MARC_DATAFIELD: - ptr = xmlNewChild(record_ptr, ns_record, BAD_CAST "datafield", 0); - xmlNewProp(ptr, BAD_CAST "tag", BAD_CAST n->u.datafield.tag); - if (n->u.datafield.indicator) - { - int i; - for (i = 0; n->u.datafield.indicator[i]; i++) - { - char ind_str[6]; - char ind_val[2]; - - sprintf(ind_str, "ind%d", i+1); - ind_val[0] = n->u.datafield.indicator[i]; - ind_val[1] = '\0'; - xmlNewProp(ptr, BAD_CAST ind_str, BAD_CAST ind_val); - } - } - for (s = n->u.datafield.subfields; s; s = s->next) - { - xmlNode *ptr_subfield; - /* if identifier length is 2 (most MARCs), - the code is a single character .. However we've - seen multibyte codes, so see how big it really is */ - size_t using_code_len = - (identifier_length != 2) ? identifier_length - 1 - : - cdata_one_character(mt, s->code_data); - - wrbuf_rewind(wr_cdata); - wrbuf_iconv_puts(wr_cdata, mt->iconv_cd, - s->code_data + using_code_len); - marc_iconv_reset(mt, wr_cdata); - ptr_subfield = xmlNewTextChild( - ptr, ns_record, - BAD_CAST "subfield", BAD_CAST wrbuf_cstr(wr_cdata)); - - wrbuf_rewind(wr_cdata); - wrbuf_iconv_write(wr_cdata, mt->iconv_cd, - s->code_data, using_code_len); - xmlNewProp(ptr_subfield, BAD_CAST "code", - BAD_CAST wrbuf_cstr(wr_cdata)); - } - break; - case YAZ_MARC_CONTROLFIELD: - wrbuf_rewind(wr_cdata); - wrbuf_iconv_puts(wr_cdata, mt->iconv_cd, n->u.controlfield.data); - marc_iconv_reset(mt, wr_cdata); - - ptr = xmlNewTextChild(record_ptr, ns_record, - BAD_CAST "controlfield", - BAD_CAST wrbuf_cstr(wr_cdata)); - - xmlNewProp(ptr, BAD_CAST "tag", BAD_CAST n->u.controlfield.tag); - break; - case YAZ_MARC_COMMENT: - ptr = xmlNewComment(BAD_CAST n->u.comment); - xmlAddChild(record_ptr, ptr); - break; - case YAZ_MARC_LEADER: - xmlNewTextChild(record_ptr, ns_record, BAD_CAST "leader", - BAD_CAST n->u.leader); - break; - } - } - wrbuf_destroy(wr_cdata); - return 0; -#else - return -1; -#endif -} - -int yaz_marc_write_iso2709(yaz_marc_t mt, WRBUF wr) -{ - struct yaz_marc_node *n; - int indicator_length; - int identifier_length; - int length_data_entry; - int length_starting; - int length_implementation; - int data_offset = 0; - const char *leader = 0; - WRBUF wr_dir, wr_head, wr_data_tmp; - int base_address; - - for (n = mt->nodes; n; n = n->next) - if (n->which == YAZ_MARC_LEADER) - leader = n->u.leader; - - if (!leader) - return -1; - if (!atoi_n_check(leader+10, 1, &indicator_length)) - return -1; - if (!atoi_n_check(leader+11, 1, &identifier_length)) - return -1; - if (!atoi_n_check(leader+20, 1, &length_data_entry)) - return -1; - if (!atoi_n_check(leader+21, 1, &length_starting)) - return -1; - if (!atoi_n_check(leader+22, 1, &length_implementation)) - return -1; - - wr_data_tmp = wrbuf_alloc(); - wr_dir = wrbuf_alloc(); - for (n = mt->nodes; n; n = n->next) - { - int data_length = 0; - struct yaz_marc_subfield *s; - - switch(n->which) - { - case YAZ_MARC_DATAFIELD: - wrbuf_printf(wr_dir, "%.3s", n->u.datafield.tag); - data_length += indicator_length; - wrbuf_rewind(wr_data_tmp); - for (s = n->u.datafield.subfields; s; s = s->next) - { - /* write dummy IDFS + content */ - wrbuf_iconv_putchar(wr_data_tmp, mt->iconv_cd, ' '); - wrbuf_iconv_puts(wr_data_tmp, mt->iconv_cd, s->code_data); - marc_iconv_reset(mt, wr_data_tmp); - } - /* write dummy FS (makes MARC-8 to become ASCII) */ - wrbuf_iconv_putchar(wr_data_tmp, mt->iconv_cd, ' '); - marc_iconv_reset(mt, wr_data_tmp); - data_length += wrbuf_len(wr_data_tmp); - break; - case YAZ_MARC_CONTROLFIELD: - wrbuf_printf(wr_dir, "%.3s", n->u.controlfield.tag); - - wrbuf_rewind(wr_data_tmp); - wrbuf_iconv_puts(wr_data_tmp, mt->iconv_cd, - n->u.controlfield.data); - marc_iconv_reset(mt, wr_data_tmp); - wrbuf_iconv_putchar(wr_data_tmp, mt->iconv_cd, ' ');/* field sep */ - marc_iconv_reset(mt, wr_data_tmp); - data_length += wrbuf_len(wr_data_tmp); - break; - case YAZ_MARC_COMMENT: - break; - case YAZ_MARC_LEADER: - break; - } - if (data_length) - { - wrbuf_printf(wr_dir, "%0*d", length_data_entry, data_length); - wrbuf_printf(wr_dir, "%0*d", length_starting, data_offset); - data_offset += data_length; - } - } - /* mark end of directory */ - wrbuf_putc(wr_dir, ISO2709_FS); - - /* base address of data (comes after leader+directory) */ - base_address = 24 + wrbuf_len(wr_dir); - - wr_head = wrbuf_alloc(); - - /* write record length */ - wrbuf_printf(wr_head, "%05d", base_address + data_offset + 1); - /* from "original" leader */ - wrbuf_write(wr_head, leader+5, 7); - /* base address of data */ - wrbuf_printf(wr_head, "%05d", base_address); - /* from "original" leader */ - wrbuf_write(wr_head, leader+17, 7); - - wrbuf_write(wr, wrbuf_buf(wr_head), 24); - wrbuf_write(wr, wrbuf_buf(wr_dir), wrbuf_len(wr_dir)); - wrbuf_destroy(wr_head); - wrbuf_destroy(wr_dir); - wrbuf_destroy(wr_data_tmp); - - for (n = mt->nodes; n; n = n->next) - { - struct yaz_marc_subfield *s; - - switch(n->which) - { - case YAZ_MARC_DATAFIELD: - wrbuf_printf(wr, "%.*s", indicator_length, - n->u.datafield.indicator); - for (s = n->u.datafield.subfields; s; s = s->next) - { - wrbuf_putc(wr, ISO2709_IDFS); - wrbuf_iconv_puts(wr, mt->iconv_cd, s->code_data); - marc_iconv_reset(mt, wr); - } - wrbuf_putc(wr, ISO2709_FS); - break; - case YAZ_MARC_CONTROLFIELD: - wrbuf_iconv_puts(wr, mt->iconv_cd, n->u.controlfield.data); - marc_iconv_reset(mt, wr); - wrbuf_putc(wr, ISO2709_FS); - break; - case YAZ_MARC_COMMENT: - break; - case YAZ_MARC_LEADER: - break; - } - } - wrbuf_printf(wr, "%c", ISO2709_RS); - return 0; -} - - -int yaz_marc_decode_wrbuf(yaz_marc_t mt, const char *buf, int bsize, WRBUF wr) -{ - int s, r = yaz_marc_read_iso2709(mt, buf, bsize); - if (r <= 0) - return r; - s = yaz_marc_write_mode(mt, wr); /* returns 0 for OK, -1 otherwise */ - if (s != 0) - return -1; /* error */ - return r; /* OK, return length > 0 */ -} - -int yaz_marc_decode_buf (yaz_marc_t mt, const char *buf, int bsize, - const char **result, size_t *rsize) -{ - int r; - - wrbuf_rewind(mt->m_wr); - r = yaz_marc_decode_wrbuf(mt, buf, bsize, mt->m_wr); - if (result) - *result = wrbuf_cstr(mt->m_wr); - if (rsize) - *rsize = wrbuf_len(mt->m_wr); - return r; -} - -void yaz_marc_xml(yaz_marc_t mt, int xmlmode) -{ - if (mt) - mt->xml = xmlmode; -} - -void yaz_marc_debug(yaz_marc_t mt, int level) -{ - if (mt) - mt->debug = level; -} - -void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd) -{ - mt->iconv_cd = cd; -} - -void yaz_marc_modify_leader(yaz_marc_t mt, size_t off, const char *str) -{ - struct yaz_marc_node *n; - char *leader = 0; - for (n = mt->nodes; n; n = n->next) - if (n->which == YAZ_MARC_LEADER) - { - leader = n->u.leader; - memcpy(leader+off, str, strlen(str)); - break; - } -} - -int yaz_marc_leader_spec(yaz_marc_t mt, const char *leader_spec) -{ - xfree(mt->leader_spec); - mt->leader_spec = 0; - if (leader_spec) - { - char dummy_leader[24]; - if (marc_exec_leader(leader_spec, dummy_leader, 24)) - return -1; - mt->leader_spec = xstrdup(leader_spec); - } - return 0; -} - -static int marc_exec_leader(const char *leader_spec, char *leader, size_t size) -{ - const char *cp = leader_spec; - while (cp) - { - char val[21]; - int pos; - int no_read = 0, no = 0; - - no = sscanf(cp, "%d=%20[^,]%n", &pos, val, &no_read); - if (no < 2 || no_read < 3) - return -1; - if (pos < 0 || pos >= size) - return -1; - - if (*val == '\'') - { - const char *vp = strchr(val+1, '\''); - size_t len; - - if (!vp) - return -1; - len = vp-val-1; - if (len + pos > size) - return -1; - memcpy(leader + pos, val+1, len); - } - else if (*val >= '0' && *val <= '9') - { - int ch = atoi(val); - leader[pos] = ch; - } - else - return -1; - cp += no_read; - if (*cp != ',') - break; - - cp++; - } - return 0; -} - -int yaz_marc_decode_formatstr(const char *arg) -{ - int mode = -1; - if (!strcmp(arg, "marc")) - mode = YAZ_MARC_ISO2709; - if (!strcmp(arg, "marcxml")) - mode = YAZ_MARC_MARCXML; - if (!strcmp(arg, "marcxchange")) - mode = YAZ_MARC_XCHANGE; - if (!strcmp(arg, "line")) - mode = YAZ_MARC_LINE; - return mode; -} - -void yaz_marc_write_using_libxml2(yaz_marc_t mt, int enable) -{ - mt->write_using_libxml2 = enable; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/matchstr.c b/dependencies/yaz_3.0.14/src/matchstr.c deleted file mode 100644 index cece51a..0000000 --- a/dependencies/yaz_3.0.14/src/matchstr.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: matchstr.c,v 1.7 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file matchstr.c - * \brief Implements loose string matching - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include - -int yaz_matchstr(const char *s1, const char *s2) -{ - while (*s1 && *s2) - { - unsigned char c1 = *s1; - unsigned char c2 = *s2; - - if (c2 == '?') - return 0; - if (c1 == '-') - c1 = *++s1; - if (c2 == '-') - c2 = *++s2; - if (!c1 || !c2) - break; - if (c2 != '.') - { - if (isupper(c1)) - c1 = tolower(c1); - if (isupper(c2)) - c2 = tolower(c2); - if (c1 != c2) - break; - } - s1++; - s2++; - } - return *s1 || *s2; -} - -int yaz_strcmp_del(const char *a, const char *b, const char *b_del) -{ - while (*a && *b) - { - if (*a != *b) - return *a - *b; - a++; - b++; - } - if (b_del && strchr(b_del, *b)) - return *a; - return *a - *b; -} - -#ifdef __GNUC__ -#ifdef __CHECKER__ -void __assert_fail (const char *assertion, const char *file, - unsigned int line, const char *function) -{ - fprintf (stderr, "%s in file %s line %d func %s\n", - assertion, file, line, function); - abort (); -} -#endif -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/mime.c b/dependencies/yaz_3.0.14/src/mime.c deleted file mode 100644 index 6351935..0000000 --- a/dependencies/yaz_3.0.14/src/mime.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: mime.c,v 1.4 2007/05/06 20:12:20 adam Exp $ - */ - -/** \file mime.c - \brief Small utility to manage MIME types -*/ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include "mime.h" - -struct yaz_mime_entry { - char *suffix; - char *mime_type; - struct yaz_mime_entry *next; -}; - -struct yaz_mime_info { - struct yaz_mime_entry *table; -}; - -yaz_mime_types yaz_mime_types_create() -{ - yaz_mime_types p = (yaz_mime_types) xmalloc(sizeof(*p)); - p->table = 0; - return p; -} - -void yaz_mime_types_add(yaz_mime_types t, const char *suffix, - const char *mime_type) -{ - struct yaz_mime_entry *e = (struct yaz_mime_entry *) xmalloc(sizeof(*e)); - e->mime_type = xstrdup(mime_type); - e->suffix = xstrdup(suffix); - e->next = t->table; - t->table = e; -} - -const char *yaz_mime_lookup_suffix(yaz_mime_types t, const char *suffix) -{ - struct yaz_mime_entry *e = t->table; - for (; e; e = e->next) - { - if (!strcmp(e->suffix, suffix)) - return e->mime_type; - } - return 0; -} - -const char *yaz_mime_lookup_fname(yaz_mime_types t, const char *fname) -{ - const char *cp = strrchr(fname, '.'); - if (!cp) /* if no . return now */ - return 0; - return yaz_mime_lookup_suffix(t, cp+1); /* skip . */ -} - -void yaz_mime_types_destroy(yaz_mime_types t) -{ - struct yaz_mime_entry *e = t->table; - while (e) - { - struct yaz_mime_entry *e_next = e->next; - xfree(e->suffix); - xfree(e->mime_type); - xfree(e); - e = e_next; - } - xfree(t); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/mime.h b/dependencies/yaz_3.0.14/src/mime.h deleted file mode 100644 index 00d0303..0000000 --- a/dependencies/yaz_3.0.14/src/mime.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: mime.h,v 1.4 2007/01/03 08:42:15 adam Exp $ - */ - -/** \file mime.h - \brief Small utility to manage MIME types -*/ - -#ifndef MIME_H -#define MIME_H - -typedef struct yaz_mime_info *yaz_mime_types; - -yaz_mime_types yaz_mime_types_create(void); -void yaz_mime_types_add(yaz_mime_types t, const char *suffix, - const char *mime_type); -const char *yaz_mime_lookup_suffix(yaz_mime_types t, const char *suffix); -const char *yaz_mime_lookup_fname(yaz_mime_types t, const char *fname); -void yaz_mime_types_destroy(yaz_mime_types t); - -#endif - diff --git a/dependencies/yaz_3.0.14/src/mterm2.asn b/dependencies/yaz_3.0.14/src/mterm2.asn deleted file mode 100644 index 6ec951d..0000000 --- a/dependencies/yaz_3.0.14/src/mterm2.asn +++ /dev/null @@ -1,10 +0,0 @@ -UserInfoFormat-multipleSearchTerms-2 -{Z39-50-userInfoFormat MultipleSearchTerms-2 (5)} DEFINITIONS ::= -BEGIN -IMPORTS Term FROM Z39-50-APDU-1995; - -MultipleSearchTerms-2 ::= SEQUENCE OF SEQUENCE{ - term [1] Term, - flag [2] IMPLICIT BOOLEAN OPTIONAL} - -END diff --git a/dependencies/yaz_3.0.14/src/mutex.c b/dependencies/yaz_3.0.14/src/mutex.c deleted file mode 100644 index f8398c5..0000000 --- a/dependencies/yaz_3.0.14/src/mutex.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: mutex.c,v 1.1 2007/04/17 20:26:18 adam Exp $ - */ - -/** - * \file mutex.c - * \brief Implements MUTEX functions - * - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef WIN32 -#include -#endif - -#if YAZ_POSIX_THREADS -#include -#endif - -#if YAZ_GNU_THREADS -#include -#endif - -#ifdef WIN32 -struct yaz_mutex { - CRITICAL_SECTION m_handle; -}; -#elif YAZ_POSIX_THREADS -struct yaz_mutex { - pthread_mutex_t m_handle; -}; -#elif YAZ_GNU_THREADS -struct yaz_mutex { - pth_mutex_t m_handle; -}; -#else -struct yaz_mutex { - int dummy; -}; -#endif - -YAZ_EXPORT void yaz_mutex_create(YAZ_MUTEX *p) -{ - if (!*p) - { - *p = (YAZ_MUTEX) malloc(sizeof(**p)); -#ifdef WIN32 - InitializeCriticalSection(&(*p)->m_handle); -#elif YAZ_POSIX_THREADS - pthread_mutex_init(&(*p)->m_handle, 0); -#elif YAZ_GNU_THREADS - pth_mutex_init(&(*p)->m_handle); -#endif - } -} - -YAZ_EXPORT void yaz_mutex_enter(YAZ_MUTEX p) -{ - if (p) - { -#ifdef WIN32 - EnterCriticalSection(&p->m_handle); -#elif YAZ_POSIX_THREADS - pthread_mutex_lock(&p->m_handle); -#endif - } -} - -YAZ_EXPORT void yaz_mutex_leave(YAZ_MUTEX p) -{ - if (p) - { -#ifdef WIN32 - LeaveCriticalSection(&p->m_handle); -#elif YAZ_POSIX_THREADS - pthread_mutex_unlock(&p->m_handle); -#endif - } -} - -YAZ_EXPORT void yaz_mutex_destroy(YAZ_MUTEX *p) -{ - if (*p) - { -#ifdef WIN32 - DeleteCriticalSection(&(*p)->m_handle); -#endif - free(*p); - *p = 0; - } -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/nmem.c b/dependencies/yaz_3.0.14/src/nmem.c deleted file mode 100644 index d1bd6dc..0000000 --- a/dependencies/yaz_3.0.14/src/nmem.c +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: nmem.c,v 1.30 2007/04/17 20:26:18 adam Exp $ - */ - -/** - * \file nmem.c - * \brief Implements Nibble Memory - * - * This is a simple and fairly wasteful little module for nibble memory - * allocation. Evemtually we'll put in something better. - * - * FIXME - it also has some semaphore stuff, and stuff to handle errno. - * These should be moved to some other place! - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef WIN32 -#include -#endif - -#define NMEM_CHUNK (4*1024) - -struct nmem_block -{ - char *buf; /* memory allocated in this block */ - size_t size; /* size of buf */ - size_t top; /* top of buffer */ - struct nmem_block *next; -}; - -struct nmem_control -{ - int total; - struct nmem_block *blocks; - struct nmem_control *next; -}; - -struct align { - char x; - union { - char c; - short s; - int i; - long l; -#if HAVE_LONG_LONG - long long ll; -#endif - float f; - double d; - } u; -}; - -#define NMEM_ALIGN (offsetof(struct align, u)) - -static int log_level = 0; -static int log_level_initialized = 0; - -static void free_block(struct nmem_block *p) -{ - xfree(p->buf); - xfree(p); - if (log_level) - yaz_log (log_level, "nmem free_block p=%p", p); -} - -/* - * acquire a block with a minimum of size free bytes. - */ -static struct nmem_block *get_block(size_t size) -{ - struct nmem_block *r; - size_t get = NMEM_CHUNK; - - if (log_level) - yaz_log (log_level, "nmem get_block size=%ld", (long) size); - - - if (get < size) - get = size; - if(log_level) - yaz_log (log_level, "nmem get_block alloc new block size=%ld", - (long) get); - - r = (struct nmem_block *) xmalloc(sizeof(*r)); - r->buf = (char *)xmalloc(r->size = get); - r->top = 0; - return r; -} - -void nmem_reset(NMEM n) -{ - struct nmem_block *t; - - yaz_log (log_level, "nmem_reset p=%p", n); - if (!n) - return; - while (n->blocks) - { - t = n->blocks; - n->blocks = n->blocks->next; - free_block(t); - } - n->total = 0; -} - -void *nmem_malloc(NMEM n, int size) -{ - struct nmem_block *p; - char *r; - - if (!n) - { - yaz_log (YLOG_FATAL, "calling nmem_malloc with an null pointer"); - abort (); - } - p = n->blocks; - if (!p || p->size < size + p->top) - { - p = get_block(size); - p->next = n->blocks; - n->blocks = p; - } - r = p->buf + p->top; - /* align size */ - p->top += (size + (NMEM_ALIGN - 1)) & ~(NMEM_ALIGN - 1); - n->total += size; - return r; -} - -int nmem_total(NMEM n) -{ - return n->total; -} - -NMEM nmem_create(void) -{ - NMEM r; - if (!log_level_initialized) - { - log_level = yaz_log_module_level("nmem"); - log_level_initialized = 1; - } - - r = (struct nmem_control *)xmalloc(sizeof(*r)); - - r->blocks = 0; - r->total = 0; - r->next = 0; - - return r; -} - -void nmem_destroy(NMEM n) -{ - if (!n) - return; - - nmem_reset(n); - xfree(n); -} - -void nmem_transfer (NMEM dst, NMEM src) -{ - struct nmem_block *t; - while ((t = src->blocks)) - { - src->blocks = t->next; - t->next = dst->blocks; - dst->blocks = t; - } - dst->total += src->total; - src->total = 0; -} - -int yaz_errno(void) -{ - return errno; -} - -void yaz_set_errno(int v) -{ - errno = v; -} - -void yaz_strerror(char *buf, int max) -{ -#ifdef WIN32 - DWORD err; -#endif - char *cp; - if (!log_level_initialized) - { - log_level = yaz_log_module_level("nmem"); - log_level_initialized = 1; - } - -#ifdef WIN32 - err = GetLastError(); - if (err) - { - FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM, - NULL, - err, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default lang */ - (LPTSTR) buf, - max-1, - NULL); - } - else - *buf = '\0'; -#else -/* UNIX */ -#if HAVE_STRERROR_R - *buf = '\0'; - strerror_r(errno, buf, max); - /* if buffer is unset - use strerror anyway (GLIBC bug) */ - if (*buf == '\0') - strcpy(buf, strerror(yaz_errno())); -#else - strcpy(buf, strerror(yaz_errno())); -#endif -/* UNIX */ -#endif - if ((cp = strrchr(buf, '\n'))) - *cp = '\0'; - if ((cp = strrchr(buf, '\r'))) - *cp = '\0'; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/nmemsdup.c b/dependencies/yaz_3.0.14/src/nmemsdup.c deleted file mode 100644 index cf9e3ed..0000000 --- a/dependencies/yaz_3.0.14/src/nmemsdup.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: nmemsdup.c,v 1.11 2007/05/06 20:12:20 adam Exp $ - */ - -/** - * \file nmemsdup.c - * \brief Implements NMEM dup utilities - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include - -char *nmem_strdup (NMEM mem, const char *src) -{ - char *dst = (char *)nmem_malloc (mem, strlen(src)+1); - strcpy (dst, src); - return dst; -} - -char *nmem_strdup_null(NMEM mem, const char *src) -{ - if (!src) - return 0; - else - return nmem_strdup(mem, src); -} - -char *nmem_strdupn (NMEM mem, const char *src, size_t n) -{ - char *dst = (char *)nmem_malloc (mem, n+1); - memcpy (dst, src, n); - dst[n] = '\0'; - return dst; -} - -int *nmem_intdup(NMEM mem, int v) -{ - int *dst = (int*) nmem_malloc (mem, sizeof(int)); - *dst = v; - return dst; -} - -void nmem_strsplit_blank(NMEM nmem, const char *dstr, char ***darray, int *num) -{ - nmem_strsplit(nmem, " ", dstr, darray, num); -} - -void nmem_strsplit(NMEM nmem, const char *delim, const char *dstr, - char ***darray, int *num) -{ - const char *cp = dstr; - for (*num = 0; *cp; (*num)++) - { - while (*cp && strchr(delim, *cp)) - cp++; - if (!*cp) - break; - while (*cp && !strchr(delim, *cp)) - cp++; - } - if (!*num) - *darray = 0; - else - { - size_t i = 0; - *darray = (char **) nmem_malloc(nmem, *num * sizeof(**darray)); - for (cp = dstr; *cp; ) - { - const char *cp0; - while (*cp && strchr(delim, *cp)) - cp++; - if (!*cp) - break; - cp0 = cp; - while (*cp && !strchr(delim, *cp)) - cp++; - (*darray)[i++] = nmem_strdupn(nmem, cp0, cp - cp0); - } - } -} - -#if YAZ_HAVE_XML2 -char *nmem_text_node_cdata(const xmlNode *ptr_cdata, NMEM nmem) -{ - char *cdata; - int len = 0; - const xmlNode *ptr; - - for (ptr = ptr_cdata; ptr; ptr = ptr->next) - if (ptr->type == XML_TEXT_NODE) - len += xmlStrlen(ptr->content); - cdata = (char *) nmem_malloc(nmem, len+1); - *cdata = '\0'; - for (ptr = ptr_cdata; ptr; ptr = ptr->next) - if (ptr->type == XML_TEXT_NODE) - strcat(cdata, (const char *) ptr->content); - return cdata; -} -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/oclc-ill-req-ext.asn b/dependencies/yaz_3.0.14/src/oclc-ill-req-ext.asn deleted file mode 100644 index 9226c26..0000000 --- a/dependencies/yaz_3.0.14/src/oclc-ill-req-ext.asn +++ /dev/null @@ -1,45 +0,0 @@ --- Couple of OCLC-specific extensions to their ILL-Request - -OCLCILLRequestExtension DEFINITIONS ::= ---The object identifier is 1.0.10161.13.2 -BEGIN -IMPORTS ILL-String FROM ISO-10161-ILL-1; - -OCLCILLRequestExtension ::=SEQUENCE { - clientDepartment [0] ILL-String OPTIONAL, - paymentMethod [1] ILL-String OPTIONAL, - uniformTitle [2] ILL-String OPTIONAL, - dissertation [3] ILL-String OPTIONAL, - issueNumber [4] ILL-String OPTIONAL, - volume [5] ILL-String OPTIONAL, - affiliations [6] ILL-String OPTIONAL, - source [7] ILL-String OPTIONAL -} - --- If present, systemNo should contain an OCLC number. To encode the OCLC --- number, use the external object for system number defined by the Library and --- Archives Canada. --- The object identifier is 1.2.124.10161.2 - -SystemNo ::= SEQUENCE SIZE (1..10) OF SEQUENCE - system System, - recordNo RecordNo -} - -System ::= ENUMERATED { - dobis (1), - candoc (2), - oclc (3), - rlin (4), - utlas (5), - other (6) -} ---Do not include the acronym for the system as part of the record number unless ---"other (6)" is chosen. - - RecordNo ::= ILL-String (SIZE (1..50)) - - - -END - diff --git a/dependencies/yaz_3.0.14/src/oclc-ill-req-ext.c b/dependencies/yaz_3.0.14/src/oclc-ill-req-ext.c deleted file mode 100644 index 01c5d79..0000000 --- a/dependencies/yaz_3.0.14/src/oclc-ill-req-ext.c +++ /dev/null @@ -1,63 +0,0 @@ -/** \file oclc-ill-req-ext.c - \brief ASN.1 Module OCLCILLRequestExtension - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int ill_OCLCILLRequestExtension (ODR o, ILL_OCLCILLRequestExtension **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, ill_String, - &(*p)->clientDepartment, ODR_CONTEXT, 0, 1, "clientDepartment") && - odr_explicit_tag (o, ill_String, - &(*p)->paymentMethod, ODR_CONTEXT, 1, 1, "paymentMethod") && - odr_explicit_tag (o, ill_String, - &(*p)->uniformTitle, ODR_CONTEXT, 2, 1, "uniformTitle") && - odr_explicit_tag (o, ill_String, - &(*p)->dissertation, ODR_CONTEXT, 3, 1, "dissertation") && - odr_explicit_tag (o, ill_String, - &(*p)->issueNumber, ODR_CONTEXT, 4, 1, "issueNumber") && - odr_explicit_tag (o, ill_String, - &(*p)->volume, ODR_CONTEXT, 5, 1, "volume") && - odr_explicit_tag (o, ill_String, - &(*p)->affiliations, ODR_CONTEXT, 6, 1, "affiliations") && - odr_explicit_tag (o, ill_String, - &(*p)->source, ODR_CONTEXT, 7, 1, "source") && - odr_sequence_end (o); -} - -int ill_SystemNo_s (ODR o, ILL_SystemNo_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - ill_System(o, &(*p)->System, 0, "System") && - ill_RecordNo(o, &(*p)->recordNo, 0, "recordNo") && - odr_sequence_end (o); -} - -int ill_SystemNo (ODR o, ILL_SystemNo **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) ill_SystemNo_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int ill_System (ODR o, ILL_System **p, int opt, const char *name) -{ - return odr_enum (o, p, opt, name); -} - -int ill_RecordNo (ODR o, ILL_RecordNo **p, int opt, const char *name) -{ - return ill_String (o, p, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/oclcui.asn b/dependencies/yaz_3.0.14/src/oclcui.asn deleted file mode 100644 index 45fb276..0000000 --- a/dependencies/yaz_3.0.14/src/oclcui.asn +++ /dev/null @@ -1,33 +0,0 @@ -UserInfoFormat-oclcUserInformation -{Z39-50-userInfoFormat OCLCUserInformation (7)} DEFINITIONS ::= -BEGIN - --- $Id: oclcui.asn,v 1.1 2003/10/27 12:21:33 adam Exp $ --- --- This format is returned from the server at --- fsz3950test.oclc.org:210 --- I found the definition at --- http://www.oclc.org/firstsearch/documentation/z3950/config_guide.htm --- --- I have added OPTIONAL modifiers to the `dblist' and and `code' --- elements because they appear to be admitted from the APDU returned --- as an Init diagnostic from fsz3950test.oclc.org:210. Adam further --- removed the SEQUENCE structure, changed failReason to a BOOLEAN and --- deleted diagnosticSetId altogether, to make the ASN.1 conform to --- what's actually returned on the wire. Finally, I removed the --- OPTIONAL on failReason on the advice of OCLC's Keith Neibarger --- (although he'd also advised me, wrongly, that I --- could remove the OPTIONAL on dblist). - -OCLC-UserInformation ::= SEQUENCE { - motd [1] IMPLICIT VisibleString OPTIONAL, - dblist SEQUENCE OF DBName OPTIONAL, - failReason [3] IMPLICIT BOOLEAN OPTIONAL, - code [1] IMPLICIT INTEGER OPTIONAL, - text [2] IMPLICIT VisibleString OPTIONAL -} - -DBName ::= [2] IMPLICIT VisibleString - -END - diff --git a/dependencies/yaz_3.0.14/src/odr-priv.h b/dependencies/yaz_3.0.14/src/odr-priv.h deleted file mode 100644 index d7133c0..0000000 --- a/dependencies/yaz_3.0.14/src/odr-priv.h +++ /dev/null @@ -1,135 +0,0 @@ -/** - * \file odr-priv.h - * \brief Internal ODR definitions - */ - -#ifndef ODR_PRIV_H - -#define ODR_PRIV_H - -#include -#include - -/** \brief Utility structure used by ber_tag */ -struct Odr_ber_tag { - int lclass; - int ltag; - int br; - int lcons; -}; - -#define odr_max(o) ((o)->size - ((o)->bp - (o)->buf)) -#define odr_offset(o) ((o)->bp - (o)->buf) - -/** - * \brief stack for BER constructed items - * - * data structure for con stack.. a little peculiar. Since we can't - * deallocate memory we reuse stack items (popped items gets reused) - * - *\verbatim - * +---+ +---+ +---+ +---+ - * NULL -|p n|-----|p n|-----|p n|-----|p n|-- NULL - * +---+ +---+ +---+ +---+ - * | | - * stack_first stack_top reused item - *\endverbatim - */ -struct odr_constack -{ - const unsigned char *base; /** starting point of data */ - int base_offset; - int len; /** length of data, if known, else -1 - (decoding only) */ - const unsigned char *lenb; /** where to encode length */ - int len_offset; - int lenlen; /** length of length-field */ - const char *name; /** name of stack entry */ - - struct odr_constack *prev; /** pointer back in stack */ - struct odr_constack *next; /** pointer forward */ -}; - -#define ODR_MAX_STACK 2000 - -/** - * \brief ODR private data - */ -struct Odr_private { - /* stack for constructed types (we above) */ - struct odr_constack *stack_first; /** first member of allocated stack */ - struct odr_constack *stack_top; /** top of stack */ - - const char **tmp_names_buf; /** array returned by odr_get_element_path */ - int tmp_names_sz; /** size of tmp_names_buf */ - - struct Odr_ber_tag odr_ber_tag; /** used by ber_tag */ - - yaz_iconv_t iconv_handle; - int error_id; - char element[80]; - void (*stream_write)(ODR o, void *handle, int type, - const char *buf, int len); - void (*stream_close)(void *handle); - - int can_grow; /* are we allowed to reallocate */ - int t_class; /* implicit tagging (-1==default tag) */ - int t_tag; - - int enable_bias; /* force choice enable flag */ - int choice_bias; /* force choice */ - int lenlen; /* force length-of-lenght (odr_setlen()) */ - FILE *print; /* output file handler for direction print */ - int indent; /* current indent level for printing */ -}; - -#define ODR_STACK_POP(x) (x)->op->stack_top = (x)->op->stack_top->prev -#define ODR_STACK_EMPTY(x) (!(x)->op->stack_top) -#define ODR_STACK_NOT_EMPTY(x) ((x)->op->stack_top) - -/* Private macro. - * write a single character at the current position - grow buffer if - * necessary. - * (no, we're not usually this anal about our macros, but this baby is - * next to unreadable without some indentation :) - */ -#define odr_putc(o, c) \ -( \ - ( \ - (o)->pos < (o)->size ? \ - ( \ - (o)->buf[(o)->pos++] = (c), \ - 0 \ - ) : \ - ( \ - odr_grow_block((o), 1) == 0 ? \ - ( \ - (o)->buf[(o)->pos++] = (c), \ - 0 \ - ) : \ - ( \ - (o)->error = OSPACE, \ - -1 \ - ) \ - ) \ - ) == 0 ? \ - ( \ - (o)->pos > (o)->top ? \ - ( \ - (o)->top = (o)->pos, \ - 0 \ - ) : \ - 0 \ - ) : \ - -1 \ -) - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr.c b/dependencies/yaz_3.0.14/src/odr.c deleted file mode 100644 index c5b0452..0000000 --- a/dependencies/yaz_3.0.14/src/odr.c +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr.c,v 1.16 2007/03/19 21:08:13 adam Exp $ - * - */ - -/** - * \file odr.c - * \brief Implements fundamental ODR functionality - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include -#include -#include -#include "odr-priv.h" - -static int log_level=0; -static int log_level_initialized=0; - -Odr_null *ODR_NULLVAL = (Odr_null *) "NULL"; /* the presence of a null value */ - -Odr_null *odr_nullval (void) -{ - return ODR_NULLVAL; -} - -char *odr_errlist[] = -{ - "No (unknown) error", - "Memory allocation failed", - "System error", - "No space in buffer", - "Required data element missing", - "Unexpected tag", - "Other error", - "Protocol error", - "Malformed data", - "Stack overflow", - "Length of constructed type different from sum of members", - "Overflow writing definite length of constructed type", - "Bad HTTP Request" -}; - -char *odr_errmsg(int n) -{ - return odr_errlist[n]; -} - -void odr_perror(ODR o, const char *message) -{ - const char *e = odr_getelement(o); - const char **element_path = odr_get_element_path(o); - int err, x; - - err = odr_geterrorx(o, &x); - fprintf(stderr, "%s: %s (code %d:%d)", message, odr_errlist[err], err, x); - if (e && *e) - fprintf(stderr, " element %s", e); - - fprintf(stderr, "\n"); - if (element_path) - { - fprintf(stderr, "Element path:"); - while (*element_path) - fprintf(stderr, " %s", *element_path++); - fprintf(stderr, "\n"); - } -} - -int odr_geterror(ODR o) -{ - return o->error; -} - -int odr_geterrorx(ODR o, int *x) -{ - if (x) - *x = o->op->error_id; - return o->error; -} - -const char *odr_getelement(ODR o) -{ - return o->op->element; -} - -const char **odr_get_element_path(ODR o) -{ - int cur_sz = 0; - struct odr_constack *st; - - for (st = o->op->stack_top; st; st = st->prev) - cur_sz++; - if (o->op->tmp_names_sz < cur_sz + 1) - { - o->op->tmp_names_sz = 2 * cur_sz + 5; - o->op->tmp_names_buf = (const char **) - odr_malloc(o, o->op->tmp_names_sz * sizeof(char*)); - } - o->op->tmp_names_buf[cur_sz] = 0; - for (st = o->op->stack_top; st; st = st->prev) - { - cur_sz--; - o->op->tmp_names_buf[cur_sz] = st->name; - } - assert(cur_sz == 0); - return o->op->tmp_names_buf; -} - -void odr_seterror(ODR o, int error, int id) -{ - o->error = error; - o->op->error_id = id; - o->op->element[0] = '\0'; -} - -void odr_setelement(ODR o, const char *element) -{ - if (element) - { - strncpy(o->op->element, element, sizeof(o->op->element)-1); - o->op->element[sizeof(o->op->element)-1] = '\0'; - } -} - -void odr_FILE_write(ODR o, void *handle, int type, - const char *buf, int len) -{ - int i; -#if 0 - if (type == ODR_OCTETSTRING) - { - const char **stack_names = odr_get_element_path(o); - for (i = 0; stack_names[i]; i++) - fprintf((FILE*) handle, "[%s]", stack_names[i]); - fputs("\n", (FILE*) handle); - } -#endif - for (i = 0; i 3100) - { - fputs(" ..... ", (FILE*) handle); - i = len - 1000; - } - if (strchr("\r\n\f\t", c) || (c >= ' ' && c <= 126)) - putc(c, (FILE*) handle); - else - { - char x[5]; - sprintf(x, "\\X%02X", c); - fputs(x, (FILE*) handle); - } - } -} - -void odr_FILE_close(void *handle) -{ - FILE *f = (FILE *) handle; - if (f && f != stderr && f != stdout) - fclose(f); -} - -void odr_setprint(ODR o, FILE *file) -{ - odr_set_stream(o, file, odr_FILE_write, odr_FILE_close); -} - -void odr_set_stream(ODR o, void *handle, - void (*stream_write)(ODR o, - void *handle, int type, - const char *buf, int len), - void (*stream_close)(void *handle)) -{ - o->op->print = (FILE*) handle; - o->op->stream_write = stream_write; - o->op->stream_close = stream_close; -} - -int odr_set_charset(ODR o, const char *to, const char *from) -{ - if (o->op->iconv_handle) - yaz_iconv_close (o->op->iconv_handle); - o->op->iconv_handle = 0; - if (to && from) - { - o->op->iconv_handle = yaz_iconv_open (to, from); - if (o->op->iconv_handle == 0) - return -1; - } - return 0; -} - - -ODR odr_createmem(int direction) -{ - ODR o; - if (!log_level_initialized) - { - log_level=yaz_log_module_level("odr"); - log_level_initialized=1; - } - - if (!(o = (ODR)xmalloc(sizeof(*o)))) - return 0; - o->op = (struct Odr_private *) xmalloc (sizeof(*o->op)); - o->direction = direction; - o->buf = 0; - o->size = o->pos = o->top = 0; - o->op->can_grow = 1; - o->mem = nmem_create(); - o->op->enable_bias = 1; - o->op->odr_ber_tag.lclass = -1; - o->op->iconv_handle = 0; - odr_setprint(o, stderr); - odr_reset(o); - yaz_log (log_level, "odr_createmem dir=%d o=%p", direction, o); - return o; -} - -void odr_reset(ODR o) -{ - if (!log_level_initialized) - { - log_level=yaz_log_module_level("odr"); - log_level_initialized=1; - } - - odr_seterror(o, ONONE, 0); - o->bp = o->buf; - odr_seek(o, ODR_S_SET, 0); - o->top = 0; - o->op->t_class = -1; - o->op->t_tag = -1; - o->op->indent = 0; - o->op->stack_first = 0; - o->op->stack_top = 0; - o->op->tmp_names_sz = 0; - o->op->tmp_names_buf = 0; - nmem_reset(o->mem); - o->op->choice_bias = -1; - o->op->lenlen = 1; - if (o->op->iconv_handle != 0) - yaz_iconv(o->op->iconv_handle, 0, 0, 0, 0); - yaz_log (log_level, "odr_reset o=%p", o); -} - -void odr_destroy(ODR o) -{ - nmem_destroy(o->mem); - if (o->buf && o->op->can_grow) - xfree(o->buf); - if (o->op->stream_close) - o->op->stream_close(o->op->print); - if (o->op->iconv_handle != 0) - yaz_iconv_close (o->op->iconv_handle); - xfree(o->op); - xfree(o); - yaz_log (log_level, "odr_destroy o=%p", o); -} - -void odr_setbuf(ODR o, char *buf, int len, int can_grow) -{ - odr_seterror(o, ONONE, 0); - o->bp = (unsigned char *) buf; - - o->buf = (unsigned char *) buf; - o->op->can_grow = can_grow; - o->top = o->pos = 0; - o->size = len; -} - -char *odr_getbuf(ODR o, int *len, int *size) -{ - *len = o->top; - if (size) - *size = o->size; - return (char*) o->buf; -} - -void odr_printf(ODR o, const char *fmt, ...) -{ - va_list ap; - char buf[4096]; - - va_start(ap, fmt); - yaz_vsnprintf(buf, sizeof(buf), fmt, ap); - o->op->stream_write(o, o->op->print, ODR_VISIBLESTRING, buf, strlen(buf)); - va_end(ap); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_any.c b/dependencies/yaz_3.0.14/src/odr_any.c deleted file mode 100644 index f6a167a..0000000 --- a/dependencies/yaz_3.0.14/src/odr_any.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_any.c,v 1.6 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file odr_any.c - * \brief Implements ODR ANY codec - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -/** - * This is a catch-all type. It stuffs a random ostring (assumed to be properly - * encoded) into the stream, or reads a full data element. Implicit tagging - * does not work, and neither does the optional flag, unless the element - * is the last in a sequence. - */ -int odr_any(ODR o, Odr_any **p, int opt, const char *name) -{ - if (o->error) - return 0; - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "ANY (len=%d)\n", (*p)->len); - return 1; - } - if (o->direction == ODR_DECODE) - *p = (Odr_oct *)odr_malloc(o, sizeof(**p)); - if (ber_any(o, p)) - return 1; - *p = 0; - return odr_missing(o, opt, name); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_bit.c b/dependencies/yaz_3.0.14/src/odr_bit.c deleted file mode 100644 index de4983d..0000000 --- a/dependencies/yaz_3.0.14/src/odr_bit.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_bit.c,v 1.7 2007/03/19 21:08:13 adam Exp $ - */ - -/** - * \file odr_bit.c - * \brief Implements ODR BITSTRING codec - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" - -/* - * Top level bitstring string en/decoder. - * Returns 1 on success, 0 on error. - */ -int odr_bitstring(ODR o, Odr_bitmask **p, int opt, const char *name) -{ - int res, cons = 0; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_BITSTRING; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "BITSTRING(len=%d)\n",(*p)->top + 1); - return 1; - } - if (o->direction == ODR_DECODE) - { - *p = (Odr_bitmask *)odr_malloc(o, sizeof(Odr_bitmask)); - memset((*p)->bits, 0, ODR_BITMASK_SIZE); - (*p)->top = -1; - } -#if 0 - /* ignoring the cons helps with at least one target. - * http://bugzilla.indexdata.dk/cgi-bin/bugzilla/show_bug.cgi?id=24 - */ - return ber_bitstring(o, *p, 0); -#else - return ber_bitstring(o, *p, cons); -#endif -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_bool.c b/dependencies/yaz_3.0.14/src/odr_bool.c deleted file mode 100644 index bb8c2ea..0000000 --- a/dependencies/yaz_3.0.14/src/odr_bool.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_bool.c,v 1.7 2007/03/19 21:08:13 adam Exp $ - */ - -/** - * \file odr_bool.c - * \brief Implements ODR BOOLEAN codec - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" - -/* - * Top level boolean en/decoder. - * Returns 1 on success, 0 on error. - */ -int odr_bool(ODR o, int **p, int opt, const char *name) -{ - int res, cons = 0; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_BOOLEAN; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "%s\n", (**p ? "TRUE" : "FALSE")); - return 1; - } - if (cons) - return 0; - if (o->direction == ODR_DECODE) - *p = (int *)odr_malloc(o, sizeof(int)); - return ber_boolean(o, *p); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_choice.c b/dependencies/yaz_3.0.14/src/odr_choice.c deleted file mode 100644 index d38ac03..0000000 --- a/dependencies/yaz_3.0.14/src/odr_choice.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_choice.c,v 1.8 2007/03/19 21:08:13 adam Exp $ - */ - -/** - * \file odr_choice.c - * \brief Implements ODR CHOICE codec - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp, - const char *name) -{ - int i, cl = -1, tg, cn, *which = (int *)whichp, bias = o->op->choice_bias; - - if (o->error) - return 0; - if (o->direction != ODR_DECODE && !*(char**)p) - return 0; - - if (o->direction == ODR_DECODE) - { - *which = -1; - *(char**)p = 0; - } - o->op->choice_bias = -1; - - if (o->direction == ODR_PRINT) - { - if (name) - { - odr_prname(o, name); - odr_printf(o, "choice\n"); - } - } - for (i = 0; arm[i].fun; i++) - { - if (o->direction == ODR_DECODE) - { - if (bias >= 0 && bias != arm[i].which) - continue; - *which = arm[i].which; - } - else if (*which != arm[i].which) - continue; - - if (arm[i].tagmode != ODR_NONE) - { - if (o->direction == ODR_DECODE && cl < 0) - { - if (o->op->stack_top && !odr_constructed_more(o)) - return 0; - if (ber_dectag(o->bp, &cl, &tg, &cn, odr_max(o)) <= 0) - return 0; - } - else if (o->direction != ODR_DECODE) - { - cl = arm[i].zclass; - tg = arm[i].tag; - } - if (tg == arm[i].tag && cl == arm[i].zclass) - { - if (arm[i].tagmode == ODR_IMPLICIT) - { - odr_implicit_settag(o, cl, tg); - return (*arm[i].fun)(o, (char **)p, 0, arm[i].name); - } - /* explicit */ - if (!odr_constructed_begin(o, p, cl, tg, 0)) - return 0; - return (*arm[i].fun)(o, (char **)p, 0, arm[i].name) && - odr_constructed_end(o); - } - } - else /* no tagging. Have to poll type */ - { - if ((*arm[i].fun)(o, (char **)p, 1, arm[i].name) && *(char**)p) - return 1; - } - } - return 0; -} - -void odr_choice_bias(ODR o, int what) -{ - if (o->op->enable_bias) - o->op->choice_bias = what; -} - -void odr_choice_enable_bias (ODR o, int mode) -{ - o->op->enable_bias = mode; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_cons.c b/dependencies/yaz_3.0.14/src/odr_cons.c deleted file mode 100644 index 7eb3685..0000000 --- a/dependencies/yaz_3.0.14/src/odr_cons.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_cons.c,v 1.9 2007/03/19 21:08:13 adam Exp $ - * - */ - -/** - * \file odr_cons.c - * \brief Implements ODR constructed codec. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include - -#include "odr-priv.h" - -void odr_setlenlen(ODR o, int len) -{ - o->op->lenlen = len; -} - -int odr_constructed_begin(ODR o, void *xxp, int zclass, int tag, - const char *name) -{ - int res; - int cons = 1; - int lenlen = o->op->lenlen; - - if (o->error) - return 0; - o->op->lenlen = 1; /* reset lenlen */ - if (o->op->t_class < 0) - { - o->op->t_class = zclass; - o->op->t_tag = tag; - } - res = ber_tag(o, xxp, o->op->t_class, o->op->t_tag, &cons, 1, name); - if (res < 0) - return 0; - if (!res || !cons) - return 0; - - /* push the odr_constack */ - if (o->op->stack_top && o->op->stack_top->next) - { - /* reuse old entry */ - o->op->stack_top = o->op->stack_top->next; - } - else if (o->op->stack_top && !o->op->stack_top->next) - { - /* must allocate new entry (not first) */ - int sz = 0; - struct odr_constack *st; - /* check size first */ - for (st = o->op->stack_top; st; st = st->prev) - sz++; - - if (sz >= ODR_MAX_STACK) - { - odr_seterror(o, OSTACK, 30); - return 0; - } - o->op->stack_top->next = (struct odr_constack *) - odr_malloc(o, sizeof(*o->op->stack_top)); - o->op->stack_top->next->prev = o->op->stack_top; - o->op->stack_top->next->next = 0; - - o->op->stack_top = o->op->stack_top->next; - } - else if (!o->op->stack_top) - { - /* stack empty */ - if (!o->op->stack_first) - { - /* first item must be allocated */ - o->op->stack_first = (struct odr_constack *) - odr_malloc(o, sizeof(*o->op->stack_top)); - o->op->stack_first->prev = 0; - o->op->stack_first->next = 0; - } - o->op->stack_top = o->op->stack_first; - assert(o->op->stack_top->prev == 0); - } - o->op->stack_top->lenb = o->bp; - o->op->stack_top->len_offset = odr_tell(o); - o->op->stack_top->name = name ? name : "?"; - if (o->direction == ODR_ENCODE) - { - static unsigned char dummy[sizeof(int)+1]; - - o->op->stack_top->lenlen = lenlen; - - if (odr_write(o, dummy, lenlen) < 0) /* dummy */ - { - ODR_STACK_POP(o); - return 0; - } - } - else if (o->direction == ODR_DECODE) - { - if ((res = ber_declen(o->bp, &o->op->stack_top->len, - odr_max(o))) < 0) - { - odr_seterror(o, OOTHER, 31); - ODR_STACK_POP(o); - return 0; - } - o->op->stack_top->lenlen = res; - o->bp += res; - if (o->op->stack_top->len > odr_max(o)) - { - odr_seterror(o, OOTHER, 32); - ODR_STACK_POP(o); - return 0; - } - } - else if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "{\n"); - o->op->indent++; - } - else - { - odr_seterror(o, OOTHER, 33); - ODR_STACK_POP(o); - return 0; - } - o->op->stack_top->base = o->bp; - o->op->stack_top->base_offset = odr_tell(o); - return 1; -} - -int odr_constructed_more(ODR o) -{ - if (o->error) - return 0; - if (ODR_STACK_EMPTY(o)) - return 0; - if (o->op->stack_top->len >= 0) - return o->bp - o->op->stack_top->base < o->op->stack_top->len; - else - return (!(*o->bp == 0 && *(o->bp + 1) == 0)); -} - -int odr_constructed_end(ODR o) -{ - int res; - int pos; - - if (o->error) - return 0; - if (ODR_STACK_EMPTY(o)) - { - odr_seterror(o, OOTHER, 34); - return 0; - } - switch (o->direction) - { - case ODR_DECODE: - if (o->op->stack_top->len < 0) - { - if (*o->bp++ == 0 && *(o->bp++) == 0) - { - ODR_STACK_POP(o); - return 1; - } - else - { - odr_seterror(o, OOTHER, 35); - return 0; - } - } - else if (o->bp - o->op->stack_top->base != - o->op->stack_top->len) - { - odr_seterror(o, OCONLEN, 36); - return 0; - } - ODR_STACK_POP(o); - return 1; - case ODR_ENCODE: - pos = odr_tell(o); - odr_seek(o, ODR_S_SET, o->op->stack_top->len_offset); - if ((res = ber_enclen(o, pos - o->op->stack_top->base_offset, - o->op->stack_top->lenlen, 1)) < 0) - { - odr_seterror(o, OLENOV, 37); - return 0; - } - odr_seek(o, ODR_S_END, 0); - if (res == 0) /* indefinite encoding */ - { - if (odr_putc(o, 0) < 0 || odr_putc(o, 0) < 0) - return 0; - } - ODR_STACK_POP(o); - return 1; - case ODR_PRINT: - ODR_STACK_POP(o); - o->op->indent--; - odr_prname(o, 0); - odr_printf(o, "}\n"); - return 1; - default: - odr_seterror(o, OOTHER, 38); - return 0; - } -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_enum.c b/dependencies/yaz_3.0.14/src/odr_enum.c deleted file mode 100644 index e4cffff..0000000 --- a/dependencies/yaz_3.0.14/src/odr_enum.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_enum.c,v 1.7 2007/03/19 21:08:13 adam Exp $ - */ -/** - * \file odr_enum.c - * \brief Implements ODR ENUM codec - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -/* - * Top level enum en/decoder. - * Returns 1 on success, 0 on error. - */ -int odr_enum(ODR o, int **p, int opt, const char *name) -{ - int res, cons = 0; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_ENUM; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "%d\n", **p); - return 1; - } - if (cons) - { - odr_seterror(o, OPROTO, 54); - return 0; - } - if (o->direction == ODR_DECODE) - *p = (int *)odr_malloc(o, sizeof(int)); - return ber_integer(o, *p); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_int.c b/dependencies/yaz_3.0.14/src/odr_int.c deleted file mode 100644 index 458372f..0000000 --- a/dependencies/yaz_3.0.14/src/odr_int.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_int.c,v 1.7 2007/03/19 21:08:13 adam Exp $ - */ -/** - * \file odr_int.c - * \brief Implements ODR INTEGER codec - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -/* - * Top level integer en/decoder. - * Returns 1 on success, 0 on error. - */ -int odr_integer(ODR o, int **p, int opt, const char *name) -{ - int res, cons = 0; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_INTEGER; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "%d\n", **p); - return 1; - } - if (cons) - { - odr_seterror(o, OPROTO, 1); - return 0; - } - if (o->direction == ODR_DECODE) - *p = (int *)odr_malloc(o, sizeof(int)); - return ber_integer(o, *p); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_mem.c b/dependencies/yaz_3.0.14/src/odr_mem.c deleted file mode 100644 index eaa7c5f..0000000 --- a/dependencies/yaz_3.0.14/src/odr_mem.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_mem.c,v 1.12 2007/09/11 08:35:42 adam Exp $ - */ -/** - * \file odr_mem.c - * \brief Implements ODR memory management - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" -#include - -/* ------------------------ NIBBLE MEMORY ---------------------- */ - -/* - * Extract the memory control block from o. - */ -NMEM odr_extract_mem(ODR o) -{ - NMEM r = o->mem; - - o->mem = nmem_create(); - return r; -} - -void *odr_malloc(ODR o, int size) -{ - return nmem_malloc(o->mem, size); -} - -char *odr_strdup(ODR o, const char *str) -{ - return nmem_strdup(o->mem, str); -} - -char *odr_strdup_null(ODR o, const char *str) -{ - return nmem_strdup_null(o->mem, str); -} - -char *odr_strdupn(ODR o, const char *str, size_t n) -{ - return nmem_strdupn(o->mem, str, n); -} - -int *odr_intdup(ODR o, int v) -{ - return nmem_intdup(o->mem, v); -} - -int odr_total(ODR o) -{ - return nmem_total(o->mem); -} - -Odr_oct *odr_create_Odr_oct(ODR o, const unsigned char *buf, int sz) -{ - Odr_oct *p = (Odr_oct *) odr_malloc(o, sizeof(Odr_oct)); - p->buf = (unsigned char *) odr_malloc(o, sz); - memcpy(p->buf, buf, sz); - p->size = sz; - p->len = sz; - return p; -} - -/* ---------- memory management for data encoding ----------*/ - - -int odr_grow_block(ODR b, int min_bytes) -{ - int togrow; - - if (!b->op->can_grow) - return -1; - if (!b->size) - togrow = 1024; - else - togrow = b->size; - if (togrow < min_bytes) - togrow = min_bytes; - if (b->size && !(b->buf = - (unsigned char *) xrealloc(b->buf, b->size += togrow))) - abort(); - else if (!b->size && !(b->buf = (unsigned char *) - xmalloc(b->size = togrow))) - abort(); - return 0; -} - -int odr_write(ODR o, unsigned char *buf, int bytes) -{ - if (o->pos + bytes >= o->size && odr_grow_block(o, bytes)) - { - odr_seterror(o, OSPACE, 40); - return -1; - } - memcpy(o->buf + o->pos, buf, bytes); - o->pos += bytes; - if (o->pos > o->top) - o->top = o->pos; - return 0; -} - -int odr_seek(ODR o, int whence, int offset) -{ - if (whence == ODR_S_CUR) - offset += o->pos; - else if (whence == ODR_S_END) - offset += o->top; - if (offset > o->size && odr_grow_block(o, offset - o->size)) - { - odr_seterror(o, OSPACE, 41); - return -1; - } - o->pos = offset; - return 0; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_null.c b/dependencies/yaz_3.0.14/src/odr_null.c deleted file mode 100644 index 2272487..0000000 --- a/dependencies/yaz_3.0.14/src/odr_null.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_null.c,v 1.8 2007/03/19 21:08:13 adam Exp $ - */ -/** - * \file odr_null.c - * \brief Implements ODR NULL codec - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -/* - * Top level null en/decoder. - * Returns 1 on success, 0 on error. - */ -int odr_null(ODR o, Odr_null **p, int opt, const char *name) -{ - int res, cons = 0; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_NULL; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "NULL\n"); - return 1; - } - if (cons) - { -#ifdef ODR_STRICT_NULL - odr_seterror(OPROTO, 42); - return 0; -#else - /* Warning: Bad NULL */ -#endif - } - if (o->direction == ODR_DECODE) - *p = odr_nullval(); - return ber_null(o); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_oct.c b/dependencies/yaz_3.0.14/src/odr_oct.c deleted file mode 100644 index 7938315..0000000 --- a/dependencies/yaz_3.0.14/src/odr_oct.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_oct.c,v 1.13 2007/05/21 11:51:01 adam Exp $ - */ -/** - * \file odr_oct.c - * \brief Implements ODR OCTET codec - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -/* - * Top level octet string en/decoder. - * Returns 1 on success, 0 on error. - */ -int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name) -{ - int res, cons = 0; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_OCTETSTRING; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "OCTETSTRING(len=%d) ", (*p)->len); - - o->op->stream_write(o, o->op->print, ODR_OCTETSTRING, - (char*) (*p)->buf, (*p)->len); - odr_printf(o, "\n"); - return 1; - } - if (o->direction == ODR_DECODE) - { - *p = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); - (*p)->size= 0; - (*p)->len = 0; - (*p)->buf = 0; - } - if (ber_octetstring(o, *p, cons)) - return 1; - odr_seterror(o, OOTHER, 43); - return 0; -} - -/* - * Friendlier interface to octetstring. - */ -int odr_cstring(ODR o, char **p, int opt, const char *name) -{ - int cons = 0, res; - Odr_oct *t; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_OCTETSTRING; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "'%s'\n", *p); - return 1; - } - t = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); /* wrapper for octstring */ - if (o->direction == ODR_ENCODE) - { - t->buf = (unsigned char *) *p; - t->size = t->len = strlen(*p); - } - else - { - t->size= 0; - t->len = 0; - t->buf = 0; - } - if (!ber_octetstring(o, t, cons)) - return 0; - if (o->direction == ODR_DECODE) - { - *p = (char *) t->buf; - *(*p + t->len) = '\0'; /* ber_octs reserves space for this */ - } - return 1; -} - -/* - * iconv interface to octetstring. - */ -int odr_iconv_string(ODR o, char **p, int opt, const char *name) -{ - int cons = 0, res; - Odr_oct *t; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_OCTETSTRING; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (o->direction == ODR_PRINT) - { - odr_prname(o, name); - odr_printf(o, "'%s'\n", *p); - return 1; - } - t = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); /* wrapper for octstring */ - if (o->direction == ODR_ENCODE) - { - t->buf = 0; - - if (o->op->iconv_handle != 0) - { - size_t inleft = strlen(*p); - char *inbuf = *p; - size_t outleft = 4 * inleft + 2; - char *outbuf = (char *) odr_malloc (o, outleft); - size_t ret; - - t->buf = (unsigned char *) outbuf; - - ret = yaz_iconv(o->op->iconv_handle, &inbuf, &inleft, - &outbuf, &outleft); - if (ret == (size_t)(-1)) - { - odr_seterror(o, ODATA, 44); - return 0; - } - ret = yaz_iconv(o->op->iconv_handle, 0, 0, - &outbuf, &outleft); - - if (ret == (size_t)(-1)) - { - odr_seterror(o, ODATA, 44); - return 0; - } - t->size = t->len = outbuf - (char*) t->buf; - } - if (!t->buf) - { - t->buf = (unsigned char *) *p; - t->size = t->len = strlen(*p); - } - } - else - { - t->size= 0; - t->len = 0; - t->buf = 0; - } - if (!ber_octetstring(o, t, cons)) - return 0; - if (o->direction == ODR_DECODE) - { - *p = 0; - - if (o->op->iconv_handle != 0) - { - size_t inleft = t->len; - char *inbuf = (char *) t->buf; - size_t outleft = 4 * inleft + 2; - char *outbuf = (char *) odr_malloc (o, outleft); - size_t ret; - - *p = outbuf; - - ret = yaz_iconv (o->op->iconv_handle, &inbuf, &inleft, - &outbuf, &outleft); - if (ret == (size_t)(-1)) - { - odr_seterror(o, ODATA, 45); - return 0; - } - ret = yaz_iconv(o->op->iconv_handle, 0, 0, - &outbuf, &outleft); - if (ret == (size_t)(-1)) - { - odr_seterror(o, ODATA, 45); - return 0; - } - inleft = outbuf - (char*) *p; - - (*p)[inleft] = '\0'; /* null terminate it */ - } - if (!*p) - { - *p = (char *) t->buf; - *(*p + t->len) = '\0'; /* ber_octs reserves space for this */ - } - } - return 1; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_oid.c b/dependencies/yaz_3.0.14/src/odr_oid.c deleted file mode 100644 index 5549d4c..0000000 --- a/dependencies/yaz_3.0.14/src/odr_oid.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_oid.c,v 1.11 2007/05/08 08:22:36 adam Exp $ - */ -/** - * \file odr_oid.c - * \brief Implements ODR OID codec - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include "odr-priv.h" - -/* - * Top level oid en/decoder. - * Returns 1 on success, 0 on error. - */ -int odr_oid(ODR o, Odr_oid **p, int opt, const char *name) -{ - int res, cons = 0; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_OID; - } - res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); - if (res < 0) - return 0; - if (!res) - return odr_missing(o, opt, name); - if (cons) - { - odr_seterror(o, OPROTO, 46); - return 0; - } - if (o->direction == ODR_PRINT) - { - int i; - - odr_prname(o, name); - odr_printf(o, "OID:"); - for (i = 0; (*p)[i] > -1; i++) - odr_printf(o, " %d", (*p)[i]); - odr_printf(o, "\n"); - return 1; - } - if (o->direction == ODR_DECODE) - *p = (Odr_oid *)odr_malloc(o, OID_SIZE * sizeof(**p)); - return ber_oidc(o, *p, OID_SIZE); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_seq.c b/dependencies/yaz_3.0.14/src/odr_seq.c deleted file mode 100644 index ff7a5a1..0000000 --- a/dependencies/yaz_3.0.14/src/odr_seq.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_seq.c,v 1.7 2007/03/19 21:08:13 adam Exp $ - */ -/** - * \file odr_seq.c - * \brief Implements ODR SEQUENCE codec - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -int odr_sequence_begin(ODR o, void *p, int size, const char *name) -{ - char **pp = (char**) p; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_SEQUENCE; - } - if (o->direction == ODR_DECODE) - *pp = 0; - if (odr_constructed_begin(o, p, o->op->t_class, o->op->t_tag, name)) - { - if (o->direction == ODR_DECODE && size) - *pp = (char *)odr_malloc(o, size); - return 1; - } - else - return 0; -} - -int odr_set_begin(ODR o, void *p, int size, const char *name) -{ - char **pp = (char**) p; - - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = ODR_UNIVERSAL; - o->op->t_tag = ODR_SET; - } - if (o->direction == ODR_DECODE) - *pp = 0; - if (odr_constructed_begin(o, p, o->op->t_class, o->op->t_tag, name)) - { - if (o->direction == ODR_DECODE && size) - *pp = (char *)odr_malloc(o, size); - return 1; - } - else - return 0; -} - -int odr_sequence_end(ODR o) -{ - return odr_constructed_end(o); -} - -int odr_set_end(ODR o) -{ - return odr_constructed_end(o); -} - -static int odr_sequence_more(ODR o) -{ - return odr_constructed_more(o); -} - -static int odr_sequence_x (ODR o, Odr_fun type, void *p, int *num) -{ - char ***pp = (char***) p; /* for dereferencing */ - char **tmp = 0; - int size = 0, i; - - switch (o->direction) - { - case ODR_DECODE: - *num = 0; - *pp = (char **)odr_nullval(); - while (odr_sequence_more(o)) - { - /* outgrown array? */ - if (*num * (int) sizeof(void*) >= size) - { - /* double the buffer size */ - tmp = (char **)odr_malloc(o, sizeof(void*) * - (size += size ? size : 128)); - if (*num) - { - memcpy(tmp, *pp, *num * sizeof(void*)); - /* - * For now, we just throw the old *p away, since we use - * nibble memory anyway (disgusting, isn't it?). - */ - } - *pp = tmp; - } - if (!(*type)(o, (*pp) + *num, 0, 0)) - return 0; - (*num)++; - } - break; - case ODR_ENCODE: case ODR_PRINT: - for (i = 0; i < *num; i++) - { - if (!(*type)(o, *pp + i, 0, 0)) - return 0; - } - break; - default: - odr_seterror(o, OOTHER, 47); - return 0; - } - return odr_sequence_end(o); -} - -int odr_set_of(ODR o, Odr_fun type, void *p, int *num, const char *name) -{ - if (!odr_set_begin(o, p, 0, name)) { - if (o->direction == ODR_DECODE) - *num = 0; - return 0; - } - return odr_sequence_x (o, type, p, num); -} - -int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num, - const char *name) -{ - if (!odr_sequence_begin(o, p, 0, name)) { - if (o->direction == ODR_DECODE) - *num = 0; - return 0; - } - return odr_sequence_x (o, type, p, num); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_tag.c b/dependencies/yaz_3.0.14/src/odr_tag.c deleted file mode 100644 index 2c390ae..0000000 --- a/dependencies/yaz_3.0.14/src/odr_tag.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_tag.c,v 1.7 2007/03/19 21:08:13 adam Exp $ - */ -/** - * \file odr_tag.c - * \brief Implements ODR IMPLICIT tagging codec - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -int odr_peektag(ODR o, int *zclass, int *tag, int *cons) -{ - if (o->direction != ODR_DECODE) - { - odr_seterror(o, OOTHER, 48); - return 0; - } - if (ODR_STACK_NOT_EMPTY(o) && !odr_constructed_more(o)) - return 0; - if (ber_dectag(o->bp, zclass, tag, cons, odr_max(o)) <= 0) - { - odr_seterror(o, OREQUIRED, 49); - return 0; - } - return 1; -} - -int odr_implicit_settag(ODR o, int zclass, int tag) -{ - if (o->error) - return 0; - if (o->op->t_class < 0) - { - o->op->t_class = zclass; - o->op->t_tag = tag; - } - return 1; -} - -int odr_initmember(ODR o, void *p, int size) -{ - char **pp = (char **) p; - - if (o->error) - return 0; - if (o->direction == ODR_DECODE) - *pp = (char *)odr_malloc(o, size); - else if (!*pp) - { - o->op->t_class = -1; - return 0; - } - return 1; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_use.c b/dependencies/yaz_3.0.14/src/odr_use.c deleted file mode 100644 index 5c7b306..0000000 --- a/dependencies/yaz_3.0.14/src/odr_use.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_use.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - */ -/** - * \file odr_use.c - * \brief Implements misc ODR types. - */ -#if HAVE_CONFIG_H -#include -#endif - -#include "odr-priv.h" - -int odr_external(ODR o, Odr_external **p, int opt, const char *name) -{ - Odr_external *pp; - static Odr_arm arm[] = - { - {ODR_EXPLICIT, ODR_CONTEXT, 0, ODR_EXTERNAL_single, - (Odr_fun)odr_any, "single"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, ODR_EXTERNAL_octet, - (Odr_fun)odr_octetstring, "octet"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, ODR_EXTERNAL_arbitrary, - (Odr_fun)odr_bitstring, "arbitrary"}, - {-1, -1, -1, -1, 0, 0} - }; - - odr_implicit_settag(o, ODR_UNIVERSAL, ODR_EXTERNAL); - if (!odr_sequence_begin(o, p, sizeof(Odr_external), name)) - return odr_missing(o, opt, name); - pp = *p; - return - odr_oid(o, &pp->direct_reference, 1, "direct") && - odr_integer(o, &pp->indirect_reference, 1, "indirect") && - odr_graphicstring(o, &pp->descriptor, 1, "descriptor") && - odr_choice(o, arm, &pp->u, &pp->which, 0) && - odr_sequence_end(o); -} - -int odr_visiblestring(ODR o, char **p, int opt, const char *name) -{ - return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL, - ODR_VISIBLESTRING, opt, name); -} - -/* - * a char may not be sufficient to hold a general string, but we'll deal - * with that once we start looking more closely at UniCode & co. - */ -int odr_generalstring(ODR o, char **p, int opt, const char *name) -{ - return odr_implicit_tag(o, odr_iconv_string, p, ODR_UNIVERSAL, - ODR_GENERALSTRING,opt, name); -} - -int odr_graphicstring(ODR o, char **p, int opt, const char *name) -{ - return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL, - ODR_GRAPHICSTRING, opt, name); -} - -int odr_generalizedtime(ODR o, char **p, int opt, const char *name) -{ - return odr_implicit_tag(o, odr_cstring, p, ODR_UNIVERSAL, - ODR_GENERALIZEDTIME, opt, name); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/odr_util.c b/dependencies/yaz_3.0.14/src/odr_util.c deleted file mode 100644 index 0e7584a..0000000 --- a/dependencies/yaz_3.0.14/src/odr_util.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: odr_util.c,v 1.13 2007/05/08 08:22:36 adam Exp $ - */ -/** - * \file odr_util.c - * \brief Implements various ODR utilities - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include "odr-priv.h" -#include - -void odr_prname(ODR o, const char *name) -{ - if (name) - odr_printf(o, "%*s%s ", o->op->indent*4, "", name); - else - odr_printf(o, "%*s", o->op->indent*4, ""); -} - -int odp_more_chunks(ODR o, const unsigned char *base, int len) -{ - if (!len) - return 0; - if (len < 0) /* indefinite length */ - { - if (*o->bp == 0 && *(o->bp + 1) == 0) - { - o->bp += 2; - return 0; - } - else - return 1; - } - else - return o->bp - base < len; -} - -Odr_oid *odr_oiddup_nmem(NMEM nmem, const Odr_oid *o) -{ - Odr_oid *r; - - if (!o) - return 0; - if (!(r = (Odr_oid *) - nmem_malloc(nmem, (oid_oidlen(o) + 1) * sizeof(Odr_oid)))) - return 0; - oid_oidcpy(r, o); - return r; -} - -Odr_oid *odr_oiddup(ODR odr, const Odr_oid *o) -{ - return odr_oiddup_nmem(odr_getmem(odr), o); -} - -Odr_oid *odr_getoidbystr_nmem(NMEM nmem, const char *str) -{ - Odr_oid oid[OID_SIZE]; - Odr_oid *ret; - - if (oid_dotstring_to_oid(str, oid)) - return 0; - ret = (Odr_oid *)nmem_malloc(nmem, sizeof(*ret)*(oid_oidlen(oid) + 1)); - oid_oidcpy(ret, oid); - return ret; -} - -Odr_oid *odr_getoidbystr(ODR o, const char *str) -{ - return odr_getoidbystr_nmem(odr_getmem(o), str); -} - -int odr_missing(ODR o, int opt, const char *name) -{ - if (o->error) - return 0; - if (!opt) - { - odr_seterror(o, OREQUIRED, 53); - odr_setelement(o, name); - } - return opt; -} - -/* - * Reallocate the buffer `old', using the ODR memory pool `o' to be - * big enough to hold its existing value (if any) plus `prefix' (if - * any) and a separator character. Copy `prefix', a forward slash and - * the old value into the new area and return its address. Can be - * used as follows: - * initRequest->implementationName = odr_prepend(o, - * initRequest->implementationName, "ZOOM-C"); - */ -char *odr_prepend(ODR o, const char *prefix, const char *old) -{ - int plen = (prefix == 0) ? 0 : strlen(prefix); - int olen = (old == 0) ? 0 : strlen(old); - char *res = (char*) odr_malloc (o, olen + plen + 2); - - *res = '\0'; - if (prefix != 0) - strcpy (res, prefix); - if (prefix != 0 && old != 0) - strcat (res, "/"); - if (old !=0) - strcat (res, old); - - return res; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/oid.csv b/dependencies/yaz_3.0.14/src/oid.csv deleted file mode 100644 index d9d2b05..0000000 --- a/dependencies/yaz_3.0.14/src/oid.csv +++ /dev/null @@ -1,141 +0,0 @@ -"$Id: oid.csv,v 1.3 2007/05/30 08:12:17 adam Exp $" -TRANSYN, 2.1.1, "BER" -TRANSYN, 1.0.2709.1.1, "ISO2709" -GENERAL, 1.0.10161.2.1, "ISOILL-1" -ABSYN, 2.1, "Z-APDU" -APPCTX, 1.1, "Z-BASIC" -ATTSET, Z3950_PREFIX.3.1, "Bib-1" -ATTSET, Z3950_PREFIX.3.2, "Exp-1" -ATTSET, Z3950_PREFIX.3.3, "Ext-1" -ATTSET, Z3950_PREFIX.3.4, "CCL-1" -ATTSET, Z3950_PREFIX.3.5, "GILS" -ATTSET, Z3950_PREFIX.3.5, "GILS-attset" -ATTSET, Z3950_PREFIX.3.6, "STAS-attset" -ATTSET, Z3950_PREFIX.3.7, "Collections-attset" -ATTSET, Z3950_PREFIX.3.8, "CIMI-attset" -ATTSET, Z3950_PREFIX.3.9, "Geo-attset" -ATTSET, Z3950_PREFIX.3.10, "ZBIG" -ATTSET, Z3950_PREFIX.3.11, "Util" -ATTSET, Z3950_PREFIX.3.12, "XD-1" -ATTSET, Z3950_PREFIX.3.13, "Zthes" -ATTSET, Z3950_PREFIX.3.14, "Fin-1" -ATTSET, Z3950_PREFIX.3.15, "Dan-1" -ATTSET, Z3950_PREFIX.3.16, "Holdings" -ATTSET, Z3950_PREFIX.3.17, "MARC" -ATTSET, Z3950_PREFIX.3.18, "Bib-2" -ATTSET, Z3950_PREFIX.3.19, "ZeeRex" -ATTSET, Z3950_PREFIX.3.1000.81.1, "Thesaurus-attset" -ATTSET, Z3950_PREFIX.3.1000.81.2, "IDXPATH" -ATTSET, Z3950_PREFIX.3.1000.81.3, "EXTLITE" -DIAGSET, Z3950_PREFIX.4.1, "Bib-1" -DIAGSET, Z3950_PREFIX.4.2, "Diag-1" -DIAGSET, Z3950_PREFIX.4.3, "Diag-ES" -DIAGSET, Z3950_PREFIX.4.3, "Diag-General" -RECSYN, Z3950_PREFIX.5.1, "Unimarc" -RECSYN, Z3950_PREFIX.5.2, "Intermarc" -RECSYN, Z3950_PREFIX.5.3, "CCF" -RECSYN, Z3950_PREFIX.5.10, "USmarc" -RECSYN, Z3950_PREFIX.5.10, "MARC21" -RECSYN, Z3950_PREFIX.5.11, "UKmarc" -RECSYN, Z3950_PREFIX.5.12, "Normarc" -RECSYN, Z3950_PREFIX.5.13, "Librismarc" -RECSYN, Z3950_PREFIX.5.14, "Danmarc" -RECSYN, Z3950_PREFIX.5.15, "Finmarc" -RECSYN, Z3950_PREFIX.5.16, "MAB" -RECSYN, Z3950_PREFIX.5.17, "Canmarc" -RECSYN, Z3950_PREFIX.5.18, "SBN" -RECSYN, Z3950_PREFIX.5.19, "Picamarc" -RECSYN, Z3950_PREFIX.5.20, "Ausmarc" -RECSYN, Z3950_PREFIX.5.21, "Ibermarc" -RECSYN, Z3950_PREFIX.5.22, "Carmarc" -RECSYN, Z3950_PREFIX.5.23, "Malmarc" -RECSYN, Z3950_PREFIX.5.24, "JPmarc" -RECSYN, Z3950_PREFIX.5.25, "SWEmarc" -RECSYN, Z3950_PREFIX.5.26, "SIGLEmarc" -RECSYN, Z3950_PREFIX.5.27, "ISDSmarc" -RECSYN, Z3950_PREFIX.5.28, "RUSmarc" -RECSYN, Z3950_PREFIX.5.29, "Hunmarc" -RECSYN, Z3950_PREFIX.5.30, "NACSIS-CATP" -RECSYN, Z3950_PREFIX.5.31, "FINMARC2000" -RECSYN, Z3950_PREFIX.5.32, "MARC21-fin" -RECSYN, Z3950_PREFIX.5.100, "Explain" -RECSYN, Z3950_PREFIX.5.101, "SUTRS" -RECSYN, Z3950_PREFIX.5.102, "OPAC" -RECSYN, Z3950_PREFIX.5.103, "Summary" -RECSYN, Z3950_PREFIX.5.104, "GRS-0" -RECSYN, Z3950_PREFIX.5.105, "GRS-1" -RECSYN, Z3950_PREFIX.5.106, "Extended" -RECSYN, Z3950_PREFIX.5.107, "Fragment" -RECSYN, Z3950_PREFIX.5.109.1, "pdf" -RECSYN, Z3950_PREFIX.5.109.2, "postscript" -RECSYN, Z3950_PREFIX.5.109.3, "html" -RECSYN, Z3950_PREFIX.5.109.4, "tiff" -RECSYN, Z3950_PREFIX.5.109.5, "gif" -RECSYN, Z3950_PREFIX.5.109.6, "jpeg" -RECSYN, Z3950_PREFIX.5.109.7, "png" -RECSYN, Z3950_PREFIX.5.109.8, "mpeg" -RECSYN, Z3950_PREFIX.5.109.9, "sgml" -RECSYN, Z3950_PREFIX.5.110.1, "tiff-b" -RECSYN, Z3950_PREFIX.5.110.2, "wav" -RECSYN, Z3950_PREFIX.5.111, "SQL-RS" -RECSYN, Z3950_PREFIX.5.1000.81.2, "SOIF" -RECSYN, Z3950_PREFIX.5.109.10, "XML" -RECSYN, Z3950_PREFIX.5.109.10, "text-XML" -RECSYN, Z3950_PREFIX.5.109.11, "application-XML" -RESFORM, Z3950_PREFIX.7.1, "Resource-1" -RESFORM, Z3950_PREFIX.7.2, "Resource-2" -RESFORM, Z3950_PREFIX.7.1000.81.1, "UNIverse-Resource-Report" -ACCFORM, Z3950_PREFIX.8.1, "Prompt-1" -ACCFORM, Z3950_PREFIX.8.2, "Des-1" -ACCFORM, Z3950_PREFIX.8.3, "Krb-1" -EXTSERV, Z3950_PREFIX.9.1, "Persistent set" -EXTSERV, Z3950_PREFIX.9.2, "Persistent query" -EXTSERV, Z3950_PREFIX.9.3, "Periodic query" -EXTSERV, Z3950_PREFIX.9.4, "Item order" -EXTSERV, Z3950_PREFIX.9.5, "Database Update (first version)" -EXTSERV, Z3950_PREFIX.9.5.1, "Database Update (second version)" -EXTSERV, Z3950_PREFIX.9.5.1.1, "Database Update" -EXTSERV, Z3950_PREFIX.9.6, "exp. spec." -EXTSERV, Z3950_PREFIX.9.7, "exp. inv." -EXTSERV, Z3950_PREFIX.9.1000.81.1, "Admin" -USERINFO, Z3950_PREFIX.10.1, "searchResult-1" -USERINFO, Z3950_PREFIX.10.2, "CharSetandLanguageNegotiation" -USERINFO, Z3950_PREFIX.10.3, "UserInfo-1" -USERINFO, Z3950_PREFIX.10.4, "MultipleSearchTerms-1" -USERINFO, Z3950_PREFIX.10.5, "MultipleSearchTerms-2" -USERINFO, Z3950_PREFIX.10.6, "DateTime" -USERINFO, Z3950_PREFIX.10.1000.81.1, "Proxy" -USERINFO, Z3950_PREFIX.10.1000.81.2, "Cookie" -USERINFO, Z3950_PREFIX.10.1000.81.3, "Client-IP" -USERINFO, Z3950_PREFIX.10.1000.81.4, "Scan-Set" -ELEMSPEC, Z3950_PREFIX.11.1, "Espec-1" -VARSET, Z3950_PREFIX.12.1, "Variant-1" -SCHEMA, Z3950_PREFIX.13.1, "WAIS-schema" -SCHEMA, Z3950_PREFIX.13.2, "GILS-schema" -SCHEMA, Z3950_PREFIX.13.3, "Collections-schema" -SCHEMA, Z3950_PREFIX.13.4, "Geo-schema" -SCHEMA, Z3950_PREFIX.13.5, "CIMI-schema" -SCHEMA, Z3950_PREFIX.13.6, "Update ES" -SCHEMA, Z3950_PREFIX.13.7, "Holdings" -SCHEMA, Z3950_PREFIX.13.8, "Zthes" -SCHEMA, Z3950_PREFIX.13.1000.81.1, "thesaurus-schema" -SCHEMA, Z3950_PREFIX.13.1000.81.2, "Explain-schema" -TAGSET, Z3950_PREFIX.14.1, "TagsetM" -TAGSET, Z3950_PREFIX.14.2, "TagsetG" -TAGSET, Z3950_PREFIX.14.3, "STAS-tagset" -TAGSET, Z3950_PREFIX.14.4, "GILS-tagset" -TAGSET, Z3950_PREFIX.14.5, "Collections-tagset" -TAGSET, Z3950_PREFIX.14.6, "CIMI-tagset" -TAGSET, Z3950_PREFIX.14.1000.81.1, "thesaurus-tagset" -TAGSET, Z3950_PREFIX.14.1000.81.2, "Explain-tagset" -TAGSET, Z3950_PREFIX.14.8, "Zthes-tagset" -NEGOT, Z3950_PREFIX.15.3, "Charset-3" -NEGOT, Z3950_PREFIX.15.4, "Charset-4" -NEGOT, Z3950_PREFIX.15.1000.81.1, "Charset-ID" -USERINFO, Z3950_PREFIX.16.2, "CQL" -GENERAL, 1.0.10646.1.0.2, "UCS-2" -GENERAL, 1.0.10646.1.0.4, "UCS-4" -GENERAL, 1.0.10646.1.0.5, "UTF-16" -GENERAL, 1.0.10646.1.0.8, "UTF-8" -USERINFO, Z3950_PREFIX.10.1000.17.1, "OCLC-userInfo" -EXTSERV, Z3950_PREFIX.9.1000.105.4, "XML-ES" diff --git a/dependencies/yaz_3.0.14/src/oid_db.c b/dependencies/yaz_3.0.14/src/oid_db.c deleted file mode 100644 index f538fdc..0000000 --- a/dependencies/yaz_3.0.14/src/oid_db.c +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: oid_db.c,v 1.9 2007/06/24 19:27:12 adam Exp $ - */ - -/** - * \file oid_db.c - * \brief OID Database - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include -#include -#include -#include - -struct yaz_oid_db { - struct yaz_oid_entry *entries; - struct yaz_oid_db *next; - int xmalloced; -}; - -struct yaz_oid_db standard_db_l = { - yaz_oid_standard_entries, 0, 0 -}; -yaz_oid_db_t standard_db = &standard_db_l; - -yaz_oid_db_t yaz_oid_std(void) -{ - return standard_db; -} - -const Odr_oid *yaz_string_to_oid(yaz_oid_db_t oid_db, - oid_class oclass, const char *name) -{ - for (; oid_db; oid_db = oid_db->next) - { - struct yaz_oid_entry *e; - if (oclass != CLASS_GENERAL) - { - for (e = oid_db->entries; e->name; e++) - { - if (!yaz_matchstr(e->name, name) && oclass == e->oclass) - return e->oid; - } - } - for (e = oid_db->entries; e->name; e++) - { - if (!yaz_matchstr(e->name, name)) - return e->oid; - } - } - return 0; -} - -Odr_oid *yaz_string_to_oid_nmem(yaz_oid_db_t oid_list, - oid_class oclass, const char *name, NMEM nmem) -{ - const Odr_oid *oid = yaz_string_to_oid(oid_list, oclass, name); - if (oid) - return odr_oiddup_nmem(nmem, oid); - return odr_getoidbystr_nmem(nmem, name); -} - -Odr_oid *yaz_string_to_oid_odr(yaz_oid_db_t oid_list, - oid_class oclass, const char *name, ODR o) -{ - return yaz_string_to_oid_nmem(oid_list, oclass, name, odr_getmem(o)); -} - -const char *yaz_oid_to_string(yaz_oid_db_t oid_db, - const Odr_oid *oid, oid_class *oclass) -{ - if (!oid) - return 0; - for (; oid_db; oid_db = oid_db->next) - { - struct yaz_oid_entry *e = oid_db->entries; - for (; e->name; e++) - { - if (!oid_oidcmp(e->oid, oid)) - { - if (oclass) - *oclass = e->oclass; - return e->name; - } - } - } - return 0; -} - -const char *yaz_oid_to_string_buf(const Odr_oid *oid, oid_class *oclass, char *buf) -{ - const char *p = yaz_oid_to_string(standard_db, oid, oclass); - if (p) - return p; - if (oclass) - *oclass = CLASS_GENERAL; - return oid_oid_to_dotstring(oid, buf); -} - - -char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oid_buf) -{ - const Odr_oid *oid = yaz_string_to_oid(yaz_oid_std(), oclass, name); - if (oid) - return oid_oid_to_dotstring(oid, oid_buf); - return 0; -} - - -int yaz_oid_is_iso2709(const Odr_oid *oid) -{ - if (oid_oidlen(oid) == 6 && oid[0] == 1 && oid[1] == 2 - && oid[2] == 840 && oid[3] == 10003 && oid[4] == 5 - && oid[5] <= 29 && oid[5] != 16) - return 1; - return 0; -} - -int yaz_oid_add(yaz_oid_db_t oid_db, int oclass, const char *name, - const Odr_oid *new_oid) -{ - const Odr_oid *oid = yaz_string_to_oid(oid_db, oclass, name); - if (!oid) - { - struct yaz_oid_entry *ent; - Odr_oid *alloc_oid; - - while (oid_db->next) - oid_db = oid_db->next; - oid_db->next = (struct yaz_oid_db *) xmalloc(sizeof(*oid_db->next)); - oid_db = oid_db->next; - - oid_db->next = 0; - oid_db->xmalloced = 1; - oid_db->entries = ent = (struct yaz_oid_entry *) xmalloc(2 * sizeof(*ent)); - - alloc_oid = (Odr_oid *) - xmalloc(sizeof(*alloc_oid) * (oid_oidlen(new_oid)+1)); - oid_oidcpy(alloc_oid, new_oid); - ent[0].oid = alloc_oid; - ent[0].name = xstrdup(name); - ent[0].oclass = oclass; - - ent[1].oid = 0; - ent[1].name = 0; - ent[1].oclass = CLASS_NOP; - return 0; - } - return -1; -} - -yaz_oid_db_t yaz_oid_db_new(void) -{ - yaz_oid_db_t p = (yaz_oid_db_t) xmalloc(sizeof(*p)); - p->entries = 0; - p->next = 0; - p->xmalloced = 1; - return p; -} - -void yaz_oid_db_destroy(yaz_oid_db_t oid_db) -{ - while (oid_db) - { - yaz_oid_db_t p = oid_db; - - oid_db = oid_db->next; - if (p->xmalloced) - { - struct yaz_oid_entry *e = p->entries; - for (; e->name; e++) - xfree (e->name); - xfree(p->entries); - xfree(p); - } - } -} - -void yaz_oid_trav(yaz_oid_db_t oid_db, - void (*func)(const Odr_oid *oid, - oid_class oclass, const char *name, - void *client_data), - void *client_data) -{ - for (; oid_db; oid_db = oid_db->next) - { - struct yaz_oid_entry *e = oid_db->entries; - - for (; e->name; e++) - func(e->oid, e->oclass, e->name, client_data); - } -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/oid_std.c b/dependencies/yaz_3.0.14/src/oid_std.c deleted file mode 100644 index ffd6518..0000000 --- a/dependencies/yaz_3.0.14/src/oid_std.c +++ /dev/null @@ -1,288 +0,0 @@ -/** \file oid_std.c - \brief Standard Object Identifiers: Generated from ./oid.csv */ -#include - -YAZ_EXPORT const Odr_oid yaz_oid_transyn_ber[] = {2,1,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_transyn_iso2709[] = {1,0,2709,1,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_general_isoill_1[] = {1,0,10161,2,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_absyn_z_apdu[] = {2,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_appctx_z_basic[] = {1,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_bib_1[] = {Z3950_PREFIX,3,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_exp_1[] = {Z3950_PREFIX,3,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_ext_1[] = {Z3950_PREFIX,3,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_ccl_1[] = {Z3950_PREFIX,3,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_gils[] = {Z3950_PREFIX,3,5,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_gils_attset[] = {Z3950_PREFIX,3,5,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_stas_attset[] = {Z3950_PREFIX,3,6,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_collections_attset[] = {Z3950_PREFIX,3,7,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_cimi_attset[] = {Z3950_PREFIX,3,8,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_geo_attset[] = {Z3950_PREFIX,3,9,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_zbig[] = {Z3950_PREFIX,3,10,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_util[] = {Z3950_PREFIX,3,11,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_xd_1[] = {Z3950_PREFIX,3,12,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_zthes[] = {Z3950_PREFIX,3,13,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_fin_1[] = {Z3950_PREFIX,3,14,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_dan_1[] = {Z3950_PREFIX,3,15,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_holdings[] = {Z3950_PREFIX,3,16,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_marc[] = {Z3950_PREFIX,3,17,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_bib_2[] = {Z3950_PREFIX,3,18,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_zeerex[] = {Z3950_PREFIX,3,19,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_thesaurus_attset[] = {Z3950_PREFIX,3,1000,81,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_idxpath[] = {Z3950_PREFIX,3,1000,81,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_attset_extlite[] = {Z3950_PREFIX,3,1000,81,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_diagset_bib_1[] = {Z3950_PREFIX,4,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_diagset_diag_1[] = {Z3950_PREFIX,4,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_diagset_diag_es[] = {Z3950_PREFIX,4,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_diagset_diag_general[] = {Z3950_PREFIX,4,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_unimarc[] = {Z3950_PREFIX,5,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_intermarc[] = {Z3950_PREFIX,5,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_ccf[] = {Z3950_PREFIX,5,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_usmarc[] = {Z3950_PREFIX,5,10,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_marc21[] = {Z3950_PREFIX,5,10,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_ukmarc[] = {Z3950_PREFIX,5,11,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_normarc[] = {Z3950_PREFIX,5,12,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_librismarc[] = {Z3950_PREFIX,5,13,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_danmarc[] = {Z3950_PREFIX,5,14,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_finmarc[] = {Z3950_PREFIX,5,15,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_mab[] = {Z3950_PREFIX,5,16,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_canmarc[] = {Z3950_PREFIX,5,17,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_sbn[] = {Z3950_PREFIX,5,18,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_picamarc[] = {Z3950_PREFIX,5,19,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_ausmarc[] = {Z3950_PREFIX,5,20,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_ibermarc[] = {Z3950_PREFIX,5,21,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_carmarc[] = {Z3950_PREFIX,5,22,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_malmarc[] = {Z3950_PREFIX,5,23,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_jpmarc[] = {Z3950_PREFIX,5,24,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_swemarc[] = {Z3950_PREFIX,5,25,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_siglemarc[] = {Z3950_PREFIX,5,26,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_isdsmarc[] = {Z3950_PREFIX,5,27,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_rusmarc[] = {Z3950_PREFIX,5,28,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_hunmarc[] = {Z3950_PREFIX,5,29,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_nacsis_catp[] = {Z3950_PREFIX,5,30,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_finmarc2000[] = {Z3950_PREFIX,5,31,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_marc21_fin[] = {Z3950_PREFIX,5,32,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_explain[] = {Z3950_PREFIX,5,100,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_sutrs[] = {Z3950_PREFIX,5,101,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_opac[] = {Z3950_PREFIX,5,102,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_summary[] = {Z3950_PREFIX,5,103,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_grs_0[] = {Z3950_PREFIX,5,104,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_grs_1[] = {Z3950_PREFIX,5,105,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_extended[] = {Z3950_PREFIX,5,106,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_fragment[] = {Z3950_PREFIX,5,107,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_pdf[] = {Z3950_PREFIX,5,109,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_postscript[] = {Z3950_PREFIX,5,109,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_html[] = {Z3950_PREFIX,5,109,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_tiff[] = {Z3950_PREFIX,5,109,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_gif[] = {Z3950_PREFIX,5,109,5,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_jpeg[] = {Z3950_PREFIX,5,109,6,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_png[] = {Z3950_PREFIX,5,109,7,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_mpeg[] = {Z3950_PREFIX,5,109,8,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_sgml[] = {Z3950_PREFIX,5,109,9,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_tiff_b[] = {Z3950_PREFIX,5,110,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_wav[] = {Z3950_PREFIX,5,110,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_sql_rs[] = {Z3950_PREFIX,5,111,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_soif[] = {Z3950_PREFIX,5,1000,81,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_xml[] = {Z3950_PREFIX,5,109,10,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_text_xml[] = {Z3950_PREFIX,5,109,10,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_recsyn_application_xml[] = {Z3950_PREFIX,5,109,11,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_resform_resource_1[] = {Z3950_PREFIX,7,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_resform_resource_2[] = {Z3950_PREFIX,7,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_resform_universe_resource_report[] = {Z3950_PREFIX,7,1000,81,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_accform_prompt_1[] = {Z3950_PREFIX,8,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_accform_des_1[] = {Z3950_PREFIX,8,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_accform_krb_1[] = {Z3950_PREFIX,8,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_persistent_set[] = {Z3950_PREFIX,9,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_persistent_query[] = {Z3950_PREFIX,9,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_periodic_query[] = {Z3950_PREFIX,9,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_item_order[] = {Z3950_PREFIX,9,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_database_update_first_version[] = {Z3950_PREFIX,9,5,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_database_update_second_version[] = {Z3950_PREFIX,9,5,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_database_update[] = {Z3950_PREFIX,9,5,1,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_exp__spec_[] = {Z3950_PREFIX,9,6,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_exp__inv_[] = {Z3950_PREFIX,9,7,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_admin[] = {Z3950_PREFIX,9,1000,81,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_searchresult_1[] = {Z3950_PREFIX,10,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_charsetandlanguagenegotiation[] = {Z3950_PREFIX,10,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_userinfo_1[] = {Z3950_PREFIX,10,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_multiplesearchterms_1[] = {Z3950_PREFIX,10,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_multiplesearchterms_2[] = {Z3950_PREFIX,10,5,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_datetime[] = {Z3950_PREFIX,10,6,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_proxy[] = {Z3950_PREFIX,10,1000,81,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_cookie[] = {Z3950_PREFIX,10,1000,81,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_client_ip[] = {Z3950_PREFIX,10,1000,81,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_scan_set[] = {Z3950_PREFIX,10,1000,81,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_elemspec_espec_1[] = {Z3950_PREFIX,11,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_varset_variant_1[] = {Z3950_PREFIX,12,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_wais_schema[] = {Z3950_PREFIX,13,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_gils_schema[] = {Z3950_PREFIX,13,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_collections_schema[] = {Z3950_PREFIX,13,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_geo_schema[] = {Z3950_PREFIX,13,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_cimi_schema[] = {Z3950_PREFIX,13,5,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_update_es[] = {Z3950_PREFIX,13,6,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_holdings[] = {Z3950_PREFIX,13,7,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_zthes[] = {Z3950_PREFIX,13,8,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_thesaurus_schema[] = {Z3950_PREFIX,13,1000,81,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_schema_explain_schema[] = {Z3950_PREFIX,13,1000,81,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_tagsetm[] = {Z3950_PREFIX,14,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_tagsetg[] = {Z3950_PREFIX,14,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_stas_tagset[] = {Z3950_PREFIX,14,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_gils_tagset[] = {Z3950_PREFIX,14,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_collections_tagset[] = {Z3950_PREFIX,14,5,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_cimi_tagset[] = {Z3950_PREFIX,14,6,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_thesaurus_tagset[] = {Z3950_PREFIX,14,1000,81,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_explain_tagset[] = {Z3950_PREFIX,14,1000,81,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_tagset_zthes_tagset[] = {Z3950_PREFIX,14,8,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_negot_charset_3[] = {Z3950_PREFIX,15,3,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_negot_charset_4[] = {Z3950_PREFIX,15,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_negot_charset_id[] = {Z3950_PREFIX,15,1000,81,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_cql[] = {Z3950_PREFIX,16,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_general_ucs_2[] = {1,0,10646,1,0,2,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_general_ucs_4[] = {1,0,10646,1,0,4,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_general_utf_16[] = {1,0,10646,1,0,5,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_general_utf_8[] = {1,0,10646,1,0,8,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_userinfo_oclc_userinfo[] = {Z3950_PREFIX,10,1000,17,1,-1}; -YAZ_EXPORT const Odr_oid yaz_oid_extserv_xml_es[] = {Z3950_PREFIX,9,1000,105,4,-1}; -YAZ_EXPORT struct yaz_oid_entry yaz_oid_standard_entries[] = -{ - {CLASS_TRANSYN, yaz_oid_transyn_ber, "BER"}, - {CLASS_TRANSYN, yaz_oid_transyn_iso2709, "ISO2709"}, - {CLASS_GENERAL, yaz_oid_general_isoill_1, "ISOILL-1"}, - {CLASS_ABSYN, yaz_oid_absyn_z_apdu, "Z-APDU"}, - {CLASS_APPCTX, yaz_oid_appctx_z_basic, "Z-BASIC"}, - {CLASS_ATTSET, yaz_oid_attset_bib_1, "Bib-1"}, - {CLASS_ATTSET, yaz_oid_attset_exp_1, "Exp-1"}, - {CLASS_ATTSET, yaz_oid_attset_ext_1, "Ext-1"}, - {CLASS_ATTSET, yaz_oid_attset_ccl_1, "CCL-1"}, - {CLASS_ATTSET, yaz_oid_attset_gils, "GILS"}, - {CLASS_ATTSET, yaz_oid_attset_gils_attset, "GILS-attset"}, - {CLASS_ATTSET, yaz_oid_attset_stas_attset, "STAS-attset"}, - {CLASS_ATTSET, yaz_oid_attset_collections_attset, "Collections-attset"}, - {CLASS_ATTSET, yaz_oid_attset_cimi_attset, "CIMI-attset"}, - {CLASS_ATTSET, yaz_oid_attset_geo_attset, "Geo-attset"}, - {CLASS_ATTSET, yaz_oid_attset_zbig, "ZBIG"}, - {CLASS_ATTSET, yaz_oid_attset_util, "Util"}, - {CLASS_ATTSET, yaz_oid_attset_xd_1, "XD-1"}, - {CLASS_ATTSET, yaz_oid_attset_zthes, "Zthes"}, - {CLASS_ATTSET, yaz_oid_attset_fin_1, "Fin-1"}, - {CLASS_ATTSET, yaz_oid_attset_dan_1, "Dan-1"}, - {CLASS_ATTSET, yaz_oid_attset_holdings, "Holdings"}, - {CLASS_ATTSET, yaz_oid_attset_marc, "MARC"}, - {CLASS_ATTSET, yaz_oid_attset_bib_2, "Bib-2"}, - {CLASS_ATTSET, yaz_oid_attset_zeerex, "ZeeRex"}, - {CLASS_ATTSET, yaz_oid_attset_thesaurus_attset, "Thesaurus-attset"}, - {CLASS_ATTSET, yaz_oid_attset_idxpath, "IDXPATH"}, - {CLASS_ATTSET, yaz_oid_attset_extlite, "EXTLITE"}, - {CLASS_DIAGSET, yaz_oid_diagset_bib_1, "Bib-1"}, - {CLASS_DIAGSET, yaz_oid_diagset_diag_1, "Diag-1"}, - {CLASS_DIAGSET, yaz_oid_diagset_diag_es, "Diag-ES"}, - {CLASS_DIAGSET, yaz_oid_diagset_diag_general, "Diag-General"}, - {CLASS_RECSYN, yaz_oid_recsyn_unimarc, "Unimarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_intermarc, "Intermarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_ccf, "CCF"}, - {CLASS_RECSYN, yaz_oid_recsyn_usmarc, "USmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_marc21, "MARC21"}, - {CLASS_RECSYN, yaz_oid_recsyn_ukmarc, "UKmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_normarc, "Normarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_librismarc, "Librismarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_danmarc, "Danmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_finmarc, "Finmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_mab, "MAB"}, - {CLASS_RECSYN, yaz_oid_recsyn_canmarc, "Canmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_sbn, "SBN"}, - {CLASS_RECSYN, yaz_oid_recsyn_picamarc, "Picamarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_ausmarc, "Ausmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_ibermarc, "Ibermarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_carmarc, "Carmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_malmarc, "Malmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_jpmarc, "JPmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_swemarc, "SWEmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_siglemarc, "SIGLEmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_isdsmarc, "ISDSmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_rusmarc, "RUSmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_hunmarc, "Hunmarc"}, - {CLASS_RECSYN, yaz_oid_recsyn_nacsis_catp, "NACSIS-CATP"}, - {CLASS_RECSYN, yaz_oid_recsyn_finmarc2000, "FINMARC2000"}, - {CLASS_RECSYN, yaz_oid_recsyn_marc21_fin, "MARC21-fin"}, - {CLASS_RECSYN, yaz_oid_recsyn_explain, "Explain"}, - {CLASS_RECSYN, yaz_oid_recsyn_sutrs, "SUTRS"}, - {CLASS_RECSYN, yaz_oid_recsyn_opac, "OPAC"}, - {CLASS_RECSYN, yaz_oid_recsyn_summary, "Summary"}, - {CLASS_RECSYN, yaz_oid_recsyn_grs_0, "GRS-0"}, - {CLASS_RECSYN, yaz_oid_recsyn_grs_1, "GRS-1"}, - {CLASS_RECSYN, yaz_oid_recsyn_extended, "Extended"}, - {CLASS_RECSYN, yaz_oid_recsyn_fragment, "Fragment"}, - {CLASS_RECSYN, yaz_oid_recsyn_pdf, "pdf"}, - {CLASS_RECSYN, yaz_oid_recsyn_postscript, "postscript"}, - {CLASS_RECSYN, yaz_oid_recsyn_html, "html"}, - {CLASS_RECSYN, yaz_oid_recsyn_tiff, "tiff"}, - {CLASS_RECSYN, yaz_oid_recsyn_gif, "gif"}, - {CLASS_RECSYN, yaz_oid_recsyn_jpeg, "jpeg"}, - {CLASS_RECSYN, yaz_oid_recsyn_png, "png"}, - {CLASS_RECSYN, yaz_oid_recsyn_mpeg, "mpeg"}, - {CLASS_RECSYN, yaz_oid_recsyn_sgml, "sgml"}, - {CLASS_RECSYN, yaz_oid_recsyn_tiff_b, "tiff-b"}, - {CLASS_RECSYN, yaz_oid_recsyn_wav, "wav"}, - {CLASS_RECSYN, yaz_oid_recsyn_sql_rs, "SQL-RS"}, - {CLASS_RECSYN, yaz_oid_recsyn_soif, "SOIF"}, - {CLASS_RECSYN, yaz_oid_recsyn_xml, "XML"}, - {CLASS_RECSYN, yaz_oid_recsyn_text_xml, "text-XML"}, - {CLASS_RECSYN, yaz_oid_recsyn_application_xml, "application-XML"}, - {CLASS_RESFORM, yaz_oid_resform_resource_1, "Resource-1"}, - {CLASS_RESFORM, yaz_oid_resform_resource_2, "Resource-2"}, - {CLASS_RESFORM, yaz_oid_resform_universe_resource_report, "UNIverse-Resource-Report"}, - {CLASS_ACCFORM, yaz_oid_accform_prompt_1, "Prompt-1"}, - {CLASS_ACCFORM, yaz_oid_accform_des_1, "Des-1"}, - {CLASS_ACCFORM, yaz_oid_accform_krb_1, "Krb-1"}, - {CLASS_EXTSERV, yaz_oid_extserv_persistent_set, "Persistent set"}, - {CLASS_EXTSERV, yaz_oid_extserv_persistent_query, "Persistent query"}, - {CLASS_EXTSERV, yaz_oid_extserv_periodic_query, "Periodic query"}, - {CLASS_EXTSERV, yaz_oid_extserv_item_order, "Item order"}, - {CLASS_EXTSERV, yaz_oid_extserv_database_update_first_version, "Database Update (first version)"}, - {CLASS_EXTSERV, yaz_oid_extserv_database_update_second_version, "Database Update (second version)"}, - {CLASS_EXTSERV, yaz_oid_extserv_database_update, "Database Update"}, - {CLASS_EXTSERV, yaz_oid_extserv_exp__spec_, "exp. spec."}, - {CLASS_EXTSERV, yaz_oid_extserv_exp__inv_, "exp. inv."}, - {CLASS_EXTSERV, yaz_oid_extserv_admin, "Admin"}, - {CLASS_USERINFO, yaz_oid_userinfo_searchresult_1, "searchResult-1"}, - {CLASS_USERINFO, yaz_oid_userinfo_charsetandlanguagenegotiation, "CharSetandLanguageNegotiation"}, - {CLASS_USERINFO, yaz_oid_userinfo_userinfo_1, "UserInfo-1"}, - {CLASS_USERINFO, yaz_oid_userinfo_multiplesearchterms_1, "MultipleSearchTerms-1"}, - {CLASS_USERINFO, yaz_oid_userinfo_multiplesearchterms_2, "MultipleSearchTerms-2"}, - {CLASS_USERINFO, yaz_oid_userinfo_datetime, "DateTime"}, - {CLASS_USERINFO, yaz_oid_userinfo_proxy, "Proxy"}, - {CLASS_USERINFO, yaz_oid_userinfo_cookie, "Cookie"}, - {CLASS_USERINFO, yaz_oid_userinfo_client_ip, "Client-IP"}, - {CLASS_USERINFO, yaz_oid_userinfo_scan_set, "Scan-Set"}, - {CLASS_ELEMSPEC, yaz_oid_elemspec_espec_1, "Espec-1"}, - {CLASS_VARSET, yaz_oid_varset_variant_1, "Variant-1"}, - {CLASS_SCHEMA, yaz_oid_schema_wais_schema, "WAIS-schema"}, - {CLASS_SCHEMA, yaz_oid_schema_gils_schema, "GILS-schema"}, - {CLASS_SCHEMA, yaz_oid_schema_collections_schema, "Collections-schema"}, - {CLASS_SCHEMA, yaz_oid_schema_geo_schema, "Geo-schema"}, - {CLASS_SCHEMA, yaz_oid_schema_cimi_schema, "CIMI-schema"}, - {CLASS_SCHEMA, yaz_oid_schema_update_es, "Update ES"}, - {CLASS_SCHEMA, yaz_oid_schema_holdings, "Holdings"}, - {CLASS_SCHEMA, yaz_oid_schema_zthes, "Zthes"}, - {CLASS_SCHEMA, yaz_oid_schema_thesaurus_schema, "thesaurus-schema"}, - {CLASS_SCHEMA, yaz_oid_schema_explain_schema, "Explain-schema"}, - {CLASS_TAGSET, yaz_oid_tagset_tagsetm, "TagsetM"}, - {CLASS_TAGSET, yaz_oid_tagset_tagsetg, "TagsetG"}, - {CLASS_TAGSET, yaz_oid_tagset_stas_tagset, "STAS-tagset"}, - {CLASS_TAGSET, yaz_oid_tagset_gils_tagset, "GILS-tagset"}, - {CLASS_TAGSET, yaz_oid_tagset_collections_tagset, "Collections-tagset"}, - {CLASS_TAGSET, yaz_oid_tagset_cimi_tagset, "CIMI-tagset"}, - {CLASS_TAGSET, yaz_oid_tagset_thesaurus_tagset, "thesaurus-tagset"}, - {CLASS_TAGSET, yaz_oid_tagset_explain_tagset, "Explain-tagset"}, - {CLASS_TAGSET, yaz_oid_tagset_zthes_tagset, "Zthes-tagset"}, - {CLASS_NEGOT, yaz_oid_negot_charset_3, "Charset-3"}, - {CLASS_NEGOT, yaz_oid_negot_charset_4, "Charset-4"}, - {CLASS_NEGOT, yaz_oid_negot_charset_id, "Charset-ID"}, - {CLASS_USERINFO, yaz_oid_userinfo_cql, "CQL"}, - {CLASS_GENERAL, yaz_oid_general_ucs_2, "UCS-2"}, - {CLASS_GENERAL, yaz_oid_general_ucs_4, "UCS-4"}, - {CLASS_GENERAL, yaz_oid_general_utf_16, "UTF-16"}, - {CLASS_GENERAL, yaz_oid_general_utf_8, "UTF-8"}, - {CLASS_USERINFO, yaz_oid_userinfo_oclc_userinfo, "OCLC-userInfo"}, - {CLASS_EXTSERV, yaz_oid_extserv_xml_es, "XML-ES"}, - {CLASS_NOP, 0, 0} -}; diff --git a/dependencies/yaz_3.0.14/src/oid_util.c b/dependencies/yaz_3.0.14/src/oid_util.c deleted file mode 100644 index 5392676..0000000 --- a/dependencies/yaz_3.0.14/src/oid_util.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: oid_util.c,v 1.4 2007/05/08 08:22:36 adam Exp $ - */ - -/** - * \file oid_util.c - * \brief Implements OID base utilities - * - */ -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include -#include - -void oid_oidcpy(Odr_oid *t, const Odr_oid *s) -{ - while ((*(t++) = *(s++)) > -1); -} - -void oid_oidcat(Odr_oid *t, const Odr_oid *s) -{ - while (*t > -1) - t++; - while ((*(t++) = *(s++)) > -1); -} - -int oid_oidcmp(const Odr_oid *o1, const Odr_oid *o2) -{ - while (*o1 == *o2 && *o1 > -1) - { - o1++; - o2++; - } - if (*o1 == *o2) - return 0; - else if (*o1 > *o2) - return 1; - else - return -1; -} - -int oid_oidlen(const Odr_oid *o) -{ - int len = 0; - - while (*(o++) >= 0) - len++; - return len; -} - - -char *oid_oid_to_dotstring(const Odr_oid *oid, char *oidbuf) -{ - char tmpbuf[20]; - int i; - - oidbuf[0] = '\0'; - for (i = 0; oid[i] != -1 && i < OID_SIZE; i++) - { - yaz_snprintf(tmpbuf, sizeof(tmpbuf)-1, "%d", oid[i]); - if (i > 0) - strcat(oidbuf, "."); - strcat(oidbuf, tmpbuf); - } - return oidbuf; -} - -int oid_dotstring_to_oid(const char *name, Odr_oid *oid) -{ - int i = 0; - int val = 0; - while (isdigit (*(unsigned char *) name)) - { - val = val*10 + (*name - '0'); - name++; - if (*name == '.') - { - if (i < OID_SIZE-1) - oid[i++] = val; - val = 0; - name++; - } - } - if (i == 0) - return -1; - oid[i] = val; - oid[i+1] = -1; - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/oidtoc.tcl b/dependencies/yaz_3.0.14/src/oidtoc.tcl deleted file mode 100644 index 31da558..0000000 --- a/dependencies/yaz_3.0.14/src/oidtoc.tcl +++ /dev/null @@ -1,162 +0,0 @@ -# This file is part of the YAZ toolkit -# Copyright (c) Index Data 2006-2007 -# See the file LICENSE for details. -# -# $Id: oidtoc.tcl,v 1.8 2007/05/31 12:14:02 adam Exp $ -# -# Converts a CSV file with Object identifiers to C - -proc readoids {input} { - set csv [open $input r] - set lineno 0 - - while {1} { - incr lineno - set cnt [gets $csv line] - if {$cnt < 0} { - break - } - if {![string compare [string index $line 0] \"]} { - continue - } - set tokens [string map {, { }} $line] - if {[llength $tokens] != 3} { - puts "$input:$lineno: Bad line '$line'" - exit 1 - } - lappend oids $tokens - } - close $csv - if {![info exists oids]} { - puts "$input:0 No OIDS" - exit 1 - } - return $oids -} - -proc constant_var {oid} { - set lname [string tolower [lindex $oid 2]] - set lname [string map {- _ . _ { } _ ( {} ) {}} $lname] - set prefix [string tolower [lindex $oid 0]] - - return yaz_oid_${prefix}_${lname} -} - -proc oid_to_xml {srcdir input xname} { - set oids [readoids "${input}"] - set xfile [open "${xname}" w] - - puts $xfile "" - puts $xfile {} - puts $xfile {} - puts $xfile {} - puts $xfile {} - puts $xfile {} - puts $xfile {} - puts $xfile {} - puts $xfile {Name} - puts $xfile {Class} - puts $xfile {Constant / OID} - puts $xfile {} - puts $xfile {} - puts $xfile {} - - foreach oid $oids { - puts $xfile {} - - puts $xfile {} - puts $xfile [lindex $oid 2] - puts $xfile {} - - - puts $xfile {} - puts $xfile [lindex $oid 0] - puts $xfile {} - - puts $xfile {} - set v [constant_var $oid] - puts $xfile $v - puts $xfile {} - - - puts $xfile {} - puts $xfile {} - - puts $xfile {} - puts $xfile [lindex $oid 1] - puts $xfile {} - - puts $xfile {} - } - - puts $xfile {} - puts $xfile {} - - puts $xfile {} - close $xfile -} - -proc oid_to_c {srcdir input cname hname} { - set oids [readoids "${input}"] - - set cfile [open "${srcdir}/${cname}" w] - set hfile [open "${srcdir}/../include/yaz/${hname}" w] - - puts $cfile "/** \\file $cname" - puts $hfile "/** \\file $hname" - set preamble " \\brief Standard Object Identifiers: Generated from $input */" - puts $cfile $preamble - puts $hfile $preamble - puts $hfile "\#ifndef OID_STD_H" - puts $hfile "\#define OID_STD_H" - - puts $cfile "\#include " - puts $cfile "" - # To avoid LNK4049 - puts $hfile "\#ifdef YAZ_DLL" - puts $hfile "\#define OID_EXPORT YAZ_EXPORT" - puts $hfile "\#else" - puts $hfile "\#define OID_EXPORT YAZ_IMPORT" - puts $hfile "\#endif" - - puts $hfile "YAZ_BEGIN_CDECL" - foreach oid $oids { - - set v [constant_var $oid] - - puts -nonewline $cfile "YAZ_EXPORT const Odr_oid $v\[\] = \{" - puts -nonewline $cfile [string map {. ,} [lindex $oid 1]] - puts $cfile ",-1\};" - - puts $hfile "OID_EXPORT extern const Odr_oid $v\[\];" - } - - puts $cfile "YAZ_EXPORT struct yaz_oid_entry yaz_oid_standard_entries\[\] =" - puts $cfile "\{" - foreach oid $oids { - set v [constant_var $oid] - - puts -nonewline $cfile "\t\{CLASS_[lindex $oid 0], " - puts -nonewline $cfile "$v, " - puts -nonewline $cfile \"[lindex $oid 2]\" - puts $cfile "\}," - } - - puts $cfile "\t\{CLASS_NOP, 0, 0\}" - puts $cfile "\};" - - puts $hfile "OID_EXPORT extern struct yaz_oid_entry yaz_oid_standard_entries\[\];" - puts $hfile "YAZ_END_CDECL" - puts $hfile "\#endif" - close $cfile - close $hfile -} - -if {[llength $argv] == 4} { - oid_to_c [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] [lindex $argv 3] -} elseif {[llength $argv] == 3} { - oid_to_xml [lindex $argv 0] [lindex $argv 1] [lindex $argv 2] -} else { - puts "oidtoc.tcl srcdir csv cfile hfile" - exit 1 -} diff --git a/dependencies/yaz_3.0.14/src/opacdisp.c b/dependencies/yaz_3.0.14/src/opacdisp.c deleted file mode 100644 index 49868f1..0000000 --- a/dependencies/yaz_3.0.14/src/opacdisp.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: opacdisp.c,v 1.9 2007/01/03 08:42:15 adam Exp $ - */ -/** - * \file opacdisp.c - * \brief Implements OPAC record display - */ - -#include -#include -#include -#include - -#include -#include - -static void opac_element_str(WRBUF wrbuf, int l, const char *elem, - const char *data) -{ - if (data) - { - while (--l >= 0) - wrbuf_puts(wrbuf, " "); - wrbuf_puts(wrbuf, "<"); - wrbuf_puts(wrbuf, elem); - wrbuf_puts(wrbuf, ">"); - wrbuf_xmlputs(wrbuf, data); - wrbuf_puts(wrbuf, "\n"); - } -} - -static void opac_element_bool(WRBUF wrbuf, int l, const char *elem, int *data) -{ - if (data) - { - while (--l >= 0) - wrbuf_puts(wrbuf, " "); - wrbuf_puts(wrbuf, "<"); - wrbuf_puts(wrbuf, elem); - if (*data) - wrbuf_puts(wrbuf, " value=\"1\""); - else - wrbuf_puts(wrbuf, " value=\"0\""); - wrbuf_puts(wrbuf, "/>\n"); - } -} - -void yaz_opac_decode_wrbuf(yaz_marc_t mt, Z_OPACRecord *r, WRBUF wrbuf) -{ - int i; - - wrbuf_puts(wrbuf, "\n"); - if (r->bibliographicRecord) - { - Z_External *ext = r->bibliographicRecord; - - wrbuf_puts (wrbuf, " \n"); - if (ext->which == Z_External_octet) - yaz_marc_decode_wrbuf(mt, (const char *) ext->u.octet_aligned->buf, - ext->u.octet_aligned->len, wrbuf); - wrbuf_puts (wrbuf, " \n"); - } - wrbuf_puts(wrbuf, "\n"); - - for (i = 0; i < r->num_holdingsData; i++) - { - Z_HoldingsRecord *h = r->holdingsData[i]; - wrbuf_puts(wrbuf, " \n"); - - if (h->which == Z_HoldingsRecord_marcHoldingsRecord) - { - Z_External *ext = h->u.marcHoldingsRecord; - - wrbuf_puts (wrbuf, " \n"); - if (ext->which == Z_External_octet) - yaz_marc_decode_wrbuf(mt, (const char *) - ext->u.octet_aligned->buf, - ext->u.octet_aligned->len, wrbuf); - wrbuf_puts (wrbuf, " \n"); - } - else if (h->which == Z_HoldingsRecord_holdingsAndCirc) - { - int j; - - Z_HoldingsAndCircData *d = h->u.holdingsAndCirc; - - opac_element_str(wrbuf, 2, "typeOfRecord", d->typeOfRecord); - opac_element_str(wrbuf, 2, "encodingLevel", d->encodingLevel); - opac_element_str(wrbuf, 2, "format", d->format); - opac_element_str(wrbuf, 2, "receiptAcqStatus", d->receiptAcqStatus); - opac_element_str (wrbuf, 2, "generalRetention", d->generalRetention); - opac_element_str (wrbuf, 2, "completeness", d->completeness); - opac_element_str (wrbuf, 2, "dateOfReport", d->dateOfReport); - opac_element_str (wrbuf, 2, "nucCode", d->nucCode); - opac_element_str (wrbuf, 2, "localLocation", d->localLocation); - opac_element_str (wrbuf, 2, "shelvingLocation", d->shelvingLocation); - opac_element_str (wrbuf, 2, "callNumber", d->callNumber); - opac_element_str (wrbuf, 2, "shelvingData", d->shelvingData); - - opac_element_str (wrbuf, 2, "copyNumber", d->copyNumber); - opac_element_str (wrbuf, 2, "publicNote", d->publicNote); - opac_element_str (wrbuf, 2, "reproductionNote", d->reproductionNote); - opac_element_str (wrbuf, 2, "termsUseRepro", d->termsUseRepro); - opac_element_str (wrbuf, 2, "enumAndChron", d->enumAndChron); - if (d->num_volumes) - { - wrbuf_puts (wrbuf, " \n"); - for (j = 0; jnum_volumes; j++) - { - wrbuf_puts (wrbuf, " \n"); - opac_element_str (wrbuf, 4, "enumeration", - d->volumes[j]->enumeration); - opac_element_str (wrbuf, 4, "chronology", - d->volumes[j]->chronology); - opac_element_str (wrbuf, 4, "enumAndChron", - d->volumes[j]->enumAndChron); - wrbuf_puts (wrbuf, " \n"); - } - wrbuf_puts (wrbuf, " \n"); - } - if (d->num_circulationData) - { - wrbuf_puts (wrbuf, " \n"); - for (j = 0; jnum_circulationData; j++) - { - wrbuf_puts (wrbuf," \n"); - opac_element_bool (wrbuf, 4, "availableNow", - d->circulationData[j]->availableNow); - opac_element_str (wrbuf, 4, "availabiltyDate", - d->circulationData[j]->availablityDate); - opac_element_str (wrbuf, 4, "availableThru", - d->circulationData[j]->availableThru); - opac_element_str (wrbuf, 4, "restrictions", - d->circulationData[j]->restrictions); - opac_element_str (wrbuf, 4, "itemId", - d->circulationData[j]->itemId); - opac_element_bool (wrbuf, 4, "renewable", - d->circulationData[j]->renewable); - opac_element_bool (wrbuf, 4, "onHold", - d->circulationData[j]->onHold); - opac_element_str (wrbuf, 4, "enumAndChron", - d->circulationData[j]->enumAndChron); - opac_element_str (wrbuf, 4, "midspine", - d->circulationData[j]->midspine); - opac_element_str (wrbuf, 4, "temporaryLocation", - d->circulationData[j]->temporaryLocation); - wrbuf_puts (wrbuf, " \n"); - } - wrbuf_puts (wrbuf, " \n"); - } - } - wrbuf_puts(wrbuf, " \n"); - } - wrbuf_puts(wrbuf, "\n"); - wrbuf_puts(wrbuf, "\n"); -} - -void yaz_display_OPAC(WRBUF wrbuf, Z_OPACRecord *opac_rec, int flags) -{ - yaz_marc_t mt = yaz_marc_create(); - - yaz_marc_xml(mt, YAZ_MARC_MARCXML); - yaz_opac_decode_wrbuf(mt, opac_rec, wrbuf); - yaz_marc_destroy(mt); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/options.c b/dependencies/yaz_3.0.14/src/options.c deleted file mode 100644 index 62eb2d7..0000000 --- a/dependencies/yaz_3.0.14/src/options.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: options.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - */ -/** - * \file options.c - * \brief Implements command line options parsing - */ -#if HAVE_CONFIG_H -#include -#endif - -#include - -#include - -static int arg_no = 1; -static int arg_off = 0; - -int options (const char *desc, char **argv, int argc, char **arg) -{ - int ch, i = 0; - - if (arg_no >= argc) - return -2; - if (arg_off == 0) - { - while (argv[arg_no][0] == '\0') - { - arg_no++; - if (arg_no >= argc) - return -2; - } - if (argv[arg_no][0] != '-' || argv[arg_no][1] == '\0') - { - *arg = argv[arg_no++]; - return 0; - } - arg_off++; - } - ch = argv[arg_no][arg_off++]; - while (desc[i]) - { - int desc_char = desc[i++]; - int type = 0; - if (desc[i] == ':') - { /* string argument */ - type = desc[i++]; - } - if (desc_char == ch) - { /* option with argument */ - if (type) - { - if (argv[arg_no][arg_off]) - { - *arg = argv[arg_no]+arg_off; - arg_no++; - arg_off = 0; - } - else - { - arg_no++; - arg_off = 0; - if (arg_no < argc) - *arg = argv[arg_no++]; - else - *arg = ""; - } - } - else /* option with no argument */ - { - if (argv[arg_no][arg_off]) - arg_off++; - else - { - arg_off = 0; - arg_no++; - } - } - return ch; - } - } - *arg = argv[arg_no]+arg_off-1; - arg_no = arg_no + 1; - arg_off = 0; - return -1; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/otherinfo.c b/dependencies/yaz_3.0.14/src/otherinfo.c deleted file mode 100644 index 0977d9f..0000000 --- a/dependencies/yaz_3.0.14/src/otherinfo.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: otherinfo.c,v 1.8 2007/05/08 08:22:36 adam Exp $ - */ -/** - * \file otherinfo.c - * \brief Implements Z39.50 OtherInfo utilities - */ -#include -#include - -#include - -void yaz_oi_APDU(Z_APDU *apdu, Z_OtherInformation ***oip) -{ - switch (apdu->which) - { - case Z_APDU_initRequest: - *oip = &apdu->u.initRequest->otherInfo; - break; - case Z_APDU_searchRequest: - *oip = &apdu->u.searchRequest->otherInfo; - break; - case Z_APDU_presentRequest: - *oip = &apdu->u.presentRequest->otherInfo; - break; - case Z_APDU_sortRequest: - *oip = &apdu->u.sortRequest->otherInfo; - break; - case Z_APDU_scanRequest: - *oip = &apdu->u.scanRequest->otherInfo; - break; - case Z_APDU_extendedServicesRequest: - *oip = &apdu->u.extendedServicesRequest->otherInfo; - break; - case Z_APDU_deleteResultSetRequest: - *oip = &apdu->u.deleteResultSetRequest->otherInfo; - break; - case Z_APDU_initResponse: - *oip = &apdu->u.initResponse->otherInfo; - break; - case Z_APDU_searchResponse: - *oip = &apdu->u.searchResponse->otherInfo; - break; - case Z_APDU_presentResponse: - *oip = &apdu->u.presentResponse->otherInfo; - break; - case Z_APDU_sortResponse: - *oip = &apdu->u.sortResponse->otherInfo; - break; - case Z_APDU_scanResponse: - *oip = &apdu->u.scanResponse->otherInfo; - break; - case Z_APDU_extendedServicesResponse: - *oip = &apdu->u.extendedServicesResponse->otherInfo; - break; - case Z_APDU_deleteResultSetResponse: - *oip = &apdu->u.deleteResultSetResponse->otherInfo; - break; - case Z_APDU_duplicateDetectionRequest: - *oip = &apdu->u.duplicateDetectionRequest->otherInfo; - break; - case Z_APDU_duplicateDetectionResponse: - *oip = &apdu->u.duplicateDetectionResponse->otherInfo; - break; - default: - *oip = 0; - break; - } -} - -Z_OtherInformationUnit *yaz_oi_update ( - Z_OtherInformation **otherInformationP, ODR odr, - const Odr_oid *oid, int categoryValue, int delete_flag) -{ - int i; - Z_OtherInformation *otherInformation; - - if (!otherInformationP) - return 0; - otherInformation = *otherInformationP; - if (!otherInformation) - { - if (!odr) - return 0; - otherInformation = *otherInformationP = (Z_OtherInformation *) - odr_malloc (odr, sizeof(*otherInformation)); - otherInformation->num_elements = 0; - otherInformation->list = 0; - } - for (i = 0; inum_elements; i++) - { - if (!oid) - { - if (!otherInformation->list[i]->category) - return otherInformation->list[i]; - } - else - { - if (otherInformation->list[i]->category && - categoryValue == - *otherInformation->list[i]->category->categoryValue && - !oid_oidcmp (oid, otherInformation->list[i]->category-> - categoryTypeId)) - { - Z_OtherInformationUnit *this_list = otherInformation->list[i]; - - if (delete_flag) - { - (otherInformation->num_elements)--; - while (i < otherInformation->num_elements) - { - otherInformation->list[i] = - otherInformation->list[i+1]; - i++; - } - } - return this_list; - } - } - } - if (!odr) - return 0; - else - { - Z_OtherInformationUnit **newlist = (Z_OtherInformationUnit**) - odr_malloc(odr, (otherInformation->num_elements+1) * - sizeof(*newlist)); - for (i = 0; inum_elements; i++) - newlist[i] = otherInformation->list[i]; - otherInformation->list = newlist; - - otherInformation->list[i] = (Z_OtherInformationUnit*) - odr_malloc (odr, sizeof(Z_OtherInformationUnit)); - if (oid) - { - otherInformation->list[i]->category = (Z_InfoCategory*) - odr_malloc (odr, sizeof(Z_InfoCategory)); - otherInformation->list[i]->category->categoryTypeId = (Odr_oid*) - odr_oiddup (odr, oid); - otherInformation->list[i]->category->categoryValue = - odr_intdup(odr, categoryValue); - } - else - otherInformation->list[i]->category = 0; - otherInformation->list[i]->which = Z_OtherInfo_characterInfo; - otherInformation->list[i]->information.characterInfo = 0; - - otherInformation->num_elements = i+1; - return otherInformation->list[i]; - } -} - -void yaz_oi_set_string_oid ( - Z_OtherInformation **otherInformation, ODR odr, - const Odr_oid *oid, int categoryValue, - const char *str) -{ - Z_OtherInformationUnit *oi = - yaz_oi_update(otherInformation, odr, oid, categoryValue, 0); - if (!oi) - return; - oi->which = Z_OtherInfo_characterInfo; - oi->information.characterInfo = odr_strdup (odr, str); -} - -char *yaz_oi_get_string_oid ( - Z_OtherInformation **otherInformation, - const Odr_oid *oid, int categoryValue, int delete_flag) -{ - Z_OtherInformationUnit *oi; - - if ((oi = yaz_oi_update(otherInformation, 0, oid, categoryValue, - delete_flag)) && - oi->which == Z_OtherInfo_characterInfo) - return oi->information.characterInfo; - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/pquery.c b/dependencies/yaz_3.0.14/src/pquery.c deleted file mode 100644 index 93166cb..0000000 --- a/dependencies/yaz_3.0.14/src/pquery.c +++ /dev/null @@ -1,852 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: pquery.c,v 1.12 2007/05/08 08:22:36 adam Exp $ - */ -/** - * \file pquery.c - * \brief Implements PQF parsing - */ -#include -#include -#include -#include - -#include -#include -#include - -struct yaz_pqf_parser { - const char *query_buf; - const char *query_ptr; - const char *lex_buf; - size_t lex_len; - int query_look; - char *left_sep; - char *right_sep; - int escape_char; - int term_type; - int external_type; - int error; -}; - -static Z_RPNStructure *rpn_structure(struct yaz_pqf_parser *li, ODR o, - int num_attr, int max_attr, - int *attr_list, char **attr_clist, - Odr_oid **attr_set); - -static Odr_oid *query_oid_getvalbyname(struct yaz_pqf_parser *li, ODR o) -{ - char buf[32]; - - if (li->lex_len >= sizeof(buf)-1) - return 0; - memcpy (buf, li->lex_buf, li->lex_len); - buf[li->lex_len] = '\0'; - return yaz_string_to_oid_odr(yaz_oid_std(), CLASS_ATTSET, buf, o); -} - -static int compare_term(struct yaz_pqf_parser *li, const char *src, - size_t off) -{ - size_t len=strlen(src); - - if (li->lex_len == len+off && !memcmp (li->lex_buf+off, src, len-off)) - return 1; - return 0; -} - -static int query_token(struct yaz_pqf_parser *li) -{ - int sep_char = ' '; - const char *sep_match; - const char **qptr = &li->query_ptr; - - while (**qptr == ' ') - (*qptr)++; - if (**qptr == '\0') - return 0; - li->lex_len = 0; - if ((sep_match = strchr (li->left_sep, **qptr))) - { - sep_char = li->right_sep[sep_match - li->left_sep]; - ++(*qptr); - } - li->lex_buf = *qptr; - - if (**qptr == li->escape_char && isdigit (((const unsigned char *) *qptr)[1])) - { - ++(li->lex_len); - ++(*qptr); - return 'l'; - } - while (**qptr && **qptr != sep_char) - { - if (**qptr == '\\') - { - ++(li->lex_len); - ++(*qptr); - } - ++(li->lex_len); - ++(*qptr); - } - if (**qptr) - ++(*qptr); - if (sep_char == ' ' && - li->lex_len >= 1 && li->lex_buf[0] == li->escape_char) - { - if (compare_term (li, "and", 1)) - return 'a'; - if (compare_term (li, "or", 1)) - return 'o'; - if (compare_term (li, "not", 1)) - return 'n'; - if (compare_term (li, "attr", 1)) - return 'l'; - if (compare_term (li, "set", 1)) - return 's'; - if (compare_term (li, "attrset", 1)) - return 'r'; - if (compare_term (li, "prox", 1)) - return 'p'; - if (compare_term (li, "term", 1)) - return 'y'; - } - return 't'; -} - -static int lex(struct yaz_pqf_parser *li) -{ - return li->query_look = query_token(li); -} - -static int escape_string(char *out_buf, const char *in, int len) -{ - - char *out = out_buf; - while (--len >= 0) - if (*in == '\\' && len > 0) - { - --len; - switch (*++in) - { - case 't': - *out++ = '\t'; - break; - case 'n': - *out++ = '\n'; - break; - case 'r': - *out++ = '\r'; - break; - case 'f': - *out++ = '\f'; - break; - case 'x': - if (len > 1) - { - char s[4]; - int n = 0; - s[0] = *++in; - s[1] = *++in; - s[2] = '\0'; - len = len - 2; - sscanf (s, "%x", &n); - *out++ = n; - } - break; - case '0': - case '1': - case '2': - case '3': - if (len > 1) - { - char s[4]; - int n = 0; - s[0] = *in; - s[1] = *++in; - s[2] = *++in; - s[3] = '\0'; - len = len - 2; - sscanf (s, "%o", &n); - *out++ = n; - } - break; - default: - *out++ = *in; - break; - } - in++; - } - else - *out++ = *in++; - return out - out_buf; -} - -static int p_query_parse_attr(struct yaz_pqf_parser *li, ODR o, - int num_attr, int *attr_list, - char **attr_clist, Odr_oid **attr_set) -{ - const char *cp; - - if (!(cp = strchr (li->lex_buf, '=')) || - (size_t) (cp-li->lex_buf) > li->lex_len) - { - attr_set[num_attr] = query_oid_getvalbyname (li, o); - if (attr_set[num_attr] == 0) - { - li->error = YAZ_PQF_ERROR_ATTSET; - return 0; - } - if (!lex (li)) - { - li->error = YAZ_PQF_ERROR_MISSING; - return 0; - } - if (!(cp = strchr (li->lex_buf, '='))) - { - li->error = YAZ_PQF_ERROR_BADATTR; - return 0; - } - } - else - { - if (num_attr > 0) - attr_set[num_attr] = attr_set[num_attr-1]; - else - attr_set[num_attr] = 0; - } - if (*li->lex_buf < '0' || *li->lex_buf > '9') - { - li->error = YAZ_PQF_ERROR_BAD_INTEGER; - return 0; - } - attr_list[2*num_attr] = atoi(li->lex_buf); - cp++; - if (*cp >= '0' && *cp <= '9') - { - attr_list[2*num_attr+1] = atoi (cp); - attr_clist[num_attr] = 0; - } - else - { - int len = li->lex_len - (cp - li->lex_buf); - attr_list[2*num_attr+1] = 0; - attr_clist[num_attr] = (char *) odr_malloc (o, len+1); - len = escape_string(attr_clist[num_attr], cp, len); - attr_clist[num_attr][len] = '\0'; - } - return 1; -} - -static Z_AttributesPlusTerm *rpn_term(struct yaz_pqf_parser *li, ODR o, - int num_attr, int *attr_list, - char **attr_clist, Odr_oid **attr_set) -{ - Z_AttributesPlusTerm *zapt; - Odr_oct *term_octet; - Z_Term *term; - Z_AttributeElement **elements; - - zapt = (Z_AttributesPlusTerm *)odr_malloc (o, sizeof(*zapt)); - term_octet = (Odr_oct *)odr_malloc (o, sizeof(*term_octet)); - term = (Z_Term *)odr_malloc (o, sizeof(*term)); - - if (!num_attr) - elements = (Z_AttributeElement**)odr_nullval(); - else - { - int i, k = 0; - int *attr_tmp; - - elements = (Z_AttributeElement**) - odr_malloc (o, num_attr * sizeof(*elements)); - - attr_tmp = (int *)odr_malloc (o, num_attr * 2 * sizeof(int)); - memcpy (attr_tmp, attr_list, num_attr * 2 * sizeof(int)); - for (i = num_attr; --i >= 0; ) - { - int j; - for (j = i+1; jattributeType = &attr_tmp[2*i]; - elements[k]->attributeSet = attr_set[i]; - - if (attr_clist[i]) - { - elements[k]->which = Z_AttributeValue_complex; - elements[k]->value.complex = (Z_ComplexAttribute *) - odr_malloc (o, sizeof(Z_ComplexAttribute)); - elements[k]->value.complex->num_list = 1; - elements[k]->value.complex->list = - (Z_StringOrNumeric **) - odr_malloc (o, 1 * sizeof(Z_StringOrNumeric *)); - elements[k]->value.complex->list[0] = - (Z_StringOrNumeric *) - odr_malloc (o, sizeof(Z_StringOrNumeric)); - elements[k]->value.complex->list[0]->which = - Z_StringOrNumeric_string; - elements[k]->value.complex->list[0]->u.string = - attr_clist[i]; - elements[k]->value.complex->semanticAction = (int **) - odr_nullval(); - elements[k]->value.complex->num_semanticAction = 0; - } - else - { - elements[k]->which = Z_AttributeValue_numeric; - elements[k]->value.numeric = &attr_tmp[2*i+1]; - } - k++; - } - num_attr = k; - } - zapt->attributes = (Z_AttributeList *) - odr_malloc (o, sizeof(*zapt->attributes)); - zapt->attributes->num_attributes = num_attr; - zapt->attributes->attributes = elements; - - zapt->term = term; - - term_octet->buf = (unsigned char *)odr_malloc (o, 1 + li->lex_len); - term_octet->size = term_octet->len = - escape_string ((char *) (term_octet->buf), li->lex_buf, li->lex_len); - term_octet->buf[term_octet->size] = 0; /* null terminate */ - - switch (li->term_type) - { - case Z_Term_general: - term->which = Z_Term_general; - term->u.general = term_octet; - break; - case Z_Term_characterString: - term->which = Z_Term_characterString; - term->u.characterString = (char*) term_octet->buf; - /* null terminated above */ - break; - case Z_Term_numeric: - term->which = Z_Term_numeric; - term->u.numeric = odr_intdup (o, atoi((char*) (term_octet->buf))); - break; - case Z_Term_null: - term->which = Z_Term_null; - term->u.null = odr_nullval(); - break; - case Z_Term_external: - term->which = Z_Term_external; - term->u.external = 0; - break; - default: - term->which = Z_Term_null; - term->u.null = odr_nullval(); - break; - } - return zapt; -} - -static Z_Operand *rpn_simple(struct yaz_pqf_parser *li, ODR o, - int num_attr, int *attr_list, char **attr_clist, - Odr_oid **attr_set) -{ - Z_Operand *zo; - - zo = (Z_Operand *)odr_malloc (o, sizeof(*zo)); - switch (li->query_look) - { - case 't': - zo->which = Z_Operand_APT; - if (!(zo->u.attributesPlusTerm = - rpn_term(li, o, num_attr, attr_list, attr_clist, attr_set))) - return 0; - lex (li); - break; - case 's': - lex (li); - if (!li->query_look) - { - li->error = YAZ_PQF_ERROR_MISSING; - return 0; - } - zo->which = Z_Operand_resultSetId; - zo->u.resultSetId = (char *)odr_malloc (o, li->lex_len+1); - memcpy (zo->u.resultSetId, li->lex_buf, li->lex_len); - zo->u.resultSetId[li->lex_len] = '\0'; - lex (li); - break; - default: - /* we're only called if one of the above types are seens so - this shouldn't happen */ - li->error = YAZ_PQF_ERROR_INTERNAL; - return 0; - } - return zo; -} - -static Z_ProximityOperator *rpn_proximity (struct yaz_pqf_parser *li, ODR o) -{ - Z_ProximityOperator *p = (Z_ProximityOperator *)odr_malloc (o, sizeof(*p)); - - if (!lex (li)) - { - li->error = YAZ_PQF_ERROR_MISSING; - return NULL; - } - if (*li->lex_buf == '1') - p->exclusion = odr_intdup (o, 1); - else if (*li->lex_buf == '0') - p->exclusion = odr_intdup (o, 0); - else if (*li->lex_buf == 'v' || *li->lex_buf == 'n') - p->exclusion = NULL; - else - { - li->error = YAZ_PQF_ERROR_PROXIMITY; - return NULL; - } - - if (!lex (li)) - { - li->error = YAZ_PQF_ERROR_MISSING; - return NULL; - } - if (*li->lex_buf >= '0' && *li->lex_buf <= '9') - p->distance = odr_intdup (o, atoi (li->lex_buf)); - else - { - li->error = YAZ_PQF_ERROR_BAD_INTEGER; - return NULL; - } - - if (!lex (li)) - { - li->error = YAZ_PQF_ERROR_MISSING; - return NULL; - } - if (*li->lex_buf == '1') - p->ordered = odr_intdup (o, 1); - else if (*li->lex_buf == '0') - p->ordered = odr_intdup (o, 0); - else - { - li->error = YAZ_PQF_ERROR_PROXIMITY; - return NULL; - } - - if (!lex (li)) - { - li->error = YAZ_PQF_ERROR_MISSING; - return NULL; - } - if (*li->lex_buf >= '0' && *li->lex_buf <= '9') - p->relationType = odr_intdup (o, atoi (li->lex_buf)); - else - { - li->error = YAZ_PQF_ERROR_BAD_INTEGER; - return NULL; - } - - if (!lex (li)) - { - li->error = YAZ_PQF_ERROR_MISSING; - return NULL; - } - if (*li->lex_buf == 'k') - p->which = Z_ProximityOperator_known; - else if (*li->lex_buf == 'p') - p->which = Z_ProximityOperator_private; - else - p->which = atoi (li->lex_buf); - - if (p->which != Z_ProximityOperator_known - && p->which != Z_ProximityOperator_private) - { - li->error = YAZ_PQF_ERROR_PROXIMITY; - return NULL; - } - - if (!lex (li)) - { - li->error = YAZ_PQF_ERROR_MISSING; - return NULL; - } - if (*li->lex_buf >= '0' && *li->lex_buf <= '9') - p->u.known = odr_intdup (o, atoi(li->lex_buf)); - else - { - li->error = YAZ_PQF_ERROR_BAD_INTEGER; - return NULL; - } - return p; -} - -static Z_Complex *rpn_complex(struct yaz_pqf_parser *li, ODR o, - int num_attr, int max_attr, - int *attr_list, char **attr_clist, - Odr_oid **attr_set) -{ - Z_Complex *zc; - Z_Operator *zo; - - zc = (Z_Complex *)odr_malloc (o, sizeof(*zc)); - zo = (Z_Operator *)odr_malloc (o, sizeof(*zo)); - zc->roperator = zo; - switch (li->query_look) - { - case 'a': - zo->which = Z_Operator_and; - zo->u.op_and = odr_nullval(); - break; - case 'o': - zo->which = Z_Operator_or; - zo->u.op_or = odr_nullval(); - break; - case 'n': - zo->which = Z_Operator_and_not; - zo->u.and_not = odr_nullval(); - break; - case 'p': - zo->which = Z_Operator_prox; - zo->u.prox = rpn_proximity (li, o); - if (!zo->u.prox) - return NULL; - break; - default: - /* we're only called if one of the above types are seens so - this shouldn't happen */ - li->error = YAZ_PQF_ERROR_INTERNAL; - return NULL; - } - lex (li); - if (!(zc->s1 = - rpn_structure(li, o, num_attr, max_attr, attr_list, - attr_clist, attr_set))) - return NULL; - if (!(zc->s2 = - rpn_structure(li, o, num_attr, max_attr, attr_list, - attr_clist, attr_set))) - return NULL; - return zc; -} - -static void rpn_term_type(struct yaz_pqf_parser *li, ODR o) -{ - if (!li->query_look) - return ; - if (compare_term (li, "general", 0)) - li->term_type = Z_Term_general; - else if (compare_term (li, "numeric", 0)) - li->term_type = Z_Term_numeric; - else if (compare_term (li, "string", 0)) - li->term_type = Z_Term_characterString; - else if (compare_term (li, "oid", 0)) - li->term_type = Z_Term_oid; - else if (compare_term (li, "datetime", 0)) - li->term_type = Z_Term_dateTime; - else if (compare_term (li, "null", 0)) - li->term_type = Z_Term_null; -#if 0 - else if (compare_term(li, "range", 0)) - { - /* prepare for external: range search .. */ - li->term_type = Z_Term_external; - li->external_type = VAL_MULTISRCH2; - } -#endif - lex (li); -} - -static Z_RPNStructure *rpn_structure(struct yaz_pqf_parser *li, ODR o, - int num_attr, int max_attr, - int *attr_list, - char **attr_clist, - Odr_oid **attr_set) -{ - Z_RPNStructure *sz; - - sz = (Z_RPNStructure *)odr_malloc (o, sizeof(*sz)); - switch (li->query_look) - { - case 'a': - case 'o': - case 'n': - case 'p': - sz->which = Z_RPNStructure_complex; - if (!(sz->u.complex = - rpn_complex (li, o, num_attr, max_attr, attr_list, - attr_clist, attr_set))) - return NULL; - break; - case 't': - case 's': - sz->which = Z_RPNStructure_simple; - if (!(sz->u.simple = - rpn_simple (li, o, num_attr, attr_list, - attr_clist, attr_set))) - return NULL; - break; - case 'l': - lex (li); - if (!li->query_look) - { - li->error = YAZ_PQF_ERROR_MISSING; - return 0; - } - if (num_attr >= max_attr) - { - li->error = YAZ_PQF_ERROR_TOOMANY; - return 0; - } - if (!p_query_parse_attr(li, o, num_attr, attr_list, - attr_clist, attr_set)) - return 0; - num_attr++; - lex (li); - return - rpn_structure (li, o, num_attr, max_attr, attr_list, - attr_clist, attr_set); - case 'y': - lex (li); - rpn_term_type (li, o); - return - rpn_structure (li, o, num_attr, max_attr, attr_list, - attr_clist, attr_set); - case 0: /* operator/operand expected! */ - li->error = YAZ_PQF_ERROR_MISSING; - return 0; - } - return sz; -} - -Z_RPNQuery *p_query_rpn_mk(ODR o, struct yaz_pqf_parser *li, const char *qbuf) -{ - Z_RPNQuery *zq; - int attr_array[1024]; - char *attr_clist[512]; - Odr_oid *attr_set[512]; - Odr_oid *top_set = 0; - - zq = (Z_RPNQuery *)odr_malloc (o, sizeof(*zq)); - lex (li); - if (li->query_look == 'r') - { - lex (li); - top_set = query_oid_getvalbyname(li, o); - if (!top_set) - { - li->error = YAZ_PQF_ERROR_ATTSET; - return NULL; - } - lex (li); - } - if (!top_set) - { - top_set = odr_oiddup(o, yaz_oid_attset_bib_1); - } - - zq->attributeSetId = top_set; - - if (!zq->attributeSetId) - { - li->error = YAZ_PQF_ERROR_ATTSET; - return 0; - } - - if (!(zq->RPNStructure = rpn_structure(li, o, 0, 512, - attr_array, attr_clist, attr_set))) - return 0; - if (li->query_look) - { - li->error = YAZ_PQF_ERROR_EXTRA; - return 0; - } - return zq; -} - -Z_RPNQuery *p_query_rpn(ODR o, const char *qbuf) -{ - struct yaz_pqf_parser li; - - li.error = 0; - li.left_sep = "{\""; - li.right_sep = "}\""; - li.escape_char = '@'; - li.term_type = Z_Term_general; - li.query_buf = li.query_ptr = qbuf; - li.lex_buf = 0; - return p_query_rpn_mk(o, &li, qbuf); -} - - -Z_AttributesPlusTerm *p_query_scan_mk(struct yaz_pqf_parser *li, - ODR o, oid_proto proto, - Odr_oid **attributeSetP, - const char *qbuf) -{ - int attr_list[1024]; - char *attr_clist[512]; - Odr_oid *attr_set[512]; - int num_attr = 0; - int max_attr = 512; - Odr_oid *top_set = 0; - Z_AttributesPlusTerm *apt; - - lex (li); - if (li->query_look == 'r') - { - lex (li); - top_set = query_oid_getvalbyname(li, o); - if (!top_set) - { - li->error = YAZ_PQF_ERROR_ATTSET; - return NULL; - } - lex (li); - } - if (!top_set) - { - top_set = odr_oiddup(o, yaz_oid_attset_bib_1); - } - *attributeSetP = top_set; - - while (1) - { - if (li->query_look == 'l') - { - lex (li); - if (!li->query_look) - { - li->error = YAZ_PQF_ERROR_MISSING; - return 0; - } - if (num_attr >= max_attr) - { - li->error = YAZ_PQF_ERROR_TOOMANY; - return 0; - } - if (!p_query_parse_attr(li, o, num_attr, attr_list, - attr_clist, attr_set)) - return 0; - num_attr++; - lex (li); - } - else if (li->query_look == 'y') - { - lex (li); - rpn_term_type (li, o); - } - else - break; - } - if (!li->query_look) - { - li->error = YAZ_PQF_ERROR_MISSING; - return 0; - } - apt = rpn_term(li, o, num_attr, attr_list, attr_clist, attr_set); - - lex (li); - - if (li->query_look != 0) - { - li->error = YAZ_PQF_ERROR_EXTRA; - return 0; - } - return apt; -} - -Z_AttributesPlusTerm *p_query_scan (ODR o, oid_proto proto, - Odr_oid **attributeSetP, - const char *qbuf) -{ - struct yaz_pqf_parser li; - - li.error = 0; - li.left_sep = "{\""; - li.right_sep = "}\""; - li.escape_char = '@'; - li.term_type = Z_Term_general; - li.query_buf = li.query_ptr = qbuf; - li.lex_buf = 0; - - return p_query_scan_mk (&li, o, proto, attributeSetP, qbuf); -} - -YAZ_PQF_Parser yaz_pqf_create (void) -{ - YAZ_PQF_Parser p = (YAZ_PQF_Parser) xmalloc (sizeof(*p)); - - p->error = 0; - p->left_sep = "{\""; - p->right_sep = "}\""; - p->escape_char = '@'; - p->term_type = Z_Term_general; - - return p; -} - -void yaz_pqf_destroy(YAZ_PQF_Parser p) -{ - xfree (p); -} - -Z_RPNQuery *yaz_pqf_parse(YAZ_PQF_Parser p, ODR o, const char *qbuf) -{ - if (!p) - return 0; - p->query_buf = p->query_ptr = qbuf; - p->lex_buf = 0; - return p_query_rpn_mk (o, p, qbuf); -} - -Z_AttributesPlusTerm *yaz_pqf_scan(YAZ_PQF_Parser p, ODR o, - Odr_oid **attributeSetP, - const char *qbuf) -{ - if (!p) - return 0; - p->query_buf = p->query_ptr = qbuf; - p->lex_buf = 0; - return p_query_scan_mk (p, o, PROTO_Z3950, attributeSetP, qbuf); -} - -int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off) -{ - switch (p->error) - { - case YAZ_PQF_ERROR_NONE: - *msg = "no error"; break; - case YAZ_PQF_ERROR_EXTRA: - *msg = "extra token"; break; - case YAZ_PQF_ERROR_MISSING: - *msg = "missing token"; break; - case YAZ_PQF_ERROR_ATTSET: - *msg = "unknown attribute set"; break; - case YAZ_PQF_ERROR_TOOMANY: - *msg = "too many attributes"; break; - case YAZ_PQF_ERROR_BADATTR: - *msg = "bad attribute specification"; break; - case YAZ_PQF_ERROR_INTERNAL: - *msg = "internal error"; break; - case YAZ_PQF_ERROR_PROXIMITY: - *msg = "proximity error"; break; - case YAZ_PQF_ERROR_BAD_INTEGER: - *msg = "bad integer"; break; - default: - *msg = "unknown error"; break; - } - *off = p->query_ptr - p->query_buf; - return p->error; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/prt-ext.c b/dependencies/yaz_3.0.14/src/prt-ext.c deleted file mode 100644 index 8135f00..0000000 --- a/dependencies/yaz_3.0.14/src/prt-ext.c +++ /dev/null @@ -1,345 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: prt-ext.c,v 1.13 2007/05/08 08:22:36 adam Exp $ - */ - -/** - * \file prt-ext.c - * \brief Implements handling of various Z39.50 Externals - */ - -#include - -#include -#define PRT_EXT_DEBUG 0 - -#if PRT_EXT_DEBUG -#include -#endif - -/* - * The table below should be moved to the ODR structure itself and - * be an image of the association context: To help - * map indirect references when they show up. - */ -static Z_ext_typeent type_table[] = -{ - {{1, 2, 840, 10003, 5, 101,-1}, Z_External_sutrs, (Odr_fun) z_SUTRS}, - {{1, 2, 840, 10003, 5, 100,-1}, Z_External_explainRecord, (Odr_fun)z_ExplainRecord}, - {{1, 2, 840, 10003, 7, 1,-1}, Z_External_resourceReport1, (Odr_fun)z_ResourceReport1}, - {{1, 2, 840, 10003, 7, 2,-1}, Z_External_resourceReport2, (Odr_fun)z_ResourceReport2}, - {{1, 2, 840, 10003, 8, 1,-1}, Z_External_promptObject1, (Odr_fun)z_PromptObject1 }, - {{1, 2, 840, 10003, 5, 105,-1}, Z_External_grs1, (Odr_fun)z_GenericRecord}, - {{1, 2, 840, 10003, 5, 106,-1}, Z_External_extendedService, (Odr_fun)z_TaskPackage}, - {{1, 2, 840, 10003, 9, 4,-1}, Z_External_itemOrder, (Odr_fun)z_IOItemOrder}, - {{1, 2, 840, 10003, 4, 2,-1}, Z_External_diag1, (Odr_fun)z_DiagnosticFormat}, - {{1, 2, 840, 10003, 11, 1,-1}, Z_External_espec1, (Odr_fun)z_Espec1}, - {{1, 2, 840, 10003, 5, 103,-1}, Z_External_summary, (Odr_fun)z_BriefBib}, - {{1, 2, 840, 10003, 5, 102,-1}, Z_External_OPAC, (Odr_fun)z_OPACRecord}, - {{1, 2, 840, 10003, 10, 1,-1}, Z_External_searchResult1, (Odr_fun)z_SearchInfoReport}, - {{1, 2, 840, 10003, 9, 5,-1}, Z_External_update0, (Odr_fun)z_IU0Update}, - {{1, 2, 840, 10003, 9, 5, 1,-1}, Z_External_update0, (Odr_fun)z_IU0Update}, - {{1, 2, 840, 10003, 9, 5, 1, 1,-1}, Z_External_update, (Odr_fun)z_IUUpdate}, - {{1, 2, 840, 10003, 10, 6,-1}, Z_External_dateTime, (Odr_fun)z_DateTime}, - {{1, 2, 840, 10003, 7, 1000, 81, 1,-1}, Z_External_universeReport,(Odr_fun)z_UniverseReport}, - {{1, 2, 840, 10003, 9, 1000, 81, 1,-1}, Z_External_ESAdmin, (Odr_fun)z_Admin}, - {{1, 2, 840, 10003, 10, 3,-1}, Z_External_userInfo1, (Odr_fun) z_OtherInformation}, - {{1, 2, 840, 10003, 15, 3,-1}, Z_External_charSetandLanguageNegotiation, (Odr_fun) - z_CharSetandLanguageNegotiation}, - {{1, 2, 840, 10003, 8, 1,-1}, Z_External_acfPrompt1, (Odr_fun) z_PromptObject1}, - {{1, 2, 840, 10003, 8, 2,-1}, Z_External_acfDes1, (Odr_fun) z_DES_RN_Object}, - {{1, 2, 840, 10003, 8, 3,-1}, Z_External_acfKrb1, (Odr_fun) z_KRBObject}, - {{1, 2, 840, 10003, 10, 5,-1}, Z_External_multisrch2, (Odr_fun) z_MultipleSearchTerms_2}, - {{1, 2, 840, 10003, 16, 2, -1}, Z_External_CQL, (Odr_fun) z_InternationalString}, - {{-1}, 0, 0} -}; - -Z_ext_typeent *z_ext_getentbyref(const Odr_oid *oid) -{ - Z_ext_typeent *p; - - for (p = type_table; p->oid[0] != -1; p++) - if (!oid_oidcmp(oid, p->oid)) - return p; - return 0; -} - -/** - This routine is the BER codec for the EXTERNAL type. - It handles information in single-ASN1-type and octet-aligned - for known structures. - -
    -    [UNIVERSAL 8] IMPLICIT SEQUENCE {
    -    direct-reference      OBJECT IDENTIFIER OPTIONAL,
    -    indirect-reference    INTEGER OPTIONAL,
    -    data-value-descriptor ObjectDescriptor OPTIONAL,
    -    encoding              CHOICE {
    -      single-ASN1-type   [0] ABSTRACT_SYNTAX.&Type,
    -      octet-aligned      [1] IMPLICIT OCTET STRING,
    -      arbitrary          [2] IMPLICIT BIT STRING 
    -      }
    -    }
    -  
    - arbitrary BIT STRING not handled yet. -*/ -int z_External(ODR o, Z_External **p, int opt, const char *name) -{ - Z_ext_typeent *type; - - static Odr_arm arm[] = - { - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_single, - (Odr_fun)odr_any, 0}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_External_octet, - (Odr_fun)odr_octetstring, 0}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_External_arbitrary, - (Odr_fun)odr_bitstring, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_sutrs, - (Odr_fun)z_SUTRS, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_explainRecord, - (Odr_fun)z_ExplainRecord, 0}, - - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_resourceReport1, - (Odr_fun)z_ResourceReport1, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_resourceReport2, - (Odr_fun)z_ResourceReport2, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_promptObject1, - (Odr_fun)z_PromptObject1, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_grs1, - (Odr_fun)z_GenericRecord, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_extendedService, - (Odr_fun)z_TaskPackage, 0}, - - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_itemOrder, - (Odr_fun)z_IOItemOrder, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_diag1, - (Odr_fun)z_DiagnosticFormat, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_espec1, - (Odr_fun)z_Espec1, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_summary, - (Odr_fun)z_BriefBib, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_OPAC, - (Odr_fun)z_OPACRecord, 0}, - - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_searchResult1, - (Odr_fun)z_SearchInfoReport, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_update, - (Odr_fun)z_IUUpdate, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_dateTime, - (Odr_fun)z_DateTime, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_universeReport, - (Odr_fun)z_UniverseReport, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_ESAdmin, - (Odr_fun)z_Admin, 0}, - - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_update0, - (Odr_fun)z_IU0Update, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_userInfo1, - (Odr_fun)z_OtherInformation, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_charSetandLanguageNegotiation, - (Odr_fun)z_CharSetandLanguageNegotiation, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_acfPrompt1, - (Odr_fun)z_PromptObject1, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_acfDes1, - (Odr_fun)z_DES_RN_Object, 0}, - - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_acfKrb1, - (Odr_fun)z_KRBObject, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_multisrch2, - (Odr_fun)z_MultipleSearchTerms_2, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_CQL, - (Odr_fun)z_InternationalString, 0}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_External_OCLCUserInfo, - (Odr_fun)z_OCLC_UserInformation, 0}, - {-1, -1, -1, -1, 0, 0} - }; - - odr_implicit_settag(o, ODR_UNIVERSAL, ODR_EXTERNAL); - if (!odr_sequence_begin(o, p, sizeof(**p), name)) - return opt && odr_ok(o); - if (!(odr_oid(o, &(*p)->direct_reference, 1, 0) && - odr_integer(o, &(*p)->indirect_reference, 1, 0) && - odr_graphicstring(o, &(*p)->descriptor, 1, 0))) - return 0; -#if PRT_EXT_DEBUG - /* debugging purposes only */ - if (o->direction == ODR_DECODE) - { - yaz_log(YLOG_LOG, "z_external decode"); - if ((*p)->direct_reference) - { - yaz_log(YLOG_LOG, "direct reference"); - if ((oid = oid_getentbyoid((*p)->direct_reference))) - { - yaz_log(YLOG_LOG, "oid %s", oid->desc); - if ((type = z_ext_getentbyref(oid->value))) - yaz_log(YLOG_LOG, "type"); - } - } - } -#endif - /* Do we know this beast? */ - if (o->direction == ODR_DECODE && (*p)->direct_reference && - (type = z_ext_getentbyref((*p)->direct_reference))) - { - int zclass, tag, cons; - /* OID is present and we know it */ - - if (!odr_peektag(o, &zclass, &tag, &cons)) - return opt && odr_ok(o); -#if PRT_EXT_DEBUG - yaz_log(YLOG_LOG, "odr_peektag OK tag=%d cons=%d zclass=%d what=%d", - tag, cons, zclass, type->what); -#endif - if (zclass == ODR_CONTEXT && tag == 1 && cons == 0) - { - /* we have an OCTET STRING. decode BER contents from it */ - const unsigned char *o_bp; - unsigned char *o_buf; - int o_size; - char *voidp = 0; - Odr_oct *oct; - int r; - if (!odr_implicit_tag(o, odr_octetstring, &oct, - ODR_CONTEXT, 1, 0, "octetaligned")) - return 0; - - /* Save our decoding ODR members */ - o_bp = o->bp; - o_buf = o->buf; - o_size = o->size; - - /* Set up the OCTET STRING buffer */ - o->bp = o->buf = oct->buf; - o->size = oct->len; - - /* and decode that */ - r = (*type->fun)(o, &voidp, 0, 0); - (*p)->which = type->what; - (*p)->u.single_ASN1_type = (Odr_any*) voidp; - - /* Restore our decoding ODR member */ - o->bp = o_bp; - o->buf = o_buf; - o->size = o_size; - - return r && odr_sequence_end(o); - } - if (zclass == ODR_CONTEXT && tag == 0 && cons == 1) - { - /* It's single ASN.1 type, bias the CHOICE. */ - odr_choice_bias(o, type->what); - } - } - return - odr_choice(o, arm, &(*p)->u, &(*p)->which, name) && - odr_sequence_end(o); -} - -Z_External *z_ext_record_oid(ODR o, const Odr_oid *oid, const char *buf, int len) -{ - Z_External *thisext; - char oid_str_buf[OID_STR_MAX]; - const char *oid_str; - oid_class oclass; - - if (!oid) - return 0; - thisext = (Z_External *) odr_malloc(o, sizeof(*thisext)); - thisext->descriptor = 0; - thisext->indirect_reference = 0; - - oid_str = yaz_oid_to_string_buf(oid, &oclass, oid_str_buf); - - thisext->direct_reference = odr_oiddup(o, oid); - - if (len < 0) /* Structured data */ - { - /* - * We cheat on the pointers here. Obviously, the record field - * of the backend-fetch structure should have been a union for - * correctness, but we're stuck with this for backwards - * compatibility. - */ - thisext->u.grs1 = (Z_GenericRecord*) buf; - - if (!oid_oidcmp(oid, yaz_oid_recsyn_sutrs)) - { - thisext->which = Z_External_sutrs; - } - else if (!oid_oidcmp(oid, yaz_oid_recsyn_grs_1)) - { - thisext->which = Z_External_grs1; - } - else if (!oid_oidcmp(oid, yaz_oid_recsyn_explain)) - { - thisext->which = Z_External_explainRecord; - } - else if (!oid_oidcmp(oid, yaz_oid_recsyn_summary)) - { - thisext->which = Z_External_summary; - } - else if (!oid_oidcmp(oid, yaz_oid_recsyn_opac)) - { - thisext->which = Z_External_OPAC; - } - else if (!oid_oidcmp(oid, yaz_oid_recsyn_extended)) - { - thisext->which = Z_External_extendedService; - } - else - { - return 0; - } - } - else if (!oid_oidcmp(oid, yaz_oid_recsyn_sutrs)) /* SUTRS is a single-ASN.1-type */ - { - Odr_oct *sutrs = (Odr_oct *)odr_malloc(o, sizeof(*sutrs)); - - thisext->which = Z_External_sutrs; - thisext->u.sutrs = sutrs; - sutrs->buf = (unsigned char *)odr_malloc(o, len); - sutrs->len = sutrs->size = len; - memcpy(sutrs->buf, buf, len); - } - else - { - thisext->which = Z_External_octet; - if (!(thisext->u.octet_aligned = (Odr_oct *) - odr_malloc(o, sizeof(Odr_oct)))) - return 0; - if (!(thisext->u.octet_aligned->buf = (unsigned char *) - odr_malloc(o, len))) - return 0; - memcpy(thisext->u.octet_aligned->buf, buf, len); - thisext->u.octet_aligned->len = thisext->u.octet_aligned->size = len; - } - return thisext; -} - -Z_External *z_ext_record_xml(ODR o, const char *buf, int len) -{ - return z_ext_record_oid(o, yaz_oid_recsyn_xml, buf, len); -} - -Z_External *z_ext_record_sutrs(ODR o, const char *buf, int len) -{ - return z_ext_record_oid(o, yaz_oid_recsyn_sutrs, buf, len); -} - -Z_External *z_ext_record_usmarc(ODR o, const char *buf, int len) -{ - return z_ext_record_oid(o, yaz_oid_recsyn_usmarc, buf, len); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/query-charset.c b/dependencies/yaz_3.0.14/src/query-charset.c deleted file mode 100644 index f180334..0000000 --- a/dependencies/yaz_3.0.14/src/query-charset.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * All rights reserved. - * - * $Id: query-charset.c,v 1.3 2007/05/03 22:20:45 adam Exp $ - */ - -/** \file query-charset.c - \brief converts General Terms in RPN queries - */ - -#include -#include - -#include -#include - -void yaz_query_charset_convert_buf(char *buf_in, int len_in, - char **buf_out, int *len_out, - ODR o, WRBUF wrbuf, yaz_iconv_t cd) -{ - wrbuf_rewind(wrbuf); - wrbuf_iconv_write(wrbuf, cd, buf_in, len_in); - wrbuf_iconv_reset(wrbuf, cd); - - *len_out = wrbuf_len(wrbuf); - if (*len_out == 0) - { /* we assume conversion failed */ - *buf_out = buf_in; - *len_out = len_in; - } - else - { - *buf_out = (char*) odr_malloc(o, *len_out); - memcpy(*buf_out, wrbuf_buf(wrbuf), *len_out); - } -} - -void yaz_query_charset_convert_term(Z_Term *q, - ODR o, WRBUF wrbuf, yaz_iconv_t cd) -{ - switch(q->which) - { - case Z_Term_general: - yaz_query_charset_convert_buf( - (char *) q->u.general->buf, q->u.general->len, - (char **) &q->u.general->buf, &q->u.general->len, o, wrbuf, cd); - break; - } -} - -void yaz_query_charset_convert_operand(Z_Operand *q, - ODR o, WRBUF wrbuf, yaz_iconv_t cd) -{ - switch(q->which) - { - case Z_Operand_APT: - yaz_query_charset_convert_term(q->u.attributesPlusTerm->term, - o, wrbuf, cd); - break; - case Z_Operand_resultSetId: - break; - case Z_Operand_resultAttr: - break; - } -} - -void yaz_query_charset_convert_structure(Z_RPNStructure *q, - ODR o, WRBUF wrbuf, yaz_iconv_t cd) -{ - switch(q->which) - { - case Z_RPNStructure_simple: - yaz_query_charset_convert_operand(q->u.simple, o, wrbuf, cd); - break; - case Z_RPNStructure_complex: - yaz_query_charset_convert_structure(q->u.complex->s1, o, wrbuf, cd); - yaz_query_charset_convert_structure(q->u.complex->s2, o, wrbuf, cd); - break; - } -} - -void yaz_query_charset_convert_rpnquery(Z_RPNQuery *q, - ODR o, yaz_iconv_t cd) -{ - WRBUF wrbuf = wrbuf_alloc(); - yaz_query_charset_convert_structure(q->RPNStructure, o, wrbuf, cd); - wrbuf_destroy(wrbuf); -} - -void yaz_query_charset_convert_apt(Z_AttributesPlusTerm *apt, - ODR o, yaz_iconv_t cd) -{ - WRBUF wrbuf = wrbuf_alloc(); - yaz_query_charset_convert_term(apt->term, o, wrbuf, cd); - wrbuf_destroy(wrbuf); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/querytowrbuf.c b/dependencies/yaz_3.0.14/src/querytowrbuf.c deleted file mode 100644 index d08c6e8..0000000 --- a/dependencies/yaz_3.0.14/src/querytowrbuf.c +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * All rights reserved. - * - * $Id: querytowrbuf.c,v 1.11 2007/05/08 08:22:36 adam Exp $ - */ - -/** \file querytowrbuf.c - \brief Query to WRBUF (to strings) - */ - -#include -#include - -#include -#include -#include - -static void yaz_term_to_wrbuf(WRBUF b, const char *term, int len) -{ - int i; - for (i = 0; i < len; i++) - if (strchr(" \"{", term[i])) - break; - if (i == len && i) - wrbuf_printf(b, "%.*s ", len, term); - else - { - wrbuf_putc(b, '"'); - for (i = 0; iattributeSet) - { - setname = yaz_oid_to_string_buf(element->attributeSet, - 0, oid_name_str); - } - if (!setname) - { - setname = ""; - sep = ""; - } - switch (element->which) - { - case Z_AttributeValue_numeric: - wrbuf_printf(b,"@attr %s%s%d=%d ", setname, sep, - *element->attributeType, *element->value.numeric); - break; - case Z_AttributeValue_complex: - wrbuf_printf(b,"@attr %s%s\"%d=", setname, sep, - *element->attributeType); - for (i = 0; ivalue.complex->num_list; i++) - { - if (i) - wrbuf_printf(b,","); - if (element->value.complex->list[i]->which == - Z_StringOrNumeric_string) - wrbuf_printf (b, "%s", - element->value.complex->list[i]->u.string); - else if (element->value.complex->list[i]->which == - Z_StringOrNumeric_numeric) - wrbuf_printf (b, "%d", - *element->value.complex->list[i]->u.numeric); - } - wrbuf_printf(b, "\" "); - break; - default: - wrbuf_printf (b, "@attr 1=unknown "); - } -} - -static const char *complex_op_name(const Z_Operator *op) -{ - switch (op->which) - { - case Z_Operator_and: - return "and"; - case Z_Operator_or: - return "or"; - case Z_Operator_and_not: - return "not"; - case Z_Operator_prox: - return "prox"; - default: - return "unknown complex operator"; - } -} - -static void yaz_apt_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt) -{ - int num_attributes = zapt->attributes->num_attributes; - int i; - for (i = 0; iattributes->attributes[i]); - - switch (zapt->term->which) - { - case Z_Term_general: - yaz_term_to_wrbuf(b, (const char *)zapt->term->u.general->buf, - zapt->term->u.general->len); - break; - case Z_Term_characterString: - wrbuf_printf(b, "@term string "); - yaz_term_to_wrbuf(b, zapt->term->u.characterString, - strlen(zapt->term->u.characterString)); - break; - case Z_Term_numeric: - wrbuf_printf(b, "@term numeric %d ", *zapt->term->u.numeric); - break; - case Z_Term_null: - wrbuf_printf(b, "@term null x"); - break; - default: - wrbuf_printf(b, "@term null unknown%d ", zapt->term->which); - } -} - -static void yaz_rpnstructure_to_wrbuf(WRBUF b, const Z_RPNStructure *zs) -{ - if (zs->which == Z_RPNStructure_complex) - { - Z_Operator *op = zs->u.complex->roperator; - wrbuf_printf(b, "@%s ", complex_op_name(op) ); - if (op->which== Z_Operator_prox) - { - if (!op->u.prox->exclusion) - wrbuf_putc(b, 'n'); - else if (*op->u.prox->exclusion) - wrbuf_putc(b, '1'); - else - wrbuf_putc(b, '0'); - - wrbuf_printf(b, " %d %d %d ", *op->u.prox->distance, - *op->u.prox->ordered, - *op->u.prox->relationType); - - switch(op->u.prox->which) - { - case Z_ProximityOperator_known: - wrbuf_putc(b, 'k'); - break; - case Z_ProximityOperator_private: - wrbuf_putc(b, 'p'); - break; - default: - wrbuf_printf(b, "%d", op->u.prox->which); - } - if (op->u.prox->u.known) - wrbuf_printf(b, " %d ", *op->u.prox->u.known); - else - wrbuf_printf(b, " 0 "); - } - yaz_rpnstructure_to_wrbuf(b,zs->u.complex->s1); - yaz_rpnstructure_to_wrbuf(b,zs->u.complex->s2); - } - else if (zs->which == Z_RPNStructure_simple) - { - if (zs->u.simple->which == Z_Operand_APT) - yaz_apt_to_wrbuf(b, zs->u.simple->u.attributesPlusTerm); - else if (zs->u.simple->which == Z_Operand_resultSetId) - { - wrbuf_printf(b, "@set "); - yaz_term_to_wrbuf(b, zs->u.simple->u.resultSetId, - strlen(zs->u.simple->u.resultSetId)); - } - else - wrbuf_printf (b, "(unknown simple structure)"); - } - else - wrbuf_puts(b, "(unknown structure)"); -} - -void yaz_rpnquery_to_wrbuf(WRBUF b, const Z_RPNQuery *rpn) -{ - if (rpn->attributeSetId) - { - char oid_name_str[OID_STR_MAX]; - const char *oid_name = yaz_oid_to_string_buf(rpn->attributeSetId, - 0, oid_name_str); - if (oid_name) - wrbuf_printf(b, "@attrset %s ", oid_name); - } - yaz_rpnstructure_to_wrbuf(b, rpn->RPNStructure); - wrbuf_chop_right(b); -} - -void yaz_query_to_wrbuf(WRBUF b, const Z_Query *q) -{ - assert(q); - assert(b); - switch (q->which) - { - case Z_Query_type_1: - case Z_Query_type_101: - wrbuf_printf(b,"RPN "); - yaz_rpnquery_to_wrbuf(b, q->u.type_1); - break; - case Z_Query_type_2: - wrbuf_printf(b, "CCL %.*s", q->u.type_2->len, q->u.type_2->buf); - break; - case Z_Query_type_100: - wrbuf_printf(b, "Z39.58 %.*s", q->u.type_100->len, - q->u.type_100->buf); - break; - case Z_Query_type_104: - if (q->u.type_104->which == Z_External_CQL) - wrbuf_printf(b, "CQL %s", q->u.type_104->u.cql); - else - wrbuf_printf(b,"UNKNOWN type 104 query %d", q->u.type_104->which); - } -} - -void yaz_scan_to_wrbuf(WRBUF b, const Z_AttributesPlusTerm *zapt, - const Odr_oid *attrbute_set) -{ - /* should print attr set here */ - wrbuf_printf(b, "RPN "); - yaz_apt_to_wrbuf(b, zapt); -} - -void wrbuf_diags(WRBUF b, int num_diagnostics,Z_DiagRec **diags) -{ - /* we only dump the first diag - that keeps the log cleaner. */ - wrbuf_printf(b," ERROR "); - if (diags[0]->which != Z_DiagRec_defaultFormat) - wrbuf_printf(b,"(diag not in default format?)"); - else - { - Z_DefaultDiagFormat *e=diags[0]->u.defaultFormat; - if (e->condition) - wrbuf_printf(b, "%d ",*e->condition); - else - wrbuf_printf(b, "?? "); - if ((e->which==Z_DefaultDiagFormat_v2Addinfo) && (e->u.v2Addinfo)) - wrbuf_printf(b,"%s ",e->u.v2Addinfo); - else if ((e->which==Z_DefaultDiagFormat_v3Addinfo) && (e->u.v3Addinfo)) - wrbuf_printf(b,"%s ",e->u.v3Addinfo); - } -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/readconf.c b/dependencies/yaz_3.0.14/src/readconf.c deleted file mode 100644 index bfbc5bc..0000000 --- a/dependencies/yaz_3.0.14/src/readconf.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * All rights reserved. - * - * $Id: readconf.c,v 1.7 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file readconf.c - * \brief Implements config file reading - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include -#include - -#define l_isspace(c) ((c) == '\t' || (c) == ' ' || (c) == '\n' || (c) == '\r') - -int readconf_line(FILE *f, int *lineno, char *line, int len, - char *argv[], int num) -{ - char *p; - int argc; - - while ((p = fgets(line, len, f))) - { - (*lineno)++; - while (*p && l_isspace(*p)) - p++; - if (*p && *p != '#') - break; - } - if (!p) - return 0; - - for (argc = 0; *p ; argc++) - { - if (*p == '#') /* trailing comment */ - break; - argv[argc] = p; - while (*p && !l_isspace(*p)) - p++; - if (*p) - { - *(p++) = '\0'; - while (*p && l_isspace(*p)) - p++; - } - } - return argc; -} - -/* - * Read lines of a configuration file. - */ -int readconf(char *name, void *rprivate, - int (*fun)(char *name, void *rprivate, int argc, char *argv[])) -{ - FILE *f; - char line[512], *m_argv[50]; - int m_argc; - int lineno = 0; - - if (!(f = fopen(name, "r"))) - { - yaz_log(YLOG_WARN|YLOG_ERRNO, "readconf: %s", name); - return -1; - } - for (;;) - { - int res; - - if (!(m_argc = readconf_line(f, &lineno, line, 512, m_argv, 50))) - { - fclose(f); - return 0; - } - - if ((res = (*fun)(name, rprivate, m_argc, m_argv))) - { - fclose(f); - return res; - } - } -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/record_conv.c b/dependencies/yaz_3.0.14/src/record_conv.c deleted file mode 100644 index e74e3b9..0000000 --- a/dependencies/yaz_3.0.14/src/record_conv.c +++ /dev/null @@ -1,507 +0,0 @@ -/* - * Copyright (C) 2005-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: record_conv.c,v 1.16 2007/05/06 20:12:20 adam Exp $ - */ -/** - * \file record_conv.c - * \brief Record Conversions utility - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include -#include -#include -#if YAZ_HAVE_XSLT -#include -#include -#endif -#if YAZ_HAVE_EXSLT -#include -#endif - -/** \brief The internal structure for yaz_record_conv_t */ -struct yaz_record_conv_struct { - /** \brief memory for configuration */ - NMEM nmem; - - /** \brief conversion rules (allocated using NMEM) */ - struct yaz_record_conv_rule *rules; - - /** \brief pointer to last conversion rule pointer in chain */ - struct yaz_record_conv_rule **rules_p; - - /** \brief string buffer for error messages */ - WRBUF wr_error; - - /** \brief path for opening files */ - char *path; -}; - -/** \brief tranformation types (rule types) */ -enum YAZ_RECORD_CONV_RULE -{ - YAZ_RECORD_CONV_RULE_XSLT, - YAZ_RECORD_CONV_RULE_MARC -}; - - -/** \brief tranformation info (rule info) */ -struct yaz_record_conv_rule { - enum YAZ_RECORD_CONV_RULE which; - union { -#if YAZ_HAVE_XSLT - struct { - xsltStylesheetPtr xsp; - } xslt; -#endif - struct { - yaz_iconv_t iconv_t; - int input_format; - int output_format; - } marc; - } u; - struct yaz_record_conv_rule *next; -}; - -/** \brief reset rules+configuration */ -static void yaz_record_conv_reset(yaz_record_conv_t p) -{ - - struct yaz_record_conv_rule *r; - for (r = p->rules; r; r = r->next) - { - if (r->which == YAZ_RECORD_CONV_RULE_MARC) - { - if (r->u.marc.iconv_t) - yaz_iconv_close(r->u.marc.iconv_t); - } -#if YAZ_HAVE_XSLT - else if (r->which == YAZ_RECORD_CONV_RULE_XSLT) - { - xsltFreeStylesheet(r->u.xslt.xsp); - } -#endif - } - wrbuf_rewind(p->wr_error); - nmem_reset(p->nmem); - - p->rules = 0; - - p->rules_p = &p->rules; -} - -yaz_record_conv_t yaz_record_conv_create() -{ - yaz_record_conv_t p = (yaz_record_conv_t) xmalloc(sizeof(*p)); - p->nmem = nmem_create(); - p->wr_error = wrbuf_alloc(); - p->rules = 0; - p->path = 0; - -#if YAZ_HAVE_EXSLT - exsltRegisterAll(); -#endif - yaz_record_conv_reset(p); - return p; -} - -void yaz_record_conv_destroy(yaz_record_conv_t p) -{ - if (p) - { - yaz_record_conv_reset(p); - nmem_destroy(p->nmem); - wrbuf_destroy(p->wr_error); - xfree(p->path); - xfree(p); - } -} - -/** \brief adds a rule */ -static struct yaz_record_conv_rule *add_rule(yaz_record_conv_t p, - enum YAZ_RECORD_CONV_RULE type) -{ - struct yaz_record_conv_rule *r = (struct yaz_record_conv_rule *) - nmem_malloc(p->nmem, sizeof(*r)); - r->which = type; - r->next = 0; - *p->rules_p = r; - p->rules_p = &r->next; - return r; -} - -/** \brief parse 'xslt' conversion node */ -static int conv_xslt(yaz_record_conv_t p, const xmlNode *ptr) -{ -#if YAZ_HAVE_XSLT - struct _xmlAttr *attr; - const char *stylesheet = 0; - - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "stylesheet") && - attr->children && attr->children->type == XML_TEXT_NODE) - stylesheet = (const char *) attr->children->content; - else - { - wrbuf_printf(p->wr_error, "Bad attribute '%s'" - "Expected stylesheet.", attr->name); - return -1; - } - } - if (!stylesheet) - { - wrbuf_printf(p->wr_error, "Element : " - "attribute 'stylesheet' expected"); - return -1; - } - else - { - char fullpath[1024]; - xsltStylesheetPtr xsp; - if (!yaz_filepath_resolve(stylesheet, p->path, 0, fullpath)) - { - wrbuf_printf(p->wr_error, "Element :" - " could not locate stylesheet '%s' with path '%s'", - stylesheet, fullpath, p->path); - return -1; - } - xsp = xsltParseStylesheetFile((xmlChar*) fullpath); - if (!xsp) - { - wrbuf_printf(p->wr_error, "Element :" - " parsing stylesheet '%s' with path '%s' failed," -#if YAZ_HAVE_EXSLT - " EXSLT enabled", -#else - " EXSLT not supported", -#endif - stylesheet, fullpath, p->path); - return -1; - } - else - { - struct yaz_record_conv_rule *r = - add_rule(p, YAZ_RECORD_CONV_RULE_XSLT); - r->u.xslt.xsp = xsp; - } - } - return 0; -#else - wrbuf_printf(p->wr_error, "xslt unsupported." - " YAZ compiled without XSLT support"); - return -1; -#endif -} - -/** \brief parse 'marc' conversion node */ -static int conv_marc(yaz_record_conv_t p, const xmlNode *ptr) -{ - struct _xmlAttr *attr; - const char *input_charset = 0; - const char *output_charset = 0; - const char *input_format = 0; - const char *output_format = 0; - int input_format_mode = 0; - int output_format_mode = 0; - struct yaz_record_conv_rule *r; - yaz_iconv_t cd = 0; - - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "inputcharset") && - attr->children && attr->children->type == XML_TEXT_NODE) - input_charset = (const char *) attr->children->content; - else if (!xmlStrcmp(attr->name, BAD_CAST "outputcharset") && - attr->children && attr->children->type == XML_TEXT_NODE) - output_charset = (const char *) attr->children->content; - else if (!xmlStrcmp(attr->name, BAD_CAST "inputformat") && - attr->children && attr->children->type == XML_TEXT_NODE) - input_format = (const char *) attr->children->content; - else if (!xmlStrcmp(attr->name, BAD_CAST "outputformat") && - attr->children && attr->children->type == XML_TEXT_NODE) - output_format = (const char *) attr->children->content; - else - { - wrbuf_printf(p->wr_error, "Element : expected attributes" - "'inputformat', 'inputcharset', 'outputformat' or" - " 'outputcharset', got attribute '%s'", - attr->name); - return -1; - } - } - if (!input_format) - { - wrbuf_printf(p->wr_error, "Element : " - "attribute 'inputformat' required"); - return -1; - } - else if (!strcmp(input_format, "marc")) - { - input_format_mode = YAZ_MARC_ISO2709; - } - else if (!strcmp(input_format, "xml")) - { - input_format_mode = YAZ_MARC_MARCXML; - /** Libxml2 generates UTF-8 encoding by default . - So we convert from UTF-8 to outputcharset (if defined) - */ - if (!input_charset && output_charset) - input_charset = "utf-8"; - } - else - { - wrbuf_printf(p->wr_error, "Element : " - " Unsupported input format" - " defined by attribute value", - input_format); - return -1; - } - - if (!output_format) - { - wrbuf_printf(p->wr_error, - "Element : attribute 'outputformat' required"); - return -1; - } - else if (!strcmp(output_format, "line")) - { - output_format_mode = YAZ_MARC_LINE; - } - else if (!strcmp(output_format, "marcxml")) - { - output_format_mode = YAZ_MARC_MARCXML; - if (input_charset && !output_charset) - output_charset = "utf-8"; - } - else if (!strcmp(output_format, "marc")) - { - output_format_mode = YAZ_MARC_ISO2709; - } - else if (!strcmp(output_format, "marcxchange")) - { - output_format_mode = YAZ_MARC_XCHANGE; - if (input_charset && !output_charset) - output_charset = "utf-8"; - } - else - { - wrbuf_printf(p->wr_error, "Element : " - " Unsupported output format" - " defined by attribute value", - output_format); - return -1; - } - if (input_charset && output_charset) - { - cd = yaz_iconv_open(output_charset, input_charset); - if (!cd) - { - wrbuf_printf(p->wr_error, - "Element :" - " Unsupported character set mapping" - " defined by attribute values", - input_charset, output_charset); - return -1; - } - } - else if (input_charset) - { - wrbuf_printf(p->wr_error, "Element : " - "attribute 'outputcharset' missing"); - return -1; - } - else if (output_charset) - { - wrbuf_printf(p->wr_error, "Element : " - "attribute 'inputcharset' missing"); - return -1; - } - r = add_rule(p, YAZ_RECORD_CONV_RULE_MARC); - r->u.marc.iconv_t = cd; - - r->u.marc.input_format = input_format_mode; - r->u.marc.output_format = output_format_mode; - return 0; -} - -int yaz_record_conv_configure(yaz_record_conv_t p, const xmlNode *ptr) -{ - yaz_record_conv_reset(p); - - /* parsing element children */ - for (ptr = ptr->children; ptr; ptr = ptr->next) - { - if (ptr->type != XML_ELEMENT_NODE) - continue; - if (!strcmp((const char *) ptr->name, "xslt")) - { - if (conv_xslt(p, ptr)) - return -1; - } - else if (!strcmp((const char *) ptr->name, "marc")) - { - if (conv_marc(p, ptr)) - return -1; - } - else - { - wrbuf_printf(p->wr_error, "Element : expected " - " or element, got <%s>" - , ptr->name); - return -1; - } - } - return 0; -} - -int yaz_record_conv_record(yaz_record_conv_t p, - const char *input_record_buf, - size_t input_record_len, - WRBUF output_record) -{ - int ret = 0; - WRBUF record = output_record; /* pointer transfer */ - struct yaz_record_conv_rule *r = p->rules; - wrbuf_rewind(p->wr_error); - - wrbuf_write(record, input_record_buf, input_record_len); - for (; ret == 0 && r; r = r->next) - { - if (r->which == YAZ_RECORD_CONV_RULE_MARC) - { - yaz_marc_t mt = yaz_marc_create(); - - yaz_marc_xml(mt, r->u.marc.output_format); - - if (r->u.marc.iconv_t) - yaz_marc_iconv(mt, r->u.marc.iconv_t); - if (r->u.marc.input_format == YAZ_MARC_ISO2709) - { - int sz = yaz_marc_read_iso2709(mt, wrbuf_buf(record), - wrbuf_len(record)); - if (sz > 0) - ret = 0; - else - ret = -1; - } - else if (r->u.marc.input_format == YAZ_MARC_MARCXML) - { - xmlDocPtr doc = xmlParseMemory(wrbuf_buf(record), - wrbuf_len(record)); - if (!doc) - { - wrbuf_printf(p->wr_error, "xmlParseMemory failed"); - ret = -1; - } - else - { - ret = yaz_marc_read_xml(mt, xmlDocGetRootElement(doc)); - if (ret) - wrbuf_printf(p->wr_error, "yaz_marc_read_xml failed"); - } - xmlFreeDoc(doc); - } - else - { - wrbuf_printf(p->wr_error, "unsupported input format"); - ret = -1; - } - if (ret == 0) - { - wrbuf_rewind(record); - ret = yaz_marc_write_mode(mt, record); - if (ret) - wrbuf_printf(p->wr_error, "yaz_marc_write_mode failed"); - } - yaz_marc_destroy(mt); - } -#if YAZ_HAVE_XSLT - else if (r->which == YAZ_RECORD_CONV_RULE_XSLT) - { - xmlDocPtr doc = xmlParseMemory(wrbuf_buf(record), - wrbuf_len(record)); - if (!doc) - { - wrbuf_printf(p->wr_error, "xmlParseMemory failed"); - ret = -1; - } - else - { - xmlDocPtr res = xsltApplyStylesheet(r->u.xslt.xsp, doc, 0); - if (res) - { - xmlChar *out_buf = 0; - int out_len; - -#if YAZ_HAVE_XSLTSAVERESULTTOSTRING - xsltSaveResultToString(&out_buf, &out_len, res, - r->u.xslt.xsp); -#else - xmlDocDumpFormatMemory (res, &out_buf, &out_len, 1); -#endif - if (!out_buf) - { - wrbuf_printf(p->wr_error, - "xsltSaveResultToString failed"); - ret = -1; - } - else - { - wrbuf_rewind(record); - wrbuf_write(record, (const char *) out_buf, out_len); - - xmlFree(out_buf); - } - xmlFreeDoc(res); - } - else - { - wrbuf_printf(p->wr_error, "xsltApplyStylesheet failed"); - ret = -1; - } - xmlFreeDoc(doc); - } - } -#endif - } - return ret; -} - -const char *yaz_record_conv_get_error(yaz_record_conv_t p) -{ - return wrbuf_cstr(p->wr_error); -} - -void yaz_record_conv_set_path(yaz_record_conv_t p, const char *path) -{ - xfree(p->path); - p->path = 0; - if (path) - p->path = xstrdup(path); -} -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/requestq.c b/dependencies/yaz_3.0.14/src/requestq.c deleted file mode 100644 index 8f19f59..0000000 --- a/dependencies/yaz_3.0.14/src/requestq.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: requestq.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - */ -/** - * \file requestq.c - * \brief Implements Simple queue management for GFS. - * - * We also use the request-freelist to store encoding buffers, rather than - * freeing and xmalloc'ing them on each cycle. - */ - -#include - -#include -#include "session.h" - -void request_enq(request_q *q, request *r) -{ - if (q->tail) - q->tail->next = r; - else - q->head = r; - q->tail = r; - q->num++; -} - -request *request_head(request_q *q) -{ - return q->head; -} - -request *request_deq(request_q *q) -{ - request *r = q->head; - - if (!r) - return 0; - q->head = q->head->next; - if (!q->head) - q->tail = 0; - q->num--; - return r; -} - -void request_initq(request_q *q) -{ - q->head = q->tail = q->list = 0; - q->num = 0; -} - -void request_delq(request_q *q) -{ - request *r1, *r = q->list; - while (r) - { - xfree (r->response); - r1 = r; - r = r->next; - xfree (r1); - } -} - -request *request_get(request_q *q) -{ - request *r = q->list; - - if (r) - q->list = r->next; - else - { - if (!(r = (request *)xmalloc(sizeof(*r)))) - abort(); - r->response = 0; - r->size_response = 0; - } - r->q = q; - r->len_refid = 0; - r->refid = 0; - r->gdu_request = 0; - r->apdu_request = 0; - r->request_mem = 0; - r->len_response = 0; - r->clientData = 0; - r->state = REQUEST_IDLE; - r->next = 0; - return r; -} - -void request_release(request *r) -{ - request_q *q = r->q; - r->next = q->list; - q->list = r; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/retrieval.c b/dependencies/yaz_3.0.14/src/retrieval.c deleted file mode 100644 index 61c28ca..0000000 --- a/dependencies/yaz_3.0.14/src/retrieval.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (C) 2005-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: retrieval.c,v 1.21 2007/05/08 08:22:36 adam Exp $ - */ -/** - * \file retrieval.c - * \brief Retrieval utility - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include -#include -#include - -/** \brief The internal structure for yaz_retrieval_t */ -struct yaz_retrieval_struct { - /** \brief ODR memory for configuration */ - ODR odr; - - /** \brief odr's NMEM memory (odr->mem) */ - NMEM nmem; - - /** \brief string buffer for error messages */ - WRBUF wr_error; - - /** \brief path for opening files */ - char *path; - - /** \brief retrieval list */ - struct yaz_retrieval_elem *list; - - /** \brief last pointer in retrieval list */ - struct yaz_retrieval_elem **list_p; -}; - -/** \brief information per 'retrieval' construct */ -struct yaz_retrieval_elem { - /** \brief schema identifier */ - const char *identifier; - /** \brief schema name , short-hand such as "dc" */ - const char *name; - /** \brief record syntax */ - Odr_oid *syntax; - - /** \brief backend name */ - const char *backend_name; - /** \brief backend syntax */ - Odr_oid *backend_syntax; - - /** \brief record conversion */ - yaz_record_conv_t record_conv; - - /** \brief next element in list */ - struct yaz_retrieval_elem *next; -}; - -static void yaz_retrieval_reset(yaz_retrieval_t p); - -yaz_retrieval_t yaz_retrieval_create() -{ - yaz_retrieval_t p = (yaz_retrieval_t) xmalloc(sizeof(*p)); - p->odr = odr_createmem(ODR_ENCODE); - p->nmem = odr_getmem(p->odr); - p->wr_error = wrbuf_alloc(); - p->list = 0; - p->path = 0; - yaz_retrieval_reset(p); - return p; -} - -void yaz_retrieval_destroy(yaz_retrieval_t p) -{ - if (p) - { - yaz_retrieval_reset(p); - odr_destroy(p->odr); - wrbuf_destroy(p->wr_error); - xfree(p->path); - xfree(p); - } -} - -void yaz_retrieval_reset(yaz_retrieval_t p) -{ - struct yaz_retrieval_elem *el = p->list; - for(; el; el = el->next) - yaz_record_conv_destroy(el->record_conv); - - wrbuf_rewind(p->wr_error); - odr_reset(p->odr); - - p->list = 0; - p->list_p = &p->list; -} - -/** \brief parse retrieval XML config */ -static int conf_retrieval(yaz_retrieval_t p, const xmlNode *ptr) -{ - - struct _xmlAttr *attr; - struct yaz_retrieval_elem *el = (struct yaz_retrieval_elem *) - nmem_malloc(p->nmem, sizeof(*el)); - - el->syntax = 0; - el->identifier = 0; - el->name = 0; - el->backend_name = 0; - el->backend_syntax = 0; - - el->next = 0; - - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "syntax") && - attr->children && attr->children->type == XML_TEXT_NODE) - { - el->syntax = yaz_string_to_oid_odr( - yaz_oid_std(), - CLASS_RECSYN, - (const char *) attr->children->content, - p->odr); - if (!el->syntax) - { - wrbuf_printf(p->wr_error, "Element : " - " unknown attribute value syntax='%s'", - (const char *) attr->children->content); - return -1; - } - } - else if (!xmlStrcmp(attr->name, BAD_CAST "identifier") && - attr->children && attr->children->type == XML_TEXT_NODE) - el->identifier = - nmem_strdup(p->nmem, (const char *) attr->children->content); - else if (!xmlStrcmp(attr->name, BAD_CAST "name") && - attr->children && attr->children->type == XML_TEXT_NODE) - el->name = - nmem_strdup(p->nmem, (const char *) attr->children->content); - else - { - wrbuf_printf(p->wr_error, "Element : " - " expected attributes 'syntax', identifier' or " - "'name', got '%s'", attr->name); - return -1; - } - } - - if (!el->syntax) - { - wrbuf_printf(p->wr_error, "Missing 'syntax' attribute"); - return -1; - } - - /* parsing backend element */ - - el->record_conv = 0; /* OK to have no 'backend' sub content */ - for (ptr = ptr->children; ptr; ptr = ptr->next) - { - if (ptr->type != XML_ELEMENT_NODE) - continue; - if (strcmp((const char *) ptr->name, "backend")){ - wrbuf_printf(p->wr_error, "Element : expected" - " zero or one element , got <%s>", - (const char *) ptr->name); - return -1; - } - - else { - - /* parsing attributees */ - struct _xmlAttr *attr; - for (attr = ptr->properties; attr; attr = attr->next){ - - if (!xmlStrcmp(attr->name, BAD_CAST "name") - && attr->children - && attr->children->type == XML_TEXT_NODE) - el->backend_name - = nmem_strdup(p->nmem, - (const char *) attr->children->content); - - else if (!xmlStrcmp(attr->name, BAD_CAST "syntax") - && attr->children - && attr->children->type == XML_TEXT_NODE){ - el->backend_syntax - = yaz_string_to_oid_odr( - yaz_oid_std(), - CLASS_RECSYN, - (const char *) attr->children->content, - p->odr); - if (!el->backend_syntax){ - wrbuf_printf(p->wr_error, - "Element : " - "attribute 'syntax' has invalid " - "value '%s'", - attr->children->content, - attr->children->content); - return -1; - } - } - else { - wrbuf_printf(p->wr_error, "Element : expected " - "attributes 'syntax' or 'name, got '%s'", - attr->name); - return -1; - } - } - - - /* parsing internal of record conv */ - el->record_conv = yaz_record_conv_create(); - - yaz_record_conv_set_path(el->record_conv, p->path); - - - if (yaz_record_conv_configure(el->record_conv, ptr)) - { - wrbuf_printf(p->wr_error, "%s", - yaz_record_conv_get_error(el->record_conv)); - yaz_record_conv_destroy(el->record_conv); - return -1; - } - } - } - - *p->list_p = el; - p->list_p = &el->next; - return 0; -} - -int yaz_retrieval_configure(yaz_retrieval_t p, const xmlNode *ptr) -{ - yaz_retrieval_reset(p); - - if (ptr && ptr->type == XML_ELEMENT_NODE && - !strcmp((const char *) ptr->name, "retrievalinfo")) - { - for (ptr = ptr->children; ptr; ptr = ptr->next) - { - if (ptr->type != XML_ELEMENT_NODE) - continue; - if (!strcmp((const char *) ptr->name, "retrieval")) - { - if (conf_retrieval(p, ptr)) - return -1; - } - else - { - wrbuf_printf(p->wr_error, "Element : " - "expected element , got <%s>", - ptr->name); - return -1; - } - } - } - else - { - wrbuf_printf(p->wr_error, "Expected element "); - return -1; - } - return 0; -} - -int yaz_retrieval_request(yaz_retrieval_t p, - const char *schema, Odr_oid *syntax, - const char **match_schema, Odr_oid **match_syntax, - yaz_record_conv_t *rc, - const char **backend_schema, - Odr_oid **backend_syntax) -{ - struct yaz_retrieval_elem *el = p->list; - int syntax_matches = 0; - int schema_matches = 0; - - wrbuf_rewind(p->wr_error); - if (!el) - return 0; - for(; el; el = el->next) - { - int schema_ok = 0; - int syntax_ok = 0; - - if (!schema) - schema_ok = 1; - else - { - if (el->name && !strcmp(schema, el->name)) - schema_ok = 1; - if (el->identifier && !strcmp(schema, el->identifier)) - schema_ok = 1; - if (!el->name && !el->identifier) - schema_ok = 1; - } - - if (syntax && el->syntax && !oid_oidcmp(syntax, el->syntax)) - syntax_ok = 1; - if (!syntax) - syntax_ok = 1; - - if (syntax_ok) - syntax_matches++; - if (schema_ok) - schema_matches++; - if (syntax_ok && schema_ok) - { - *match_syntax = el->syntax; - if (el->identifier) - *match_schema = el->identifier; - else - *match_schema = 0; - if (backend_schema) - { - if (el->backend_name) - *backend_schema = el->backend_name; - else if (el->name) - *backend_schema = el->name; - else - *backend_schema = schema; - } - if (backend_syntax) - { - if (el->backend_syntax) - *backend_syntax = el->backend_syntax; - else - *backend_syntax = el->syntax; - } - if (rc) - *rc = el->record_conv; - return 0; - } - } - if (!syntax_matches && syntax) - { - char buf[OID_STR_MAX]; - wrbuf_printf(p->wr_error, "%s", oid_oid_to_dotstring(syntax, buf)); - return 2; - } - if (schema) - wrbuf_printf(p->wr_error, "%s", schema); - if (!schema_matches) - return 1; - return 3; -} - -const char *yaz_retrieval_get_error(yaz_retrieval_t p) -{ - return wrbuf_cstr(p->wr_error); -} - -void yaz_retrieval_set_path(yaz_retrieval_t p, const char *path) -{ - xfree(p->path); - p->path = 0; - if (path) - p->path = xstrdup(path); -} - -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/service.c b/dependencies/yaz_3.0.14/src/service.c deleted file mode 100644 index 624604c..0000000 --- a/dependencies/yaz_3.0.14/src/service.c +++ /dev/null @@ -1,474 +0,0 @@ -/* - * NT Service interface Utility. - * Based on code written by - * Chas Woodfield, Fretwell Downing Informatics. - * $Id: service.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - */ - -/** - * \file service.c - * \brief Implements NT service handling for GFS. - */ - -#ifdef WIN32 - -#include -#include -#include -#include - -#include "service.h" - -static AppService *pService = NULL; -static BOOL bRunAsService = TRUE; -static void *pAppHandle = NULL; - -/* Private functions to this module */ -void Service_Create(LPTSTR pAppName, LPTSTR pServiceName, LPTSTR pServiceDisplayName, LPTSTR pDependancies, int argc, char **argv); -void Service_Delete(); -void Service_Initialize(); -BOOL NotifyServiceController(); -BOOL UpdateServiceStatus(DWORD Status); -void FailServiceStart(DWORD Win32Code, DWORD PrivateCode); -void CmdInstallService(int argc, char *argv[], BOOL bAutoStart); -void CmdRemoveService(); -LPTSTR GetLastErrorText(LPTSTR lpszBuf, DWORD dwSize); -BOOL CheckServiceArguments(int argc, char *argv[]); - -/* Callback functions for thee service manager */ -void WINAPI ServiceMain(DWORD argc, LPTSTR argv[]); -void WINAPI ServiceControlHandler(DWORD fdwControl); - -/* Function to handle Ctrl + C etc... */ -BOOL EventHandlerRoutine(DWORD dwCtrlType); - -void Service_Create(LPTSTR pAppName, LPTSTR pServiceName, LPTSTR pServiceDisplayName, LPTSTR pDependancies, int argc, char **argv) -{ - pService = malloc(sizeof(AppService)); - pService->pAppName = pAppName; - pService->pServiceName = pServiceName; - pService->pServiceDisplayName = pServiceDisplayName; - pService->pDependancies = pDependancies; - pService->hService = 0; - pService->ServiceTable[0].lpServiceName = pServiceName; - pService->ServiceTable[0].lpServiceProc = ServiceMain; - pService->ServiceTable[1].lpServiceName = NULL; - pService->ServiceTable[1].lpServiceProc = NULL; - pService->argc = argc; - pService->argv = argv; -} - -void Service_Delete() -{ - if (pService != NULL) - { - /* Mark the service as stopping */ - UpdateServiceStatus(SERVICE_STOP_PENDING); - - /* Stop the service */ - StopAppService(pAppHandle); - - /* Service has now stopped */ - UpdateServiceStatus(SERVICE_STOPPED); - - /* Free the memory */ - free(pService); - pService = NULL; - } -} - -void Service_Initialize() -{ - if (pService != NULL) - { - /* Register ourselves with the control dispatcher */ - StartServiceCtrlDispatcher(pService->ServiceTable); - } -} - -void WINAPI ServiceMain(DWORD argc, LPTSTR argv[]) -{ - if (pService != NULL) - { - if (NotifyServiceController()) - { - /* Set the status to pending */ - UpdateServiceStatus(SERVICE_START_PENDING); - - /* Lets attempt to start the service */ - if (StartAppService(pAppHandle, pService->argc, pService->argv)) - { - /* Service is now up and running */ - UpdateServiceStatus(SERVICE_RUNNING); - - /* Lets wait for our clients */ - RunAppService(pAppHandle); - } - else - { - FailServiceStart(GetLastError(), 0); - Service_Delete(); - } - } - } -} - -BOOL NotifyServiceController() -{ - if (pService == NULL) - { - return(FALSE); - } - else - { - if (bRunAsService) - { - pService->ServiceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; - pService->ServiceStatus.dwCurrentState = SERVICE_STOPPED; - pService->ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP; - pService->ServiceStatus.dwWin32ExitCode = 0; - pService->ServiceStatus.dwServiceSpecificExitCode = 0; - pService->ServiceStatus.dwCheckPoint = 0; - pService->ServiceStatus.dwWaitHint = 0; - pService->hService = RegisterServiceCtrlHandler(pService->pServiceName, ServiceControlHandler); - - if (pService->hService) - UpdateServiceStatus(SERVICE_START_PENDING); - else - return(FALSE); - } - return(TRUE); - } -} - -void WINAPI ServiceControlHandler(DWORD fdwControl) -{ - if (pService != NULL) - { - switch (fdwControl) - { - case SERVICE_CONTROL_STOP: - /* Update the service status to be pending */ - Service_Delete(); - break; - - case SERVICE_CONTROL_INTERROGATE: - UpdateServiceStatus(pService->ServiceStatus.dwCurrentState); - break; - - default: - break; - } - } -} - -BOOL UpdateServiceStatus(DWORD Status) -{ - if (pService != NULL) - { - if (pService->hService) - { - pService->ServiceStatus.dwCurrentState = Status; - if ((Status == SERVICE_START_PENDING) || (Status == SERVICE_STOP_PENDING)) - { - pService->ServiceStatus.dwCheckPoint ++; - pService->ServiceStatus.dwWaitHint = 5000; /* 5 sec.*/ - } - else - { - pService->ServiceStatus.dwCheckPoint = 0; - pService->ServiceStatus.dwWaitHint = 0; - } - - return(SetServiceStatus(pService->hService, &pService->ServiceStatus)); - } - } - - return(FALSE); -} - -void FailServiceStart(DWORD Win32Code, DWORD PrivateCode) -{ - if (pService != NULL) - { - pService->ServiceStatus.dwWin32ExitCode = Win32Code; - pService->ServiceStatus.dwServiceSpecificExitCode = PrivateCode; - UpdateServiceStatus(SERVICE_STOPPED); - } -} - -void CmdInstallService(int argc, char *argv[], BOOL bAutoStart) -{ - if (pService != NULL) - { - SC_HANDLE schService; - SC_HANDLE schSCManager; - - TCHAR szPath[2048]; - - if (GetModuleFileName(NULL, szPath, 512) == 0) - { - _tprintf(TEXT("Unable to install %s - %s\n"), TEXT(pService->pServiceDisplayName), GetLastErrorText(pService->szErr, 256)); - } - else - { - int i; - char cwdstr[_MAX_PATH]; - - if (!_getcwd(cwdstr, sizeof(cwdstr))) - strcpy (cwdstr, "."); - - strcat (szPath, TEXT(" -runservice \"")); - strcat (szPath, cwdstr); - strcat (szPath, "\""); - - for (i = 1; i < argc; i++) - { - /* We will add the given command line arguments to the command */ - /* We are not interested in the install and remove options */ - if ((strcmp("-install", argv[i]) != 0) && - (strcmp("-installa", argv[i]) != 0) && - (strcmp("-remove", argv[i]) != 0)) - { - strcat(szPath, TEXT(" ")); - strcat(szPath, argv[i]); - } - } - - schSCManager = OpenSCManager(NULL, /* machine (NULL == local) */ - NULL, /* database (NULL == default) */ - SC_MANAGER_ALL_ACCESS); /* access required */ - if (schSCManager) - { - schService = CreateService(schSCManager, /* SCManager database */ - TEXT(pService->pServiceName), /* name of service */ - TEXT(pService->pServiceDisplayName), /* name to display */ - SERVICE_ALL_ACCESS, /* desired access */ - SERVICE_WIN32_OWN_PROCESS, /* service type */ - bAutoStart ? SERVICE_AUTO_START : - SERVICE_DEMAND_START, /* start type */ - SERVICE_ERROR_NORMAL, /* error control type */ - szPath, /* service's binary */ - NULL, /* no load ordering group */ - NULL, /* no tag identifier */ - TEXT(pService->pDependancies), /* dependencies */ - NULL, /* LocalSystem account */ - NULL); /* no password */ - - if (schService) - { - _tprintf(TEXT("%s installed.\n"), TEXT(pService->pServiceDisplayName)); - CloseServiceHandle(schService); - } - else - { - _tprintf(TEXT("CreateService failed - %s\n"), GetLastErrorText(pService->szErr, 256)); - } - - CloseServiceHandle(schSCManager); - } - else - _tprintf(TEXT("OpenSCManager failed - %s\n"), GetLastErrorText(pService->szErr,256)); - } - } -} - -void CmdRemoveService() -{ - if (pService != NULL) - { - SC_HANDLE schService; - SC_HANDLE schSCManager; - - schSCManager = OpenSCManager(NULL, /* machine (NULL == local) */ - NULL, /* database (NULL == default) */ - SC_MANAGER_ALL_ACCESS); /* access required */ - if (schSCManager) - { - schService = OpenService(schSCManager, TEXT(pService->pServiceName), SERVICE_ALL_ACCESS); - - if (schService) - { - /* try to stop the service */ - if (ControlService(schService, SERVICE_CONTROL_STOP, &pService->ServiceStatus)) - { - _tprintf(TEXT("Stopping %s."), TEXT(pService->pServiceDisplayName)); - Sleep(1000); - - while (QueryServiceStatus(schService, &pService->ServiceStatus)) - { - if (pService->ServiceStatus.dwCurrentState == SERVICE_STOP_PENDING) - { - _tprintf(TEXT(".")); - Sleep( 1000 ); - } - else - break; - } - - if (pService->ServiceStatus.dwCurrentState == SERVICE_STOPPED) - _tprintf(TEXT("\n%s stopped.\n"), TEXT(pService->pServiceDisplayName)); - else - _tprintf(TEXT("\n%s failed to stop.\n"), TEXT(pService->pServiceDisplayName)); - - } - - /* now remove the service */ - if(DeleteService(schService)) - _tprintf(TEXT("%s removed.\n"), TEXT(pService->pServiceDisplayName)); - else - _tprintf(TEXT("DeleteService failed - %s\n"), GetLastErrorText(pService->szErr,256)); - - CloseServiceHandle(schService); - } - else - _tprintf(TEXT("OpenService failed - %s\n"), GetLastErrorText(pService->szErr,256)); - - CloseServiceHandle(schSCManager); - } - else - _tprintf(TEXT("OpenSCManager failed - %s\n"), GetLastErrorText(pService->szErr,256)); - } -} - -LPTSTR GetLastErrorText(LPTSTR lpszBuf, DWORD dwSize) -{ - DWORD dwRet; - LPTSTR lpszTemp = NULL; - - dwRet = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_ARGUMENT_ARRAY, - NULL, - GetLastError(), - LANG_NEUTRAL, - (LPTSTR)&lpszTemp, - 0, - NULL); - - /* supplied buffer is not long enough */ - if (!dwRet || ((long)dwSize < (long)dwRet + 14)) - lpszBuf[0] = TEXT('\0'); - else - { - lpszTemp[lstrlen(lpszTemp)-2] = TEXT('\0'); /* remove cr and newline character */ - _stprintf(lpszBuf, TEXT("%s (0x%x)"), lpszTemp, GetLastError()); - } - - if (lpszTemp) - LocalFree((HLOCAL)lpszTemp); - - return(lpszBuf); -} - -BOOL CheckServiceArguments(int argc, char *argv[]) -{ - int i; - - /* Lets process the arguments */ - for (i = 1; i < argc; i++) - { - if (stricmp("-install", argv[i]) == 0) - { - /* They want to install the service */ - CmdInstallService(argc, argv, FALSE); - - /* We don't carry on, after we have installed the service */ - return(FALSE); - } - else if (stricmp("-installa", argv[i]) == 0) - { - /* They want to install the service */ - CmdInstallService(argc, argv, TRUE); - - /* We don't carry on, after we have installed the service */ - return(FALSE); - } - else if (stricmp("-remove", argv[i]) == 0) - { - /* Here they want to remove it */ - CmdRemoveService(); - - /* We don't carry on, after we have removed the service */ - return(FALSE); - } - else if (stricmp ("-runservice", argv[i]) == 0) - { - /* We can carry on, if we reached here */ - chdir(argv[i+1]); - argv[i] = ""; - argv[i+1] = ""; - return(TRUE); - } - } - bRunAsService = FALSE; - return(TRUE); -} - -BOOL SetupService(int argc, char *argv[], void *pHandle, LPTSTR pAppName, LPTSTR pServiceName, LPTSTR pServiceDisplayName, LPTSTR pDependancies) -{ - BOOL bDeleteService = TRUE; - BOOL bResult = FALSE; - - /* Save the handle for later use */ - pAppHandle = pHandle; - - /* Create our service class */ - Service_Create(pAppName, pServiceName, pServiceDisplayName, pDependancies, argc, argv); - - if (CheckServiceArguments(argc, argv)) - { - if (bRunAsService) - { - /* No need to set the console control handler, as the service manager handles all this for us */ - Service_Initialize(); - bDeleteService = FALSE; - } - else - { - /* Set the console control handler for exiting the program */ - SetConsoleCtrlHandler((PHANDLER_ROUTINE)EventHandlerRoutine, TRUE); - - /* Now do the main work */ - ServiceMain(argc, argv); - } - - /* We have been successful initializing, so let the caller know */ - bResult = TRUE; - } - - if (bDeleteService) - { - /* Finished with the service now */ - Service_Delete(); - } - return(bResult); -} - -BOOL EventHandlerRoutine(DWORD dwCtrlType) -{ - /* This routine dosn't seem to get called all the time, Why ??? */ - switch (dwCtrlType) - { - case CTRL_C_EVENT: /* A CTRL+C signal was received, either from keyboard input or from a signal generated by the GenerateConsoleCtrlEvent function.*/ - case CTRL_BREAK_EVENT: /* A CTRL+BREAK signal was received, either from keyboard input or from a signal generated by GenerateConsoleCtrlEvent.*/ - case CTRL_CLOSE_EVENT: /* A signal that the system sends to all processes attached to a console when the user closes the console (either by choosing the Close command from the console window's System menu, or by choosing the End Task command from the Task List).*/ - case CTRL_LOGOFF_EVENT: /* A signal that the system sends to all console processes when a user is logging off. This signal does not indicate which user is logging off, so no assumptions can be made.*/ - case CTRL_SHUTDOWN_EVENT: /* A signal that the system sends to all console processes when the system */ - /* We are basically shutting down, so call Service_Delete */ - Service_Delete(); - return(FALSE); - break; - - default: - /* we are not handling this one, so return FALSE */ - return(FALSE); - } -} -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/service.h b/dependencies/yaz_3.0.14/src/service.h deleted file mode 100644 index 656f1af..0000000 --- a/dependencies/yaz_3.0.14/src/service.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * NT Service interface Utility. - * Based on code written by - * Chas Woodfield, Fretwell Downing Datasystems. - * $Id: service.h,v 1.3 2005/06/25 15:46:05 adam Exp $ - */ -/** - * \file service.h - * \brief Header for NT service handling. - */ - -#ifndef SERVICE_INCLUDED -#define SERVICE_INCLUDED - -#ifdef WIN32 - -#include - -typedef struct _Service -{ - LPTSTR pAppName; - LPTSTR pServiceName; - LPTSTR pServiceDisplayName; - LPTSTR pDependancies; - TCHAR szErr[256]; - SERVICE_STATUS_HANDLE hService; - SERVICE_STATUS ServiceStatus; - SERVICE_TABLE_ENTRY ServiceTable[2]; - int argc; - char **argv; -} AppService; - -/* Called by the app to initialize the service */ -BOOL SetupService(int argc, char *argv[], void *pHandle, LPTSTR pAppName, LPTSTR pServiceName, LPTSTR pServiceDisplayName, LPTSTR pDependancies); - -#endif /* WIN32 */ - -/* Functions that must be in the main application */ -/* Initializes the app */ -int StartAppService(void *pHandle, int argc, char **argv); - -/* Now we wait for any connections */ -void RunAppService(void *pHandle); - -/* Time to tidyup and stop the service */ -void StopAppService(void *pHandle); - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/seshigh.c b/dependencies/yaz_3.0.14/src/seshigh.c deleted file mode 100644 index cbed634..0000000 --- a/dependencies/yaz_3.0.14/src/seshigh.c +++ /dev/null @@ -1,3569 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: seshigh.c,v 1.128 2007/09/11 08:37:53 adam Exp $ - */ -/** - * \file seshigh.c - * \brief Implements GFS session logic. - * - * Frontend server logic. - * - * This code receives incoming APDUs, and handles client requests by means - * of the backend API. - * - * Some of the code is getting quite involved, compared to simpler servers - - * primarily because it is asynchronous both in the communication with - * the user and the backend. We think the complexity will pay off in - * the form of greater flexibility when more asynchronous facilities - * are implemented. - * - * Memory management has become somewhat involved. In the simple case, where - * only one PDU is pending at a time, it will simply reuse the same memory, - * once it has found its working size. When we enable multiple concurrent - * operations, perhaps even with multiple parallel calls to the backend, it - * will maintain a pool of buffers for encoding and decoding, trying to - * minimize memory allocation/deallocation during normal operation. - * - */ - -#include -#include -#include -#include - -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_STAT_H -#include -#endif - -#ifdef WIN32 -#include -#define S_ISREG(x) (x & _S_IFREG) -#include -#endif - -#if HAVE_UNISTD_H -#include -#endif - -#if YAZ_HAVE_XML2 -#include -#include -#endif - -#include -#include -#include -#include "eventl.h" -#include "session.h" -#include "mime.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -static void process_gdu_request(association *assoc, request *req); -static int process_z_request(association *assoc, request *req, char **msg); -void backend_response(IOCHAN i, int event); -static int process_gdu_response(association *assoc, request *req, Z_GDU *res); -static int process_z_response(association *assoc, request *req, Z_APDU *res); -static Z_APDU *process_initRequest(association *assoc, request *reqb); -static Z_External *init_diagnostics(ODR odr, int errcode, - const char *errstring); -static Z_APDU *process_searchRequest(association *assoc, request *reqb, - int *fd); -static Z_APDU *response_searchRequest(association *assoc, request *reqb, - bend_search_rr *bsrr, int *fd); -static Z_APDU *process_presentRequest(association *assoc, request *reqb, - int *fd); -static Z_APDU *process_scanRequest(association *assoc, request *reqb, int *fd); -static Z_APDU *process_sortRequest(association *assoc, request *reqb, int *fd); -static void process_close(association *assoc, request *reqb); -void save_referenceId (request *reqb, Z_ReferenceId *refid); -static Z_APDU *process_deleteRequest(association *assoc, request *reqb, - int *fd); -static Z_APDU *process_segmentRequest (association *assoc, request *reqb); - -static Z_APDU *process_ESRequest(association *assoc, request *reqb, int *fd); - -/* dynamic logging levels */ -static int logbits_set = 0; -static int log_session = 0; /* one-line logs for session */ -static int log_sessiondetail = 0; /* more detailed stuff */ -static int log_request = 0; /* one-line logs for requests */ -static int log_requestdetail = 0; /* more detailed stuff */ - -/** get_logbits sets global loglevel bits */ -static void get_logbits(void) -{ /* needs to be called after parsing cmd-line args that can set loglevels!*/ - if (!logbits_set) - { - logbits_set = 1; - log_session = yaz_log_module_level("session"); - log_sessiondetail = yaz_log_module_level("sessiondetail"); - log_request = yaz_log_module_level("request"); - log_requestdetail = yaz_log_module_level("requestdetail"); - } -} - - - -static void wr_diag(WRBUF w, int error, const char *addinfo) -{ - wrbuf_printf(w, "ERROR %d+", error); - wrbuf_puts_replace_char(w, diagbib1_str(error), ' ', '_'); - if (addinfo){ - wrbuf_puts(w, "+"); - wrbuf_puts_replace_char(w, addinfo, ' ', '_'); - } - - wrbuf_puts(w, " "); -} - - -/* - * Create and initialize a new association-handle. - * channel : iochannel for the current line. - * link : communications channel. - * Returns: 0 or a new association handle. - */ -association *create_association(IOCHAN channel, COMSTACK link, - const char *apdufile) -{ - association *anew; - - if (!logbits_set) - get_logbits(); - if (!(anew = (association *)xmalloc(sizeof(*anew)))) - return 0; - anew->init = 0; - anew->version = 0; - anew->last_control = 0; - anew->client_chan = channel; - anew->client_link = link; - anew->cs_get_mask = 0; - anew->cs_put_mask = 0; - anew->cs_accept_mask = 0; - if (!(anew->decode = odr_createmem(ODR_DECODE)) || - !(anew->encode = odr_createmem(ODR_ENCODE))) - return 0; - if (apdufile && *apdufile) - { - FILE *f; - - if (!(anew->print = odr_createmem(ODR_PRINT))) - return 0; - if (*apdufile == '@') - { - odr_setprint(anew->print, yaz_log_file()); - } - else if (*apdufile != '-') - { - char filename[256]; - sprintf(filename, "%.200s.%ld", apdufile, (long)getpid()); - if (!(f = fopen(filename, "w"))) - { - yaz_log(YLOG_WARN|YLOG_ERRNO, "%s", filename); - return 0; - } - setvbuf(f, 0, _IONBF, 0); - odr_setprint(anew->print, f); - } - } - else - anew->print = 0; - anew->input_buffer = 0; - anew->input_buffer_len = 0; - anew->backend = 0; - anew->state = ASSOC_NEW; - request_initq(&anew->incoming); - request_initq(&anew->outgoing); - anew->proto = cs_getproto(link); - anew->server = 0; - return anew; -} - -/* - * Free association and release resources. - */ -void destroy_association(association *h) -{ - statserv_options_block *cb = statserv_getcontrol(); - request *req; - - xfree(h->init); - odr_destroy(h->decode); - odr_destroy(h->encode); - if (h->print) - odr_destroy(h->print); - if (h->input_buffer) - xfree(h->input_buffer); - if (h->backend) - (*cb->bend_close)(h->backend); - while ((req = request_deq(&h->incoming))) - request_release(req); - while ((req = request_deq(&h->outgoing))) - request_release(req); - request_delq(&h->incoming); - request_delq(&h->outgoing); - xfree(h); - xmalloc_trav("session closed"); - if (cb && cb->one_shot) - { - exit (0); - } -} - -static void do_close_req(association *a, int reason, char *message, - request *req) -{ - Z_APDU apdu; - Z_Close *cls = zget_Close(a->encode); - - /* Purge request queue */ - while (request_deq(&a->incoming)); - while (request_deq(&a->outgoing)); - if (a->version >= 3) - { - yaz_log(log_requestdetail, "Sending Close PDU, reason=%d, message=%s", - reason, message ? message : "none"); - apdu.which = Z_APDU_close; - apdu.u.close = cls; - *cls->closeReason = reason; - cls->diagnosticInformation = message; - process_z_response(a, req, &apdu); - iochan_settimeout(a->client_chan, 20); - } - else - { - request_release(req); - yaz_log(log_requestdetail, "v2 client. No Close PDU"); - iochan_setevent(a->client_chan, EVENT_TIMEOUT); /* force imm close */ - a->cs_put_mask = 0; - } - a->state = ASSOC_DEAD; -} - -static void do_close(association *a, int reason, char *message) -{ - request *req = request_get(&a->outgoing); - do_close_req (a, reason, message, req); -} - - -int ir_read(IOCHAN h, int event) -{ - association *assoc = (association *)iochan_getdata(h); - COMSTACK conn = assoc->client_link; - request *req; - - if ((assoc->cs_put_mask & EVENT_INPUT) == 0 && (event & assoc->cs_get_mask)) - { - yaz_log(YLOG_DEBUG, "ir_session (input)"); - /* We aren't speaking to this fellow */ - if (assoc->state == ASSOC_DEAD) - { - yaz_log(log_sessiondetail, "Connection closed - end of session"); - cs_close(conn); - destroy_association(assoc); - iochan_destroy(h); - return 0; - } - assoc->cs_get_mask = EVENT_INPUT; - - do - { - int res = cs_get(conn, &assoc->input_buffer, - &assoc->input_buffer_len); - if (res < 0 && cs_errno(conn) == CSBUFSIZE) - { - yaz_log(log_session, "Connection error: %s res=%d", - cs_errmsg(cs_errno(conn)), res); - req = request_get(&assoc->incoming); /* get a new request */ - do_close_req(assoc, Z_Close_protocolError, - "Incoming package too large", req); - return 0; - } - else if (res <= 0) - { - yaz_log(log_session, "Connection closed by client"); - assoc->state = ASSOC_DEAD; - return 0; - } - else if (res == 1) /* incomplete read - wait for more */ - { - if (conn->io_pending & CS_WANT_WRITE) - assoc->cs_get_mask |= EVENT_OUTPUT; - iochan_setflag(h, assoc->cs_get_mask); - return 0; - } - /* we got a complete PDU. Let's decode it */ - yaz_log(YLOG_DEBUG, "Got PDU, %d bytes: lead=%02X %02X %02X", res, - assoc->input_buffer[0] & 0xff, - assoc->input_buffer[1] & 0xff, - assoc->input_buffer[2] & 0xff); - req = request_get(&assoc->incoming); /* get a new request */ - odr_reset(assoc->decode); - odr_setbuf(assoc->decode, assoc->input_buffer, res, 0); - if (!z_GDU(assoc->decode, &req->gdu_request, 0, 0)) - { - yaz_log(YLOG_WARN, "ODR error on incoming PDU: %s [element %s] " - "[near byte %ld] ", - odr_errmsg(odr_geterror(assoc->decode)), - odr_getelement(assoc->decode), - (long) odr_offset(assoc->decode)); - if (assoc->decode->error != OHTTP) - { - yaz_log(YLOG_WARN, "PDU dump:"); - odr_dumpBER(yaz_log_file(), assoc->input_buffer, res); - request_release(req); - do_close(assoc, Z_Close_protocolError, "Malformed package"); - } - else - { - Z_GDU *p = z_get_HTTP_Response(assoc->encode, 400); - assoc->state = ASSOC_DEAD; - process_gdu_response(assoc, req, p); - } - return 0; - } - req->request_mem = odr_extract_mem(assoc->decode); - if (assoc->print) - { - if (!z_GDU(assoc->print, &req->gdu_request, 0, 0)) - yaz_log(YLOG_WARN, "ODR print error: %s", - odr_errmsg(odr_geterror(assoc->print))); - odr_reset(assoc->print); - } - request_enq(&assoc->incoming, req); - } - while (cs_more(conn)); - } - return 1; -} - -/* - * This is where PDUs from the client are read and the further - * processing is initiated. Flow of control moves down through the - * various process_* functions below, until the encoded result comes back up - * to the output handler in here. - * - * h : the I/O channel that has an outstanding event. - * event : the current outstanding event. - */ -void ir_session(IOCHAN h, int event) -{ - int res; - association *assoc = (association *)iochan_getdata(h); - COMSTACK conn = assoc->client_link; - request *req; - - assert(h && conn && assoc); - if (event == EVENT_TIMEOUT) - { - if (assoc->state != ASSOC_UP) - { - yaz_log(YLOG_DEBUG, "Final timeout - closing connection."); - /* do we need to lod this at all */ - cs_close(conn); - destroy_association(assoc); - iochan_destroy(h); - } - else - { - yaz_log(log_sessiondetail, - "Session idle too long. Sending close."); - do_close(assoc, Z_Close_lackOfActivity, 0); - } - return; - } - if (event & assoc->cs_accept_mask) - { - if (!cs_accept (conn)) - { - yaz_log (YLOG_WARN, "accept failed"); - destroy_association(assoc); - iochan_destroy(h); - } - iochan_clearflag (h, EVENT_OUTPUT); - if (conn->io_pending) - { /* cs_accept didn't complete */ - assoc->cs_accept_mask = - ((conn->io_pending & CS_WANT_WRITE) ? EVENT_OUTPUT : 0) | - ((conn->io_pending & CS_WANT_READ) ? EVENT_INPUT : 0); - - iochan_setflag (h, assoc->cs_accept_mask); - } - else - { /* cs_accept completed. Prepare for reading (cs_get) */ - assoc->cs_accept_mask = 0; - assoc->cs_get_mask = EVENT_INPUT; - iochan_setflag (h, assoc->cs_get_mask); - } - return; - } - if (event & assoc->cs_get_mask) /* input */ - { - if (!ir_read(h, event)) - return; - req = request_head(&assoc->incoming); - if (req->state == REQUEST_IDLE) - { - request_deq(&assoc->incoming); - process_gdu_request(assoc, req); - } - } - if (event & assoc->cs_put_mask) - { - request *req = request_head(&assoc->outgoing); - - assoc->cs_put_mask = 0; - yaz_log(YLOG_DEBUG, "ir_session (output)"); - req->state = REQUEST_PENDING; - switch (res = cs_put(conn, req->response, req->len_response)) - { - case -1: - yaz_log(log_sessiondetail, "Connection closed by client"); - cs_close(conn); - destroy_association(assoc); - iochan_destroy(h); - break; - case 0: /* all sent - release the request structure */ - yaz_log(YLOG_DEBUG, "Wrote PDU, %d bytes", req->len_response); -#if 0 - yaz_log(YLOG_DEBUG, "HTTP out:\n%.*s", req->len_response, - req->response); -#endif - nmem_destroy(req->request_mem); - request_deq(&assoc->outgoing); - request_release(req); - if (!request_head(&assoc->outgoing)) - { /* restore mask for cs_get operation ... */ - iochan_clearflag(h, EVENT_OUTPUT|EVENT_INPUT); - iochan_setflag(h, assoc->cs_get_mask); - if (assoc->state == ASSOC_DEAD) - iochan_setevent(assoc->client_chan, EVENT_TIMEOUT); - } - else - { - assoc->cs_put_mask = EVENT_OUTPUT; - } - break; - default: - if (conn->io_pending & CS_WANT_WRITE) - assoc->cs_put_mask |= EVENT_OUTPUT; - if (conn->io_pending & CS_WANT_READ) - assoc->cs_put_mask |= EVENT_INPUT; - iochan_setflag(h, assoc->cs_put_mask); - } - } - if (event & EVENT_EXCEPT) - { - yaz_log(YLOG_WARN, "ir_session (exception)"); - cs_close(conn); - destroy_association(assoc); - iochan_destroy(h); - } -} - -static int process_z_request(association *assoc, request *req, char **msg); - - -static void assoc_init_reset(association *assoc) -{ - xfree (assoc->init); - assoc->init = (bend_initrequest *) xmalloc (sizeof(*assoc->init)); - - assoc->init->stream = assoc->encode; - assoc->init->print = assoc->print; - assoc->init->auth = 0; - assoc->init->referenceId = 0; - assoc->init->implementation_version = 0; - assoc->init->implementation_id = 0; - assoc->init->implementation_name = 0; - assoc->init->query_charset = 0; - assoc->init->records_in_same_charset = 0; - assoc->init->bend_sort = NULL; - assoc->init->bend_search = NULL; - assoc->init->bend_present = NULL; - assoc->init->bend_esrequest = NULL; - assoc->init->bend_delete = NULL; - assoc->init->bend_scan = NULL; - assoc->init->bend_segment = NULL; - assoc->init->bend_fetch = NULL; - assoc->init->bend_explain = NULL; - assoc->init->bend_srw_scan = NULL; - assoc->init->bend_srw_update = NULL; - - assoc->init->charneg_request = NULL; - assoc->init->charneg_response = NULL; - - assoc->init->decode = assoc->decode; - assoc->init->peer_name = - odr_strdup (assoc->encode, cs_addrstr(assoc->client_link)); - - yaz_log(log_requestdetail, "peer %s", assoc->init->peer_name); -} - -static int srw_bend_init(association *assoc, Z_SRW_diagnostic **d, int *num, Z_SRW_PDU *sr) -{ - statserv_options_block *cb = statserv_getcontrol(); - if (!assoc->init) - { - const char *encoding = "UTF-8"; - Z_External *ce; - bend_initresult *binitres; - - yaz_log(log_requestdetail, "srw_bend_init config=%s", cb->configname); - assoc_init_reset(assoc); - - if (sr->username) - { - Z_IdAuthentication *auth = (Z_IdAuthentication *) - odr_malloc(assoc->decode, sizeof(*auth)); - int len; - - len = strlen(sr->username) + 1; - if (sr->password) - len += strlen(sr->password) + 2; - auth->which = Z_IdAuthentication_open; - auth->u.open = (char *) odr_malloc(assoc->decode, len); - strcpy(auth->u.open, sr->username); - if (sr->password && *sr->password) - { - strcat(auth->u.open, "/"); - strcat(auth->u.open, sr->password); - } - assoc->init->auth = auth; - } - -#if 1 - ce = yaz_set_proposal_charneg(assoc->decode, &encoding, 1, 0, 0, 1); - assoc->init->charneg_request = ce->u.charNeg3; -#endif - assoc->backend = 0; - if (!(binitres = (*cb->bend_init)(assoc->init))) - { - assoc->state = ASSOC_DEAD; - yaz_add_srw_diagnostic(assoc->encode, d, num, - YAZ_SRW_AUTHENTICATION_ERROR, 0); - return 0; - } - assoc->backend = binitres->handle; - assoc->init->auth = 0; - if (binitres->errcode) - { - int srw_code = yaz_diag_bib1_to_srw(binitres->errcode); - assoc->state = ASSOC_DEAD; - yaz_add_srw_diagnostic(assoc->encode, d, num, srw_code, - binitres->errstring); - return 0; - } - return 1; - } - return 1; -} - -static int retrieve_fetch(association *assoc, bend_fetch_rr *rr) -{ -#if YAZ_HAVE_XML2 - yaz_record_conv_t rc = 0; - const char *match_schema = 0; - Odr_oid *match_syntax = 0; - - if (assoc->server) - { - int r; - const char *input_schema = yaz_get_esn(rr->comp); - Odr_oid *input_syntax_raw = rr->request_format; - - const char *backend_schema = 0; - Odr_oid *backend_syntax = 0; - - r = yaz_retrieval_request(assoc->server->retrieval, - input_schema, - input_syntax_raw, - &match_schema, - &match_syntax, - &rc, - &backend_schema, - &backend_syntax); - if (r == -1) /* error ? */ - { - const char *details = yaz_retrieval_get_error( - assoc->server->retrieval); - - rr->errcode = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS; - if (details) - rr->errstring = odr_strdup(rr->stream, details); - return -1; - } - else if (r == 1 || r == 3) - { - const char *details = input_schema; - rr->errcode = - YAZ_BIB1_SPECIFIED_ELEMENT_SET_NAME_NOT_VALID_FOR_SPECIFIED_; - if (details) - rr->errstring = odr_strdup(rr->stream, details); - return -1; - } - else if (r == 2) - { - rr->errcode = YAZ_BIB1_RECORD_SYNTAX_UNSUPP; - if (input_syntax_raw) - { - char oidbuf[OID_STR_MAX]; - oid_oid_to_dotstring(input_syntax_raw, oidbuf); - rr->errstring = odr_strdup(rr->stream, oidbuf); - } - return -1; - } - if (backend_schema) - { - yaz_set_esn(&rr->comp, backend_schema, odr_getmem(rr->stream)); - } - if (backend_syntax) - rr->request_format = backend_syntax; - } - (*assoc->init->bend_fetch)(assoc->backend, rr); - if (rc && rr->record && rr->errcode == 0 && rr->len > 0) - { /* post conversion must take place .. */ - WRBUF output_record = wrbuf_alloc(); - int r = yaz_record_conv_record(rc, rr->record, rr->len, output_record); - if (r) - { - const char *details = yaz_record_conv_get_error(rc); - rr->errcode = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS; - if (details) - rr->errstring = odr_strdup(rr->stream, details); - } - else - { - rr->len = wrbuf_len(output_record); - rr->record = (char *) odr_malloc(rr->stream, rr->len); - memcpy(rr->record, wrbuf_buf(output_record), rr->len); - } - wrbuf_destroy(output_record); - } - if (match_syntax) - rr->output_format = match_syntax; - if (match_schema) - rr->schema = odr_strdup(rr->stream, match_schema); - return 0; -#else - (*assoc->init->bend_fetch)(assoc->backend, rr); -#endif - return 0; -} - -static int srw_bend_fetch(association *assoc, int pos, - Z_SRW_searchRetrieveRequest *srw_req, - Z_SRW_record *record, - const char **addinfo) -{ - bend_fetch_rr rr; - ODR o = assoc->encode; - - rr.setname = "default"; - rr.number = pos; - rr.referenceId = 0; - rr.request_format = odr_oiddup(assoc->decode, yaz_oid_recsyn_xml); - - rr.comp = (Z_RecordComposition *) - odr_malloc(assoc->decode, sizeof(*rr.comp)); - rr.comp->which = Z_RecordComp_complex; - rr.comp->u.complex = (Z_CompSpec *) - odr_malloc(assoc->decode, sizeof(Z_CompSpec)); - rr.comp->u.complex->selectAlternativeSyntax = (bool_t *) - odr_malloc(assoc->encode, sizeof(bool_t)); - *rr.comp->u.complex->selectAlternativeSyntax = 0; - rr.comp->u.complex->num_dbSpecific = 0; - rr.comp->u.complex->dbSpecific = 0; - rr.comp->u.complex->num_recordSyntax = 0; - rr.comp->u.complex->recordSyntax = 0; - - rr.comp->u.complex->generic = (Z_Specification *) - odr_malloc(assoc->decode, sizeof(Z_Specification)); - - /* schema uri = recordSchema (or NULL if recordSchema is not given) */ - rr.comp->u.complex->generic->which = Z_Schema_uri; - rr.comp->u.complex->generic->schema.uri = srw_req->recordSchema; - - /* ESN = recordSchema if recordSchema is present */ - rr.comp->u.complex->generic->elementSpec = 0; - if (srw_req->recordSchema) - { - rr.comp->u.complex->generic->elementSpec = - (Z_ElementSpec *) odr_malloc(assoc->encode, sizeof(Z_ElementSpec)); - rr.comp->u.complex->generic->elementSpec->which = - Z_ElementSpec_elementSetName; - rr.comp->u.complex->generic->elementSpec->u.elementSetName = - srw_req->recordSchema; - } - - rr.stream = assoc->encode; - rr.print = assoc->print; - - rr.basename = 0; - rr.len = 0; - rr.record = 0; - rr.last_in_set = 0; - rr.errcode = 0; - rr.errstring = 0; - rr.surrogate_flag = 0; - rr.schema = srw_req->recordSchema; - - if (!assoc->init->bend_fetch) - return 1; - - retrieve_fetch(assoc, &rr); - - if (rr.errcode && rr.surrogate_flag) - { - int code = yaz_diag_bib1_to_srw(rr.errcode); - const char *message = yaz_diag_srw_str(code); - int len = 200; - if (message) - len += strlen(message); - if (rr.errstring) - len += strlen(rr.errstring); - - record->recordData_buf = (char *) odr_malloc(o, len); - - sprintf(record->recordData_buf, "\n" - " info:srw/diagnostic/1/%d\n", code); - if (rr.errstring) - sprintf(record->recordData_buf + strlen(record->recordData_buf), - "
    %s
    \n", rr.errstring); - if (message) - sprintf(record->recordData_buf + strlen(record->recordData_buf), - " %s\n", message); - sprintf(record->recordData_buf + strlen(record->recordData_buf), - "
    \n"); - record->recordData_len = strlen(record->recordData_buf); - record->recordPosition = odr_intdup(o, pos); - record->recordSchema = "info:srw/schema/1/diagnostics-v1.1"; - return 0; - } - else if (rr.len >= 0) - { - record->recordData_buf = rr.record; - record->recordData_len = rr.len; - record->recordPosition = odr_intdup(o, pos); - record->recordSchema = odr_strdup_null(o, rr.schema); - } - if (rr.errcode) - { - *addinfo = rr.errstring; - return rr.errcode; - } - return 0; -} - -static int cql2pqf(ODR odr, const char *cql, cql_transform_t ct, - Z_Query *query_result) -{ - /* have a CQL query and CQL to PQF transform .. */ - CQL_parser cp = cql_parser_create(); - int r; - int srw_errcode = 0; - const char *add = 0; - char rpn_buf[5120]; - - r = cql_parser_string(cp, cql); - if (r) - { - /* CQL syntax error */ - srw_errcode = 10; - } - if (!r) - { - /* Syntax OK */ - r = cql_transform_buf(ct, - cql_parser_result(cp), - rpn_buf, sizeof(rpn_buf)-1); - if (r) - srw_errcode = cql_transform_error(ct, &add); - } - if (!r) - { - /* Syntax & transform OK. */ - /* Convert PQF string to Z39.50 to RPN query struct */ - YAZ_PQF_Parser pp = yaz_pqf_create(); - Z_RPNQuery *rpnquery = yaz_pqf_parse(pp, odr, rpn_buf); - if (!rpnquery) - { - size_t off; - const char *pqf_msg; - int code = yaz_pqf_error(pp, &pqf_msg, &off); - yaz_log(YLOG_WARN, "PQF Parser Error %s (code %d)", - pqf_msg, code); - srw_errcode = 10; - } - else - { - query_result->which = Z_Query_type_1; - query_result->u.type_1 = rpnquery; - } - yaz_pqf_destroy(pp); - } - cql_parser_destroy(cp); - return srw_errcode; -} - -static int cql2pqf_scan(ODR odr, const char *cql, cql_transform_t ct, - Z_AttributesPlusTerm *result) -{ - Z_Query query; - Z_RPNQuery *rpn; - int srw_error = cql2pqf(odr, cql, ct, &query); - if (srw_error) - return srw_error; - if (query.which != Z_Query_type_1 && query.which != Z_Query_type_101) - return 10; /* bad query type */ - rpn = query.u.type_1; - if (!rpn->RPNStructure) - return 10; /* must be structure */ - if (rpn->RPNStructure->which != Z_RPNStructure_simple) - return 10; /* must be simple */ - if (rpn->RPNStructure->u.simple->which != Z_Operand_APT) - return 10; /* must be attributes plus term node .. */ - memcpy(result, rpn->RPNStructure->u.simple->u.attributesPlusTerm, - sizeof(*result)); - return 0; -} - - -static int ccl2pqf(ODR odr, const Odr_oct *ccl, CCL_bibset bibset, - bend_search_rr *bsrr) { - char *ccl0; - struct ccl_rpn_node *node; - int errcode, pos; - - ccl0 = odr_strdupn(odr, (char*) ccl->buf, ccl->len); - if ((node = ccl_find_str(bibset, ccl0, &errcode, &pos)) == 0) { - bsrr->errstring = (char*) ccl_err_msg(errcode); - return 10; /* Query syntax error */ - } - - bsrr->query->which = Z_Query_type_1; - bsrr->query->u.type_1 = ccl_rpn_query(odr, node); - return 0; -} - - -static void srw_bend_search(association *assoc, request *req, - Z_SRW_PDU *sr, - Z_SRW_searchRetrieveResponse *srw_res, - int *http_code) -{ - int srw_error = 0; - Z_External *ext; - Z_SRW_searchRetrieveRequest *srw_req = sr->u.request; - - *http_code = 200; - yaz_log(log_requestdetail, "Got SRW SearchRetrieveRequest"); - srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics, sr); - if (srw_res->num_diagnostics == 0 && assoc->init) - { - bend_search_rr rr; - rr.setname = "default"; - rr.replace_set = 1; - rr.num_bases = 1; - rr.basenames = &srw_req->database; - rr.referenceId = 0; - rr.srw_sortKeys = 0; - rr.srw_setname = 0; - rr.srw_setnameIdleTime = 0; - rr.estimated_hit_count = 0; - rr.partial_resultset = 0; - rr.query = (Z_Query *) odr_malloc (assoc->decode, sizeof(*rr.query)); - rr.query->u.type_1 = 0; - - if (srw_req->query_type == Z_SRW_query_type_cql) - { - if (assoc->server && assoc->server->cql_transform) - { - int srw_errcode = cql2pqf(assoc->encode, srw_req->query.cql, - assoc->server->cql_transform, - rr.query); - if (srw_errcode) - { - yaz_add_srw_diagnostic(assoc->encode, - &srw_res->diagnostics, - &srw_res->num_diagnostics, - srw_errcode, 0); - } - } - else - { - /* CQL query to backend. Wrap it - Z39.50 style */ - ext = (Z_External *) odr_malloc(assoc->decode, sizeof(*ext)); - ext->direct_reference = odr_getoidbystr(assoc->decode, - "1.2.840.10003.16.2"); - ext->indirect_reference = 0; - ext->descriptor = 0; - ext->which = Z_External_CQL; - ext->u.cql = srw_req->query.cql; - - rr.query->which = Z_Query_type_104; - rr.query->u.type_104 = ext; - } - } - else if (srw_req->query_type == Z_SRW_query_type_pqf) - { - Z_RPNQuery *RPNquery; - YAZ_PQF_Parser pqf_parser; - - pqf_parser = yaz_pqf_create (); - - RPNquery = yaz_pqf_parse (pqf_parser, assoc->decode, - srw_req->query.pqf); - if (!RPNquery) - { - const char *pqf_msg; - size_t off; - int code = yaz_pqf_error (pqf_parser, &pqf_msg, &off); - yaz_log(log_requestdetail, "Parse error %d %s near offset %ld", - code, pqf_msg, (long) off); - srw_error = YAZ_SRW_QUERY_SYNTAX_ERROR; - } - - rr.query->which = Z_Query_type_1; - rr.query->u.type_1 = RPNquery; - - yaz_pqf_destroy (pqf_parser); - } - else - { - yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRW_UNSUPP_QUERY_TYPE, 0); - } - if (rr.query->u.type_1) - { - rr.stream = assoc->encode; - rr.decode = assoc->decode; - rr.print = assoc->print; - rr.request = req; - if ( srw_req->sort.sortKeys ) - rr.srw_sortKeys = odr_strdup(assoc->encode, - srw_req->sort.sortKeys ); - rr.association = assoc; - rr.fd = 0; - rr.hits = 0; - rr.errcode = 0; - rr.errstring = 0; - rr.search_info = 0; - yaz_log_zquery_level(log_requestdetail,rr.query); - - (assoc->init->bend_search)(assoc->backend, &rr); - if (rr.errcode) - { - if (rr.errcode == YAZ_BIB1_DATABASE_UNAVAILABLE) - { - *http_code = 404; - } - else - { - srw_error = yaz_diag_bib1_to_srw (rr.errcode); - yaz_add_srw_diagnostic(assoc->encode, - &srw_res->diagnostics, - &srw_res->num_diagnostics, - srw_error, rr.errstring); - } - } - else - { - int number = srw_req->maximumRecords ? *srw_req->maximumRecords : 0; - int start = srw_req->startRecord ? *srw_req->startRecord : 1; - - yaz_log(log_requestdetail, "Request to pack %d+%d out of %d", - start, number, rr.hits); - - srw_res->numberOfRecords = odr_intdup(assoc->encode, rr.hits); - if (rr.srw_setname) - { - srw_res->resultSetId = - odr_strdup(assoc->encode, rr.srw_setname ); - srw_res->resultSetIdleTime = - odr_intdup(assoc->encode, *rr.srw_setnameIdleTime ); - } - - if (start > rr.hits || start < 1) - { - /* if hits<=0 and start=1 we don't return a diagnostic */ - if (start != 1) - yaz_add_srw_diagnostic( - assoc->encode, - &srw_res->diagnostics, &srw_res->num_diagnostics, - YAZ_SRW_FIRST_RECORD_POSITION_OUT_OF_RANGE, 0); - } - else if (number > 0) - { - int i; - int ok = 1; - if (start + number > rr.hits) - number = rr.hits - start + 1; - - /* Call bend_present if defined */ - if (assoc->init->bend_present) - { - bend_present_rr *bprr = (bend_present_rr*) - odr_malloc (assoc->decode, sizeof(*bprr)); - bprr->setname = "default"; - bprr->start = start; - bprr->number = number; - if (srw_req->recordSchema) - { - bprr->comp = (Z_RecordComposition *) odr_malloc(assoc->decode, - sizeof(*bprr->comp)); - bprr->comp->which = Z_RecordComp_simple; - bprr->comp->u.simple = (Z_ElementSetNames *) - odr_malloc(assoc->decode, sizeof(Z_ElementSetNames)); - bprr->comp->u.simple->which = Z_ElementSetNames_generic; - bprr->comp->u.simple->u.generic = srw_req->recordSchema; - } - else - { - bprr->comp = 0; - } - bprr->stream = assoc->encode; - bprr->referenceId = 0; - bprr->print = assoc->print; - bprr->request = req; - bprr->association = assoc; - bprr->errcode = 0; - bprr->errstring = NULL; - (*assoc->init->bend_present)(assoc->backend, bprr); - - if (!bprr->request) - return; - if (bprr->errcode) - { - srw_error = yaz_diag_bib1_to_srw (bprr->errcode); - yaz_add_srw_diagnostic(assoc->encode, - &srw_res->diagnostics, - &srw_res->num_diagnostics, - srw_error, bprr->errstring); - ok = 0; - } - } - - if (ok) - { - int j = 0; - int packing = Z_SRW_recordPacking_string; - if (srw_req->recordPacking) - { - packing = - yaz_srw_str_to_pack(srw_req->recordPacking); - if (packing == -1) - packing = Z_SRW_recordPacking_string; - } - srw_res->records = (Z_SRW_record *) - odr_malloc(assoc->encode, - number * sizeof(*srw_res->records)); - - srw_res->extra_records = (Z_SRW_extra_record **) - odr_malloc(assoc->encode, - number*sizeof(*srw_res->extra_records)); - - for (i = 0; irecords[j].recordPacking = packing; - srw_res->records[j].recordData_buf = 0; - srw_res->extra_records[j] = 0; - yaz_log(YLOG_DEBUG, "srw_bend_fetch %d", i+start); - errcode = srw_bend_fetch(assoc, i+start, srw_req, - srw_res->records + j, - &addinfo); - if (errcode) - { - yaz_add_srw_diagnostic(assoc->encode, - &srw_res->diagnostics, - &srw_res->num_diagnostics, - yaz_diag_bib1_to_srw (errcode), - addinfo); - - break; - } - if (srw_res->records[j].recordData_buf) - j++; - } - srw_res->num_records = j; - if (!j) - srw_res->records = 0; - } - } - if (rr.estimated_hit_count || rr.partial_resultset) - { - yaz_add_srw_diagnostic( - assoc->encode, - &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRW_RESULT_SET_CREATED_WITH_VALID_PARTIAL_RESULTS_AVAILABLE, - 0); - } - } - } - } - if (log_request) - { - const char *querystr = "?"; - const char *querytype = "?"; - WRBUF wr = wrbuf_alloc(); - - switch (srw_req->query_type) - { - case Z_SRW_query_type_cql: - querytype = "CQL"; - querystr = srw_req->query.cql; - break; - case Z_SRW_query_type_pqf: - querytype = "PQF"; - querystr = srw_req->query.pqf; - break; - } - wrbuf_printf(wr, "SRWSearch "); - wrbuf_printf(wr, srw_req->database); - wrbuf_printf(wr, " "); - if (srw_res->num_diagnostics) - wrbuf_printf(wr, "ERROR %s", srw_res->diagnostics[0].uri); - else if (*http_code != 200) - wrbuf_printf(wr, "ERROR info:http/%d", *http_code); - else if (srw_res->numberOfRecords) - { - wrbuf_printf(wr, "OK %d", - (srw_res->numberOfRecords ? - *srw_res->numberOfRecords : 0)); - } - wrbuf_printf(wr, " %s %d+%d", - (srw_res->resultSetId ? - srw_res->resultSetId : "-"), - (srw_req->startRecord ? *srw_req->startRecord : 1), - srw_res->num_records); - yaz_log(log_request, "%s %s: %s", wrbuf_cstr(wr), querytype, querystr); - wrbuf_destroy(wr); - } -} - -static char *srw_bend_explain_default(void *handle, bend_explain_rr *rr) -{ -#if YAZ_HAVE_XML2 - xmlNodePtr ptr = (xmlNode *) rr->server_node_ptr; - if (!ptr) - return 0; - for (ptr = ptr->children; ptr; ptr = ptr->next) - { - if (ptr->type != XML_ELEMENT_NODE) - continue; - if (!strcmp((const char *) ptr->name, "explain")) - { - int len; - xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0"); - xmlChar *buf_out; - char *content; - - ptr = xmlCopyNode(ptr, 1); - - xmlDocSetRootElement(doc, ptr); - - xmlDocDumpMemory(doc, &buf_out, &len); - content = (char*) odr_malloc(rr->stream, 1+len); - memcpy(content, buf_out, len); - content[len] = '\0'; - - xmlFree(buf_out); - xmlFreeDoc(doc); - rr->explain_buf = content; - return 0; - } - } -#endif - return 0; -} - -static void srw_bend_explain(association *assoc, request *req, - Z_SRW_PDU *sr, - Z_SRW_explainResponse *srw_res, - int *http_code) -{ - Z_SRW_explainRequest *srw_req = sr->u.explain_request; - yaz_log(log_requestdetail, "Got SRW ExplainRequest"); - *http_code = 404; - srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics, sr); - if (assoc->init) - { - bend_explain_rr rr; - - rr.stream = assoc->encode; - rr.decode = assoc->decode; - rr.print = assoc->print; - rr.explain_buf = 0; - rr.database = srw_req->database; - if (assoc->server) - rr.server_node_ptr = assoc->server->server_node_ptr; - else - rr.server_node_ptr = 0; - rr.schema = "http://explain.z3950.org/dtd/2.0/"; - if (assoc->init->bend_explain) - (*assoc->init->bend_explain)(assoc->backend, &rr); - else - srw_bend_explain_default(assoc->backend, &rr); - - if (rr.explain_buf) - { - int packing = Z_SRW_recordPacking_string; - if (srw_req->recordPacking) - { - packing = - yaz_srw_str_to_pack(srw_req->recordPacking); - if (packing == -1) - packing = Z_SRW_recordPacking_string; - } - srw_res->record.recordSchema = rr.schema; - srw_res->record.recordPacking = packing; - srw_res->record.recordData_buf = rr.explain_buf; - srw_res->record.recordData_len = strlen(rr.explain_buf); - srw_res->record.recordPosition = 0; - *http_code = 200; - } - } -} - -static void srw_bend_scan(association *assoc, request *req, - Z_SRW_PDU *sr, - Z_SRW_scanResponse *srw_res, - int *http_code) -{ - Z_SRW_scanRequest *srw_req = sr->u.scan_request; - yaz_log(log_requestdetail, "Got SRW ScanRequest"); - - *http_code = 200; - srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics, sr); - if (srw_res->num_diagnostics == 0 && assoc->init) - { - struct scan_entry *save_entries; - - bend_scan_rr *bsrr = (bend_scan_rr *) - odr_malloc (assoc->encode, sizeof(*bsrr)); - bsrr->num_bases = 1; - bsrr->basenames = &srw_req->database; - - bsrr->num_entries = srw_req->maximumTerms ? - *srw_req->maximumTerms : 10; - bsrr->term_position = srw_req->responsePosition ? - *srw_req->responsePosition : 1; - - bsrr->errcode = 0; - bsrr->errstring = 0; - bsrr->referenceId = 0; - bsrr->stream = assoc->encode; - bsrr->print = assoc->print; - bsrr->step_size = odr_intdup(assoc->decode, 0); - bsrr->entries = 0; - bsrr->setname = 0; - - if (bsrr->num_entries > 0) - { - int i; - bsrr->entries = (struct scan_entry *) - odr_malloc(assoc->decode, sizeof(*bsrr->entries) * - bsrr->num_entries); - for (i = 0; inum_entries; i++) - { - bsrr->entries[i].term = 0; - bsrr->entries[i].occurrences = 0; - bsrr->entries[i].errcode = 0; - bsrr->entries[i].errstring = 0; - bsrr->entries[i].display_term = 0; - } - } - save_entries = bsrr->entries; /* save it so we can compare later */ - - if (srw_req->query_type == Z_SRW_query_type_pqf && - assoc->init->bend_scan) - { - YAZ_PQF_Parser pqf_parser = yaz_pqf_create(); - - bsrr->term = yaz_pqf_scan(pqf_parser, assoc->decode, - &bsrr->attributeset, - srw_req->scanClause.pqf); - yaz_pqf_destroy(pqf_parser); - bsrr->scanClause = 0; - ((int (*)(void *, bend_scan_rr *)) - (*assoc->init->bend_scan))(assoc->backend, bsrr); - } - else if (srw_req->query_type == Z_SRW_query_type_cql - && assoc->init->bend_scan && assoc->server - && assoc->server->cql_transform) - { - int srw_error; - bsrr->scanClause = 0; - bsrr->attributeset = 0; - bsrr->term = (Z_AttributesPlusTerm *) - odr_malloc(assoc->decode, sizeof(*bsrr->term)); - srw_error = cql2pqf_scan(assoc->encode, - srw_req->scanClause.cql, - assoc->server->cql_transform, - bsrr->term); - if (srw_error) - yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - srw_error, 0); - else - { - ((int (*)(void *, bend_scan_rr *)) - (*assoc->init->bend_scan))(assoc->backend, bsrr); - } - } - else if (srw_req->query_type == Z_SRW_query_type_cql - && assoc->init->bend_srw_scan) - { - bsrr->term = 0; - bsrr->attributeset = 0; - bsrr->scanClause = srw_req->scanClause.cql; - ((int (*)(void *, bend_scan_rr *)) - (*assoc->init->bend_srw_scan))(assoc->backend, bsrr); - } - else - { - yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRW_UNSUPP_OPERATION, "scan"); - } - if (bsrr->errcode) - { - int srw_error; - if (bsrr->errcode == YAZ_BIB1_DATABASE_UNAVAILABLE) - { - *http_code = 404; - return; - } - srw_error = yaz_diag_bib1_to_srw (bsrr->errcode); - - yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - srw_error, bsrr->errstring); - } - else if (srw_res->num_diagnostics == 0 && bsrr->num_entries) - { - int i; - srw_res->terms = (Z_SRW_scanTerm*) - odr_malloc(assoc->encode, sizeof(*srw_res->terms) * - bsrr->num_entries); - - srw_res->num_terms = bsrr->num_entries; - for (i = 0; inum_entries; i++) - { - Z_SRW_scanTerm *t = srw_res->terms + i; - t->value = odr_strdup(assoc->encode, bsrr->entries[i].term); - t->numberOfRecords = - odr_intdup(assoc->encode, bsrr->entries[i].occurrences); - t->displayTerm = 0; - if (save_entries == bsrr->entries && - bsrr->entries[i].display_term) - { - /* the entries was _not_ set by the handler. So it's - safe to test for new member display_term. It is - NULL'ed by us. - */ - t->displayTerm = odr_strdup(assoc->encode, - bsrr->entries[i].display_term); - } - t->whereInList = 0; - } - } - } - if (log_request) - { - WRBUF wr = wrbuf_alloc(); - const char *querytype = 0; - const char *querystr = 0; - - switch(srw_req->query_type) - { - case Z_SRW_query_type_pqf: - querytype = "PQF"; - querystr = srw_req->scanClause.pqf; - break; - case Z_SRW_query_type_cql: - querytype = "CQL"; - querystr = srw_req->scanClause.cql; - break; - default: - querytype = "UNKNOWN"; - querystr = ""; - } - - wrbuf_printf(wr, "SRWScan "); - wrbuf_printf(wr, srw_req->database); - wrbuf_printf(wr, " "); - - if (srw_res->num_diagnostics) - wrbuf_printf(wr, "ERROR %s - ", srw_res->diagnostics[0].uri); - else if (srw_res->num_terms) - wrbuf_printf(wr, "OK %d - ", srw_res->num_terms); - else - wrbuf_printf(wr, "OK - - "); - - wrbuf_printf(wr, "%d+%d+0 ", - (srw_req->responsePosition ? - *srw_req->responsePosition : 1), - (srw_req->maximumTerms ? - *srw_req->maximumTerms : 1)); - /* there is no step size in SRU/W ??? */ - wrbuf_printf(wr, "%s: %s ", querytype, querystr); - yaz_log(log_request, "%s ", wrbuf_cstr(wr) ); - wrbuf_destroy(wr); - } - -} - -static void srw_bend_update(association *assoc, request *req, - Z_SRW_PDU *sr, - Z_SRW_updateResponse *srw_res, - int *http_code) -{ - Z_SRW_updateRequest *srw_req = sr->u.update_request; - yaz_log(log_session, "SRWUpdate action=%s", srw_req->operation); - yaz_log(YLOG_DEBUG, "num_diag = %d", srw_res->num_diagnostics ); - *http_code = 404; - srw_bend_init(assoc, &srw_res->diagnostics, &srw_res->num_diagnostics, sr); - if (assoc->init) - { - bend_update_rr rr; - Z_SRW_extra_record *extra = srw_req->extra_record; - - rr.stream = assoc->encode; - rr.print = assoc->print; - rr.num_bases = 1; - rr.basenames = &srw_req->database; - rr.operation = srw_req->operation; - rr.operation_status = "failed"; - rr.record_id = 0; - rr.record_versions = 0; - rr.num_versions = 0; - rr.record_packing = "string"; - rr.record_schema = 0; - rr.record_data = 0; - rr.extra_record_data = 0; - rr.extra_request_data = 0; - rr.extra_response_data = 0; - rr.uri = 0; - rr.message = 0; - rr.details = 0; - - *http_code = 200; - if (rr.operation == 0) - { - yaz_add_sru_update_diagnostic( - assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRU_UPDATE_MISSING_MANDATORY_ELEMENT_RECORD_REJECTED, - "action" ); - return; - } - yaz_log(YLOG_DEBUG, "basename = %s", rr.basenames[0] ); - yaz_log(YLOG_DEBUG, "Operation = %s", rr.operation ); - if (!strcmp( rr.operation, "delete")) - { - if (srw_req->record && !srw_req->record->recordSchema) - { - rr.record_schema = odr_strdup( - assoc->encode, - srw_req->record->recordSchema); - } - if (srw_req->record) - { - rr.record_data = odr_strdupn( - assoc->encode, - srw_req->record->recordData_buf, - srw_req->record->recordData_len ); - } - if (extra && extra->extraRecordData_len) - { - rr.extra_record_data = odr_strdupn( - assoc->encode, - extra->extraRecordData_buf, - extra->extraRecordData_len ); - } - if (srw_req->recordId) - rr.record_id = srw_req->recordId; - else if (extra && extra->recordIdentifier) - rr.record_id = extra->recordIdentifier; - } - else if (!strcmp(rr.operation, "replace")) - { - if (srw_req->recordId) - rr.record_id = srw_req->recordId; - else if (extra && extra->recordIdentifier) - rr.record_id = extra->recordIdentifier; - else - { - yaz_add_sru_update_diagnostic( - assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRU_UPDATE_MISSING_MANDATORY_ELEMENT_RECORD_REJECTED, - "recordIdentifier"); - } - if (!srw_req->record) - { - yaz_add_sru_update_diagnostic( - assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRU_UPDATE_MISSING_MANDATORY_ELEMENT_RECORD_REJECTED, - "record"); - } - else - { - if (srw_req->record->recordSchema) - rr.record_schema = odr_strdup( - assoc->encode, srw_req->record->recordSchema); - if (srw_req->record->recordData_len ) - { - rr.record_data = odr_strdupn(assoc->encode, - srw_req->record->recordData_buf, - srw_req->record->recordData_len ); - } - else - { - yaz_add_sru_update_diagnostic( - assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRU_UPDATE_MISSING_MANDATORY_ELEMENT_RECORD_REJECTED, - "recordData" ); - } - } - if (extra && extra->extraRecordData_len) - { - rr.extra_record_data = odr_strdupn( - assoc->encode, - extra->extraRecordData_buf, - extra->extraRecordData_len ); - } - } - else if (!strcmp(rr.operation, "insert")) - { - if (srw_req->recordId) - rr.record_id = srw_req->recordId; - else if (extra) - rr.record_id = extra->recordIdentifier; - - if (srw_req->record) - { - if (srw_req->record->recordSchema) - rr.record_schema = odr_strdup( - assoc->encode, srw_req->record->recordSchema); - - if (srw_req->record->recordData_len) - rr.record_data = odr_strdupn( - assoc->encode, - srw_req->record->recordData_buf, - srw_req->record->recordData_len ); - } - if (extra && extra->extraRecordData_len) - { - rr.extra_record_data = odr_strdupn( - assoc->encode, - extra->extraRecordData_buf, - extra->extraRecordData_len ); - } - } - else - yaz_add_sru_update_diagnostic(assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRU_UPDATE_INVALID_ACTION, - rr.operation ); - - if (srw_req->record) - { - const char *pack_str = - yaz_srw_pack_to_str(srw_req->record->recordPacking); - if (pack_str) - rr.record_packing = odr_strdup(assoc->encode, pack_str); - } - - if (srw_req->num_recordVersions) - { - rr.record_versions = srw_req->recordVersions; - rr.num_versions = srw_req->num_recordVersions; - } - if (srw_req->extraRequestData_len) - { - rr.extra_request_data = odr_strdupn(assoc->encode, - srw_req->extraRequestData_buf, - srw_req->extraRequestData_len ); - } - if (srw_res->num_diagnostics == 0) - { - if ( assoc->init->bend_srw_update) - (*assoc->init->bend_srw_update)(assoc->backend, &rr); - else - yaz_add_sru_update_diagnostic( - assoc->encode, &srw_res->diagnostics, - &srw_res->num_diagnostics, - YAZ_SRU_UPDATE_UNSPECIFIED_DATABASE_ERROR, - "No Update backend handler"); - } - - if (rr.uri) - yaz_add_srw_diagnostic_uri(assoc->encode, - &srw_res->diagnostics, - &srw_res->num_diagnostics, - rr.uri, - rr.message, - rr.details); - srw_res->recordId = rr.record_id; - srw_res->operationStatus = rr.operation_status; - srw_res->recordVersions = rr.record_versions; - srw_res->num_recordVersions = rr.num_versions; - if (srw_res->extraResponseData_len) - { - srw_res->extraResponseData_buf = rr.extra_response_data; - srw_res->extraResponseData_len = strlen(rr.extra_response_data); - } - if (srw_res->num_diagnostics == 0 && rr.record_data) - { - srw_res->record = yaz_srw_get_record(assoc->encode); - srw_res->record->recordSchema = rr.record_schema; - if (rr.record_packing) - { - int pack = yaz_srw_str_to_pack(rr.record_packing); - - if (pack == -1) - { - pack = Z_SRW_recordPacking_string; - yaz_log(YLOG_WARN, "Back packing %s from backend", - rr.record_packing); - } - srw_res->record->recordPacking = pack; - } - srw_res->record->recordData_buf = rr.record_data; - srw_res->record->recordData_len = strlen(rr.record_data); - if (rr.extra_record_data) - { - Z_SRW_extra_record *ex = - yaz_srw_get_extra_record(assoc->encode); - srw_res->extra_record = ex; - ex->extraRecordData_buf = rr.extra_record_data; - ex->extraRecordData_len = strlen(rr.extra_record_data); - } - } - } -} - -/* check if path is OK (1); BAD (0) */ -static int check_path(const char *path) -{ - if (*path != '/') - return 0; - if (strstr(path, "..")) - return 0; - return 1; -} - -static char *read_file(const char *fname, ODR o, int *sz) -{ - char *buf; - FILE *inf = fopen(fname, "rb"); - if (!inf) - return 0; - - fseek(inf, 0L, SEEK_END); - *sz = ftell(inf); - rewind(inf); - buf = (char *) odr_malloc(o, *sz); - fread(buf, 1, *sz, inf); - fclose(inf); - return buf; -} - -static void process_http_request(association *assoc, request *req) -{ - Z_HTTP_Request *hreq = req->gdu_request->u.HTTP_Request; - ODR o = assoc->encode; - int r = 2; /* 2=NOT TAKEN, 1=TAKEN, 0=SOAP TAKEN */ - Z_SRW_PDU *sr = 0; - Z_SOAP *soap_package = 0; - Z_GDU *p = 0; - char *charset = 0; - Z_HTTP_Response *hres = 0; - int keepalive = 1; - const char *stylesheet = 0; /* for now .. set later */ - Z_SRW_diagnostic *diagnostic = 0; - int num_diagnostic = 0; - const char *host = z_HTTP_header_lookup(hreq->headers, "Host"); - - if (!control_association(assoc, host, 0)) - { - p = z_get_HTTP_Response(o, 404); - r = 1; - } - if (r == 2 && assoc->server && assoc->server->docpath - && hreq->path[0] == '/' - && - /* check if path is a proper prefix of documentroot */ - strncmp(hreq->path+1, assoc->server->docpath, - strlen(assoc->server->docpath)) - == 0) - { - if (!check_path(hreq->path)) - { - yaz_log(YLOG_LOG, "File %s access forbidden", hreq->path+1); - p = z_get_HTTP_Response(o, 404); - } - else - { - int content_size = 0; - char *content_buf = read_file(hreq->path+1, o, &content_size); - if (!content_buf) - { - yaz_log(YLOG_LOG, "File %s not found", hreq->path+1); - p = z_get_HTTP_Response(o, 404); - } - else - { - const char *ctype = 0; - yaz_mime_types types = yaz_mime_types_create(); - - yaz_mime_types_add(types, "xsl", "application/xml"); - yaz_mime_types_add(types, "xml", "application/xml"); - yaz_mime_types_add(types, "css", "text/css"); - yaz_mime_types_add(types, "html", "text/html"); - yaz_mime_types_add(types, "htm", "text/html"); - yaz_mime_types_add(types, "txt", "text/plain"); - yaz_mime_types_add(types, "js", "application/x-javascript"); - - yaz_mime_types_add(types, "gif", "image/gif"); - yaz_mime_types_add(types, "png", "image/png"); - yaz_mime_types_add(types, "jpg", "image/jpeg"); - yaz_mime_types_add(types, "jpeg", "image/jpeg"); - - ctype = yaz_mime_lookup_fname(types, hreq->path); - if (!ctype) - { - yaz_log(YLOG_LOG, "No mime type for %s", hreq->path+1); - p = z_get_HTTP_Response(o, 404); - } - else - { - p = z_get_HTTP_Response(o, 200); - hres = p->u.HTTP_Response; - hres->content_buf = content_buf; - hres->content_len = content_size; - z_HTTP_header_add(o, &hres->headers, "Content-Type", ctype); - } - yaz_mime_types_destroy(types); - } - } - r = 1; - } - - if (r == 2) - { - r = yaz_srw_decode(hreq, &sr, &soap_package, assoc->decode, &charset); - yaz_log(YLOG_DEBUG, "yaz_srw_decode returned %d", r); - } - if (r == 2) /* not taken */ - { - r = yaz_sru_decode(hreq, &sr, &soap_package, assoc->decode, &charset, - &diagnostic, &num_diagnostic); - yaz_log(YLOG_DEBUG, "yaz_sru_decode returned %d", r); - } - if (r == 0) /* decode SRW/SRU OK .. */ - { - int http_code = 200; - if (sr->which == Z_SRW_searchRetrieve_request) - { - Z_SRW_PDU *res = - yaz_srw_get_pdu(assoc->encode, Z_SRW_searchRetrieve_response, - sr->srw_version); - stylesheet = sr->u.request->stylesheet; - if (num_diagnostic) - { - res->u.response->diagnostics = diagnostic; - res->u.response->num_diagnostics = num_diagnostic; - } - else - { - srw_bend_search(assoc, req, sr, res->u.response, - &http_code); - } - if (http_code == 200) - soap_package->u.generic->p = res; - } - else if (sr->which == Z_SRW_explain_request) - { - Z_SRW_PDU *res = yaz_srw_get_pdu(o, Z_SRW_explain_response, - sr->srw_version); - stylesheet = sr->u.explain_request->stylesheet; - if (num_diagnostic) - { - res->u.explain_response->diagnostics = diagnostic; - res->u.explain_response->num_diagnostics = num_diagnostic; - } - srw_bend_explain(assoc, req, sr, - res->u.explain_response, &http_code); - if (http_code == 200) - soap_package->u.generic->p = res; - } - else if (sr->which == Z_SRW_scan_request) - { - Z_SRW_PDU *res = yaz_srw_get_pdu(o, Z_SRW_scan_response, - sr->srw_version); - stylesheet = sr->u.scan_request->stylesheet; - if (num_diagnostic) - { - res->u.scan_response->diagnostics = diagnostic; - res->u.scan_response->num_diagnostics = num_diagnostic; - } - srw_bend_scan(assoc, req, sr, - res->u.scan_response, &http_code); - if (http_code == 200) - soap_package->u.generic->p = res; - } - else if (sr->which == Z_SRW_update_request) - { - Z_SRW_PDU *res = yaz_srw_get_pdu(o, Z_SRW_update_response, - sr->srw_version); - yaz_log(YLOG_DEBUG, "handling SRW UpdateRequest"); - if (num_diagnostic) - { - res->u.update_response->diagnostics = diagnostic; - res->u.update_response->num_diagnostics = num_diagnostic; - } - yaz_log(YLOG_DEBUG, "num_diag = %d", res->u.update_response->num_diagnostics ); - srw_bend_update(assoc, req, sr, - res->u.update_response, &http_code); - if (http_code == 200) - soap_package->u.generic->p = res; - } - else - { - yaz_log(log_request, "SOAP ERROR"); - /* FIXME - what error, what query */ - http_code = 500; - z_soap_error(assoc->encode, soap_package, - "SOAP-ENV:Client", "Bad method", 0); - } - if (http_code == 200 || http_code == 500) - { - static Z_SOAP_Handler soap_handlers[4] = { -#if YAZ_HAVE_XML2 - {YAZ_XMLNS_SRU_v1_1, 0, (Z_SOAP_fun) yaz_srw_codec}, - {YAZ_XMLNS_SRU_v1_0, 0, (Z_SOAP_fun) yaz_srw_codec}, - {YAZ_XMLNS_UPDATE_v0_9, 0, (Z_SOAP_fun) yaz_ucp_codec}, -#endif - {0, 0, 0} - }; - char ctype[80]; - int ret; - p = z_get_HTTP_Response(o, 200); - hres = p->u.HTTP_Response; - - if (!stylesheet && assoc->server) - stylesheet = assoc->server->stylesheet; - - /* empty stylesheet means NO stylesheet */ - if (stylesheet && *stylesheet == '\0') - stylesheet = 0; - - ret = z_soap_codec_enc_xsl(assoc->encode, &soap_package, - &hres->content_buf, &hres->content_len, - soap_handlers, charset, stylesheet); - hres->code = http_code; - - strcpy(ctype, "text/xml"); - if (charset && strlen(charset) < sizeof(ctype)-30) - { - strcat(ctype, "; charset="); - strcat(ctype, charset); - } - z_HTTP_header_add(o, &hres->headers, "Content-Type", ctype); - } - else - p = z_get_HTTP_Response(o, http_code); - } - - if (p == 0) - p = z_get_HTTP_Response(o, 500); - hres = p->u.HTTP_Response; - if (!strcmp(hreq->version, "1.0")) - { - const char *v = z_HTTP_header_lookup(hreq->headers, "Connection"); - if (v && !strcmp(v, "Keep-Alive")) - keepalive = 1; - else - keepalive = 0; - hres->version = "1.0"; - } - else - { - const char *v = z_HTTP_header_lookup(hreq->headers, "Connection"); - if (v && !strcmp(v, "close")) - keepalive = 0; - else - keepalive = 1; - hres->version = "1.1"; - } - if (!keepalive) - { - z_HTTP_header_add(o, &hres->headers, "Connection", "close"); - assoc->state = ASSOC_DEAD; - assoc->cs_get_mask = 0; - } - else - { - int t; - const char *alive = z_HTTP_header_lookup(hreq->headers, "Keep-Alive"); - - if (alive && isdigit(*(const unsigned char *) alive)) - t = atoi(alive); - else - t = 15; - if (t < 0 || t > 3600) - t = 3600; - iochan_settimeout(assoc->client_chan,t); - z_HTTP_header_add(o, &hres->headers, "Connection", "Keep-Alive"); - } - process_gdu_response(assoc, req, p); -} - -static void process_gdu_request(association *assoc, request *req) -{ - if (req->gdu_request->which == Z_GDU_Z3950) - { - char *msg = 0; - req->apdu_request = req->gdu_request->u.z3950; - if (process_z_request(assoc, req, &msg) < 0) - do_close_req(assoc, Z_Close_systemProblem, msg, req); - } - else if (req->gdu_request->which == Z_GDU_HTTP_Request) - process_http_request(assoc, req); - else - { - do_close_req(assoc, Z_Close_systemProblem, "bad protocol packet", req); - } -} - -/* - * Initiate request processing. - */ -static int process_z_request(association *assoc, request *req, char **msg) -{ - int fd = -1; - Z_APDU *res; - int retval; - - *msg = "Unknown Error"; - assert(req && req->state == REQUEST_IDLE); - if (req->apdu_request->which != Z_APDU_initRequest && !assoc->init) - { - *msg = "Missing InitRequest"; - return -1; - } - switch (req->apdu_request->which) - { - case Z_APDU_initRequest: - res = process_initRequest(assoc, req); break; - case Z_APDU_searchRequest: - res = process_searchRequest(assoc, req, &fd); break; - case Z_APDU_presentRequest: - res = process_presentRequest(assoc, req, &fd); break; - case Z_APDU_scanRequest: - if (assoc->init->bend_scan) - res = process_scanRequest(assoc, req, &fd); - else - { - *msg = "Cannot handle Scan APDU"; - return -1; - } - break; - case Z_APDU_extendedServicesRequest: - if (assoc->init->bend_esrequest) - res = process_ESRequest(assoc, req, &fd); - else - { - *msg = "Cannot handle Extended Services APDU"; - return -1; - } - break; - case Z_APDU_sortRequest: - if (assoc->init->bend_sort) - res = process_sortRequest(assoc, req, &fd); - else - { - *msg = "Cannot handle Sort APDU"; - return -1; - } - break; - case Z_APDU_close: - process_close(assoc, req); - return 0; - case Z_APDU_deleteResultSetRequest: - if (assoc->init->bend_delete) - res = process_deleteRequest(assoc, req, &fd); - else - { - *msg = "Cannot handle Delete APDU"; - return -1; - } - break; - case Z_APDU_segmentRequest: - if (assoc->init->bend_segment) - { - res = process_segmentRequest (assoc, req); - } - else - { - *msg = "Cannot handle Segment APDU"; - return -1; - } - break; - case Z_APDU_triggerResourceControlRequest: - return 0; - default: - *msg = "Bad APDU received"; - return -1; - } - if (res) - { - yaz_log(YLOG_DEBUG, " result immediately available"); - retval = process_z_response(assoc, req, res); - } - else if (fd < 0) - { - yaz_log(YLOG_DEBUG, " result unavailble"); - retval = 0; - } - else /* no result yet - one will be provided later */ - { - IOCHAN chan; - - /* Set up an I/O handler for the fd supplied by the backend */ - - yaz_log(YLOG_DEBUG, " establishing handler for result"); - req->state = REQUEST_PENDING; - if (!(chan = iochan_create(fd, backend_response, EVENT_INPUT, 0))) - abort(); - iochan_setdata(chan, assoc); - retval = 0; - } - return retval; -} - -/* - * Handle message from the backend. - */ -void backend_response(IOCHAN i, int event) -{ - association *assoc = (association *)iochan_getdata(i); - request *req = request_head(&assoc->incoming); - Z_APDU *res; - int fd; - - yaz_log(YLOG_DEBUG, "backend_response"); - assert(assoc && req && req->state != REQUEST_IDLE); - /* determine what it is we're waiting for */ - switch (req->apdu_request->which) - { - case Z_APDU_searchRequest: - res = response_searchRequest(assoc, req, 0, &fd); break; -#if 0 - case Z_APDU_presentRequest: - res = response_presentRequest(assoc, req, 0, &fd); break; - case Z_APDU_scanRequest: - res = response_scanRequest(assoc, req, 0, &fd); break; -#endif - default: - yaz_log(YLOG_FATAL, "Serious programmer's lapse or bug"); - abort(); - } - if ((res && process_z_response(assoc, req, res) < 0) || fd < 0) - { - yaz_log(YLOG_WARN, "Fatal error when talking to backend"); - do_close(assoc, Z_Close_systemProblem, 0); - iochan_destroy(i); - return; - } - else if (!res) /* no result yet - try again later */ - { - yaz_log(YLOG_DEBUG, " no result yet"); - iochan_setfd(i, fd); /* in case fd has changed */ - } -} - -/* - * Encode response, and transfer the request structure to the outgoing queue. - */ -static int process_gdu_response(association *assoc, request *req, Z_GDU *res) -{ - odr_setbuf(assoc->encode, req->response, req->size_response, 1); - - if (assoc->print) - { - if (!z_GDU(assoc->print, &res, 0, 0)) - yaz_log(YLOG_WARN, "ODR print error: %s", - odr_errmsg(odr_geterror(assoc->print))); - odr_reset(assoc->print); - } - if (!z_GDU(assoc->encode, &res, 0, 0)) - { - yaz_log(YLOG_WARN, "ODR error when encoding PDU: %s [element %s]", - odr_errmsg(odr_geterror(assoc->decode)), - odr_getelement(assoc->decode)); - return -1; - } - req->response = odr_getbuf(assoc->encode, &req->len_response, - &req->size_response); - odr_setbuf(assoc->encode, 0, 0, 0); /* don'txfree if we abort later */ - odr_reset(assoc->encode); - req->state = REQUEST_IDLE; - request_enq(&assoc->outgoing, req); - /* turn the work over to the ir_session handler */ - iochan_setflag(assoc->client_chan, EVENT_OUTPUT); - assoc->cs_put_mask = EVENT_OUTPUT; - /* Is there more work to be done? give that to the input handler too */ - for (;;) - { - req = request_head(&assoc->incoming); - if (req && req->state == REQUEST_IDLE) - { - request_deq(&assoc->incoming); - process_gdu_request(assoc, req); - } - else - break; - } - return 0; -} - -/* - * Encode response, and transfer the request structure to the outgoing queue. - */ -static int process_z_response(association *assoc, request *req, Z_APDU *res) -{ - Z_GDU *gres = (Z_GDU *) odr_malloc(assoc->encode, sizeof(*res)); - gres->which = Z_GDU_Z3950; - gres->u.z3950 = res; - - return process_gdu_response(assoc, req, gres); -} - -static char *get_vhost(Z_OtherInformation *otherInfo) -{ - return yaz_oi_get_string_oid(&otherInfo, yaz_oid_userinfo_proxy, 1, 0); -} - -/* - * Handle init request. - * At the moment, we don't check the options - * anywhere else in the code - we just try not to do anything that would - * break a naive client. We'll toss 'em into the association block when - * we need them there. - */ -static Z_APDU *process_initRequest(association *assoc, request *reqb) -{ - Z_InitRequest *req = reqb->apdu_request->u.initRequest; - Z_APDU *apdu = zget_APDU(assoc->encode, Z_APDU_initResponse); - Z_InitResponse *resp = apdu->u.initResponse; - bend_initresult *binitres; - char *version; - char options[140]; - statserv_options_block *cb = 0; /* by default no control for backend */ - - if (control_association(assoc, get_vhost(req->otherInfo), 1)) - cb = statserv_getcontrol(); /* got control block for backend */ - - if (cb && assoc->backend) - (*cb->bend_close)(assoc->backend); - - yaz_log(log_requestdetail, "Got initRequest"); - if (req->implementationId) - yaz_log(log_requestdetail, "Id: %s", - req->implementationId); - if (req->implementationName) - yaz_log(log_requestdetail, "Name: %s", - req->implementationName); - if (req->implementationVersion) - yaz_log(log_requestdetail, "Version: %s", - req->implementationVersion); - - assoc_init_reset(assoc); - - assoc->init->auth = req->idAuthentication; - assoc->init->referenceId = req->referenceId; - - if (ODR_MASK_GET(req->options, Z_Options_negotiationModel)) - { - Z_CharSetandLanguageNegotiation *negotiation = - yaz_get_charneg_record (req->otherInfo); - if (negotiation && - negotiation->which == Z_CharSetandLanguageNegotiation_proposal) - assoc->init->charneg_request = negotiation; - } - - assoc->backend = 0; - if (cb) - { - if (req->implementationVersion) - yaz_log(log_requestdetail, "Config: %s", - cb->configname); - - iochan_settimeout(assoc->client_chan, cb->idle_timeout * 60); - - /* we have a backend control block, so call that init function */ - if (!(binitres = (*cb->bend_init)(assoc->init))) - { - yaz_log(YLOG_WARN, "Bad response from backend."); - return 0; - } - assoc->backend = binitres->handle; - } - else - { - /* no backend. return error */ - binitres = (bend_initresult *) - odr_malloc(assoc->encode, sizeof(*binitres)); - binitres->errstring = 0; - binitres->errcode = YAZ_BIB1_PERMANENT_SYSTEM_ERROR; - iochan_settimeout(assoc->client_chan, 10); - } - if ((assoc->init->bend_sort)) - yaz_log (YLOG_DEBUG, "Sort handler installed"); - if ((assoc->init->bend_search)) - yaz_log (YLOG_DEBUG, "Search handler installed"); - if ((assoc->init->bend_present)) - yaz_log (YLOG_DEBUG, "Present handler installed"); - if ((assoc->init->bend_esrequest)) - yaz_log (YLOG_DEBUG, "ESRequest handler installed"); - if ((assoc->init->bend_delete)) - yaz_log (YLOG_DEBUG, "Delete handler installed"); - if ((assoc->init->bend_scan)) - yaz_log (YLOG_DEBUG, "Scan handler installed"); - if ((assoc->init->bend_segment)) - yaz_log (YLOG_DEBUG, "Segment handler installed"); - - resp->referenceId = req->referenceId; - *options = '\0'; - /* let's tell the client what we can do */ - if (ODR_MASK_GET(req->options, Z_Options_search)) - { - ODR_MASK_SET(resp->options, Z_Options_search); - strcat(options, "srch"); - } - if (ODR_MASK_GET(req->options, Z_Options_present)) - { - ODR_MASK_SET(resp->options, Z_Options_present); - strcat(options, " prst"); - } - if (ODR_MASK_GET(req->options, Z_Options_delSet) && - assoc->init->bend_delete) - { - ODR_MASK_SET(resp->options, Z_Options_delSet); - strcat(options, " del"); - } - if (ODR_MASK_GET(req->options, Z_Options_extendedServices) && - assoc->init->bend_esrequest) - { - ODR_MASK_SET(resp->options, Z_Options_extendedServices); - strcat (options, " extendedServices"); - } - if (ODR_MASK_GET(req->options, Z_Options_namedResultSets)) - { - ODR_MASK_SET(resp->options, Z_Options_namedResultSets); - strcat(options, " namedresults"); - } - if (ODR_MASK_GET(req->options, Z_Options_scan) && assoc->init->bend_scan) - { - ODR_MASK_SET(resp->options, Z_Options_scan); - strcat(options, " scan"); - } - if (ODR_MASK_GET(req->options, Z_Options_concurrentOperations)) - { - ODR_MASK_SET(resp->options, Z_Options_concurrentOperations); - strcat(options, " concurrop"); - } - if (ODR_MASK_GET(req->options, Z_Options_sort) && assoc->init->bend_sort) - { - ODR_MASK_SET(resp->options, Z_Options_sort); - strcat(options, " sort"); - } - - if (ODR_MASK_GET(req->options, Z_Options_negotiationModel)) - { - Z_OtherInformationUnit *p0; - - if (!assoc->init->charneg_response) - { - if (assoc->init->query_charset) - { - assoc->init->charneg_response = yaz_set_response_charneg( - assoc->encode, assoc->init->query_charset, 0, - assoc->init->records_in_same_charset); - } - else - { - yaz_log(YLOG_WARN, "default query_charset not defined by backend"); - } - } - if (assoc->init->charneg_response - && (p0=yaz_oi_update(&resp->otherInfo, assoc->encode, NULL, 0, 0))) - { - p0->which = Z_OtherInfo_externallyDefinedInfo; - p0->information.externallyDefinedInfo = - assoc->init->charneg_response; - ODR_MASK_SET(resp->options, Z_Options_negotiationModel); - strcat(options, " negotiation"); - } - } - if (ODR_MASK_GET(req->options, Z_Options_triggerResourceCtrl)) - ODR_MASK_SET(resp->options, Z_Options_triggerResourceCtrl); - - if (ODR_MASK_GET(req->protocolVersion, Z_ProtocolVersion_1)) - { - ODR_MASK_SET(resp->protocolVersion, Z_ProtocolVersion_1); - assoc->version = 1; /* 1 & 2 are equivalent */ - } - if (ODR_MASK_GET(req->protocolVersion, Z_ProtocolVersion_2)) - { - ODR_MASK_SET(resp->protocolVersion, Z_ProtocolVersion_2); - assoc->version = 2; - } - if (ODR_MASK_GET(req->protocolVersion, Z_ProtocolVersion_3)) - { - ODR_MASK_SET(resp->protocolVersion, Z_ProtocolVersion_3); - assoc->version = 3; - } - - yaz_log(log_requestdetail, "Negotiated to v%d: %s", assoc->version, options); - - if (*req->maximumRecordSize < assoc->maximumRecordSize) - assoc->maximumRecordSize = *req->maximumRecordSize; - - if (*req->preferredMessageSize < assoc->preferredMessageSize) - assoc->preferredMessageSize = *req->preferredMessageSize; - - resp->preferredMessageSize = &assoc->preferredMessageSize; - resp->maximumRecordSize = &assoc->maximumRecordSize; - - resp->implementationId = odr_prepend(assoc->encode, - assoc->init->implementation_id, - resp->implementationId); - - resp->implementationName = odr_prepend(assoc->encode, - assoc->init->implementation_name, - odr_prepend(assoc->encode, "GFS", resp->implementationName)); - - version = odr_strdup(assoc->encode, "$Revision: 1.128 $"); - if (strlen(version) > 10) /* check for unexpanded CVS strings */ - version[strlen(version)-2] = '\0'; - resp->implementationVersion = odr_prepend(assoc->encode, - assoc->init->implementation_version, - odr_prepend(assoc->encode, &version[11], - resp->implementationVersion)); - - if (binitres->errcode) - { - assoc->state = ASSOC_DEAD; - resp->userInformationField = - init_diagnostics(assoc->encode, binitres->errcode, - binitres->errstring); - *resp->result = 0; - } - if (log_request) - { - if (!req->idAuthentication) - yaz_log(log_request, "Auth none"); - else if (req->idAuthentication->which == Z_IdAuthentication_open) - { - const char *open = req->idAuthentication->u.open; - const char *slash = strchr(open, '/'); - int len; - if (slash) - len = slash - open; - else - len = strlen(open); - yaz_log(log_request, "Auth open %.*s", len, open); - } - else if (req->idAuthentication->which == Z_IdAuthentication_idPass) - { - const char *user = req->idAuthentication->u.idPass->userId; - const char *group = req->idAuthentication->u.idPass->groupId; - yaz_log(log_request, "Auth idPass %s %s", - user ? user : "-", group ? group : "-"); - } - else if (req->idAuthentication->which - == Z_IdAuthentication_anonymous) - { - yaz_log(log_request, "Auth anonymous"); - } - else - { - yaz_log(log_request, "Auth other"); - } - } - if (log_request) - { - WRBUF wr = wrbuf_alloc(); - wrbuf_printf(wr, "Init "); - if (binitres->errcode) - wrbuf_printf(wr, "ERROR %d", binitres->errcode); - else - wrbuf_printf(wr, "OK -"); - wrbuf_printf(wr, " ID:%s Name:%s Version:%s", - (req->implementationId ? req->implementationId :"-"), - (req->implementationName ? - req->implementationName : "-"), - (req->implementationVersion ? - req->implementationVersion : "-") - ); - yaz_log(log_request, "%s", wrbuf_cstr(wr)); - wrbuf_destroy(wr); - } - return apdu; -} - -/* - * Set the specified `errcode' and `errstring' into a UserInfo-1 - * external to be returned to the client in accordance with Z35.90 - * Implementor Agreement 5 (Returning diagnostics in an InitResponse): - * http://lcweb.loc.gov/z3950/agency/agree/initdiag.html - */ -static Z_External *init_diagnostics(ODR odr, int error, const char *addinfo) -{ - yaz_log(log_requestdetail, "[%d] %s%s%s", error, diagbib1_str(error), - addinfo ? " -- " : "", addinfo ? addinfo : ""); - return zget_init_diagnostics(odr, error, addinfo); -} - -/* - * nonsurrogate diagnostic record. - */ -static Z_Records *diagrec(association *assoc, int error, char *addinfo) -{ - Z_Records *rec = (Z_Records *) odr_malloc (assoc->encode, sizeof(*rec)); - - yaz_log(log_requestdetail, "[%d] %s%s%s", error, diagbib1_str(error), - addinfo ? " -- " : "", addinfo ? addinfo : ""); - - rec->which = Z_Records_NSD; - rec->u.nonSurrogateDiagnostic = zget_DefaultDiagFormat(assoc->encode, - error, addinfo); - return rec; -} - -/* - * surrogate diagnostic. - */ -static Z_NamePlusRecord *surrogatediagrec(association *assoc, - const char *dbname, - int error, const char *addinfo) -{ - yaz_log(log_requestdetail, "[%d] %s%s%s", error, diagbib1_str(error), - addinfo ? " -- " : "", addinfo ? addinfo : ""); - return zget_surrogateDiagRec(assoc->encode, dbname, error, addinfo); -} - -static Z_Records *pack_records(association *a, char *setname, int start, - int *num, Z_RecordComposition *comp, - int *next, int *pres, - Z_ReferenceId *referenceId, - Odr_oid *oid, int *errcode) -{ - int recno, total_length = 0, toget = *num, dumped_records = 0; - Z_Records *records = - (Z_Records *) odr_malloc (a->encode, sizeof(*records)); - Z_NamePlusRecordList *reclist = - (Z_NamePlusRecordList *) odr_malloc (a->encode, sizeof(*reclist)); - Z_NamePlusRecord **list = - (Z_NamePlusRecord **) odr_malloc (a->encode, sizeof(*list) * toget); - - records->which = Z_Records_DBOSD; - records->u.databaseOrSurDiagnostics = reclist; - reclist->num_records = 0; - reclist->records = list; - *pres = Z_PresentStatus_success; - *num = 0; - *next = 0; - - yaz_log(log_requestdetail, "Request to pack %d+%d %s", start, toget, setname); - yaz_log(log_requestdetail, "pms=%d, mrs=%d", a->preferredMessageSize, - a->maximumRecordSize); - for (recno = start; reclist->num_records < toget; recno++) - { - bend_fetch_rr freq; - Z_NamePlusRecord *thisrec; - int this_length = 0; - /* - * we get the number of bytes allocated on the stream before any - * allocation done by the backend - this should give us a reasonable - * idea of the total size of the data so far. - */ - total_length = odr_total(a->encode) - dumped_records; - freq.errcode = 0; - freq.errstring = 0; - freq.basename = 0; - freq.len = 0; - freq.record = 0; - freq.last_in_set = 0; - freq.setname = setname; - freq.surrogate_flag = 0; - freq.number = recno; - freq.comp = comp; - freq.request_format = oid; - freq.output_format = 0; - freq.stream = a->encode; - freq.print = a->print; - freq.referenceId = referenceId; - freq.schema = 0; - - retrieve_fetch(a, &freq); - - *next = freq.last_in_set ? 0 : recno + 1; - - /* backend should be able to signal whether error is system-wide - or only pertaining to current record */ - if (freq.errcode) - { - if (!freq.surrogate_flag) - { - char s[20]; - *pres = Z_PresentStatus_failure; - /* for 'present request out of range', - set addinfo to record position if not set */ - if (freq.errcode == YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE && - freq.errstring == 0) - { - sprintf (s, "%d", recno); - freq.errstring = s; - } - if (errcode) - *errcode = freq.errcode; - return diagrec(a, freq.errcode, freq.errstring); - } - reclist->records[reclist->num_records] = - surrogatediagrec(a, freq.basename, freq.errcode, - freq.errstring); - reclist->num_records++; - continue; - } - if (freq.record == 0) /* no error and no record ? */ - { - *next = 0; /* signal end-of-set and stop */ - break; - } - if (freq.len >= 0) - this_length = freq.len; - else - this_length = odr_total(a->encode) - total_length - dumped_records; - yaz_log(YLOG_DEBUG, " fetched record, len=%d, total=%d dumped=%d", - this_length, total_length, dumped_records); - if (a->preferredMessageSize > 0 && - this_length + total_length > a->preferredMessageSize) - { - /* record is small enough, really */ - if (this_length <= a->preferredMessageSize && recno > start) - { - yaz_log(log_requestdetail, " Dropped last normal-sized record"); - *pres = Z_PresentStatus_partial_2; - break; - } - /* record can only be fetched by itself */ - if (this_length < a->maximumRecordSize) - { - yaz_log(log_requestdetail, " Record > prefmsgsz"); - if (toget > 1) - { - yaz_log(YLOG_DEBUG, " Dropped it"); - reclist->records[reclist->num_records] = - surrogatediagrec(a, freq.basename, 16, 0); - reclist->num_records++; - dumped_records += this_length; - continue; - } - } - else /* too big entirely */ - { - yaz_log(log_requestdetail, "Record > maxrcdsz this=%d max=%d", - this_length, a->maximumRecordSize); - reclist->records[reclist->num_records] = - surrogatediagrec(a, freq.basename, 17, 0); - reclist->num_records++; - dumped_records += this_length; - continue; - } - } - - if (!(thisrec = (Z_NamePlusRecord *) - odr_malloc(a->encode, sizeof(*thisrec)))) - return 0; - thisrec->databaseName = odr_strdup_null(a->encode, freq.basename); - thisrec->which = Z_NamePlusRecord_databaseRecord; - - if (!freq.output_format) - freq.output_format = freq.request_format; - thisrec->u.databaseRecord = z_ext_record_oid( - a->encode, freq.output_format, freq.record, freq.len); - if (!thisrec->u.databaseRecord) - return 0; - reclist->records[reclist->num_records] = thisrec; - reclist->num_records++; - } - *num = reclist->num_records; - return records; -} - -static Z_APDU *process_searchRequest(association *assoc, request *reqb, - int *fd) -{ - Z_SearchRequest *req = reqb->apdu_request->u.searchRequest; - bend_search_rr *bsrr = - (bend_search_rr *)nmem_malloc (reqb->request_mem, sizeof(*bsrr)); - - yaz_log(log_requestdetail, "Got SearchRequest."); - bsrr->fd = fd; - bsrr->request = reqb; - bsrr->association = assoc; - bsrr->referenceId = req->referenceId; - save_referenceId (reqb, bsrr->referenceId); - bsrr->srw_sortKeys = 0; - bsrr->srw_setname = 0; - bsrr->srw_setnameIdleTime = 0; - bsrr->estimated_hit_count = 0; - bsrr->partial_resultset = 0; - - yaz_log (log_requestdetail, "ResultSet '%s'", req->resultSetName); - if (req->databaseNames) - { - int i; - for (i = 0; i < req->num_databaseNames; i++) - yaz_log(log_requestdetail, "Database '%s'", req->databaseNames[i]); - } - - yaz_log_zquery_level(log_requestdetail,req->query); - - if (assoc->init->bend_search) - { - bsrr->setname = req->resultSetName; - bsrr->replace_set = *req->replaceIndicator; - bsrr->num_bases = req->num_databaseNames; - bsrr->basenames = req->databaseNames; - bsrr->query = req->query; - bsrr->stream = assoc->encode; - nmem_transfer(odr_getmem(bsrr->stream), reqb->request_mem); - bsrr->decode = assoc->decode; - bsrr->print = assoc->print; - bsrr->hits = 0; - bsrr->errcode = 0; - bsrr->errstring = NULL; - bsrr->search_info = NULL; - - if (assoc->server && assoc->server->cql_transform - && req->query->which == Z_Query_type_104 - && req->query->u.type_104->which == Z_External_CQL) - { - /* have a CQL query and a CQL to PQF transform .. */ - int srw_errcode = - cql2pqf(bsrr->stream, req->query->u.type_104->u.cql, - assoc->server->cql_transform, bsrr->query); - if (srw_errcode) - bsrr->errcode = yaz_diag_srw_to_bib1(srw_errcode); - } - - if (assoc->server && assoc->server->ccl_transform - && req->query->which == Z_Query_type_2) /*CCL*/ - { - /* have a CCL query and a CCL to PQF transform .. */ - int srw_errcode = - ccl2pqf(bsrr->stream, req->query->u.type_2, - assoc->server->ccl_transform, bsrr); - if (srw_errcode) - bsrr->errcode = yaz_diag_srw_to_bib1(srw_errcode); - } - - if (!bsrr->errcode) - (assoc->init->bend_search)(assoc->backend, bsrr); - if (!bsrr->request) /* backend not ready with the search response */ - return 0; /* should not be used any more */ - } - else - { - /* FIXME - make a diagnostic for it */ - yaz_log(YLOG_WARN,"Search not supported ?!?!"); - } - return response_searchRequest(assoc, reqb, bsrr, fd); -} - -int bend_searchresponse(void *handle, bend_search_rr *bsrr) {return 0;} - -/* - * Prepare a searchresponse based on the backend results. We probably want - * to look at making the fetching of records nonblocking as well, but - * so far, we'll keep things simple. - * If bsrt is null, that means we're called in response to a communications - * event, and we'll have to get the response for ourselves. - */ -static Z_APDU *response_searchRequest(association *assoc, request *reqb, - bend_search_rr *bsrt, int *fd) -{ - Z_SearchRequest *req = reqb->apdu_request->u.searchRequest; - Z_APDU *apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); - Z_SearchResponse *resp = (Z_SearchResponse *) - odr_malloc (assoc->encode, sizeof(*resp)); - int *nulint = odr_intdup (assoc->encode, 0); - int *next = odr_intdup(assoc->encode, 0); - int *none = odr_intdup(assoc->encode, Z_SearchResponse_none); - int returnedrecs = 0; - - apdu->which = Z_APDU_searchResponse; - apdu->u.searchResponse = resp; - resp->referenceId = req->referenceId; - resp->additionalSearchInfo = 0; - resp->otherInfo = 0; - *fd = -1; - if (!bsrt && !bend_searchresponse(assoc->backend, bsrt)) - { - yaz_log(YLOG_FATAL, "Bad result from backend"); - return 0; - } - else if (bsrt->errcode) - { - resp->records = diagrec(assoc, bsrt->errcode, bsrt->errstring); - resp->resultCount = nulint; - resp->numberOfRecordsReturned = nulint; - resp->nextResultSetPosition = nulint; - resp->searchStatus = nulint; - resp->resultSetStatus = none; - resp->presentStatus = 0; - } - else - { - bool_t *sr = odr_intdup(assoc->encode, 1); - int *toget = odr_intdup(assoc->encode, 0); - Z_RecordComposition comp, *compp = 0; - - yaz_log (log_requestdetail, "resultCount: %d", bsrt->hits); - - resp->records = 0; - resp->resultCount = &bsrt->hits; - - comp.which = Z_RecordComp_simple; - /* how many records does the user agent want, then? */ - if (bsrt->hits <= *req->smallSetUpperBound) - { - *toget = bsrt->hits; - if ((comp.u.simple = req->smallSetElementSetNames)) - compp = ∁ - } - else if (bsrt->hits < *req->largeSetLowerBound) - { - *toget = *req->mediumSetPresentNumber; - if (*toget > bsrt->hits) - *toget = bsrt->hits; - if ((comp.u.simple = req->mediumSetElementSetNames)) - compp = ∁ - } - else - *toget = 0; - - if (*toget && !resp->records) - { - int *presst = odr_intdup(assoc->encode, 0); - /* Call bend_present if defined */ - if (assoc->init->bend_present) - { - bend_present_rr *bprr = (bend_present_rr *) - nmem_malloc (reqb->request_mem, sizeof(*bprr)); - bprr->setname = req->resultSetName; - bprr->start = 1; - bprr->number = *toget; - bprr->format = req->preferredRecordSyntax; - bprr->comp = compp; - bprr->referenceId = req->referenceId; - bprr->stream = assoc->encode; - bprr->print = assoc->print; - bprr->request = reqb; - bprr->association = assoc; - bprr->errcode = 0; - bprr->errstring = NULL; - (*assoc->init->bend_present)(assoc->backend, bprr); - - if (!bprr->request) - return 0; - if (bprr->errcode) - { - resp->records = diagrec(assoc, bprr->errcode, bprr->errstring); - *resp->presentStatus = Z_PresentStatus_failure; - } - } - - if (!resp->records) - resp->records = pack_records( - assoc, req->resultSetName, 1, - toget, compp, next, presst, req->referenceId, - req->preferredRecordSyntax, NULL); - if (!resp->records) - return 0; - resp->numberOfRecordsReturned = toget; - returnedrecs = *toget; - resp->presentStatus = presst; - } - else - { - if (*resp->resultCount) - *next = 1; - resp->numberOfRecordsReturned = nulint; - resp->presentStatus = 0; - } - resp->nextResultSetPosition = next; - resp->searchStatus = sr; - resp->resultSetStatus = 0; - if (bsrt->estimated_hit_count) - { - resp->resultSetStatus = odr_intdup(assoc->encode, - Z_SearchResponse_estimate); - } - else if (bsrt->partial_resultset) - { - resp->resultSetStatus = odr_intdup(assoc->encode, - Z_SearchResponse_subset); - } - } - resp->additionalSearchInfo = bsrt->search_info; - - if (log_request) - { - int i; - WRBUF wr = wrbuf_alloc(); - - for (i = 0 ; i < req->num_databaseNames; i++){ - if (i) - wrbuf_printf(wr, "+"); - wrbuf_printf(wr, req->databaseNames[i]); - } - wrbuf_printf(wr, " "); - - if (bsrt->errcode) - wrbuf_printf(wr, "ERROR %d", bsrt->errcode); - else - wrbuf_printf(wr, "OK %d", bsrt->hits); - wrbuf_printf(wr, " %s 1+%d ", - req->resultSetName, returnedrecs); - yaz_query_to_wrbuf(wr, req->query); - - yaz_log(log_request, "Search %s", wrbuf_cstr(wr)); - wrbuf_destroy(wr); - } - return apdu; -} - -/* - * Maybe we got a little over-friendly when we designed bend_fetch to - * get only one record at a time. Some backends can optimise multiple-record - * fetches, and at any rate, there is some overhead involved in - * all that selecting and hopping around. Problem is, of course, that the - * frontend can't know ahead of time how many records it'll need to - * fill the negotiated PDU size. Annoying. Segmentation or not, Z/SR - * is downright lousy as a bulk data transfer protocol. - * - * To start with, we'll do the fetching of records from the backend - * in one operation: To save some trips in and out of the event-handler, - * and to simplify the interface to pack_records. At any rate, asynch - * operation is more fun in operations that have an unpredictable execution - * speed - which is normally more true for search than for present. - */ -static Z_APDU *process_presentRequest(association *assoc, request *reqb, - int *fd) -{ - Z_PresentRequest *req = reqb->apdu_request->u.presentRequest; - Z_APDU *apdu; - Z_PresentResponse *resp; - int *next; - int *num; - int errcode = 0; - const char *errstring = 0; - - yaz_log(log_requestdetail, "Got PresentRequest."); - - resp = (Z_PresentResponse *)odr_malloc (assoc->encode, sizeof(*resp)); - resp->records = 0; - resp->presentStatus = odr_intdup(assoc->encode, 0); - if (assoc->init->bend_present) - { - bend_present_rr *bprr = (bend_present_rr *) - nmem_malloc (reqb->request_mem, sizeof(*bprr)); - bprr->setname = req->resultSetId; - bprr->start = *req->resultSetStartPoint; - bprr->number = *req->numberOfRecordsRequested; - bprr->format = req->preferredRecordSyntax; - bprr->comp = req->recordComposition; - bprr->referenceId = req->referenceId; - bprr->stream = assoc->encode; - bprr->print = assoc->print; - bprr->request = reqb; - bprr->association = assoc; - bprr->errcode = 0; - bprr->errstring = NULL; - (*assoc->init->bend_present)(assoc->backend, bprr); - - if (!bprr->request) - return 0; /* should not happen */ - if (bprr->errcode) - { - resp->records = diagrec(assoc, bprr->errcode, bprr->errstring); - *resp->presentStatus = Z_PresentStatus_failure; - errcode = bprr->errcode; - errstring = bprr->errstring; - } - } - apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); - next = odr_intdup(assoc->encode, 0); - num = odr_intdup(assoc->encode, 0); - - apdu->which = Z_APDU_presentResponse; - apdu->u.presentResponse = resp; - resp->referenceId = req->referenceId; - resp->otherInfo = 0; - - if (!resp->records) - { - *num = *req->numberOfRecordsRequested; - resp->records = - pack_records(assoc, req->resultSetId, *req->resultSetStartPoint, - num, req->recordComposition, next, - resp->presentStatus, - req->referenceId, req->preferredRecordSyntax, - &errcode); - } - if (log_request) - { - WRBUF wr = wrbuf_alloc(); - wrbuf_printf(wr, "Present "); - - if (*resp->presentStatus == Z_PresentStatus_failure) - wrbuf_printf(wr, "ERROR %d ", errcode); - else if (*resp->presentStatus == Z_PresentStatus_success) - wrbuf_printf(wr, "OK - "); - else - wrbuf_printf(wr, "Partial %d - ", *resp->presentStatus); - - wrbuf_printf(wr, " %s %d+%d ", - req->resultSetId, *req->resultSetStartPoint, - *req->numberOfRecordsRequested); - yaz_log(log_request, "%s", wrbuf_cstr(wr) ); - wrbuf_destroy(wr); - } - if (!resp->records) - return 0; - resp->numberOfRecordsReturned = num; - resp->nextResultSetPosition = next; - - return apdu; -} - -/* - * Scan was implemented rather in a hurry, and with support for only the basic - * elements of the service in the backend API. Suggestions are welcome. - */ -static Z_APDU *process_scanRequest(association *assoc, request *reqb, int *fd) -{ - Z_ScanRequest *req = reqb->apdu_request->u.scanRequest; - Z_APDU *apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); - Z_ScanResponse *res = (Z_ScanResponse *) - odr_malloc (assoc->encode, sizeof(*res)); - int *scanStatus = odr_intdup(assoc->encode, Z_Scan_failure); - int *numberOfEntriesReturned = odr_intdup(assoc->encode, 0); - Z_ListEntries *ents = (Z_ListEntries *) - odr_malloc (assoc->encode, sizeof(*ents)); - Z_DiagRecs *diagrecs_p = NULL; - bend_scan_rr *bsrr = (bend_scan_rr *) - odr_malloc (assoc->encode, sizeof(*bsrr)); - struct scan_entry *save_entries; - - yaz_log(log_requestdetail, "Got ScanRequest"); - - apdu->which = Z_APDU_scanResponse; - apdu->u.scanResponse = res; - res->referenceId = req->referenceId; - - /* if step is absent, set it to 0 */ - res->stepSize = odr_intdup(assoc->encode, 0); - if (req->stepSize) - *res->stepSize = *req->stepSize; - - res->scanStatus = scanStatus; - res->numberOfEntriesReturned = numberOfEntriesReturned; - res->positionOfTerm = 0; - res->entries = ents; - ents->num_entries = 0; - ents->entries = NULL; - ents->num_nonsurrogateDiagnostics = 0; - ents->nonsurrogateDiagnostics = NULL; - res->attributeSet = 0; - res->otherInfo = 0; - - if (req->databaseNames) - { - int i; - for (i = 0; i < req->num_databaseNames; i++) - yaz_log (log_requestdetail, "Database '%s'", req->databaseNames[i]); - } - bsrr->scanClause = 0; - bsrr->errcode = 0; - bsrr->errstring = 0; - bsrr->num_bases = req->num_databaseNames; - bsrr->basenames = req->databaseNames; - bsrr->num_entries = *req->numberOfTermsRequested; - bsrr->term = req->termListAndStartPoint; - bsrr->referenceId = req->referenceId; - bsrr->stream = assoc->encode; - bsrr->print = assoc->print; - bsrr->step_size = res->stepSize; - bsrr->setname = yaz_oi_get_string_oid(&req->otherInfo, - yaz_oid_userinfo_scan_set, 1, 0); - bsrr->entries = 0; - /* For YAZ 2.0 and earlier it was the backend handler that - initialized entries (member display_term did not exist) - YAZ 2.0 and later sets 'entries' and initialize all members - including 'display_term'. If YAZ 2.0 or later sees that - entries was modified - we assume that it is an old handler and - that 'display_term' is _not_ set. - */ - if (bsrr->num_entries > 0) - { - int i; - bsrr->entries = (struct scan_entry *) - odr_malloc(assoc->decode, sizeof(*bsrr->entries) * - bsrr->num_entries); - for (i = 0; inum_entries; i++) - { - bsrr->entries[i].term = 0; - bsrr->entries[i].occurrences = 0; - bsrr->entries[i].errcode = 0; - bsrr->entries[i].errstring = 0; - bsrr->entries[i].display_term = 0; - } - } - save_entries = bsrr->entries; /* save it so we can compare later */ - - bsrr->attributeset = req->attributeSet; - log_scan_term_level (log_requestdetail, req->termListAndStartPoint, - bsrr->attributeset); - bsrr->term_position = req->preferredPositionInResponse ? - *req->preferredPositionInResponse : 1; - - ((int (*)(void *, bend_scan_rr *)) - (*assoc->init->bend_scan))(assoc->backend, bsrr); - - if (bsrr->errcode) - diagrecs_p = zget_DiagRecs(assoc->encode, - bsrr->errcode, bsrr->errstring); - else - { - int i; - Z_Entry **tab = (Z_Entry **) - odr_malloc (assoc->encode, sizeof(*tab) * bsrr->num_entries); - - if (bsrr->status == BEND_SCAN_PARTIAL) - *scanStatus = Z_Scan_partial_5; - else - *scanStatus = Z_Scan_success; - ents->entries = tab; - ents->num_entries = bsrr->num_entries; - res->numberOfEntriesReturned = &ents->num_entries; - res->positionOfTerm = &bsrr->term_position; - for (i = 0; i < bsrr->num_entries; i++) - { - Z_Entry *e; - Z_TermInfo *t; - Odr_oct *o; - - tab[i] = e = (Z_Entry *)odr_malloc(assoc->encode, sizeof(*e)); - if (bsrr->entries[i].occurrences >= 0) - { - e->which = Z_Entry_termInfo; - e->u.termInfo = t = (Z_TermInfo *) - odr_malloc(assoc->encode, sizeof(*t)); - t->suggestedAttributes = 0; - t->displayTerm = 0; - if (save_entries == bsrr->entries && - bsrr->entries[i].display_term) - { - /* the entries was _not_ set by the handler. So it's - safe to test for new member display_term. It is - NULL'ed by us. - */ - t->displayTerm = odr_strdup(assoc->encode, - bsrr->entries[i].display_term); - } - t->alternativeTerm = 0; - t->byAttributes = 0; - t->otherTermInfo = 0; - t->globalOccurrences = &bsrr->entries[i].occurrences; - t->term = (Z_Term *) - odr_malloc(assoc->encode, sizeof(*t->term)); - t->term->which = Z_Term_general; - t->term->u.general = o = - (Odr_oct *)odr_malloc(assoc->encode, sizeof(Odr_oct)); - o->buf = (unsigned char *) - odr_malloc(assoc->encode, o->len = o->size = - strlen(bsrr->entries[i].term)); - memcpy(o->buf, bsrr->entries[i].term, o->len); - yaz_log(YLOG_DEBUG, " term #%d: '%s' (%d)", i, - bsrr->entries[i].term, bsrr->entries[i].occurrences); - } - else - { - Z_DiagRecs *drecs = zget_DiagRecs(assoc->encode, - bsrr->entries[i].errcode, - bsrr->entries[i].errstring); - assert (drecs->num_diagRecs == 1); - e->which = Z_Entry_surrogateDiagnostic; - assert (drecs->diagRecs[0]); - e->u.surrogateDiagnostic = drecs->diagRecs[0]; - } - } - } - if (diagrecs_p) - { - ents->num_nonsurrogateDiagnostics = diagrecs_p->num_diagRecs; - ents->nonsurrogateDiagnostics = diagrecs_p->diagRecs; - } - if (log_request) - { - int i; - WRBUF wr = wrbuf_alloc(); - wrbuf_printf(wr, "Scan "); - for (i = 0 ; i < req->num_databaseNames; i++) - { - if (i) - wrbuf_printf(wr, "+"); - wrbuf_printf(wr, req->databaseNames[i]); - } - - wrbuf_printf(wr, " "); - - if (bsrr->errcode) - wr_diag(wr, bsrr->errcode, bsrr->errstring); - else - wrbuf_printf(wr, "OK"); - - wrbuf_printf(wr, " %d - %d+%d+%d", - res->numberOfEntriesReturned ? - *res->numberOfEntriesReturned : 0, - (req->preferredPositionInResponse ? - *req->preferredPositionInResponse : 1), - *req->numberOfTermsRequested, - (res->stepSize ? *res->stepSize : 1)); - - if (bsrr->setname) - wrbuf_printf(wr, "+%s", bsrr->setname); - - wrbuf_printf(wr, " "); - yaz_scan_to_wrbuf(wr, req->termListAndStartPoint, - bsrr->attributeset); - yaz_log(log_request, "%s", wrbuf_cstr(wr) ); - wrbuf_destroy(wr); - } - return apdu; -} - -static Z_APDU *process_sortRequest(association *assoc, request *reqb, - int *fd) -{ - int i; - Z_SortRequest *req = reqb->apdu_request->u.sortRequest; - Z_SortResponse *res = (Z_SortResponse *) - odr_malloc (assoc->encode, sizeof(*res)); - bend_sort_rr *bsrr = (bend_sort_rr *) - odr_malloc (assoc->encode, sizeof(*bsrr)); - - Z_APDU *apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); - - yaz_log(log_requestdetail, "Got SortRequest."); - - bsrr->num_input_setnames = req->num_inputResultSetNames; - for (i=0;inum_inputResultSetNames;i++) - yaz_log(log_requestdetail, "Input resultset: '%s'", - req->inputResultSetNames[i]); - bsrr->input_setnames = req->inputResultSetNames; - bsrr->referenceId = req->referenceId; - bsrr->output_setname = req->sortedResultSetName; - yaz_log(log_requestdetail, "Output resultset: '%s'", - req->sortedResultSetName); - bsrr->sort_sequence = req->sortSequence; - /*FIXME - dump those sequences too */ - bsrr->stream = assoc->encode; - bsrr->print = assoc->print; - - bsrr->sort_status = Z_SortResponse_failure; - bsrr->errcode = 0; - bsrr->errstring = 0; - - (*assoc->init->bend_sort)(assoc->backend, bsrr); - - res->referenceId = bsrr->referenceId; - res->sortStatus = odr_intdup(assoc->encode, bsrr->sort_status); - res->resultSetStatus = 0; - if (bsrr->errcode) - { - Z_DiagRecs *dr = zget_DiagRecs(assoc->encode, - bsrr->errcode, bsrr->errstring); - res->diagnostics = dr->diagRecs; - res->num_diagnostics = dr->num_diagRecs; - } - else - { - res->num_diagnostics = 0; - res->diagnostics = 0; - } - res->resultCount = 0; - res->otherInfo = 0; - - apdu->which = Z_APDU_sortResponse; - apdu->u.sortResponse = res; - if (log_request) - { - WRBUF wr = wrbuf_alloc(); - wrbuf_printf(wr, "Sort "); - if (bsrr->errcode) - wrbuf_printf(wr, " ERROR %d", bsrr->errcode); - else - wrbuf_printf(wr, "OK -"); - wrbuf_printf(wr, " ("); - for (i = 0; inum_inputResultSetNames; i++) - { - if (i) - wrbuf_printf(wr, "+"); - wrbuf_printf(wr, req->inputResultSetNames[i]); - } - wrbuf_printf(wr, ")->%s ",req->sortedResultSetName); - - yaz_log(log_request, "%s", wrbuf_cstr(wr) ); - wrbuf_destroy(wr); - } - return apdu; -} - -static Z_APDU *process_deleteRequest(association *assoc, request *reqb, - int *fd) -{ - int i; - Z_DeleteResultSetRequest *req = - reqb->apdu_request->u.deleteResultSetRequest; - Z_DeleteResultSetResponse *res = (Z_DeleteResultSetResponse *) - odr_malloc (assoc->encode, sizeof(*res)); - bend_delete_rr *bdrr = (bend_delete_rr *) - odr_malloc (assoc->encode, sizeof(*bdrr)); - Z_APDU *apdu = (Z_APDU *)odr_malloc (assoc->encode, sizeof(*apdu)); - - yaz_log(log_requestdetail, "Got DeleteRequest."); - - bdrr->num_setnames = req->num_resultSetList; - bdrr->setnames = req->resultSetList; - for (i = 0; inum_resultSetList; i++) - yaz_log(log_requestdetail, "resultset: '%s'", - req->resultSetList[i]); - bdrr->stream = assoc->encode; - bdrr->print = assoc->print; - bdrr->function = *req->deleteFunction; - bdrr->referenceId = req->referenceId; - bdrr->statuses = 0; - if (bdrr->num_setnames > 0) - { - bdrr->statuses = (int*) - odr_malloc(assoc->encode, sizeof(*bdrr->statuses) * - bdrr->num_setnames); - for (i = 0; i < bdrr->num_setnames; i++) - bdrr->statuses[i] = 0; - } - (*assoc->init->bend_delete)(assoc->backend, bdrr); - - res->referenceId = req->referenceId; - - res->deleteOperationStatus = odr_intdup(assoc->encode,bdrr->delete_status); - - res->deleteListStatuses = 0; - if (bdrr->num_setnames > 0) - { - int i; - res->deleteListStatuses = (Z_ListStatuses *) - odr_malloc(assoc->encode, sizeof(*res->deleteListStatuses)); - res->deleteListStatuses->num = bdrr->num_setnames; - res->deleteListStatuses->elements = - (Z_ListStatus **) - odr_malloc (assoc->encode, - sizeof(*res->deleteListStatuses->elements) * - bdrr->num_setnames); - for (i = 0; inum_setnames; i++) - { - res->deleteListStatuses->elements[i] = - (Z_ListStatus *) - odr_malloc (assoc->encode, - sizeof(**res->deleteListStatuses->elements)); - res->deleteListStatuses->elements[i]->status = bdrr->statuses+i; - res->deleteListStatuses->elements[i]->id = - odr_strdup (assoc->encode, bdrr->setnames[i]); - } - } - res->numberNotDeleted = 0; - res->bulkStatuses = 0; - res->deleteMessage = 0; - res->otherInfo = 0; - - apdu->which = Z_APDU_deleteResultSetResponse; - apdu->u.deleteResultSetResponse = res; - if (log_request) - { - WRBUF wr = wrbuf_alloc(); - wrbuf_printf(wr, "Delete "); - if (bdrr->delete_status) - wrbuf_printf(wr, "ERROR %d", bdrr->delete_status); - else - wrbuf_printf(wr, "OK -"); - for (i = 0; inum_resultSetList; i++) - wrbuf_printf(wr, " %s ", req->resultSetList[i]); - yaz_log(log_request, "%s", wrbuf_cstr(wr) ); - wrbuf_destroy(wr); - } - return apdu; -} - -static void process_close(association *assoc, request *reqb) -{ - Z_Close *req = reqb->apdu_request->u.close; - static char *reasons[] = - { - "finished", - "shutdown", - "systemProblem", - "costLimit", - "resources", - "securityViolation", - "protocolError", - "lackOfActivity", - "peerAbort", - "unspecified" - }; - - yaz_log(log_requestdetail, "Got Close, reason %s, message %s", - reasons[*req->closeReason], req->diagnosticInformation ? - req->diagnosticInformation : "NULL"); - if (assoc->version < 3) /* to make do_force respond with close */ - assoc->version = 3; - do_close_req(assoc, Z_Close_finished, - "Association terminated by client", reqb); - yaz_log(log_request,"Close OK"); -} - -void save_referenceId (request *reqb, Z_ReferenceId *refid) -{ - if (refid) - { - reqb->len_refid = refid->len; - reqb->refid = (char *)nmem_malloc (reqb->request_mem, refid->len); - memcpy (reqb->refid, refid->buf, refid->len); - } - else - { - reqb->len_refid = 0; - reqb->refid = NULL; - } -} - -void bend_request_send (bend_association a, bend_request req, Z_APDU *res) -{ - process_z_response (a, req, res); -} - -bend_request bend_request_mk (bend_association a) -{ - request *nreq = request_get (&a->outgoing); - nreq->request_mem = nmem_create (); - return nreq; -} - -Z_ReferenceId *bend_request_getid (ODR odr, bend_request req) -{ - Z_ReferenceId *id; - if (!req->refid) - return 0; - id = (Odr_oct *)odr_malloc (odr, sizeof(*odr)); - id->buf = (unsigned char *)odr_malloc (odr, req->len_refid); - id->len = id->size = req->len_refid; - memcpy (id->buf, req->refid, req->len_refid); - return id; -} - -void bend_request_destroy (bend_request *req) -{ - nmem_destroy((*req)->request_mem); - request_release(*req); - *req = NULL; -} - -int bend_backend_respond (bend_association a, bend_request req) -{ - char *msg; - int r; - r = process_z_request (a, req, &msg); - if (r < 0) - yaz_log (YLOG_WARN, "%s", msg); - return r; -} - -void bend_request_setdata(bend_request r, void *p) -{ - r->clientData = p; -} - -void *bend_request_getdata(bend_request r) -{ - return r->clientData; -} - -static Z_APDU *process_segmentRequest (association *assoc, request *reqb) -{ - bend_segment_rr req; - - req.segment = reqb->apdu_request->u.segmentRequest; - req.stream = assoc->encode; - req.decode = assoc->decode; - req.print = assoc->print; - req.association = assoc; - - (*assoc->init->bend_segment)(assoc->backend, &req); - - return 0; -} - -static Z_APDU *process_ESRequest(association *assoc, request *reqb, int *fd) -{ - bend_esrequest_rr esrequest; - const char *ext_name = "unknown"; - - Z_ExtendedServicesRequest *req = - reqb->apdu_request->u.extendedServicesRequest; - Z_APDU *apdu = zget_APDU(assoc->encode, Z_APDU_extendedServicesResponse); - - Z_ExtendedServicesResponse *resp = apdu->u.extendedServicesResponse; - - esrequest.esr = reqb->apdu_request->u.extendedServicesRequest; - esrequest.stream = assoc->encode; - esrequest.decode = assoc->decode; - esrequest.print = assoc->print; - esrequest.errcode = 0; - esrequest.errstring = NULL; - esrequest.request = reqb; - esrequest.association = assoc; - esrequest.taskPackage = 0; - esrequest.referenceId = req->referenceId; - - - if (esrequest.esr && esrequest.esr->taskSpecificParameters) - { - switch(esrequest.esr->taskSpecificParameters->which) - { - case Z_External_itemOrder: - ext_name = "ItemOrder"; break; - case Z_External_update: - ext_name = "Update"; break; - case Z_External_update0: - ext_name = "Update0"; break; - case Z_External_ESAdmin: - ext_name = "Admin"; break; - - } - } - - (*assoc->init->bend_esrequest)(assoc->backend, &esrequest); - - /* If the response is being delayed, return NULL */ - if (esrequest.request == NULL) - return(NULL); - - resp->referenceId = req->referenceId; - - if (esrequest.errcode == -1) - { - /* Backend service indicates request will be processed */ - yaz_log(log_request, "Extended Service: %s (accepted)", ext_name); - *resp->operationStatus = Z_ExtendedServicesResponse_accepted; - } - else if (esrequest.errcode == 0) - { - /* Backend service indicates request will be processed */ - yaz_log(log_request, "Extended Service: %s (done)", ext_name); - *resp->operationStatus = Z_ExtendedServicesResponse_done; - } - else - { - Z_DiagRecs *diagRecs = - zget_DiagRecs(assoc->encode, esrequest.errcode, - esrequest.errstring); - /* Backend indicates error, request will not be processed */ - yaz_log(log_request, "Extended Service: %s (failed)", ext_name); - *resp->operationStatus = Z_ExtendedServicesResponse_failure; - resp->num_diagnostics = diagRecs->num_diagRecs; - resp->diagnostics = diagRecs->diagRecs; - if (log_request) - { - WRBUF wr = wrbuf_alloc(); - wrbuf_diags(wr, resp->num_diagnostics, resp->diagnostics); - yaz_log(log_request, "EsRequest %s", wrbuf_cstr(wr) ); - wrbuf_destroy(wr); - } - - } - /* Do something with the members of bend_extendedservice */ - if (esrequest.taskPackage) - { - resp->taskPackage = z_ext_record_oid( - assoc->encode, yaz_oid_recsyn_extended, - (const char *) esrequest.taskPackage, -1 - ); - } - yaz_log(YLOG_DEBUG,"Send the result apdu"); - return apdu; -} - -int bend_assoc_is_alive(bend_association assoc) -{ - if (assoc->state == ASSOC_DEAD) - return 0; /* already marked as dead. Don't check I/O chan anymore */ - - return iochan_is_alive(assoc->client_chan); -} - - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/session.h b/dependencies/yaz_3.0.14/src/session.h deleted file mode 100644 index fa07fb6..0000000 --- a/dependencies/yaz_3.0.14/src/session.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: session.h,v 1.15 2007/08/13 16:46:19 mike Exp $ - */ -/** - * \file session.h - * \brief Internal Header for GFS. - */ -#ifndef SESSION_H -#define SESSION_H - -#include -#include -#include -#include -#include -#include -#include -#include "eventl.h" - -struct gfs_server { - statserv_options_block cb; - char *host; - int listen_ref; - cql_transform_t cql_transform; - CCL_bibset ccl_transform; - void *server_node_ptr; - char *directory; - char *docpath; - char *stylesheet; - yaz_retrieval_t retrieval; - struct gfs_server *next; -}; - -struct gfs_listen { - char *id; - char *address; - struct gfs_listen *next; -}; - -typedef enum { - REQUEST_IDLE, /* the request is just sitting in the queue */ - REQUEST_PENDING /* operation pending (b'end processing or network I/O*/ - /* this list will have more elements when acc/res control is added */ -} request_state; - -typedef struct request -{ - int len_refid; /* length of referenceid */ - char *refid; /* referenceid */ - request_state state; - - Z_GDU *gdu_request; /* Current request */ - Z_APDU *apdu_request; /* Current Z39.50 request */ - NMEM request_mem; /* memory handle for request */ - - int size_response; /* size of buffer */ - int len_response; /* length of encoded data */ - char *response; /* encoded data waiting for transmission */ - - void *clientData; - struct request *next; - struct request_q *q; -} request; - -typedef struct request_q -{ - request *head; - request *tail; - request *list; - int num; -} request_q; - -/* - * association state. - */ -typedef enum -{ - ASSOC_NEW, /* not initialized yet */ - ASSOC_UP, /* normal operation */ - ASSOC_DEAD /* dead. Close if input arrives */ -} association_state; - -typedef struct association -{ - IOCHAN client_chan; /* event-loop control */ - COMSTACK client_link; /* communication handle */ - ODR decode; /* decoding stream */ - ODR encode; /* encoding stream */ - ODR print; /* printing stream (for -a) */ - char *encode_buffer; /* temporary buffer for encoded data */ - int encoded_len; /* length of encoded data */ - char *input_buffer; /* input buffer (allocated by comstack) */ - int input_buffer_len; /* length (size) of buffer */ - int input_apdu_len; /* length of current incoming APDU */ - oid_proto proto; /* protocol (PROTO_Z3950/PROTO_SR) */ - void *backend; /* backend handle */ - request_q incoming; /* Q of incoming PDUs */ - request_q outgoing; /* Q of outgoing data buffers (enc. PDUs) */ - association_state state; - - /* session parameters */ - int preferredMessageSize; - int maximumRecordSize; - int version; /* highest version-bit set (2 or 3) */ - - unsigned cs_get_mask; - unsigned cs_put_mask; - unsigned cs_accept_mask; - - struct bend_initrequest *init; - statserv_options_block *last_control; - - struct gfs_server *server; -} association; - -association *create_association(IOCHAN channel, COMSTACK link, - const char *apdufile); -void destroy_association(association *h); -void ir_session(IOCHAN h, int event); - -void request_enq(request_q *q, request *r); -request *request_head(request_q *q); -request *request_deq(request_q *q); -request *request_deq_x(request_q *q, request *r); -void request_initq(request_q *q); -void request_delq(request_q *q); -request *request_get(request_q *q); -void request_release(request *r); - -int statserv_must_terminate(void); - -int control_association(association *assoc, const char *host, int force); - -int ir_read(IOCHAN h, int event); - -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/siconv.c b/dependencies/yaz_3.0.14/src/siconv.c deleted file mode 100644 index e68e500..0000000 --- a/dependencies/yaz_3.0.14/src/siconv.c +++ /dev/null @@ -1,1981 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: siconv.c,v 1.43 2007/09/17 19:18:27 adam Exp $ - */ -/** - * \file siconv.c - * \brief Implements simple ICONV - * - * This implements an interface similar to that of iconv and - * is used by YAZ to interface with iconv (if present). - * For systems where iconv is not present, this layer - * provides a few important conversions: UTF-8, MARC-8, Latin-1. - * - * MARC-8 reference: - * http://www.loc.gov/marc/specifications/speccharmarc8.html - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include -#if HAVE_WCHAR_H -#include -#endif - -#if HAVE_ICONV_H -#include -#endif - - -#include - -unsigned long yaz_marc8_42_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_45_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_67_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_62_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_70_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_32_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_4E_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_51_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_33_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_34_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_53_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8_31_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); - - -unsigned long yaz_marc8r_42_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_45_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_67_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_62_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_70_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_32_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_4E_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_51_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_33_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_34_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_53_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); -unsigned long yaz_marc8r_31_conv(unsigned char *inp, size_t inbytesleft, - size_t *no_read, int *combining); - -struct yaz_iconv_struct { - int my_errno; - int init_flag; - size_t (*init_handle)(yaz_iconv_t cd, unsigned char *inbuf, - size_t inbytesleft, size_t *no_read); - unsigned long (*read_handle)(yaz_iconv_t cd, unsigned char *inbuf, - size_t inbytesleft, size_t *no_read); - size_t (*write_handle)(yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft); - size_t (*flush_handle)(yaz_iconv_t cd, - char **outbuf, size_t *outbytesleft); - int marc8_esc_mode; - - int comb_offset; - int comb_size; - unsigned long comb_x[8]; - size_t comb_no_read[8]; - size_t no_read_x; - unsigned long unget_x; -#if HAVE_ICONV_H - iconv_t iconv_cd; -#endif - unsigned long compose_char; - - unsigned long write_marc8_comb_ch[8]; - size_t write_marc8_comb_no; - unsigned write_marc8_second_half_char; - unsigned long write_marc8_last; - const char *write_marc8_page_chr; -}; - -static struct { - unsigned long x1, x2; - unsigned y; -} latin1_comb[] = { - { 'A', 0x0300, 0xc0}, /* LATIN CAPITAL LETTER A WITH GRAVE */ - { 'A', 0x0301, 0xc1}, /* LATIN CAPITAL LETTER A WITH ACUTE */ - { 'A', 0x0302, 0xc2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ - { 'A', 0x0303, 0xc3}, /* LATIN CAPITAL LETTER A WITH TILDE */ - { 'A', 0x0308, 0xc4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */ - { 'A', 0x030a, 0xc5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */ - /* no need for 0xc6 LATIN CAPITAL LETTER AE */ - { 'C', 0x0327, 0xc7}, /* LATIN CAPITAL LETTER C WITH CEDILLA */ - { 'E', 0x0300, 0xc8}, /* LATIN CAPITAL LETTER E WITH GRAVE */ - { 'E', 0x0301, 0xc9}, /* LATIN CAPITAL LETTER E WITH ACUTE */ - { 'E', 0x0302, 0xca}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ - { 'E', 0x0308, 0xcb}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */ - { 'I', 0x0300, 0xcc}, /* LATIN CAPITAL LETTER I WITH GRAVE */ - { 'I', 0x0301, 0xcd}, /* LATIN CAPITAL LETTER I WITH ACUTE */ - { 'I', 0x0302, 0xce}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ - { 'I', 0x0308, 0xcf}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */ - { 'N', 0x0303, 0xd1}, /* LATIN CAPITAL LETTER N WITH TILDE */ - { 'O', 0x0300, 0xd2}, /* LATIN CAPITAL LETTER O WITH GRAVE */ - { 'O', 0x0301, 0xd3}, /* LATIN CAPITAL LETTER O WITH ACUTE */ - { 'O', 0x0302, 0xd4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ - { 'O', 0x0303, 0xd5}, /* LATIN CAPITAL LETTER O WITH TILDE */ - { 'O', 0x0308, 0xd6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */ - /* omitted: 0xd7 MULTIPLICATION SIGN */ - /* omitted: 0xd8 LATIN CAPITAL LETTER O WITH STROKE */ - { 'U', 0x0300, 0xd9}, /* LATIN CAPITAL LETTER U WITH GRAVE */ - { 'U', 0x0301, 0xda}, /* LATIN CAPITAL LETTER U WITH ACUTE */ - { 'U', 0x0302, 0xdb}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ - { 'U', 0x0308, 0xdc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */ - { 'Y', 0x0301, 0xdd}, /* LATIN CAPITAL LETTER Y WITH ACUTE */ - /* omitted: 0xde LATIN CAPITAL LETTER THORN */ - /* omitted: 0xdf LATIN SMALL LETTER SHARP S */ - { 'a', 0x0300, 0xe0}, /* LATIN SMALL LETTER A WITH GRAVE */ - { 'a', 0x0301, 0xe1}, /* LATIN SMALL LETTER A WITH ACUTE */ - { 'a', 0x0302, 0xe2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */ - { 'a', 0x0303, 0xe3}, /* LATIN SMALL LETTER A WITH TILDE */ - { 'a', 0x0308, 0xe4}, /* LATIN SMALL LETTER A WITH DIAERESIS */ - { 'a', 0x030a, 0xe5}, /* LATIN SMALL LETTER A WITH RING ABOVE */ - /* omitted: 0xe6 LATIN SMALL LETTER AE */ - { 'c', 0x0327, 0xe7}, /* LATIN SMALL LETTER C WITH CEDILLA */ - { 'e', 0x0300, 0xe8}, /* LATIN SMALL LETTER E WITH GRAVE */ - { 'e', 0x0301, 0xe9}, /* LATIN SMALL LETTER E WITH ACUTE */ - { 'e', 0x0302, 0xea}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */ - { 'e', 0x0308, 0xeb}, /* LATIN SMALL LETTER E WITH DIAERESIS */ - { 'i', 0x0300, 0xec}, /* LATIN SMALL LETTER I WITH GRAVE */ - { 'i', 0x0301, 0xed}, /* LATIN SMALL LETTER I WITH ACUTE */ - { 'i', 0x0302, 0xee}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */ - { 'i', 0x0308, 0xef}, /* LATIN SMALL LETTER I WITH DIAERESIS */ - /* omitted: 0xf0 LATIN SMALL LETTER ETH */ - { 'n', 0x0303, 0xf1}, /* LATIN SMALL LETTER N WITH TILDE */ - { 'o', 0x0300, 0xf2}, /* LATIN SMALL LETTER O WITH GRAVE */ - { 'o', 0x0301, 0xf3}, /* LATIN SMALL LETTER O WITH ACUTE */ - { 'o', 0x0302, 0xf4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */ - { 'o', 0x0303, 0xf5}, /* LATIN SMALL LETTER O WITH TILDE */ - { 'o', 0x0308, 0xf6}, /* LATIN SMALL LETTER O WITH DIAERESIS */ - /* omitted: 0xf7 DIVISION SIGN */ - /* omitted: 0xf8 LATIN SMALL LETTER O WITH STROKE */ - { 'u', 0x0300, 0xf9}, /* LATIN SMALL LETTER U WITH GRAVE */ - { 'u', 0x0301, 0xfa}, /* LATIN SMALL LETTER U WITH ACUTE */ - { 'u', 0x0302, 0xfb}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */ - { 'u', 0x0308, 0xfc}, /* LATIN SMALL LETTER U WITH DIAERESIS */ - { 'y', 0x0301, 0xfd}, /* LATIN SMALL LETTER Y WITH ACUTE */ - /* omitted: 0xfe LATIN SMALL LETTER THORN */ - { 'y', 0x0308, 0xff}, /* LATIN SMALL LETTER Y WITH DIAERESIS */ - - { 0, 0, 0} -}; - -static unsigned long yaz_read_ISO8859_1 (yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - unsigned long x = inp[0]; - *no_read = 1; - return x; -} - - -static size_t yaz_init_UTF8 (yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - if (inp[0] != 0xef) - { - *no_read = 0; - return 0; - } - if (inbytesleft < 3) - { - cd->my_errno = YAZ_ICONV_EINVAL; - return (size_t) -1; - } - if (inp[1] != 0xbb && inp[2] == 0xbf) - *no_read = 3; - else - *no_read = 0; - return 0; -} - -unsigned long yaz_read_UTF8_char(unsigned char *inp, - size_t inbytesleft, size_t *no_read, - int *error) -{ - unsigned long x = 0; - - *no_read = 0; /* by default */ - if (inp[0] <= 0x7f) - { - x = inp[0]; - *no_read = 1; - } - else if (inp[0] <= 0xbf || inp[0] >= 0xfe) - { - *error = YAZ_ICONV_EILSEQ; - } - else if (inp[0] <= 0xdf && inbytesleft >= 2) - { - if ((inp[1] & 0xc0) == 0x80) - { - x = ((inp[0] & 0x1f) << 6) | (inp[1] & 0x3f); - if (x >= 0x80) - *no_read = 2; - else - *error = YAZ_ICONV_EILSEQ; - } - else - *error = YAZ_ICONV_EILSEQ; - } - else if (inp[0] <= 0xef && inbytesleft >= 3) - { - if ((inp[1] & 0xc0) == 0x80 && (inp[2] & 0xc0) == 0x80) - { - x = ((inp[0] & 0x0f) << 12) | ((inp[1] & 0x3f) << 6) | - (inp[2] & 0x3f); - if (x >= 0x800) - *no_read = 3; - else - *error = YAZ_ICONV_EILSEQ; - } - else - *error = YAZ_ICONV_EILSEQ; - } - else if (inp[0] <= 0xf7 && inbytesleft >= 4) - { - if ((inp[1] & 0xc0) == 0x80 && (inp[2] & 0xc0) == 0x80 - && (inp[3] & 0xc0) == 0x80) - { - x = ((inp[0] & 0x07) << 18) | ((inp[1] & 0x3f) << 12) | - ((inp[2] & 0x3f) << 6) | (inp[3] & 0x3f); - if (x >= 0x10000) - *no_read = 4; - else - *error = YAZ_ICONV_EILSEQ; - } - else - *error = YAZ_ICONV_EILSEQ; - } - else if (inp[0] <= 0xfb && inbytesleft >= 5) - { - if ((inp[1] & 0xc0) == 0x80 && (inp[2] & 0xc0) == 0x80 - && (inp[3] & 0xc0) == 0x80 && (inp[4] & 0xc0) == 0x80) - { - x = ((inp[0] & 0x03) << 24) | ((inp[1] & 0x3f) << 18) | - ((inp[2] & 0x3f) << 12) | ((inp[3] & 0x3f) << 6) | - (inp[4] & 0x3f); - if (x >= 0x200000) - *no_read = 5; - else - *error = YAZ_ICONV_EILSEQ; - } - else - *error = YAZ_ICONV_EILSEQ; - } - else if (inp[0] <= 0xfd && inbytesleft >= 6) - { - if ((inp[1] & 0xc0) == 0x80 && (inp[2] & 0xc0) == 0x80 - && (inp[3] & 0xc0) == 0x80 && (inp[4] & 0xc0) == 0x80 - && (inp[5] & 0xc0) == 0x80) - { - x = ((inp[0] & 0x01) << 30) | ((inp[1] & 0x3f) << 24) | - ((inp[2] & 0x3f) << 18) | ((inp[3] & 0x3f) << 12) | - ((inp[4] & 0x3f) << 6) | (inp[5] & 0x3f); - if (x >= 0x4000000) - *no_read = 6; - else - *error = YAZ_ICONV_EILSEQ; - } - else - *error = YAZ_ICONV_EILSEQ; - } - else - *error = YAZ_ICONV_EINVAL; /* incomplete sentence */ - - return x; -} - -static unsigned long yaz_read_UTF8 (yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - return yaz_read_UTF8_char(inp, inbytesleft, no_read, &cd->my_errno); -} - -static unsigned long yaz_read_UCS4 (yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - unsigned long x = 0; - - if (inbytesleft < 4) - { - cd->my_errno = YAZ_ICONV_EINVAL; /* incomplete input */ - *no_read = 0; - } - else - { - x = (inp[0]<<24) | (inp[1]<<16) | (inp[2]<<8) | inp[3]; - *no_read = 4; - } - return x; -} - -static unsigned long yaz_read_UCS4LE (yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - unsigned long x = 0; - - if (inbytesleft < 4) - { - cd->my_errno = YAZ_ICONV_EINVAL; /* incomplete input */ - *no_read = 0; - } - else - { - x = (inp[3]<<24) | (inp[2]<<16) | (inp[1]<<8) | inp[0]; - *no_read = 4; - } - return x; -} - -#if HAVE_WCHAR_H -static unsigned long yaz_read_wchar_t (yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - unsigned long x = 0; - - if (inbytesleft < sizeof(wchar_t)) - { - cd->my_errno = YAZ_ICONV_EINVAL; /* incomplete input */ - *no_read = 0; - } - else - { - wchar_t wch; - memcpy (&wch, inp, sizeof(wch)); - x = wch; - *no_read = sizeof(wch); - } - return x; -} -#endif - -static unsigned long yaz_read_iso5428_1984(yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - unsigned long x = 0; - int tonos = 0; - int dialitika = 0; - - *no_read = 0; - while (inbytesleft > 0) - { - if (*inp == 0xa2) - { - tonos = 1; - } - else if (*inp == 0xa3) - { - dialitika = 1; - } - else - break; - inp++; - --inbytesleft; - (*no_read)++; - } - if (inbytesleft == 0) - { - cd->my_errno = YAZ_ICONV_EINVAL; /* incomplete input */ - *no_read = 0; - return 0; - } - switch (*inp) { - case 0xe1: /* alpha small */ - if (tonos) - x = 0x03ac; - else - x = 0x03b1; - break; - case 0xc1: /* alpha capital */ - if (tonos) - x = 0x0386; - else - x = 0x0391; - break; - - case 0xe2: /* Beta small */ - x = 0x03b2; - break; - case 0xc2: /* Beta capital */ - x = 0x0392; - break; - - case 0xe4: /* Gamma small */ - x = 0x03b3; - break; - case 0xc4: /* Gamma capital */ - x = 0x0393; - break; - - case 0xe5: /* Delta small */ - x = 0x03b4; - break; - case 0xc5: /* Delta capital */ - x = 0x0394; - break; - case 0xe6: /* epsilon small */ - if (tonos) - x = 0x03ad; - else - x = 0x03b5; - break; - case 0xc6: /* epsilon capital */ - if (tonos) - x = 0x0388; - else - x = 0x0395; - break; - case 0xe9: /* Zeta small */ - x = 0x03b6; - break; - case 0xc9: /* Zeta capital */ - x = 0x0396; - break; - case 0xea: /* Eta small */ - if (tonos) - x = 0x03ae; - else - x = 0x03b7; - break; - case 0xca: /* Eta capital */ - if (tonos) - x = 0x0389; - else - x = 0x0397; - break; - case 0xeb: /* Theta small */ - x = 0x03b8; - break; - case 0xcb: /* Theta capital */ - x = 0x0398; - break; - case 0xec: /* Iota small */ - if (tonos) - if (dialitika) - x = 0x0390; - else - x = 0x03af; - else - if (dialitika) - x = 0x03ca; - else - x = 0x03b9; - break; - case 0xcc: /* Iota capital */ - if (tonos) - x = 0x038a; - else - if (dialitika) - x = 0x03aa; - else - x = 0x0399; - break; - case 0xed: /* Kappa small */ - x = 0x03ba; - break; - case 0xcd: /* Kappa capital */ - x = 0x039a; - break; - case 0xee: /* Lambda small */ - x = 0x03bb; - break; - case 0xce: /* Lambda capital */ - x = 0x039b; - break; - case 0xef: /* Mu small */ - x = 0x03bc; - break; - case 0xcf: /* Mu capital */ - x = 0x039c; - break; - case 0xf0: /* Nu small */ - x = 0x03bd; - break; - case 0xd0: /* Nu capital */ - x = 0x039d; - break; - case 0xf1: /* Xi small */ - x = 0x03be; - break; - case 0xd1: /* Xi capital */ - x = 0x039e; - break; - case 0xf2: /* Omicron small */ - if (tonos) - x = 0x03cc; - else - x = 0x03bf; - break; - case 0xd2: /* Omicron capital */ - if (tonos) - x = 0x038c; - else - x = 0x039f; - break; - case 0xf3: /* Pi small */ - x = 0x03c0; - break; - case 0xd3: /* Pi capital */ - x = 0x03a0; - break; - case 0xf5: /* Rho small */ - x = 0x03c1; - break; - case 0xd5: /* Rho capital */ - x = 0x03a1; - break; - case 0xf7: /* Sigma small (end of words) */ - x = 0x03c2; - break; - case 0xf6: /* Sigma small */ - x = 0x03c3; - break; - case 0xd6: /* Sigma capital */ - x = 0x03a3; - break; - case 0xf8: /* Tau small */ - x = 0x03c4; - break; - case 0xd8: /* Tau capital */ - x = 0x03a4; - break; - case 0xf9: /* Upsilon small */ - if (tonos) - if (dialitika) - x = 0x03b0; - else - x = 0x03cd; - else - if (dialitika) - x = 0x03cb; - else - x = 0x03c5; - break; - case 0xd9: /* Upsilon capital */ - if (tonos) - x = 0x038e; - else - if (dialitika) - x = 0x03ab; - else - x = 0x03a5; - break; - case 0xfa: /* Phi small */ - x = 0x03c6; - break; - case 0xda: /* Phi capital */ - x = 0x03a6; - break; - case 0xfb: /* Chi small */ - x = 0x03c7; - break; - case 0xdb: /* Chi capital */ - x = 0x03a7; - break; - case 0xfc: /* Psi small */ - x = 0x03c8; - break; - case 0xdc: /* Psi capital */ - x = 0x03a8; - break; - case 0xfd: /* Omega small */ - if (tonos) - x = 0x03ce; - else - x = 0x03c9; - break; - case 0xdd: /* Omega capital */ - if (tonos) - x = 0x038f; - else - x = 0x03a9; - break; - default: - x = *inp; - break; - } - (*no_read)++; - - return x; -} - -static size_t yaz_write_iso5428_1984(yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - size_t k = 0; - unsigned char *out = (unsigned char*) *outbuf; - if (*outbytesleft < 3) - { - cd->my_errno = YAZ_ICONV_E2BIG; /* not room for output */ - return (size_t)(-1); - } - switch (x) - { - case 0x03ac : out[k++]=0xa2; out[k++]=0xe1; break; - case 0x03b1 : out[k++]=0xe1; break; - case 0x0386 : out[k++]=0xa2; out[k++]=0xc1; break; - case 0x0391 : out[k++]=0xc1; break; - case 0x03b2 : out[k++]=0xe2; break; - case 0x0392 : out[k++]=0xc2; break; - case 0x03b3 : out[k++]=0xe4; break; - case 0x0393 : out[k++]=0xc4; break; - case 0x03b4 : out[k++]=0xe5; break; - case 0x0394 : out[k++]=0xc5; break; - case 0x03ad : out[k++]=0xa2; out[k++]=0xe6; break; - case 0x03b5 : out[k++]=0xe6; break; - case 0x0388 : out[k++]=0xa2; out[k++]=0xc6; break; - case 0x0395 : out[k++]=0xc6; break; - case 0x03b6 : out[k++]=0xe9; break; - case 0x0396 : out[k++]=0xc9; break; - case 0x03ae : out[k++]=0xa2; out[k++]=0xea; break; - case 0x03b7 : out[k++]=0xea; break; - case 0x0389 : out[k++]=0xa2; out[k++]=0xca; break; - case 0x0397 : out[k++]=0xca; break; - case 0x03b8 : out[k++]=0xeb; break; - case 0x0398 : out[k++]=0xcb; break; - case 0x0390 : out[k++]=0xa2; out[k++]=0xa3; out[k++]=0xec; break; - case 0x03af : out[k++]=0xa2; out[k++]=0xec; break; - case 0x03ca : out[k++]=0xa3; out[k++]=0xec; break; - case 0x03b9 : out[k++]=0xec; break; - case 0x038a : out[k++]=0xa2; out[k++]=0xcc; break; - case 0x03aa : out[k++]=0xa3; out[k++]=0xcc; break; - case 0x0399 : out[k++]=0xcc; break; - case 0x03ba : out[k++]=0xed; break; - case 0x039a : out[k++]=0xcd; break; - case 0x03bb : out[k++]=0xee; break; - case 0x039b : out[k++]=0xce; break; - case 0x03bc : out[k++]=0xef; break; - case 0x039c : out[k++]=0xcf; break; - case 0x03bd : out[k++]=0xf0; break; - case 0x039d : out[k++]=0xd0; break; - case 0x03be : out[k++]=0xf1; break; - case 0x039e : out[k++]=0xd1; break; - case 0x03cc : out[k++]=0xa2; out[k++]=0xf2; break; - case 0x03bf : out[k++]=0xf2; break; - case 0x038c : out[k++]=0xa2; out[k++]=0xd2; break; - case 0x039f : out[k++]=0xd2; break; - case 0x03c0 : out[k++]=0xf3; break; - case 0x03a0 : out[k++]=0xd3; break; - case 0x03c1 : out[k++]=0xf5; break; - case 0x03a1 : out[k++]=0xd5; break; - case 0x03c2 : out[k++]=0xf7; break; - case 0x03c3 : out[k++]=0xf6; break; - case 0x03a3 : out[k++]=0xd6; break; - case 0x03c4 : out[k++]=0xf8; break; - case 0x03a4 : out[k++]=0xd8; break; - case 0x03b0 : out[k++]=0xa2; out[k++]=0xa3; out[k++]=0xf9; break; - case 0x03cd : out[k++]=0xa2; out[k++]=0xf9; break; - case 0x03cb : out[k++]=0xa3; out[k++]=0xf9; break; - case 0x03c5 : out[k++]=0xf9; break; - case 0x038e : out[k++]=0xa2; out[k++]=0xd9; break; - case 0x03ab : out[k++]=0xa3; out[k++]=0xd9; break; - case 0x03a5 : out[k++]=0xd9; break; - case 0x03c6 : out[k++]=0xfa; break; - case 0x03a6 : out[k++]=0xda; break; - case 0x03c7 : out[k++]=0xfb; break; - case 0x03a7 : out[k++]=0xdb; break; - case 0x03c8 : out[k++]=0xfc; break; - case 0x03a8 : out[k++]=0xdc; break; - case 0x03ce : out[k++]=0xa2; out[k++]=0xfd; break; - case 0x03c9 : out[k++]=0xfd; break; - case 0x038f : out[k++]=0xa2; out[k++]=0xdd; break; - case 0x03a9 : out[k++]=0xdd; break; - default: - if (x > 255) - { - cd->my_errno = YAZ_ICONV_EILSEQ; - return (size_t) -1; - } - out[k++] = x; - break; - } - *outbytesleft -= k; - (*outbuf) += k; - return 0; -} - -static unsigned long yaz_read_advancegreek(yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - unsigned long x = 0; - int shift = 0; - int tonos = 0; - int dialitika = 0; - - *no_read = 0; - while (inbytesleft > 0) - { - if (*inp == 0x9d) - { - tonos = 1; - } - else if (*inp == 0x9e) - { - dialitika = 1; - } - else if (*inp == 0x9f) - { - shift = 1; - } - else - break; - inp++; - --inbytesleft; - (*no_read)++; - } - if (inbytesleft == 0) - { - cd->my_errno = YAZ_ICONV_EINVAL; /* incomplete input */ - *no_read = 0; - return 0; - } - switch (*inp) { - case 0x81: - if (shift) - if (tonos) - x = 0x0386; - else - x = 0x0391; - else - if (tonos) - x = 0x03ac; - else - x = 0x03b1; - break; - case 0x82: - if (shift) - x = 0x0392; - else - x = 0x03b2; - - break; - case 0x83: - if (shift) - x = 0x0393; - else - x = 0x03b3; - break; - case 0x84: - if (shift) - x = 0x0394; - else - x = 0x03b4; - break; - case 0x85: - if (shift) - if (tonos) - x = 0x0388; - else - x = 0x0395; - else - if (tonos) - x = 0x03ad; - else - x = 0x03b5; - break; - case 0x86: - if (shift) - x = 0x0396; - else - x = 0x03b6; - break; - case 0x87: - if (shift) - if (tonos) - x = 0x0389; - else - x = 0x0397; - else - if (tonos) - x = 0x03ae; - else - x = 0x03b7; - break; - case 0x88: - if (shift) - x = 0x0398; - else - x = 0x03b8; - break; - case 0x89: - if (shift) - if (tonos) - x = 0x038a; - else - if (dialitika) - x = 0x03aa; - else - x = 0x0399; - else - if (tonos) - if (dialitika) - x = 0x0390; - else - x = 0x03af; - - else - if (dialitika) - x = 0x03ca; - else - x = 0x03b9; - break; - case 0x8a: - if (shift) - x = 0x039a; - else - x = 0x03ba; - - break; - case 0x8b: - if (shift) - x = 0x039b; - else - x = 0x03bb; - break; - case 0x8c: - if (shift) - x = 0x039c; - else - x = 0x03bc; - - break; - case 0x8d: - if (shift) - x = 0x039d; - else - x = 0x03bd; - break; - case 0x8e: - if (shift) - x = 0x039e; - else - x = 0x03be; - break; - case 0x8f: - if (shift) - if (tonos) - x = 0x038c; - else - x = 0x039f; - else - if (tonos) - x = 0x03cc; - else - x = 0x03bf; - break; - case 0x90: - if (shift) - x = 0x03a0; - else - x = 0x03c0; - break; - case 0x91: - if (shift) - x = 0x03a1; - else - x = 0x03c1; - break; - case 0x92: - x = 0x03c2; - break; - case 0x93: - if (shift) - x = 0x03a3; - else - x = 0x03c3; - break; - case 0x94: - if (shift) - x = 0x03a4; - else - x = 0x03c4; - break; - case 0x95: - if (shift) - if (tonos) - x = 0x038e; - else - if (dialitika) - x = 0x03ab; - else - x = 0x03a5; - else - if (tonos) - if (dialitika) - x = 0x03b0; - else - x = 0x03cd; - - else - if (dialitika) - x = 0x03cb; - else - x = 0x03c5; - break; - case 0x96: - if (shift) - x = 0x03a6; - else - x = 0x03c6; - break; - case 0x97: - if (shift) - x = 0x03a7; - else - x = 0x03c7; - break; - case 0x98: - if (shift) - x = 0x03a8; - else - x = 0x03c8; - - break; - - case 0x99: - if (shift) - if (tonos) - x = 0x038f; - else - x = 0x03a9; - else - if (tonos) - x = 0x03ce; - else - x = 0x03c9; - break; - default: - x = *inp; - break; - } - (*no_read)++; - - return x; -} - -static size_t yaz_write_advancegreek(yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - size_t k = 0; - unsigned char *out = (unsigned char*) *outbuf; - if (*outbytesleft < 3) - { - cd->my_errno = YAZ_ICONV_E2BIG; /* not room for output */ - return (size_t)(-1); - } - switch (x) - { - case 0x03ac : out[k++]=0x9d; out[k++]=0x81; break; - case 0x03ad : out[k++]=0x9d; out[k++]=0x85; break; - case 0x03ae : out[k++]=0x9d; out[k++]=0x87; break; - case 0x03af : out[k++]=0x9d; out[k++]=0x89; break; - case 0x03cc : out[k++]=0x9d; out[k++]=0x8f; break; - case 0x03cd : out[k++]=0x9d; out[k++]=0x95; break; - case 0x03ce : out[k++]=0x9d; out[k++]=0x99; break; - case 0x0390 : out[k++]=0x9d; out[k++]=0x9e; out[k++]=0x89; break; - case 0x03b0 : out[k++]=0x9d; out[k++]=0x9e; out[k++]=0x95; break; - case 0x0386 : out[k++]=0x9d; out[k++]=0x9f; out[k++]=0x81; break; - case 0x0388 : out[k++]=0x9d; out[k++]=0x9f; out[k++]=0x85; break; - case 0x0389 : out[k++]=0x9d; out[k++]=0x9f; out[k++]=0x87; break; - case 0x038a : out[k++]=0x9d; out[k++]=0x9f; out[k++]=0x89; break; - case 0x038c : out[k++]=0x9d; out[k++]=0x9f; out[k++]=0x8f; break; - case 0x038e : out[k++]=0x9d; out[k++]=0x9f; out[k++]=0x95; break; - case 0x038f : out[k++]=0x9d; out[k++]=0x9f; out[k++]=0x99; break; - case 0x03ca : out[k++]=0x9e; out[k++]=0x89; break; - case 0x03cb : out[k++]=0x9e; out[k++]=0x95; break; - case 0x03aa : out[k++]=0x9e; out[k++]=0x9f; out[k++]=0x89; break; - case 0x03ab : out[k++]=0x9e; out[k++]=0x9f; out[k++]=0x95; break; - case 0x0391 : out[k++]=0x9f; out[k++]=0x81; break; - case 0x0392 : out[k++]=0x9f; out[k++]=0x82; break; - case 0x0393 : out[k++]=0x9f; out[k++]=0x83; break; - case 0x0394 : out[k++]=0x9f; out[k++]=0x84; break; - case 0x0395 : out[k++]=0x9f; out[k++]=0x85; break; - case 0x0396 : out[k++]=0x9f; out[k++]=0x86; break; - case 0x0397 : out[k++]=0x9f; out[k++]=0x87; break; - case 0x0398 : out[k++]=0x9f; out[k++]=0x88; break; - case 0x0399 : out[k++]=0x9f; out[k++]=0x89; break; - case 0x039a : out[k++]=0x9f; out[k++]=0x8a; break; - case 0x039b : out[k++]=0x9f; out[k++]=0x8b; break; - case 0x039c : out[k++]=0x9f; out[k++]=0x8c; break; - case 0x039d : out[k++]=0x9f; out[k++]=0x8d; break; - case 0x039e : out[k++]=0x9f; out[k++]=0x8e; break; - case 0x039f : out[k++]=0x9f; out[k++]=0x8f; break; - case 0x03a0 : out[k++]=0x9f; out[k++]=0x90; break; - case 0x03a1 : out[k++]=0x9f; out[k++]=0x91; break; - case 0x03a3 : out[k++]=0x9f; out[k++]=0x93; break; - case 0x03a4 : out[k++]=0x9f; out[k++]=0x94; break; - case 0x03a5 : out[k++]=0x9f; out[k++]=0x95; break; - case 0x03a6 : out[k++]=0x9f; out[k++]=0x96; break; - case 0x03a7 : out[k++]=0x9f; out[k++]=0x97; break; - case 0x03a8 : out[k++]=0x9f; out[k++]=0x98; break; - case 0x03a9 : out[k++]=0x9f; out[k++]=0x99; break; - case 0x03b1 : out[k++]=0x81; break; - case 0x03b2 : out[k++]=0x82; break; - case 0x03b3 : out[k++]=0x83; break; - case 0x03b4 : out[k++]=0x84; break; - case 0x03b5 : out[k++]=0x85; break; - case 0x03b6 : out[k++]=0x86; break; - case 0x03b7 : out[k++]=0x87; break; - case 0x03b8 : out[k++]=0x88; break; - case 0x03b9 : out[k++]=0x89; break; - case 0x03ba : out[k++]=0x8a; break; - case 0x03bb : out[k++]=0x8b; break; - case 0x03bc : out[k++]=0x8c; break; - case 0x03bd : out[k++]=0x8d; break; - case 0x03be : out[k++]=0x8e; break; - case 0x03bf : out[k++]=0x8f; break; - case 0x03c0 : out[k++]=0x90; break; - case 0x03c1 : out[k++]=0x91; break; - case 0x03c2 : out[k++]=0x92; break; - case 0x03c3 : out[k++]=0x93; break; - case 0x03c4 : out[k++]=0x94; break; - case 0x03c5 : out[k++]=0x95; break; - case 0x03c6 : out[k++]=0x96; break; - case 0x03c7 : out[k++]=0x96; break; - case 0x03c8 : out[k++]=0x98; break; - case 0x03c9 : out[k++]=0x99; break; - default: - if (x > 255) - { - cd->my_errno = YAZ_ICONV_EILSEQ; - return (size_t) -1; - } - out[k++] = x; - break; - } - *outbytesleft -= k; - (*outbuf) += k; - return 0; -} - - -static unsigned long yaz_read_marc8_comb (yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read, - int *comb); - -static unsigned long yaz_read_marc8 (yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - unsigned long x; - if (cd->comb_offset < cd->comb_size) - { - *no_read = cd->comb_no_read[cd->comb_offset]; - x = cd->comb_x[cd->comb_offset]; - - /* special case for double-diacritic combining characters, - INVERTED BREVE and DOUBLE TILDE. - We'll increment the no_read counter by 1, since we want to skip over - the processing of the closing ligature character - */ - /* this code is no longer necessary.. our handlers code in - yaz_marc8_?_conv (generated by charconv.tcl) now returns - 0 and no_read=1 when a sequence does not match the input. - The SECOND HALFs in codetables.xml produces a non-existant - entry in the conversion trie.. Hence when met, the input byte is - skipped as it should (in yaz_iconv) - */ -#if 0 - if (x == 0x0361 || x == 0x0360) - *no_read += 1; -#endif - cd->comb_offset++; - return x; - } - - cd->comb_offset = 0; - for (cd->comb_size = 0; cd->comb_size < 8; cd->comb_size++) - { - int comb = 0; - - if (inbytesleft == 0 && cd->comb_size) - { - cd->my_errno = YAZ_ICONV_EINVAL; - x = 0; - *no_read = 0; - break; - } - x = yaz_read_marc8_comb(cd, inp, inbytesleft, no_read, &comb); - if (!comb || !x) - break; - cd->comb_x[cd->comb_size] = x; - cd->comb_no_read[cd->comb_size] = *no_read; - inp += *no_read; - inbytesleft = inbytesleft - *no_read; - } - return x; -} - -static unsigned long yaz_read_marc8s(yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read) -{ - unsigned long x = yaz_read_marc8(cd, inp, inbytesleft, no_read); - if (x && cd->comb_size == 1) - { - /* For MARC8s we try to get a Latin-1 page code out of it */ - int i; - for (i = 0; latin1_comb[i].x1; i++) - if (cd->comb_x[0] == latin1_comb[i].x2 && x == latin1_comb[i].x1) - { - *no_read += cd->comb_no_read[0]; - cd->comb_size = 0; - x = latin1_comb[i].y; - break; - } - } - return x; -} - -static unsigned long yaz_read_marc8_comb(yaz_iconv_t cd, unsigned char *inp, - size_t inbytesleft, size_t *no_read, - int *comb) -{ - *no_read = 0; - while(inbytesleft >= 1 && inp[0] == 27) - { - size_t inbytesleft0 = inbytesleft; - inp++; - inbytesleft--; - while(inbytesleft > 0 && strchr("(,$!)-", *inp)) - { - inbytesleft--; - inp++; - } - if (inbytesleft <= 0) - { - *no_read = 0; - cd->my_errno = YAZ_ICONV_EINVAL; - return 0; - } - cd->marc8_esc_mode = *inp++; - inbytesleft--; - (*no_read) += inbytesleft0 - inbytesleft; - } - if (inbytesleft <= 0) - return 0; - else - { - unsigned long x; - size_t no_read_sub = 0; - *comb = 0; - - switch(cd->marc8_esc_mode) - { - case 'B': /* Basic ASCII */ - case 's': /* ASCII */ - case 'E': /* ANSEL */ - x = yaz_marc8_42_conv(inp, inbytesleft, &no_read_sub, comb); - if (!x) - { - no_read_sub = 0; - x = yaz_marc8_45_conv(inp, inbytesleft, &no_read_sub, comb); - } - break; - case 'g': /* Greek */ - x = yaz_marc8_67_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case 'b': /* Subscripts */ - x = yaz_marc8_62_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case 'p': /* Superscripts */ - x = yaz_marc8_70_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case '2': /* Basic Hebrew */ - x = yaz_marc8_32_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case 'N': /* Basic Cyrillic */ - x = yaz_marc8_4E_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case 'Q': /* Extended Cyrillic */ - x = yaz_marc8_51_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case '3': /* Basic Arabic */ - x = yaz_marc8_33_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case '4': /* Extended Arabic */ - x = yaz_marc8_34_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case 'S': /* Greek */ - x = yaz_marc8_53_conv(inp, inbytesleft, &no_read_sub, comb); - break; - case '1': /* Chinese, Japanese, Korean (EACC) */ - x = yaz_marc8_31_conv(inp, inbytesleft, &no_read_sub, comb); - break; - default: - *no_read = 0; - cd->my_errno = YAZ_ICONV_EILSEQ; - return 0; - } - *no_read += no_read_sub; - return x; - } -} - -static size_t yaz_write_UTF8(yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - return yaz_write_UTF8_char(x, outbuf, outbytesleft, &cd->my_errno); -} - -size_t yaz_write_UTF8_char(unsigned long x, - char **outbuf, size_t *outbytesleft, - int *error) -{ - unsigned char *outp = (unsigned char *) *outbuf; - - if (x <= 0x7f && *outbytesleft >= 1) - { - *outp++ = (unsigned char) x; - (*outbytesleft)--; - } - else if (x <= 0x7ff && *outbytesleft >= 2) - { - *outp++ = (unsigned char) ((x >> 6) | 0xc0); - *outp++ = (unsigned char) ((x & 0x3f) | 0x80); - (*outbytesleft) -= 2; - } - else if (x <= 0xffff && *outbytesleft >= 3) - { - *outp++ = (unsigned char) ((x >> 12) | 0xe0); - *outp++ = (unsigned char) (((x >> 6) & 0x3f) | 0x80); - *outp++ = (unsigned char) ((x & 0x3f) | 0x80); - (*outbytesleft) -= 3; - } - else if (x <= 0x1fffff && *outbytesleft >= 4) - { - *outp++ = (unsigned char) ((x >> 18) | 0xf0); - *outp++ = (unsigned char) (((x >> 12) & 0x3f) | 0x80); - *outp++ = (unsigned char) (((x >> 6) & 0x3f) | 0x80); - *outp++ = (unsigned char) ((x & 0x3f) | 0x80); - (*outbytesleft) -= 4; - } - else if (x <= 0x3ffffff && *outbytesleft >= 5) - { - *outp++ = (unsigned char) ((x >> 24) | 0xf8); - *outp++ = (unsigned char) (((x >> 18) & 0x3f) | 0x80); - *outp++ = (unsigned char) (((x >> 12) & 0x3f) | 0x80); - *outp++ = (unsigned char) (((x >> 6) & 0x3f) | 0x80); - *outp++ = (unsigned char) ((x & 0x3f) | 0x80); - (*outbytesleft) -= 5; - } - else if (*outbytesleft >= 6) - { - *outp++ = (unsigned char) ((x >> 30) | 0xfc); - *outp++ = (unsigned char) (((x >> 24) & 0x3f) | 0x80); - *outp++ = (unsigned char) (((x >> 18) & 0x3f) | 0x80); - *outp++ = (unsigned char) (((x >> 12) & 0x3f) | 0x80); - *outp++ = (unsigned char) (((x >> 6) & 0x3f) | 0x80); - *outp++ = (unsigned char) ((x & 0x3f) | 0x80); - (*outbytesleft) -= 6; - } - else - { - *error = YAZ_ICONV_E2BIG; /* not room for output */ - return (size_t)(-1); - } - *outbuf = (char *) outp; - return 0; -} - -static size_t yaz_write_ISO8859_1 (yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - /* list of two char unicode sequence that, when combined, are - equivalent to single unicode chars that can be represented in - ISO-8859-1/Latin-1. - Regular iconv on Linux at least does not seem to convert these, - but since MARC-8 to UTF-8 generates these composed sequence - we get a better chance of a successful MARC-8 -> ISO-8859-1 - conversion */ - unsigned char *outp = (unsigned char *) *outbuf; - - if (cd->compose_char) - { - int i; - for (i = 0; latin1_comb[i].x1; i++) - if (cd->compose_char == latin1_comb[i].x1 && x == latin1_comb[i].x2) - { - x = latin1_comb[i].y; - break; - } - if (*outbytesleft < 1) - { /* no room. Retain compose_char and bail out */ - cd->my_errno = YAZ_ICONV_E2BIG; - return (size_t)(-1); - } - if (!latin1_comb[i].x1) - { /* not found. Just write compose_char */ - *outp++ = (unsigned char) cd->compose_char; - (*outbytesleft)--; - *outbuf = (char *) outp; - } - /* compose_char used so reset it. x now holds current char */ - cd->compose_char = 0; - } - - if (x > 32 && x < 127 && cd->compose_char == 0) - { - cd->compose_char = x; - return 0; - } - else if (x > 255 || x < 1) - { - cd->my_errno = YAZ_ICONV_EILSEQ; - return (size_t) -1; - } - else if (*outbytesleft < 1) - { - cd->my_errno = YAZ_ICONV_E2BIG; - return (size_t)(-1); - } - *outp++ = (unsigned char) x; - (*outbytesleft)--; - *outbuf = (char *) outp; - return 0; -} - -static size_t yaz_flush_ISO8859_1(yaz_iconv_t cd, - char **outbuf, size_t *outbytesleft) -{ - if (cd->compose_char) - { - unsigned char *outp = (unsigned char *) *outbuf; - if (*outbytesleft < 1) - { - cd->my_errno = YAZ_ICONV_E2BIG; - return (size_t)(-1); - } - *outp++ = (unsigned char) cd->compose_char; - (*outbytesleft)--; - *outbuf = (char *) outp; - cd->compose_char = 0; - } - return 0; -} - -static size_t yaz_write_UCS4 (yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - unsigned char *outp = (unsigned char *) *outbuf; - if (*outbytesleft >= 4) - { - *outp++ = (unsigned char) (x>>24); - *outp++ = (unsigned char) (x>>16); - *outp++ = (unsigned char) (x>>8); - *outp++ = (unsigned char) x; - (*outbytesleft) -= 4; - } - else - { - cd->my_errno = YAZ_ICONV_E2BIG; - return (size_t)(-1); - } - *outbuf = (char *) outp; - return 0; -} - -static size_t yaz_write_UCS4LE (yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - unsigned char *outp = (unsigned char *) *outbuf; - if (*outbytesleft >= 4) - { - *outp++ = (unsigned char) x; - *outp++ = (unsigned char) (x>>8); - *outp++ = (unsigned char) (x>>16); - *outp++ = (unsigned char) (x>>24); - (*outbytesleft) -= 4; - } - else - { - cd->my_errno = YAZ_ICONV_E2BIG; - return (size_t)(-1); - } - *outbuf = (char *) outp; - return 0; -} - -static unsigned long lookup_marc8(yaz_iconv_t cd, - unsigned long x, int *comb, - const char **page_chr) -{ - char utf8_buf[7]; - char *utf8_outbuf = utf8_buf; - size_t utf8_outbytesleft = sizeof(utf8_buf)-1, r; - - r = yaz_write_UTF8(cd, x, &utf8_outbuf, &utf8_outbytesleft); - if (r == (size_t)(-1)) - { - cd->my_errno = YAZ_ICONV_EILSEQ; - return 0; - } - else - { - unsigned char *inp; - size_t inbytesleft, no_read_sub = 0; - unsigned long x; - - *utf8_outbuf = '\0'; - inp = (unsigned char *) utf8_buf; - inbytesleft = strlen(utf8_buf); - - x = yaz_marc8r_42_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033(B"; - return x; - } - x = yaz_marc8r_45_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033(B"; - return x; - } - x = yaz_marc8r_67_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033g"; - return x; - } - x = yaz_marc8r_62_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033b"; - return x; - } - x = yaz_marc8r_70_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033p"; - return x; - } - x = yaz_marc8r_32_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033(2"; - return x; - } - x = yaz_marc8r_4E_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033(N"; - return x; - } - x = yaz_marc8r_51_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033(Q"; - return x; - } - x = yaz_marc8r_33_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033(3"; - return x; - } - x = yaz_marc8r_34_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033(4"; - return x; - } - x = yaz_marc8r_53_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033(S"; - return x; - } - x = yaz_marc8r_31_conv(inp, inbytesleft, &no_read_sub, comb); - if (x) - { - *page_chr = "\033$1"; - return x; - } - cd->my_errno = YAZ_ICONV_EILSEQ; - return x; - } -} - -static size_t flush_combos(yaz_iconv_t cd, - char **outbuf, size_t *outbytesleft) -{ - unsigned long y = cd->write_marc8_last; - unsigned char byte; - char out_buf[10]; - size_t i, out_no = 0; - - if (!y) - return 0; - - byte = (unsigned char )((y>>16) & 0xff); - if (byte) - out_buf[out_no++] = byte; - byte = (unsigned char)((y>>8) & 0xff); - if (byte) - out_buf[out_no++] = byte; - byte = (unsigned char )(y & 0xff); - if (byte) - out_buf[out_no++] = byte; - - if (out_no + cd->write_marc8_comb_no + 1 > *outbytesleft) - { - cd->my_errno = YAZ_ICONV_E2BIG; - return (size_t) (-1); - } - - for (i = 0; i < cd->write_marc8_comb_no; i++) - { - /* all MARC-8 combined characters are simple bytes */ - byte = (unsigned char )(cd->write_marc8_comb_ch[i]); - *(*outbuf)++ = byte; - (*outbytesleft)--; - } - memcpy(*outbuf, out_buf, out_no); - *outbuf += out_no; - (*outbytesleft) -= out_no; - if (cd->write_marc8_second_half_char) - { - *(*outbuf)++ = cd->write_marc8_second_half_char; - (*outbytesleft)--; - } - - cd->write_marc8_last = 0; - cd->write_marc8_comb_no = 0; - cd->write_marc8_second_half_char = 0; - return 0; -} - -static size_t yaz_write_marc8_page_chr(yaz_iconv_t cd, - char **outbuf, size_t *outbytesleft, - const char *page_chr) -{ - const char *old_page_chr = cd->write_marc8_page_chr; - if (strcmp(page_chr, old_page_chr)) - { - size_t plen = 0; - const char *page_out = page_chr; - - if (*outbytesleft < 8) - { - cd->my_errno = YAZ_ICONV_E2BIG; - - return (size_t) (-1); - } - cd->write_marc8_page_chr = page_chr; - - if (!strcmp(old_page_chr, "\033p") - || !strcmp(old_page_chr, "\033g") - || !strcmp(old_page_chr, "\033b")) - { - /* Technique 1 leave */ - page_out = "\033s"; - if (strcmp(page_chr, "\033(B")) /* Not going ASCII page? */ - { - /* Must leave script + enter new page */ - plen = strlen(page_out); - memcpy(*outbuf, page_out, plen); - (*outbuf) += plen; - (*outbytesleft) -= plen; - page_out = page_chr; - } - } - plen = strlen(page_out); - memcpy(*outbuf, page_out, plen); - (*outbuf) += plen; - (*outbytesleft) -= plen; - } - return 0; -} - - -static size_t yaz_write_marc8_2(yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - int comb = 0; - const char *page_chr = 0; - unsigned long y = lookup_marc8(cd, x, &comb, &page_chr); - - if (!y) - return (size_t) (-1); - - if (comb) - { - if (x == 0x0361) - cd->write_marc8_second_half_char = 0xEC; - else if (x == 0x0360) - cd->write_marc8_second_half_char = 0xFB; - - if (cd->write_marc8_comb_no < 6) - cd->write_marc8_comb_ch[cd->write_marc8_comb_no++] = y; - } - else - { - size_t r = flush_combos(cd, outbuf, outbytesleft); - if (r) - return r; - - r = yaz_write_marc8_page_chr(cd, outbuf, outbytesleft, page_chr); - if (r) - return r; - cd->write_marc8_last = y; - } - return 0; -} - -static size_t yaz_flush_marc8(yaz_iconv_t cd, - char **outbuf, size_t *outbytesleft) -{ - size_t r = flush_combos(cd, outbuf, outbytesleft); - if (r) - return r; - return yaz_write_marc8_page_chr(cd, outbuf, outbytesleft, "\033(B"); -} - -static size_t yaz_write_marc8(yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - int i; - for (i = 0; latin1_comb[i].x1; i++) - { - if (x == latin1_comb[i].y) - { - size_t r ; - /* save the output pointers .. */ - char *outbuf0 = *outbuf; - size_t outbytesleft0 = *outbytesleft; - int last_ch = cd->write_marc8_last; - - r = yaz_write_marc8_2(cd, latin1_comb[i].x1, - outbuf, outbytesleft); - if (r) - return r; - r = yaz_write_marc8_2(cd, latin1_comb[i].x2, - outbuf, outbytesleft); - if (r && cd->my_errno == YAZ_ICONV_E2BIG) - { - /* not enough room. reset output to original values */ - *outbuf = outbuf0; - *outbytesleft = outbytesleft0; - cd->write_marc8_last = last_ch; - } - return r; - } - } - return yaz_write_marc8_2(cd, x, outbuf, outbytesleft); -} - - -#if HAVE_WCHAR_H -static size_t yaz_write_wchar_t(yaz_iconv_t cd, unsigned long x, - char **outbuf, size_t *outbytesleft) -{ - unsigned char *outp = (unsigned char *) *outbuf; - - if (*outbytesleft >= sizeof(wchar_t)) - { - wchar_t wch = x; - memcpy(outp, &wch, sizeof(wch)); - outp += sizeof(wch); - (*outbytesleft) -= sizeof(wch); - } - else - { - cd->my_errno = YAZ_ICONV_E2BIG; - return (size_t)(-1); - } - *outbuf = (char *) outp; - return 0; -} -#endif - -int yaz_iconv_isbuiltin(yaz_iconv_t cd) -{ - return cd->read_handle && cd->write_handle; -} - -yaz_iconv_t yaz_iconv_open (const char *tocode, const char *fromcode) -{ - yaz_iconv_t cd = (yaz_iconv_t) xmalloc (sizeof(*cd)); - - cd->write_handle = 0; - cd->read_handle = 0; - cd->init_handle = 0; - cd->flush_handle = 0; - cd->my_errno = YAZ_ICONV_UNKNOWN; - - /* a useful hack: if fromcode has leading @, - the library not use YAZ's own conversions .. */ - if (fromcode[0] == '@') - fromcode++; - else - { - if (!yaz_matchstr(fromcode, "UTF8")) - { - cd->read_handle = yaz_read_UTF8; - cd->init_handle = yaz_init_UTF8; - } - else if (!yaz_matchstr(fromcode, "ISO88591")) - cd->read_handle = yaz_read_ISO8859_1; - else if (!yaz_matchstr(fromcode, "UCS4")) - cd->read_handle = yaz_read_UCS4; - else if (!yaz_matchstr(fromcode, "UCS4LE")) - cd->read_handle = yaz_read_UCS4LE; - else if (!yaz_matchstr(fromcode, "MARC8")) - cd->read_handle = yaz_read_marc8; - else if (!yaz_matchstr(fromcode, "MARC8s")) - cd->read_handle = yaz_read_marc8s; - else if (!yaz_matchstr(fromcode, "advancegreek")) - cd->read_handle = yaz_read_advancegreek; - else if (!yaz_matchstr(fromcode, "iso54281984")) - cd->read_handle = yaz_read_iso5428_1984; - else if (!yaz_matchstr(fromcode, "iso5428:1984")) - cd->read_handle = yaz_read_iso5428_1984; -#if HAVE_WCHAR_H - else if (!yaz_matchstr(fromcode, "WCHAR_T")) - cd->read_handle = yaz_read_wchar_t; -#endif - - if (!yaz_matchstr(tocode, "UTF8")) - cd->write_handle = yaz_write_UTF8; - else if (!yaz_matchstr(tocode, "ISO88591")) - { - cd->write_handle = yaz_write_ISO8859_1; - cd->flush_handle = yaz_flush_ISO8859_1; - } - else if (!yaz_matchstr (tocode, "UCS4")) - cd->write_handle = yaz_write_UCS4; - else if (!yaz_matchstr(tocode, "UCS4LE")) - cd->write_handle = yaz_write_UCS4LE; - else if (!yaz_matchstr(tocode, "MARC8")) - { - cd->write_handle = yaz_write_marc8; - cd->flush_handle = yaz_flush_marc8; - } - else if (!yaz_matchstr(tocode, "MARC8s")) - { - cd->write_handle = yaz_write_marc8; - cd->flush_handle = yaz_flush_marc8; - } - else if (!yaz_matchstr(tocode, "advancegreek")) - { - cd->write_handle = yaz_write_advancegreek; - } - else if (!yaz_matchstr(tocode, "iso54281984")) - { - cd->write_handle = yaz_write_iso5428_1984; - } - else if (!yaz_matchstr(tocode, "iso5428:1984")) - { - cd->write_handle = yaz_write_iso5428_1984; - } -#if HAVE_WCHAR_H - else if (!yaz_matchstr(tocode, "WCHAR_T")) - cd->write_handle = yaz_write_wchar_t; -#endif - } -#if HAVE_ICONV_H - cd->iconv_cd = 0; - if (!cd->read_handle || !cd->write_handle) - { - cd->iconv_cd = iconv_open (tocode, fromcode); - if (cd->iconv_cd == (iconv_t) (-1)) - { - xfree (cd); - return 0; - } - } -#else - if (!cd->read_handle || !cd->write_handle) - { - xfree (cd); - return 0; - } -#endif - cd->init_flag = 1; - return cd; -} - -size_t yaz_iconv(yaz_iconv_t cd, char **inbuf, size_t *inbytesleft, - char **outbuf, size_t *outbytesleft) -{ - char *inbuf0 = 0; - size_t r = 0; - -#if HAVE_ICONV_H - if (cd->iconv_cd) - { - size_t r = - iconv(cd->iconv_cd, inbuf, inbytesleft, outbuf, outbytesleft); - if (r == (size_t)(-1)) - { - switch (yaz_errno()) - { - case E2BIG: - cd->my_errno = YAZ_ICONV_E2BIG; - break; - case EINVAL: - cd->my_errno = YAZ_ICONV_EINVAL; - break; - case EILSEQ: - cd->my_errno = YAZ_ICONV_EILSEQ; - break; - default: - cd->my_errno = YAZ_ICONV_UNKNOWN; - } - } - return r; - } -#endif - - if (inbuf) - inbuf0 = *inbuf; - - if (cd->init_flag) - { - cd->my_errno = YAZ_ICONV_UNKNOWN; - cd->marc8_esc_mode = 'B'; - - cd->comb_offset = cd->comb_size = 0; - cd->compose_char = 0; - - cd->write_marc8_comb_no = 0; - cd->write_marc8_second_half_char = 0; - cd->write_marc8_last = 0; - cd->write_marc8_page_chr = "\033(B"; - - cd->unget_x = 0; - cd->no_read_x = 0; - } - - if (cd->init_flag) - { - if (cd->init_handle && inbuf && *inbuf) - { - size_t no_read = 0; - size_t r = (cd->init_handle)(cd, (unsigned char *) *inbuf, - *inbytesleft, &no_read); - if (r) - { - if (cd->my_errno == YAZ_ICONV_EINVAL) - return r; - cd->init_flag = 0; - return r; - } - *inbytesleft -= no_read; - *inbuf += no_read; - } - } - cd->init_flag = 0; - - if (!inbuf || !*inbuf) - { - if (outbuf && *outbuf) - { - if (cd->unget_x) - r = (*cd->write_handle)(cd, cd->unget_x, outbuf, outbytesleft); - if (cd->flush_handle) - r = (*cd->flush_handle)(cd, outbuf, outbytesleft); - } - if (r == 0) - cd->init_flag = 1; - cd->unget_x = 0; - return r; - } - while (1) - { - unsigned long x; - size_t no_read; - - if (cd->unget_x) - { - x = cd->unget_x; - no_read = cd->no_read_x; - } - else - { - if (*inbytesleft == 0) - { - r = *inbuf - inbuf0; - break; - } - x = (*cd->read_handle)(cd, (unsigned char *) *inbuf, *inbytesleft, - &no_read); - if (no_read == 0) - { - r = (size_t)(-1); - break; - } - } - if (x) - { - r = (*cd->write_handle)(cd, x, outbuf, outbytesleft); - if (r) - { - /* unable to write it. save it because read_handle cannot - rewind .. */ - if (cd->my_errno == YAZ_ICONV_E2BIG) - { - cd->unget_x = x; - cd->no_read_x = no_read; - break; - } - } - cd->unget_x = 0; - } - *inbytesleft -= no_read; - (*inbuf) += no_read; - } - return r; -} - -int yaz_iconv_error (yaz_iconv_t cd) -{ - return cd->my_errno; -} - -int yaz_iconv_close (yaz_iconv_t cd) -{ -#if HAVE_ICONV_H - if (cd->iconv_cd) - iconv_close (cd->iconv_cd); -#endif - xfree (cd); - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ diff --git a/dependencies/yaz_3.0.14/src/snprintf.c b/dependencies/yaz_3.0.14/src/snprintf.c deleted file mode 100644 index c377529..0000000 --- a/dependencies/yaz_3.0.14/src/snprintf.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: snprintf.c,v 1.2 2007/02/26 14:24:00 adam Exp $ - */ -/** - * \file snprintf.c - * \brief snprintf wrapper - */ - -#include -#include -#include - -void yaz_vsnprintf(char *buf, size_t size, const char *fmt, va_list ap) -{ -#if HAVE_VSNPRINTF - vsnprintf(buf, size, fmt, ap); -#else -#ifdef WIN32 - _vsnprintf(buf, size, fmt, ap); -#else - vsprintf(buf, fmt, ap); -#endif -#endif -} - -void yaz_snprintf(char *buf, size_t size, const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - yaz_vsnprintf(buf, size, fmt, ap); - va_end(ap); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/soap.c b/dependencies/yaz_3.0.14/src/soap.c deleted file mode 100644 index e52ecc9..0000000 --- a/dependencies/yaz_3.0.14/src/soap.c +++ /dev/null @@ -1,358 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: soap.c,v 1.18 2007/05/06 20:12:20 adam Exp $ - */ -/** - * \file soap.c - * \brief Implements SOAP - * - * This implements encoding and decoding of SOAP packages using - * Libxml2. - */ - -#include - -#if YAZ_HAVE_XML2 -#include -#include - -static const char *soap_v1_1 = "http://schemas.xmlsoap.org/soap/envelope/"; -static const char *soap_v1_2 = "http://www.w3.org/2001/06/soap-envelope"; - -int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers, - const char *encoding, - const char *stylesheet) -{ - if (o->direction == ODR_DECODE) - { - Z_SOAP *p; - xmlNodePtr ptr, pptr; - xmlDocPtr doc; - int i, ret; - - if (!content_buf || !*content_buf || !content_len) - return -1; - - *pp = p = (Z_SOAP *) odr_malloc(o, sizeof(*p)); - p->ns = soap_v1_1; - - doc = xmlParseMemory(*content_buf, *content_len); - if (!doc) - return z_soap_error(o, p, "SOAP-ENV:Client", - "Bad XML Document", 0); - - ptr = xmlDocGetRootElement(doc); - if (!ptr || !ptr->ns) - { - xmlFreeDoc(doc); - return z_soap_error(o, p, "SOAP-ENV:Client", - "No Envelope element", 0); - } - /* check for SRU root node match */ - - for (i = 0; handlers[i].ns; i++) - if (!xmlStrcmp(ptr->ns->href, BAD_CAST handlers[i].ns)) - break; - if (handlers[i].ns) - { - void *handler_data = 0; - xmlNode p_top_tmp; /* pseudo parent node needed */ - - p_top_tmp.children = ptr; - ret = (*handlers[i].f)(o, &p_top_tmp, &handler_data, - handlers[i].client_data, - handlers[i].ns); - - if (ret || !handler_data) - z_soap_error(o, p, "SOAP-ENV:Client", - "SOAP Handler returned error", 0); - else - { - p->which = Z_SOAP_generic; - p->u.generic = (Z_SOAP_Generic *) - odr_malloc(o, sizeof(*p->u.generic)); - p->u.generic->no = i; - p->u.generic->ns = handlers[i].ns; - p->u.generic->p = handler_data; - } - xmlFreeDoc(doc); - return ret; - } - /* OK: assume SOAP */ - - if (!ptr || ptr->type != XML_ELEMENT_NODE || - xmlStrcmp(ptr->name, BAD_CAST "Envelope") || !ptr->ns) - { - xmlFreeDoc(doc); - return z_soap_error(o, p, "SOAP-ENV:Client", - "No Envelope element", 0); - } - else - { - /* determine SOAP version */ - const char * ns_envelope = (const char *) ptr->ns->href; - if (!strcmp(ns_envelope, soap_v1_1)) - p->ns = soap_v1_1; - else if (!strcmp(ns_envelope, soap_v1_2)) - p->ns = soap_v1_2; - else - { - xmlFreeDoc(doc); - return z_soap_error(o, p, "SOAP-ENV:Client", - "Bad SOAP version", 0); - } - } - ptr = ptr->children; - while(ptr && ptr->type == XML_TEXT_NODE) - ptr = ptr->next; - if (ptr && ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->ns->href, BAD_CAST p->ns) && - !xmlStrcmp(ptr->name, BAD_CAST "Header")) - { - ptr = ptr->next; - while(ptr && ptr->type == XML_TEXT_NODE) - ptr = ptr->next; - } - /* check that Body is present */ - if (!ptr || ptr->type != XML_ELEMENT_NODE || - xmlStrcmp(ptr->name, BAD_CAST "Body")) - { - xmlFreeDoc(doc); - return z_soap_error(o, p, "SOAP-ENV:Client", - "SOAP Body element not found", 0); - } - if (xmlStrcmp(ptr->ns->href, BAD_CAST p->ns)) - { - xmlFreeDoc(doc); - return z_soap_error(o, p, "SOAP-ENV:Client", - "SOAP bad NS for Body element", 0); - } - pptr = ptr; - ptr = ptr->children; - while (ptr && ptr->type == XML_TEXT_NODE) - ptr = ptr->next; - if (!ptr || ptr->type != XML_ELEMENT_NODE) - { - xmlFreeDoc(doc); - return z_soap_error(o, p, "SOAP-ENV:Client", - "SOAP No content for Body", 0); - } - if (!ptr->ns) - { - xmlFreeDoc(doc); - return z_soap_error(o, p, "SOAP-ENV:Client", - "SOAP No namespace for content", 0); - } - /* check for fault package */ - if (!xmlStrcmp(ptr->ns->href, BAD_CAST p->ns) - && !xmlStrcmp(ptr->name, BAD_CAST "Fault") && ptr->children) - { - ptr = ptr->children; - - p->which = Z_SOAP_fault; - p->u.fault = (Z_SOAP_Fault *) odr_malloc(o, sizeof(*p->u.fault)); - p->u.fault->fault_code = 0; - p->u.fault->fault_string = 0; - p->u.fault->details = 0; - while (ptr) - { - if (ptr->children && ptr->children->type == XML_TEXT_NODE) - { - if (!xmlStrcmp(ptr->name, BAD_CAST "faultcode")) - p->u.fault->fault_code = - odr_strdup(o, (const char *) - ptr->children->content); - if (!xmlStrcmp(ptr->name, BAD_CAST "faultstring")) - p->u.fault->fault_string = - odr_strdup(o, (const char *) - ptr->children->content); - if (!xmlStrcmp(ptr->name, BAD_CAST "details")) - p->u.fault->details = - odr_strdup(o, (const char *) - ptr->children->content); - } - ptr = ptr->next; - } - ret = 0; - } - else - { - for (i = 0; handlers[i].ns; i++) - if (!xmlStrcmp(ptr->ns->href, BAD_CAST handlers[i].ns)) - break; - if (handlers[i].ns) - { - void *handler_data = 0; - ret = (*handlers[i].f)(o, pptr, &handler_data, - handlers[i].client_data, - handlers[i].ns); - if (ret || !handler_data) - z_soap_error(o, p, "SOAP-ENV:Client", - "SOAP Handler returned error", 0); - else - { - p->which = Z_SOAP_generic; - p->u.generic = (Z_SOAP_Generic *) - odr_malloc(o, sizeof(*p->u.generic)); - p->u.generic->no = i; - p->u.generic->ns = handlers[i].ns; - p->u.generic->p = handler_data; - } - } - else - { - ret = z_soap_error(o, p, "SOAP-ENV:Client", - "No handler for NS", - (const char *)ptr->ns->href); - } - } - xmlFreeDoc(doc); - return ret; - } - else if (o->direction == ODR_ENCODE) - { - Z_SOAP *p = *pp; - xmlNsPtr ns_env; - xmlNodePtr envelope_ptr, body_ptr; - - xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0"); - - envelope_ptr = xmlNewNode(0, BAD_CAST "Envelope"); - ns_env = xmlNewNs(envelope_ptr, BAD_CAST p->ns, - BAD_CAST "SOAP-ENV"); - xmlSetNs(envelope_ptr, ns_env); - - body_ptr = xmlNewChild(envelope_ptr, ns_env, BAD_CAST "Body", - 0); - xmlDocSetRootElement(doc, envelope_ptr); - - if (p->which == Z_SOAP_fault || p->which == Z_SOAP_error) - { - Z_SOAP_Fault *f = p->u.fault; - xmlNodePtr fault_ptr = xmlNewChild(body_ptr, ns_env, - BAD_CAST "Fault", 0); - xmlNewChild(fault_ptr, ns_env, BAD_CAST "faultcode", - BAD_CAST f->fault_code); - xmlNewChild(fault_ptr, ns_env, BAD_CAST "faultstring", - BAD_CAST f->fault_string); - if (f->details) - xmlNewChild(fault_ptr, ns_env, BAD_CAST "details", - BAD_CAST f->details); - } - else if (p->which == Z_SOAP_generic) - { - int ret, no = p->u.generic->no; - - ret = (*handlers[no].f)(o, body_ptr, &p->u.generic->p, - handlers[no].client_data, - handlers[no].ns); - if (ret) - { - xmlFreeDoc(doc); - return ret; - } - } - if (p->which == Z_SOAP_generic && !strcmp(p->ns, "SRU")) - { - xmlDocSetRootElement(doc, body_ptr->children); - body_ptr->children = 0; - xmlFreeNode(envelope_ptr); - } - if (stylesheet) - { - char *content = (char *) odr_malloc(o, strlen(stylesheet) + 40); - - xmlNodePtr pi, ptr = xmlDocGetRootElement(doc); - sprintf(content, "type=\"text/xsl\" href=\"%s\"", stylesheet); - pi = xmlNewPI(BAD_CAST "xml-stylesheet", - BAD_CAST content); - xmlAddPrevSibling(ptr, pi); - } - if (1) - { - xmlChar *buf_out; - int len_out; - if (encoding) - xmlDocDumpMemoryEnc(doc, &buf_out, &len_out, encoding); - else - xmlDocDumpMemory(doc, &buf_out, &len_out); - *content_buf = (char *) odr_malloc(o, len_out); - *content_len = len_out; - memcpy(*content_buf, buf_out, len_out); - xmlFree(buf_out); - } - xmlFreeDoc(doc); - return 0; - } - return 0; -} -#else -int z_soap_codec_enc_xsl(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers, const char *encoding, - const char *stylesheet) -{ - static char *err_xml = - "\n" - "\n" - "\t\n" - "\t\t\n" - "\t\t\tSOAP-ENV:Server\n" - "\t\t\tHTTP error\n" - "\t\t\tSOAP not supported in this YAZ configuration\n" - "\t\t\n" - "\t\n" - "\n"; - if (o->direction == ODR_ENCODE) - { - *content_buf = err_xml; - *content_len = strlen(err_xml); - } - return -1; -} -#endif -int z_soap_codec_enc(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers, - const char *encoding) -{ - return z_soap_codec_enc_xsl(o, pp, content_buf, content_len, handlers, - encoding, 0); -} - -int z_soap_codec(ODR o, Z_SOAP **pp, - char **content_buf, int *content_len, - Z_SOAP_Handler *handlers) -{ - return z_soap_codec_enc(o, pp, content_buf, content_len, handlers, 0); -} - -int z_soap_error(ODR o, Z_SOAP *p, - const char *fault_code, const char *fault_string, - const char *details) -{ - p->which = Z_SOAP_error; - p->u.soap_error = (Z_SOAP_Fault *) - odr_malloc(o, sizeof(*p->u.soap_error)); - p->u.soap_error->fault_code = odr_strdup(o, fault_code); - p->u.soap_error->fault_string = odr_strdup(o, fault_string); - if (details) - p->u.soap_error->details = odr_strdup(o, details); - else - p->u.soap_error->details = 0; - return -1; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/sortspec.c b/dependencies/yaz_3.0.14/src/sortspec.c deleted file mode 100644 index 1f7f4e4..0000000 --- a/dependencies/yaz_3.0.14/src/sortspec.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: sortspec.c,v 1.10 2007/04/16 21:53:09 adam Exp $ - */ -/** - * \file sortspec.c - * \brief Implements SortSpec parsing. - */ - -#include -#include -#include - -#include -#include -#include - -Z_SortKeySpecList *yaz_sort_spec (ODR out, const char *arg) -{ - char sort_string_buf[64], sort_flags[64]; - Z_SortKeySpecList *sksl = (Z_SortKeySpecList *) - odr_malloc (out, sizeof(*sksl)); - int off; - - sksl->num_specs = 0; - sksl->specs = (Z_SortKeySpec **)odr_malloc (out, sizeof(sksl->specs) * 20); - - while ((sscanf (arg, "%63s %63s%n", sort_string_buf, - sort_flags, &off)) == 2 && off > 1) - { - int i; - char *sort_string_sep; - char *sort_string = sort_string_buf; - Z_SortKeySpec *sks = (Z_SortKeySpec *)odr_malloc (out, sizeof(*sks)); - Z_SortKey *sk = (Z_SortKey *)odr_malloc (out, sizeof(*sk)); - - arg += off; - sksl->specs[sksl->num_specs++] = sks; - sks->sortElement = (Z_SortElement *) - odr_malloc (out, sizeof(*sks->sortElement)); - sks->sortElement->which = Z_SortElement_generic; - sks->sortElement->u.generic = sk; - - if ((sort_string_sep = strchr (sort_string, '='))) - { - int i = 0; - sk->which = Z_SortKey_sortAttributes; - sk->u.sortAttributes = (Z_SortAttributes *) - odr_malloc (out, sizeof(*sk->u.sortAttributes)); - sk->u.sortAttributes->id = odr_oiddup(out, yaz_oid_attset_bib_1); - sk->u.sortAttributes->list = (Z_AttributeList *) - odr_malloc (out, sizeof(*sk->u.sortAttributes->list)); - sk->u.sortAttributes->list->attributes = (Z_AttributeElement **) - odr_malloc (out, 10 * - sizeof(*sk->u.sortAttributes->list->attributes)); - while (i < 10 && sort_string && sort_string_sep) - { - Z_AttributeElement *el = (Z_AttributeElement *) - odr_malloc (out, sizeof(*el)); - sk->u.sortAttributes->list->attributes[i] = el; - el->attributeSet = 0; - el->attributeType = odr_intdup (out, atoi (sort_string)); - el->which = Z_AttributeValue_numeric; - el->value.numeric = - odr_intdup (out, atoi (sort_string_sep + 1)); - i++; - sort_string = strchr(sort_string, ','); - if (sort_string) - { - sort_string++; - sort_string_sep = strchr (sort_string, '='); - } - } - sk->u.sortAttributes->list->num_attributes = i; - } - else - { - sk->which = Z_SortKey_sortField; - sk->u.sortField = odr_strdup (out, sort_string); - } - sks->sortRelation = odr_intdup (out, Z_SortKeySpec_ascending); - sks->caseSensitivity = odr_intdup (out, Z_SortKeySpec_caseSensitive); - - sks->which = Z_SortKeySpec_null; - sks->u.null = odr_nullval (); - - for (i = 0; sort_flags[i]; i++) - { - switch (sort_flags[i]) - { - case 'd': - case 'D': - case '>': - *sks->sortRelation = Z_SortKeySpec_descending; - break; - case 'a': - case 'A': - case '<': - *sks->sortRelation = Z_SortKeySpec_ascending; - break; - case 'i': - case 'I': - *sks->caseSensitivity = Z_SortKeySpec_caseInsensitive; - break; - case 'S': - case 's': - *sks->caseSensitivity = Z_SortKeySpec_caseSensitive; - break; - case '!': - sks->which = Z_SortKeySpec_abort; - sks->u.abort = odr_nullval(); - break; - case '=': - sks->which = Z_SortKeySpec_missingValueData; - sks->u.missingValueData = (Odr_oct*) - odr_malloc(out, sizeof(Odr_oct)); - i++; - sks->u.missingValueData->len = strlen(sort_flags+i); - sks->u.missingValueData->size = sks->u.missingValueData->len; - sks->u.missingValueData->buf = (unsigned char*) - odr_strdup(out, sort_flags+i); - i += strlen(sort_flags+i); - } - } - } - if (!sksl->num_specs) - return 0; - return sksl; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/sru_update.csv b/dependencies/yaz_3.0.14/src/sru_update.csv deleted file mode 100644 index a670a44..0000000 --- a/dependencies/yaz_3.0.14/src/sru_update.csv +++ /dev/null @@ -1,51 +0,0 @@ -1, "Invalid component: record rejected" -2, "Invalid component: component rejected" -3, "Invalid component: warning only" -4, "Invalid component: default value applied" -5, "Invalid component: data corrected by server" -6, "Invalid repetition of component: record rejected" -7, "Invalid repetition of component: component rejected" -8, "Invalid repetition of component: warning only" -9, "Missing mandatory element: record rejected" -10, "Missing mandatory element: warning only" -11, "Missing mandatory element: default value applied" -12, "Invalid data structure: record rejected" -13, "Invalid data structure: component rejected" -14, "Invalid data structure: warning only" -15, "Invalid data structure: default value applied" -16, "Invalid data structure: data corrected by server" -17, "Incorrect element length: record rejected" -18, "Incorrect element length : component rejected" -19, "Incorrect element length : warning only" -20, "Incorrect element length : default value applied" -21, "Incorrect element length : data corrected by server" -22, "Invalid record identifier : record rejected" -23, "Invalid record identifier : warning only" -24, "Invalid record identifier : default applied" -25, "Invalid record identifier : data corrected by server" -26, "Invalid component identifier : record rejected" -27, "Invalid component identifier: component rejected" -28, "Invalid component identifier: warning only" -29, "Invalid component identifier: data corrected by server" -30, "Record schema unacceptable: record rejected" -31, "Record schema unacceptable: component rejected" -32, "Record schema unrecognised: warning only" -33, "Record schema unacceptable: record converted" -50, "Record not found (replacement or delete)" -51, "Component not found (replacement or delete)" -52, "Record protected or locked by another user" -53, "Cannot delete or replace record or component, authorization failure" -54, "Cannot delete or replace record or component without locking first" -55, "Cannot process update, incorrect or invalid version" -56, "Linked records exist, cannot delete record" -57, "Record or component not found, replacement request processed as an insert" -58, "Suspect duplicate: record or component insert rejected" -59, "Suspect duplicate: warning only" -60, "Incoming record matches with database record, records merged" -61, "Unspecified database error" -62, "Cannot process or store record, insufficent space" -63, " 'record' is ignored, while Both 'recordIdentifier' and 'record' were included on a 'delete' action." -64, "'recordIdentifier' is ignored, while Both 'recordIdentifier' and 'record' were included on a 'delete' action." -65, "Not processed (replace or delete). Record identifier retrieved ore than one record" -100, "Invalid action" - diff --git a/dependencies/yaz_3.0.14/src/srw.c b/dependencies/yaz_3.0.14/src/srw.c deleted file mode 100644 index 23b0f94..0000000 --- a/dependencies/yaz_3.0.14/src/srw.c +++ /dev/null @@ -1,1295 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: srw.c,v 1.58 2007/09/09 05:54:45 adam Exp $ - */ -/** - * \file srw.c - * \brief Implements SRW/SRU package encoding and decoding - */ - -#include -#if YAZ_HAVE_XML2 -#include -#include -#include - -static void add_XML_n(xmlNodePtr ptr, const char *elem, char *val, int len, - xmlNsPtr ns_ptr) -{ - if (val) - { - xmlDocPtr doc = xmlParseMemory(val,len); - if (doc) - { - xmlNodePtr c = xmlNewChild(ptr, ns_ptr, BAD_CAST elem, 0); - xmlNodePtr t = xmlDocGetRootElement(doc); - xmlAddChild(c, xmlCopyNode(t,1)); - xmlFreeDoc(doc); - } - } -} - -xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, const char *val, - int len) -{ - if (val) - { - xmlNodePtr c = xmlNewChild(ptr, 0, BAD_CAST elem, 0); - xmlNodePtr t = xmlNewTextLen(BAD_CAST val, len); - xmlAddChild(c, t); - return t; - } - return 0; -} - -xmlNodePtr add_xsd_string_ns(xmlNodePtr ptr, const char *elem, const char *val, - xmlNsPtr ns_ptr) -{ - if (val) - { - xmlNodePtr c = xmlNewChild(ptr, ns_ptr, BAD_CAST elem, 0); - xmlNodePtr t = xmlNewText(BAD_CAST val); - xmlAddChild(c, t); - return t; - } - return 0; -} - -xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, const char *val) -{ - return add_xsd_string_ns(ptr, elem, val, 0); -} - -static void add_xsd_integer(xmlNodePtr ptr, const char *elem, const int *val) -{ - if (val) - { - char str[30]; - sprintf(str, "%d", *val); - xmlNewTextChild(ptr, 0, BAD_CAST elem, BAD_CAST str); - } -} - -static int match_element(xmlNodePtr ptr, const char *elem) -{ - if (ptr->type == XML_ELEMENT_NODE && !xmlStrcmp(ptr->name, BAD_CAST elem)) - { - return 1; - } - return 0; -} - -#define CHECK_TYPE 0 - -static int match_xsd_string_n(xmlNodePtr ptr, const char *elem, ODR o, - char **val, int *len) -{ -#if CHECK_TYPE - struct _xmlAttr *attr; -#endif - if (!match_element(ptr, elem)) - return 0; -#if CHECK_TYPE - for (attr = ptr->properties; attr; attr = attr->next) - if (!strcmp(attr->name, "type") && - attr->children && attr->children->type == XML_TEXT_NODE) - { - const char *t = strchr(attr->children->content, ':'); - if (t) - t = t + 1; - else - t = attr->children->content; - if (!strcmp(t, "string")) - break; - } - if (!attr) - return 0; -#endif - ptr = ptr->children; - if (!ptr || ptr->type != XML_TEXT_NODE) - { - *val = ""; - return 1; - } - *val = odr_strdup(o, (const char *) ptr->content); - if (len) - *len = xmlStrlen(ptr->content); - return 1; -} - - -static int match_xsd_string(xmlNodePtr ptr, const char *elem, ODR o, - char **val) -{ - return match_xsd_string_n(ptr, elem, o, val, 0); -} - -static int match_xsd_XML_n(xmlNodePtr ptr, const char *elem, ODR o, - char **val, int *len) -{ - xmlBufferPtr buf; - - if (!match_element(ptr, elem)) - return 0; - - buf = xmlBufferCreate(); - - /* Copy each element nodes at top. - In most cases there is only one root node.. At least one server - http://www.theeuropeanlibrary.org/sru/sru.pl - has multiple root nodes in recordData. - */ - for (ptr = ptr->children; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE) - { - /* copy node to get NS right (bug #740). */ - xmlNode *tmp = xmlCopyNode(ptr, 1); - - xmlNodeDump(buf, tmp->doc, tmp, 0, 0); - - xmlFreeNode(tmp); - } - } - - *val = (char *) odr_malloc(o, buf->use+1); - memcpy (*val, buf->content, buf->use); - (*val)[buf->use] = '\0'; - - if (len) - *len = buf->use; - - xmlBufferFree(buf); - - return 1; -} - -static int match_xsd_integer(xmlNodePtr ptr, const char *elem, ODR o, int **val) -{ -#if CHECK_TYPE - struct _xmlAttr *attr; -#endif - if (!match_element(ptr, elem)) - return 0; -#if CHECK_TYPE - for (attr = ptr->properties; attr; attr = attr->next) - if (!strcmp(attr->name, "type") && - attr->children && attr->children->type == XML_TEXT_NODE) - { - const char *t = strchr(attr->children->content, ':'); - if (t) - t = t + 1; - else - t = attr->children->content; - if (!strcmp(t, "integer")) - break; - } - if (!attr) - return 0; -#endif - ptr = ptr->children; - if (!ptr || ptr->type != XML_TEXT_NODE) - return 0; - *val = odr_intdup(o, atoi((const char *) ptr->content)); - return 1; -} - -char *yaz_negotiate_sru_version(char *input_ver) -{ - if (!input_ver) - input_ver = "1.1"; - - if (!strcmp(input_ver, "1.1")) - return "1.1"; - return "1.2"; /* our latest supported version */ -} - -static int yaz_srw_record(ODR o, xmlNodePtr pptr, Z_SRW_record *rec, - Z_SRW_extra_record **extra, - void *client_data, const char *ns) -{ - if (o->direction == ODR_DECODE) - { - Z_SRW_extra_record ex; - - char *spack = 0; - int pack = Z_SRW_recordPacking_string; - xmlNodePtr ptr; - xmlNodePtr data_ptr = 0; - rec->recordSchema = 0; - rec->recordData_buf = 0; - rec->recordData_len = 0; - rec->recordPosition = 0; - *extra = 0; - - ex.extraRecordData_buf = 0; - ex.extraRecordData_len = 0; - ex.recordIdentifier = 0; - - for (ptr = pptr->children; ptr; ptr = ptr->next) - { - - if (match_xsd_string(ptr, "recordSchema", o, - &rec->recordSchema)) - ; - else if (match_xsd_string(ptr, "recordPacking", o, &spack)) - { - if (spack) - pack = yaz_srw_str_to_pack(spack); - } - else if (match_xsd_integer(ptr, "recordPosition", o, - &rec->recordPosition)) - ; - else if (match_element(ptr, "recordData")) - { - /* save position of Data until after the loop - then we will know the packing (hopefully), and - unpacking is done once - */ - data_ptr = ptr; - } - else if (match_xsd_XML_n(ptr, "extraRecordData", o, - &ex.extraRecordData_buf, - &ex.extraRecordData_len) ) - ; - else if (match_xsd_string(ptr, "recordIdentifier", o, - &ex.recordIdentifier)) - ; - - } - if (data_ptr) - { - switch(pack) - { - case Z_SRW_recordPacking_XML: - match_xsd_XML_n(data_ptr, "recordData", o, - &rec->recordData_buf, &rec->recordData_len); - break; - case Z_SRW_recordPacking_URL: - /* just store it as a string. - leave it to the backend to collect the document */ - match_xsd_string_n(data_ptr, "recordData", o, - &rec->recordData_buf, &rec->recordData_len); - break; - case Z_SRW_recordPacking_string: - match_xsd_string_n(data_ptr, "recordData", o, - &rec->recordData_buf, &rec->recordData_len); - break; - } - } - rec->recordPacking = pack; - if (ex.extraRecordData_buf || ex.recordIdentifier) - { - *extra = (Z_SRW_extra_record *) - odr_malloc(o, sizeof(Z_SRW_extra_record)); - memcpy(*extra, &ex, sizeof(Z_SRW_extra_record)); - } - } - else if (o->direction == ODR_ENCODE) - { - xmlNodePtr ptr = pptr; - int pack = rec->recordPacking; - const char *spack = yaz_srw_pack_to_str(pack); - - add_xsd_string(ptr, "recordSchema", rec->recordSchema); - if (spack) - add_xsd_string(ptr, "recordPacking", spack); - switch(pack) - { - case Z_SRW_recordPacking_string: - add_xsd_string_n(ptr, "recordData", rec->recordData_buf, - rec->recordData_len); - break; - case Z_SRW_recordPacking_XML: - add_XML_n(ptr, "recordData", rec->recordData_buf, - rec->recordData_len, 0); - break; - case Z_SRW_recordPacking_URL: - add_xsd_string_n(ptr, "recordData", rec->recordData_buf, - rec->recordData_len); - break; - } - if (rec->recordPosition) - add_xsd_integer(ptr, "recordPosition", rec->recordPosition ); - if (extra && *extra) - { - if ((*extra)->recordIdentifier) - add_xsd_string(ptr, "recordIdentifier", - (*extra)->recordIdentifier); - if ((*extra)->extraRecordData_buf) - add_XML_n(ptr, "extraRecordData", - (*extra)->extraRecordData_buf, - (*extra)->extraRecordData_len, 0); - } - } - return 0; -} - -static int yaz_srw_records(ODR o, xmlNodePtr pptr, Z_SRW_record **recs, - Z_SRW_extra_record ***extra, - int *num, void *client_data, const char *ns) -{ - if (o->direction == ODR_DECODE) - { - int i; - xmlNodePtr ptr; - *num = 0; - for (ptr = pptr->children; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "record")) - (*num)++; - } - if (!*num) - return 1; - *recs = (Z_SRW_record *) odr_malloc(o, *num * sizeof(**recs)); - *extra = (Z_SRW_extra_record **) odr_malloc(o, *num * sizeof(**extra)); - for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "record")) - { - yaz_srw_record(o, ptr, *recs + i, *extra + i, client_data, ns); - i++; - } - } - } - else if (o->direction == ODR_ENCODE) - { - int i; - for (i = 0; i < *num; i++) - { - xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "record", - 0); - yaz_srw_record(o, rptr, (*recs)+i, (*extra ? *extra + i : 0), - client_data, ns); - } - } - return 0; -} - -static int yaz_srw_version(ODR o, xmlNodePtr pptr, Z_SRW_recordVersion *rec, - void *client_data, const char *ns) -{ - if (o->direction == ODR_DECODE) - { - xmlNodePtr ptr; - rec->versionType = 0; - rec->versionValue = 0; - for (ptr = pptr->children; ptr; ptr = ptr->next) - { - - if (match_xsd_string(ptr, "versionType", o, - &rec->versionType)) - ; - else if (match_xsd_string(ptr, "versionValue", o, - &rec->versionValue)) - ; - } - } - else if (o->direction == ODR_ENCODE) - { - xmlNodePtr ptr = pptr; - add_xsd_string(ptr, "versionType", rec->versionType); - add_xsd_string(ptr, "versionValue", rec->versionValue); - } - return 0; -} - -static int yaz_srw_versions(ODR o, xmlNodePtr pptr, - Z_SRW_recordVersion **vers, - int *num, void *client_data, const char *ns) -{ - if (o->direction == ODR_DECODE) - { - int i; - xmlNodePtr ptr; - *num = 0; - for (ptr = pptr->children; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "recordVersion")) - (*num)++; - } - if (!*num) - return 1; - *vers = (Z_SRW_recordVersion *) odr_malloc(o, *num * sizeof(**vers)); - for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "recordVersion")) - { - yaz_srw_version(o, ptr, *vers + i, client_data, ns); - i++; - } - } - } - else if (o->direction == ODR_ENCODE) - { - int i; - for (i = 0; i < *num; i++) - { - xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "version", - 0); - yaz_srw_version(o, rptr, (*vers)+i, client_data, ns); - } - } - return 0; -} - - -static int yaz_srw_decode_diagnostics(ODR o, xmlNodePtr pptr, - Z_SRW_diagnostic **recs, int *num, - void *client_data, const char *ns) - -{ - int i; - xmlNodePtr ptr; - *num = 0; - for (ptr = pptr; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "diagnostic")) - (*num)++; - } - if (!*num) - return 1; - *recs = (Z_SRW_diagnostic *) odr_malloc(o, *num * sizeof(**recs)); - for (i = 0; i < *num; i++) - { - (*recs)[i].uri = 0; - (*recs)[i].details = 0; - (*recs)[i].message = 0; - } - for (i = 0, ptr = pptr; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "diagnostic")) - { - xmlNodePtr rptr; - (*recs)[i].uri = 0; - (*recs)[i].details = 0; - (*recs)[i].message = 0; - for (rptr = ptr->children; rptr; rptr = rptr->next) - { - if (match_xsd_string(rptr, "uri", o, - &(*recs)[i].uri)) - ; - else if (match_xsd_string(rptr, "details", o, - &(*recs)[i].details)) - ; - else if (match_xsd_string(rptr, "message", o, - &(*recs)[i].message)) - ; - } - i++; - } - } - return 0; -} - -int sru_decode_surrogate_diagnostics(const char *buf, size_t len, - Z_SRW_diagnostic **diag, - int *num, ODR odr) -{ - int ret = 0; - xmlDocPtr doc = xmlParseMemory(buf, len); - if (doc) - { - xmlNodePtr ptr = xmlDocGetRootElement(doc); - while (ptr && ptr->type != XML_ELEMENT_NODE) - ptr = ptr->next; - if (ptr && ptr->ns - && !xmlStrcmp(ptr->ns->href, - BAD_CAST "http://www.loc.gov/zing/srw/diagnostic/")) - { - ret = yaz_srw_decode_diagnostics(odr, ptr, diag, num, 0, 0); - } - xmlFreeDoc(doc); - } - return ret; -} - -static int yaz_srw_diagnostics(ODR o, xmlNodePtr pptr, Z_SRW_diagnostic **recs, - int *num, void *client_data, const char *ns) -{ - if (o->direction == ODR_DECODE) - { - return yaz_srw_decode_diagnostics(o, pptr->children, recs, num, client_data, ns); - } - else if (o->direction == ODR_ENCODE) - { - int i; - xmlNsPtr ns_diag = - xmlNewNs(pptr, BAD_CAST YAZ_XMLNS_DIAG_v1_1, BAD_CAST "diag" ); - for (i = 0; i < *num; i++) - { - const char *std_diag = "info:srw/diagnostic/1/"; - const char *ucp_diag = "info:srw/diagnostic/12/"; - xmlNodePtr rptr = xmlNewChild(pptr, ns_diag, - BAD_CAST "diagnostic", 0); - add_xsd_string(rptr, "uri", (*recs)[i].uri); - if ((*recs)[i].message) - add_xsd_string(rptr, "message", (*recs)[i].message); - else if ((*recs)[i].uri ) - { - if (!strncmp((*recs)[i].uri, std_diag, strlen(std_diag))) - { - int no = atoi((*recs)[i].uri + strlen(std_diag)); - const char *message = yaz_diag_srw_str(no); - if (message) - add_xsd_string(rptr, "message", message); - } - else if (!strncmp((*recs)[i].uri, ucp_diag, strlen(ucp_diag))) - { - int no = atoi((*recs)[i].uri + strlen(ucp_diag)); - const char *message = yaz_diag_sru_update_str(no); - if (message) - add_xsd_string(rptr, "message", message); - } - } - add_xsd_string(rptr, "details", (*recs)[i].details); - } - } - return 0; -} - -static int yaz_srw_term(ODR o, xmlNodePtr pptr, Z_SRW_scanTerm *term, - void *client_data, const char *ns) -{ - if (o->direction == ODR_DECODE) - { - xmlNodePtr ptr; - term->value = 0; - term->numberOfRecords = 0; - term->displayTerm = 0; - term->whereInList = 0; - for (ptr = pptr->children; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "value", o, &term->value)) - ; - else if (match_xsd_integer(ptr, "numberOfRecords", o, - &term->numberOfRecords)) - ; - else if (match_xsd_string(ptr, "displayTerm", o, - &term->displayTerm)) - ; - else if (match_xsd_string(ptr, "whereInList", o, - &term->whereInList)) - ; - } - } - else if (o->direction == ODR_ENCODE) - { - xmlNodePtr ptr = pptr; - add_xsd_string(ptr, "value", term->value); - add_xsd_integer(ptr, "numberOfRecords", term->numberOfRecords); - add_xsd_string(ptr, "displayTerm", term->displayTerm); - add_xsd_string(ptr, "whereInList", term->whereInList); - } - return 0; -} - -static int yaz_srw_terms(ODR o, xmlNodePtr pptr, Z_SRW_scanTerm **terms, - int *num, void *client_data, const char *ns) -{ - if (o->direction == ODR_DECODE) - { - int i; - xmlNodePtr ptr; - *num = 0; - for (ptr = pptr->children; ptr; ptr = ptr->next) - { - if (ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "term")) - (*num)++; - } - if (!*num) - return 1; - *terms = (Z_SRW_scanTerm *) odr_malloc(o, *num * sizeof(**terms)); - for (i = 0, ptr = pptr->children; ptr; ptr = ptr->next, i++) - { - if (ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "term")) - yaz_srw_term(o, ptr, (*terms)+i, client_data, ns); - } - } - else if (o->direction == ODR_ENCODE) - { - int i; - for (i = 0; i < *num; i++) - { - xmlNodePtr rptr = xmlNewChild(pptr, 0, BAD_CAST "term", 0); - yaz_srw_term(o, rptr, (*terms)+i, client_data, ns); - } - } - return 0; -} - -int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, - void *client_data, const char *ns) -{ - xmlNodePtr pptr = (xmlNodePtr) vptr; - if (o->direction == ODR_DECODE) - { - Z_SRW_PDU **p = handler_data; - xmlNodePtr method = pptr->children; - char *neg_version; - - while (method && method->type == XML_TEXT_NODE) - method = method->next; - - if (!method) - return -1; - if (method->type != XML_ELEMENT_NODE) - return -1; - - *p = yaz_srw_get_core_v_1_1(o); - - if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveRequest")) - { - xmlNodePtr ptr = method->children; - Z_SRW_searchRetrieveRequest *req; - - (*p)->which = Z_SRW_searchRetrieve_request; - req = (*p)->u.request = (Z_SRW_searchRetrieveRequest *) - odr_malloc(o, sizeof(*req)); - req->query_type = Z_SRW_query_type_cql; - req->query.cql = 0; - req->sort_type = Z_SRW_sort_type_none; - req->sort.none = 0; - req->startRecord = 0; - req->maximumRecords = 0; - req->recordSchema = 0; - req->recordPacking = 0; - req->recordXPath = 0; - req->resultSetTTL = 0; - req->stylesheet = 0; - req->database = 0; - - for (; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "version", o, - &(*p)->srw_version)) - ; - else if (match_xsd_string(ptr, "query", o, - &req->query.cql)) - req->query_type = Z_SRW_query_type_cql; - else if (match_xsd_string(ptr, "pQuery", o, - &req->query.pqf)) - req->query_type = Z_SRW_query_type_pqf; - else if (match_xsd_string(ptr, "xQuery", o, - &req->query.xcql)) - req->query_type = Z_SRW_query_type_xcql; - else if (match_xsd_integer(ptr, "startRecord", o, - &req->startRecord)) - ; - else if (match_xsd_integer(ptr, "maximumRecords", o, - &req->maximumRecords)) - ; - else if (match_xsd_string(ptr, "recordPacking", o, - &req->recordPacking)) - ; - else if (match_xsd_string(ptr, "recordSchema", o, - &req->recordSchema)) - ; - else if (match_xsd_string(ptr, "recordXPath", o, - &req->recordXPath)) - ; - else if (match_xsd_integer(ptr, "resultSetTTL", o, - &req->resultSetTTL)) - ; - else if (match_xsd_string(ptr, "sortKeys", o, - &req->sort.sortKeys)) - req->sort_type = Z_SRW_sort_type_sort; - else if (match_xsd_string(ptr, "stylesheet", o, - &req->stylesheet)) - ; - else if (match_xsd_string(ptr, "database", o, - &req->database)) - ; - } - if (!req->query.cql && !req->query.pqf && !req->query.xcql) - { - /* should put proper diagnostic here */ - return -1; - } - } - else if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveResponse")) - { - xmlNodePtr ptr = method->children; - Z_SRW_searchRetrieveResponse *res; - - (*p)->which = Z_SRW_searchRetrieve_response; - res = (*p)->u.response = (Z_SRW_searchRetrieveResponse *) - odr_malloc(o, sizeof(*res)); - - res->numberOfRecords = 0; - res->resultSetId = 0; - res->resultSetIdleTime = 0; - res->records = 0; - res->num_records = 0; - res->diagnostics = 0; - res->num_diagnostics = 0; - res->nextRecordPosition = 0; - - for (; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "version", o, - &(*p)->srw_version)) - ; - else if (match_xsd_integer(ptr, "numberOfRecords", o, - &res->numberOfRecords)) - ; - else if (match_xsd_string(ptr, "resultSetId", o, - &res->resultSetId)) - ; - else if (match_xsd_integer(ptr, "resultSetIdleTime", o, - &res->resultSetIdleTime)) - ; - else if (match_element(ptr, "records")) - yaz_srw_records(o, ptr, &res->records, - &res->extra_records, - &res->num_records, client_data, ns); - else if (match_xsd_integer(ptr, "nextRecordPosition", o, - &res->nextRecordPosition)) - ; - else if (match_element(ptr, "diagnostics")) - yaz_srw_diagnostics(o, ptr, &res->diagnostics, - &res->num_diagnostics, - client_data, ns); - } - } - else if (!xmlStrcmp(method->name, BAD_CAST "explainRequest")) - { - Z_SRW_explainRequest *req; - xmlNodePtr ptr = method->children; - - (*p)->which = Z_SRW_explain_request; - req = (*p)->u.explain_request = (Z_SRW_explainRequest *) - odr_malloc(o, sizeof(*req)); - req->recordPacking = 0; - req->database = 0; - req->stylesheet = 0; - for (; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "version", o, - &(*p)->srw_version)) - ; - else if (match_xsd_string(ptr, "stylesheet", o, - &req->stylesheet)) - ; - else if (match_xsd_string(ptr, "recordPacking", o, - &req->recordPacking)) - ; - else if (match_xsd_string(ptr, "database", o, - &req->database)) - ; - } - } - else if (!xmlStrcmp(method->name, BAD_CAST "explainResponse")) - { - Z_SRW_explainResponse *res; - xmlNodePtr ptr = method->children; - - (*p)->which = Z_SRW_explain_response; - res = (*p)->u.explain_response = (Z_SRW_explainResponse*) - odr_malloc(o, sizeof(*res)); - res->diagnostics = 0; - res->num_diagnostics = 0; - res->record.recordSchema = 0; - res->record.recordData_buf = 0; - res->record.recordData_len = 0; - res->record.recordPosition = 0; - - for (; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "version", o, - &(*p)->srw_version)) - ; - else if (match_element(ptr, "record")) - yaz_srw_record(o, ptr, &res->record, &res->extra_record, - client_data, ns); - else if (match_element(ptr, "diagnostics")) - yaz_srw_diagnostics(o, ptr, &res->diagnostics, - &res->num_diagnostics, - client_data, ns); - ; - } - } - else if (!xmlStrcmp(method->name, BAD_CAST "scanRequest")) - { - Z_SRW_scanRequest *req; - xmlNodePtr ptr = method->children; - - (*p)->which = Z_SRW_scan_request; - req = (*p)->u.scan_request = (Z_SRW_scanRequest *) - odr_malloc(o, sizeof(*req)); - req->query_type = Z_SRW_query_type_cql; - req->scanClause.cql = 0; - req->responsePosition = 0; - req->maximumTerms = 0; - req->stylesheet = 0; - req->database = 0; - - for (; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "version", o, - &(*p)->srw_version)) - ; - else if (match_xsd_string(ptr, "scanClause", o, - &req->scanClause.cql)) - ; - else if (match_xsd_string(ptr, "pScanClause", o, - &req->scanClause.pqf)) - { - req->query_type = Z_SRW_query_type_pqf; - } - else if (match_xsd_integer(ptr, "responsePosition", o, - &req->responsePosition)) - ; - else if (match_xsd_integer(ptr, "maximumTerms", o, - &req->maximumTerms)) - ; - else if (match_xsd_string(ptr, "stylesheet", o, - &req->stylesheet)) - ; - else if (match_xsd_string(ptr, "database", o, - &req->database)) - ; - } - } - else if (!xmlStrcmp(method->name, BAD_CAST "scanResponse")) - { - Z_SRW_scanResponse *res; - xmlNodePtr ptr = method->children; - - (*p)->which = Z_SRW_scan_response; - res = (*p)->u.scan_response = (Z_SRW_scanResponse *) - odr_malloc(o, sizeof(*res)); - res->terms = 0; - res->num_terms = 0; - res->diagnostics = 0; - res->num_diagnostics = 0; - - for (; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "version", o, - &(*p)->srw_version)) - ; - else if (match_element(ptr, "terms")) - yaz_srw_terms(o, ptr, &res->terms, - &res->num_terms, client_data, - ns); - else if (match_element(ptr, "diagnostics")) - yaz_srw_diagnostics(o, ptr, &res->diagnostics, - &res->num_diagnostics, - client_data, ns); - } - } - else - { - *p = 0; - return -1; - } - neg_version = yaz_negotiate_sru_version((*p)->srw_version); - if (neg_version) - (*p)->srw_version = neg_version; - } - else if (o->direction == ODR_ENCODE) - { - Z_SRW_PDU **p = handler_data; - xmlNsPtr ns_srw; - - if ((*p)->which == Z_SRW_searchRetrieve_request) - { - Z_SRW_searchRetrieveRequest *req = (*p)->u.request; - xmlNodePtr ptr = xmlNewChild(pptr, 0, - BAD_CAST "searchRetrieveRequest", 0); - ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); - xmlSetNs(ptr, ns_srw); - - if ((*p)->srw_version) - add_xsd_string(ptr, "version", (*p)->srw_version); - switch(req->query_type) - { - case Z_SRW_query_type_cql: - add_xsd_string(ptr, "query", req->query.cql); - break; - case Z_SRW_query_type_xcql: - add_xsd_string(ptr, "xQuery", req->query.xcql); - break; - case Z_SRW_query_type_pqf: - add_xsd_string(ptr, "pQuery", req->query.pqf); - break; - } - add_xsd_integer(ptr, "startRecord", req->startRecord); - add_xsd_integer(ptr, "maximumRecords", req->maximumRecords); - add_xsd_string(ptr, "recordPacking", req->recordPacking); - add_xsd_string(ptr, "recordSchema", req->recordSchema); - add_xsd_string(ptr, "recordXPath", req->recordXPath); - add_xsd_integer(ptr, "resultSetTTL", req->resultSetTTL); - switch(req->sort_type) - { - case Z_SRW_sort_type_none: - break; - case Z_SRW_sort_type_sort: - add_xsd_string(ptr, "sortKeys", req->sort.sortKeys); - break; - case Z_SRW_sort_type_xSort: - add_xsd_string(ptr, "xSortKeys", req->sort.xSortKeys); - break; - } - add_xsd_string(ptr, "stylesheet", req->stylesheet); - add_xsd_string(ptr, "database", req->database); - } - else if ((*p)->which == Z_SRW_searchRetrieve_response) - { - Z_SRW_searchRetrieveResponse *res = (*p)->u.response; - xmlNodePtr ptr = xmlNewChild(pptr, 0, - BAD_CAST "searchRetrieveResponse", 0); - ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); - xmlSetNs(ptr, ns_srw); - - if ((*p)->srw_version) - add_xsd_string(ptr, "version", (*p)->srw_version); - add_xsd_integer(ptr, "numberOfRecords", res->numberOfRecords); - add_xsd_string(ptr, "resultSetId", res->resultSetId); - add_xsd_integer(ptr, "resultSetIdleTime", res->resultSetIdleTime); - if (res->num_records) - { - xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "records", 0); - yaz_srw_records(o, rptr, &res->records, &res->extra_records, - &res->num_records, - client_data, ns); - } - add_xsd_integer(ptr, "nextRecordPosition", - res->nextRecordPosition); - if (res->num_diagnostics) - { - xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics", - 0); - yaz_srw_diagnostics(o, rptr, &res->diagnostics, - &res->num_diagnostics, client_data, ns); - } - } - else if ((*p)->which == Z_SRW_explain_request) - { - Z_SRW_explainRequest *req = (*p)->u.explain_request; - xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "explainRequest", - 0); - ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); - xmlSetNs(ptr, ns_srw); - - add_xsd_string(ptr, "version", (*p)->srw_version); - add_xsd_string(ptr, "recordPacking", req->recordPacking); - add_xsd_string(ptr, "stylesheet", req->stylesheet); - add_xsd_string(ptr, "database", req->database); - } - else if ((*p)->which == Z_SRW_explain_response) - { - Z_SRW_explainResponse *res = (*p)->u.explain_response; - xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "explainResponse", - 0); - ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); - xmlSetNs(ptr, ns_srw); - - add_xsd_string(ptr, "version", (*p)->srw_version); - if (1) - { - xmlNodePtr ptr1 = xmlNewChild(ptr, 0, BAD_CAST "record", 0); - yaz_srw_record(o, ptr1, &res->record, &res->extra_record, - client_data, ns); - } - if (res->num_diagnostics) - { - xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics", - 0); - yaz_srw_diagnostics(o, rptr, &res->diagnostics, - &res->num_diagnostics, client_data, ns); - } - } - else if ((*p)->which == Z_SRW_scan_request) - { - Z_SRW_scanRequest *req = (*p)->u.scan_request; - xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "scanRequest", 0); - ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); - xmlSetNs(ptr, ns_srw); - - add_xsd_string(ptr, "version", (*p)->srw_version); - switch(req->query_type) - { - case Z_SRW_query_type_cql: - add_xsd_string(ptr, "scanClause", req->scanClause.cql); - break; - case Z_SRW_query_type_pqf: - add_xsd_string(ptr, "pScanClause", req->scanClause.pqf); - break; - } - add_xsd_integer(ptr, "responsePosition", req->responsePosition); - add_xsd_integer(ptr, "maximumTerms", req->maximumTerms); - add_xsd_string(ptr, "stylesheet", req->stylesheet); - add_xsd_string(ptr, "database", req->database); - } - else if ((*p)->which == Z_SRW_scan_response) - { - Z_SRW_scanResponse *res = (*p)->u.scan_response; - xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "scanResponse", 0); - ns_srw = xmlNewNs(ptr, BAD_CAST ns, BAD_CAST "zs"); - xmlSetNs(ptr, ns_srw); - - add_xsd_string(ptr, "version", (*p)->srw_version); - - if (res->num_terms) - { - xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "terms", 0); - yaz_srw_terms(o, rptr, &res->terms, &res->num_terms, - client_data, ns); - } - if (res->num_diagnostics) - { - xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "diagnostics", - 0); - yaz_srw_diagnostics(o, rptr, &res->diagnostics, - &res->num_diagnostics, client_data, ns); - } - } - else - return -1; - - } - return 0; -} - -int yaz_ucp_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, - void *client_data, const char *ns_ucp_str) -{ - xmlNodePtr pptr = (xmlNodePtr) vptr; - const char *ns_srw_str = YAZ_XMLNS_SRU_v1_1; - if (o->direction == ODR_DECODE) - { - Z_SRW_PDU **p = handler_data; - xmlNodePtr method = pptr->children; - - while (method && method->type == XML_TEXT_NODE) - method = method->next; - - if (!method) - return -1; - if (method->type != XML_ELEMENT_NODE) - return -1; - - *p = yaz_srw_get_core_v_1_1(o); - - if (!xmlStrcmp(method->name, BAD_CAST "updateRequest")) - { - xmlNodePtr ptr = method->children; - Z_SRW_updateRequest *req; - char *oper = 0; - - (*p)->which = Z_SRW_update_request; - req = (*p)->u.update_request = (Z_SRW_updateRequest *) - odr_malloc(o, sizeof(*req)); - req->database = 0; - req->operation = 0; - req->recordId = 0; - req->recordVersions = 0; - req->num_recordVersions = 0; - req->record = 0; - req->extra_record = 0; - req->extraRequestData_buf = 0; - req->extraRequestData_len = 0; - req->stylesheet = 0; - - for (; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "version", o, - &(*p)->srw_version)) - ; - else if (match_xsd_string(ptr, "action", o, - &oper)){ - if ( oper ){ - if ( !strcmp(oper, "info:srw/action/1/delete")) - req->operation = "delete"; - else if (!strcmp(oper,"info:srw/action/1/replace" )) - req->operation = "replace"; - else if ( !strcmp( oper, "info:srw/action/1/create")) - req->operation = "insert"; - } - } - else if (match_xsd_string(ptr, "recordIdentifier", o, - &req->recordId)) - ; - else if (match_element(ptr, "recordVersions" ) ) - yaz_srw_versions( o, ptr, &req->recordVersions, - &req->num_recordVersions, client_data, - ns_ucp_str); - else if (match_element(ptr, "record")) - { - req->record = yaz_srw_get_record(o); - yaz_srw_record(o, ptr, req->record, &req->extra_record, - client_data, ns_ucp_str); - } - else if (match_xsd_string(ptr, "stylesheet", o, - &req->stylesheet)) - ; - else if (match_xsd_string(ptr, "database", o, - &req->database)) - ; - } - } - else if (!xmlStrcmp(method->name, BAD_CAST "updateResponse")) - { - xmlNodePtr ptr = method->children; - Z_SRW_updateResponse *res; - - (*p)->which = Z_SRW_update_response; - res = (*p)->u.update_response = (Z_SRW_updateResponse *) - odr_malloc(o, sizeof(*res)); - - res->operationStatus = 0; - res->recordId = 0; - res->recordVersions = 0; - res->num_recordVersions = 0; - res->diagnostics = 0; - res->num_diagnostics = 0; - res->record = 0; - res->extra_record = 0; - res->extraResponseData_buf = 0; - res->extraResponseData_len = 0; - - for (; ptr; ptr = ptr->next) - { - if (match_xsd_string(ptr, "version", o, - &(*p)->srw_version)) - ; - else if (match_xsd_string(ptr, "operationStatus", o, - &res->operationStatus )) - ; - else if (match_xsd_string(ptr, "recordIdentifier", o, - &res->recordId)) - ; - else if (match_element(ptr, "recordVersions" )) - yaz_srw_versions(o, ptr, &res->recordVersions, - &res->num_recordVersions, - client_data, ns_ucp_str); - else if (match_element(ptr, "record")) - { - res->record = yaz_srw_get_record(o); - yaz_srw_record(o, ptr, res->record, &res->extra_record, - client_data, ns_ucp_str); - } - else if (match_element(ptr, "diagnostics")) - yaz_srw_diagnostics(o, ptr, &res->diagnostics, - &res->num_diagnostics, - client_data, ns_ucp_str); - } - } - else if (!xmlStrcmp(method->name, BAD_CAST "explainUpdateRequest")) - { - } - else if (!xmlStrcmp(method->name, BAD_CAST "explainUpdateResponse")) - { - } - else - { - *p = 0; - return -1; - } - } - else if (o->direction == ODR_ENCODE) - { - Z_SRW_PDU **p = handler_data; - xmlNsPtr ns_ucp, ns_srw; - - - if ((*p)->which == Z_SRW_update_request) - { - Z_SRW_updateRequest *req = (*p)->u.update_request; - xmlNodePtr ptr = xmlNewChild(pptr, 0, BAD_CAST "updateRequest", 0); - ns_ucp = xmlNewNs(ptr, BAD_CAST ns_ucp_str, BAD_CAST "zu"); - xmlSetNs(ptr, ns_ucp); - ns_srw = xmlNewNs(ptr, BAD_CAST ns_srw_str, BAD_CAST "zs"); - - add_xsd_string_ns(ptr, "version", (*p)->srw_version, ns_srw); - add_xsd_string(ptr, "action", req->operation); - add_xsd_string(ptr, "recordIdentifier", req->recordId ); - if (req->recordVersions) - yaz_srw_versions( o, ptr, &req->recordVersions, - &req->num_recordVersions, - client_data, ns_ucp_str); - if (req->record && req->record->recordData_len) - { - xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "record", 0); - xmlSetNs(rptr, ns_srw); - yaz_srw_record(o, rptr, req->record, &req->extra_record, - client_data, ns_ucp_str); - } - if (req->extraRequestData_len) - { - add_XML_n(ptr, "extraRequestData", - req->extraRequestData_buf, - req->extraRequestData_len, ns_srw); - } - add_xsd_string(ptr, "stylesheet", req->stylesheet); - add_xsd_string(ptr, "database", req->database); - } - else if ((*p)->which == Z_SRW_update_response) - { - Z_SRW_updateResponse *res = (*p)->u.update_response; - xmlNodePtr ptr = xmlNewChild(pptr, 0, (xmlChar *) - "updateResponse", 0); - ns_ucp = xmlNewNs(ptr, BAD_CAST ns_ucp_str, BAD_CAST "zu"); - xmlSetNs(ptr, ns_ucp); - ns_srw = xmlNewNs(ptr, BAD_CAST ns_srw_str, BAD_CAST "zs"); - - add_xsd_string_ns(ptr, "version", (*p)->srw_version, ns_srw); - add_xsd_string(ptr, "operationStatus", res->operationStatus ); - add_xsd_string(ptr, "recordIdentifier", res->recordId ); - if (res->recordVersions) - yaz_srw_versions(o, ptr, &res->recordVersions, - &res->num_recordVersions, - client_data, ns_ucp_str); - if (res->record && res->record->recordData_len) - { - xmlNodePtr rptr = xmlNewChild(ptr, 0, BAD_CAST "record", 0); - xmlSetNs(rptr, ns_srw); - yaz_srw_record(o, rptr, res->record, &res->extra_record, - client_data, ns_ucp_str); - } - if (res->num_diagnostics) - { - xmlNsPtr ns_diag = - xmlNewNs(pptr, BAD_CAST YAZ_XMLNS_DIAG_v1_1, - BAD_CAST "diag" ); - - xmlNodePtr rptr = xmlNewChild(ptr, ns_diag, BAD_CAST "diagnostics", 0); - yaz_srw_diagnostics(o, rptr, &res->diagnostics, - &res->num_diagnostics, client_data, - ns_ucp_str); - } - if (res->extraResponseData_len) - add_XML_n(ptr, "extraResponseData", - res->extraResponseData_buf, - res->extraResponseData_len, ns_srw); - } - else - return -1; - - } - return 0; -} - -#endif - - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/srw.csv b/dependencies/yaz_3.0.14/src/srw.csv deleted file mode 100644 index 4b03146..0000000 --- a/dependencies/yaz_3.0.14/src/srw.csv +++ /dev/null @@ -1,95 +0,0 @@ -"$Id: srw.csv,v 1.4 2006/09/06 15:45:13 adam Exp $" -1, "Permanent system error" -2, "System temporarily unavailable" -3, "Authentication error" -4, "Unsupported operation" -5, "Unsupported version" -6, "Unsupported parameter value" -7, "Mandatory parameter not supplied" -8, "Unsupported parameter" -10, "Query syntax error" -11, "Unsupported query type" -12, "Too many characters in query" -13, "Invalid or unsupported use of parentheses" -14, "Invalid or unsupported use of quotes" -15, "Unsupported context set" -16, "Unsupported index" -17, "Unsupported combination of index and context set" -18, "Unsupported combination of indexes" -19, "Unsupported relation" -20, "Unsupported relation modifier" -21, "Unsupported combination of relation modifers" -22, "Unsupported combination of relation and index" -23, "Too many characters in term" -24, "Unsupported combination of relation and term" -25, "Special characters not quoted in term" -26, "Non special character escaped in term" -27, "Empty term unsupported" -28, "Masking character not supported" -29, "Masked words too short" -30, "Too many masking characters in term" -31, "Anchoring character not supported" -32, "Anchoring character in unsupported position" -33, "Combination of proximity/adjacency and masking characters not supported" -34, "Combination of proximity/adjacency and anchoring characters not supported" -35, "Term contains only stopwords" -36, "Term in invalid format for index or relation" -37, "Unsupported boolean operator" -38, "Too many boolean operators in query" -39, "Proximity not supported" -40, "Unsupported proximity relation" -41, "Unsupported proximity distance" -42, "Unsupported proximity unit" -43, "Unsupported proximity ordering" -44, "Unsupported combination of proximity modifiers" -45, "Prefix assigned to multiple identifiers" -46, "Unsupported boolean modifier" -47, "Cannot process query; reason unknown" -48, "Query feature unsupported" -49, "Masking character in unsupported position" -50, "Result sets not supported" -51, "Result set does not exist" -52, "Result set temporarily unavailable" -53, "Result sets only supported for retrieval" -54, "Retrieval may only occur from an existing result set" -55, "Combination of result sets with search terms not supported" -56, "Only combination of single result set with search terms supported" -57, "Result set created but no records available" -58, "Result set created with unpredictable partial results available" -59, "Result set created with valid partial results available" -60, "Result set not created: too many matching records" -61, "First record position out of range" -62, "Negative number of records requested" -63, "System error in retrieving records" -64, "Record temporarily unavailable" -65, "Record does not exist" -66, "Unknown schema for retrieval" -67, "Record not available in this schema" -68, "Not authorised to send record" -69, "Not authorised to send record in this schema" -70, "Record too large to send" -71, "Unsupported record packing" -72, "XPath retrieval unsupported" -73, "XPath expression contains unsupported feature" -74, "Unable to evaluate XPath expression" -80, "Sort not supported" -81, "Unsupported sort type" -82, "Unsupported sort sequence" -83, "Too many records to sort" -84, "Too many sort keys to sort" -85, "Duplicate sort keys" -86, "Cannot sort: incompatible record formats" -87, "Unsupported schema for sort" -88, "Unsupported path for sort" -89, "Path unsupported for schema" -90, "Unsupported direction value" -91, "Unsupported case value" -92, "Unsupported missing value action" -93, "Sort ended due to missing value" -100, "Explain not supported" -101, "Explain request type not supported (SOAP vs GET)" -102, "Explain record temporarily unavailable" -110, "Stylesheets not supported" -111, "Unsupported stylesheet" -120, "Response position out of range" -121, "Too many terms requested" diff --git a/dependencies/yaz_3.0.14/src/srwutil.c b/dependencies/yaz_3.0.14/src/srwutil.c deleted file mode 100644 index 7d80b56..0000000 --- a/dependencies/yaz_3.0.14/src/srwutil.c +++ /dev/null @@ -1,1410 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: srwutil.c,v 1.64 2007/09/07 17:41:47 mike Exp $ - */ -/** - * \file srwutil.c - * \brief Implements SRW/SRU utilities. - */ - -#include -#include -#include - -static int hex_digit (int ch) -{ - if (ch >= '0' && ch <= '9') - return ch - '0'; - else if (ch >= 'a' && ch <= 'f') - return ch - 'a'+10; - else if (ch >= 'A' && ch <= 'F') - return ch - 'A'+10; - return 0; -} - -void encode_uri_char(char *dst, char ch) -{ - if (ch == ' ') - strcpy(dst, "+"); - /* mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" */ - else if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || - (ch >= '0' && ch <= '9') || strchr("-_.!~*'(|)", ch)) - { - dst[0] = ch; - dst[1] = '\0'; - } - else - { - dst[0] = '%'; - sprintf(dst+1, "%02X", (unsigned char ) ch); - } -} - -static void yaz_array_to_uri_ex(char **path, ODR o, char **name, char **value, - const char *extra_args) -{ - size_t i, szp = 0, sz = extra_args ? 1+strlen(extra_args) : 1; - for(i = 0; name[i]; i++) - sz += strlen(name[i]) + 3 + strlen(value[i]) * 3; - *path = (char *) odr_malloc(o, sz); - - for(i = 0; name[i]; i++) - { - size_t j, ilen; - if (i) - (*path)[szp++] = '&'; - ilen = strlen(name[i]); - memcpy(*path+szp, name[i], ilen); - szp += ilen; - (*path)[szp++] = '='; - for (j = 0; value[i][j]; j++) - { - size_t vlen; - char vstr[5]; - encode_uri_char(vstr, value[i][j]); - vlen = strlen(vstr); - memcpy(*path+szp, vstr, vlen); - szp += vlen; - } - } - if (extra_args) - { - if (i) - (*path)[szp++] = '&'; - memcpy(*path + szp, extra_args, strlen(extra_args)); - szp += strlen(extra_args); - } - (*path)[szp] = '\0'; -} - -void yaz_array_to_uri(char **path, ODR o, char **name, char **value) -{ - yaz_array_to_uri_ex(path, o, name, value, 0); -} - -int yaz_uri_array(const char *path, ODR o, char ***name, char ***val) -{ - int no = 2; - const char *cp; - *name = 0; - if (*path == '?') - path++; - if (!*path) - return 0; - cp = path; - while ((cp = strchr(cp, '&'))) - { - cp++; - no++; - } - *name = (char **) odr_malloc(o, no * sizeof(char*)); - *val = (char **) odr_malloc(o, no * sizeof(char*)); - - for (no = 0; *path; no++) - { - const char *p1 = strchr(path, '='); - size_t i = 0; - char *ret; - if (!p1) - break; - - (*name)[no] = (char *) odr_malloc(o, (p1-path)+1); - memcpy((*name)[no], path, p1-path); - (*name)[no][p1-path] = '\0'; - - path = p1 + 1; - p1 = strchr(path, '&'); - if (!p1) - p1 = strlen(path) + path; - (*val)[no] = ret = (char *) odr_malloc(o, p1 - path + 1); - while (*path && *path != '&') - { - if (*path == '+') - { - ret[i++] = ' '; - path++; - } - else if (*path == '%' && path[1] && path[2]) - { - ret[i++] = hex_digit (path[1])*16 + hex_digit (path[2]); - path = path + 3; - } - else - ret[i++] = *path++; - } - ret[i] = '\0'; - - if (*path) - path++; - } - (*name)[no] = 0; - (*val)[no] = 0; - return no; -} - -char *yaz_uri_val(const char *path, const char *name, ODR o) -{ - size_t nlen = strlen(name); - if (*path != '?') - return 0; - path++; - while (path && *path) - { - const char *p1 = strchr(path, '='); - if (!p1) - break; - if ((size_t)(p1 - path) == nlen && !memcmp(path, name, nlen)) - { - size_t i = 0; - char *ret; - - path = p1 + 1; - p1 = strchr(path, '&'); - if (!p1) - p1 = strlen(path) + path; - ret = (char *) odr_malloc(o, p1 - path + 1); - while (*path && *path != '&') - { - if (*path == '+') - { - ret[i++] = ' '; - path++; - } - else if (*path == '%' && path[1] && path[2]) - { - ret[i++] = hex_digit (path[1])*16 + hex_digit (path[2]); - path = path + 3; - } - else - ret[i++] = *path++; - } - ret[i] = '\0'; - return ret; - } - path = strchr(p1, '&'); - if (path) - path++; - } - return 0; -} - -static int yaz_base64decode(const char *in, char *out) -{ - const char *map = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz0123456789+/"; - int olen = 0; - int len = strlen(in); - - while (len >= 4) - { - char i0, i1, i2, i3; - char *p; - - if (!(p = strchr(map, in[0]))) - return 0; - i0 = p - map; - len--; - if (!(p = strchr(map, in[1]))) - return 0; - i1 = p - map; - len--; - *(out++) = i0 << 2 | i1 >> 4; - olen++; - if (in[2] == '=') - break; - if (!(p = strchr(map, in[2]))) - return 0; - i2 = p - map; - len--; - *(out++) = i1 << 4 | i2 >> 2; - olen++; - if (in[3] == '=') - break; - if (!(p = strchr(map, in[3]))) - return 0; - i3 = p - map; - len--; - *(out++) = i2 << 6 | i3; - olen++; - - in += 4; - } - - *out = '\0'; - return olen; -} - -int yaz_srw_check_content_type(Z_HTTP_Response *hres) -{ - const char *content_type = z_HTTP_header_lookup(hres->headers, - "Content-Type"); - if (content_type) - { - if (!yaz_strcmp_del("text/xml", content_type, "; ")) - return 1; - if (!yaz_strcmp_del("application/xml", content_type, "; ")) - return 1; - } - return 0; -} - -/** - * Look for authentication tokens in HTTP Basic parameters or in x-username/x-password - * parameters. Added by SH. - */ -static void yaz_srw_decodeauth(Z_SRW_PDU *sr, Z_HTTP_Request *hreq, - char *username, char *password, ODR decode) -{ - const char *basic = z_HTTP_header_lookup(hreq->headers, "Authorization"); - - if (username) - sr->username = username; - if (password) - sr->password = password; - - if (basic) { - int len, olen; - char out[256]; - char ubuf[256] = "", pbuf[256] = "", *p; - if (strncmp(basic, "Basic ", 6)) - return; - basic += 6; - len = strlen(basic); - if (!len || len > 256) - return; - olen = yaz_base64decode(basic, out); - /* Format of out should be username:password at this point */ - strcpy(ubuf, out); - if ((p = strchr(ubuf, ':'))) { - *(p++) = '\0'; - if (*p) - strcpy(pbuf, p); - } - if (*ubuf) - sr->username = odr_strdup(decode, ubuf); - if (*pbuf) - sr->password = odr_strdup(decode, pbuf); - } -} - -void yaz_uri_val_int(const char *path, const char *name, ODR o, int **intp) -{ - const char *v = yaz_uri_val(path, name, o); - if (v) - *intp = odr_intdup(o, atoi(v)); -} - -void yaz_mk_srw_diagnostic(ODR o, Z_SRW_diagnostic *d, - const char *uri, const char *message, - const char *details) -{ - d->uri = odr_strdup(o, uri); - if (message) - d->message = odr_strdup(o, message); - else - d->message = 0; - if (details) - d->details = odr_strdup(o, details); - else - d->details = 0; -} - -void yaz_mk_std_diagnostic(ODR o, Z_SRW_diagnostic *d, - int code, const char *details) -{ - char uri[40]; - - sprintf(uri, "info:srw/diagnostic/1/%d", code); - yaz_mk_srw_diagnostic(o, d, uri, 0, details); -} - -void yaz_add_srw_diagnostic_uri(ODR o, Z_SRW_diagnostic **d, - int *num, const char *uri, - const char *message, const char *details) -{ - Z_SRW_diagnostic *d_new; - d_new = (Z_SRW_diagnostic *) odr_malloc (o, (*num + 1)* sizeof(**d)); - if (*num) - memcpy (d_new, *d, *num *sizeof(**d)); - *d = d_new; - - yaz_mk_srw_diagnostic(o, *d + *num, uri, message, details); - (*num)++; -} - -void yaz_add_srw_diagnostic(ODR o, Z_SRW_diagnostic **d, - int *num, int code, const char *addinfo) -{ - char uri[40]; - - sprintf(uri, "info:srw/diagnostic/1/%d", code); - yaz_add_srw_diagnostic_uri(o, d, num, uri, 0, addinfo); -} - - -void yaz_add_sru_update_diagnostic(ODR o, Z_SRW_diagnostic **d, - int *num, int code, const char *addinfo) -{ - char uri[40]; - - sprintf(uri, "info:srw/diagnostic/12/%d", code); - yaz_add_srw_diagnostic_uri(o, d, num, uri, 0, addinfo); -} - - -static void grab_charset(ODR o, const char *content_type, char **charset) -{ - if (charset) - { - const char *charset_p = 0; - if (content_type && (charset_p = strstr(content_type, "; charset="))) - { - int i = 0; - charset_p += 10; - while (i < 20 && charset_p[i] && - !strchr("; \n\r", charset_p[i])) - i++; - *charset = (char*) odr_malloc(o, i+1); - memcpy(*charset, charset_p, i); - (*charset)[i] = '\0'; - } - } -} - -int yaz_srw_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu, - Z_SOAP **soap_package, ODR decode, char **charset) -{ - if (!strcmp(hreq->method, "POST")) - { - const char *content_type = z_HTTP_header_lookup(hreq->headers, - "Content-Type"); - if (content_type && - (!yaz_strcmp_del("text/xml", content_type, "; ") || - !yaz_strcmp_del("application/soap+xml", content_type, "; ") || - !yaz_strcmp_del("text/plain", content_type, "; "))) - { - char *db = "Default"; - const char *p0 = hreq->path, *p1; - int ret = -1; - - static Z_SOAP_Handler soap_handlers[4] = { -#if YAZ_HAVE_XML2 - { YAZ_XMLNS_SRU_v1_1, 0, (Z_SOAP_fun) yaz_srw_codec }, - { YAZ_XMLNS_SRU_v1_0, 0, (Z_SOAP_fun) yaz_srw_codec }, - { YAZ_XMLNS_UPDATE_v0_9, 0, (Z_SOAP_fun) yaz_ucp_codec }, -#endif - {0, 0, 0} - }; - - if (*p0 == '/') - p0++; - p1 = strchr(p0, '?'); - if (!p1) - p1 = p0 + strlen(p0); - if (p1 != p0) - { - db = (char*) odr_malloc(decode, p1 - p0 + 1); - memcpy (db, p0, p1 - p0); - db[p1 - p0] = '\0'; - } - - grab_charset(decode, content_type, charset); - - ret = z_soap_codec(decode, soap_package, - &hreq->content_buf, &hreq->content_len, - soap_handlers); - if (ret == 0 && (*soap_package)->which == Z_SOAP_generic) - { - *srw_pdu = (Z_SRW_PDU*) (*soap_package)->u.generic->p; - - if ((*srw_pdu)->which == Z_SRW_searchRetrieve_request && - (*srw_pdu)->u.request->database == 0) - (*srw_pdu)->u.request->database = db; - - if ((*srw_pdu)->which == Z_SRW_explain_request && - (*srw_pdu)->u.explain_request->database == 0) - (*srw_pdu)->u.explain_request->database = db; - - if ((*srw_pdu)->which == Z_SRW_scan_request && - (*srw_pdu)->u.scan_request->database == 0) - (*srw_pdu)->u.scan_request->database = db; - - if ((*srw_pdu)->which == Z_SRW_update_request && - (*srw_pdu)->u.update_request->database == 0) - (*srw_pdu)->u.update_request->database = db; - - return 0; - } - return 1; - } - } - return 2; -} - -static int yaz_sru_decode_integer(ODR odr, const char *pname, - const char *valstr, int **valp, - Z_SRW_diagnostic **diag, int *num_diag, - int min_value) -{ - int ival; - if (!valstr) - return 0; - if (sscanf(valstr, "%d", &ival) != 1) - { - yaz_add_srw_diagnostic(odr, diag, num_diag, - YAZ_SRW_UNSUPP_PARAMETER_VALUE, pname); - return 0; - } - if (min_value >= 0 && ival < min_value) - { - yaz_add_srw_diagnostic(odr, diag, num_diag, - YAZ_SRW_UNSUPP_PARAMETER_VALUE, pname); - return 0; - } - *valp = odr_intdup(odr, ival); - return 1; -} - -/** - http://www.loc.gov/z3950/agency/zing/srw/service.html -*/ -int yaz_sru_decode(Z_HTTP_Request *hreq, Z_SRW_PDU **srw_pdu, - Z_SOAP **soap_package, ODR decode, char **charset, - Z_SRW_diagnostic **diag, int *num_diag) -{ -#if YAZ_HAVE_XML2 - static Z_SOAP_Handler soap_handlers[2] = { - {YAZ_XMLNS_SRU_v1_1, 0, (Z_SOAP_fun) yaz_srw_codec}, - {0, 0, 0} - }; -#endif - const char *content_type = z_HTTP_header_lookup(hreq->headers, - "Content-Type"); - - /* - SRU GET: ignore content type. - SRU POST: we support "application/x-www-form-urlencoded"; - not "multipart/form-data" . - */ - if (!strcmp(hreq->method, "GET") - || - (!strcmp(hreq->method, "POST") && content_type && - !yaz_strcmp_del("application/x-www-form-urlencoded", - content_type, "; "))) - { - char *db = "Default"; - const char *p0 = hreq->path, *p1; -#if YAZ_HAVE_XML2 - const char *operation = 0; - char *version = 0; - char *query = 0; - char *pQuery = 0; - char *username = 0; - char *password = 0; - char *sortKeys = 0; - char *stylesheet = 0; - char *scanClause = 0; - char *pScanClause = 0; - char *recordXPath = 0; - char *recordSchema = 0; - char *recordPacking = "xml"; /* xml packing is default for SRU */ - char *maximumRecords = 0; - char *startRecord = 0; - char *maximumTerms = 0; - char *responsePosition = 0; - char *extraRequestData = 0; -#endif - char **uri_name; - char **uri_val; - - grab_charset(decode, content_type, charset); - if (charset && *charset == 0 && !strcmp(hreq->method, "GET")) - *charset = "UTF-8"; - - if (*p0 == '/') - p0++; - p1 = strchr(p0, '?'); - if (!p1) - p1 = p0 + strlen(p0); - if (p1 != p0) - { - db = (char*) odr_malloc(decode, p1 - p0 + 1); - memcpy (db, p0, p1 - p0); - db[p1 - p0] = '\0'; - } - if (!strcmp(hreq->method, "POST")) - p1 = hreq->content_buf; - yaz_uri_array(p1, decode, &uri_name, &uri_val); -#if YAZ_HAVE_XML2 - if (uri_name) - { - int i; - for (i = 0; uri_name[i]; i++) - { - char *n = uri_name[i]; - char *v = uri_val[i]; - if (!strcmp(n, "query")) - query = v; - else if (!strcmp(n, "x-pquery")) - pQuery = v; - else if (!strcmp(n, "x-username")) - username = v; - else if (!strcmp(n, "x-password")) - password = v; - else if (!strcmp(n, "operation")) - operation = v; - else if (!strcmp(n, "stylesheet")) - stylesheet = v; - else if (!strcmp(n, "sortKeys")) - sortKeys = v; - else if (!strcmp(n, "recordXPath")) - recordXPath = v; - else if (!strcmp(n, "recordSchema")) - recordSchema = v; - else if (!strcmp(n, "recordPacking")) - recordPacking = v; - else if (!strcmp(n, "version")) - version = v; - else if (!strcmp(n, "scanClause")) - scanClause = v; - else if (!strcmp(n, "x-pScanClause")) - pScanClause = v; - else if (!strcmp(n, "maximumRecords")) - maximumRecords = v; - else if (!strcmp(n, "startRecord")) - startRecord = v; - else if (!strcmp(n, "maximumTerms")) - maximumTerms = v; - else if (!strcmp(n, "responsePosition")) - responsePosition = v; - else if (!strcmp(n, "extraRequestData")) - extraRequestData = v; - else - yaz_add_srw_diagnostic(decode, diag, num_diag, - YAZ_SRW_UNSUPP_PARAMETER, n); - } - } - if (!version) - { - if (uri_name) - yaz_add_srw_diagnostic( - decode, diag, num_diag, - YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, "version"); - version = "1.1"; - } - - version = yaz_negotiate_sru_version(version); - - if (!version) - { /* negotiation failed. */ - yaz_add_srw_diagnostic(decode, diag, num_diag, - YAZ_SRW_UNSUPP_VERSION, "1.2"); - version = "1.2"; - } - - if (!operation) - { - if (uri_name) - yaz_add_srw_diagnostic( - decode, diag, num_diag, - YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, "operation"); - operation = "explain"; - } - if (!strcmp(operation, "searchRetrieve")) - { - Z_SRW_PDU *sr = yaz_srw_get(decode, Z_SRW_searchRetrieve_request); - - sr->srw_version = version; - *srw_pdu = sr; - yaz_srw_decodeauth(sr, hreq, username, password, decode); - if (query) - { - sr->u.request->query_type = Z_SRW_query_type_cql; - sr->u.request->query.cql = query; - } - else if (pQuery) - { - sr->u.request->query_type = Z_SRW_query_type_pqf; - sr->u.request->query.pqf = pQuery; - } - else - yaz_add_srw_diagnostic( - decode, diag, num_diag, - YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, "query"); - - if (sortKeys) - { - sr->u.request->sort_type = Z_SRW_sort_type_sort; - sr->u.request->sort.sortKeys = sortKeys; - } - sr->u.request->recordXPath = recordXPath; - sr->u.request->recordSchema = recordSchema; - sr->u.request->recordPacking = recordPacking; - sr->u.request->stylesheet = stylesheet; - - yaz_sru_decode_integer(decode, "maximumRecords", maximumRecords, - &sr->u.request->maximumRecords, - diag, num_diag, 0); - - yaz_sru_decode_integer(decode, "startRecord", startRecord, - &sr->u.request->startRecord, - diag, num_diag, 1); - - sr->u.request->database = db; - - (*soap_package) = (Z_SOAP *) - odr_malloc(decode, sizeof(**soap_package)); - (*soap_package)->which = Z_SOAP_generic; - - (*soap_package)->u.generic = (Z_SOAP_Generic *) - odr_malloc(decode, sizeof(*(*soap_package)->u.generic)); - - (*soap_package)->u.generic->p = sr; - (*soap_package)->u.generic->ns = soap_handlers[0].ns; - (*soap_package)->u.generic->no = 0; - - (*soap_package)->ns = "SRU"; - - return 0; - } - else if (!strcmp(operation, "explain")) - { - /* Transfer SRU explain parameters to common struct */ - /* http://www.loc.gov/z3950/agency/zing/srw/explain.html */ - Z_SRW_PDU *sr = yaz_srw_get(decode, Z_SRW_explain_request); - - sr->srw_version = version; - yaz_srw_decodeauth(sr, hreq, username, password, decode); - *srw_pdu = sr; - sr->u.explain_request->recordPacking = recordPacking; - sr->u.explain_request->database = db; - - sr->u.explain_request->stylesheet = stylesheet; - - (*soap_package) = (Z_SOAP *) - odr_malloc(decode, sizeof(**soap_package)); - (*soap_package)->which = Z_SOAP_generic; - - (*soap_package)->u.generic = (Z_SOAP_Generic *) - odr_malloc(decode, sizeof(*(*soap_package)->u.generic)); - - (*soap_package)->u.generic->p = sr; - (*soap_package)->u.generic->ns = soap_handlers[0].ns; - (*soap_package)->u.generic->no = 0; - - (*soap_package)->ns = "SRU"; - - return 0; - } - else if (!strcmp(operation, "scan")) - { - /* Transfer SRU scan parameters to common struct */ - /* http://www.loc.gov/z3950/agency/zing/srw/scan.html */ - Z_SRW_PDU *sr = yaz_srw_get(decode, Z_SRW_scan_request); - - sr->srw_version = version; - *srw_pdu = sr; - yaz_srw_decodeauth(sr, hreq, username, password, decode); - - if (scanClause) - { - sr->u.scan_request->query_type = Z_SRW_query_type_cql; - sr->u.scan_request->scanClause.cql = scanClause; - } - else if (pScanClause) - { - sr->u.scan_request->query_type = Z_SRW_query_type_pqf; - sr->u.scan_request->scanClause.pqf = pScanClause; - } - else - yaz_add_srw_diagnostic( - decode, diag, num_diag, - YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED, "scanClause"); - sr->u.scan_request->database = db; - - yaz_sru_decode_integer(decode, "maximumTerms", - maximumTerms, - &sr->u.scan_request->maximumTerms, - diag, num_diag, 0); - - yaz_sru_decode_integer(decode, "responsePosition", - responsePosition, - &sr->u.scan_request->responsePosition, - diag, num_diag, 0); - - sr->u.scan_request->stylesheet = stylesheet; - - (*soap_package) = (Z_SOAP *) - odr_malloc(decode, sizeof(**soap_package)); - (*soap_package)->which = Z_SOAP_generic; - - (*soap_package)->u.generic = (Z_SOAP_Generic *) - odr_malloc(decode, sizeof(*(*soap_package)->u.generic)); - - (*soap_package)->u.generic->p = sr; - (*soap_package)->u.generic->ns = soap_handlers[0].ns; - (*soap_package)->u.generic->no = 0; - - (*soap_package)->ns = "SRU"; - - return 0; - } - else - { - /* unsupported operation ... */ - /* Act as if we received a explain request and throw diagnostic. */ - - Z_SRW_PDU *sr = yaz_srw_get(decode, Z_SRW_explain_request); - - sr->srw_version = version; - *srw_pdu = sr; - sr->u.explain_request->recordPacking = recordPacking; - sr->u.explain_request->database = db; - - sr->u.explain_request->stylesheet = stylesheet; - - (*soap_package) = (Z_SOAP *) - odr_malloc(decode, sizeof(**soap_package)); - (*soap_package)->which = Z_SOAP_generic; - - (*soap_package)->u.generic = (Z_SOAP_Generic *) - odr_malloc(decode, sizeof(*(*soap_package)->u.generic)); - - (*soap_package)->u.generic->p = sr; - (*soap_package)->u.generic->ns = soap_handlers[0].ns; - (*soap_package)->u.generic->no = 0; - - (*soap_package)->ns = "SRU"; - - yaz_add_srw_diagnostic(decode, diag, num_diag, - YAZ_SRW_UNSUPP_OPERATION, operation); - return 0; - } -#endif - return 1; - } - return 2; -} - -Z_SRW_extra_record *yaz_srw_get_extra_record(ODR o) -{ - Z_SRW_extra_record *res = (Z_SRW_extra_record *) - odr_malloc(o, sizeof(*res)); - - res->extraRecordData_buf = 0; - res->extraRecordData_len = 0; - res->recordIdentifier = 0; - return res; -} - - -Z_SRW_record *yaz_srw_get_records(ODR o, int n) -{ - Z_SRW_record *res = (Z_SRW_record *) odr_malloc(o, n * sizeof(*res)); - int i; - - for (i = 0; isrw_version = odr_strdup(o, version); - p->username = 0; - p->password = 0; - p->extra_args = 0; - return p; -} - -Z_SRW_PDU *yaz_srw_get_core_v_1_1(ODR o) -{ - return yaz_srw_get_core_ver(o, "1.1"); -} - -Z_SRW_PDU *yaz_srw_get(ODR o, int which) -{ - return yaz_srw_get_pdu(o, which, "1.1"); -} - -Z_SRW_PDU *yaz_srw_get_pdu(ODR o, int which, const char *version) -{ - Z_SRW_PDU *sr = yaz_srw_get_core_ver(o, version); - - sr->which = which; - switch(which) - { - case Z_SRW_searchRetrieve_request: - sr->u.request = (Z_SRW_searchRetrieveRequest *) - odr_malloc(o, sizeof(*sr->u.request)); - sr->u.request->query_type = Z_SRW_query_type_cql; - sr->u.request->query.cql = 0; - sr->u.request->sort_type = Z_SRW_sort_type_none; - sr->u.request->sort.none = 0; - sr->u.request->startRecord = 0; - sr->u.request->maximumRecords = 0; - sr->u.request->recordSchema = 0; - sr->u.request->recordPacking = 0; - sr->u.request->recordXPath = 0; - sr->u.request->database = 0; - sr->u.request->resultSetTTL = 0; - sr->u.request->stylesheet = 0; - break; - case Z_SRW_searchRetrieve_response: - sr->u.response = (Z_SRW_searchRetrieveResponse *) - odr_malloc(o, sizeof(*sr->u.response)); - sr->u.response->numberOfRecords = 0; - sr->u.response->resultSetId = 0; - sr->u.response->resultSetIdleTime = 0; - sr->u.response->records = 0; - sr->u.response->num_records = 0; - sr->u.response->diagnostics = 0; - sr->u.response->num_diagnostics = 0; - sr->u.response->nextRecordPosition = 0; - sr->u.response->extra_records = 0; - break; - case Z_SRW_explain_request: - sr->u.explain_request = (Z_SRW_explainRequest *) - odr_malloc(o, sizeof(*sr->u.explain_request)); - sr->u.explain_request->recordPacking = 0; - sr->u.explain_request->database = 0; - sr->u.explain_request->stylesheet = 0; - break; - case Z_SRW_explain_response: - sr->u.explain_response = (Z_SRW_explainResponse *) - odr_malloc(o, sizeof(*sr->u.explain_response)); - sr->u.explain_response->record.recordData_buf = 0; - sr->u.explain_response->record.recordData_len = 0; - sr->u.explain_response->record.recordSchema = 0; - sr->u.explain_response->record.recordPosition = 0; - sr->u.explain_response->record.recordPacking = - Z_SRW_recordPacking_string; - sr->u.explain_response->diagnostics = 0; - sr->u.explain_response->num_diagnostics = 0; - sr->u.explain_response->extra_record = 0; - break; - case Z_SRW_scan_request: - sr->u.scan_request = (Z_SRW_scanRequest *) - odr_malloc(o, sizeof(*sr->u.scan_request)); - sr->u.scan_request->database = 0; - sr->u.scan_request->stylesheet = 0; - sr->u.scan_request->maximumTerms = 0; - sr->u.scan_request->responsePosition = 0; - sr->u.scan_request->query_type = Z_SRW_query_type_cql; - sr->u.scan_request->scanClause.cql = 0; - break; - case Z_SRW_scan_response: - sr->u.scan_response = (Z_SRW_scanResponse *) - odr_malloc(o, sizeof(*sr->u.scan_response)); - sr->u.scan_response->terms = 0; - sr->u.scan_response->num_terms = 0; - sr->u.scan_response->diagnostics = 0; - sr->u.scan_response->num_diagnostics = 0; - break; - case Z_SRW_update_request: - sr->u.update_request = (Z_SRW_updateRequest *) - odr_malloc(o, sizeof(*sr->u.update_request)); - sr->u.update_request->database = 0; - sr->u.update_request->stylesheet = 0; - sr->u.update_request->record = 0; - sr->u.update_request->recordId = 0; - sr->u.update_request->recordVersions = 0; - sr->u.update_request->num_recordVersions = 0; - sr->u.update_request->extra_record = 0; - sr->u.update_request->extraRequestData_buf = 0; - sr->u.update_request->extraRequestData_len = 0; - sr->u.request->database = 0; - break; - case Z_SRW_update_response: - sr->u.update_response = (Z_SRW_updateResponse *) - odr_malloc(o, sizeof(*sr->u.update_response)); - sr->u.update_response->operationStatus = 0; - sr->u.update_response->recordId = 0; - sr->u.update_response->recordVersions = 0; - sr->u.update_response->num_recordVersions = 0; - sr->u.update_response->record = 0; - sr->u.update_response->extra_record = 0; - sr->u.update_response->extraResponseData_buf = 0; - sr->u.update_response->extraResponseData_len = 0; - sr->u.update_response->diagnostics = 0; - sr->u.update_response->num_diagnostics = 0; - } - return sr; -} - -/* bib1:srw */ -static int bib1_srw_map[] = { - 1, 1, - 2, 2, - 3, 11, - 4, 35, - 5, 12, - 6, 38, - 7, 30, - 8, 32, - 9, 29, - 108, 10, /* Malformed query : Syntax error */ - 10, 10, - 11, 12, - 11, 23, - 12, 60, - 13, 61, - 13, 62, - 14, 63, - 14, 64, - 14, 65, - 15, 68, - 15, 69, - 16, 70, - 17, 70, - 18, 50, - 19, 55, - 20, 56, - 21, 52, - 22, 50, - 23, 3, - 24, 66, - 25, 66, - 26, 66, - 27, 51, - 28, 52, - 29, 52, - 30, 51, - 31, 57, - 32, 58, - 33, 59, - 100, 1, /* bad map */ - 101, 3, - 102, 3, - 103, 3, - 104, 3, - 105, 3, - 106, 66, - 107, 11, - 108, 13, - 108, 14, - 108, 25, - 108, 26, - 108, 27, - 108, 45, - - 109, 2, - 110, 37, - 111, 1, - 112, 58, - 113, 10, - 114, 16, - 115, 16, - 116, 16, - 117, 19, - 117, 20, - 118, 22, - 119, 32, - 119, 31, - 120, 28, - 121, 15, - 122, 32, - 123, 22, - 123, 17, - 123, 18, - 124, 24, - 125, 36, - 126, 36, - 127, 36, - 128, 51, - 129, 39, - 130, 43, - 131, 40, - 132, 42, - 201, 44, - 201, 33, - 201, 34, - 202, 41, - 203, 43, - 205, 1, /* bad map */ - 206, 1, /* bad map */ - 207, 89, - 208, 1, /* bad map */ - 209, 80, - 210, 80, - 210, 81, - 211, 84, - 212, 85, - 213, 92, - 214, 90, - 215, 91, - 216, 92, - 217, 63, - 218, 1, /* bad map */ - 219, 1, /* bad map */ - 220, 1, /* bad map */ - 221, 1, /* bad map */ - 222, 3, - 223, 1, /* bad map */ - 224, 1, /* bad map */ - 225, 1, /* bad map */ - 226, 1, /* bad map */ - 227, 66, - 228, 1, /* bad map */ - 229, 36, - 230, 83, - 231, 89, - 232, 1, - 233, 1, /* bad map */ - 234, 1, /* bad map */ - 235, 2, - 236, 3, - 237, 82, - 238, 67, - 239, 66, - 240, 1, /* bad map */ - 241, 1, /* bad map */ - 242, 70, - 243, 1, /* bad map */ - 244, 66, - 245, 10, - 246, 10, - 247, 10, - 1001, 1, /* bad map */ - 1002, 1, /* bad map */ - 1003, 1, /* bad map */ - 1004, 1, /* bad map */ - 1005, 1, /* bad map */ - 1006, 1, /* bad map */ - 1007, 100, - 1008, 1, - 1009, 1, - 1010, 3, - 1011, 3, - 1012, 3, - 1013, 3, - 1014, 3, - 1015, 3, - 1015, 3, - 1016, 3, - 1017, 3, - 1018, 2, - 1019, 2, - 1020, 2, - 1021, 3, - 1022, 3, - 1023, 3, - 1024, 16, - 1025, 3, - 1026, 64, - 1027, 1, - 1028, 65, - 1029, 1, - 1040, 1, - /* 1041-1065 */ - 1066, 66, - 1066, 67, - 0 -}; - -/* - * This array contains overrides for when the first occurrence of a - * particular SRW error in the array above does not correspond with - * the best back-translation of that SRW error. - */ -static int srw_bib1_map[] = { - 66, 238, - /* No doubt there are many more */ - 0 -}; - - -int yaz_diag_bib1_to_srw (int code) -{ - const int *p = bib1_srw_map; - while (*p) - { - if (code == p[0]) - return p[1]; - p += 2; - } - return 1; -} - -int yaz_diag_srw_to_bib1(int code) -{ - /* Check explicit reverse-map first */ - const int *p = srw_bib1_map; - while (*p) - { - if (code == p[0]) - return p[1]; - p += 2; - } - - /* Fall back on reverse lookup in main map */ - p = bib1_srw_map; - while (*p) - { - if (code == p[1]) - return p[0]; - p += 2; - } - return 1; -} - -static void add_val_int(ODR o, char **name, char **value, int *i, - char *a_name, int *val) -{ - if (val) - { - name[*i] = a_name; - value[*i] = (char *) odr_malloc(o, 30); - sprintf(value[*i], "%d", *val); - (*i)++; - } -} - -static void add_val_str(ODR o, char **name, char **value, int *i, - char *a_name, char *val) -{ - if (val) - { - name[*i] = a_name; - value[*i] = val; - (*i)++; - } -} - -static int yaz_get_sru_parms(const Z_SRW_PDU *srw_pdu, ODR encode, - char **name, char **value) -{ - int i = 0; - add_val_str(encode, name, value, &i, "version", srw_pdu->srw_version); - name[i] = "operation"; - switch(srw_pdu->which) - { - case Z_SRW_searchRetrieve_request: - value[i++] = "searchRetrieve"; - switch(srw_pdu->u.request->query_type) - { - case Z_SRW_query_type_cql: - add_val_str(encode, name, value, &i, "query", - srw_pdu->u.request->query.cql); - break; - case Z_SRW_query_type_pqf: - add_val_str(encode, name, value, &i, "x-pquery", - srw_pdu->u.request->query.pqf); - break; - case Z_SRW_query_type_xcql: - add_val_str(encode, name, value, &i, "x-cql", - srw_pdu->u.request->query.xcql); - break; - } - switch(srw_pdu->u.request->sort_type) - { - case Z_SRW_sort_type_none: - break; - case Z_SRW_sort_type_sort: - add_val_str(encode, name, value, &i, "sortKeys", - srw_pdu->u.request->sort.sortKeys); - break; - } - add_val_int(encode, name, value, &i, "startRecord", - srw_pdu->u.request->startRecord); - add_val_int(encode, name, value, &i, "maximumRecords", - srw_pdu->u.request->maximumRecords); - add_val_str(encode, name, value, &i, "recordSchema", - srw_pdu->u.request->recordSchema); - add_val_str(encode, name, value, &i, "recordPacking", - srw_pdu->u.request->recordPacking); - add_val_str(encode, name, value, &i, "recordXPath", - srw_pdu->u.request->recordXPath); - add_val_str(encode, name, value, &i, "stylesheet", - srw_pdu->u.request->stylesheet); - add_val_int(encode, name, value, &i, "resultSetTTL", - srw_pdu->u.request->resultSetTTL); - break; - case Z_SRW_explain_request: - value[i++] = "explain"; - add_val_str(encode, name, value, &i, "stylesheet", - srw_pdu->u.explain_request->stylesheet); - break; - case Z_SRW_scan_request: - value[i++] = "scan"; - - switch(srw_pdu->u.scan_request->query_type) - { - case Z_SRW_query_type_cql: - add_val_str(encode, name, value, &i, "scanClause", - srw_pdu->u.scan_request->scanClause.cql); - break; - case Z_SRW_query_type_pqf: - add_val_str(encode, name, value, &i, "x-pScanClause", - srw_pdu->u.scan_request->scanClause.pqf); - break; - case Z_SRW_query_type_xcql: - add_val_str(encode, name, value, &i, "x-cqlScanClause", - srw_pdu->u.scan_request->scanClause.xcql); - break; - } - add_val_int(encode, name, value, &i, "responsePosition", - srw_pdu->u.scan_request->responsePosition); - add_val_int(encode, name, value, &i, "maximumTerms", - srw_pdu->u.scan_request->maximumTerms); - add_val_str(encode, name, value, &i, "stylesheet", - srw_pdu->u.scan_request->stylesheet); - break; - case Z_SRW_update_request: - value[i++] = "update"; - break; - default: - return -1; - } - name[i++] = 0; - return 0; -} - -int yaz_sru_get_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, - ODR encode, const char *charset) -{ - char *name[30], *value[30]; /* definite upper limit for SRU params */ - char *uri_args; - char *path; - - z_HTTP_header_add_basic_auth(encode, &hreq->headers, - srw_pdu->username, srw_pdu->password); - if (yaz_get_sru_parms(srw_pdu, encode, name, value)) - return -1; - yaz_array_to_uri_ex(&uri_args, encode, name, value, srw_pdu->extra_args); - - hreq->method = "GET"; - - path = (char *) - odr_malloc(encode, strlen(hreq->path) + strlen(uri_args) + 4 - +(srw_pdu->extra_args ? strlen(srw_pdu->extra_args) : 0)); - - sprintf(path, "%s?%s", hreq->path, uri_args); - hreq->path = path; - - z_HTTP_header_add_content_type(encode, &hreq->headers, - "text/xml", charset); - return 0; -} - -int yaz_sru_post_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, - ODR encode, const char *charset) -{ - char *name[30], *value[30]; /* definite upper limit for SRU params */ - char *uri_args; - - z_HTTP_header_add_basic_auth(encode, &hreq->headers, - srw_pdu->username, srw_pdu->password); - if (yaz_get_sru_parms(srw_pdu, encode, name, value)) - return -1; - - yaz_array_to_uri_ex(&uri_args, encode, name, value, srw_pdu->extra_args); - - hreq->method = "POST"; - - hreq->content_buf = uri_args; - hreq->content_len = strlen(uri_args); - - z_HTTP_header_add_content_type(encode, &hreq->headers, - "application/x-www-form-urlencoded", - charset); - return 0; -} - -int yaz_sru_soap_encode(Z_HTTP_Request *hreq, Z_SRW_PDU *srw_pdu, - ODR odr, const char *charset) -{ - Z_SOAP_Handler handlers[3] = { -#if YAZ_HAVE_XML2 - {YAZ_XMLNS_SRU_v1_1, 0, (Z_SOAP_fun) yaz_srw_codec}, - {YAZ_XMLNS_UPDATE_v0_9, 0, (Z_SOAP_fun) yaz_ucp_codec}, -#endif - {0, 0, 0} - }; - Z_SOAP *p = (Z_SOAP*) odr_malloc(odr, sizeof(*p)); - - z_HTTP_header_add_basic_auth(odr, &hreq->headers, - srw_pdu->username, srw_pdu->password); - z_HTTP_header_add_content_type(odr, - &hreq->headers, - "text/xml", charset); - - z_HTTP_header_add(odr, &hreq->headers, - "SOAPAction", "\"\""); - p->which = Z_SOAP_generic; - p->u.generic = (Z_SOAP_Generic *) odr_malloc(odr, sizeof(*p->u.generic)); - p->u.generic->no = 0; - p->u.generic->ns = 0; - p->u.generic->p = srw_pdu; - p->ns = "http://schemas.xmlsoap.org/soap/envelope/"; - -#if YAZ_HAVE_XML2 - if (srw_pdu->which == Z_SRW_update_request || - srw_pdu->which == Z_SRW_update_response) - p->u.generic->no = 1; /* second handler */ -#endif - return z_soap_codec_enc(odr, &p, - &hreq->content_buf, - &hreq->content_len, handlers, - charset); -} - -Z_SRW_recordVersion *yaz_srw_get_record_versions(ODR odr, int num ) -{ - Z_SRW_recordVersion *ver - = (Z_SRW_recordVersion *) odr_malloc( odr, num * sizeof(*ver) ); - int i; - for ( i=0; i < num; ++i ){ - ver[i].versionType = 0; - ver[i].versionValue = 0; - } - return ver; -} - -const char *yaz_srw_pack_to_str(int pack) -{ - switch(pack) - { - case Z_SRW_recordPacking_string: - return "string"; - case Z_SRW_recordPacking_XML: - return "xml"; - case Z_SRW_recordPacking_URL: - return "url"; - } - return 0; -} - -int yaz_srw_str_to_pack(const char *str) -{ - if (!yaz_matchstr(str, "string")) - return Z_SRW_recordPacking_string; - if (!yaz_matchstr(str, "xml")) - return Z_SRW_recordPacking_XML; - if (!yaz_matchstr(str, "url")) - return Z_SRW_recordPacking_URL; - return -1; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/statserv.c b/dependencies/yaz_3.0.14/src/statserv.c deleted file mode 100644 index a20f676..0000000 --- a/dependencies/yaz_3.0.14/src/statserv.c +++ /dev/null @@ -1,1570 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * NT threaded server code by - * Chas Woodfield, Fretwell Downing Informatics. - * - * $Id: statserv.c,v 1.50 2007/08/13 16:46:47 mike Exp $ - */ - -/** - * \file statserv.c - * \brief Implements GFS logic - */ - -#include -#include -#include -#include -#ifdef WIN32 -#include -#include -#include -#include "service.h" -#endif -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_WAIT_H -#include -#endif -#if HAVE_UNISTD_H -#include -#endif -#if HAVE_PWD_H -#include -#endif - -#if YAZ_HAVE_XML2 -#include -#include -#include -#endif - -#if YAZ_POSIX_THREADS -#include -#elif YAZ_GNU_THREADS -#include -#endif - -#include -#include -#include - -#include -#include -#include -#ifdef USE_XTIMOSI -#include -#endif -#include -#include "eventl.h" -#include "session.h" -#include - -static IOCHAN pListener = NULL; - -static char gfs_root_dir[FILENAME_MAX+1]; -static struct gfs_server *gfs_server_list = 0; -static struct gfs_listen *gfs_listen_list = 0; -static NMEM gfs_nmem = 0; - -static char *me = "statserver"; /* log prefix */ -static char *programname="statserver"; /* full program name */ -#ifdef WIN32 -DWORD current_control_tls; -static int init_control_tls = 0; -#elif YAZ_POSIX_THREADS -static pthread_key_t current_control_tls; -static int init_control_tls = 0; -#else -static statserv_options_block *current_control_block = 0; -#endif - -/* - * default behavior. - */ -#define STAT_DEFAULT_LOG_LEVEL "server,session,request" - -int check_options(int argc, char **argv); -statserv_options_block control_block = { - 1, /* dynamic mode */ - 0, /* threaded mode */ - 0, /* one shot (single session) */ - "", /* no PDUs */ - "", /* diagnostic output to stderr */ - "tcp:@:9999", /* default listener port */ - PROTO_Z3950, /* default application protocol */ - 15, /* idle timeout (minutes) */ - 1024*1024, /* maximum PDU size (approx.) to allow */ - "default-config", /* configuration name to pass to backend */ - "", /* set user id */ - 0, /* bend_start handler */ - 0, /* bend_stop handler */ - check_options, /* Default routine, for checking the run-time arguments */ - check_ip_tcpd, - "", - 0, /* default value for inet deamon */ - 0, /* handle (for service, etc) */ - 0, /* bend_init handle */ - 0, /* bend_close handle */ -#ifdef WIN32 - "Z39.50 Server", /* NT Service Name */ - "Server", /* NT application Name */ - "", /* NT Service Dependencies */ - "Z39.50 Server", /* NT Service Display Name */ -#endif /* WIN32 */ - 0, /* SOAP handlers */ - "", /* PID fname */ - 0, /* background daemon */ - "", /* SSL certificate filename */ - "" /* XML config filename */ -}; - -static int max_sessions = 0; - -static int logbits_set = 0; -static int log_session = 0; /* one-line logs for session */ -static int log_sessiondetail = 0; /* more detailed stuff */ -static int log_server = 0; - -/** get_logbits sets global loglevel bits */ -static void get_logbits(int force) -{ /* needs to be called after parsing cmd-line args that can set loglevels!*/ - if (force || !logbits_set) - { - logbits_set = 1; - log_session = yaz_log_module_level("session"); - log_sessiondetail = yaz_log_module_level("sessiondetail"); - log_server = yaz_log_module_level("server"); - } -} - - -static int add_listener(char *where, int listen_id); - -#if YAZ_HAVE_XML2 -static xmlDocPtr xml_config_doc = 0; -#endif - -#if YAZ_HAVE_XML2 -static xmlNodePtr xml_config_get_root(void) -{ - xmlNodePtr ptr = 0; - if (xml_config_doc) - { - ptr = xmlDocGetRootElement(xml_config_doc); - if (!ptr || ptr->type != XML_ELEMENT_NODE || - strcmp((const char *) ptr->name, "yazgfs")) - { - yaz_log(YLOG_WARN, "Bad/missing root element for config %s", - control_block.xml_config); - return 0; - - } - } - return ptr; -} -#endif - -#if YAZ_HAVE_XML2 -static char *nmem_dup_xml_content(NMEM n, xmlNodePtr ptr) -{ - unsigned char *cp; - xmlNodePtr p; - int len = 1; /* start with 1, because of trailing 0 */ - unsigned char *str; - int first = 1; /* whitespace lead flag .. */ - /* determine length */ - for (p = ptr; p; p = p->next) - { - if (p->type == XML_TEXT_NODE) - len += xmlStrlen(p->content); - } - /* now allocate for the string */ - str = (unsigned char *) nmem_malloc(n, len); - *str = '\0'; /* so we can use strcat */ - for (p = ptr; p; p = p->next) - { - if (p->type == XML_TEXT_NODE) - { - cp = p->content; - if (first) - { - while(*cp && isspace(*cp)) - cp++; - if (*cp) - first = 0; /* reset if we got non-whitespace out */ - } - strcat((char *)str, (const char *)cp); /* append */ - } - } - /* remove trailing whitespace */ - cp = strlen((const char *)str) + str; - while (cp != str && isspace(cp[-1])) - cp--; - *cp = '\0'; - /* return resulting string */ - return (char *) str; -} -#endif - -static struct gfs_server * gfs_server_new(void) -{ - struct gfs_server *n = (struct gfs_server *) - nmem_malloc(gfs_nmem, sizeof(*n)); - memcpy(&n->cb, &control_block, sizeof(control_block)); - n->next = 0; - n->host = 0; - n->listen_ref = 0; - n->cql_transform = 0; - n->ccl_transform = 0; - n->server_node_ptr = 0; - n->directory = 0; - n->docpath = 0; - n->stylesheet = 0; -#if YAZ_HAVE_XML2 - n->retrieval = yaz_retrieval_create(); -#endif - return n; -} - -static struct gfs_listen * gfs_listen_new(const char *id, - const char *address) -{ - struct gfs_listen *n = (struct gfs_listen *) - nmem_malloc(gfs_nmem, sizeof(*n)); - if (id) - n->id = nmem_strdup(gfs_nmem, id); - else - n->id = 0; - n->next = 0; - n->address = nmem_strdup(gfs_nmem, address); - return n; -} - -static void gfs_server_chdir(struct gfs_server *gfs) -{ - if (gfs_root_dir[0]) - { - if (chdir(gfs_root_dir)) - yaz_log(YLOG_WARN|YLOG_ERRNO, "chdir %s", gfs_root_dir); - } - if (gfs->directory) - { - if (chdir(gfs->directory)) - yaz_log(YLOG_WARN|YLOG_ERRNO, "chdir %s", - gfs->directory); - } -} - -int control_association(association *assoc, const char *host, int force_open) -{ - char vhost[128], *cp; - if (host) - { - strncpy(vhost, host, 127); - vhost[127] = '\0'; - cp = strchr(vhost, ':'); - if (cp) - *cp = '\0'; - host = vhost; - } - assoc->server = 0; - if (control_block.xml_config[0]) - { - struct gfs_server *gfs; - for (gfs = gfs_server_list; gfs; gfs = gfs->next) - { - int listen_match = 0; - int host_match = 0; - if ( !gfs->host || (host && gfs->host && !strcmp(host, gfs->host))) - host_match = 1; - if (!gfs->listen_ref || - gfs->listen_ref == assoc->client_chan->chan_id) - listen_match = 1; - if (listen_match && host_match) - { - if (force_open || - (assoc->last_control != &gfs->cb && assoc->backend)) - { - statserv_setcontrol(assoc->last_control); - if (assoc->backend && assoc->init) - { - gfs_server_chdir(gfs); - (assoc->last_control->bend_close)(assoc->backend); - } - assoc->backend = 0; - xfree(assoc->init); - assoc->init = 0; - } - assoc->server = gfs; - assoc->last_control = &gfs->cb; - statserv_setcontrol(&gfs->cb); - - gfs_server_chdir(gfs); - break; - } - } - if (!gfs) - { - statserv_setcontrol(0); - assoc->last_control = 0; - return 0; - } - } - else - { - statserv_setcontrol(&control_block); - assoc->last_control = &control_block; - } - yaz_log(YLOG_DEBUG, "server select: config=%s", - assoc->last_control->configname); - - assoc->maximumRecordSize = assoc->last_control->maxrecordsize; - assoc->preferredMessageSize = assoc->last_control->maxrecordsize; - cs_set_max_recv_bytes(assoc->client_link, assoc->maximumRecordSize); - return 1; -} - -static void xml_config_read(void) -{ - struct gfs_server **gfsp = &gfs_server_list; - struct gfs_listen **gfslp = &gfs_listen_list; -#if YAZ_HAVE_XML2 - xmlNodePtr ptr = xml_config_get_root(); - - if (!ptr) - return; - for (ptr = ptr->children; ptr; ptr = ptr->next) - { - struct _xmlAttr *attr; - if (ptr->type != XML_ELEMENT_NODE) - continue; - attr = ptr->properties; - if (!strcmp((const char *) ptr->name, "listen")) - { - /* - tcp:@:9999 - */ - const char *id = 0; - const char *address = - nmem_dup_xml_content(gfs_nmem, ptr->children); - for ( ; attr; attr = attr->next) - if (!xmlStrcmp(attr->name, BAD_CAST "id") - && attr->children && attr->children->type == XML_TEXT_NODE) - id = nmem_dup_xml_content(gfs_nmem, attr->children); - if (address) - { - *gfslp = gfs_listen_new(id, address); - gfslp = &(*gfslp)->next; - *gfslp = 0; /* make listener list consistent for search */ - } - } - else if (!strcmp((const char *) ptr->name, "server")) - { - xmlNodePtr ptr_server = ptr; - xmlNodePtr ptr; - const char *listenref = 0; - const char *id = 0; - struct gfs_server *gfs; - - for ( ; attr; attr = attr->next) - if (!xmlStrcmp(attr->name, BAD_CAST "listenref") - && attr->children && attr->children->type == XML_TEXT_NODE) - listenref = nmem_dup_xml_content(gfs_nmem, attr->children); - else if (!xmlStrcmp(attr->name, BAD_CAST "id") - && attr->children - && attr->children->type == XML_TEXT_NODE) - id = nmem_dup_xml_content(gfs_nmem, attr->children); - else - yaz_log(YLOG_WARN, "Unknown attribute '%s' for server", - attr->name); - gfs = *gfsp = gfs_server_new(); - gfs->server_node_ptr = ptr_server; - if (listenref) - { - int id_no; - struct gfs_listen *gl = gfs_listen_list; - for (id_no = 1; gl; gl = gl->next, id_no++) - if (gl->id && !strcmp(gl->id, listenref)) - { - gfs->listen_ref = id_no; - break; - } - if (!gl) - yaz_log(YLOG_WARN, "Non-existent listenref '%s' in server " - "config element", listenref); - } - for (ptr = ptr_server->children; ptr; ptr = ptr->next) - { - if (ptr->type != XML_ELEMENT_NODE) - continue; - if (!strcmp((const char *) ptr->name, "host")) - { - gfs->host = nmem_dup_xml_content(gfs_nmem, - ptr->children); - } - else if (!strcmp((const char *) ptr->name, "config")) - { - strcpy(gfs->cb.configname, - nmem_dup_xml_content(gfs_nmem, ptr->children)); - } - else if (!strcmp((const char *) ptr->name, "cql2rpn")) - { - gfs->cql_transform = cql_transform_open_fname( - nmem_dup_xml_content(gfs_nmem, ptr->children) - ); - } - else if (!strcmp((const char *) ptr->name, "ccl2rpn")) - { - char *name; - FILE *f; - - name = nmem_dup_xml_content(gfs_nmem, ptr->children); - if ((f = fopen(name, "r")) == 0) { - yaz_log(YLOG_FATAL, "can't open CCL file '%s'", name); - exit(1); - } - gfs->ccl_transform = ccl_qual_mk(); - ccl_qual_file (gfs->ccl_transform, f); - fclose(f); - } - else if (!strcmp((const char *) ptr->name, "directory")) - { - gfs->directory = - nmem_dup_xml_content(gfs_nmem, ptr->children); - } - else if (!strcmp((const char *) ptr->name, "docpath")) - { - gfs->docpath = - nmem_dup_xml_content(gfs_nmem, ptr->children); - } - else if (!strcmp((const char *) ptr->name, "maximumrecordsize")) - { - gfs->cb.maxrecordsize = atoi( - nmem_dup_xml_content(gfs_nmem, ptr->children)); - } - else if (!strcmp((const char *) ptr->name, "stylesheet")) - { - char *s = nmem_dup_xml_content(gfs_nmem, ptr->children); - gfs->stylesheet = (char *) - nmem_malloc(gfs_nmem, strlen(s) + 2); - sprintf(gfs->stylesheet, "/%s", s); - } - else if (!strcmp((const char *) ptr->name, "explain")) - { - ; /* being processed separately */ - } - else if (!strcmp((const char *) ptr->name, "retrievalinfo")) - { - if (yaz_retrieval_configure(gfs->retrieval, ptr)) - { - yaz_log(YLOG_FATAL, "%s in config %s", - yaz_retrieval_get_error(gfs->retrieval), - control_block.xml_config); - exit(1); - } - } - else - { - yaz_log(YLOG_FATAL, "Unknown element '%s' in config %s", - ptr->name, control_block.xml_config); - exit(1); - } - } - gfsp = &(*gfsp)->next; - } - } -#endif - *gfsp = 0; -} - -static void xml_config_open(void) -{ - if (!getcwd(gfs_root_dir, FILENAME_MAX)) - { - yaz_log(YLOG_WARN|YLOG_ERRNO, "getcwd failed"); - gfs_root_dir[0] = '\0'; - } -#ifdef WIN32 - init_control_tls = 1; - current_control_tls = TlsAlloc(); -#elif YAZ_POSIX_THREADS - init_control_tls = 1; - pthread_key_create(¤t_control_tls, 0); -#endif - - gfs_nmem = nmem_create(); -#if YAZ_HAVE_XML2 - if (control_block.xml_config[0] == '\0') - return; - - if (!xml_config_doc) - { - xml_config_doc = xmlParseFile(control_block.xml_config); - if (!xml_config_doc) - { - yaz_log(YLOG_FATAL, "Could not parse %s", control_block.xml_config); - exit(1); - } - else - { - int noSubstitutions = xmlXIncludeProcess(xml_config_doc); - if (noSubstitutions == -1) - { - yaz_log(YLOG_WARN, "XInclude processing failed for config %s", - control_block.xml_config); - exit(1); - } - } - } - xml_config_read(); -#endif -} - -static void xml_config_close(void) -{ -#if YAZ_HAVE_XML2 - if (xml_config_doc) - { - xmlFreeDoc(xml_config_doc); - xml_config_doc = 0; - } -#endif - gfs_server_list = 0; - nmem_destroy(gfs_nmem); -#ifdef WIN32 - if (init_control_tls) - TlsFree(current_control_tls); -#elif YAZ_POSIX_THREADS - if (init_control_tls) - pthread_key_delete(current_control_tls); -#endif -} - -static void xml_config_add_listeners(void) -{ - struct gfs_listen *gfs = gfs_listen_list; - int id_no; - - for (id_no = 1; gfs; gfs = gfs->next, id_no++) - { - if (gfs->address) - add_listener(gfs->address, id_no); - } -} - -static void xml_config_bend_start(void) -{ - if (control_block.xml_config[0]) - { - struct gfs_server *gfs = gfs_server_list; - for (; gfs; gfs = gfs->next) - { - yaz_log(YLOG_DEBUG, "xml_config_bend_start config=%s", - gfs->cb.configname); - statserv_setcontrol(&gfs->cb); - if (control_block.bend_start) - { - gfs_server_chdir(gfs); - (control_block.bend_start)(&gfs->cb); - } - } - } - else - { - yaz_log(YLOG_DEBUG, "xml_config_bend_start default config"); - statserv_setcontrol(&control_block); - if (control_block.bend_start) - (*control_block.bend_start)(&control_block); - } -} - -static void xml_config_bend_stop(void) -{ - if (control_block.xml_config[0]) - { - struct gfs_server *gfs = gfs_server_list; - for (; gfs; gfs = gfs->next) - { - yaz_log(YLOG_DEBUG, "xml_config_bend_stop config=%s", - gfs->cb.configname); - statserv_setcontrol(&gfs->cb); - if (control_block.bend_stop) - (control_block.bend_stop)(&gfs->cb); - } - } - else - { - yaz_log(YLOG_DEBUG, "xml_config_bend_stop default config"); - statserv_setcontrol(&control_block); - if (control_block.bend_stop) - (*control_block.bend_stop)(&control_block); - } -} - -/* - * handle incoming connect requests. - * The dynamic mode is a bit tricky mostly because we want to avoid - * doing all of the listening and accepting in the parent - it's - * safer that way. - */ -#ifdef WIN32 - -typedef struct _ThreadList ThreadList; - -struct _ThreadList -{ - HANDLE hThread; - IOCHAN pIOChannel; - ThreadList *pNext; -}; - -static ThreadList *pFirstThread; -static CRITICAL_SECTION Thread_CritSect; -static BOOL bInitialized = FALSE; - -static void ThreadList_Initialize() -{ - /* Initialize the critical Sections */ - InitializeCriticalSection(&Thread_CritSect); - - /* Set the first thraed */ - pFirstThread = NULL; - - /* we have been initialized */ - bInitialized = TRUE; -} - -static void statserv_add(HANDLE hThread, IOCHAN pIOChannel) -{ - /* Only one thread can go through this section at a time */ - EnterCriticalSection(&Thread_CritSect); - - { - /* Lets create our new object */ - ThreadList *pNewThread = (ThreadList *)malloc(sizeof(ThreadList)); - pNewThread->hThread = hThread; - pNewThread->pIOChannel = pIOChannel; - pNewThread->pNext = pFirstThread; - pFirstThread = pNewThread; - - /* Lets let somebody else create a new object now */ - LeaveCriticalSection(&Thread_CritSect); - } -} - -void statserv_remove(IOCHAN pIOChannel) -{ - /* Only one thread can go through this section at a time */ - EnterCriticalSection(&Thread_CritSect); - - { - ThreadList *pCurrentThread = pFirstThread; - ThreadList *pNextThread; - ThreadList *pPrevThread =NULL; - - /* Step through all the threads */ - for (; pCurrentThread != NULL; pCurrentThread = pNextThread) - { - /* We only need to compare on the IO Channel */ - if (pCurrentThread->pIOChannel == pIOChannel) - { - /* We have found the thread we want to delete */ - /* First of all reset the next pointers */ - if (pPrevThread == NULL) - pFirstThread = pCurrentThread->pNext; - else - pPrevThread->pNext = pCurrentThread->pNext; - - /* All we need todo now is delete the memory */ - free(pCurrentThread); - - /* No need to look at any more threads */ - pNextThread = NULL; - } - else - { - /* We need to look at another thread */ - pNextThread = pCurrentThread->pNext; - pPrevThread = pCurrentThread; - } - } - - /* Lets let somebody else remove an object now */ - LeaveCriticalSection(&Thread_CritSect); - } -} - -/* WIN32 statserv_closedown */ -void statserv_closedown() -{ - /* Shouldn't do anything if we are not initialized */ - if (bInitialized) - { - int iHandles = 0; - HANDLE *pThreadHandles = NULL; - - /* We need to stop threads adding and removing while we */ - /* start the closedown process */ - EnterCriticalSection(&Thread_CritSect); - - { - /* We have exclusive access to the thread stuff now */ - /* Y didn't i use a semaphore - Oh well never mind */ - ThreadList *pCurrentThread = pFirstThread; - - /* Before we do anything else, we need to shutdown the listener */ - if (pListener != NULL) - iochan_destroy(pListener); - - for (; pCurrentThread != NULL; pCurrentThread = pCurrentThread->pNext) - { - /* Just destroy the IOCHAN, that should do the trick */ - iochan_destroy(pCurrentThread->pIOChannel); - closesocket(pCurrentThread->pIOChannel->fd); - - /* Keep a running count of our handles */ - iHandles++; - } - - if (iHandles > 0) - { - HANDLE *pCurrentHandle ; - - /* Allocate the thread handle array */ - pThreadHandles = (HANDLE *)malloc(sizeof(HANDLE) * iHandles); - pCurrentHandle = pThreadHandles; - - for (pCurrentThread = pFirstThread; - pCurrentThread != NULL; - pCurrentThread = pCurrentThread->pNext, pCurrentHandle++) - { - /* Just the handle */ - *pCurrentHandle = pCurrentThread->hThread; - } - } - - /* We can now leave the critical section */ - LeaveCriticalSection(&Thread_CritSect); - } - - /* Now we can really do something */ - if (iHandles > 0) - { - yaz_log(log_server, "waiting for %d to die", iHandles); - /* This will now wait, until all the threads close */ - WaitForMultipleObjects(iHandles, pThreadHandles, TRUE, INFINITE); - - /* Free the memory we allocated for the handle array */ - free(pThreadHandles); - } - - xml_config_bend_stop(); - /* No longer require the critical section, since all threads are dead */ - DeleteCriticalSection(&Thread_CritSect); - } - xml_config_close(); -} - -void __cdecl event_loop_thread (IOCHAN iochan) -{ - event_loop (&iochan); -} - -/* WIN32 listener */ -static void listener(IOCHAN h, int event) -{ - COMSTACK line = (COMSTACK) iochan_getdata(h); - IOCHAN parent_chan = line->user; - association *newas; - int res; - HANDLE newHandle; - - if (event == EVENT_INPUT) - { - COMSTACK new_line; - IOCHAN new_chan; - - if ((res = cs_listen(line, 0, 0)) < 0) - { - yaz_log(YLOG_FATAL|YLOG_ERRNO, "cs_listen failed"); - return; - } - else if (res == 1) - return; /* incomplete */ - yaz_log(YLOG_DEBUG, "listen ok"); - new_line = cs_accept(line); - if (!new_line) - { - yaz_log(YLOG_FATAL, "Accept failed."); - return; - } - yaz_log(YLOG_DEBUG, "Accept ok"); - - if (!(new_chan = iochan_create(cs_fileno(new_line), ir_session, - EVENT_INPUT, parent_chan->chan_id))) - { - yaz_log(YLOG_FATAL, "Failed to create iochan"); - iochan_destroy(h); - return; - } - - yaz_log(YLOG_DEBUG, "Creating association"); - if (!(newas = create_association(new_chan, new_line, - control_block.apdufile))) - { - yaz_log(YLOG_FATAL, "Failed to create new assoc."); - iochan_destroy(h); - return; - } - newas->cs_get_mask = EVENT_INPUT; - newas->cs_put_mask = 0; - newas->cs_accept_mask = 0; - - yaz_log(YLOG_DEBUG, "Setting timeout %d", control_block.idle_timeout); - iochan_setdata(new_chan, newas); - iochan_settimeout(new_chan, 60); - - /* Now what we need todo is create a new thread with this iochan as - the parameter */ - newHandle = (HANDLE) _beginthread(event_loop_thread, 0, new_chan); - if (newHandle == (HANDLE) -1) - { - - yaz_log(YLOG_FATAL|YLOG_ERRNO, "Failed to create new thread."); - iochan_destroy(h); - return; - } - /* We successfully created the thread, so add it to the list */ - statserv_add(newHandle, new_chan); - - yaz_log(YLOG_DEBUG, "Created new thread, id = %ld iochan %p",(long) newHandle, new_chan); - iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); /* reset listener */ - } - else - { - yaz_log(YLOG_FATAL, "Bad event on listener."); - iochan_destroy(h); - return; - } -} - -int statserv_must_terminate(void) -{ - return 0; -} - -#else /* ! WIN32 */ - -static int term_flag = 0; -/* To save having an #ifdef in event_loop we need to - define this empty function -*/ -int statserv_must_terminate(void) -{ - return term_flag; -} - -void statserv_remove(IOCHAN pIOChannel) -{ -} - -void statserv_closedown() -{ - IOCHAN p; - - xml_config_bend_stop(); - for (p = pListener; p; p = p->next) - { - iochan_destroy(p); - } - xml_config_close(); -} - -void sigterm(int sig) -{ - term_flag = 1; -} - -static void *new_session (void *vp); -static int no_sessions = 0; - -/* UNIX listener */ -static void listener(IOCHAN h, int event) -{ - COMSTACK line = (COMSTACK) iochan_getdata(h); - int res; - - if (event == EVENT_INPUT) - { - COMSTACK new_line; - if ((res = cs_listen_check(line, 0, 0, control_block.check_ip, - control_block.daemon_name)) < 0) - { - yaz_log(YLOG_WARN|YLOG_ERRNO, "cs_listen failed"); - return; - } - else if (res == 1) - { - yaz_log(YLOG_WARN, "cs_listen incomplete"); - return; - } - new_line = cs_accept(line); - if (!new_line) - { - yaz_log(YLOG_FATAL, "Accept failed."); - iochan_setflags(h, EVENT_INPUT | EVENT_EXCEPT); /* reset listener */ - return; - } - - yaz_log(log_sessiondetail, "Connect from %s", cs_addrstr(new_line)); - - no_sessions++; - if (control_block.dynamic) - { - if ((res = fork()) < 0) - { - yaz_log(YLOG_FATAL|YLOG_ERRNO, "fork"); - iochan_destroy(h); - return; - } - else if (res == 0) /* child */ - { - char nbuf[100]; - IOCHAN pp; - - for (pp = pListener; pp; pp = iochan_getnext(pp)) - { - COMSTACK l = (COMSTACK)iochan_getdata(pp); - cs_close(l); - iochan_destroy(pp); - } - sprintf(nbuf, "%s(%d)", me, no_sessions); - yaz_log_init_prefix(nbuf); - /* ensure that bend_stop is not called when each child exits - - only for the main process .. */ - control_block.bend_stop = 0; - } - else /* parent */ - { - cs_close(new_line); - return; - } - } - - if (control_block.threads) - { -#if YAZ_POSIX_THREADS - pthread_t child_thread; - pthread_create (&child_thread, 0, new_session, new_line); - pthread_detach (child_thread); -#elif YAZ_GNU_THREADS - pth_attr_t attr; - pth_t child_thread; - - attr = pth_attr_new (); - pth_attr_set (attr, PTH_ATTR_JOINABLE, FALSE); - pth_attr_set (attr, PTH_ATTR_STACK_SIZE, 32*1024); - pth_attr_set (attr, PTH_ATTR_NAME, "session"); - yaz_log (YLOG_DEBUG, "pth_spawn begin"); - child_thread = pth_spawn (attr, new_session, new_line); - yaz_log (YLOG_DEBUG, "pth_spawn finish"); - pth_attr_destroy (attr); -#else - new_session(new_line); -#endif - } - else - new_session(new_line); - } - else if (event == EVENT_TIMEOUT) - { - yaz_log(log_server, "Shutting down listener."); - iochan_destroy(h); - } - else - { - yaz_log(YLOG_FATAL, "Bad event on listener."); - iochan_destroy(h); - } -} - -static void *new_session (void *vp) -{ - char *a; - association *newas; - IOCHAN new_chan; - COMSTACK new_line = (COMSTACK) vp; - IOCHAN parent_chan = (IOCHAN) new_line->user; - - unsigned cs_get_mask, cs_accept_mask, mask = - ((new_line->io_pending & CS_WANT_WRITE) ? EVENT_OUTPUT : 0) | - ((new_line->io_pending & CS_WANT_READ) ? EVENT_INPUT : 0); - - if (mask) - { - cs_accept_mask = mask; /* accept didn't complete */ - cs_get_mask = 0; - } - else - { - cs_accept_mask = 0; /* accept completed. */ - cs_get_mask = mask = EVENT_INPUT; - } - - if (!(new_chan = iochan_create(cs_fileno(new_line), ir_session, mask, - parent_chan->chan_id))) - { - yaz_log(YLOG_FATAL, "Failed to create iochan"); - return 0; - } - if (!(newas = create_association(new_chan, new_line, - control_block.apdufile))) - { - yaz_log(YLOG_FATAL, "Failed to create new assoc."); - return 0; - } - newas->cs_accept_mask = cs_accept_mask; - newas->cs_get_mask = cs_get_mask; - - iochan_setdata(new_chan, newas); - iochan_settimeout(new_chan, 60); -#if 1 - a = cs_addrstr(new_line); -#else - a = 0; -#endif - yaz_log(log_session, "Session - OK %d %s %ld", - no_sessions, a ? a : "[Unknown]", (long) getpid()); - if (max_sessions && no_sessions >= max_sessions) - control_block.one_shot = 1; - if (control_block.threads) - { - event_loop(&new_chan); - } - else - { - new_chan->next = pListener; - pListener = new_chan; - } - return 0; -} - -/* UNIX */ -#endif - -static void inetd_connection(int what) -{ - COMSTACK line; - IOCHAN chan; - association *assoc; - char *addr; - - if ((line = cs_createbysocket(0, tcpip_type, 0, what))) - { - if ((chan = iochan_create(cs_fileno(line), ir_session, EVENT_INPUT, - 0))) - { - if ((assoc = create_association(chan, line, - control_block.apdufile))) - { - iochan_setdata(chan, assoc); - iochan_settimeout(chan, 60); - addr = cs_addrstr(line); - yaz_log(log_sessiondetail, "Inetd association from %s", - addr ? addr : "[UNKNOWN]"); - assoc->cs_get_mask = EVENT_INPUT; - } - else - { - yaz_log(YLOG_FATAL, "Failed to create association structure"); - } - chan->next = pListener; - pListener = chan; - } - else - { - yaz_log(YLOG_FATAL, "Failed to create iochan"); - } - } - else - { - yaz_log(YLOG_ERRNO|YLOG_FATAL, "Failed to create comstack on socket 0"); - } -} - -/* - * Set up a listening endpoint, and give it to the event-handler. - */ -static int add_listener(char *where, int listen_id) -{ - COMSTACK l; - void *ap; - IOCHAN lst = NULL; - const char *mode; - - if (control_block.dynamic) - mode = "dynamic"; - else if (control_block.threads) - mode = "threaded"; - else - mode = "static"; - - yaz_log(log_server, "Adding %s listener on %s id=%d", mode, where, - listen_id); - - l = cs_create_host(where, 2, &ap); - if (!l) - { - yaz_log(YLOG_FATAL, "Failed to listen on %s", where); - return -1; - } - if (*control_block.cert_fname) - cs_set_ssl_certificate_file(l, control_block.cert_fname); - - if (cs_bind(l, ap, CS_SERVER) < 0) - { - if (cs_errno(l) == CSYSERR) - yaz_log(YLOG_FATAL|YLOG_ERRNO, "Failed to bind to %s", where); - else - yaz_log(YLOG_FATAL, "Failed to bind to %s: %s", where, - cs_strerror(l)); - cs_close (l); - return -1; - } - if (!(lst = iochan_create(cs_fileno(l), listener, EVENT_INPUT | - EVENT_EXCEPT, listen_id))) - { - yaz_log(YLOG_FATAL|YLOG_ERRNO, "Failed to create IOCHAN-type"); - cs_close (l); - return -1; - } - iochan_setdata(lst, l); /* user-defined data for listener is COMSTACK */ - l->user = lst; /* user-defined data for COMSTACK is listener chan */ - - /* Add listener to chain */ - lst->next = pListener; - pListener = lst; - return 0; /* OK */ -} - -#ifndef WIN32 -/* UNIX only (for windows we don't need to catch the signals) */ -static void catchchld(int num) -{ - while (waitpid(-1, 0, WNOHANG) > 0) - ; - signal(SIGCHLD, catchchld); -} -#endif - -statserv_options_block *statserv_getcontrol(void) -{ -#ifdef WIN32 - if (init_control_tls) - return (statserv_options_block *) TlsGetValue(current_control_tls); - else - return &control_block; -#elif YAZ_POSIX_THREADS - if (init_control_tls) - return (statserv_options_block *) - pthread_getspecific(current_control_tls); - else - return &control_block; -#else - if (current_control_block) - return current_control_block; - return &control_block; -#endif -} - -void statserv_setcontrol(statserv_options_block *block) -{ - chdir(gfs_root_dir); -#ifdef WIN32 - if (init_control_tls) - TlsSetValue(current_control_tls, block); -#elif YAZ_POSIX_THREADS - if (init_control_tls) - pthread_setspecific(current_control_tls, block); -#else - current_control_block = block; -#endif -} - -static void statserv_reset(void) -{ -} - -int statserv_start(int argc, char **argv) -{ - char sep; -#ifdef WIN32 - /* We need to initialize the thread list */ - ThreadList_Initialize(); -/* WIN32 */ -#endif - - -#ifdef WIN32 - sep = '\\'; -#else - sep = '/'; -#endif - if ((me = strrchr (argv[0], sep))) - me++; /* get the basename */ - else - me = argv[0]; - programname = argv[0]; - - if (control_block.options_func(argc, argv)) - return 1; - - xml_config_open(); - - xml_config_bend_start(); - -#ifdef WIN32 - xml_config_add_listeners(); - - yaz_log (log_server, "Starting server %s", me); - if (!pListener && *control_block.default_listen) - add_listener(control_block.default_listen, 0); -#else -/* UNIX */ - if (control_block.inetd) - inetd_connection(control_block.default_proto); - else - { - static int hand[2]; - if (control_block.background) - { - /* create pipe so that parent waits until child has created - PID (or failed) */ - if (pipe(hand) < 0) - { - yaz_log(YLOG_FATAL|YLOG_ERRNO, "pipe"); - return 1; - } - switch (fork()) - { - case 0: - break; - case -1: - return 1; - default: - close(hand[1]); - while(1) - { - char dummy[1]; - int res = read(hand[0], dummy, 1); - if (res < 0 && yaz_errno() != EINTR) - { - yaz_log(YLOG_FATAL|YLOG_ERRNO, "read fork handshake"); - break; - } - else if (res >= 0) - break; - } - close(hand[0]); - _exit(0); - } - /* child */ - close(hand[0]); - if (setsid() < 0) - return 1; - - close(0); - close(1); - close(2); - open("/dev/null", O_RDWR); - dup(0); dup(0); - } - xml_config_add_listeners(); - - if (!pListener && *control_block.default_listen) - add_listener(control_block.default_listen, 0); - - if (!pListener) - return 1; - - if (*control_block.pid_fname) - { - FILE *f = fopen(control_block.pid_fname, "w"); - if (!f) - { - yaz_log(YLOG_FATAL|YLOG_ERRNO, "Couldn't create %s", - control_block.pid_fname); - exit(0); - } - fprintf(f, "%ld", (long) getpid()); - fclose(f); - } - - if (control_block.background) - close(hand[1]); - - - yaz_log (log_server, "Starting server %s pid=%ld", programname, - (long) getpid()); -#if 0 - sigset_t sigs_to_block; - - sigemptyset(&sigs_to_block); - sigaddset (&sigs_to_block, SIGTERM); - pthread_sigmask (SIG_BLOCK, &sigs_to_block, 0); - /* missing... */ -#endif - if (control_block.dynamic) - signal(SIGCHLD, catchchld); - } - signal (SIGPIPE, SIG_IGN); - signal (SIGTERM, sigterm); - if (*control_block.setuid) - { - struct passwd *pw; - - if (!(pw = getpwnam(control_block.setuid))) - { - yaz_log(YLOG_FATAL, "%s: Unknown user", control_block.setuid); - return(1); - } - if (setuid(pw->pw_uid) < 0) - { - yaz_log(YLOG_FATAL|YLOG_ERRNO, "setuid"); - exit(1); - } - } -/* UNIX */ -#endif - if (pListener == NULL) - return 1; - yaz_log(YLOG_DEBUG, "Entering event loop."); - return event_loop(&pListener); -} - -static void option_copy(char *dst, const char *src) -{ - strncpy(dst, src ? src : "", 127); - dst[127] = '\0'; -} - -int check_options(int argc, char **argv) -{ - int ret = 0, r; - char *arg; - - yaz_log_init_level(yaz_log_mask_str(STAT_DEFAULT_LOG_LEVEL)); - get_logbits(1); - - while ((ret = options("1a:iszSTl:v:u:c:w:t:k:d:A:p:DC:f:m:r:", - argv, argc, &arg)) != -2) - { - switch (ret) - { - case 0: - if (add_listener(arg, 0)) - return 1; /* failed to create listener */ - break; - case '1': - control_block.one_shot = 1; - control_block.dynamic = 0; - break; - case 'z': - control_block.default_proto = PROTO_Z3950; - break; - case 's': - fprintf (stderr, "%s: SR protocol no longer supported\n", me); - exit (1); - break; - case 'S': - control_block.dynamic = 0; - break; - case 'T': -#if YAZ_POSIX_THREADS - control_block.dynamic = 0; - control_block.threads = 1; -#elif YAZ_GNU_THREADS - control_block.dynamic = 0; - control_block.threads = 1; -#else - fprintf(stderr, "%s: Threaded mode not available.\n", me); - return 1; -#endif - break; - case 'l': - option_copy(control_block.logfile, arg); - yaz_log_init_file(control_block.logfile); - break; - case 'm': - if (!arg) { - fprintf(stderr, "%s: Specify time format for log file.\n", me); - return(1); - } - yaz_log_time_format(arg); - break; - case 'v': - yaz_log_init_level(yaz_log_mask_str(arg)); - get_logbits(1); - break; - case 'a': - option_copy(control_block.apdufile, arg); - break; - case 'u': - option_copy(control_block.setuid, arg); - break; - case 'c': - option_copy(control_block.configname, arg); - break; - case 'C': - option_copy(control_block.cert_fname, arg); - break; - case 'd': - option_copy(control_block.daemon_name, arg); - break; - case 't': - if (!arg || !(r = atoi(arg))) - { - fprintf(stderr, "%s: Specify positive timeout for -t.\n", me); - return(1); - } - control_block.idle_timeout = r; - break; - case 'k': - if (!arg || !(r = atoi(arg))) - { - fprintf(stderr, "%s: Specify positive size for -k.\n", me); - return(1); - } - control_block.maxrecordsize = r * 1024; - break; - case 'i': - control_block.inetd = 1; - break; - case 'w': - if (chdir(arg)) - { - perror(arg); - return 1; - } - break; - case 'A': - max_sessions = atoi(arg); - break; - case 'p': - option_copy(control_block.pid_fname, arg); - break; - case 'f': -#if YAZ_HAVE_XML2 - option_copy(control_block.xml_config, arg); -#else - fprintf(stderr, "%s: Option -f unsupported since YAZ is compiled without Libxml2 support\n", me); - exit(1); -#endif - break; - case 'D': - control_block.background = 1; - break; - case 'r': - if (!arg || !(r = atoi(arg))) - { - fprintf(stderr, "%s: Specify positive size for -r.\n", me); - return(1); - } - yaz_log_init_max_size(r * 1024); - break; - default: - fprintf(stderr, "Usage: %s [ -a -v " - " -l -u -c -t " - " -k -d -p -C certfile" - " -ziDST1 -m -w ... ]\n", me); - return 1; - } - } - return 0; -} - -#ifdef WIN32 -typedef struct _Args -{ - char **argv; - int argc; -} Args; - -static Args ArgDetails; - -/* name of the executable */ -#define SZAPPNAME "server" - -/* list of service dependencies - "dep1\0dep2\0\0" */ -#define SZDEPENDENCIES "" - -int statserv_main(int argc, char **argv, - bend_initresult *(*bend_init)(bend_initrequest *r), - void (*bend_close)(void *handle)) -{ - struct statserv_options_block *cb = &control_block; - cb->bend_init = bend_init; - cb->bend_close = bend_close; - - /* Lets setup the Arg structure */ - ArgDetails.argc = argc; - ArgDetails.argv = argv; - - /* Now setup the service with the service controller */ - SetupService(argc, argv, &ArgDetails, SZAPPNAME, - cb->service_name, /* internal service name */ - cb->service_display_name, /* displayed name */ - SZDEPENDENCIES); - return 0; -} - -int StartAppService(void *pHandle, int argc, char **argv) -{ - /* Initializes the App */ - return 1; -} - -void RunAppService(void *pHandle) -{ - Args *pArgs = (Args *)pHandle; - - /* Starts the app running */ - statserv_start(pArgs->argc, pArgs->argv); -} - -void StopAppService(void *pHandle) -{ - /* Stops the app */ - statserv_closedown(); - statserv_reset(); -} -/* WIN32 */ -#else -/* UNIX */ -int statserv_main(int argc, char **argv, - bend_initresult *(*bend_init)(bend_initrequest *r), - void (*bend_close)(void *handle)) -{ - int ret; - - control_block.bend_init = bend_init; - control_block.bend_close = bend_close; - - ret = statserv_start (argc, argv); - statserv_closedown (); - statserv_reset(); - return ret; -} -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/tcpdchk.c b/dependencies/yaz_3.0.14/src/tcpdchk.c deleted file mode 100644 index c38ea86..0000000 --- a/dependencies/yaz_3.0.14/src/tcpdchk.c +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tcpdchk.c,v 1.9 2007/01/03 08:42:15 adam Exp $ - */ -/** - * \file tcpdchk.c - * \brief Implements TCP WRAPPER check. - */ - -#include -#include - -#if HAVE_SYS_TYPES_H -#include -#endif - -#ifdef WIN32 -#include -#else -#include -#include -#include -#include -#endif - -#if HAVE_SYS_SOCKET_H -#include -#endif - -#include -#include -#include -#include - - -#if HAVE_TCPD_H -#include -#include - -int allow_severity = LOG_INFO; /* not YLOG !! */ -int deny_severity = LOG_WARNING; - -#ifdef LOG_DEBUG -#undef LOG_DEBUG -#endif -#ifdef LOG_WARN -#undef LOG_WARN -#endif - -#endif - -int check_ip_tcpd(void *cd, const char *addr, int len, int type) -{ - const char *daemon_name = (const char *) cd; - - if (type == AF_INET) - { - if (daemon_name && *daemon_name) - { -#if HAVE_TCPD_H - struct request_info request_info; - int i; -#endif - char *host_name = 0, *host_addr = 0; - struct hostent *host; - - struct sockaddr_in *addr_in = (struct sockaddr_in *) addr; - - if ((host = gethostbyaddr((char*)&addr_in->sin_addr, - sizeof(addr_in->sin_addr), - AF_INET))) - host_name = (char*) host->h_name; - host_addr = inet_ntoa(addr_in->sin_addr); -#if HAVE_TCPD_H - if (host_addr) - request_init(&request_info, RQ_DAEMON, daemon_name, - RQ_CLIENT_NAME, host_name, - RQ_CLIENT_SIN, addr_in, - RQ_CLIENT_ADDR, host_addr, 0); - else - request_init(&request_info, RQ_DAEMON, daemon_name, - RQ_CLIENT_SIN, addr_in, - RQ_CLIENT_ADDR, host_addr, 0); - i = hosts_access(&request_info); - if (!i) - { - yaz_log (YLOG_DEBUG, "access denied from %s", - host_name ? host_name : host_addr); - return 1; - } - yaz_log (YLOG_DEBUG, "access granted from %s", - host_name ? host_name : host_addr); -#endif - } - } - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/tcpip.c b/dependencies/yaz_3.0.14/src/tcpip.c deleted file mode 100644 index 7829ea3..0000000 --- a/dependencies/yaz_3.0.14/src/tcpip.c +++ /dev/null @@ -1,1385 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tcpip.c,v 1.34 2007/01/19 10:28:42 adam Exp $ - */ -/** - * \file tcpip.c - * \brief Implements TCP/IP + SSL COMSTACK. - */ - -#include -#include -#include -#include -#include -#include -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_TIME_H -#include -#endif -#if HAVE_UNISTD_H -#include -#endif - -#ifdef WIN32 - -/* VS 2003 or later has getaddrinfo; older versions do not */ -#include -#if _MSC_VER >= 1300 -#include -#define HAVE_GETADDRINFO 1 -#else -#define HAVE_GETADDRINFO 0 -#endif - -#else -#include -#include -#include -#include -#endif - -#if HAVE_SYS_SOCKET_H -#include -#endif -#if HAVE_SYS_SELECT_H -#include -#endif -#if HAVE_SYS_WAIT_H -#include -#endif - -#if HAVE_OPENSSL_SSL_H -#include -#include -#endif - -#include -#include -#include - -static int tcpip_close(COMSTACK h); -static int tcpip_put(COMSTACK h, char *buf, int size); -static int tcpip_get(COMSTACK h, char **buf, int *bufsize); -static int tcpip_connect(COMSTACK h, void *address); -static int tcpip_more(COMSTACK h); -static int tcpip_rcvconnect(COMSTACK h); -static int tcpip_bind(COMSTACK h, void *address, int mode); -static int tcpip_listen(COMSTACK h, char *raddr, int *addrlen, - int (*check_ip)(void *cd, const char *a, int len, int type), - void *cd); -static int tcpip_set_blocking(COMSTACK p, int blocking); - -#if HAVE_OPENSSL_SSL_H -static int ssl_get(COMSTACK h, char **buf, int *bufsize); -static int ssl_put(COMSTACK h, char *buf, int size); -#endif - -static COMSTACK tcpip_accept(COMSTACK h); -static char *tcpip_addrstr(COMSTACK h); -static void *tcpip_straddr(COMSTACK h, const char *str); - -#if 0 -#define TRC(x) x -#else -#define TRC(X) -#endif - -#ifndef YAZ_SOCKLEN_T -#define YAZ_SOCKLEN_T int -#endif - -/* this state is used for both SSL and straight TCP/IP */ -typedef struct tcpip_state -{ - char *altbuf; /* alternate buffer for surplus data */ - int altsize; /* size as xmalloced */ - int altlen; /* length of data or 0 if none */ - - int written; /* -1 if we aren't writing */ - int towrite; /* to verify against user input */ - int (*complete)(const unsigned char *buf, int len); /* length/comple. */ -#if HAVE_GETADDRINFO - struct addrinfo *ai; -#else - struct sockaddr_in addr; /* returned by cs_straddr */ -#endif - char buf[128]; /* returned by cs_addrstr */ -#if HAVE_OPENSSL_SSL_H - SSL_CTX *ctx; /* current CTX. */ - SSL_CTX *ctx_alloc; /* If =ctx it is owned by CS. If 0 it is not owned */ - SSL *ssl; - char cert_fname[256]; -#endif -} tcpip_state; - -#ifdef WIN32 -static int tcpip_init (void) -{ - static int initialized = 0; - if (!initialized) - { - WORD requested; - WSADATA wd; - - requested = MAKEWORD(1, 1); - if (WSAStartup(requested, &wd)) - return 0; - initialized = 1; - } - return 1; -} -#else -static int tcpip_init (void) -{ - return 1; -} -#endif - -/* - * This function is always called through the cs_create() macro. - * s >= 0: socket has already been established for us. - */ -COMSTACK tcpip_type(int s, int flags, int protocol, void *vp) -{ - COMSTACK p; - tcpip_state *sp; - - if (!tcpip_init ()) - return 0; - if (!(p = (struct comstack *)xmalloc(sizeof(struct comstack)))) - return 0; - if (!(sp = (struct tcpip_state *)(p->cprivate = - xmalloc(sizeof(tcpip_state))))) - return 0; - - p->flags = flags; - - p->io_pending = 0; - p->iofile = s; - p->type = tcpip_type; - p->protocol = (enum oid_proto) protocol; - - p->f_connect = tcpip_connect; - p->f_rcvconnect = tcpip_rcvconnect; - p->f_get = tcpip_get; - p->f_put = tcpip_put; - p->f_close = tcpip_close; - p->f_more = tcpip_more; - p->f_bind = tcpip_bind; - p->f_listen = tcpip_listen; - p->f_accept = tcpip_accept; - p->f_addrstr = tcpip_addrstr; - p->f_straddr = tcpip_straddr; - p->f_set_blocking = tcpip_set_blocking; - p->max_recv_bytes = 5000000; - - p->state = s < 0 ? CS_ST_UNBND : CS_ST_IDLE; /* state of line */ - p->event = CS_NONE; - p->cerrno = 0; - p->stackerr = 0; - p->user = 0; - -#if HAVE_OPENSSL_SSL_H - sp->ctx = sp->ctx_alloc = 0; - sp->ssl = 0; - strcpy(sp->cert_fname, "yaz.pem"); -#endif - -#if HAVE_GETADDRINFO - sp->ai = 0; -#endif - sp->altbuf = 0; - sp->altsize = sp->altlen = 0; - sp->towrite = sp->written = -1; - if (protocol == PROTO_WAIS) - sp->complete = completeWAIS; - else - sp->complete = cs_complete_auto; - - p->timeout = COMSTACK_DEFAULT_TIMEOUT; - TRC(fprintf(stderr, "Created new TCPIP comstack\n")); - - return p; -} - -#if HAVE_OPENSSL_SSL_H - -COMSTACK ssl_type(int s, int flags, int protocol, void *vp) -{ - tcpip_state *sp; - COMSTACK p; - - p = tcpip_type (s, flags, protocol, 0); - if (!p) - return 0; - p->f_get = ssl_get; - p->f_put = ssl_put; - p->type = ssl_type; - sp = (tcpip_state *) p->cprivate; - - sp->ctx = (SSL_CTX *) vp; /* may be NULL */ - - /* note: we don't handle already opened socket in SSL mode - yet */ - return p; -} -#endif - -#if HAVE_GETADDRINFO -/* resolve using getaddrinfo */ -struct addrinfo *tcpip_getaddrinfo(const char *str, const char *port) -{ - struct addrinfo hints, *res; - int error; - char host[512], *p; - - hints.ai_flags = 0; - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - hints.ai_protocol = 0; - hints.ai_addrlen = 0; - hints.ai_addr = NULL; - hints.ai_canonname = NULL; - hints.ai_next = NULL; - - strncpy(host, str, sizeof(host)-1); - host[sizeof(host)-1] = 0; - if ((p = strchr(host, '/'))) - *p = 0; - if ((p = strrchr(host, ':'))) - { - *p = '\0'; - port = p+1; - } - - if (!strcmp("@", host)) - { - hints.ai_flags = AI_PASSIVE; - error = getaddrinfo(0, port, &hints, &res); - } - else - { - error = getaddrinfo(host, port, &hints, &res); - } - if (error) - return 0; - return res; -} - -#endif -/* gethostbyname .. old systems */ -int tcpip_strtoaddr_ex(const char *str, struct sockaddr_in *add, - int default_port) -{ - struct hostent *hp; - char *p, buf[512]; - short int port = default_port; -#ifdef WIN32 - unsigned long tmpadd; -#else - in_addr_t tmpadd; -#endif - TRC(fprintf(stderr, "tcpip_strtoaddress: %s\n", str ? str : "NULL")); - add->sin_family = AF_INET; - strncpy(buf, str, sizeof(buf)-1); - buf[sizeof(buf)-1] = 0; - if ((p = strchr(buf, '/'))) - *p = 0; - if ((p = strrchr(buf, ':'))) - { - *p = 0; - port = atoi(p + 1); - } - add->sin_port = htons(port); - if (!strcmp("@", buf)) - { - add->sin_addr.s_addr = INADDR_ANY; - } - else if ((tmpadd = inet_addr(buf)) != -1) - { - memcpy(&add->sin_addr.s_addr, &tmpadd, sizeof(struct in_addr)); - } - else if ((hp = gethostbyname(buf))) - { - memcpy(&add->sin_addr.s_addr, *hp->h_addr_list, - sizeof(struct in_addr)); - } - else - return 0; - return 1; -} - - -#if HAVE_GETADDRINFO -void *tcpip_straddr(COMSTACK h, const char *str) -{ - tcpip_state *sp = (tcpip_state *)h->cprivate; - const char *port = "210"; - if (h->protocol == PROTO_HTTP) - port = "80"; - if (!tcpip_init ()) - return 0; - - if (sp->ai) - freeaddrinfo(sp->ai); - sp->ai = tcpip_getaddrinfo(str, port); - if (sp->ai && h->state == CS_ST_UNBND) - { - int s = -1; - struct addrinfo *ai = sp->ai; - for (; ai; ai = ai->ai_next) - { - s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); - if (s != -1) - break; - } - if (s == -1) - return 0; - h->iofile = s; - - if (!tcpip_set_blocking(h, h->flags)) - return 0; - } - return sp->ai; -} -#else -void *tcpip_straddr(COMSTACK h, const char *str) -{ - tcpip_state *sp = (tcpip_state *)h->cprivate; - int port = 210; - if (h->protocol == PROTO_HTTP) - port = 80; - - if (!tcpip_init ()) - return 0; - if (!tcpip_strtoaddr_ex (str, &sp->addr, port)) - return 0; - if (h->state == CS_ST_UNBND) - { - int s; - s = socket(AF_INET, SOCK_STREAM, 0); - if (s < 0) - return 0; - h->iofile = s; - - if (!tcpip_set_blocking(h, h->flags)) - return 0; - } - return &sp->addr; -} -#endif - -int tcpip_more(COMSTACK h) -{ - tcpip_state *sp = (tcpip_state *)h->cprivate; - - return sp->altlen && (*sp->complete)((unsigned char *) sp->altbuf, - sp->altlen); -} - -/* - * connect(2) will block (sometimes) - nothing we can do short of doing - * weird things like spawning subprocesses or threading or some weird junk - * like that. - */ -int tcpip_connect(COMSTACK h, void *address) -{ -#if HAVE_GETADDRINFO - tcpip_state *sp = (tcpip_state *)h->cprivate; -#else - struct sockaddr_in *add = (struct sockaddr_in *) address; -#endif - int r; -#ifdef __sun__ - int recbuflen; - YAZ_SOCKLEN_T rbufsize = sizeof(recbuflen); -#endif - TRC(fprintf(stderr, "tcpip_connect\n")); - h->io_pending = 0; - if (h->state != CS_ST_UNBND) - { - h->cerrno = CSOUTSTATE; - return -1; - } -#if HAVE_GETADDRINFO - if (sp->ai != (struct addrinfo *) address) - { - h->cerrno = CSOUTSTATE; - return -1; - } -#endif -#ifdef __sun__ - /* On Suns, you must set a bigger Receive Buffer BEFORE a call to connect - * This gives the connect a chance to negotiate with the other side - * (see 'man tcp') - */ - if ( getsockopt(h->iofile, SOL_SOCKET, SO_RCVBUF, (void *)&recbuflen, &rbufsize ) < 0 ) - { - h->cerrno = CSYSERR; - return -1; - } - TRC(fprintf( stderr, "Current Size of TCP Receive Buffer= %d\n", - recbuflen )); - recbuflen *= 10; /* lets be optimistic */ - if ( setsockopt(h->iofile, SOL_SOCKET, SO_RCVBUF, (void *)&recbuflen, rbufsize ) < 0 ) - { - h->cerrno = CSYSERR; - return -1; - } - if ( getsockopt(h->iofile, SOL_SOCKET, SO_RCVBUF, (void *)&recbuflen, &rbufsize ) ) - { - h->cerrno = CSYSERR; - return -1; - } - TRC(fprintf( stderr, "New Size of TCP Receive Buffer = %d\n", - recbuflen )); -#endif - -#if HAVE_GETADDRINFO - r = connect(h->iofile, sp->ai->ai_addr, sp->ai->ai_addrlen); - freeaddrinfo(sp->ai); - sp->ai = 0; -#else - r = connect(h->iofile, (struct sockaddr *) add, sizeof(*add)); -#endif - if (r < 0) - { -#ifdef WIN32 - if (WSAGetLastError() == WSAEWOULDBLOCK) - { - h->event = CS_CONNECT; - h->state = CS_ST_CONNECTING; - h->io_pending = CS_WANT_WRITE; - return 1; - } -#else - if (yaz_errno() == EINPROGRESS) - { - h->event = CS_CONNECT; - h->state = CS_ST_CONNECTING; - h->io_pending = CS_WANT_WRITE|CS_WANT_READ; - return 1; - } -#endif - h->cerrno = CSYSERR; - return -1; - } - h->event = CS_CONNECT; - h->state = CS_ST_CONNECTING; - - return tcpip_rcvconnect (h); -} - -/* - * nop - */ -int tcpip_rcvconnect(COMSTACK h) -{ -#if HAVE_OPENSSL_SSL_H - tcpip_state *sp = (tcpip_state *)h->cprivate; -#endif - TRC(fprintf(stderr, "tcpip_rcvconnect\n")); - - if (h->state == CS_ST_DATAXFER) - return 0; - if (h->state != CS_ST_CONNECTING) - { - h->cerrno = CSOUTSTATE; - return -1; - } -#if HAVE_OPENSSL_SSL_H - if (h->type == ssl_type && !sp->ctx) - { - SSL_library_init(); - SSL_load_error_strings(); - - sp->ctx = sp->ctx_alloc = SSL_CTX_new (SSLv23_method()); - if (!sp->ctx) - { - h->cerrno = CSERRORSSL; - return -1; - } - } - if (sp->ctx) - { - int res; - - if (!sp->ssl) - { - sp->ssl = SSL_new (sp->ctx); - SSL_set_fd (sp->ssl, h->iofile); - } - res = SSL_connect (sp->ssl); - if (res <= 0) - { - int err = SSL_get_error(sp->ssl, res); - if (err == SSL_ERROR_WANT_READ) - { - h->io_pending = CS_WANT_READ; - return 1; - } - if (err == SSL_ERROR_WANT_WRITE) - { - h->io_pending = CS_WANT_WRITE; - return 1; - } - h->cerrno = CSERRORSSL; - return -1; - } - } -#endif - h->event = CS_DATA; - h->state = CS_ST_DATAXFER; - return 0; -} - -#define CERTF "ztest.pem" -#define KEYF "ztest.pem" - -static void tcpip_setsockopt (int fd) -{ -#if 0 - int len = 4096; - int set = 1; - - if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char*)&set, sizeof(int))) - { - yaz_log(LOG_WARN|LOG_ERRNO, "setsockopt TCP_NODELAY"); - } - if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&len, sizeof(int))) - { - yaz_log(LOG_WARN|LOG_ERRNO, "setsockopt SNDBUF"); - } - if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&len, sizeof(int))) - { - yaz_log(LOG_WARN|LOG_ERRNO, "setsockopt RCVBUF"); - } -#endif -} - -static int tcpip_bind(COMSTACK h, void *address, int mode) -{ - int r; - tcpip_state *sp = (tcpip_state *)h->cprivate; -#if HAVE_GETADDRINFO -#else - struct sockaddr *addr = (struct sockaddr *)address; -#endif -#ifdef WIN32 - BOOL one = 1; -#else - int one = 1; -#endif - -#if HAVE_GETADDRINFO - if (sp->ai != (struct addrinfo *) address) - { - h->cerrno = CSOUTSTATE; - return -1; - } -#endif - -#if HAVE_OPENSSL_SSL_H - if (h->type == ssl_type && !sp->ctx) - { - SSL_library_init(); - SSL_load_error_strings(); - - sp->ctx = sp->ctx_alloc = SSL_CTX_new (SSLv23_method()); - if (!sp->ctx) - { - h->cerrno = CSERRORSSL; - return -1; - } - } - if (sp->ctx) - { - if (sp->ctx_alloc) - { - int res; - res = SSL_CTX_use_certificate_chain_file(sp->ctx, sp->cert_fname); - if (res <= 0) - { - ERR_print_errors_fp(stderr); - exit (2); - } - res = SSL_CTX_use_PrivateKey_file (sp->ctx, sp->cert_fname, - SSL_FILETYPE_PEM); - if (res <= 0) - { - ERR_print_errors_fp(stderr); - exit (3); - } - res = SSL_CTX_check_private_key (sp->ctx); - if (res <= 0) - { - ERR_print_errors_fp(stderr); - exit(5); - } - } - TRC (fprintf (stderr, "ssl_bind\n")); - } - else - { - TRC (fprintf (stderr, "tcpip_bind\n")); - } -#else - TRC (fprintf (stderr, "tcpip_bind\n")); -#endif -#ifndef WIN32 - if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, (char*) - &one, sizeof(one)) < 0) - { - h->cerrno = CSYSERR; - return -1; - } -#endif - tcpip_setsockopt(h->iofile); -#if HAVE_GETADDRINFO - r = bind(h->iofile, sp->ai->ai_addr, sp->ai->ai_addrlen); - freeaddrinfo(sp->ai); - sp->ai = 0; -#else - r = bind(h->iofile, addr, sizeof(struct sockaddr_in)); -#endif - if (r) - { - h->cerrno = CSYSERR; - return -1; - } - /* Allow a maximum-sized backlog of waiting-to-connect clients */ - if (mode == CS_SERVER && listen(h->iofile, SOMAXCONN) < 0) - { - h->cerrno = CSYSERR; - return -1; - } - h->state = CS_ST_IDLE; - h->event = CS_LISTEN; - return 0; -} - -int tcpip_listen(COMSTACK h, char *raddr, int *addrlen, - int (*check_ip)(void *cd, const char *a, int len, int t), - void *cd) -{ - struct sockaddr_in addr; - YAZ_SOCKLEN_T len = sizeof(addr); - - TRC(fprintf(stderr, "tcpip_listen pid=%d\n", getpid())); - if (h->state != CS_ST_IDLE) - { - h->cerrno = CSOUTSTATE; - return -1; - } - h->newfd = accept(h->iofile, (struct sockaddr*)&addr, &len); - if (h->newfd < 0) - { - if ( -#ifdef WIN32 - WSAGetLastError() == WSAEWOULDBLOCK -#else - yaz_errno() == EWOULDBLOCK -#ifdef EAGAIN -#if EAGAIN != EWOULDBLOCK - || yaz_errno() == EAGAIN -#endif -#endif -#endif - ) - h->cerrno = CSNODATA; - else - h->cerrno = CSYSERR; - return -1; - } - if (addrlen && (size_t) (*addrlen) >= sizeof(struct sockaddr_in)) - memcpy(raddr, &addr, *addrlen = sizeof(struct sockaddr_in)); - else if (addrlen) - *addrlen = 0; - if (check_ip && (*check_ip)(cd, (const char *) &addr, - sizeof(addr), AF_INET)) - { - h->cerrno = CSDENY; -#ifdef WIN32 - closesocket(h->newfd); -#else - close(h->newfd); -#endif - h->newfd = -1; - return -1; - } - h->state = CS_ST_INCON; - tcpip_setsockopt (h->newfd); - return 0; -} - -COMSTACK tcpip_accept(COMSTACK h) -{ - COMSTACK cnew; - tcpip_state *state, *st = (tcpip_state *)h->cprivate; -#ifdef WIN32 - unsigned long tru = 1; -#endif - - TRC(fprintf(stderr, "tcpip_accept\n")); - if (h->state == CS_ST_INCON) - { - if (!(cnew = (COMSTACK)xmalloc(sizeof(*cnew)))) - { - h->cerrno = CSYSERR; -#ifdef WIN32 - closesocket(h->newfd); -#else - close(h->newfd); -#endif - h->newfd = -1; - return 0; - } - memcpy(cnew, h, sizeof(*h)); - cnew->iofile = h->newfd; - cnew->io_pending = 0; - if (!(state = (tcpip_state *) - (cnew->cprivate = xmalloc(sizeof(tcpip_state))))) - { - h->cerrno = CSYSERR; - if (h->newfd != -1) - { -#ifdef WIN32 - closesocket(h->newfd); -#else - close(h->newfd); -#endif - h->newfd = -1; - } - return 0; - } - if (!tcpip_set_blocking(cnew, cnew->flags)) - { - h->cerrno = CSYSERR; - if (h->newfd != -1) - { -#ifdef WIN32 - closesocket(h->newfd); -#else - close(h->newfd); -#endif - h->newfd = -1; - } - xfree (cnew); - xfree (state); - return 0; - } - h->newfd = -1; - state->altbuf = 0; - state->altsize = state->altlen = 0; - state->towrite = state->written = -1; - state->complete = st->complete; -#if HAVE_GETADDRINFO - state->ai = 0; -#endif - cnew->state = CS_ST_ACCEPT; - h->state = CS_ST_IDLE; - -#if HAVE_OPENSSL_SSL_H - state->ctx = st->ctx; - state->ctx_alloc = 0; - state->ssl = st->ssl; - if (state->ctx) - { - state->ssl = SSL_new (state->ctx); - SSL_set_fd (state->ssl, cnew->iofile); - } -#endif - h = cnew; - } - if (h->state == CS_ST_ACCEPT) - { -#if HAVE_OPENSSL_SSL_H - tcpip_state *state = (tcpip_state *)h->cprivate; - if (state->ctx) - { - int res = SSL_accept (state->ssl); - TRC(fprintf(stderr, "SSL_accept\n")); - if (res <= 0) - { - int err = SSL_get_error(state->ssl, res); - if (err == SSL_ERROR_WANT_READ) - { - h->io_pending = CS_WANT_READ; - return h; - } - if (err == SSL_ERROR_WANT_WRITE) - { - h->io_pending = CS_WANT_WRITE; - return h; - } - cs_close (h); - return 0; - } - } -#endif - } - else - { - h->cerrno = CSOUTSTATE; - return 0; - } - h->io_pending = 0; - h->state = CS_ST_DATAXFER; - h->event = CS_DATA; - return h; -} - -#define CS_TCPIP_BUFCHUNK 4096 - -/* - * Return: -1 error, >1 good, len of buffer, ==1 incomplete buffer, - * 0=connection closed. - */ -int tcpip_get(COMSTACK h, char **buf, int *bufsize) -{ - tcpip_state *sp = (tcpip_state *)h->cprivate; - char *tmpc; - int tmpi, berlen, rest, req, tomove; - int hasread = 0, res; - - TRC(fprintf(stderr, "tcpip_get: bufsize=%d\n", *bufsize)); - if (sp->altlen) /* switch buffers */ - { - TRC(fprintf(stderr, " %d bytes in altbuf (0x%x)\n", sp->altlen, - (unsigned) sp->altbuf)); - tmpc = *buf; - tmpi = *bufsize; - *buf = sp->altbuf; - *bufsize = sp->altsize; - hasread = sp->altlen; - sp->altlen = 0; - sp->altbuf = tmpc; - sp->altsize = tmpi; - } - h->io_pending = 0; - while (!(berlen = (*sp->complete)((unsigned char *)*buf, hasread))) - { - if (!*bufsize) - { - if (!(*buf = (char *)xmalloc(*bufsize = CS_TCPIP_BUFCHUNK))) - { - h->cerrno = CSYSERR; - return -1; - } - } - else if (*bufsize - hasread < CS_TCPIP_BUFCHUNK) - if (!(*buf =(char *)xrealloc(*buf, *bufsize *= 2))) - { - h->cerrno = CSYSERR; - return -1; - } -#ifdef __sun__ - yaz_set_errno( 0 ); - /* unfortunatly, sun sometimes forgets to set errno in recv - when EWOULDBLOCK etc. would be required (res = -1) */ -#endif - res = recv(h->iofile, *buf + hasread, CS_TCPIP_BUFCHUNK, 0); - TRC(fprintf(stderr, " recv res=%d, hasread=%d\n", res, hasread)); - if (res < 0) - { - TRC(fprintf(stderr, " recv errno=%d, (%s)\n", yaz_errno(), - strerror(yaz_errno()))); -#ifdef WIN32 - if (WSAGetLastError() == WSAEWOULDBLOCK) - { - h->io_pending = CS_WANT_READ; - break; - } - else - { - h->cerrno = CSYSERR; - return -1; - } -#else - if (yaz_errno() == EWOULDBLOCK -#ifdef EAGAIN -#if EAGAIN != EWOULDBLOCK - || yaz_errno() == EAGAIN -#endif -#endif - || yaz_errno() == EINPROGRESS -#ifdef __sun__ - || yaz_errno() == ENOENT /* Sun's sometimes set errno to this */ -#endif - ) - { - h->io_pending = CS_WANT_READ; - break; - } - else if (yaz_errno() == 0) - continue; - else - { - h->cerrno = CSYSERR; - return -1; - } -#endif - } - else if (!res) - return hasread; - hasread += res; - if (hasread > h->max_recv_bytes) - { - h->cerrno = CSBUFSIZE; - return -1; - } - } - TRC (fprintf (stderr, " Out of read loop with hasread=%d, berlen=%d\n", - hasread, berlen)); - /* move surplus buffer (or everything if we didn't get a BER rec.) */ - if (hasread > berlen) - { - tomove = req = hasread - berlen; - rest = tomove % CS_TCPIP_BUFCHUNK; - if (rest) - req += CS_TCPIP_BUFCHUNK - rest; - if (!sp->altbuf) - { - if (!(sp->altbuf = (char *)xmalloc(sp->altsize = req))) - { - h->cerrno = CSYSERR; - return -1; - } - } else if (sp->altsize < req) - if (!(sp->altbuf =(char *)xrealloc(sp->altbuf, sp->altsize = req))) - { - h->cerrno = CSYSERR; - return -1; - } - TRC(fprintf(stderr, " Moving %d bytes to altbuf(0x%x)\n", tomove, - (unsigned) sp->altbuf)); - memcpy(sp->altbuf, *buf + berlen, sp->altlen = tomove); - } - if (berlen < CS_TCPIP_BUFCHUNK - 1) - *(*buf + berlen) = '\0'; - return berlen ? berlen : 1; -} - - -#if HAVE_OPENSSL_SSL_H -/* - * Return: -1 error, >1 good, len of buffer, ==1 incomplete buffer, - * 0=connection closed. - */ -int ssl_get(COMSTACK h, char **buf, int *bufsize) -{ - tcpip_state *sp = (tcpip_state *)h->cprivate; - char *tmpc; - int tmpi, berlen, rest, req, tomove; - int hasread = 0, res; - - TRC(fprintf(stderr, "ssl_get: bufsize=%d\n", *bufsize)); - if (sp->altlen) /* switch buffers */ - { - TRC(fprintf(stderr, " %d bytes in altbuf (0x%x)\n", sp->altlen, - (unsigned) sp->altbuf)); - tmpc = *buf; - tmpi = *bufsize; - *buf = sp->altbuf; - *bufsize = sp->altsize; - hasread = sp->altlen; - sp->altlen = 0; - sp->altbuf = tmpc; - sp->altsize = tmpi; - } - h->io_pending = 0; - while (!(berlen = (*sp->complete)((unsigned char *)*buf, hasread))) - { - if (!*bufsize) - { - if (!(*buf = (char *)xmalloc(*bufsize = CS_TCPIP_BUFCHUNK))) - return -1; - } - else if (*bufsize - hasread < CS_TCPIP_BUFCHUNK) - if (!(*buf =(char *)xrealloc(*buf, *bufsize *= 2))) - return -1; - res = SSL_read (sp->ssl, *buf + hasread, CS_TCPIP_BUFCHUNK); - TRC(fprintf(stderr, " SSL_read res=%d, hasread=%d\n", res, hasread)); - if (res <= 0) - { - int ssl_err = SSL_get_error(sp->ssl, res); - if (ssl_err == SSL_ERROR_WANT_READ) - { - h->io_pending = CS_WANT_READ; - break; - } - if (ssl_err == SSL_ERROR_WANT_WRITE) - { - h->io_pending = CS_WANT_WRITE; - break; - } - if (res == 0) - return 0; - h->cerrno = CSERRORSSL; - return -1; - } - hasread += res; - } - TRC (fprintf (stderr, " Out of read loop with hasread=%d, berlen=%d\n", - hasread, berlen)); - /* move surplus buffer (or everything if we didn't get a BER rec.) */ - if (hasread > berlen) - { - tomove = req = hasread - berlen; - rest = tomove % CS_TCPIP_BUFCHUNK; - if (rest) - req += CS_TCPIP_BUFCHUNK - rest; - if (!sp->altbuf) - { - if (!(sp->altbuf = (char *)xmalloc(sp->altsize = req))) - return -1; - } else if (sp->altsize < req) - if (!(sp->altbuf =(char *)xrealloc(sp->altbuf, sp->altsize = req))) - return -1; - TRC(fprintf(stderr, " Moving %d bytes to altbuf(0x%x)\n", tomove, - (unsigned) sp->altbuf)); - memcpy(sp->altbuf, *buf + berlen, sp->altlen = tomove); - } - if (berlen < CS_TCPIP_BUFCHUNK - 1) - *(*buf + berlen) = '\0'; - return berlen ? berlen : 1; -} -#endif - -/* - * Returns 1, 0 or -1 - * In nonblocking mode, you must call again with same buffer while - * return value is 1. - */ -int tcpip_put(COMSTACK h, char *buf, int size) -{ - int res; - struct tcpip_state *state = (struct tcpip_state *)h->cprivate; - - TRC(fprintf(stderr, "tcpip_put: size=%d\n", size)); - h->io_pending = 0; - h->event = CS_DATA; - if (state->towrite < 0) - { - state->towrite = size; - state->written = 0; - } - else if (state->towrite != size) - { - h->cerrno = CSWRONGBUF; - return -1; - } - while (state->towrite > state->written) - { - if ((res = - send(h->iofile, buf + state->written, size - - state->written, -#ifdef MSG_NOSIGNAL - MSG_NOSIGNAL -#else - 0 -#endif - )) < 0) - { - if ( -#ifdef WIN32 - WSAGetLastError() == WSAEWOULDBLOCK -#else - yaz_errno() == EWOULDBLOCK -#ifdef EAGAIN -#if EAGAIN != EWOULDBLOCK - || yaz_errno() == EAGAIN -#endif -#endif -#ifdef __sun__ - || yaz_errno() == ENOENT /* Sun's sometimes set errno to this value! */ -#endif - || yaz_errno() == EINPROGRESS -#endif - ) - { - TRC(fprintf(stderr, " Flow control stop\n")); - h->io_pending = CS_WANT_WRITE; - return 1; - } - h->cerrno = CSYSERR; - return -1; - } - state->written += res; - TRC(fprintf(stderr, " Wrote %d, written=%d, nbytes=%d\n", - res, state->written, size)); - } - state->towrite = state->written = -1; - TRC(fprintf(stderr, " Ok\n")); - return 0; -} - - -#if HAVE_OPENSSL_SSL_H -/* - * Returns 1, 0 or -1 - * In nonblocking mode, you must call again with same buffer while - * return value is 1. - */ -int ssl_put(COMSTACK h, char *buf, int size) -{ - int res; - struct tcpip_state *state = (struct tcpip_state *)h->cprivate; - - TRC(fprintf(stderr, "ssl_put: size=%d\n", size)); - h->io_pending = 0; - h->event = CS_DATA; - if (state->towrite < 0) - { - state->towrite = size; - state->written = 0; - } - else if (state->towrite != size) - { - h->cerrno = CSWRONGBUF; - return -1; - } - while (state->towrite > state->written) - { - res = SSL_write (state->ssl, buf + state->written, - size - state->written); - if (res <= 0) - { - int ssl_err = SSL_get_error(state->ssl, res); - if (ssl_err == SSL_ERROR_WANT_READ) - { - h->io_pending = CS_WANT_READ; - return 1; - } - if (ssl_err == SSL_ERROR_WANT_WRITE) - { - h->io_pending = CS_WANT_WRITE; - return 1; - } - h->cerrno = CSERRORSSL; - return -1; - } - state->written += res; - TRC(fprintf(stderr, " Wrote %d, written=%d, nbytes=%d\n", - res, state->written, size)); - } - state->towrite = state->written = -1; - TRC(fprintf(stderr, " Ok\n")); - return 0; -} -#endif - -int tcpip_close(COMSTACK h) -{ - tcpip_state *sp = (struct tcpip_state *)h->cprivate; - - TRC(fprintf(stderr, "tcpip_close\n")); - if (h->iofile != -1) - { -#if HAVE_OPENSSL_SSL_H - if (sp->ssl) - { - SSL_shutdown (sp->ssl); - } -#endif -#ifdef WIN32 - closesocket(h->iofile); -#else - close(h->iofile); -#endif - } - if (sp->altbuf) - xfree(sp->altbuf); -#if HAVE_OPENSSL_SSL_H - if (sp->ssl) - { - TRC (fprintf(stderr, "SSL_free\n")); - SSL_free (sp->ssl); - } - sp->ssl = 0; - if (sp->ctx_alloc) - SSL_CTX_free (sp->ctx_alloc); -#endif -#if HAVE_GETADDRINFO - if (sp->ai) - freeaddrinfo(sp->ai); -#endif - xfree(sp); - xfree(h); - return 0; -} - -char *tcpip_addrstr(COMSTACK h) -{ - tcpip_state *sp = (struct tcpip_state *)h->cprivate; - char *r = 0, *buf = sp->buf; - -#if HAVE_GETADDRINFO - char host[120]; - struct sockaddr_storage addr; - YAZ_SOCKLEN_T len = sizeof(addr); - - if (getpeername(h->iofile, (struct sockaddr *)&addr, &len) < 0) - { - h->cerrno = CSYSERR; - return 0; - } - if (getnameinfo((struct sockaddr *) &addr, len, host, sizeof(host)-1, - 0, 0, - (h->flags & CS_FLAGS_NUMERICHOST) ? NI_NUMERICHOST : 0)) - { - r = "unknown"; - } - else - r = host; - -#else - - struct sockaddr_in addr; - YAZ_SOCKLEN_T len = sizeof(addr); - struct hostent *host; - - if (getpeername(h->iofile, (struct sockaddr*) &addr, &len) < 0) - { - h->cerrno = CSYSERR; - return 0; - } - if (!(h->flags & CS_FLAGS_NUMERICHOST)) - { - if ((host = gethostbyaddr((char*)&addr.sin_addr, - sizeof(addr.sin_addr), - AF_INET))) - r = (char*) host->h_name; - } - if (!r) - r = inet_ntoa(addr.sin_addr); -#endif - - if (h->protocol == PROTO_HTTP) - sprintf(buf, "http:%s", r); - else - sprintf(buf, "tcp:%s", r); -#if HAVE_OPENSSL_SSL_H - if (sp->ctx) - { - if (h->protocol == PROTO_HTTP) - sprintf(buf, "https:%s", r); - else - sprintf(buf, "ssl:%s", r); - } -#endif - return buf; -} - -int static tcpip_set_blocking(COMSTACK p, int flags) -{ - unsigned long flag; - -#ifdef WIN32 - flag = (flags & CS_FLAGS_BLOCKING) ? 0 : 1; - if (ioctlsocket(p->iofile, FIONBIO, &flag) < 0) - return 0; -#else - flag = fcntl(p->iofile, F_GETFL, 0); - if (flags & CS_FLAGS_BLOCKING) - flag = flag & ~O_NONBLOCK; /* blocking */ - else - { - flag = flag | O_NONBLOCK; /* non-blocking */ - signal(SIGPIPE, SIG_IGN); - } - if (fcntl(p->iofile, F_SETFL, flag) < 0) - return 0; -#endif - p->flags = flags; - return 1; -} - -#if HAVE_OPENSSL_SSL_H -int cs_set_ssl_ctx(COMSTACK cs, void *ctx) -{ - struct tcpip_state *sp; - if (!cs || cs->type != ssl_type) - return 0; - sp = (struct tcpip_state *) cs->cprivate; - if (sp->ctx_alloc) - return 0; - sp->ctx = (SSL_CTX *) ctx; - return 1; -} - -void *cs_get_ssl(COMSTACK cs) -{ - struct tcpip_state *sp; - if (!cs || cs->type != ssl_type) - return 0; - sp = (struct tcpip_state *) cs->cprivate; - return sp->ssl; -} - -int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname) -{ - struct tcpip_state *sp; - if (!cs || cs->type != ssl_type) - return 0; - sp = (struct tcpip_state *) cs->cprivate; - strncpy(sp->cert_fname, fname, sizeof(sp->cert_fname)-1); - sp->cert_fname[sizeof(sp->cert_fname)-1] = '\0'; - return 1; -} - -int cs_get_peer_certificate_x509(COMSTACK cs, char **buf, int *len) -{ - SSL *ssl = (SSL *) cs_get_ssl(cs); - if (ssl) - { - X509 *server_cert = SSL_get_peer_certificate (ssl); - if (server_cert) - { - BIO *bio = BIO_new(BIO_s_mem()); - char *pem_buf; - /* get PEM buffer in memory */ - PEM_write_bio_X509(bio, server_cert); - *len = BIO_get_mem_data(bio, &pem_buf); - *buf = (char *) xmalloc(*len); - memcpy(*buf, pem_buf, *len); - BIO_free(bio); - return 1; - } - } - return 0; -} -#else -int cs_set_ssl_ctx(COMSTACK cs, void *ctx) -{ - return 0; -} - -void *cs_get_ssl(COMSTACK cs) -{ - return 0; -} - -int cs_get_peer_certificate_x509(COMSTACK cs, char **buf, int *len) -{ - return 0; -} - -int cs_set_ssl_certificate_file(COMSTACK cs, const char *fname) -{ - return 0; -} -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/test.c b/dependencies/yaz_3.0.14/src/test.c deleted file mode 100644 index f110a7b..0000000 --- a/dependencies/yaz_3.0.14/src/test.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: test.c,v 1.12 2007/01/03 08:42:15 adam Exp $ - */ - -/** \file test.c - \brief Unit Test for YAZ -*/ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#if HAVE_UNISTSD_H -#include -#endif - -#include -#include - -static FILE *test_fout = 0; /* can't use '= stdout' on some systems */ -static int test_total = 0; -static int test_failed = 0; -static int test_todo = 0; -static int test_verbose = 1; -static const char *test_prog = 0; -static int log_tests = 0; - -static FILE *get_file(void) -{ - if (test_fout) - return test_fout; - return stdout; -} - -static const char *progname(const char *argv0) -{ - const char *cp = strrchr(argv0, '/'); - if (cp) - return cp+1; - cp = strrchr(argv0, '\\'); - if (cp) - return cp+1; - return argv0; -} - -void yaz_check_init1(int *argc_p, char ***argv_p) -{ - int i = 0; - int argc = *argc_p; - char **argv = *argv_p; - - test_prog = progname(argv[0]); - - for (i = 1; i= 7 && !memcmp(argv[i], "--test-", 7)) - { - const char *suf = argv[i]+7; - if (i < argc-1 && !strcmp(suf, "file")) - { - i++; - if (test_fout) - fclose(test_fout); - test_fout = fopen(argv[i], "w"); - continue; - } - else if (i < argc-1 && !strcmp(suf, "verbose")) - { - i++; - test_verbose = atoi(argv[i]); - continue; - } - else if (!strcmp(suf, "help")) - { - fprintf(stderr, - "--test-help help\n" - "--test-file fname output to fname\n" - "--test-verbose level verbose level\n" - " 0=Quiet. Only exit code tells what's wrong\n" - " 1=Report+Summary only if tests fail.\n" - " 2=Report failures. Print summary always\n" - " 3=Report + summary always\n" - " 4=Report + summary + extra prints from tests\n" - ); - exit(0); - } - else - { - fprintf(stderr, "Unrecognized option for YAZ test: %s\n", - argv[i]); - fprintf(stderr, "Use --test-help for more info\n"); - exit(1); - } - - } - break; - } - /* remove --test- options from argc, argv so that they disappear */ - (*argv_p)[i-1] = **argv_p; /* program name */ - --i; - *argc_p -= i; - *argv_p += i; -} - -/** \brief Initialize the log system */ -void yaz_check_init_log(const char *argv0) -{ - char logfilename[2048]; - log_tests = 1; - sprintf(logfilename,"%s.log", progname(argv0) ); - yaz_log_init_file(logfilename); - yaz_log_trunc(); - -} - -void yaz_check_inc_todo(void) -{ - test_todo++; -} - -void yaz_check_term1(void) -{ - /* summary */ - if (test_failed) - { - if (test_verbose >= 1) { - if (test_todo) - fprintf(get_file(), "%d out of %d tests failed for program %s" - " (%d TODO's remaining)\n", - test_failed, test_total, test_prog,test_todo); - else - fprintf(get_file(), "%d out of %d tests failed for program %s\n", - test_failed, test_total, test_prog); - } - } - else - { - if (test_verbose >= 2) { - if (test_todo) - fprintf(get_file(), "%d tests passed for program %s" - " (%d TODO's remaining)\n", - test_total, test_prog,test_todo); - else - fprintf(get_file(), "%d tests passed for program %s\n", - test_total, test_prog); - } - } - if (test_fout) - fclose(test_fout); - if (test_failed) - exit(1); - exit(0); -} - -void yaz_check_eq1(int type, const char *file, int line, - const char *left, const char *right, int lval, int rval) -{ - char formstr[2048]; - - if (type == YAZ_TEST_TYPE_OK) - sprintf(formstr, "%.500s == %.500s ", left, right); - else - sprintf(formstr, "%.500s != %.500s\n %d != %d", left, right, lval,rval); - yaz_check_print1(type, file, line, formstr); -} - -void yaz_check_print1(int type, const char *file, int line, - const char *expr) -{ - const char *msg = "unknown"; - int printit = 1; - - test_total++; - switch(type) - { - case YAZ_TEST_TYPE_FAIL: - test_failed++; - msg = "FAILED"; - if (test_verbose < 1) - printit = 0; - break; - case YAZ_TEST_TYPE_OK: - msg = "ok"; - if (test_verbose < 3) - printit = 0; - break; - } - if (printit) - { - fprintf(get_file(), "%s:%d %s: ", file, line, msg); - fprintf(get_file(), "%s\n", expr); - } - if (log_tests) - { - yaz_log(YLOG_LOG, "%s:%d %s: ", file, line, msg); - yaz_log(YLOG_LOG, "%s", expr); - } -} - - -int yaz_test_get_verbosity() -{ - return test_verbose; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/timing.c b/dependencies/yaz_3.0.14/src/timing.c deleted file mode 100644 index 471af0a..0000000 --- a/dependencies/yaz_3.0.14/src/timing.c +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: timing.c,v 1.6 2007/06/06 16:32:34 adam Exp $ - */ - -/** - * \file timing.c - * \brief Timing Utilities - */ - -#if HAVE_CONFIG_H -#include -#endif - -#ifdef WIN32 -#include -#endif -#include - -#if HAVE_SYS_TIMES_H -#include -#endif -#if HAVE_SYS_TIME_H -#include -#endif -#include - -#include -#include - -struct yaz_timing { -#if HAVE_SYS_TIMES_H - struct tms tms1, tms2; -#endif -#if HAVE_SYS_TIME_H - struct timeval start_time, end_time; -#endif -#ifdef WIN32 - LONGLONG start_time, end_time; - LONGLONG start_time_sys, start_time_user; - LONGLONG end_time_sys, end_time_user; -#endif - double real_sec, user_sec, sys_sec; -}; - -yaz_timing_t yaz_timing_create(void) -{ - yaz_timing_t t = (yaz_timing_t) xmalloc(sizeof(*t)); - yaz_timing_start(t); - return t; -} - -#ifdef WIN32 -static void get_process_time(ULONGLONG *lp_user, ULONGLONG *lp_sys) -{ - FILETIME create_t, exit_t, sys_t, user_t; - ULARGE_INTEGER li; - - GetProcessTimes(GetCurrentProcess(), &create_t, &exit_t, &sys_t, &user_t); - li.LowPart = user_t.dwLowDateTime; - li.HighPart = user_t.dwHighDateTime; - *lp_user = li.QuadPart; - - li.LowPart = sys_t.dwLowDateTime; - li.HighPart = sys_t.dwHighDateTime; - *lp_sys = li.QuadPart; -} -static void get_date_as_largeinteger(LONGLONG *lp) -{ - FILETIME f; - ULARGE_INTEGER li; - GetSystemTimeAsFileTime(&f); - li.LowPart = f.dwLowDateTime; - li.HighPart = f.dwHighDateTime; - - *lp = li.QuadPart; -} -#endif - -void yaz_timing_start(yaz_timing_t t) -{ -#if HAVE_SYS_TIMES_H - times(&t->tms1); - t->user_sec = 0.0; - t->sys_sec = 0.0; -#else - t->user_sec = -1.0; - t->sys_sec = -1.0; -#endif - t->real_sec = -1.0; -#if HAVE_SYS_TIME_H - gettimeofday(&t->start_time, 0); - t->real_sec = 0.0; -#endif -#ifdef WIN32 - t->real_sec = 0.0; - t->user_sec = 0.0; - t->sys_sec = 0.0; - get_date_as_largeinteger(&t->start_time); - get_process_time(&t->start_time_user, &t->start_time_sys); -#endif -} - -void yaz_timing_stop(yaz_timing_t t) -{ -#if HAVE_SYS_TIMES_H - times(&t->tms2); - - t->user_sec = (double) (t->tms2.tms_utime - t->tms1.tms_utime)/100; - t->sys_sec = (double) (t->tms2.tms_stime - t->tms1.tms_stime)/100; -#endif -#if HAVE_SYS_TIME_H - gettimeofday(&t->end_time, 0); - t->real_sec = ((t->end_time.tv_sec - t->start_time.tv_sec) * 1000000.0 + - t->end_time.tv_usec - t->start_time.tv_usec) / 1000000; - -#endif -#ifdef WIN32 - get_date_as_largeinteger(&t->end_time); - t->real_sec = (t->end_time - t->start_time) / 10000000.0; - - get_process_time(&t->end_time_user, &t->end_time_sys); - t->user_sec = (t->end_time_user - t->start_time_user) / 10000000.0; - t->sys_sec = (t->end_time_sys - t->start_time_sys) / 10000000.0; -#endif -} - -double yaz_timing_get_real(yaz_timing_t t) -{ - return t->real_sec; -} - -double yaz_timing_get_user(yaz_timing_t t) -{ - return t->user_sec; -} - -double yaz_timing_get_sys(yaz_timing_t t) -{ - return t->sys_sec; -} - -void yaz_timing_destroy(yaz_timing_t *tp) -{ - if (*tp) - { - xfree(*tp); - *tp = 0; - } -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/tokenizer.c b/dependencies/yaz_3.0.14/src/tokenizer.c deleted file mode 100644 index 2318ca9..0000000 --- a/dependencies/yaz_3.0.14/src/tokenizer.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tokenizer.c,v 1.4 2007/05/16 10:47:49 adam Exp $ - */ - -/** - * \file tokenizer.c - * \brief Simple tokenizer system. - */ - -#include -#include -#include -#include -#include -#include -#include - -struct yaz_tok_parse { - int unget_byte; - WRBUF wr_string; - int look; - - yaz_tok_cfg_t cfg; - yaz_tok_get_byte_t get_byte_func; - void *get_byte_data; -}; - -struct yaz_tok_cfg { - int ref_count; - char *comment; - char *white_space; - char *single_tokens; - char *quote_tokens_begin; - char *quote_tokens_end; -}; - -void yaz_tok_cfg_single_tokens(yaz_tok_cfg_t t, const char *simple) -{ - xfree(t->single_tokens); - t->single_tokens = xstrdup(simple); -} - -yaz_tok_cfg_t yaz_tok_cfg_create(void) -{ - yaz_tok_cfg_t t = (yaz_tok_cfg_t) xmalloc(sizeof(*t)); - t->white_space = xstrdup(" \t\r\n"); - t->single_tokens = xstrdup(""); - t->quote_tokens_begin = xstrdup("\""); - t->quote_tokens_end = xstrdup("\""); - t->comment = xstrdup("#"); - t->ref_count = 1; - return t; -} - -void yaz_tok_cfg_destroy(yaz_tok_cfg_t t) -{ - t->ref_count--; - if (t->ref_count == 0) - { - xfree(t->white_space); - xfree(t->single_tokens); - xfree(t->quote_tokens_begin); - xfree(t->quote_tokens_end); - xfree(t->comment); - xfree(t); - } -} - -static int read_buf(void **vp) -{ - const char *cp = *(const char **) vp; - int ch = *cp; - if (ch) - { - cp++; - *(const char **)vp = cp; - } - return ch; -} - -yaz_tok_parse_t yaz_tok_parse_buf(yaz_tok_cfg_t t, const char *buf) -{ - return yaz_tok_parse_create(t, read_buf, (void *) buf); -} - -static int get_byte(yaz_tok_parse_t tp) -{ - int ch = tp->unget_byte; - assert(tp->get_byte_func); - if (ch) - tp->unget_byte = 0; - else - ch = tp->get_byte_func(&tp->get_byte_data); - return ch; -} - -static void unget_byte(yaz_tok_parse_t tp, int ch) -{ - tp->unget_byte = ch; -} - -yaz_tok_parse_t yaz_tok_parse_create(yaz_tok_cfg_t t, - yaz_tok_get_byte_t h, - void *vp) -{ - yaz_tok_parse_t tp = (yaz_tok_parse_t) xmalloc(sizeof(*tp)); - - tp->cfg = t; - tp->cfg->ref_count++; - tp->get_byte_func = h; - tp->get_byte_data = vp; - - tp->look = YAZ_TOK_ERROR; - tp->unget_byte = 0; - - tp->wr_string = wrbuf_alloc(); - return tp; -} - - -void yaz_tok_parse_destroy(yaz_tok_parse_t tp) -{ - yaz_tok_cfg_destroy(tp->cfg); - wrbuf_destroy(tp->wr_string); - xfree(tp); -} - -int yaz_tok_move(yaz_tok_parse_t tp) -{ - yaz_tok_cfg_t t = tp->cfg; - const char *cp; - int ch = get_byte(tp); - - /* skip white space */ - while (ch && strchr(t->white_space, ch)) - ch = get_byte(tp); - if (!ch) - ch = YAZ_TOK_EOF; - else if (strchr(t->comment, ch)) - ch = YAZ_TOK_EOF; - else if ((cp = strchr(t->single_tokens, ch))) - ch = *cp; /* single token match */ - else if ((cp = strchr(t->quote_tokens_begin, ch))) - { /* quoted string */ - int end_ch = t->quote_tokens_end[cp - t->quote_tokens_begin]; - ch = get_byte(tp); - wrbuf_rewind(tp->wr_string); - while (ch && ch != end_ch) - wrbuf_putc(tp->wr_string, ch); - if (!ch) - ch = YAZ_TOK_ERROR; - else - ch = YAZ_TOK_QSTRING; - } - else - { /* unquoted string */ - wrbuf_rewind(tp->wr_string); - while (ch && !strchr(t->white_space, ch) - && !strchr(t->single_tokens, ch) - && !strchr(t->comment, ch)) - { - wrbuf_putc(tp->wr_string, ch); - ch = get_byte(tp); - } - unget_byte(tp, ch); - ch = YAZ_TOK_STRING; - } - tp->look = ch; - return ch; -} - -const char *yaz_tok_parse_string(yaz_tok_parse_t tp) -{ - return wrbuf_cstr(tp->wr_string); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/tpath.c b/dependencies/yaz_3.0.14/src/tpath.c deleted file mode 100644 index 874639d..0000000 --- a/dependencies/yaz_3.0.14/src/tpath.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tpath.c,v 1.13 2007/01/03 08:42:15 adam Exp $ - */ -/** - * \file tpath.c - * \brief File Path utilities - */ - -#if HAVE_CONFIG_H -#include -#endif - - -#include -#include -#include -#include -#include -#include -#include -#if HAVE_UNISTD_H -#include -#endif - -FILE *yaz_path_fopen(const char *path, const char *name, const char *mode) -{ - return yaz_fopen (path, name, mode, 0); -} - -int yaz_fclose (FILE *f) -{ - return fclose (f); -} - - -size_t yaz_filepath_comp(const char **path_p, const char **comp) -{ - const char *path = *path_p; - size_t len; - const char *path_sep; - - /* somewhat dirty since we have to consider Windows - * drive letters.. - */ - if (path[0] && strchr ("/\\.", path[0])) - path_sep = strchr (path+1, ':'); - else if (path[0] && path[1]) - path_sep = strchr (path+2, ':'); - else - path_sep = 0; - - if (path_sep) - { - len = path_sep - path; - *path_p = path + len + 1; - } - else - { - len = strlen(path); - *path_p = path + len; - } - *comp = path; - return len; -} - -char *yaz_filepath_resolve(const char *fname, const char *path, - const char *base, char *fullpath) -{ - for(;;) - { - struct stat stat_buf; - size_t slen = 0; - - *fullpath = '\0'; - if (path) - { - const char *comp; - size_t len = 0; - - len = yaz_filepath_comp(&path, &comp); - if (!len) - break; - - if (!strchr ("/\\", *comp) && base) - { - /* yes: make base the first part */ - strcpy (fullpath, base); - slen = strlen(fullpath); - fullpath[slen++] = '/'; - } - memcpy (fullpath+slen, comp, len); - slen += len; - if (slen > 0 && !strchr("/\\", fullpath[slen-1])) - fullpath[slen++] = '/'; - } - strcpy (fullpath+slen, fname); - if (stat(fullpath, &stat_buf) == 0) - return fullpath; - if (!path) - break; - } - return 0; -} - -FILE *yaz_fopen(const char *path, const char *fname, const char *mode, - const char *base) -{ - char fullpath[1024]; - - if (!yaz_filepath_resolve(fname, path, base, fullpath)) - return 0; /* failure */ - return fopen(fullpath, mode); -} - -int yaz_is_abspath (const char *p) -{ - if (*p == '/') - return 1; -#ifdef WIN32 - if (*p == '\\') - return 1; - if (*p && p[1] == ':' && isalpha(*p)) - return 1; -#endif - return 0; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/univres.asn b/dependencies/yaz_3.0.14/src/univres.asn deleted file mode 100644 index f83320d..0000000 --- a/dependencies/yaz_3.0.14/src/univres.asn +++ /dev/null @@ -1,23 +0,0 @@ -ResourceReport-Format-Universe-1 -{Z39-50-resourceReport universe-1 (1000)} DEFINITIONS ::= -BEGIN -IMPORTS StringOrNumeric FROM Z39-50-APDU-1995; --- - -UniverseReportHits ::= SEQUENCE { - database StringOrNumeric, - hits StringOrNumeric -} - -UniverseReportDuplicate ::= SEQUENCE { - hitno StringOrNumeric -} - -UniverseReport ::= SEQUENCE { - totalHits INTEGER, - report CHOICE { - databaseHits [0] IMPLICIT UniverseReportHits, - duplicate [1] IMPLICIT UniverseReportDuplicate - } -} -END diff --git a/dependencies/yaz_3.0.14/src/unix.c b/dependencies/yaz_3.0.14/src/unix.c deleted file mode 100644 index 9d7e73c..0000000 --- a/dependencies/yaz_3.0.14/src/unix.c +++ /dev/null @@ -1,748 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: unix.c,v 1.19 2007/06/05 05:42:07 adam Exp $ - * UNIX socket COMSTACK. By Morten Bøgeskov. - */ -/** - * \file unix.c - * \brief Implements UNIX domain socket COMSTACK - */ - -#ifndef WIN32 - -#include -#include -#include -#include -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_UNISTD_H -#include -#endif -#if HAVE_SYS_SOCKET_H -#include -#endif -#include -#include - -#include -#if HAVE_PWD_H -#include -#endif - -#if HAVE_SYS_STAT_H -#include -#endif -#if HAVE_SYS_UN_H -#include -#endif - -#include -#include - -#ifndef YAZ_SOCKLEN_T -#define YAZ_SOCKLEN_T int -#endif - -/* stat(2) masks: S_IFMT and S_IFSOCK may not be defined in gcc -ansi mode */ -#if __STRICT_ANSI__ -#ifndef S_IFSOCK -#define S_IFMT 0170000 -#define S_IFSOCK 0140000 -#endif -#endif - -static int unix_close(COMSTACK h); -static int unix_put(COMSTACK h, char *buf, int size); -static int unix_get(COMSTACK h, char **buf, int *bufsize); -static int unix_connect(COMSTACK h, void *address); -static int unix_more(COMSTACK h); -static int unix_rcvconnect(COMSTACK h); -static int unix_bind(COMSTACK h, void *address, int mode); -static int unix_listen(COMSTACK h, char *raddr, int *addrlen, - int (*check_ip)(void *cd, const char *a, int len, int type), - void *cd); -static int unix_set_blocking(COMSTACK p, int blocking); - -static COMSTACK unix_accept(COMSTACK h); -static char *unix_addrstr(COMSTACK h); -static void *unix_straddr(COMSTACK h, const char *str); - -#ifndef SUN_LEN -#define SUN_LEN(ptr) ((size_t) (((struct sockaddr_un *) 0)->sun_path) \ - + strlen ((ptr)->sun_path)) -#endif -#if 0 -#define TRC(x) x -#else -#define TRC(X) -#endif - -/* this state is used for both SSL and straight TCP/IP */ -typedef struct unix_state -{ - char *altbuf; /* alternate buffer for surplus data */ - int altsize; /* size as xmalloced */ - int altlen; /* length of data or 0 if none */ - - int written; /* -1 if we aren't writing */ - int towrite; /* to verify against user input */ - int (*complete)(const unsigned char *buf, int len); /* length/comple. */ - struct sockaddr_un addr; /* returned by cs_straddr */ - int uid; - int gid; - int umask; - char buf[128]; /* returned by cs_addrstr */ -} unix_state; - -static int unix_init (void) -{ - return 1; -} - -/* - * This function is always called through the cs_create() macro. - * s >= 0: socket has already been established for us. - */ -COMSTACK unix_type(int s, int flags, int protocol, void *vp) -{ - COMSTACK p; - unix_state *state; - int new_socket; - - if (!unix_init ()) - return 0; - if (s < 0) - { - if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) - return 0; - new_socket = 1; - } - else - new_socket = 0; - if (!(p = (struct comstack *)xmalloc(sizeof(struct comstack)))) - return 0; - if (!(state = (struct unix_state *)(p->cprivate = - xmalloc(sizeof(unix_state))))) - return 0; - - p->flags = flags; - if (!(p->flags&CS_FLAGS_BLOCKING)) - { - if (fcntl(s, F_SETFL, O_NONBLOCK) < 0) - return 0; -#ifndef MSG_NOSIGNAL - signal (SIGPIPE, SIG_IGN); -#endif - } - - p->io_pending = 0; - p->iofile = s; - p->type = unix_type; - p->protocol = (enum oid_proto) protocol; - - p->f_connect = unix_connect; - p->f_rcvconnect = unix_rcvconnect; - p->f_get = unix_get; - p->f_put = unix_put; - p->f_close = unix_close; - p->f_more = unix_more; - p->f_bind = unix_bind; - p->f_listen = unix_listen; - p->f_accept = unix_accept; - p->f_addrstr = unix_addrstr; - p->f_straddr = unix_straddr; - p->f_set_blocking = unix_set_blocking; - - p->state = new_socket ? CS_ST_UNBND : CS_ST_IDLE; /* state of line */ - p->event = CS_NONE; - p->cerrno = 0; - p->stackerr = 0; - p->user = 0; - - state->altbuf = 0; - state->altsize = state->altlen = 0; - state->towrite = state->written = -1; - if (protocol == PROTO_WAIS) - state->complete = completeWAIS; - else - state->complete = cs_complete_auto; - - p->timeout = COMSTACK_DEFAULT_TIMEOUT; - TRC(fprintf(stderr, "Created new UNIX comstack\n")); - - return p; -} - - -static int unix_strtoaddr_ex(const char *str, struct sockaddr_un *add) -{ - char *cp; - if (!unix_init ()) - return 0; - TRC(fprintf(stderr, "unix_strtoaddress: %s\n", str ? str : "NULL")); - add->sun_family = AF_UNIX; - strncpy(add->sun_path, str, sizeof(add->sun_path)-1); - add->sun_path[sizeof(add->sun_path)-1] = 0; - cp = strchr (add->sun_path, ':'); - if (cp) - *cp = '\0'; - return 1; -} - -static void *unix_straddr1(COMSTACK h, const char *str, char *f) -{ - unix_state *sp = (unix_state *)h->cprivate; - char * s = f; - const char * file = NULL; - char * eol; - - sp->uid = sp->gid = sp->umask = -1; - - if ((eol = strchr(s, ','))) - { - do - { - if ((eol = strchr(s, ','))) - *eol++ = '\0'; - if (sp->uid == -1 && strncmp(s, "user=", 5) == 0) - { - char * arg = s + 5; - if (strspn(arg, "0123456789") == strlen(arg)) - { - sp->uid = atoi(arg); - } - else - { - struct passwd * pw = getpwnam(arg); - if(pw == NULL) - { - printf("No such user\n"); - return 0; - } - sp->uid = pw->pw_uid; - } - } - else if (sp->gid == -1 && strncmp(s, "group=", 6) == 0) - { - char * arg = s + 6; - if (strspn(arg, "0123456789") == strlen(arg)) - { - sp->gid = atoi(arg); - } - else - { - struct group * gr = getgrnam(arg); - if (gr == NULL) - { - printf("No such group\n"); - return 0; - } - sp->gid = gr->gr_gid; - } - } - else if (sp->umask == -1 && strncmp(s, "umask=", 6) == 0) - { - char * end; - char * arg = s + 6; - - sp->umask = strtol(arg, &end, 8); - if (errno == EINVAL || - *end) - { - printf("Invalid umask\n"); - return 0; - } - } - else if (file == NULL && strncmp(s, "file=", 5) == 0) - { - char * arg = s + 5; - file = arg; - } - else - { - printf("invalid or double argument: %s\n", s); - return 0; - } - } while((s = eol)); - } - else - { - file = str; - } - if(! file) - { - errno = EINVAL; - return 0; - } - - TRC(fprintf(stderr, "unix_straddr: %s\n", str ? str : "NULL")); - - if (!unix_strtoaddr_ex (file, &sp->addr)) - return 0; - return &sp->addr; -} - -static void *unix_straddr(COMSTACK h, const char *str) -{ - char *f = xstrdup(str); - void *vp = unix_straddr1(h, str, f); - xfree(f); - return vp; -} - -struct sockaddr_un *unix_strtoaddr(const char *str) -{ - static struct sockaddr_un add; - - TRC(fprintf(stderr, "unix_strtoaddr: %s\n", str ? str : "NULL")); - - if (!unix_strtoaddr_ex (str, &add)) - return 0; - return &add; -} - -static int unix_more(COMSTACK h) -{ - unix_state *sp = (unix_state *)h->cprivate; - - return sp->altlen && (*sp->complete)((unsigned char *) sp->altbuf, - sp->altlen); -} - -/* - * connect(2) will block (sometimes) - nothing we can do short of doing - * weird things like spawning subprocesses or threading or some weird junk - * like that. - */ -static int unix_connect(COMSTACK h, void *address) -{ - struct sockaddr_un *add = (struct sockaddr_un *)address; - int r; - int i; - - TRC(fprintf(stderr, "unix_connect\n")); - h->io_pending = 0; - if (h->state != CS_ST_UNBND) - { - h->cerrno = CSOUTSTATE; - return -1; - } - for (i = 0; i<3; i++) - { - r = connect(h->iofile, (struct sockaddr *) add, SUN_LEN(add)); - if (r < 0 && yaz_errno() == EAGAIN) - { -#if HAVE_USLEEP - usleep(i*10000+1000); /* 1ms, 11ms, 21ms */ -#else - sleep(1); -#endif - continue; - } - else - break; - } - if (r < 0) - { - if (yaz_errno() == EINPROGRESS) - { - h->event = CS_CONNECT; - h->state = CS_ST_CONNECTING; - h->io_pending = CS_WANT_WRITE; - return 1; - } - h->cerrno = CSYSERR; - return -1; - } - h->event = CS_CONNECT; - h->state = CS_ST_CONNECTING; - - return unix_rcvconnect (h); -} - -/* - * nop - */ -static int unix_rcvconnect(COMSTACK h) -{ - TRC(fprintf(stderr, "unix_rcvconnect\n")); - - if (h->state == CS_ST_DATAXFER) - return 0; - if (h->state != CS_ST_CONNECTING) - { - h->cerrno = CSOUTSTATE; - return -1; - } - h->event = CS_DATA; - h->state = CS_ST_DATAXFER; - return 0; -} - -static int unix_bind(COMSTACK h, void *address, int mode) -{ - unix_state *sp = (unix_state *)h->cprivate; - struct sockaddr *addr = (struct sockaddr *)address; - const char * path = ((struct sockaddr_un *)addr)->sun_path; - struct stat stat_buf; - - TRC (fprintf (stderr, "unix_bind\n")); - - if(stat(path, &stat_buf) != -1) { - struct sockaddr_un socket_unix; - int socket_out = -1; - - if((stat_buf.st_mode&S_IFMT) != S_IFSOCK) { /* used to be S_ISSOCK */ - h->cerrno = CSYSERR; - yaz_set_errno(EEXIST); /* Not a socket (File exists) */ - return -1; - } - if((socket_out = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { - h->cerrno = CSYSERR; - return -1; - } - socket_unix.sun_family = AF_UNIX; - strncpy(socket_unix.sun_path, path, sizeof(socket_unix.sun_path)-1); - socket_unix.sun_path[sizeof(socket_unix.sun_path)-1] = 0; - if(connect(socket_out, (struct sockaddr *) &socket_unix, SUN_LEN(&socket_unix)) < 0) { - if(yaz_errno() == ECONNREFUSED) { - TRC (fprintf (stderr, "Socket exists but nobody is listening\n")); - } else { - h->cerrno = CSYSERR; - return -1; - } - } else { - close(socket_out); - h->cerrno = CSYSERR; - yaz_set_errno(EADDRINUSE); - return -1; - } - unlink(path); - } - - if (bind(h->iofile, (struct sockaddr *) addr, SUN_LEN((struct sockaddr_un *)addr))) - { - h->cerrno = CSYSERR; - return -1; - } - chown(path, sp->uid, sp->gid); - chmod(path, sp->umask != -1 ? sp->umask : 0666); - if (mode == CS_SERVER && listen(h->iofile, 100) < 0) - { - h->cerrno = CSYSERR; - return -1; - } - h->state = CS_ST_IDLE; - h->event = CS_LISTEN; - return 0; -} - -static int unix_listen(COMSTACK h, char *raddr, int *addrlen, - int (*check_ip)(void *cd, const char *a, int len, int t), - void *cd) -{ - struct sockaddr_un addr; - YAZ_SOCKLEN_T len = sizeof(addr); - - TRC(fprintf(stderr, "unix_listen pid=%d\n", getpid())); - if (h->state != CS_ST_IDLE) - { - h->cerrno = CSOUTSTATE; - return -1; - } - h->newfd = accept(h->iofile, (struct sockaddr*)&addr, &len); - if (h->newfd < 0) - { - if ( - yaz_errno() == EWOULDBLOCK -#ifdef EAGAIN -#if EAGAIN != EWOULDBLOCK - || yaz_errno() == EAGAIN -#endif -#endif - ) - h->cerrno = CSNODATA; - else - h->cerrno = CSYSERR; - return -1; - } - if (addrlen && (size_t) (*addrlen) >= sizeof(struct sockaddr_un)) - memcpy(raddr, &addr, *addrlen = sizeof(struct sockaddr_un)); - else if (addrlen) - *addrlen = 0; - h->state = CS_ST_INCON; - return 0; -} - -static COMSTACK unix_accept(COMSTACK h) -{ - COMSTACK cnew; - unix_state *state, *st = (unix_state *)h->cprivate; - - TRC(fprintf(stderr, "unix_accept\n")); - if (h->state == CS_ST_INCON) - { - if (!(cnew = (COMSTACK)xmalloc(sizeof(*cnew)))) - { - h->cerrno = CSYSERR; - close(h->newfd); - h->newfd = -1; - return 0; - } - memcpy(cnew, h, sizeof(*h)); - cnew->iofile = h->newfd; - cnew->io_pending = 0; - if (!(state = (unix_state *) - (cnew->cprivate = xmalloc(sizeof(unix_state))))) - { - h->cerrno = CSYSERR; - if (h->newfd != -1) - { - close(h->newfd); - h->newfd = -1; - } - return 0; - } - if (!(cnew->flags&CS_FLAGS_BLOCKING) && - (fcntl(cnew->iofile, F_SETFL, O_NONBLOCK) < 0) - ) - { - h->cerrno = CSYSERR; - if (h->newfd != -1) - { - close(h->newfd); - h->newfd = -1; - } - xfree (cnew); - xfree (state); - return 0; - } - h->newfd = -1; - state->altbuf = 0; - state->altsize = state->altlen = 0; - state->towrite = state->written = -1; - state->complete = st->complete; - memcpy(&state->addr, &st->addr, sizeof(state->addr)); - cnew->state = CS_ST_ACCEPT; - cnew->event = CS_NONE; - h->state = CS_ST_IDLE; - - h = cnew; - } - if (h->state == CS_ST_ACCEPT) - { - } - else - { - h->cerrno = CSOUTSTATE; - return 0; - } - h->io_pending = 0; - h->state = CS_ST_DATAXFER; - h->event = CS_DATA; - return h; -} - -#define CS_UNIX_BUFCHUNK 4096 - -/* - * Return: -1 error, >1 good, len of buffer, ==1 incomplete buffer, - * 0=connection closed. - */ -static int unix_get(COMSTACK h, char **buf, int *bufsize) -{ - unix_state *sp = (unix_state *)h->cprivate; - char *tmpc; - int tmpi, berlen, rest, req, tomove; - int hasread = 0, res; - - TRC(fprintf(stderr, "unix_get: bufsize=%d\n", *bufsize)); - if (sp->altlen) /* switch buffers */ - { - TRC(fprintf(stderr, " %d bytes in altbuf (0x%x)\n", sp->altlen, - (unsigned) sp->altbuf)); - tmpc = *buf; - tmpi = *bufsize; - *buf = sp->altbuf; - *bufsize = sp->altsize; - hasread = sp->altlen; - sp->altlen = 0; - sp->altbuf = tmpc; - sp->altsize = tmpi; - } - h->io_pending = 0; - while (!(berlen = (*sp->complete)((unsigned char *)*buf, hasread))) - { - if (!*bufsize) - { - if (!(*buf = (char *)xmalloc(*bufsize = CS_UNIX_BUFCHUNK))) - return -1; - } - else if (*bufsize - hasread < CS_UNIX_BUFCHUNK) - if (!(*buf =(char *)xrealloc(*buf, *bufsize *= 2))) - return -1; - res = recv(h->iofile, *buf + hasread, CS_UNIX_BUFCHUNK, 0); - TRC(fprintf(stderr, " recv res=%d, hasread=%d\n", res, hasread)); - if (res < 0) - { - if (yaz_errno() == EWOULDBLOCK -#ifdef EAGAIN -#if EAGAIN != EWOULDBLOCK - || yaz_errno() == EAGAIN -#endif -#endif - || yaz_errno() == EINPROGRESS - ) - { - h->io_pending = CS_WANT_READ; - break; - } - else if (yaz_errno() == 0) - continue; - else - return -1; - } - else if (!res) - return hasread; - hasread += res; - } - TRC (fprintf (stderr, " Out of read loop with hasread=%d, berlen=%d\n", - hasread, berlen)); - /* move surplus buffer (or everything if we didn't get a BER rec.) */ - if (hasread > berlen) - { - tomove = req = hasread - berlen; - rest = tomove % CS_UNIX_BUFCHUNK; - if (rest) - req += CS_UNIX_BUFCHUNK - rest; - if (!sp->altbuf) - { - if (!(sp->altbuf = (char *)xmalloc(sp->altsize = req))) - return -1; - } else if (sp->altsize < req) - if (!(sp->altbuf =(char *)xrealloc(sp->altbuf, sp->altsize = req))) - return -1; - TRC(fprintf(stderr, " Moving %d bytes to altbuf(0x%x)\n", tomove, - (unsigned) sp->altbuf)); - memcpy(sp->altbuf, *buf + berlen, sp->altlen = tomove); - } - if (berlen < CS_UNIX_BUFCHUNK - 1) - *(*buf + berlen) = '\0'; - return berlen ? berlen : 1; -} - - - -/* - * Returns 1, 0 or -1 - * In nonblocking mode, you must call again with same buffer while - * return value is 1. - */ -static int unix_put(COMSTACK h, char *buf, int size) -{ - int res; - struct unix_state *state = (struct unix_state *)h->cprivate; - - TRC(fprintf(stderr, "unix_put: size=%d\n", size)); - h->io_pending = 0; - h->event = CS_DATA; - if (state->towrite < 0) - { - state->towrite = size; - state->written = 0; - } - else if (state->towrite != size) - { - h->cerrno = CSWRONGBUF; - return -1; - } - while (state->towrite > state->written) - { - if ((res = - send(h->iofile, buf + state->written, size - - state->written, -#ifdef MSG_NOSIGNAL - MSG_NOSIGNAL -#else - 0 -#endif - )) < 0) - { - if ( - yaz_errno() == EWOULDBLOCK -#ifdef EAGAIN -#if EAGAIN != EWOULDBLOCK - || yaz_errno() == EAGAIN -#endif -#endif - ) - { - TRC(fprintf(stderr, " Flow control stop\n")); - h->io_pending = CS_WANT_WRITE; - return 1; - } - h->cerrno = CSYSERR; - return -1; - } - state->written += res; - TRC(fprintf(stderr, " Wrote %d, written=%d, nbytes=%d\n", - res, state->written, size)); - } - state->towrite = state->written = -1; - TRC(fprintf(stderr, " Ok\n")); - return 0; -} - -static int unix_close(COMSTACK h) -{ - unix_state *sp = (struct unix_state *)h->cprivate; - - TRC(fprintf(stderr, "unix_close\n")); - if (h->iofile != -1) - { - close(h->iofile); - } - if (sp->altbuf) - xfree(sp->altbuf); - xfree(sp); - xfree(h); - return 0; -} - -static char *unix_addrstr(COMSTACK h) -{ - unix_state *sp = (struct unix_state *)h->cprivate; - char *buf = sp->buf; - sprintf(buf, "unix:%s", sp->addr.sun_path); - return buf; -} - -static int unix_set_blocking(COMSTACK p, int flags) -{ - unsigned long flag; - - if (p->flags == flags) - return 1; - flag = fcntl(p->iofile, F_GETFL, 0); - if (flags & CS_FLAGS_BLOCKING) - flag = flag & ~O_NONBLOCK; - else - flag = flag | O_NONBLOCK; - if (fcntl(p->iofile, F_SETFL, flag) < 0) - return 0; - p->flags = flags; - return 1; -} -#endif /* WIN32 */ -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/version.c b/dependencies/yaz_3.0.14/src/version.c deleted file mode 100644 index 215c863..0000000 --- a/dependencies/yaz_3.0.14/src/version.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: version.c,v 1.6 2007/01/13 08:57:47 adam Exp $ - */ - -/** - * \file version.c - * \brief Implements YAZ version utilities. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include - -unsigned long yaz_version(char *version_str, char *sys_str) -{ - if (version_str) - strcpy(version_str, YAZ_VERSION); - if (sys_str) - strcpy(sys_str, ""); - return YAZ_VERSIONL; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/waislen.c b/dependencies/yaz_3.0.14/src/waislen.c deleted file mode 100644 index 2eb0810..0000000 --- a/dependencies/yaz_3.0.14/src/waislen.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: waislen.c,v 1.5 2007/01/03 08:42:15 adam Exp $ - */ -/** - * \file waislen.c - * \brief Implements WAIS package handling - */ - -#include -#include -#include -/* - * Return length of WAIS package or 0 - */ -int completeWAIS(const unsigned char *buf, int len) -{ - int i, lval = 0; - - if (len < 25) - return 0; - if (*buf != '0') - return 0; - /* calculate length */ - for (i = 0; i < 10; i++) - lval = lval * 10 + (buf[i] - '0'); - lval += 25; - if (len >= lval) - return lval; - return 0; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/wrbuf.c b/dependencies/yaz_3.0.14/src/wrbuf.c deleted file mode 100644 index 75ca93b..0000000 --- a/dependencies/yaz_3.0.14/src/wrbuf.c +++ /dev/null @@ -1,260 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: wrbuf.c,v 1.20 2007/09/17 19:14:26 adam Exp $ - */ - -/** - * \file wrbuf.c - * \brief Implements WRBUF (growing buffer) - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include -#include -#include - -WRBUF wrbuf_alloc(void) -{ - WRBUF n; - - if (!(n = (WRBUF)xmalloc(sizeof(*n)))) - abort(); - n->buf = 0; - n->size = 0; - n->pos = 0; - return n; -} - -void wrbuf_destroy(WRBUF b) -{ - xfree(b->buf); - xfree(b); -} - -void wrbuf_rewind(WRBUF b) -{ - b->pos = 0; -} - -int wrbuf_grow(WRBUF b, int minsize) -{ - int togrow; - - if (!b->size) - togrow = 1024; - else - togrow = b->size; - if (togrow < minsize) - togrow = minsize; - if (b->size && !(b->buf =(char *)xrealloc(b->buf, b->size += togrow))) - abort(); - else if (!b->size && !(b->buf = (char *)xmalloc(b->size = togrow))) - abort(); - return 0; -} - -int wrbuf_write(WRBUF b, const char *buf, int size) -{ - if (size <= 0) - return 0; - if (b->pos + size >= b->size) - wrbuf_grow(b, size); - memcpy(b->buf + b->pos, buf, size); - b->pos += size; - return 0; -} - -int wrbuf_puts(WRBUF b, const char *buf) -{ - wrbuf_write(b, buf, strlen(buf)); - return 0; -} - -int wrbuf_puts_replace_char(WRBUF b, const char *buf, - const char from, const char to) -{ - while(*buf) - { - if (*buf == from) - wrbuf_putc(b, to); - else - wrbuf_putc(b, *buf); - buf++; - } - return 0; -} - -void wrbuf_chop_right(WRBUF b) -{ - while (b->pos && b->buf[b->pos-1] == ' ') - { - (b->pos)--; - } -} - -int wrbuf_xmlputs(WRBUF b, const char *cp) -{ - return wrbuf_xmlputs_n(b, cp, strlen(cp)); -} - -int wrbuf_xmlputs_n(WRBUF b, const char *cp, int size) -{ - while (--size >= 0) - { - /* only TAB,CR,LF of ASCII CTRL are allowed in XML 1.0! */ - if (*cp >= 0 && *cp <= 31) - if (*cp != 9 && *cp != 10 && *cp != 13) - { - cp++; /* we silently ignore (delete) these.. */ - continue; - } - switch(*cp) - { - case '<': - wrbuf_puts(b, "<"); - break; - case '>': - wrbuf_puts(b, ">"); - break; - case '&': - wrbuf_puts(b, "&"); - break; - case '"': - wrbuf_puts(b, """); - break; - case '\'': - wrbuf_puts(b, "'"); - break; - default: - wrbuf_putc(b, *cp); - } - cp++; - } - return 0; -} - -void wrbuf_printf(WRBUF b, const char *fmt, ...) -{ - va_list ap; - char buf[4096]; - - va_start(ap, fmt); - yaz_vsnprintf(buf, sizeof(buf)-1, fmt, ap); - wrbuf_puts (b, buf); - - va_end(ap); -} - -static int wrbuf_iconv_write_x(WRBUF b, yaz_iconv_t cd, const char *buf, - int size, int cdata) -{ - if (cd) - { - char outbuf[12]; - size_t inbytesleft = size; - const char *inp = buf; - while (inbytesleft) - { - size_t outbytesleft = sizeof(outbuf); - char *outp = outbuf; - size_t r = yaz_iconv(cd, (char**) &inp, &inbytesleft, - &outp, &outbytesleft); - if (r == (size_t) (-1)) - { - int e = yaz_iconv_error(cd); - if (e != YAZ_ICONV_E2BIG) - break; - } - if (cdata) - wrbuf_xmlputs_n(b, outbuf, outp - outbuf); - else - wrbuf_write(b, outbuf, outp - outbuf); - } - } - else - { - if (cdata) - wrbuf_xmlputs_n(b, buf, size); - else - wrbuf_write(b, buf, size); - } - return wrbuf_len(b); -} - -int wrbuf_iconv_write(WRBUF b, yaz_iconv_t cd, const char *buf, int size) -{ - return wrbuf_iconv_write_x(b, cd, buf, size, 0); -} - -int wrbuf_iconv_puts(WRBUF b, yaz_iconv_t cd, const char *strz) -{ - return wrbuf_iconv_write(b, cd, strz, strlen(strz)); -} - -int wrbuf_iconv_putchar(WRBUF b, yaz_iconv_t cd, int ch) -{ - char buf[1]; - buf[0] = ch; - return wrbuf_iconv_write(b, cd, buf, 1); -} - -int wrbuf_iconv_write_cdata(WRBUF b, yaz_iconv_t cd, const char *buf, int size) -{ - return wrbuf_iconv_write_x(b, cd, buf, size, 1); -} - -void wrbuf_iconv_reset(WRBUF b, yaz_iconv_t cd) -{ - if (cd) - { - char outbuf[12]; - size_t outbytesleft = sizeof(outbuf); - char *outp = outbuf; - size_t r = yaz_iconv(cd, 0, 0, &outp, &outbytesleft); - if (r != (size_t) (-1)) - wrbuf_write(b, outbuf, outp - outbuf); - } -} - -const char *wrbuf_cstr(WRBUF b) -{ - wrbuf_putc(b, '\0'); /* add '\0' */ - (b->pos)--; /* don't include '\0' in count */ - return b->buf; -} - -void wrbuf_cut_right(WRBUF b, size_t no_to_remove) -{ - if (no_to_remove > b->pos) - no_to_remove = b->pos; - b->pos = b->pos - no_to_remove; -} - -void wrbuf_verbose_str(WRBUF b, const char *str, size_t len) -{ - size_t i; - for (i = 0; i < len; i++) - if (str[i] < ' ' || str[i] > 126) - wrbuf_printf(b, "\\x%02X", str[i] & 0xff); - else - wrbuf_putc(b, str[i]); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/xcqlutil.c b/dependencies/yaz_3.0.14/src/xcqlutil.c deleted file mode 100644 index d52c493..0000000 --- a/dependencies/yaz_3.0.14/src/xcqlutil.c +++ /dev/null @@ -1,243 +0,0 @@ -/* $Id: xcqlutil.c,v 1.8 2007/06/28 07:58:07 adam Exp $ - Copyright (C) 1995-2007, Index Data ApS - Index Data Aps - -This file is part of the YAZ toolkit. - -See the file LICENSE. -*/ - -/** - * \file xcqlutil.c - * \brief Implements CQL to XCQL conversion. - */ - -#include -#include -#include - -#include - -static void pr_n(const char *buf, - void (*pr)(const char *buf, void *client_data), - void *client_data, int n) -{ - int i; - for (i = 0; i': - (*pr)(">", client_data); - break; - default: - bf[0] = *src; - bf[1] = 0; - (*pr)(bf, client_data); - } - src++; - } -} - -static void prefixes(struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data, int level) -{ - int head = 0; - if (cn->u.st.index_uri) - { - pr_n("\n", pr, client_data, level); - head = 1; - - pr_n("\n", pr, client_data, level+2); - pr_n("", pr, client_data, level+4); - pr_cdata(cn->u.st.index_uri, pr, client_data); - pr_n("\n", pr, client_data, 0); - pr_n("\n", pr, client_data, level+2); - } - if (cn->u.st.relation_uri && cn->u.st.relation) - { - if (!head) - pr_n("\n", pr, client_data, level); - pr_n("\n", pr, client_data, level+2); - pr_n("", pr, client_data, level+4); - pr_cdata("rel", pr, client_data); - pr_n("\n", pr, client_data, 0); - pr_n("", pr, client_data, level+4); - pr_cdata(cn->u.st.relation_uri, pr, client_data); - pr_n("\n", pr, client_data, 0); - pr_n("\n", pr, client_data, level+2); - } - if (head) - pr_n("\n", pr, client_data, level); -} - -static void cql_to_xml_mod(struct cql_node *m, - void (*pr)(const char *buf, void *client_data), - void *client_data, int level) -{ - if (m) - { - pr_n("\n", pr, client_data, level); - for (; m; m = m->u.st.modifiers) - { - pr_n("\n", pr, client_data, level+2); - pr_n("", pr, client_data, level+4); - pr_cdata(m->u.st.index, pr, client_data); - pr_n("\n", pr, client_data, 0); - if (m->u.st.relation) - { - pr_n("", pr, client_data, level+4); - pr_cdata(m->u.st.relation, pr, client_data); - pr_n("\n", pr, client_data, 0); - } - if (m->u.st.term) - { - pr_n("", pr, client_data, level+4); - pr_cdata(m->u.st.term, pr, client_data); - pr_n("\n", pr, client_data, 0); - } - pr_n("\n", pr, client_data, level+2); - } - pr_n("\n", pr, client_data, level); - } -} - -static void cql_to_xml_r(struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data, int level) -{ - if (!cn) - return; - switch (cn->which) - { - case CQL_NODE_ST: - pr_n("\n", pr, client_data, level); - prefixes(cn, pr, client_data, level+2); - if (cn->u.st.index) - { - pr_n("", pr, client_data, level+2); - pr_cdata(cn->u.st.index, pr, client_data); - pr_n("\n", pr, client_data, 0); - } - if (cn->u.st.relation) - { - pr_n("\n", pr, client_data, level+2); - pr_n("", pr, client_data, level+4); - if (cn->u.st.relation_uri) - pr_cdata("rel.", pr, client_data); - pr_cdata(cn->u.st.relation, pr, client_data); - pr_n("\n", pr, client_data, 0); - - if (cn->u.st.relation_uri) - { - pr_n("", pr, client_data, level+4); - pr_cdata(cn->u.st.relation_uri, pr, client_data); - pr_n("\n", pr, client_data, 0); - } - cql_to_xml_mod(cn->u.st.modifiers, - pr, client_data, level+4); - - pr_n("\n", pr, client_data, level+2); - } - if (cn->u.st.term) - { - pr_n("", pr, client_data, level+2); - pr_cdata(cn->u.st.term, pr, client_data); - pr_n("\n", pr, client_data, 0); - } - pr_n("\n", pr, client_data, level); - break; - case CQL_NODE_BOOL: - pr_n("\n", pr, client_data, level); - if (cn->u.boolean.value) - { - pr_n("\n", pr, client_data, level+2); - - pr_n("", pr, client_data, level+4); - pr_cdata(cn->u.boolean.value, pr, client_data); - pr_n("\n", pr, client_data, 0); - - cql_to_xml_mod(cn->u.boolean.modifiers, - pr, client_data, level+4); - - pr_n("\n", pr, client_data, level+2); - } - if (cn->u.boolean.left) - { - printf ("%*s\n", level+2, ""); - cql_to_xml_r(cn->u.boolean.left, pr, client_data, level+4); - printf ("%*s\n", level+2, ""); - } - if (cn->u.boolean.right) - { - printf ("%*s\n", level+2, ""); - cql_to_xml_r(cn->u.boolean.right, pr, client_data, level+4); - printf ("%*s\n", level+2, ""); - } - pr_n("\n", pr, client_data, level); - } -} - -void cql_to_xml(struct cql_node *cn, - void (*pr)(const char *buf, void *client_data), - void *client_data) -{ - cql_to_xml_r(cn, pr, client_data, 0); -} - -void cql_to_xml_stdio(struct cql_node *cn, FILE *f) -{ - cql_to_xml(cn, cql_fputs, f); -} - -void cql_buf_write_handler (const char *b, void *client_data) -{ - struct cql_buf_write_info *info = (struct cql_buf_write_info *)client_data; - int l = strlen(b); - if (info->off < 0 || (info->off + l >= info->max)) - { - info->off = -1; - return; - } - memcpy (info->buf + info->off, b, l); - info->off += l; -} - -int cql_to_xml_buf(struct cql_node *cn, char *out, int max) -{ - struct cql_buf_write_info info; - info.off = 0; - info.max = max; - info.buf = out; - cql_to_xml(cn, cql_buf_write_handler, &info); - if (info.off >= 0) - info.buf[info.off] = '\0'; - return info.off; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/xmalloc.c b/dependencies/yaz_3.0.14/src/xmalloc.c deleted file mode 100644 index c19514c..0000000 --- a/dependencies/yaz_3.0.14/src/xmalloc.c +++ /dev/null @@ -1,353 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * All rights reserved. - * - * $Id: xmalloc.c,v 1.9 2007/01/03 08:42:15 adam Exp $ - */ -/** - * \file xmalloc.c - * \brief Implements malloc interface. - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#include -#include - -#ifndef TRACE_XMALLOC -#define TRACE_XMALLOC 1 -#endif - -static int log_level=0; -static int log_level_initialized=0; - -#if TRACE_XMALLOC > 1 - -static const unsigned char head[] = {88, 77, 66, 55, 44, 33, 22, 11}; -static const unsigned char tail[] = {11, 22, 33, 44, 55, 66, 77, 88}; -static const unsigned char freed[] = {11, 22, 33, 44, 55, 66, 77, 88}; - -struct dmalloc_info { - int len; - char file[16]; - int line; - struct dmalloc_info *next; - struct dmalloc_info *prev; -}; - -struct dmalloc_info *dmalloc_list = 0; - - -void *xmalloc_d(size_t nbytes, const char *file, int line) -{ - char *res; - struct dmalloc_info *dinfo; - - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - if (!(res = (char*) malloc(nbytes + sizeof(*dinfo)+16*sizeof(char)))) - return 0; - dinfo = (struct dmalloc_info *) res; - strncpy (dinfo->file, file, sizeof(dinfo->file)-1); - dinfo->file[sizeof(dinfo->file)-1] = '\0'; - dinfo->line = line; - dinfo->len = nbytes; - - dinfo->prev = 0; - dinfo->next = dmalloc_list; - if (dinfo->next) - dinfo->next->prev = dinfo; - dmalloc_list = dinfo; - - memcpy(res + sizeof(*dinfo), head, 8*sizeof(char)); - res += sizeof(*dinfo) + 8*sizeof(char); - memcpy(res + nbytes, tail, 8*sizeof(char)); - return res; -} - -void xfree_d(void *ptr, const char *file, int line) -{ - struct dmalloc_info *dinfo; - - if (!ptr) - return; - dinfo = (struct dmalloc_info *) - ((char*)ptr - 8*sizeof(char) - sizeof(*dinfo)); - if (memcmp(head, (char*) ptr - 8*sizeof(char), 8*sizeof(char))) - { - yaz_log(YLOG_FATAL, "xfree_d bad head, %s:%d, %p", file, line, ptr); - abort(); - } - if (memcmp((char*) ptr + dinfo->len, tail, 8*sizeof(char))) - { - yaz_log(YLOG_FATAL, "xfree_d bad tail, %s:%d, %p", file, line, ptr); - abort(); - } - if (dinfo->prev) - dinfo->prev->next = dinfo->next; - else - dmalloc_list = dinfo->next; - if (dinfo->next) - dinfo->next->prev = dinfo->prev; - memcpy ((char*) ptr - 8*sizeof(char), freed, 8*sizeof(char)); - free(dinfo); - return; -} - -void *xrealloc_d(void *p, size_t nbytes, const char *file, int line) -{ - struct dmalloc_info *dinfo; - char *ptr = (char*) p; - char *res; - - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - if (!ptr) - { - if (!nbytes) - return 0; - res = (char *) malloc(nbytes + sizeof(*dinfo) + 16*sizeof(char)); - } - else - { - if (memcmp(head, ptr - 8*sizeof(char), 8*sizeof(char))) - { - yaz_log(YLOG_FATAL, "xrealloc_d bad head, %s:%d, %p", - file, line, ptr); - abort(); - } - dinfo = (struct dmalloc_info *) (ptr-8*sizeof(char) - sizeof(*dinfo)); - if (memcmp(ptr + dinfo->len, tail, 8*sizeof(char))) - { - yaz_log(YLOG_FATAL, "xrealloc_d bad tail, %s:%d, %p", - file, line, ptr); - abort(); - } - if (dinfo->prev) - dinfo->prev->next = dinfo->next; - else - dmalloc_list = dinfo->next; - if (dinfo->next) - dinfo->next->prev = dinfo->prev; - - if (!nbytes) - { - free (dinfo); - return 0; - } - res = (char *) - realloc(dinfo, nbytes + sizeof(*dinfo) + 16*sizeof(char)); - } - if (!res) - return 0; - dinfo = (struct dmalloc_info *) res; - strncpy (dinfo->file, file, sizeof(dinfo->file)-1); - dinfo->file[sizeof(dinfo->file)-1] = '\0'; - dinfo->line = line; - dinfo->len = nbytes; - - dinfo->prev = 0; - dinfo->next = dmalloc_list; - if (dmalloc_list) - dmalloc_list->prev = dinfo; - dmalloc_list = dinfo; - - memcpy(res + sizeof(*dinfo), head, 8*sizeof(char)); - res += sizeof(*dinfo) + 8*sizeof(char); - memcpy(res + nbytes, tail, 8*sizeof(char)); - return res; -} - -void *xcalloc_d(size_t nmemb, size_t size, const char *file, int line) -{ - char *res; - struct dmalloc_info *dinfo; - size_t nbytes = nmemb * size; - - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - if (!(res = (char*) calloc(1, nbytes+sizeof(*dinfo)+16*sizeof(char)))) - return 0; - dinfo = (struct dmalloc_info *) res; - strncpy (dinfo->file, file, sizeof(dinfo->file)-1); - dinfo->file[sizeof(dinfo->file)-1] = '\0'; - dinfo->line = line; - dinfo->len = nbytes; - - dinfo->prev = 0; - dinfo->next = dmalloc_list; - if (dinfo->next) - dinfo->next->prev = dinfo; - dmalloc_list = dinfo; - - memcpy(res + sizeof(*dinfo), head, 8*sizeof(char)); - res += sizeof(*dinfo) + 8*sizeof(char); - memcpy(res + nbytes, tail, 8*sizeof(char)); - return res; -} - -void xmalloc_trav_d(const char *file, int line) -{ - size_t size = 0; - struct dmalloc_info *dinfo = dmalloc_list; - - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - yaz_log (log_level, "malloc_trav %s:%d", file, line); - while (dinfo) - { - yaz_log (log_level, " %20s:%d p=%p size=%d", dinfo->file, dinfo->line, - ((char*) dinfo)+sizeof(*dinfo)+8*sizeof(char), dinfo->len); - size += dinfo->len; - dinfo = dinfo->next; - } - yaz_log (log_level, "total bytes %ld", (long) size); -} - -#else -/* TRACE_XMALLOC <= 1 */ -#define xrealloc_d(o, x, f, l) realloc(o, x) -#define xmalloc_d(x, f, l) malloc(x) -#define xcalloc_d(x,y, f, l) calloc(x,y) -#define xfree_d(x, f, l) free(x) -#define xmalloc_trav_d(f, l) -#endif - -void xmalloc_trav_f(const char *s, const char *file, int line) -{ - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - xmalloc_trav_d(file, line); -} - -void xmalloc_fatal(void) -{ - exit(1); -} - -void *xrealloc_f (void *o, size_t size, const char *file, int line) -{ - void *p = xrealloc_d (o, size, file, line); - - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - if(log_level) - yaz_log (log_level, - "%s:%d: xrealloc(s=%ld) %p -> %p", file, line, (long) size, o, p); - if (!p) - { - yaz_log (YLOG_FATAL|YLOG_ERRNO, "Out of memory, realloc (%ld bytes)", - (long) size); - xmalloc_fatal(); - } - return p; -} - -void *xmalloc_f (size_t size, const char *file, int line) -{ - void *p = xmalloc_d (size, file, line); - - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - if (log_level) - yaz_log (log_level, "%s:%d: xmalloc(s=%ld) %p", file, line, - (long) size, p); - - if (!p) - { - yaz_log (YLOG_FATAL, "Out of memory - malloc (%ld bytes)", - (long) size); - xmalloc_fatal(); - } - return p; -} - -void *xcalloc_f (size_t nmemb, size_t size, const char *file, int line) -{ - void *p = xcalloc_d (nmemb, size, file, line); - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - if (log_level) - yaz_log (log_level, "%s:%d: xcalloc(s=%ld) %p", file, line, - (long) size, p); - - if (!p) - { - yaz_log (YLOG_FATAL, "Out of memory - calloc (%ld, %ld)", - (long) nmemb, (long) size); - xmalloc_fatal(); - } - return p; -} - -char *xstrdup_f (const char *s, const char *file, int line) -{ - char *p = (char *)xmalloc_d (strlen(s)+1, file, line); - if (!log_level_initialized) - { - log_level=yaz_log_module_level("malloc"); - log_level_initialized=1; - } - - if (log_level) - yaz_log (log_level, "%s:%d: xstrdup(s=%ld) %p", file, line, - (long) strlen(s)+1, p); - - strcpy (p, s); - return p; -} - -void xfree_f(void *p, const char *file, int line) -{ - if (!p) - return ; - if (log_level) - yaz_log (log_level, "%s:%d: xfree %p", file, line, p); - xfree_d(p, file, line); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/xmlquery.c b/dependencies/yaz_3.0.14/src/xmlquery.c deleted file mode 100644 index dfe9fcd..0000000 --- a/dependencies/yaz_3.0.14/src/xmlquery.c +++ /dev/null @@ -1,798 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * All rights reserved. - * - * $Id: xmlquery.c,v 1.15 2007/05/06 20:12:20 adam Exp $ - */ - -/** \file xmlquery.c - \brief Query / XML conversions -*/ - -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include -#include - -#include -#include -#include -#include - -void yaz_query2xml_attribute_element(const Z_AttributeElement *element, - xmlNodePtr parent) -{ - char formstr[30]; - const char *setname = 0; - char oid_name_str[OID_STR_MAX]; - - if (element->attributeSet) - { - setname = yaz_oid_to_string_buf(element->attributeSet, - 0, oid_name_str); - } - - if (element->which == Z_AttributeValue_numeric) - { - xmlNodePtr node = xmlNewChild(parent, 0, BAD_CAST "attr", 0); - - if (setname) - xmlNewProp(node, BAD_CAST "set", BAD_CAST setname); - - sprintf(formstr, "%d", *element->attributeType); - xmlNewProp(node, BAD_CAST "type", BAD_CAST formstr); - - sprintf(formstr, "%d", *element->value.numeric); - xmlNewProp(node, BAD_CAST "value", BAD_CAST formstr); - } - else if (element->which == Z_AttributeValue_complex) - { - int i; - for (i = 0; ivalue.complex->num_list; i++) - { - xmlNodePtr node = xmlNewChild(parent, 0, BAD_CAST "attr", 0); - - if (setname) - xmlNewProp(node, BAD_CAST "set", BAD_CAST setname); - - sprintf(formstr, "%d", *element->attributeType); - xmlNewProp(node, BAD_CAST "type", BAD_CAST formstr); - - if (element->value.complex->list[i]->which == - Z_StringOrNumeric_string) - { - xmlNewProp(node, BAD_CAST "value", BAD_CAST - element->value.complex->list[i]->u.string); - } - else if (element->value.complex->list[i]->which == - Z_StringOrNumeric_numeric) - { - sprintf(formstr, "%d", - *element->value.complex->list[i]->u.numeric); - xmlNewProp(node, BAD_CAST "value", BAD_CAST formstr); - } - } - } -} - - -xmlNodePtr yaz_query2xml_term(const Z_Term *term, - xmlNodePtr parent) -{ - xmlNodePtr t = 0; - xmlNodePtr node = xmlNewChild(parent, /* NS */ 0, BAD_CAST "term", 0); - char formstr[20]; - const char *type = 0; - - switch (term->which) - { - case Z_Term_general: - type = "general"; - t = xmlNewTextLen(BAD_CAST term->u.general->buf, term->u.general->len); - break; - case Z_Term_numeric: - type = "numeric"; - sprintf(formstr, "%d", *term->u.numeric); - t = xmlNewText(BAD_CAST formstr); - break; - case Z_Term_characterString: - type = "string"; - t = xmlNewText(BAD_CAST term->u.characterString); - break; - case Z_Term_oid: - type = "oid"; - break; - case Z_Term_dateTime: - type = "dateTime"; - break; - case Z_Term_external: - type = "external"; - break; - case Z_Term_integerAndUnit: - type ="integerAndUnit"; - break; - case Z_Term_null: - type = "null"; - break; - default: - break; - } - if (t) /* got a term node ? */ - xmlAddChild(node, t); - if (type) - xmlNewProp(node, BAD_CAST "type", BAD_CAST type); - return node; -} - -xmlNodePtr yaz_query2xml_apt(const Z_AttributesPlusTerm *zapt, - xmlNodePtr parent) -{ - xmlNodePtr node = xmlNewChild(parent, /* NS */ 0, BAD_CAST "apt", 0); - int num_attributes = zapt->attributes->num_attributes; - int i; - for (i = 0; iattributes->attributes[i], node); - yaz_query2xml_term(zapt->term, node); - - return node; -} - - -void yaz_query2xml_operator(Z_Operator *op, xmlNodePtr node) -{ - const char *type = 0; - switch(op->which) - { - case Z_Operator_and: - type = "and"; - break; - case Z_Operator_or: - type = "or"; - break; - case Z_Operator_and_not: - type = "not"; - break; - case Z_Operator_prox: - type = "prox"; - break; - default: - return; - } - xmlNewProp(node, BAD_CAST "type", BAD_CAST type); - - if (op->which == Z_Operator_prox) - { - char formstr[30]; - - if (op->u.prox->exclusion) - { - if (*op->u.prox->exclusion) - xmlNewProp(node, BAD_CAST "exclusion", BAD_CAST "true"); - else - xmlNewProp(node, BAD_CAST "exclusion", BAD_CAST "false"); - } - sprintf(formstr, "%d", *op->u.prox->distance); - xmlNewProp(node, BAD_CAST "distance", BAD_CAST formstr); - - if (*op->u.prox->ordered) - xmlNewProp(node, BAD_CAST "ordered", BAD_CAST "true"); - else - xmlNewProp(node, BAD_CAST "ordered", BAD_CAST "false"); - - sprintf(formstr, "%d", *op->u.prox->relationType); - xmlNewProp(node, BAD_CAST "relationType", BAD_CAST formstr); - - switch(op->u.prox->which) - { - case Z_ProximityOperator_known: - sprintf(formstr, "%d", *op->u.prox->u.known); - xmlNewProp(node, BAD_CAST "knownProximityUnit", - BAD_CAST formstr); - break; - case Z_ProximityOperator_private: - default: - xmlNewProp(node, BAD_CAST "privateProximityUnit", - BAD_CAST "private"); - break; - } - } -} - -xmlNodePtr yaz_query2xml_rpnstructure(const Z_RPNStructure *zs, - xmlNodePtr parent) -{ - if (zs->which == Z_RPNStructure_complex) - { - Z_Complex *zc = zs->u.complex; - - xmlNodePtr node = xmlNewChild(parent, /* NS */ 0, BAD_CAST "operator", 0); - if (zc->roperator) - yaz_query2xml_operator(zc->roperator, node); - yaz_query2xml_rpnstructure(zc->s1, node); - yaz_query2xml_rpnstructure(zc->s2, node); - return node; - } - else if (zs->which == Z_RPNStructure_simple) - { - if (zs->u.simple->which == Z_Operand_APT) - return yaz_query2xml_apt(zs->u.simple->u.attributesPlusTerm, - parent); - else if (zs->u.simple->which == Z_Operand_resultSetId) - return xmlNewChild(parent, /* NS */ 0, BAD_CAST "rset", - BAD_CAST zs->u.simple->u.resultSetId); - } - return 0; -} - -xmlNodePtr yaz_query2xml_rpn(const Z_RPNQuery *rpn, xmlNodePtr parent) -{ - if (rpn->attributeSetId) - { - char oid_name_str[OID_STR_MAX]; - const char *setname = yaz_oid_to_string_buf(rpn->attributeSetId, - 0, oid_name_str); - if (setname) - xmlNewProp(parent, BAD_CAST "set", BAD_CAST setname); - } - return yaz_query2xml_rpnstructure(rpn->RPNStructure, parent); -} - -xmlNodePtr yaz_query2xml_ccl(const Odr_oct *ccl, xmlNodePtr node) -{ - return 0; -} - -xmlNodePtr yaz_query2xml_z3958(const Odr_oct *ccl, xmlNodePtr node) -{ - return 0; -} - -xmlNodePtr yaz_query2xml_cql(const char *cql, xmlNodePtr node) -{ - return 0; -} - -void yaz_rpnquery2xml(const Z_RPNQuery *rpn, xmlDocPtr *docp) -{ - Z_Query query; - - query.which = Z_Query_type_1; - query.u.type_1 = (Z_RPNQuery *) rpn; - yaz_query2xml(&query, docp); -} - -void yaz_query2xml(const Z_Query *q, xmlDocPtr *docp) -{ - xmlNodePtr top_node, q_node = 0, child_node = 0; - - assert(q); - assert(docp); - - top_node = xmlNewNode(0, BAD_CAST "query"); - - switch (q->which) - { - case Z_Query_type_1: - case Z_Query_type_101: - q_node = xmlNewChild(top_node, 0, BAD_CAST "rpn", 0); - child_node = yaz_query2xml_rpn(q->u.type_1, q_node); - break; - case Z_Query_type_2: - q_node = xmlNewChild(top_node, 0, BAD_CAST "ccl", 0); - child_node = yaz_query2xml_ccl(q->u.type_2, q_node); - break; - case Z_Query_type_100: - q_node = xmlNewChild(top_node, 0, BAD_CAST "z39.58", 0); - child_node = yaz_query2xml_z3958(q->u.type_100, q_node); - break; - case Z_Query_type_104: - if (q->u.type_104->which == Z_External_CQL) - { - q_node = xmlNewChild(top_node, 0, BAD_CAST "cql", 0); - child_node = yaz_query2xml_cql(q->u.type_104->u.cql, q_node); - } - } - if (child_node && q_node) - { - *docp = xmlNewDoc(BAD_CAST "1.0"); - xmlDocSetRootElement(*docp, top_node); /* make it top node in doc */ - } - else - { - *docp = 0; - xmlFreeNode(top_node); - } -} - -bool_t *boolVal(ODR odr, const char *str) -{ - if (*str == '\0' || strchr("0fF", *str)) - return odr_intdup(odr, 0); - return odr_intdup(odr, 1); -} - -int *intVal(ODR odr, const char *str) -{ - return odr_intdup(odr, atoi(str)); -} - -void yaz_xml2query_operator(const xmlNode *ptr, Z_Operator **op, - ODR odr, int *error_code, const char **addinfo) -{ - const char *type = (const char *) - xmlGetProp((xmlNodePtr) ptr, BAD_CAST "type"); - if (!type) - { - *error_code = 1; - *addinfo = "no operator type"; - return; - } - *op = (Z_Operator*) odr_malloc(odr, sizeof(Z_Operator)); - if (!strcmp(type, "and")) - { - (*op)->which = Z_Operator_and; - (*op)->u.op_and = odr_nullval(); - } - else if (!strcmp(type, "or")) - { - (*op)->which = Z_Operator_or; - (*op)->u.op_or = odr_nullval(); - } - else if (!strcmp(type, "not")) - { - (*op)->which = Z_Operator_and_not; - (*op)->u.and_not = odr_nullval(); - } - else if (!strcmp(type, "prox")) - { - const char *atval; - Z_ProximityOperator *pop = (Z_ProximityOperator *) - odr_malloc(odr, sizeof(Z_ProximityOperator)); - - (*op)->which = Z_Operator_prox; - (*op)->u.prox = pop; - - atval = (const char *) xmlGetProp((xmlNodePtr) ptr, - BAD_CAST "exclusion"); - if (atval) - pop->exclusion = boolVal(odr, atval); - else - pop->exclusion = 0; - - atval = (const char *) xmlGetProp((xmlNodePtr) ptr, - BAD_CAST "distance"); - if (atval) - pop->distance = intVal(odr, atval); - else - pop->distance = odr_intdup(odr, 1); - - atval = (const char *) xmlGetProp((xmlNodePtr) ptr, - BAD_CAST "ordered"); - if (atval) - pop->ordered = boolVal(odr, atval); - else - pop->ordered = odr_intdup(odr, 1); - - atval = (const char *) xmlGetProp((xmlNodePtr) ptr, - BAD_CAST "relationType"); - if (atval) - pop->relationType = intVal(odr, atval); - else - pop->relationType = - odr_intdup(odr, Z_ProximityOperator_Prox_lessThanOrEqual); - - atval = (const char *) xmlGetProp((xmlNodePtr) ptr, - BAD_CAST "knownProximityUnit"); - if (atval) - { - pop->which = Z_ProximityOperator_known; - pop->u.known = intVal(odr, atval); - } - else - { - pop->which = Z_ProximityOperator_known; - pop->u.known = odr_intdup(odr, Z_ProxUnit_word); - } - - atval = (const char *) xmlGetProp((xmlNodePtr) ptr, - BAD_CAST "privateProximityUnit"); - if (atval) - { - pop->which = Z_ProximityOperator_private; - pop->u.zprivate = intVal(odr, atval); - } - } - else - { - *error_code = 1; - *addinfo = "bad operator type"; - } -} - -void yaz_xml2query_attribute_element(const xmlNode *ptr, - Z_AttributeElement **elem, ODR odr, - int *error_code, const char **addinfo) -{ - int i; - xmlChar *set = 0; - xmlChar *type = 0; - xmlChar *value = 0; - int num_values = 0; - struct _xmlAttr *attr; - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "set") && - attr->children && attr->children->type == XML_TEXT_NODE) - set = attr->children->content; - else if (!xmlStrcmp(attr->name, BAD_CAST "type") && - attr->children && attr->children->type == XML_TEXT_NODE) - type = attr->children->content; - else if (!xmlStrcmp(attr->name, BAD_CAST "value") && - attr->children && attr->children->type == XML_TEXT_NODE) - { - value = attr->children->content; - num_values++; - } - else - { - *error_code = 1; - *addinfo = "bad attribute for attr content"; - return; - } - } - if (!type) - { - *error_code = 1; - *addinfo = "missing type attribute for att content"; - return; - } - if (!value) - { - *error_code = 1; - *addinfo = "missing value attribute for att content"; - return; - } - - *elem = (Z_AttributeElement *) odr_malloc(odr, sizeof(**elem)); - if (set) - (*elem)->attributeSet = yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_ATTSET, - (const char *) set, - odr); - else - (*elem)->attributeSet = 0; - (*elem)->attributeType = intVal(odr, (const char *) type); - - /* looks like a number ? */ - for (i = 0; value[i] && value[i] >= '0' && value[i] <= '9'; i++) - ; - if (num_values > 1 || value[i]) - { /* multiple values or string, so turn to complex attribute */ - (*elem)->which = Z_AttributeValue_complex; - (*elem)->value.complex = - (Z_ComplexAttribute*) odr_malloc(odr, sizeof(Z_ComplexAttribute)); - (*elem)->value.complex->num_list = num_values; - (*elem)->value.complex->list = (Z_StringOrNumeric **) - odr_malloc(odr, sizeof(Z_StringOrNumeric*) * num_values); - - /* second pass over attr values */ - i = 0; - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "value") && - attr->children && attr->children->type == XML_TEXT_NODE) - { - const char *val = (const char *) attr->children->content; - assert (i < num_values); - (*elem)->value.complex->list[i] = (Z_StringOrNumeric *) - odr_malloc(odr, sizeof(Z_StringOrNumeric)); - (*elem)->value.complex->list[i]->which = - Z_StringOrNumeric_string; - (*elem)->value.complex->list[i]->u.string = - odr_strdup(odr, val); - i++; - } - } - (*elem)->value.complex->num_semanticAction = 0; - (*elem)->value.complex->semanticAction = 0; - } - else - { /* good'ld numeric value */ - (*elem)->which = Z_AttributeValue_numeric; - (*elem)->value.numeric = intVal(odr, (const char *) value); - } -} - -char *strVal(const xmlNode *ptr_cdata, ODR odr) -{ - return nmem_text_node_cdata(ptr_cdata, odr_getmem(odr)); -} - -void yaz_xml2query_term(const xmlNode *ptr, - Z_Term **term, ODR odr, - int *error_code, const char **addinfo) -{ - xmlChar *type = 0; - struct _xmlAttr *attr; - char *cdata = strVal(ptr->children, odr); - - for (attr = ptr->properties; attr; attr = attr->next) - { - if (!xmlStrcmp(attr->name, BAD_CAST "type") && - attr->children && attr->children->type == XML_TEXT_NODE) - type = attr->children->content; - else - { - *error_code = 1; - *addinfo = "bad attribute for attr content"; - return; - } - } - *term = (Z_Term *) odr_malloc(odr, sizeof(Z_Term)); - - if (!type || !xmlStrcmp(type, BAD_CAST "general")) - { - (*term)->which = Z_Term_general; - (*term)->u.general = - odr_create_Odr_oct(odr, (unsigned char *)cdata, strlen(cdata)); - } - else if (!xmlStrcmp(type, BAD_CAST "numeric")) - { - (*term)->which = Z_Term_numeric; - (*term)->u.numeric = intVal(odr, cdata); - } - else if (!xmlStrcmp(type, BAD_CAST "string")) - { - (*term)->which = Z_Term_characterString; - (*term)->u.characterString = cdata; - } - else if (!xmlStrcmp(type, BAD_CAST "oid")) - { - *error_code = 1; - *addinfo = "unhandled term type: oid"; - } - else if (!xmlStrcmp(type, BAD_CAST "dateTime")) - { - *error_code = 1; - *addinfo = "unhandled term type: dateTime"; - } - else if (!xmlStrcmp(type, BAD_CAST "integerAndUnit")) - { - *error_code = 1; - *addinfo = "unhandled term type: integerAndUnit"; - } - else if (!xmlStrcmp(type, BAD_CAST "null")) - { - (*term)->which = Z_Term_null; - (*term)->u.null = odr_nullval(); - } - else - { - *error_code = 1; - *addinfo = "unhandled term type"; - } -} - -void yaz_xml2query_apt(const xmlNode *ptr_apt, - Z_AttributesPlusTerm **zapt, ODR odr, - int *error_code, const char **addinfo) -{ - const xmlNode *ptr = ptr_apt->children; - int i, num_attr = 0; - - *zapt = (Z_AttributesPlusTerm *) - odr_malloc(odr, sizeof(Z_AttributesPlusTerm)); - - /* deal with attributes */ - (*zapt)->attributes = (Z_AttributeList*) - odr_malloc(odr, sizeof(Z_AttributeList)); - - /* how many attributes? */ - for (; ptr; ptr = ptr->next) - if (ptr->type == XML_ELEMENT_NODE) - { - if (!xmlStrcmp(ptr->name, BAD_CAST "attr")) - num_attr++; - else - break; - } - - /* allocate and parse for real */ - (*zapt)->attributes->num_attributes = num_attr; - (*zapt)->attributes->attributes = (Z_AttributeElement **) - odr_malloc(odr, sizeof(Z_AttributeElement*) * num_attr); - - i = 0; - ptr = ptr_apt->children; - for (; ptr; ptr = ptr->next) - if (ptr->type == XML_ELEMENT_NODE) - { - if (!xmlStrcmp(ptr->name, BAD_CAST "attr")) - { - yaz_xml2query_attribute_element( - ptr, &(*zapt)->attributes->attributes[i], odr, - error_code, addinfo); - i++; - } - else - break; - } - if (ptr && ptr->type == XML_ELEMENT_NODE) - { - if (!xmlStrcmp(ptr->name, BAD_CAST "term")) - { - /* deal with term */ - yaz_xml2query_term(ptr, &(*zapt)->term, odr, error_code, addinfo); - } - else - { - *error_code = 1; - *addinfo = "bad element in apt content"; - } - } - else - { - *error_code = 1; - *addinfo = "missing term node in apt content"; - } -} - -void yaz_xml2query_rset(const xmlNode *ptr, Z_ResultSetId **rset, - ODR odr, int *error_code, const char **addinfo) -{ - if (ptr->children) - { - *rset = strVal(ptr->children, odr); - } - else - { - *error_code = 1; - *addinfo = "missing rset content"; - } -} - -void yaz_xml2query_rpnstructure(const xmlNode *ptr, Z_RPNStructure **zs, - ODR odr, int *error_code, const char **addinfo) -{ - while (ptr && ptr->type != XML_ELEMENT_NODE) - ptr = ptr->next; - - if (!ptr || ptr->type != XML_ELEMENT_NODE) - { - *error_code = 1; - *addinfo = "missing rpn operator, rset, apt node"; - return; - } - *zs = (Z_RPNStructure *) odr_malloc(odr, sizeof(Z_RPNStructure)); - if (!xmlStrcmp(ptr->name, BAD_CAST "operator")) - { - Z_Complex *zc = (Z_Complex *) odr_malloc(odr, sizeof(Z_Complex)); - - (*zs)->which = Z_RPNStructure_complex; - (*zs)->u.complex = zc; - - yaz_xml2query_operator(ptr, &zc->roperator, odr, error_code, addinfo); - - ptr = ptr->children; - while (ptr && ptr->type != XML_ELEMENT_NODE) - ptr = ptr->next; - yaz_xml2query_rpnstructure(ptr, &zc->s1, odr, error_code, addinfo); - if (ptr) - ptr = ptr->next; - while (ptr && ptr->type != XML_ELEMENT_NODE) - ptr = ptr->next; - yaz_xml2query_rpnstructure(ptr, &zc->s2, odr, error_code, addinfo); - } - else - { - Z_Operand *s = (Z_Operand *) odr_malloc(odr, sizeof(Z_Operand)); - (*zs)->which = Z_RPNStructure_simple; - (*zs)->u.simple = s; - if (!xmlStrcmp(ptr->name, BAD_CAST "apt")) - { - s->which = Z_Operand_APT; - yaz_xml2query_apt(ptr, &s->u.attributesPlusTerm, - odr, error_code, addinfo); - } - else if (!xmlStrcmp(ptr->name, BAD_CAST "rset")) - { - s->which = Z_Operand_resultSetId; - yaz_xml2query_rset(ptr, &s->u.resultSetId, - odr, error_code, addinfo); - } - else - { - *error_code = 1; - *addinfo = "bad element: expected binary, apt or rset"; - } - } -} - -void yaz_xml2query_rpn(const xmlNode *ptr, Z_RPNQuery **query, ODR odr, - int *error_code, const char **addinfo) -{ - const char *set = (const char *) - xmlGetProp((xmlNodePtr) ptr, BAD_CAST "set"); - - *query = (Z_RPNQuery*) odr_malloc(odr, sizeof(Z_RPNQuery)); - if (set) - (*query)->attributeSetId = yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_ATTSET, set, odr); - else - (*query)->attributeSetId = 0; - yaz_xml2query_rpnstructure(ptr->children, &(*query)->RPNStructure, - odr, error_code, addinfo); -} - -static void yaz_xml2query_(const xmlNode *ptr, Z_Query **query, ODR odr, - int *error_code, const char **addinfo) -{ - if (ptr && ptr->type == XML_ELEMENT_NODE && - !xmlStrcmp(ptr->name, BAD_CAST "query")) - { - const char *type; - ptr = ptr->children; - while (ptr && ptr->type != XML_ELEMENT_NODE) - ptr = ptr->next; - if (!ptr || ptr->type != XML_ELEMENT_NODE) - { - *error_code = 1; - *addinfo = "missing query content"; - return; - } - type = (const char *) ptr->name; - - *query = (Z_Query*) odr_malloc(odr, sizeof(Z_Query)); - if (!type || !strcmp(type, "rpn")) - { - (*query)->which = Z_Query_type_1; - yaz_xml2query_rpn(ptr, &(*query)->u.type_1, odr, - error_code, addinfo); - } - else if (!strcmp(type, "ccl")) - { - *error_code = 1; - *addinfo = "ccl not supported yet"; - } - else if (!strcmp(type, "z39.58")) - { - *error_code = 1; - *addinfo = "z39.58 not supported yet"; - } - else if (!strcmp(type, "cql")) - { - *error_code = 1; - *addinfo = "cql not supported yet"; - } - else - { - *error_code = 1; - *addinfo = "unsupported query type"; - } - } - else - { - *error_code = 1; - *addinfo = "missing query element"; - } -} - -void yaz_xml2query(const xmlNode *xmlnodep, Z_Query **query, ODR odr, - int *error_code, const char **addinfo) -{ - yaz_xml2query_(xmlnodep, query, odr, error_code, addinfo); -} - -/* YAZ_HAVE_XML2 */ -#endif - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ diff --git a/dependencies/yaz_3.0.14/src/yaz-ccl.c b/dependencies/yaz_3.0.14/src/yaz-ccl.c deleted file mode 100644 index ff79cd5..0000000 --- a/dependencies/yaz_3.0.14/src/yaz-ccl.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: yaz-ccl.c,v 1.6 2007/03/19 14:40:07 adam Exp $ - */ -/** - * \file yaz-ccl.c - * \brief Implements CCL node tree to RPN converson. - */ - -#include -#include -#include -#include - -#include -#include - -Z_RPNQuery *ccl_rpn_query (ODR o, struct ccl_rpn_node *p) -{ - YAZ_PQF_Parser parser = yaz_pqf_create(); - WRBUF wr = wrbuf_alloc(); - Z_RPNQuery *q; - - ccl_pquery(wr, p); - - q = yaz_pqf_parse(parser, o, wrbuf_cstr(wr)); - - wrbuf_destroy(wr); - yaz_pqf_destroy(parser); - return q; -} - -Z_AttributesPlusTerm *ccl_scan_query (ODR o, struct ccl_rpn_node *p) -{ - YAZ_PQF_Parser parser = yaz_pqf_create(); - WRBUF wr = wrbuf_alloc(); - Z_AttributesPlusTerm *q; - Odr_oid *setp; - - ccl_pquery(wr, p); - - q = yaz_pqf_scan(parser, o, &setp, wrbuf_cstr(wr)); - - wrbuf_destroy(wr); - yaz_pqf_destroy(parser); - return q; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/z-accdes1.c b/dependencies/yaz_3.0.14/src/z-accdes1.c deleted file mode 100644 index 0d7eea9..0000000 --- a/dependencies/yaz_3.0.14/src/z-accdes1.c +++ /dev/null @@ -1,39 +0,0 @@ -/** \file z-accdes1.c - \brief ASN.1 Module AccessControlFormat-des-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_DES_RN_Object (ODR o, Z_DES_RN_Object **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DES_RN_Object_challenge, - (Odr_fun) z_DRNType, "challenge"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DES_RN_Object_response, - (Odr_fun) z_DRNType, "response"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_DRNType (ODR o, Z_DRNType **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_octetstring, - &(*p)->userId, ODR_CONTEXT, 1, 1, "userId") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->salt, ODR_CONTEXT, 2, 1, "salt") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->randomNumber, ODR_CONTEXT, 3, 0, "randomNumber") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-accform1.c b/dependencies/yaz_3.0.14/src/z-accform1.c deleted file mode 100644 index 209d28b..0000000 --- a/dependencies/yaz_3.0.14/src/z-accform1.c +++ /dev/null @@ -1,154 +0,0 @@ -/** \file z-accform1.c - \brief ASN.1 Module AccessControlFormat-prompt-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_PromptObject1 (ODR o, Z_PromptObject1 **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PromptObject1_challenge, - (Odr_fun) z_Challenge1, "challenge"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PromptObject1_response, - (Odr_fun) z_Response1, "response"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ChallengeUnit1 (ODR o, Z_ChallengeUnit1 **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ChallengeUnit1_character, - (Odr_fun) z_InternationalString, "character"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ChallengeUnit1_encrypted, - (Odr_fun) z_Encryption, "encrypted"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_PromptId, - &(*p)->promptId, ODR_CONTEXT, 1, 0, "promptId") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->defaultResponse, ODR_CONTEXT, 2, 1, "defaultResponse") && - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3, "promptInfo") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_implicit_tag (o, z_InternationalString, - &(*p)->regExpr, ODR_CONTEXT, 4, 1, "regExpr") && - odr_implicit_tag (o, odr_null, - &(*p)->responseRequired, ODR_CONTEXT, 5, 1, "responseRequired") && - odr_implicit_settag (o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->allowedValues, - &(*p)->num_allowedValues, "allowedValues") || odr_ok(o)) && - odr_implicit_tag (o, odr_null, - &(*p)->shouldSave, ODR_CONTEXT, 7, 1, "shouldSave") && - odr_implicit_tag (o, odr_integer, - &(*p)->dataType, ODR_CONTEXT, 8, 1, "dataType") && - odr_implicit_tag (o, z_External, - &(*p)->diagnostic, ODR_CONTEXT, 9, 1, "diagnostic") && - odr_sequence_end (o); -} - -int z_Challenge1 (ODR o, Z_Challenge1 **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_ChallengeUnit1, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ResponseUnit1 (ODR o, Z_ResponseUnit1 **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ResponseUnit1_string, - (Odr_fun) z_InternationalString, "string"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ResponseUnit1_accept, - (Odr_fun) odr_bool, "accept"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ResponseUnit1_acknowledge, - (Odr_fun) odr_null, "acknowledge"}, - {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_ResponseUnit1_diagnostic, - (Odr_fun) z_DiagRec, "diagnostic"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ResponseUnit1_encrypted, - (Odr_fun) z_Encryption, "encrypted"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_PromptId, - &(*p)->promptId, ODR_CONTEXT, 1, 0, "promptId") && - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "promptResponse") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_sequence_end (o); -} - -int z_Response1 (ODR o, Z_Response1 **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_ResponseUnit1, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PromptIdEnumeratedPrompt (ODR o, Z_PromptIdEnumeratedPrompt **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->type, ODR_CONTEXT, 1, 0, "type") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->suggestedString, ODR_CONTEXT, 2, 1, "suggestedString") && - odr_sequence_end (o); -} - -int z_PromptId (ODR o, Z_PromptId **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PromptId_enumeratedPrompt, - (Odr_fun) z_PromptIdEnumeratedPrompt, "enumeratedPrompt"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PromptId_nonEnumeratedPrompt, - (Odr_fun) z_InternationalString, "nonEnumeratedPrompt"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Encryption (ODR o, Z_Encryption **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_octetstring, - &(*p)->cryptType, ODR_CONTEXT, 1, 1, "cryptType") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->credential, ODR_CONTEXT, 2, 1, "credential") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->data, ODR_CONTEXT, 3, 0, "data") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-acckrb1.c b/dependencies/yaz_3.0.14/src/z-acckrb1.c deleted file mode 100644 index eefa2e4..0000000 --- a/dependencies/yaz_3.0.14/src/z-acckrb1.c +++ /dev/null @@ -1,51 +0,0 @@ -/** \file z-acckrb1.c - \brief ASN.1 Module AccessControlFormat-krb-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_KRBObject (ODR o, Z_KRBObject **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_KRBObject_challenge, - (Odr_fun) z_KRBRequest, "challenge"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_KRBObject_response, - (Odr_fun) z_KRBResponse, "response"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_KRBRequest (ODR o, Z_KRBRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->service, ODR_CONTEXT, 1, 0, "service") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->instance, ODR_CONTEXT, 2, 1, "instance") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->realm, ODR_CONTEXT, 3, 1, "realm") && - odr_sequence_end (o); -} - -int z_KRBResponse (ODR o, Z_KRBResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->userid, ODR_CONTEXT, 1, 1, "userid") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->ticket, ODR_CONTEXT, 2, 0, "ticket") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-charneg.c b/dependencies/yaz_3.0.14/src/z-charneg.c deleted file mode 100644 index cecdd5f..0000000 --- a/dependencies/yaz_3.0.14/src/z-charneg.c +++ /dev/null @@ -1,234 +0,0 @@ -/** \file z-charneg.c - \brief ASN.1 Module NegotiationRecordDefinition-charSetandLanguageNegotiation-3 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_CharSetandLanguageNegotiation (ODR o, Z_CharSetandLanguageNegotiation **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_CharSetandLanguageNegotiation_proposal, - (Odr_fun) z_OriginProposal, "proposal"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_CharSetandLanguageNegotiation_response, - (Odr_fun) z_TargetResponse, "response"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_OriginProposal_0 (ODR o, Z_OriginProposal_0 **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_OriginProposal_0_iso2022, - (Odr_fun) z_Iso2022, "iso2022"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_OriginProposal_0_iso10646, - (Odr_fun) z_Iso10646, "iso10646"}, - {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_OriginProposal_0_private, - (Odr_fun) z_PrivateCharacterSet, "zprivate"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_OriginProposal (ODR o, Z_OriginProposal **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) z_OriginProposal_0, &(*p)->proposedCharSets, - &(*p)->num_proposedCharSets, "proposedCharSets") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_LanguageCode, &(*p)->proposedlanguages, - &(*p)->num_proposedlanguages, "proposedlanguages") || odr_ok(o)) && - odr_implicit_tag (o, odr_bool, - &(*p)->recordsInSelectedCharSets, ODR_CONTEXT, 3, 1, "recordsInSelectedCharSets") && - odr_sequence_end (o); -} - -int z_TargetResponse (ODR o, Z_TargetResponse **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_TargetResponse_iso2022, - (Odr_fun) z_Iso2022, "iso2022"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_TargetResponse_iso10646, - (Odr_fun) z_Iso10646, "iso10646"}, - {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_TargetResponse_private, - (Odr_fun) z_PrivateCharacterSet, "zprivate"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_TargetResponse_none, - (Odr_fun) odr_null, "none"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "selectedCharSets") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_implicit_tag (o, z_LanguageCode, - &(*p)->selectedLanguage, ODR_CONTEXT, 2, 1, "selectedLanguage") && - odr_implicit_tag (o, odr_bool, - &(*p)->recordsInSelectedCharSets, ODR_CONTEXT, 3, 1, "recordsInSelectedCharSets") && - odr_sequence_end (o); -} - -int z_PrivateCharacterSetViaOid (ODR o, Z_PrivateCharacterSetViaOid **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) odr_oid, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PrivateCharacterSet (ODR o, Z_PrivateCharacterSet **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PrivateCharacterSet_viaOid, - (Odr_fun) z_PrivateCharacterSetViaOid, "viaOid"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PrivateCharacterSet_externallySpecified, - (Odr_fun) z_External, "externallySpecified"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_PrivateCharacterSet_previouslyAgreedUpon, - (Odr_fun) odr_null, "previouslyAgreedUpon"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Iso2022OriginProposal (ODR o, Z_Iso2022OriginProposal **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_Environment, - &(*p)->proposedEnvironment, ODR_CONTEXT, 0, 1, "proposedEnvironment") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->proposedSets, - &(*p)->num_proposedSets, "proposedSets") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - odr_sequence_of(o, (Odr_fun) z_InitialSet, &(*p)->proposedInitialSets, - &(*p)->num_proposedInitialSets, "proposedInitialSets") && - odr_implicit_tag (o, z_LeftAndRight, - &(*p)->proposedLeftAndRight, ODR_CONTEXT, 3, 0, "proposedLeftAndRight") && - odr_sequence_end (o); -} - -int z_Iso2022TargetResponse (ODR o, Z_Iso2022TargetResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_Environment, - &(*p)->selectedEnvironment, ODR_CONTEXT, 0, 0, "selectedEnvironment") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->selectedSets, - &(*p)->num_selectedSets, "selectedSets") && - odr_implicit_tag (o, z_InitialSet, - &(*p)->selectedinitialSet, ODR_CONTEXT, 2, 0, "selectedinitialSet") && - odr_implicit_tag (o, z_LeftAndRight, - &(*p)->selectedLeftAndRight, ODR_CONTEXT, 3, 0, "selectedLeftAndRight") && - odr_sequence_end (o); -} - -int z_Iso2022 (ODR o, Z_Iso2022 **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Iso2022_originProposal, - (Odr_fun) z_Iso2022OriginProposal, "originProposal"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Iso2022_targetResponse, - (Odr_fun) z_Iso2022TargetResponse, "targetResponse"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Environment (ODR o, Z_Environment **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Environment_sevenBit, - (Odr_fun) odr_null, "sevenBit"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Environment_eightBit, - (Odr_fun) odr_null, "eightBit"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_InitialSet (ODR o, Z_InitialSet **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->g0, ODR_CONTEXT, 0, 1, "g0") && - odr_implicit_tag (o, odr_integer, - &(*p)->g1, ODR_CONTEXT, 1, 1, "g1") && - odr_implicit_tag (o, odr_integer, - &(*p)->g2, ODR_CONTEXT, 2, 1, "g2") && - odr_implicit_tag (o, odr_integer, - &(*p)->g3, ODR_CONTEXT, 3, 1, "g3") && - odr_implicit_tag (o, odr_integer, - &(*p)->c0, ODR_CONTEXT, 4, 0, "c0") && - odr_implicit_tag (o, odr_integer, - &(*p)->c1, ODR_CONTEXT, 5, 1, "c1") && - odr_sequence_end (o); -} - -int z_LeftAndRight (ODR o, Z_LeftAndRight **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->gLeft, ODR_CONTEXT, 3, 0, "gLeft") && - odr_implicit_tag (o, odr_integer, - &(*p)->gRight, ODR_CONTEXT, 4, 1, "gRight") && - odr_sequence_end (o); -} - -int z_Iso10646 (ODR o, Z_Iso10646 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->collections, ODR_CONTEXT, 1, 1, "collections") && - odr_implicit_tag (o, odr_oid, - &(*p)->encodingLevel, ODR_CONTEXT, 2, 0, "encodingLevel") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-core.c b/dependencies/yaz_3.0.14/src/z-core.c deleted file mode 100644 index 6351345..0000000 --- a/dependencies/yaz_3.0.14/src/z-core.c +++ /dev/null @@ -1,1625 +0,0 @@ -/** \file z-core.c - \brief ASN.1 Module Z39-50-APDU-1995 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_APDU (ODR o, Z_APDU **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 20, Z_APDU_initRequest, - (Odr_fun) z_InitRequest, "initRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 21, Z_APDU_initResponse, - (Odr_fun) z_InitResponse, "initResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 22, Z_APDU_searchRequest, - (Odr_fun) z_SearchRequest, "searchRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 23, Z_APDU_searchResponse, - (Odr_fun) z_SearchResponse, "searchResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 24, Z_APDU_presentRequest, - (Odr_fun) z_PresentRequest, "presentRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 25, Z_APDU_presentResponse, - (Odr_fun) z_PresentResponse, "presentResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 26, Z_APDU_deleteResultSetRequest, - (Odr_fun) z_DeleteResultSetRequest, "deleteResultSetRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 27, Z_APDU_deleteResultSetResponse, - (Odr_fun) z_DeleteResultSetResponse, "deleteResultSetResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 28, Z_APDU_accessControlRequest, - (Odr_fun) z_AccessControlRequest, "accessControlRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 29, Z_APDU_accessControlResponse, - (Odr_fun) z_AccessControlResponse, "accessControlResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 30, Z_APDU_resourceControlRequest, - (Odr_fun) z_ResourceControlRequest, "resourceControlRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 31, Z_APDU_resourceControlResponse, - (Odr_fun) z_ResourceControlResponse, "resourceControlResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 32, Z_APDU_triggerResourceControlRequest, - (Odr_fun) z_TriggerResourceControlRequest, "triggerResourceControlRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 33, Z_APDU_resourceReportRequest, - (Odr_fun) z_ResourceReportRequest, "resourceReportRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 34, Z_APDU_resourceReportResponse, - (Odr_fun) z_ResourceReportResponse, "resourceReportResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 35, Z_APDU_scanRequest, - (Odr_fun) z_ScanRequest, "scanRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 36, Z_APDU_scanResponse, - (Odr_fun) z_ScanResponse, "scanResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 43, Z_APDU_sortRequest, - (Odr_fun) z_SortRequest, "sortRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 44, Z_APDU_sortResponse, - (Odr_fun) z_SortResponse, "sortResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_APDU_segmentRequest, - (Odr_fun) z_Segment, "segmentRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 46, Z_APDU_extendedServicesRequest, - (Odr_fun) z_ExtendedServicesRequest, "extendedServicesRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 47, Z_APDU_extendedServicesResponse, - (Odr_fun) z_ExtendedServicesResponse, "extendedServicesResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 48, Z_APDU_close, - (Odr_fun) z_Close, "close"}, - {ODR_IMPLICIT, ODR_CONTEXT, 49, Z_APDU_duplicateDetectionRequest, - (Odr_fun) z_DuplicateDetectionRequest, "duplicateDetectionRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 50, Z_APDU_duplicateDetectionResponse, - (Odr_fun) z_DuplicateDetectionResponse, "duplicateDetectionResponse"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_InitRequest (ODR o, Z_InitRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - z_ProtocolVersion(o, &(*p)->protocolVersion, 0, "protocolVersion") && - z_Options(o, &(*p)->options, 0, "options") && - odr_implicit_tag (o, odr_integer, - &(*p)->preferredMessageSize, ODR_CONTEXT, 5, 0, "preferredMessageSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->maximumRecordSize, ODR_CONTEXT, 6, 0, "maximumRecordSize") && - odr_explicit_tag (o, z_IdAuthentication, - &(*p)->idAuthentication, ODR_CONTEXT, 7, 1, "idAuthentication") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->implementationId, ODR_CONTEXT, 110, 1, "implementationId") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->implementationName, ODR_CONTEXT, 111, 1, "implementationName") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->implementationVersion, ODR_CONTEXT, 112, 1, "implementationVersion") && - odr_explicit_tag (o, z_External, - &(*p)->userInformationField, ODR_CONTEXT, 11, 1, "userInformationField") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_IdPass (ODR o, Z_IdPass **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->groupId, ODR_CONTEXT, 0, 1, "groupId") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->userId, ODR_CONTEXT, 1, 1, "userId") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->password, ODR_CONTEXT, 2, 1, "password") && - odr_sequence_end (o); -} - -int z_IdAuthentication (ODR o, Z_IdAuthentication **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, Z_IdAuthentication_open, - (Odr_fun) odr_visiblestring, "open"}, - {-1, -1, -1, Z_IdAuthentication_idPass, - (Odr_fun) z_IdPass, "idPass"}, - {-1, -1, -1, Z_IdAuthentication_anonymous, - (Odr_fun) odr_null, "anonymous"}, - {-1, -1, -1, Z_IdAuthentication_other, - (Odr_fun) z_External, "other"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_InitResponse (ODR o, Z_InitResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - z_ProtocolVersion(o, &(*p)->protocolVersion, 0, "protocolVersion") && - z_Options(o, &(*p)->options, 0, "options") && - odr_implicit_tag (o, odr_integer, - &(*p)->preferredMessageSize, ODR_CONTEXT, 5, 0, "preferredMessageSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->maximumRecordSize, ODR_CONTEXT, 6, 0, "maximumRecordSize") && - odr_implicit_tag (o, odr_bool, - &(*p)->result, ODR_CONTEXT, 12, 0, "result") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->implementationId, ODR_CONTEXT, 110, 1, "implementationId") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->implementationName, ODR_CONTEXT, 111, 1, "implementationName") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->implementationVersion, ODR_CONTEXT, 112, 1, "implementationVersion") && - odr_explicit_tag (o, z_External, - &(*p)->userInformationField, ODR_CONTEXT, 11, 1, "userInformationField") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ProtocolVersion (ODR o, Z_ProtocolVersion **p, int opt, const char *name) -{ - return odr_implicit_tag (o, odr_bitstring, p, ODR_CONTEXT, 3, opt, name); -} - -int z_Options (ODR o, Z_Options **p, int opt, const char *name) -{ - return odr_implicit_tag (o, odr_bitstring, p, ODR_CONTEXT, 4, opt, name); -} - -int z_SearchRequest (ODR o, Z_SearchRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->smallSetUpperBound, ODR_CONTEXT, 13, 0, "smallSetUpperBound") && - odr_implicit_tag (o, odr_integer, - &(*p)->largeSetLowerBound, ODR_CONTEXT, 14, 0, "largeSetLowerBound") && - odr_implicit_tag (o, odr_integer, - &(*p)->mediumSetPresentNumber, ODR_CONTEXT, 15, 0, "mediumSetPresentNumber") && - odr_implicit_tag (o, odr_bool, - &(*p)->replaceIndicator, ODR_CONTEXT, 16, 0, "replaceIndicator") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->resultSetName, ODR_CONTEXT, 17, 0, "resultSetName") && - odr_implicit_settag (o, ODR_CONTEXT, 18) && - odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->databaseNames, - &(*p)->num_databaseNames, "databaseNames") && - odr_explicit_tag (o, z_ElementSetNames, - &(*p)->smallSetElementSetNames, ODR_CONTEXT, 100, 1, "smallSetElementSetNames") && - odr_explicit_tag (o, z_ElementSetNames, - &(*p)->mediumSetElementSetNames, ODR_CONTEXT, 101, 1, "mediumSetElementSetNames") && - odr_implicit_tag (o, odr_oid, - &(*p)->preferredRecordSyntax, ODR_CONTEXT, 104, 1, "preferredRecordSyntax") && - odr_explicit_tag (o, z_Query, - &(*p)->query, ODR_CONTEXT, 21, 0, "query") && - odr_implicit_tag (o, z_OtherInformation, - &(*p)->additionalSearchInfo, ODR_CONTEXT, 203, 1, "additionalSearchInfo") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_Query (ODR o, Z_Query **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_Query_type_0, - (Odr_fun) z_ANY_type_0, "type_0"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Query_type_1, - (Odr_fun) z_RPNQuery, "type_1"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Query_type_2, - (Odr_fun) odr_octetstring, "type_2"}, - {ODR_EXPLICIT, ODR_CONTEXT, 100, Z_Query_type_100, - (Odr_fun) odr_octetstring, "type_100"}, - {ODR_IMPLICIT, ODR_CONTEXT, 101, Z_Query_type_101, - (Odr_fun) z_RPNQuery, "type_101"}, - {ODR_EXPLICIT, ODR_CONTEXT, 102, Z_Query_type_102, - (Odr_fun) odr_octetstring, "type_102"}, - {ODR_IMPLICIT, ODR_CONTEXT, 104, Z_Query_type_104, - (Odr_fun) z_External, "type_104"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_RPNQuery (ODR o, Z_RPNQuery **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_AttributeSetId(o, &(*p)->attributeSetId, 0, "attributeSetId") && - z_RPNStructure(o, &(*p)->RPNStructure, 0, "RPNStructure") && - odr_sequence_end (o); -} - -int z_Complex (ODR o, Z_Complex **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_RPNStructure(o, &(*p)->s1, 0, "s1") && - z_RPNStructure(o, &(*p)->s2, 0, "s2") && - z_Operator(o, &(*p)->roperator, 0, "roperator") && - odr_sequence_end (o); -} - -int z_RPNStructure (ODR o, Z_RPNStructure **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_RPNStructure_simple, - (Odr_fun) z_Operand, "simple"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_RPNStructure_complex, - (Odr_fun) z_Complex, "complex"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Operand (ODR o, Z_Operand **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, Z_Operand_APT, - (Odr_fun) z_AttributesPlusTerm, "attributesPlusTerm"}, - {-1, -1, -1, Z_Operand_resultSetId, - (Odr_fun) z_ResultSetId, "resultSetId"}, - {-1, -1, -1, Z_Operand_resultAttr, - (Odr_fun) z_ResultSetPlusAttributes, "resultAttr"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_AttributesPlusTerm (ODR o, Z_AttributesPlusTerm **p, int opt, const char *name) -{ - if (!odr_implicit_settag (o, ODR_CONTEXT, 102) || - !odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name); - return - z_AttributeList(o, &(*p)->attributes, 0, "attributes") && - z_Term(o, &(*p)->term, 0, "term") && - odr_sequence_end (o); -} - -int z_ResultSetPlusAttributes (ODR o, Z_ResultSetPlusAttributes **p, int opt, const char *name) -{ - if (!odr_implicit_settag (o, ODR_CONTEXT, 214) || - !odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name); - return - z_ResultSetId(o, &(*p)->resultSet, 0, "resultSet") && - z_AttributeList(o, &(*p)->attributes, 0, "attributes") && - odr_sequence_end (o); -} - -int z_AttributeList (ODR o, Z_AttributeList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - odr_implicit_settag (o, ODR_CONTEXT, 44); - if (odr_sequence_of (o, (Odr_fun) z_AttributeElement, &(*p)->attributes, - &(*p)->num_attributes, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Term (ODR o, Z_Term **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 45, Z_Term_general, - (Odr_fun) odr_octetstring, "general"}, - {ODR_IMPLICIT, ODR_CONTEXT, 215, Z_Term_numeric, - (Odr_fun) odr_integer, "numeric"}, - {ODR_IMPLICIT, ODR_CONTEXT, 216, Z_Term_characterString, - (Odr_fun) z_InternationalString, "characterString"}, - {ODR_IMPLICIT, ODR_CONTEXT, 217, Z_Term_oid, - (Odr_fun) odr_oid, "oid"}, - {ODR_IMPLICIT, ODR_CONTEXT, 218, Z_Term_dateTime, - (Odr_fun) odr_generalizedtime, "dateTime"}, - {ODR_IMPLICIT, ODR_CONTEXT, 219, Z_Term_external, - (Odr_fun) z_External, "external"}, - {ODR_IMPLICIT, ODR_CONTEXT, 220, Z_Term_integerAndUnit, - (Odr_fun) z_IntUnit, "integerAndUnit"}, - {ODR_IMPLICIT, ODR_CONTEXT, 221, Z_Term_null, - (Odr_fun) odr_null, "null"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Operator (ODR o, Z_Operator **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Operator_and, - (Odr_fun) odr_null, "op_and"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Operator_or, - (Odr_fun) odr_null, "op_or"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Operator_and_not, - (Odr_fun) odr_null, "and_not"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Operator_prox, - (Odr_fun) z_ProximityOperator, "prox"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_constructed_begin(o, p, ODR_CONTEXT, 46, 0)) - return odr_missing(o, opt, name); - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name) && - odr_constructed_end(o)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ComplexAttribute (ODR o, Z_ComplexAttribute **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 1) && - odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->list, - &(*p)->num_list, "list") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->semanticAction, - &(*p)->num_semanticAction, "semanticAction") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_AttributeElement (ODR o, Z_AttributeElement **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 121, Z_AttributeValue_numeric, - (Odr_fun) odr_integer, "numeric"}, - {ODR_IMPLICIT, ODR_CONTEXT, 224, Z_AttributeValue_complex, - (Odr_fun) z_ComplexAttribute, "complex"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_AttributeSetId, - &(*p)->attributeSet, ODR_CONTEXT, 1, 1, "attributeSet") && - odr_implicit_tag (o, odr_integer, - &(*p)->attributeType, ODR_CONTEXT, 120, 0, "attributeType") && - odr_choice (o, arm, &(*p)->value, &(*p)->which, 0) && - odr_sequence_end (o); -} - -int z_ProximityOperator (ODR o, Z_ProximityOperator **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProximityOperator_known, - (Odr_fun) z_ProxUnit, "known"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProximityOperator_private, - (Odr_fun) odr_integer, "zprivate"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->exclusion, ODR_CONTEXT, 1, 1, "exclusion") && - odr_implicit_tag (o, odr_integer, - &(*p)->distance, ODR_CONTEXT, 2, 0, "distance") && - odr_implicit_tag (o, odr_bool, - &(*p)->ordered, ODR_CONTEXT, 3, 0, "ordered") && - odr_implicit_tag (o, odr_integer, - &(*p)->relationType, ODR_CONTEXT, 4, 0, "relationType") && - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "proximityUnitCode") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_sequence_end (o); -} - -int z_ProxUnit (ODR o, Z_ProxUnit **p, int opt, const char *name) -{ - return odr_integer (o, p, opt, name); -} - -int z_SearchResponse (ODR o, Z_SearchResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->resultCount, ODR_CONTEXT, 23, 0, "resultCount") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfRecordsReturned, ODR_CONTEXT, 24, 0, "numberOfRecordsReturned") && - odr_implicit_tag (o, odr_integer, - &(*p)->nextResultSetPosition, ODR_CONTEXT, 25, 0, "nextResultSetPosition") && - odr_implicit_tag (o, odr_bool, - &(*p)->searchStatus, ODR_CONTEXT, 22, 0, "searchStatus") && - odr_implicit_tag (o, odr_integer, - &(*p)->resultSetStatus, ODR_CONTEXT, 26, 1, "resultSetStatus") && - z_PresentStatus(o, &(*p)->presentStatus, 1, "presentStatus") && - z_Records(o, &(*p)->records, 1, "records") && - odr_implicit_tag (o, z_OtherInformation, - &(*p)->additionalSearchInfo, ODR_CONTEXT, 203, 1, "additionalSearchInfo") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_RecordComposition (ODR o, Z_RecordComposition **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 19, Z_RecordComp_simple, - (Odr_fun) z_ElementSetNames, "simple"}, - {ODR_IMPLICIT, ODR_CONTEXT, 209, Z_RecordComp_complex, - (Odr_fun) z_CompSpec, "complex"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PresentRequest (ODR o, Z_PresentRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - z_ResultSetId(o, &(*p)->resultSetId, 0, "resultSetId") && - odr_implicit_tag (o, odr_integer, - &(*p)->resultSetStartPoint, ODR_CONTEXT, 30, 0, "resultSetStartPoint") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfRecordsRequested, ODR_CONTEXT, 29, 0, "numberOfRecordsRequested") && - odr_implicit_settag (o, ODR_CONTEXT, 212) && - (odr_sequence_of(o, (Odr_fun) z_Range, &(*p)->additionalRanges, - &(*p)->num_ranges, "additionalRanges") || odr_ok(o)) && - z_RecordComposition (o, &(*p)->recordComposition, 1, "recordComposition") && - odr_implicit_tag (o, odr_oid, - &(*p)->preferredRecordSyntax, ODR_CONTEXT, 104, 1, "preferredRecordSyntax") && - odr_implicit_tag (o, odr_integer, - &(*p)->maxSegmentCount, ODR_CONTEXT, 204, 1, "maxSegmentCount") && - odr_implicit_tag (o, odr_integer, - &(*p)->maxRecordSize, ODR_CONTEXT, 206, 1, "maxRecordSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->maxSegmentSize, ODR_CONTEXT, 207, 1, "maxSegmentSize") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_Segment (ODR o, Z_Segment **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfRecordsReturned, ODR_CONTEXT, 24, 0, "numberOfRecordsReturned") && - odr_implicit_settag (o, ODR_CONTEXT, 0) && - odr_sequence_of(o, (Odr_fun) z_NamePlusRecord, &(*p)->segmentRecords, - &(*p)->num_segmentRecords, "segmentRecords") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_PresentResponse (ODR o, Z_PresentResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfRecordsReturned, ODR_CONTEXT, 24, 0, "numberOfRecordsReturned") && - odr_implicit_tag (o, odr_integer, - &(*p)->nextResultSetPosition, ODR_CONTEXT, 25, 0, "nextResultSetPosition") && - z_PresentStatus(o, &(*p)->presentStatus, 0, "presentStatus") && - z_Records(o, &(*p)->records, 1, "records") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_NamePlusRecordList (ODR o, Z_NamePlusRecordList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_NamePlusRecord, &(*p)->records, - &(*p)->num_records, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_DiagRecs (ODR o, Z_DiagRecs **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_DiagRec, &(*p)->diagRecs, - &(*p)->num_diagRecs, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Records (ODR o, Z_Records **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 28, Z_Records_DBOSD, - (Odr_fun) z_NamePlusRecordList, "databaseOrSurDiagnostics"}, - {ODR_IMPLICIT, ODR_CONTEXT, 130, Z_Records_NSD, - (Odr_fun) z_DefaultDiagFormat, "nonSurrogateDiagnostic"}, - {ODR_IMPLICIT, ODR_CONTEXT, 205, Z_Records_multipleNSD, - (Odr_fun) z_DiagRecs, "multipleNonSurDiagnostics"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_NamePlusRecord (ODR o, Z_NamePlusRecord **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_NamePlusRecord_databaseRecord, - (Odr_fun) z_External, "databaseRecord"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_NamePlusRecord_surrogateDiagnostic, - (Odr_fun) z_DiagRec, "surrogateDiagnostic"}, - {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_NamePlusRecord_startingFragment, - (Odr_fun) z_FragmentSyntax, "startingFragment"}, - {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_NamePlusRecord_intermediateFragment, - (Odr_fun) z_FragmentSyntax, "intermediateFragment"}, - {ODR_EXPLICIT, ODR_CONTEXT, 5, Z_NamePlusRecord_finalFragment, - (Odr_fun) z_FragmentSyntax, "finalFragment"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_DatabaseName, - &(*p)->databaseName, ODR_CONTEXT, 0, 1, "databaseName") && - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "record") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_sequence_end (o); -} - -int z_FragmentSyntax (ODR o, Z_FragmentSyntax **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, Z_FragmentSyntax_externallyTagged, - (Odr_fun) z_External, "externallyTagged"}, - {-1, -1, -1, Z_FragmentSyntax_notExternallyTagged, - (Odr_fun) odr_octetstring, "notExternallyTagged"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_DiagRec (ODR o, Z_DiagRec **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, Z_DiagRec_defaultFormat, - (Odr_fun) z_DefaultDiagFormat, "defaultFormat"}, - {-1, -1, -1, Z_DiagRec_externallyDefined, - (Odr_fun) z_External, "externallyDefined"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_DefaultDiagFormat (ODR o, Z_DefaultDiagFormat **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, Z_DefaultDiagFormat_v2Addinfo, - (Odr_fun) odr_visiblestring, "v2Addinfo"}, - {-1, -1, -1, Z_DefaultDiagFormat_v3Addinfo, - (Odr_fun) z_InternationalString, "v3Addinfo"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_oid(o, &(*p)->diagnosticSetId, 0, "diagnosticSetId") && - odr_integer(o, &(*p)->condition, 0, "condition") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_sequence_end (o); -} - -int z_Range (ODR o, Z_Range **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->startingPosition, ODR_CONTEXT, 1, 0, "startingPosition") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfRecords, ODR_CONTEXT, 2, 0, "numberOfRecords") && - odr_sequence_end (o); -} - -int z_DatabaseSpecificUnit (ODR o, Z_DatabaseSpecificUnit **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_DatabaseName(o, &(*p)->dbName, 0, "dbName") && - z_ElementSetName(o, &(*p)->esn, 0, "esn") && - odr_sequence_end (o); -} - -int z_DatabaseSpecific (ODR o, Z_DatabaseSpecific **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_DatabaseSpecificUnit, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ElementSetNames (ODR o, Z_ElementSetNames **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ElementSetNames_generic, - (Odr_fun) z_InternationalString, "generic"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementSetNames_databaseSpecific, - (Odr_fun) z_DatabaseSpecific, "databaseSpecific"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PresentStatus (ODR o, Z_PresentStatus **p, int opt, const char *name) -{ - return odr_implicit_tag (o, odr_integer, p, ODR_CONTEXT, 27, opt, name); -} - -int z_DbSpecific (ODR o, Z_DbSpecific **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_DatabaseName, - &(*p)->db, ODR_CONTEXT, 1, 0, "db") && - odr_implicit_tag (o, z_Specification, - &(*p)->spec, ODR_CONTEXT, 2, 0, "spec") && - odr_sequence_end (o); -} - -int z_CompSpec (ODR o, Z_CompSpec **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->selectAlternativeSyntax, ODR_CONTEXT, 1, 0, "selectAlternativeSyntax") && - odr_implicit_tag (o, z_Specification, - &(*p)->generic, ODR_CONTEXT, 2, 1, "generic") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_DbSpecific, &(*p)->dbSpecific, - &(*p)->num_dbSpecific, "dbSpecific") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->recordSyntax, - &(*p)->num_recordSyntax, "recordSyntax") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_ElementSpec (ODR o, Z_ElementSpec **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementSpec_elementSetName, - (Odr_fun) z_InternationalString, "elementSetName"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementSpec_externalSpec, - (Odr_fun) z_External, "externalSpec"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Specification (ODR o, Z_Specification **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Schema_oid, - (Odr_fun) odr_oid, "oid"}, - {ODR_IMPLICIT, ODR_CONTEXT, 300, Z_Schema_uri, - (Odr_fun) z_InternationalString, "uri"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - (odr_choice (o, arm, &(*p)->schema, &(*p)->which, 0) || odr_ok(o)) && - odr_explicit_tag (o, z_ElementSpec, - &(*p)->elementSpec, ODR_CONTEXT, 2, 1, "elementSpec") && - odr_sequence_end (o); -} - -int z_DeleteResultSetRequest (ODR o, Z_DeleteResultSetRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->deleteFunction, ODR_CONTEXT, 32, 0, "deleteFunction") && - (odr_sequence_of(o, (Odr_fun) z_ResultSetId, &(*p)->resultSetList, - &(*p)->num_resultSetList, "resultSetList") || odr_ok(o)) && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_DeleteResultSetResponse (ODR o, Z_DeleteResultSetResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, z_DeleteStatus, - &(*p)->deleteOperationStatus, ODR_CONTEXT, 0, 0, "deleteOperationStatus") && - odr_implicit_tag (o, z_ListStatuses, - &(*p)->deleteListStatuses, ODR_CONTEXT, 1, 1, "deleteListStatuses") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberNotDeleted, ODR_CONTEXT, 34, 1, "numberNotDeleted") && - odr_implicit_tag (o, z_ListStatuses, - &(*p)->bulkStatuses, ODR_CONTEXT, 35, 1, "bulkStatuses") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->deleteMessage, ODR_CONTEXT, 36, 1, "deleteMessage") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ListStatus (ODR o, Z_ListStatus **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ResultSetId(o, &(*p)->id, 0, "id") && - z_DeleteStatus(o, &(*p)->status, 0, "status") && - odr_sequence_end (o); -} - -int z_ListStatuses (ODR o, Z_ListStatuses **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_ListStatus, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_DeleteStatus (ODR o, Z_DeleteStatus **p, int opt, const char *name) -{ - return odr_implicit_tag (o, odr_integer, p, ODR_CONTEXT, 33, opt, name); -} - -int z_AccessControlRequest (ODR o, Z_AccessControlRequest **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 37, Z_AccessControlRequest_simpleForm, - (Odr_fun) odr_octetstring, "simpleForm"}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_AccessControlRequest_externallyDefined, - (Odr_fun) z_External, "externallyDefined"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_AccessControlResponse (ODR o, Z_AccessControlResponse **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 38, Z_AccessControlResponse_simpleForm, - (Odr_fun) odr_octetstring, "simpleForm"}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_AccessControlResponse_externallyDefined, - (Odr_fun) z_External, "externallyDefined"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - (odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) || odr_ok(o)) && - odr_explicit_tag (o, z_DiagRec, - &(*p)->diagnostic, ODR_CONTEXT, 223, 1, "diagnostic") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ResourceControlRequest (ODR o, Z_ResourceControlRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_bool, - &(*p)->suspendedFlag, ODR_CONTEXT, 39, 1, "suspendedFlag") && - odr_explicit_tag (o, z_ResourceReport, - &(*p)->resourceReport, ODR_CONTEXT, 40, 1, "resourceReport") && - odr_implicit_tag (o, odr_integer, - &(*p)->partialResultsAvailable, ODR_CONTEXT, 41, 1, "partialResultsAvailable") && - odr_implicit_tag (o, odr_bool, - &(*p)->responseRequired, ODR_CONTEXT, 42, 0, "responseRequired") && - odr_implicit_tag (o, odr_bool, - &(*p)->triggeredRequestFlag, ODR_CONTEXT, 43, 1, "triggeredRequestFlag") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ResourceControlResponse (ODR o, Z_ResourceControlResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_bool, - &(*p)->continueFlag, ODR_CONTEXT, 44, 0, "continueFlag") && - odr_implicit_tag (o, odr_bool, - &(*p)->resultSetWanted, ODR_CONTEXT, 45, 1, "resultSetWanted") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_TriggerResourceControlRequest (ODR o, Z_TriggerResourceControlRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->requestedAction, ODR_CONTEXT, 46, 0, "requestedAction") && - odr_implicit_tag (o, z_ResourceReportId, - &(*p)->prefResourceReportFormat, ODR_CONTEXT, 47, 1, "prefResourceReportFormat") && - odr_implicit_tag (o, odr_bool, - &(*p)->resultSetWanted, ODR_CONTEXT, 48, 1, "resultSetWanted") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ResourceReportRequest (ODR o, Z_ResourceReportRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, z_ReferenceId, - &(*p)->opId, ODR_CONTEXT, 210, 1, "opId") && - odr_implicit_tag (o, z_ResourceReportId, - &(*p)->prefResourceReportFormat, ODR_CONTEXT, 49, 1, "prefResourceReportFormat") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ResourceReportResponse (ODR o, Z_ResourceReportResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->resourceReportStatus, ODR_CONTEXT, 50, 0, "resourceReportStatus") && - odr_explicit_tag (o, z_ResourceReport, - &(*p)->resourceReport, ODR_CONTEXT, 51, 1, "resourceReport") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ResourceReport (ODR o, Z_ResourceReport **p, int opt, const char *name) -{ - return z_External (o, p, opt, name); -} - -int z_ResourceReportId (ODR o, Z_ResourceReportId **p, int opt, const char *name) -{ - return odr_oid (o, p, opt, name); -} - -int z_ScanRequest (ODR o, Z_ScanRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->databaseNames, - &(*p)->num_databaseNames, "databaseNames") && - z_AttributeSetId(o, &(*p)->attributeSet, 1, "attributeSet") && - z_AttributesPlusTerm(o, &(*p)->termListAndStartPoint, 0, "termListAndStartPoint") && - odr_implicit_tag (o, odr_integer, - &(*p)->stepSize, ODR_CONTEXT, 5, 1, "stepSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfTermsRequested, ODR_CONTEXT, 6, 0, "numberOfTermsRequested") && - odr_implicit_tag (o, odr_integer, - &(*p)->preferredPositionInResponse, ODR_CONTEXT, 7, 1, "preferredPositionInResponse") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ScanResponse (ODR o, Z_ScanResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->stepSize, ODR_CONTEXT, 3, 1, "stepSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->scanStatus, ODR_CONTEXT, 4, 0, "scanStatus") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfEntriesReturned, ODR_CONTEXT, 5, 0, "numberOfEntriesReturned") && - odr_implicit_tag (o, odr_integer, - &(*p)->positionOfTerm, ODR_CONTEXT, 6, 1, "positionOfTerm") && - odr_implicit_tag (o, z_ListEntries, - &(*p)->entries, ODR_CONTEXT, 7, 1, "entries") && - odr_implicit_tag (o, z_AttributeSetId, - &(*p)->attributeSet, ODR_CONTEXT, 8, 1, "attributeSet") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ListEntries (ODR o, Z_ListEntries **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) z_Entry, &(*p)->entries, - &(*p)->num_entries, "entries") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->nonsurrogateDiagnostics, - &(*p)->num_nonsurrogateDiagnostics, "nonsurrogateDiagnostics") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_Entry (ODR o, Z_Entry **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Entry_termInfo, - (Odr_fun) z_TermInfo, "termInfo"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_Entry_surrogateDiagnostic, - (Odr_fun) z_DiagRec, "surrogateDiagnostic"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_TermInfo (ODR o, Z_TermInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_Term(o, &(*p)->term, 0, "term") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->displayTerm, ODR_CONTEXT, 0, 1, "displayTerm") && - z_AttributeList(o, &(*p)->suggestedAttributes, 1, "suggestedAttributes") && - odr_implicit_settag (o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, (Odr_fun) z_AttributesPlusTerm, &(*p)->alternativeTerm, - &(*p)->num_alternativeTerm, "alternativeTerm") || odr_ok(o)) && - odr_implicit_tag (o, odr_integer, - &(*p)->globalOccurrences, ODR_CONTEXT, 2, 1, "globalOccurrences") && - odr_implicit_tag (o, z_OccurrenceByAttributes, - &(*p)->byAttributes, ODR_CONTEXT, 3, 1, "byAttributes") && - z_OtherInformation(o, &(*p)->otherTermInfo, 1, "otherTermInfo") && - odr_sequence_end (o); -} - -int z_byDatabaseList_s (ODR o, Z_byDatabaseList_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_DatabaseName(o, &(*p)->db, 0, "db") && - odr_implicit_tag (o, odr_integer, - &(*p)->num, ODR_CONTEXT, 1, 1, "num") && - z_OtherInformation(o, &(*p)->otherDbInfo, 1, "otherDbInfo") && - odr_sequence_end (o); -} - -int z_byDatabaseList (ODR o, Z_byDatabaseList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_byDatabaseList_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_OccurrenceByAttributesElem (ODR o, Z_OccurrenceByAttributesElem **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_OccurrenceByAttributesElem_global, - (Odr_fun) odr_integer, "global"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_OccurrenceByAttributesElem_byDatabase, - (Odr_fun) z_byDatabaseList, "byDatabase"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_AttributeList, - &(*p)->attributes, ODR_CONTEXT, 1, 0, "attributes") && - (odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) || odr_ok(o)) && - z_OtherInformation(o, &(*p)->otherOccurInfo, 1, "otherOccurInfo") && - odr_sequence_end (o); -} - -int z_OccurrenceByAttributes (ODR o, Z_OccurrenceByAttributes **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_OccurrenceByAttributesElem, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_SortKeySpecList (ODR o, Z_SortKeySpecList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_SortKeySpec, &(*p)->specs, - &(*p)->num_specs, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_SortRequest (ODR o, Z_SortRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->inputResultSetNames, - &(*p)->num_inputResultSetNames, "inputResultSetNames") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->sortedResultSetName, ODR_CONTEXT, 4, 0, "sortedResultSetName") && - odr_implicit_tag (o, z_SortKeySpecList, - &(*p)->sortSequence, ODR_CONTEXT, 5, 0, "sortSequence") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_SortResponse (ODR o, Z_SortResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->sortStatus, ODR_CONTEXT, 3, 0, "sortStatus") && - odr_implicit_tag (o, odr_integer, - &(*p)->resultSetStatus, ODR_CONTEXT, 4, 1, "resultSetStatus") && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->diagnostics, - &(*p)->num_diagnostics, "diagnostics") || odr_ok(o)) && - odr_implicit_tag (o, odr_integer, - &(*p)->resultCount, ODR_CONTEXT, 6, 1, "resultCount") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_SortKeySpec (ODR o, Z_SortKeySpec **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKeySpec_abort, - (Odr_fun) odr_null, "abort"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKeySpec_null, - (Odr_fun) odr_null, "null"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortKeySpec_missingValueData, - (Odr_fun) odr_octetstring, "missingValueData"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_SortElement(o, &(*p)->sortElement, 0, "sortElement") && - odr_implicit_tag (o, odr_integer, - &(*p)->sortRelation, ODR_CONTEXT, 1, 0, "sortRelation") && - odr_implicit_tag (o, odr_integer, - &(*p)->caseSensitivity, ODR_CONTEXT, 2, 0, "caseSensitivity") && - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3, "missingValueAction") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_SortDbSpecificList_s (ODR o, Z_SortDbSpecificList_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_DatabaseName(o, &(*p)->databaseName, 0, "databaseName") && - z_SortKey(o, &(*p)->dbSort, 0, "dbSort") && - odr_sequence_end (o); -} - -int z_SortDbSpecificList (ODR o, Z_SortDbSpecificList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_SortDbSpecificList_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_SortElement (ODR o, Z_SortElement **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_SortElement_generic, - (Odr_fun) z_SortKey, "generic"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortElement_databaseSpecific, - (Odr_fun) z_SortDbSpecificList, "databaseSpecific"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_SortAttributes (ODR o, Z_SortAttributes **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_AttributeSetId(o, &(*p)->id, 0, "id") && - z_AttributeList(o, &(*p)->list, 0, "list") && - odr_sequence_end (o); -} - -int z_SortKey (ODR o, Z_SortKey **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKey_sortField, - (Odr_fun) z_InternationalString, "sortField"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKey_elementSpec, - (Odr_fun) z_Specification, "elementSpec"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKey_sortAttributes, - (Odr_fun) z_SortAttributes, "sortAttributes"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ExtendedServicesRequest (ODR o, Z_ExtendedServicesRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->function, ODR_CONTEXT, 3, 0, "function") && - odr_implicit_tag (o, odr_oid, - &(*p)->packageType, ODR_CONTEXT, 4, 0, "packageType") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->packageName, ODR_CONTEXT, 5, 1, "packageName") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->userId, ODR_CONTEXT, 6, 1, "userId") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->retentionTime, ODR_CONTEXT, 7, 1, "retentionTime") && - odr_implicit_tag (o, z_Permissions, - &(*p)->permissions, ODR_CONTEXT, 8, 1, "permissions") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->description, ODR_CONTEXT, 9, 1, "description") && - odr_implicit_tag (o, z_External, - &(*p)->taskSpecificParameters, ODR_CONTEXT, 10, 1, "taskSpecificParameters") && - odr_implicit_tag (o, odr_integer, - &(*p)->waitAction, ODR_CONTEXT, 11, 0, "waitAction") && - z_ElementSetName(o, &(*p)->elements, 1, "elements") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ExtendedServicesResponse (ODR o, Z_ExtendedServicesResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->operationStatus, ODR_CONTEXT, 3, 0, "operationStatus") && - odr_implicit_settag (o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->diagnostics, - &(*p)->num_diagnostics, "diagnostics") || odr_ok(o)) && - odr_implicit_tag (o, z_External, - &(*p)->taskPackage, ODR_CONTEXT, 5, 1, "taskPackage") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_Permissions_s (ODR o, Z_Permissions_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->userId, ODR_CONTEXT, 1, 1, "userId") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->allowableFunctions, - &(*p)->num_allowableFunctions, "allowableFunctions") && - odr_sequence_end (o); -} - -int z_Permissions (ODR o, Z_Permissions **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_Permissions_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Close (ODR o, Z_Close **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - z_CloseReason(o, &(*p)->closeReason, 0, "closeReason") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->diagnosticInformation, ODR_CONTEXT, 3, 1, "diagnosticInformation") && - odr_implicit_tag (o, z_ResourceReportId, - &(*p)->resourceReportFormat, ODR_CONTEXT, 4, 1, "resourceReportFormat") && - odr_explicit_tag (o, z_ResourceReport, - &(*p)->resourceReport, ODR_CONTEXT, 5, 1, "resourceReport") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_CloseReason (ODR o, Z_CloseReason **p, int opt, const char *name) -{ - return odr_implicit_tag (o, odr_integer, p, ODR_CONTEXT, 211, opt, name); -} - -int z_DuplicateDetectionRequest (ODR o, Z_DuplicateDetectionRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->inputResultSetIds, - &(*p)->num_inputResultSetIds, "inputResultSetIds") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->outputResultSetName, ODR_CONTEXT, 4, 0, "outputResultSetName") && - odr_implicit_tag (o, z_External, - &(*p)->applicablePortionOfRecord, ODR_CONTEXT, 5, 1, "applicablePortionOfRecord") && - odr_implicit_settag (o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, (Odr_fun) z_DuplicateDetectionCriterion, &(*p)->duplicateDetectionCriteria, - &(*p)->num_duplicateDetectionCriteria, "duplicateDetectionCriteria") || odr_ok(o)) && - odr_implicit_tag (o, odr_bool, - &(*p)->clustering, ODR_CONTEXT, 7, 1, "clustering") && - odr_implicit_settag (o, ODR_CONTEXT, 8) && - odr_sequence_of(o, (Odr_fun) z_RetentionCriterion, &(*p)->retentionCriteria, - &(*p)->num_retentionCriteria, "retentionCriteria") && - odr_implicit_settag (o, ODR_CONTEXT, 9) && - (odr_sequence_of(o, (Odr_fun) z_SortCriterion, &(*p)->sortCriteria, - &(*p)->num_sortCriteria, "sortCriteria") || odr_ok(o)) && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_DuplicateDetectionCriterion (ODR o, Z_DuplicateDetectionCriterion **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DuplicateDetectionCriterion_levelOfMatch, - (Odr_fun) odr_integer, "levelOfMatch"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DuplicateDetectionCriterion_caseSensitive, - (Odr_fun) odr_null, "caseSensitive"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DuplicateDetectionCriterion_punctuationSensitive, - (Odr_fun) odr_null, "punctuationSensitive"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DuplicateDetectionCriterion_regularExpression, - (Odr_fun) z_External, "regularExpression"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_DuplicateDetectionCriterion_rsDuplicates, - (Odr_fun) odr_null, "rsDuplicates"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_RetentionCriterion (ODR o, Z_RetentionCriterion **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_RetentionCriterion_numberOfEntries, - (Odr_fun) odr_integer, "numberOfEntries"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_RetentionCriterion_percentOfEntries, - (Odr_fun) odr_integer, "percentOfEntries"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_RetentionCriterion_duplicatesOnly, - (Odr_fun) odr_null, "duplicatesOnly"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_RetentionCriterion_discardRsDuplicates, - (Odr_fun) odr_null, "discardRsDuplicates"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_SortCriterionPreferredDatabases (ODR o, Z_SortCriterionPreferredDatabases **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_InternationalString, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_SortCriterion (ODR o, Z_SortCriterion **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortCriterion_mostComprehensive, - (Odr_fun) odr_null, "mostComprehensive"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortCriterion_leastConmprehensive, - (Odr_fun) odr_null, "leastConmprehensive"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortCriterion_mostRecent, - (Odr_fun) odr_null, "mostRecent"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_SortCriterion_oldest, - (Odr_fun) odr_null, "oldest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_SortCriterion_leastCost, - (Odr_fun) odr_null, "leastCost"}, - {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_SortCriterion_preferredDatabases, - (Odr_fun) z_SortCriterionPreferredDatabases, "preferredDatabases"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_DuplicateDetectionResponse (ODR o, Z_DuplicateDetectionResponse **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_ReferenceId(o, &(*p)->referenceId, 1, "referenceId") && - odr_implicit_tag (o, odr_integer, - &(*p)->status, ODR_CONTEXT, 3, 0, "status") && - odr_implicit_tag (o, odr_integer, - &(*p)->resultSetCount, ODR_CONTEXT, 4, 1, "resultSetCount") && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->diagnostics, - &(*p)->num_diagnostics, "diagnostics") || odr_ok(o)) && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_ReferenceId (ODR o, Z_ReferenceId **p, int opt, const char *name) -{ - return odr_implicit_tag (o, odr_octetstring, p, ODR_CONTEXT, 2, opt, name); -} - -int z_ResultSetId (ODR o, Z_ResultSetId **p, int opt, const char *name) -{ - return odr_implicit_tag (o, z_InternationalString, p, ODR_CONTEXT, 31, opt, name); -} - -int z_ElementSetName (ODR o, Z_ElementSetName **p, int opt, const char *name) -{ - return odr_implicit_tag (o, z_InternationalString, p, ODR_CONTEXT, 103, opt, name); -} - -int z_DatabaseName (ODR o, Z_DatabaseName **p, int opt, const char *name) -{ - return odr_implicit_tag (o, z_InternationalString, p, ODR_CONTEXT, 105, opt, name); -} - -int z_AttributeSetId (ODR o, Z_AttributeSetId **p, int opt, const char *name) -{ - return odr_oid (o, p, opt, name); -} - -int z_OtherInformationUnit (ODR o, Z_OtherInformationUnit **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_OtherInfo_characterInfo, - (Odr_fun) z_InternationalString, "characterInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_OtherInfo_binaryInfo, - (Odr_fun) odr_octetstring, "binaryInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_OtherInfo_externallyDefinedInfo, - (Odr_fun) z_External, "externallyDefinedInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_OtherInfo_oid, - (Odr_fun) odr_oid, "oid"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InfoCategory, - &(*p)->category, ODR_CONTEXT, 1, 1, "category") && - odr_choice (o, arm, &(*p)->information, &(*p)->which, 0) && - odr_sequence_end (o); -} - -int z_OtherInformation (ODR o, Z_OtherInformation **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - odr_implicit_settag (o, ODR_CONTEXT, 201); - if (odr_sequence_of (o, (Odr_fun) z_OtherInformationUnit, &(*p)->list, - &(*p)->num_elements, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_InfoCategory (ODR o, Z_InfoCategory **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->categoryTypeId, ODR_CONTEXT, 1, 1, "categoryTypeId") && - odr_implicit_tag (o, odr_integer, - &(*p)->categoryValue, ODR_CONTEXT, 2, 0, "categoryValue") && - odr_sequence_end (o); -} - -int z_IntUnit (ODR o, Z_IntUnit **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->value, ODR_CONTEXT, 1, 0, "value") && - odr_implicit_tag (o, z_Unit, - &(*p)->unitUsed, ODR_CONTEXT, 2, 0, "unitUsed") && - odr_sequence_end (o); -} - -int z_Unit (ODR o, Z_Unit **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_InternationalString, - &(*p)->unitSystem, ODR_CONTEXT, 1, 1, "unitSystem") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->unitType, ODR_CONTEXT, 2, 1, "unitType") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->unit, ODR_CONTEXT, 3, 1, "unit") && - odr_implicit_tag (o, odr_integer, - &(*p)->scaleFactor, ODR_CONTEXT, 4, 1, "scaleFactor") && - odr_sequence_end (o); -} - -int z_InternationalString (ODR o, Z_InternationalString **p, int opt, const char *name) -{ - return odr_generalstring (o, p, opt, name); -} - -int z_StringOrNumeric (ODR o, Z_StringOrNumeric **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_StringOrNumeric_string, - (Odr_fun) z_InternationalString, "string"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_StringOrNumeric_numeric, - (Odr_fun) odr_integer, "numeric"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - - -/* the type-0 query ... */ -int z_ANY_type_0 (ODR o, void **p, int opt) -{ - return 0; -} - - diff --git a/dependencies/yaz_3.0.14/src/z-date.c b/dependencies/yaz_3.0.14/src/z-date.c deleted file mode 100644 index dae5c4f..0000000 --- a/dependencies/yaz_3.0.14/src/z-date.c +++ /dev/null @@ -1,163 +0,0 @@ -/** \file z-date.c - \brief ASN.1 Module UserInfoFormat-dateTime - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_DateTime (ODR o, Z_DateTime **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_Date, - &(*p)->date, ODR_CONTEXT, 1, 1, "date") && - odr_explicit_tag (o, z_Time, - &(*p)->time, ODR_CONTEXT, 2, 1, "time") && - odr_sequence_end (o); -} - -int z_DateMonthAndDay (ODR o, Z_DateMonthAndDay **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->month, ODR_CONTEXT, 2, 0, "month") && - odr_implicit_tag (o, odr_integer, - &(*p)->day, ODR_CONTEXT, 3, 1, "day") && - odr_sequence_end (o); -} - -int z_DateQuarter (ODR o, Z_DateQuarter **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DateQuarter_first, - (Odr_fun) odr_null, "first"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DateQuarter_second, - (Odr_fun) odr_null, "second"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DateQuarter_third, - (Odr_fun) odr_null, "third"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DateQuarter_fourth, - (Odr_fun) odr_null, "fourth"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_DateSeason (ODR o, Z_DateSeason **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DateSeason_winter, - (Odr_fun) odr_null, "winter"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DateSeason_spring, - (Odr_fun) odr_null, "spring"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DateSeason_summer, - (Odr_fun) odr_null, "summer"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DateSeason_autumn, - (Odr_fun) odr_null, "autumn"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Era (ODR o, Z_Era **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Era_decade, - (Odr_fun) odr_null, "decade"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Era_century, - (Odr_fun) odr_null, "century"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Era_millennium, - (Odr_fun) odr_null, "millennium"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_DateFlags (ODR o, Z_DateFlags **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_null, - &(*p)->circa, ODR_CONTEXT, 1, 1, "circa") && - odr_explicit_tag (o, z_Era, - &(*p)->era, ODR_CONTEXT, 2, 1, "era") && - odr_sequence_end (o); -} - -int z_Date (ODR o, Z_Date **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Date_monthAndDay, - (Odr_fun) z_DateMonthAndDay, "monthAndDay"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Date_julianDay, - (Odr_fun) odr_integer, "julianDay"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Date_weekNumber, - (Odr_fun) odr_integer, "weekNumber"}, - {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_Date_quarter, - (Odr_fun) z_DateQuarter, "quarter"}, - {ODR_EXPLICIT, ODR_CONTEXT, 5, Z_Date_season, - (Odr_fun) z_DateSeason, "season"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->year, ODR_CONTEXT, 1, 0, "year") && - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "partOfYear") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_implicit_tag (o, z_DateFlags, - &(*p)->flags, ODR_CONTEXT, 3, 1, "flags") && - odr_sequence_end (o); -} - -int z_Time (ODR o, Z_Time **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Time_local, - (Odr_fun) odr_null, "local"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Time_utc, - (Odr_fun) odr_null, "utc"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Time_utcOffset, - (Odr_fun) odr_integer, "utcOffset"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->hour, ODR_CONTEXT, 1, 0, "hour") && - odr_implicit_tag (o, odr_integer, - &(*p)->minute, ODR_CONTEXT, 2, 1, "minute") && - odr_implicit_tag (o, odr_integer, - &(*p)->second, ODR_CONTEXT, 3, 1, "second") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->partOfSecond, ODR_CONTEXT, 4, 1, "partOfSecond") && - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "zone") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-diag1.c b/dependencies/yaz_3.0.14/src/z-diag1.c deleted file mode 100644 index f91803f..0000000 --- a/dependencies/yaz_3.0.14/src/z-diag1.c +++ /dev/null @@ -1,396 +0,0 @@ -/** \file z-diag1.c - \brief ASN.1 Module DiagnosticFormatDiag1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_DiagnosticFormat_s (ODR o, Z_DiagnosticFormat_s **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DiagnosticFormat_s_defaultDiagRec, - (Odr_fun) z_DefaultDiagFormat, "defaultDiagRec"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_DiagnosticFormat_s_explicitDiagnostic, - (Odr_fun) z_DiagFormat, "explicitDiagnostic"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "diagnostic") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_implicit_tag (o, z_InternationalString, - &(*p)->message, ODR_CONTEXT, 2, 1, "message") && - odr_sequence_end (o); -} - -int z_DiagnosticFormat (ODR o, Z_DiagnosticFormat **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_DiagnosticFormat_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_TooMany (ODR o, Z_TooMany **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->tooManyWhat, ODR_CONTEXT, 1, 0, "tooManyWhat") && - odr_implicit_tag (o, odr_integer, - &(*p)->max, ODR_CONTEXT, 2, 1, "max") && - odr_sequence_end (o); -} - -int z_BadSpec (ODR o, Z_BadSpec **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_Specification, - &(*p)->spec, ODR_CONTEXT, 1, 0, "spec") && - odr_implicit_tag (o, z_DatabaseName, - &(*p)->db, ODR_CONTEXT, 2, 1, "db") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_Specification, &(*p)->goodOnes, - &(*p)->num_goodOnes, "goodOnes") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_DbUnavail_0 (ODR o, Z_DbUnavail_0 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->reasonCode, ODR_CONTEXT, 1, 1, "reasonCode") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->message, ODR_CONTEXT, 2, 1, "message") && - odr_sequence_end (o); -} - -int z_DbUnavail (ODR o, Z_DbUnavail **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_DatabaseName, - &(*p)->db, ODR_CONTEXT, 1, 0, "db") && - odr_implicit_tag (o, z_DbUnavail_0, - &(*p)->why, ODR_CONTEXT, 2, 0, "why") && - odr_sequence_end (o); -} - -int z_Attribute (ODR o, Z_Attribute **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->id, ODR_CONTEXT, 1, 0, "id") && - odr_implicit_tag (o, odr_integer, - &(*p)->type, ODR_CONTEXT, 2, 1, "type") && - odr_implicit_tag (o, odr_integer, - &(*p)->value, ODR_CONTEXT, 3, 1, "value") && - odr_explicit_tag (o, z_Term, - &(*p)->term, ODR_CONTEXT, 4, 1, "term") && - odr_sequence_end (o); -} - -int z_AttCombo (ODR o, Z_AttCombo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_AttributeList, - &(*p)->unsupportedCombination, ODR_CONTEXT, 1, 0, "unsupportedCombination") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_AttributeList, &(*p)->recommendedAlternatives, - &(*p)->num_recommendedAlternatives, "recommendedAlternatives") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_DiagTerm (ODR o, Z_DiagTerm **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->problem, ODR_CONTEXT, 1, 1, "problem") && - odr_explicit_tag (o, z_Term, - &(*p)->term, ODR_CONTEXT, 2, 0, "term") && - odr_sequence_end (o); -} - -int z_Proximity (ODR o, Z_Proximity **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Proximity_resultSets, - (Odr_fun) odr_null, "resultSets"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Proximity_badSet, - (Odr_fun) z_InternationalString, "badSet"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Proximity_relation, - (Odr_fun) odr_integer, "relation"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Proximity_unit, - (Odr_fun) odr_integer, "unit"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Proximity_distance, - (Odr_fun) odr_integer, "distance"}, - {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_Proximity_attributes, - (Odr_fun) z_AttributeList, "attributes"}, - {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Proximity_ordered, - (Odr_fun) odr_null, "ordered"}, - {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Proximity_exclusion, - (Odr_fun) odr_null, "exclusion"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_AttrListList (ODR o, Z_AttrListList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_AttributeList, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Scan (ODR o, Z_Scan **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Scan_nonZeroStepSize, - (Odr_fun) odr_null, "nonZeroStepSize"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Scan_specifiedStepSize, - (Odr_fun) odr_null, "specifiedStepSize"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Scan_termList1, - (Odr_fun) odr_null, "termList1"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Scan_termList2, - (Odr_fun) z_AttrListList, "termList2"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Scan_posInResponse, - (Odr_fun) odr_integer, "posInResponse"}, - {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_Scan_resources, - (Odr_fun) odr_null, "resources"}, - {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Scan_endOfList, - (Odr_fun) odr_null, "endOfList"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_StringList (ODR o, Z_StringList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_InternationalString, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Sort (ODR o, Z_Sort **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortD_sequence, - (Odr_fun) odr_null, "sequence"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortD_noRsName, - (Odr_fun) odr_null, "noRsName"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortD_tooMany, - (Odr_fun) odr_integer, "tooMany"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_SortD_incompatible, - (Odr_fun) odr_null, "incompatible"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_SortD_generic, - (Odr_fun) odr_null, "generic"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_SortD_dbSpecific, - (Odr_fun) odr_null, "dbSpecific"}, - {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_SortD_sortElement, - (Odr_fun) z_SortElement, "sortElement"}, - {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_SortD_key, - (Odr_fun) odr_integer, "key"}, - {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_SortD_action, - (Odr_fun) odr_null, "action"}, - {ODR_IMPLICIT, ODR_CONTEXT, 9, Z_SortD_illegal, - (Odr_fun) odr_integer, "illegal"}, - {ODR_IMPLICIT, ODR_CONTEXT, 10, Z_SortD_inputTooLarge, - (Odr_fun) z_StringList, "inputTooLarge"}, - {ODR_IMPLICIT, ODR_CONTEXT, 11, Z_SortD_aggregateTooLarge, - (Odr_fun) odr_null, "aggregateTooLarge"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Segmentation (ODR o, Z_Segmentation **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Segmentation_segmentCount, - (Odr_fun) odr_null, "segmentCount"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Segmentation_segmentSize, - (Odr_fun) odr_integer, "segmentSize"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ExtServices (ODR o, Z_ExtServices **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ExtServices_req, - (Odr_fun) odr_integer, "req"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ExtServices_permission, - (Odr_fun) odr_integer, "permission"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ExtServices_immediate, - (Odr_fun) odr_integer, "immediate"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_OidList (ODR o, Z_OidList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) odr_oid, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_AltOidList (ODR o, Z_AltOidList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) odr_oid, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_AccessCtrl (ODR o, Z_AccessCtrl **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_AccessCtrl_noUser, - (Odr_fun) odr_null, "noUser"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_AccessCtrl_refused, - (Odr_fun) odr_null, "refused"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AccessCtrl_simple, - (Odr_fun) odr_null, "simple"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AccessCtrl_oid, - (Odr_fun) z_OidList, "oid"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_AccessCtrl_alternative, - (Odr_fun) z_AltOidList, "alternative"}, - {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_AccessCtrl_pwdInv, - (Odr_fun) odr_null, "pwdInv"}, - {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_AccessCtrl_pwdExp, - (Odr_fun) odr_null, "pwdExp"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_RecordSyntax (ODR o, Z_RecordSyntax **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->unsupportedSyntax, ODR_CONTEXT, 1, 0, "unsupportedSyntax") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->suggestedAlternatives, - &(*p)->num_suggestedAlternatives, "suggestedAlternatives") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_DiagFormat (ODR o, Z_DiagFormat **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1000, Z_DiagFormat_tooMany, - (Odr_fun) z_TooMany, "tooMany"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1001, Z_DiagFormat_badSpec, - (Odr_fun) z_BadSpec, "badSpec"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1002, Z_DiagFormat_dbUnavail, - (Odr_fun) z_DbUnavail, "dbUnavail"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1003, Z_DiagFormat_unSupOp, - (Odr_fun) odr_integer, "unSupOp"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1004, Z_DiagFormat_attribute, - (Odr_fun) z_Attribute, "attribute"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1005, Z_DiagFormat_attCombo, - (Odr_fun) z_AttCombo, "attCombo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1006, Z_DiagFormat_term, - (Odr_fun) z_DiagTerm, "term"}, - {ODR_EXPLICIT, ODR_CONTEXT, 1007, Z_DiagFormat_proximity, - (Odr_fun) z_Proximity, "proximity"}, - {ODR_EXPLICIT, ODR_CONTEXT, 1008, Z_DiagFormat_scan, - (Odr_fun) z_Scan, "scan"}, - {ODR_EXPLICIT, ODR_CONTEXT, 1009, Z_DiagFormat_sort, - (Odr_fun) z_Sort, "sort"}, - {ODR_EXPLICIT, ODR_CONTEXT, 1010, Z_DiagFormat_segmentation, - (Odr_fun) z_Segmentation, "segmentation"}, - {ODR_EXPLICIT, ODR_CONTEXT, 1011, Z_DiagFormat_extServices, - (Odr_fun) z_ExtServices, "extServices"}, - {ODR_EXPLICIT, ODR_CONTEXT, 1012, Z_DiagFormat_accessCtrl, - (Odr_fun) z_AccessCtrl, "accessCtrl"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1013, Z_DiagFormat_recordSyntax, - (Odr_fun) z_RecordSyntax, "recordSyntax"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/z-espec1.c b/dependencies/yaz_3.0.14/src/z-espec1.c deleted file mode 100644 index 1dea58e..0000000 --- a/dependencies/yaz_3.0.14/src/z-espec1.c +++ /dev/null @@ -1,181 +0,0 @@ -/** \file z-espec1.c - \brief ASN.1 Module ElementSpecificationFormat-eSpec-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_Espec1 (ODR o, Z_Espec1 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->elementSetNames, - &(*p)->num_elementSetNames, "elementSetNames") || odr_ok(o)) && - odr_implicit_tag (o, odr_oid, - &(*p)->defaultVariantSetId, ODR_CONTEXT, 2, 1, "defaultVariantSetId") && - odr_implicit_tag (o, z_Variant, - &(*p)->defaultVariantRequest, ODR_CONTEXT, 3, 1, "defaultVariantRequest") && - odr_implicit_tag (o, odr_integer, - &(*p)->defaultTagType, ODR_CONTEXT, 4, 1, "defaultTagType") && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) z_ElementRequest, &(*p)->elements, - &(*p)->num_elements, "elements") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_ElementRequestCompositeElementPrimitives (ODR o, Z_ElementRequestCompositeElementPrimitives **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_InternationalString, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ElementRequestCompositeElementSpecs (ODR o, Z_ElementRequestCompositeElementSpecs **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_SimpleElement, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ElementRequestCompositeElement (ODR o, Z_ElementRequestCompositeElement **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementRequestCompositeElement_primitives, - (Odr_fun) z_ElementRequestCompositeElementPrimitives, "primitives"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementRequestCompositeElement_specs, - (Odr_fun) z_ElementRequestCompositeElementSpecs, "specs"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "elementList") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_implicit_tag (o, z_ETagPath, - &(*p)->deliveryTag, ODR_CONTEXT, 2, 0, "deliveryTag") && - odr_implicit_tag (o, z_Variant, - &(*p)->variantRequest, ODR_CONTEXT, 3, 1, "variantRequest") && - odr_sequence_end (o); -} - -int z_ElementRequest (ODR o, Z_ElementRequest **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ERequest_simpleElement, - (Odr_fun) z_SimpleElement, "simpleElement"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ERequest_compositeElement, - (Odr_fun) z_ElementRequestCompositeElement, "compositeElement"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_SimpleElement (ODR o, Z_SimpleElement **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_ETagPath, - &(*p)->path, ODR_CONTEXT, 1, 0, "path") && - odr_implicit_tag (o, z_Variant, - &(*p)->variantRequest, ODR_CONTEXT, 2, 1, "variantRequest") && - odr_sequence_end (o); -} - -int z_SpecificTag (ODR o, Z_SpecificTag **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->tagType, ODR_CONTEXT, 1, 1, "tagType") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") && - odr_explicit_tag (o, z_Occurrences, - &(*p)->occurrences, ODR_CONTEXT, 3, 1, "occurrences") && - odr_sequence_end (o); -} - -int z_ETagUnit (ODR o, Z_ETagUnit **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ETagUnit_specificTag, - (Odr_fun) z_SpecificTag, "specificTag"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ETagUnit_wildThing, - (Odr_fun) z_Occurrences, "wildThing"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ETagUnit_wildPath, - (Odr_fun) odr_null, "wildPath"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ETagPath (ODR o, Z_ETagPath **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_ETagUnit, &(*p)->tags, - &(*p)->num_tags, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_OccurValues (ODR o, Z_OccurValues **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->start, ODR_CONTEXT, 1, 0, "start") && - odr_implicit_tag (o, odr_integer, - &(*p)->howMany, ODR_CONTEXT, 2, 1, "howMany") && - odr_sequence_end (o); -} - -int z_Occurrences (ODR o, Z_Occurrences **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Occurrences_all, - (Odr_fun) odr_null, "all"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Occurrences_last, - (Odr_fun) odr_null, "last"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Occurrences_values, - (Odr_fun) z_OccurValues, "values"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/z-estask.c b/dependencies/yaz_3.0.14/src/z-estask.c deleted file mode 100644 index 8ebeb4f..0000000 --- a/dependencies/yaz_3.0.14/src/z-estask.c +++ /dev/null @@ -1,38 +0,0 @@ -/** \file z-estask.c - \brief ASN.1 Module RecordSyntax-ESTaskPackage - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_TaskPackage (ODR o, Z_TaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->packageType, ODR_CONTEXT, 1, 0, "packageType") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->packageName, ODR_CONTEXT, 2, 1, "packageName") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->userId, ODR_CONTEXT, 3, 1, "userId") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->retentionTime, ODR_CONTEXT, 4, 1, "retentionTime") && - odr_implicit_tag (o, z_Permissions, - &(*p)->permissions, ODR_CONTEXT, 5, 1, "permissions") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->description, ODR_CONTEXT, 6, 1, "description") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->targetReference, ODR_CONTEXT, 7, 1, "targetReference") && - odr_implicit_tag (o, odr_generalizedtime, - &(*p)->creationDateTime, ODR_CONTEXT, 8, 1, "creationDateTime") && - odr_implicit_tag (o, odr_integer, - &(*p)->taskStatus, ODR_CONTEXT, 9, 0, "taskStatus") && - odr_implicit_settag (o, ODR_CONTEXT, 10) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->packageDiagnostics, - &(*p)->num_packageDiagnostics, "packageDiagnostics") || odr_ok(o)) && - odr_implicit_tag (o, z_External, - &(*p)->taskSpecificParameters, ODR_CONTEXT, 11, 0, "taskSpecificParameters") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-exp.c b/dependencies/yaz_3.0.14/src/z-exp.c deleted file mode 100644 index e4322a7..0000000 --- a/dependencies/yaz_3.0.14/src/z-exp.c +++ /dev/null @@ -1,1455 +0,0 @@ -/** \file z-exp.c - \brief ASN.1 Module RecordSyntax-explain - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_ExplainRecord (ODR o, Z_ExplainRecord **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_Explain_targetInfo, - (Odr_fun) z_TargetInfo, "targetInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Explain_databaseInfo, - (Odr_fun) z_DatabaseInfo, "databaseInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Explain_schemaInfo, - (Odr_fun) z_SchemaInfo, "schemaInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Explain_tagSetInfo, - (Odr_fun) z_TagSetInfo, "tagSetInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_Explain_recordSyntaxInfo, - (Odr_fun) z_RecordSyntaxInfo, "recordSyntaxInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_Explain_attributeSetInfo, - (Odr_fun) z_AttributeSetInfo, "attributeSetInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_Explain_termListInfo, - (Odr_fun) z_TermListInfo, "termListInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_Explain_extendedServicesInfo, - (Odr_fun) z_ExtendedServicesInfo, "extendedServicesInfo"}, - {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_Explain_attributeDetails, - (Odr_fun) z_AttributeDetails, "attributeDetails"}, - {ODR_IMPLICIT, ODR_CONTEXT, 9, Z_Explain_termListDetails, - (Odr_fun) z_TermListDetails, "termListDetails"}, - {ODR_IMPLICIT, ODR_CONTEXT, 10, Z_Explain_elementSetDetails, - (Odr_fun) z_ElementSetDetails, "elementSetDetails"}, - {ODR_IMPLICIT, ODR_CONTEXT, 11, Z_Explain_retrievalRecordDetails, - (Odr_fun) z_RetrievalRecordDetails, "retrievalRecordDetails"}, - {ODR_IMPLICIT, ODR_CONTEXT, 12, Z_Explain_sortDetails, - (Odr_fun) z_SortDetails, "sortDetails"}, - {ODR_IMPLICIT, ODR_CONTEXT, 13, Z_Explain_processing, - (Odr_fun) z_ProcessingInformation, "processing"}, - {ODR_IMPLICIT, ODR_CONTEXT, 14, Z_Explain_variants, - (Odr_fun) z_VariantSetInfo, "variants"}, - {ODR_IMPLICIT, ODR_CONTEXT, 15, Z_Explain_units, - (Odr_fun) z_UnitInfo, "units"}, - {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_Explain_categoryList, - (Odr_fun) z_CategoryList, "categoryList"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_TargetInfo (ODR o, Z_TargetInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 1, 0, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->recentNews, ODR_CONTEXT, 2, 1, "recentNews") && - odr_implicit_tag (o, z_IconObject, - &(*p)->icon, ODR_CONTEXT, 3, 1, "icon") && - odr_implicit_tag (o, odr_bool, - &(*p)->namedResultSets, ODR_CONTEXT, 4, 0, "namedResultSets") && - odr_implicit_tag (o, odr_bool, - &(*p)->multipleDBsearch, ODR_CONTEXT, 5, 0, "multipleDBsearch") && - odr_implicit_tag (o, odr_integer, - &(*p)->maxResultSets, ODR_CONTEXT, 6, 1, "maxResultSets") && - odr_implicit_tag (o, odr_integer, - &(*p)->maxResultSize, ODR_CONTEXT, 7, 1, "maxResultSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->maxTerms, ODR_CONTEXT, 8, 1, "maxTerms") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->timeoutInterval, ODR_CONTEXT, 9, 1, "timeoutInterval") && - odr_implicit_tag (o, z_HumanString, - &(*p)->welcomeMessage, ODR_CONTEXT, 10, 1, "welcomeMessage") && - odr_implicit_tag (o, z_ContactInfo, - &(*p)->contactInfo, ODR_CONTEXT, 11, 1, "contactInfo") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 12, 1, "description") && - odr_implicit_settag (o, ODR_CONTEXT, 13) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->nicknames, - &(*p)->num_nicknames, "nicknames") || odr_ok(o)) && - odr_implicit_tag (o, z_HumanString, - &(*p)->usageRest, ODR_CONTEXT, 14, 1, "usageRest") && - odr_implicit_tag (o, z_HumanString, - &(*p)->paymentAddr, ODR_CONTEXT, 15, 1, "paymentAddr") && - odr_implicit_tag (o, z_HumanString, - &(*p)->hours, ODR_CONTEXT, 16, 1, "hours") && - odr_implicit_settag (o, ODR_CONTEXT, 17) && - (odr_sequence_of(o, (Odr_fun) z_DatabaseList, &(*p)->dbCombinations, - &(*p)->num_dbCombinations, "dbCombinations") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 18) && - (odr_sequence_of(o, (Odr_fun) z_NetworkAddress, &(*p)->addresses, - &(*p)->num_addresses, "addresses") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 101) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->languages, - &(*p)->num_languages, "languages") || odr_ok(o)) && - odr_implicit_tag (o, z_AccessInfo, - &(*p)->commonAccessInfo, ODR_CONTEXT, 19, 1, "commonAccessInfo") && - odr_sequence_end (o); -} - -int z_DatabaseInfo (ODR o, Z_DatabaseInfo **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_DatabaseInfo_actualNumber, - (Odr_fun) odr_integer, "actualNumber"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DatabaseInfo_approxNumber, - (Odr_fun) odr_integer, "approxNumber"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_DatabaseName, - &(*p)->name, ODR_CONTEXT, 1, 0, "name") && - odr_implicit_tag (o, odr_null, - &(*p)->explainDatabase, ODR_CONTEXT, 2, 1, "explainDatabase") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->nicknames, - &(*p)->num_nicknames, "nicknames") || odr_ok(o)) && - odr_implicit_tag (o, z_IconObject, - &(*p)->icon, ODR_CONTEXT, 4, 1, "icon") && - odr_implicit_tag (o, odr_bool, - &(*p)->userFee, ODR_CONTEXT, 5, 0, "userFee") && - odr_implicit_tag (o, odr_bool, - &(*p)->available, ODR_CONTEXT, 6, 0, "available") && - odr_implicit_tag (o, z_HumanString, - &(*p)->titleString, ODR_CONTEXT, 7, 1, "titleString") && - odr_implicit_settag (o, ODR_CONTEXT, 8) && - (odr_sequence_of(o, (Odr_fun) z_HumanString, &(*p)->keywords, - &(*p)->num_keywords, "keywords") || odr_ok(o)) && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 9, 1, "description") && - odr_implicit_tag (o, z_DatabaseList, - &(*p)->associatedDbs, ODR_CONTEXT, 10, 1, "associatedDbs") && - odr_implicit_tag (o, z_DatabaseList, - &(*p)->subDbs, ODR_CONTEXT, 11, 1, "subDbs") && - odr_implicit_tag (o, z_HumanString, - &(*p)->disclaimers, ODR_CONTEXT, 12, 1, "disclaimers") && - odr_implicit_tag (o, z_HumanString, - &(*p)->news, ODR_CONTEXT, 13, 1, "news") && - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 14, "recordCount") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_implicit_tag (o, z_HumanString, - &(*p)->defaultOrder, ODR_CONTEXT, 15, 1, "defaultOrder") && - odr_implicit_tag (o, odr_integer, - &(*p)->avRecordSize, ODR_CONTEXT, 16, 1, "avRecordSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->maxRecordSize, ODR_CONTEXT, 17, 1, "maxRecordSize") && - odr_implicit_tag (o, z_HumanString, - &(*p)->hours, ODR_CONTEXT, 18, 1, "hours") && - odr_implicit_tag (o, z_HumanString, - &(*p)->bestTime, ODR_CONTEXT, 19, 1, "bestTime") && - odr_implicit_tag (o, odr_generalizedtime, - &(*p)->lastUpdate, ODR_CONTEXT, 20, 1, "lastUpdate") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->updateInterval, ODR_CONTEXT, 21, 1, "updateInterval") && - odr_implicit_tag (o, z_HumanString, - &(*p)->coverage, ODR_CONTEXT, 22, 1, "coverage") && - odr_implicit_tag (o, odr_bool, - &(*p)->proprietary, ODR_CONTEXT, 23, 1, "proprietary") && - odr_implicit_tag (o, z_HumanString, - &(*p)->copyrightText, ODR_CONTEXT, 24, 1, "copyrightText") && - odr_implicit_tag (o, z_HumanString, - &(*p)->copyrightNotice, ODR_CONTEXT, 25, 1, "copyrightNotice") && - odr_implicit_tag (o, z_ContactInfo, - &(*p)->producerContactInfo, ODR_CONTEXT, 26, 1, "producerContactInfo") && - odr_implicit_tag (o, z_ContactInfo, - &(*p)->supplierContactInfo, ODR_CONTEXT, 27, 1, "supplierContactInfo") && - odr_implicit_tag (o, z_ContactInfo, - &(*p)->submissionContactInfo, ODR_CONTEXT, 28, 1, "submissionContactInfo") && - odr_implicit_tag (o, z_AccessInfo, - &(*p)->accessInfo, ODR_CONTEXT, 29, 1, "accessInfo") && - odr_sequence_end (o); -} - -int z_TagTypeMapping (ODR o, Z_TagTypeMapping **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->tagType, ODR_CONTEXT, 0, 0, "tagType") && - odr_implicit_tag (o, odr_oid, - &(*p)->tagSet, ODR_CONTEXT, 1, 1, "tagSet") && - odr_implicit_tag (o, odr_null, - &(*p)->defaultTagType, ODR_CONTEXT, 2, 1, "defaultTagType") && - odr_sequence_end (o); -} - -int z_SchemaInfo (ODR o, Z_SchemaInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, odr_oid, - &(*p)->schema, ODR_CONTEXT, 1, 0, "schema") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 2, 0, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 3, 1, "description") && - odr_implicit_settag (o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, (Odr_fun) z_TagTypeMapping, &(*p)->tagTypeMapping, - &(*p)->num_tagTypeMapping, "tagTypeMapping") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->recordStructure, - &(*p)->num_recordStructure, "recordStructure") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_ElementInfo (ODR o, Z_ElementInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->elementName, ODR_CONTEXT, 1, 0, "elementName") && - odr_implicit_tag (o, z_Path, - &(*p)->elementTagPath, ODR_CONTEXT, 2, 0, "elementTagPath") && - odr_explicit_tag (o, z_ElementDataType, - &(*p)->dataType, ODR_CONTEXT, 3, 1, "dataType") && - odr_implicit_tag (o, odr_bool, - &(*p)->required, ODR_CONTEXT, 4, 0, "required") && - odr_implicit_tag (o, odr_bool, - &(*p)->repeatable, ODR_CONTEXT, 5, 0, "repeatable") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 6, 1, "description") && - odr_sequence_end (o); -} - -int z_PathUnit (ODR o, Z_PathUnit **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->tagType, ODR_CONTEXT, 1, 0, "tagType") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") && - odr_sequence_end (o); -} - -int z_Path (ODR o, Z_Path **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_PathUnit, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ElementInfoList (ODR o, Z_ElementInfoList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_ElementInfo, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ElementDataType (ODR o, Z_ElementDataType **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ElementDataType_primitive, - (Odr_fun) z_PrimitiveDataType, "primitive"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementDataType_structured, - (Odr_fun) z_ElementInfoList, "structured"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PrimitiveDataType (ODR o, Z_PrimitiveDataType **p, int opt, const char *name) -{ - return odr_integer (o, p, opt, name); -} - -int z_TagSetElements (ODR o, Z_TagSetElements **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->elementname, ODR_CONTEXT, 1, 0, "elementname") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->nicknames, - &(*p)->num_nicknames, "nicknames") || odr_ok(o)) && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->elementTag, ODR_CONTEXT, 3, 0, "elementTag") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 4, 1, "description") && - odr_explicit_tag (o, z_PrimitiveDataType, - &(*p)->dataType, ODR_CONTEXT, 5, 1, "dataType") && - z_OtherInformation(o, &(*p)->otherTagInfo, 1, "otherTagInfo") && - odr_sequence_end (o); -} - -int z_TagSetInfo (ODR o, Z_TagSetInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, odr_oid, - &(*p)->tagSet, ODR_CONTEXT, 1, 0, "tagSet") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 2, 0, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 3, 1, "description") && - odr_implicit_settag (o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, (Odr_fun) z_TagSetElements, &(*p)->elements, - &(*p)->num_elements, "elements") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_RecordSyntaxInfo (ODR o, Z_RecordSyntaxInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, odr_oid, - &(*p)->recordSyntax, ODR_CONTEXT, 1, 0, "recordSyntax") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 2, 0, "name") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->transferSyntaxes, - &(*p)->num_transferSyntaxes, "transferSyntaxes") || odr_ok(o)) && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 4, 1, "description") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->asn1Module, ODR_CONTEXT, 5, 1, "asn1Module") && - odr_implicit_settag (o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->abstractStructure, - &(*p)->num_abstractStructure, "abstractStructure") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_AttributeSetInfo (ODR o, Z_AttributeSetInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_AttributeSetId, - &(*p)->attributeSet, ODR_CONTEXT, 1, 0, "attributeSet") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 2, 0, "name") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_AttributeType, &(*p)->attributes, - &(*p)->num_attributes, "attributes") || odr_ok(o)) && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 4, 1, "description") && - odr_sequence_end (o); -} - -int z_AttributeType (ODR o, Z_AttributeType **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 0, 1, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_implicit_tag (o, odr_integer, - &(*p)->attributeType, ODR_CONTEXT, 2, 0, "attributeType") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - odr_sequence_of(o, (Odr_fun) z_AttributeDescription, &(*p)->attributeValues, - &(*p)->num_attributeValues, "attributeValues") && - odr_sequence_end (o); -} - -int z_AttributeDescription (ODR o, Z_AttributeDescription **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 0, 1, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->attributeValue, ODR_CONTEXT, 2, 0, "attributeValue") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->equivalentAttributes, - &(*p)->num_equivalentAttributes, "equivalentAttributes") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_TermListElement (ODR o, Z_TermListElement **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 1, 0, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->title, ODR_CONTEXT, 2, 1, "title") && - odr_implicit_tag (o, odr_integer, - &(*p)->searchCost, ODR_CONTEXT, 3, 1, "searchCost") && - odr_implicit_tag (o, odr_bool, - &(*p)->scanable, ODR_CONTEXT, 4, 0, "scanable") && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->broader, - &(*p)->num_broader, "broader") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->narrower, - &(*p)->num_narrower, "narrower") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_TermListInfo (ODR o, Z_TermListInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_DatabaseName, - &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - odr_sequence_of(o, (Odr_fun) z_TermListElement, &(*p)->termLists, - &(*p)->num_termLists, "termLists") && - odr_sequence_end (o); -} - -int z_ExtendedServicesInfo (ODR o, Z_ExtendedServicesInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, odr_oid, - &(*p)->type, ODR_CONTEXT, 1, 0, "type") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 2, 1, "name") && - odr_implicit_tag (o, odr_bool, - &(*p)->privateType, ODR_CONTEXT, 3, 0, "privateType") && - odr_implicit_tag (o, odr_bool, - &(*p)->restrictionsApply, ODR_CONTEXT, 5, 0, "restrictionsApply") && - odr_implicit_tag (o, odr_bool, - &(*p)->feeApply, ODR_CONTEXT, 6, 0, "feeApply") && - odr_implicit_tag (o, odr_bool, - &(*p)->available, ODR_CONTEXT, 7, 0, "available") && - odr_implicit_tag (o, odr_bool, - &(*p)->retentionSupported, ODR_CONTEXT, 8, 0, "retentionSupported") && - odr_implicit_tag (o, odr_integer, - &(*p)->waitAction, ODR_CONTEXT, 9, 0, "waitAction") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 10, 1, "description") && - odr_implicit_tag (o, z_External, - &(*p)->specificExplain, ODR_CONTEXT, 11, 1, "specificExplain") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->esASN, ODR_CONTEXT, 12, 1, "esASN") && - odr_sequence_end (o); -} - -int z_AttributeDetails (ODR o, Z_AttributeDetails **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_DatabaseName, - &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_AttributeSetDetails, &(*p)->attributesBySet, - &(*p)->num_attributesBySet, "attributesBySet") || odr_ok(o)) && - odr_implicit_tag (o, z_AttributeCombinations, - &(*p)->attributeCombinations, ODR_CONTEXT, 3, 1, "attributeCombinations") && - odr_sequence_end (o); -} - -int z_AttributeSetDetails (ODR o, Z_AttributeSetDetails **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_AttributeSetId, - &(*p)->attributeSet, ODR_CONTEXT, 0, 0, "attributeSet") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - odr_sequence_of(o, (Odr_fun) z_AttributeTypeDetails, &(*p)->attributesByType, - &(*p)->num_attributesByType, "attributesByType") && - odr_sequence_end (o); -} - -int z_AttributeTypeDetails (ODR o, Z_AttributeTypeDetails **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->attributeType, ODR_CONTEXT, 0, 0, "attributeType") && - odr_implicit_tag (o, z_OmittedAttributeInterpretation, - &(*p)->defaultIfOmitted, ODR_CONTEXT, 1, 1, "defaultIfOmitted") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_AttributeValue, &(*p)->attributeValues, - &(*p)->num_attributeValues, "attributeValues") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_OmittedAttributeInterpretation (ODR o, Z_OmittedAttributeInterpretation **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->defaultValue, ODR_CONTEXT, 0, 1, "defaultValue") && - odr_implicit_tag (o, z_HumanString, - &(*p)->defaultDescription, ODR_CONTEXT, 1, 1, "defaultDescription") && - odr_sequence_end (o); -} - -int z_AttributeValue (ODR o, Z_AttributeValue **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->value, ODR_CONTEXT, 0, 0, "value") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->subAttributes, - &(*p)->num_subAttributes, "subAttributes") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->superAttributes, - &(*p)->num_superAttributes, "superAttributes") || odr_ok(o)) && - odr_implicit_tag (o, odr_null, - &(*p)->partialSupport, ODR_CONTEXT, 4, 1, "partialSupport") && - odr_sequence_end (o); -} - -int z_EScanInfo (ODR o, Z_EScanInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->maxStepSize, ODR_CONTEXT, 0, 1, "maxStepSize") && - odr_implicit_tag (o, z_HumanString, - &(*p)->collatingSequence, ODR_CONTEXT, 1, 1, "collatingSequence") && - odr_implicit_tag (o, odr_bool, - &(*p)->increasing, ODR_CONTEXT, 2, 1, "increasing") && - odr_sequence_end (o); -} - -int z_TermListDetails (ODR o, Z_TermListDetails **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->termListName, ODR_CONTEXT, 1, 0, "termListName") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 2, 1, "description") && - odr_implicit_tag (o, z_AttributeCombinations, - &(*p)->attributes, ODR_CONTEXT, 3, 1, "attributes") && - odr_implicit_tag (o, z_EScanInfo, - &(*p)->scanInfo, ODR_CONTEXT, 4, 1, "scanInfo") && - odr_implicit_tag (o, odr_integer, - &(*p)->estNumberTerms, ODR_CONTEXT, 5, 1, "estNumberTerms") && - odr_implicit_settag (o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, (Odr_fun) z_Term, &(*p)->sampleTerms, - &(*p)->num_sampleTerms, "sampleTerms") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_ElementSetDetails (ODR o, Z_ElementSetDetails **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_DatabaseName, - &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && - odr_implicit_tag (o, z_ElementSetName, - &(*p)->elementSetName, ODR_CONTEXT, 2, 0, "elementSetName") && - odr_implicit_tag (o, odr_oid, - &(*p)->recordSyntax, ODR_CONTEXT, 3, 0, "recordSyntax") && - odr_implicit_tag (o, odr_oid, - &(*p)->schema, ODR_CONTEXT, 4, 0, "schema") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 5, 1, "description") && - odr_implicit_settag (o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, (Odr_fun) z_PerElementDetails, &(*p)->detailsPerElement, - &(*p)->num_detailsPerElement, "detailsPerElement") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_RetrievalRecordDetails (ODR o, Z_RetrievalRecordDetails **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_DatabaseName, - &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && - odr_implicit_tag (o, odr_oid, - &(*p)->schema, ODR_CONTEXT, 2, 0, "schema") && - odr_implicit_tag (o, odr_oid, - &(*p)->recordSyntax, ODR_CONTEXT, 3, 0, "recordSyntax") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 4, 1, "description") && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) z_PerElementDetails, &(*p)->detailsPerElement, - &(*p)->num_detailsPerElement, "detailsPerElement") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_PerElementDetails (ODR o, Z_PerElementDetails **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 0, 1, "name") && - odr_implicit_tag (o, z_RecordTag, - &(*p)->recordTag, ODR_CONTEXT, 1, 1, "recordTag") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_Path, &(*p)->schemaTags, - &(*p)->num_schemaTags, "schemaTags") || odr_ok(o)) && - odr_implicit_tag (o, odr_integer, - &(*p)->maxSize, ODR_CONTEXT, 3, 1, "maxSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->minSize, ODR_CONTEXT, 4, 1, "minSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->avgSize, ODR_CONTEXT, 5, 1, "avgSize") && - odr_implicit_tag (o, odr_integer, - &(*p)->fixedSize, ODR_CONTEXT, 6, 1, "fixedSize") && - odr_implicit_tag (o, odr_bool, - &(*p)->repeatable, ODR_CONTEXT, 8, 0, "repeatable") && - odr_implicit_tag (o, odr_bool, - &(*p)->required, ODR_CONTEXT, 9, 0, "required") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 12, 1, "description") && - odr_implicit_tag (o, z_HumanString, - &(*p)->contents, ODR_CONTEXT, 13, 1, "contents") && - odr_implicit_tag (o, z_HumanString, - &(*p)->billingInfo, ODR_CONTEXT, 14, 1, "billingInfo") && - odr_implicit_tag (o, z_HumanString, - &(*p)->restrictions, ODR_CONTEXT, 15, 1, "restrictions") && - odr_implicit_settag (o, ODR_CONTEXT, 16) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->alternateNames, - &(*p)->num_alternateNames, "alternateNames") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 17) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->genericNames, - &(*p)->num_genericNames, "genericNames") || odr_ok(o)) && - odr_implicit_tag (o, z_AttributeCombinations, - &(*p)->searchAccess, ODR_CONTEXT, 18, 1, "searchAccess") && - odr_sequence_end (o); -} - -int z_RecordTag (ODR o, Z_RecordTag **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->qualifier, ODR_CONTEXT, 0, 1, "qualifier") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->tagValue, ODR_CONTEXT, 1, 0, "tagValue") && - odr_sequence_end (o); -} - -int z_SortDetails (ODR o, Z_SortDetails **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_DatabaseName, - &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_SortKeyDetails, &(*p)->sortKeys, - &(*p)->num_sortKeys, "sortKeys") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_SortKeyDetails (ODR o, Z_SortKeyDetails **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_SortKeyDetails_character, - (Odr_fun) odr_null, "character"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_SortKeyDetails_numeric, - (Odr_fun) odr_null, "numeric"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_SortKeyDetails_structured, - (Odr_fun) z_HumanString, "structured"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 0, 1, "description") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) z_Specification, &(*p)->elementSpecifications, - &(*p)->num_elementSpecifications, "elementSpecifications") || odr_ok(o)) && - odr_implicit_tag (o, z_AttributeCombinations, - &(*p)->attributeSpecifications, ODR_CONTEXT, 2, 1, "attributeSpecifications") && - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 3, "sortType") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_implicit_tag (o, odr_integer, - &(*p)->caseSensitivity, ODR_CONTEXT, 4, 1, "caseSensitivity") && - odr_sequence_end (o); -} - -int z_ProcessingInformation (ODR o, Z_ProcessingInformation **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_DatabaseName, - &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") && - odr_implicit_tag (o, odr_integer, - &(*p)->processingContext, ODR_CONTEXT, 2, 0, "processingContext") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 3, 0, "name") && - odr_implicit_tag (o, odr_oid, - &(*p)->oid, ODR_CONTEXT, 4, 0, "oid") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 5, 1, "description") && - odr_implicit_tag (o, z_External, - &(*p)->instructions, ODR_CONTEXT, 6, 1, "instructions") && - odr_sequence_end (o); -} - -int z_VariantSetInfo (ODR o, Z_VariantSetInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, odr_oid, - &(*p)->variantSet, ODR_CONTEXT, 1, 0, "variantSet") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 2, 0, "name") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_VariantClass, &(*p)->variants, - &(*p)->num_variants, "variants") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_VariantClass (ODR o, Z_VariantClass **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 0, 1, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_implicit_tag (o, odr_integer, - &(*p)->variantClass, ODR_CONTEXT, 2, 0, "variantClass") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - odr_sequence_of(o, (Odr_fun) z_VariantType, &(*p)->variantTypes, - &(*p)->num_variantTypes, "variantTypes") && - odr_sequence_end (o); -} - -int z_VariantType (ODR o, Z_VariantType **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 0, 1, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_implicit_tag (o, odr_integer, - &(*p)->variantType, ODR_CONTEXT, 2, 0, "variantType") && - odr_implicit_tag (o, z_VariantValue, - &(*p)->variantValue, ODR_CONTEXT, 3, 1, "variantValue") && - odr_sequence_end (o); -} - -int z_VariantValue (ODR o, Z_VariantValue **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_PrimitiveDataType, - &(*p)->dataType, ODR_CONTEXT, 0, 0, "dataType") && - odr_explicit_tag (o, z_ValueSet, - &(*p)->values, ODR_CONTEXT, 1, 1, "values") && - odr_sequence_end (o); -} - -int z_ValueSetEnumerated (ODR o, Z_ValueSetEnumerated **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_ValueDescription, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ValueSet (ODR o, Z_ValueSet **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_ValueSet_range, - (Odr_fun) z_ValueRange, "range"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueSet_enumerated, - (Odr_fun) z_ValueSetEnumerated, "enumerated"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ValueRange (ODR o, Z_ValueRange **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_ValueDescription, - &(*p)->lower, ODR_CONTEXT, 0, 1, "lower") && - odr_explicit_tag (o, z_ValueDescription, - &(*p)->upper, ODR_CONTEXT, 1, 1, "upper") && - odr_sequence_end (o); -} - -int z_ValueDescription (ODR o, Z_ValueDescription **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, Z_ValueDescription_integer, - (Odr_fun) odr_integer, "integer"}, - {-1, -1, -1, Z_ValueDescription_string, - (Odr_fun) z_InternationalString, "string"}, - {-1, -1, -1, Z_ValueDescription_octets, - (Odr_fun) odr_octetstring, "octets"}, - {-1, -1, -1, Z_ValueDescription_oid, - (Odr_fun) odr_oid, "oid"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ValueDescription_unit, - (Odr_fun) z_Unit, "unit"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ValueDescription_valueAndUnit, - (Odr_fun) z_IntUnit, "valueAndUnit"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_UnitInfo (ODR o, Z_UnitInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->unitSystem, ODR_CONTEXT, 1, 0, "unitSystem") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 2, 1, "description") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_UnitType, &(*p)->units, - &(*p)->num_units, "units") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_UnitType (ODR o, Z_UnitType **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 0, 1, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->unitType, ODR_CONTEXT, 2, 0, "unitType") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - odr_sequence_of(o, (Odr_fun) z_Units, &(*p)->units, - &(*p)->num_units, "units") && - odr_sequence_end (o); -} - -int z_Units (ODR o, Z_Units **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 0, 1, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->unit, ODR_CONTEXT, 2, 0, "unit") && - odr_sequence_end (o); -} - -int z_CategoryList (ODR o, Z_CategoryList **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CommonInfo, - &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - odr_sequence_of(o, (Odr_fun) z_CategoryInfo, &(*p)->categories, - &(*p)->num_categories, "categories") && - odr_sequence_end (o); -} - -int z_CategoryInfo (ODR o, Z_CategoryInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->category, ODR_CONTEXT, 1, 0, "category") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->originalCategory, ODR_CONTEXT, 2, 1, "originalCategory") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 3, 1, "description") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->asn1Module, ODR_CONTEXT, 4, 1, "asn1Module") && - odr_sequence_end (o); -} - -int z_CommonInfo (ODR o, Z_CommonInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_generalizedtime, - &(*p)->dateAdded, ODR_CONTEXT, 0, 1, "dateAdded") && - odr_implicit_tag (o, odr_generalizedtime, - &(*p)->dateChanged, ODR_CONTEXT, 1, 1, "dateChanged") && - odr_implicit_tag (o, odr_generalizedtime, - &(*p)->expiry, ODR_CONTEXT, 2, 1, "expiry") && - odr_implicit_tag (o, z_LanguageCode, - &(*p)->humanStringLanguage, ODR_CONTEXT, 3, 1, "humanStringLanguage") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_HumanStringUnit (ODR o, Z_HumanStringUnit **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_LanguageCode, - &(*p)->language, ODR_CONTEXT, 0, 1, "language") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->text, ODR_CONTEXT, 1, 0, "text") && - odr_sequence_end (o); -} - -int z_HumanString (ODR o, Z_HumanString **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_HumanStringUnit, &(*p)->strings, - &(*p)->num_strings, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IconObjectUnit (ODR o, Z_IconObjectUnit **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IconObjectUnit_ianaType, - (Odr_fun) z_InternationalString, "ianaType"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IconObjectUnit_z3950type, - (Odr_fun) z_InternationalString, "z3950type"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IconObjectUnit_otherType, - (Odr_fun) z_InternationalString, "otherType"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "bodyType") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_implicit_tag (o, odr_octetstring, - &(*p)->content, ODR_CONTEXT, 2, 0, "content") && - odr_sequence_end (o); -} - -int z_IconObject (ODR o, Z_IconObject **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_IconObjectUnit, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_LanguageCode (ODR o, Z_LanguageCode **p, int opt, const char *name) -{ - return z_InternationalString (o, p, opt, name); -} - -int z_ContactInfo (ODR o, Z_ContactInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 0, 1, "name") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_implicit_tag (o, z_HumanString, - &(*p)->address, ODR_CONTEXT, 2, 1, "address") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->email, ODR_CONTEXT, 3, 1, "email") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->phone, ODR_CONTEXT, 4, 1, "phone") && - odr_sequence_end (o); -} - -int z_NetworkAddressIA (ODR o, Z_NetworkAddressIA **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->hostAddress, ODR_CONTEXT, 0, 0, "hostAddress") && - odr_implicit_tag (o, odr_integer, - &(*p)->port, ODR_CONTEXT, 1, 0, "port") && - odr_sequence_end (o); -} - -int z_NetworkAddressOPA (ODR o, Z_NetworkAddressOPA **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->pSel, ODR_CONTEXT, 0, 0, "pSel") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->sSel, ODR_CONTEXT, 1, 1, "sSel") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->tSel, ODR_CONTEXT, 2, 1, "tSel") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->nSap, ODR_CONTEXT, 3, 0, "nSap") && - odr_sequence_end (o); -} - -int z_NetworkAddressOther (ODR o, Z_NetworkAddressOther **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->type, ODR_CONTEXT, 0, 0, "type") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->address, ODR_CONTEXT, 1, 0, "address") && - odr_sequence_end (o); -} - -int z_NetworkAddress (ODR o, Z_NetworkAddress **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_NetworkAddress_iA, - (Odr_fun) z_NetworkAddressIA, "internetAddress"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_NetworkAddress_oPA, - (Odr_fun) z_NetworkAddressOPA, "osiPresentationAddress"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_NetworkAddress_other, - (Odr_fun) z_NetworkAddressOther, "other"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_AccessInfo (ODR o, Z_AccessInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 0) && - (odr_sequence_of(o, (Odr_fun) z_QueryTypeDetails, &(*p)->queryTypesSupported, - &(*p)->num_queryTypesSupported, "queryTypesSupported") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->diagnosticsSets, - &(*p)->num_diagnosticsSets, "diagnosticsSets") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_AttributeSetId, &(*p)->attributeSetIds, - &(*p)->num_attributeSetIds, "attributeSetIds") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->schemas, - &(*p)->num_schemas, "schemas") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->recordSyntaxes, - &(*p)->num_recordSyntaxes, "recordSyntaxes") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->resourceChallenges, - &(*p)->num_resourceChallenges, "resourceChallenges") || odr_ok(o)) && - odr_implicit_tag (o, z_AccessRestrictions, - &(*p)->restrictedAccess, ODR_CONTEXT, 6, 1, "restrictedAccess") && - odr_implicit_tag (o, z_Costs, - &(*p)->costInfo, ODR_CONTEXT, 8, 1, "costInfo") && - odr_implicit_settag (o, ODR_CONTEXT, 9) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->variantSets, - &(*p)->num_variantSets, "variantSets") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 10) && - (odr_sequence_of(o, (Odr_fun) z_ElementSetName, &(*p)->elementSetNames, - &(*p)->num_elementSetNames, "elementSetNames") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 11) && - odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->unitSystems, - &(*p)->num_unitSystems, "unitSystems") && - odr_sequence_end (o); -} - -int z_QueryTypeDetails (ODR o, Z_QueryTypeDetails **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_QueryTypeDetails_private, - (Odr_fun) z_PrivateCapabilities, "zprivate"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryTypeDetails_rpn, - (Odr_fun) z_RpnCapabilities, "rpn"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_QueryTypeDetails_iso8777, - (Odr_fun) z_Iso8777Capabilities, "iso8777"}, - {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_QueryTypeDetails_z39_58, - (Odr_fun) z_HumanString, "z39_58"}, - {ODR_IMPLICIT, ODR_CONTEXT, 101, Z_QueryTypeDetails_erpn, - (Odr_fun) z_RpnCapabilities, "erpn"}, - {ODR_IMPLICIT, ODR_CONTEXT, 102, Z_QueryTypeDetails_rankedList, - (Odr_fun) z_HumanString, "rankedList"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PrivateCapOperator (ODR o, Z_PrivateCapOperator **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->roperator, ODR_CONTEXT, 0, 0, "roperator") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_sequence_end (o); -} - -int z_PrivateCapabilities (ODR o, Z_PrivateCapabilities **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 0) && - (odr_sequence_of(o, (Odr_fun) z_PrivateCapOperator, &(*p)->operators, - &(*p)->num_operators, "operators") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) z_SearchKey, &(*p)->searchKeys, - &(*p)->num_searchKeys, "searchKeys") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_HumanString, &(*p)->description, - &(*p)->num_description, "description") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_RpnCapabilities (ODR o, Z_RpnCapabilities **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 0) && - (odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->operators, - &(*p)->num_operators, "operators") || odr_ok(o)) && - odr_implicit_tag (o, odr_bool, - &(*p)->resultSetAsOperandSupported, ODR_CONTEXT, 1, 0, "resultSetAsOperandSupported") && - odr_implicit_tag (o, odr_bool, - &(*p)->restrictionOperandSupported, ODR_CONTEXT, 2, 0, "restrictionOperandSupported") && - odr_implicit_tag (o, z_ProximitySupport, - &(*p)->proximity, ODR_CONTEXT, 3, 1, "proximity") && - odr_sequence_end (o); -} - -int z_Iso8777Capabilities (ODR o, Z_Iso8777Capabilities **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 0) && - odr_sequence_of(o, (Odr_fun) z_SearchKey, &(*p)->searchKeys, - &(*p)->num_searchKeys, "searchKeys") && - odr_implicit_tag (o, z_HumanString, - &(*p)->restrictions, ODR_CONTEXT, 1, 1, "restrictions") && - odr_sequence_end (o); -} - -int z_ProxSupportPrivate (ODR o, Z_ProxSupportPrivate **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->unit, ODR_CONTEXT, 0, 0, "unit") && - odr_explicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_sequence_end (o); -} - -int z_ProxSupportUnit (ODR o, Z_ProxSupportUnit **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ProxSupportUnit_known, - (Odr_fun) odr_integer, "known"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ProxSupportUnit_private, - (Odr_fun) z_ProxSupportPrivate, "zprivate"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ProximitySupport (ODR o, Z_ProximitySupport **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->anySupport, ODR_CONTEXT, 0, 0, "anySupport") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) z_ProxSupportUnit, &(*p)->unitsSupported, - &(*p)->num_unitsSupported, "unitsSupported") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_SearchKey (ODR o, Z_SearchKey **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->searchKey, ODR_CONTEXT, 0, 0, "searchKey") && - odr_implicit_tag (o, z_HumanString, - &(*p)->description, ODR_CONTEXT, 1, 1, "description") && - odr_sequence_end (o); -} - -int z_AccessRestrictionsUnit (ODR o, Z_AccessRestrictionsUnit **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, odr_integer, - &(*p)->accessType, ODR_CONTEXT, 0, 0, "accessType") && - odr_implicit_tag (o, z_HumanString, - &(*p)->accessText, ODR_CONTEXT, 1, 1, "accessText") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->accessChallenges, - &(*p)->num_accessChallenges, "accessChallenges") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_AccessRestrictions (ODR o, Z_AccessRestrictions **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_AccessRestrictionsUnit, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_CostsOtherCharge (ODR o, Z_CostsOtherCharge **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_HumanString, - &(*p)->forWhat, ODR_CONTEXT, 1, 0, "forWhat") && - odr_implicit_tag (o, z_Charge, - &(*p)->charge, ODR_CONTEXT, 2, 0, "charge") && - odr_sequence_end (o); -} - -int z_Costs (ODR o, Z_Costs **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_Charge, - &(*p)->connectCharge, ODR_CONTEXT, 0, 1, "connectCharge") && - odr_implicit_tag (o, z_Charge, - &(*p)->connectTime, ODR_CONTEXT, 1, 1, "connectTime") && - odr_implicit_tag (o, z_Charge, - &(*p)->displayCharge, ODR_CONTEXT, 2, 1, "displayCharge") && - odr_implicit_tag (o, z_Charge, - &(*p)->searchCharge, ODR_CONTEXT, 3, 1, "searchCharge") && - odr_implicit_tag (o, z_Charge, - &(*p)->subscriptCharge, ODR_CONTEXT, 4, 1, "subscriptCharge") && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) z_CostsOtherCharge, &(*p)->otherCharges, - &(*p)->num_otherCharges, "otherCharges") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_Charge (ODR o, Z_Charge **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_IntUnit, - &(*p)->cost, ODR_CONTEXT, 1, 0, "cost") && - odr_implicit_tag (o, z_Unit, - &(*p)->perWhat, ODR_CONTEXT, 2, 1, "perWhat") && - odr_implicit_tag (o, z_HumanString, - &(*p)->text, ODR_CONTEXT, 3, 1, "text") && - odr_sequence_end (o); -} - -int z_DatabaseList (ODR o, Z_DatabaseList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_DatabaseName, &(*p)->databases, - &(*p)->num_databases, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_AttributeCombinations (ODR o, Z_AttributeCombinations **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_AttributeSetId, - &(*p)->defaultAttributeSet, ODR_CONTEXT, 0, 0, "defaultAttributeSet") && - odr_implicit_settag (o, ODR_CONTEXT, 1) && - odr_sequence_of(o, (Odr_fun) z_AttributeCombination, &(*p)->legalCombinations, - &(*p)->num_legalCombinations, "legalCombinations") && - odr_sequence_end (o); -} - -int z_AttributeCombination (ODR o, Z_AttributeCombination **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_AttributeOccurrence, &(*p)->occurrences, - &(*p)->num_occurrences, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_AttributeValueList (ODR o, Z_AttributeValueList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_StringOrNumeric, &(*p)->attributes, - &(*p)->num_attributes, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_AttributeOccurrence (ODR o, Z_AttributeOccurrence **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_AttributeOcc_any_or_none, - (Odr_fun) odr_null, "any_or_none"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_AttributeOcc_specific, - (Odr_fun) z_AttributeValueList, "specific"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_AttributeSetId, - &(*p)->attributeSet, ODR_CONTEXT, 0, 1, "attributeSet") && - odr_implicit_tag (o, odr_integer, - &(*p)->attributeType, ODR_CONTEXT, 1, 0, "attributeType") && - odr_implicit_tag (o, odr_null, - &(*p)->mustBeSupplied, ODR_CONTEXT, 2, 1, "mustBeSupplied") && - odr_choice (o, arm, &(*p)->attributeValues, &(*p)->which, 0) && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-grs.c b/dependencies/yaz_3.0.14/src/z-grs.c deleted file mode 100644 index 85374d7..0000000 --- a/dependencies/yaz_3.0.14/src/z-grs.c +++ /dev/null @@ -1,225 +0,0 @@ -/** \file z-grs.c - \brief ASN.1 Module RecordSyntax-generic - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_GenericRecord (ODR o, Z_GenericRecord **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_TaggedElement, &(*p)->elements, - &(*p)->num_elements, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_TaggedElement (ODR o, Z_TaggedElement **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->tagType, ODR_CONTEXT, 1, 1, "tagType") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") && - odr_implicit_tag (o, odr_integer, - &(*p)->tagOccurrence, ODR_CONTEXT, 3, 1, "tagOccurrence") && - odr_explicit_tag (o, z_ElementData, - &(*p)->content, ODR_CONTEXT, 4, 0, "content") && - odr_implicit_tag (o, z_ElementMetaData, - &(*p)->metaData, ODR_CONTEXT, 5, 1, "metaData") && - odr_implicit_tag (o, z_Variant, - &(*p)->appliedVariant, ODR_CONTEXT, 6, 1, "appliedVariant") && - odr_sequence_end (o); -} - -int z_ElementData (ODR o, Z_ElementData **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, Z_ElementData_octets, - (Odr_fun) odr_octetstring, "octets"}, - {-1, -1, -1, Z_ElementData_numeric, - (Odr_fun) odr_integer, "numeric"}, - {-1, -1, -1, Z_ElementData_date, - (Odr_fun) odr_generalizedtime, "date"}, - {-1, -1, -1, Z_ElementData_ext, - (Odr_fun) z_External, "ext"}, - {-1, -1, -1, Z_ElementData_string, - (Odr_fun) z_InternationalString, "string"}, - {-1, -1, -1, Z_ElementData_trueOrFalse, - (Odr_fun) odr_bool, "trueOrFalse"}, - {-1, -1, -1, Z_ElementData_oid, - (Odr_fun) odr_oid, "oid"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementData_intUnit, - (Odr_fun) z_IntUnit, "intUnit"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementData_elementNotThere, - (Odr_fun) odr_null, "elementNotThere"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ElementData_elementEmpty, - (Odr_fun) odr_null, "elementEmpty"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_ElementData_noDataRequested, - (Odr_fun) odr_null, "noDataRequested"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ElementData_diagnostic, - (Odr_fun) z_External, "diagnostic"}, - {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_ElementData_subtree, - (Odr_fun) z_GenericRecord, "subtree"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ElementMetaData (ODR o, Z_ElementMetaData **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_Order, - &(*p)->seriesOrder, ODR_CONTEXT, 1, 1, "seriesOrder") && - odr_implicit_tag (o, z_Usage, - &(*p)->usageRight, ODR_CONTEXT, 2, 1, "usageRight") && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_HitVector, &(*p)->hits, - &(*p)->num_hits, "hits") || odr_ok(o)) && - odr_implicit_tag (o, z_InternationalString, - &(*p)->displayName, ODR_CONTEXT, 4, 1, "displayName") && - odr_implicit_settag (o, ODR_CONTEXT, 5) && - (odr_sequence_of(o, (Odr_fun) z_Variant, &(*p)->supportedVariants, - &(*p)->num_supportedVariants, "supportedVariants") || odr_ok(o)) && - odr_implicit_tag (o, z_InternationalString, - &(*p)->message, ODR_CONTEXT, 6, 1, "message") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->elementDescriptor, ODR_CONTEXT, 7, 1, "elementDescriptor") && - odr_implicit_tag (o, z_TagPath, - &(*p)->surrogateFor, ODR_CONTEXT, 8, 1, "surrogateFor") && - odr_implicit_tag (o, z_TagPath, - &(*p)->surrogateElement, ODR_CONTEXT, 9, 1, "surrogateElement") && - odr_implicit_tag (o, z_External, - &(*p)->other, ODR_CONTEXT, 99, 1, "other") && - odr_sequence_end (o); -} - -int z_TagPath_s (ODR o, Z_TagPath_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->tagType, ODR_CONTEXT, 1, 1, "tagType") && - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") && - odr_implicit_tag (o, odr_integer, - &(*p)->tagOccurrence, ODR_CONTEXT, 3, 1, "tagOccurrence") && - odr_sequence_end (o); -} - -int z_TagPath (ODR o, Z_TagPath **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_TagPath_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_Order (ODR o, Z_Order **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->ascending, ODR_CONTEXT, 1, 0, "ascending") && - odr_implicit_tag (o, odr_integer, - &(*p)->order, ODR_CONTEXT, 2, 0, "order") && - odr_sequence_end (o); -} - -int z_Usage (ODR o, Z_Usage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->type, ODR_CONTEXT, 1, 0, "type") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->restriction, ODR_CONTEXT, 2, 1, "restriction") && - odr_sequence_end (o); -} - -int z_HitVector (ODR o, Z_HitVector **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_Term(o, &(*p)->satisfier, 1, "satisfier") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->offsetIntoElement, ODR_CONTEXT, 1, 1, "offsetIntoElement") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->length, ODR_CONTEXT, 2, 1, "length") && - odr_implicit_tag (o, odr_integer, - &(*p)->hitRank, ODR_CONTEXT, 3, 1, "hitRank") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->targetToken, ODR_CONTEXT, 4, 1, "targetToken") && - odr_sequence_end (o); -} - -int z_Triple (ODR o, Z_Triple **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {-1, -1, -1, Z_Triple_integer, - (Odr_fun) odr_integer, "integer"}, - {-1, -1, -1, Z_Triple_internationalString, - (Odr_fun) z_InternationalString, "internationalString"}, - {-1, -1, -1, Z_Triple_octetString, - (Odr_fun) odr_octetstring, "octetString"}, - {-1, -1, -1, Z_Triple_objectIdentifier, - (Odr_fun) odr_oid, "objectIdentifier"}, - {-1, -1, -1, Z_Triple_boolean, - (Odr_fun) odr_bool, "boolean"}, - {-1, -1, -1, Z_Triple_null, - (Odr_fun) odr_null, "null"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Triple_unit, - (Odr_fun) z_Unit, "unit"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Triple_valueAndUnit, - (Odr_fun) z_IntUnit, "valueAndUnit"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->variantSetId, ODR_CONTEXT, 0, 1, "variantSetId") && - odr_implicit_tag (o, odr_integer, - &(*p)->zclass, ODR_CONTEXT, 1, 0, "zclass") && - odr_implicit_tag (o, odr_integer, - &(*p)->type, ODR_CONTEXT, 2, 0, "type") && - odr_constructed_begin (o, &(*p)->value, ODR_CONTEXT, 3, "value") && - odr_choice (o, arm, &(*p)->value, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_sequence_end (o); -} - -int z_Variant (ODR o, Z_Variant **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_oid, - &(*p)->globalVariantSetId, ODR_CONTEXT, 1, 1, "globalVariantSetId") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - odr_sequence_of(o, (Odr_fun) z_Triple, &(*p)->triples, - &(*p)->num_triples, "triples") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-mterm2.c b/dependencies/yaz_3.0.14/src/z-mterm2.c deleted file mode 100644 index 9b85387..0000000 --- a/dependencies/yaz_3.0.14/src/z-mterm2.c +++ /dev/null @@ -1,31 +0,0 @@ -/** \file z-mterm2.c - \brief ASN.1 Module UserInfoFormat-multipleSearchTerms-2 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_MultipleSearchTerms_2_s (ODR o, Z_MultipleSearchTerms_2_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_Term, - &(*p)->term, ODR_CONTEXT, 1, 0, "term") && - odr_implicit_tag (o, odr_bool, - &(*p)->flag, ODR_CONTEXT, 2, 1, "flag") && - odr_sequence_end (o); -} - -int z_MultipleSearchTerms_2 (ODR o, Z_MultipleSearchTerms_2 **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_MultipleSearchTerms_2_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/z-oclcui.c b/dependencies/yaz_3.0.14/src/z-oclcui.c deleted file mode 100644 index 1e18fb9..0000000 --- a/dependencies/yaz_3.0.14/src/z-oclcui.c +++ /dev/null @@ -1,30 +0,0 @@ -/** \file z-oclcui.c - \brief ASN.1 Module UserInfoFormat-oclcUserInformation - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_OCLC_UserInformation (ODR o, Z_OCLC_UserInformation **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_visiblestring, - &(*p)->motd, ODR_CONTEXT, 1, 1, "motd") && - (odr_sequence_of(o, (Odr_fun) z_DBName, &(*p)->dblist, - &(*p)->num_dblist, "dblist") || odr_ok(o)) && - odr_implicit_tag (o, odr_bool, - &(*p)->failReason, ODR_CONTEXT, 3, 1, "failReason") && - odr_implicit_tag (o, odr_integer, - &(*p)->code, ODR_CONTEXT, 1, 1, "code") && - odr_implicit_tag (o, odr_visiblestring, - &(*p)->text, ODR_CONTEXT, 2, 1, "text") && - odr_sequence_end (o); -} - -int z_DBName (ODR o, Z_DBName **p, int opt, const char *name) -{ - return odr_implicit_tag (o, odr_visiblestring, p, ODR_CONTEXT, 2, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/z-opac.c b/dependencies/yaz_3.0.14/src/z-opac.c deleted file mode 100644 index c469c41..0000000 --- a/dependencies/yaz_3.0.14/src/z-opac.c +++ /dev/null @@ -1,128 +0,0 @@ -/** \file z-opac.c - \brief ASN.1 Module RecordSyntax-opac - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_OPACRecord (ODR o, Z_OPACRecord **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_External, - &(*p)->bibliographicRecord, ODR_CONTEXT, 1, 1, "bibliographicRecord") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_HoldingsRecord, &(*p)->holdingsData, - &(*p)->num_holdingsData, "holdingsData") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_HoldingsRecord (ODR o, Z_HoldingsRecord **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_HoldingsRecord_marcHoldingsRecord, - (Odr_fun) z_External, "marcHoldingsRecord"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_HoldingsRecord_holdingsAndCirc, - (Odr_fun) z_HoldingsAndCircData, "holdingsAndCirc"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_HoldingsAndCircData (ODR o, Z_HoldingsAndCircData **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->typeOfRecord, ODR_CONTEXT, 1, 1, "typeOfRecord") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->encodingLevel, ODR_CONTEXT, 2, 1, "encodingLevel") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->format, ODR_CONTEXT, 3, 1, "format") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->receiptAcqStatus, ODR_CONTEXT, 4, 1, "receiptAcqStatus") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->generalRetention, ODR_CONTEXT, 5, 1, "generalRetention") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->completeness, ODR_CONTEXT, 6, 1, "completeness") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->dateOfReport, ODR_CONTEXT, 7, 1, "dateOfReport") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->nucCode, ODR_CONTEXT, 8, 1, "nucCode") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->localLocation, ODR_CONTEXT, 9, 1, "localLocation") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->shelvingLocation, ODR_CONTEXT, 10, 1, "shelvingLocation") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->callNumber, ODR_CONTEXT, 11, 1, "callNumber") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->shelvingData, ODR_CONTEXT, 12, 1, "shelvingData") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->copyNumber, ODR_CONTEXT, 13, 1, "copyNumber") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->publicNote, ODR_CONTEXT, 14, 1, "publicNote") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->reproductionNote, ODR_CONTEXT, 15, 1, "reproductionNote") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->termsUseRepro, ODR_CONTEXT, 16, 1, "termsUseRepro") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->enumAndChron, ODR_CONTEXT, 17, 1, "enumAndChron") && - odr_implicit_settag (o, ODR_CONTEXT, 18) && - (odr_sequence_of(o, (Odr_fun) z_Volume, &(*p)->volumes, - &(*p)->num_volumes, "volumes") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 19) && - (odr_sequence_of(o, (Odr_fun) z_CircRecord, &(*p)->circulationData, - &(*p)->num_circulationData, "circulationData") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_Volume (ODR o, Z_Volume **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->enumeration, ODR_CONTEXT, 1, 1, "enumeration") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->chronology, ODR_CONTEXT, 2, 1, "chronology") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->enumAndChron, ODR_CONTEXT, 3, 1, "enumAndChron") && - odr_sequence_end (o); -} - -int z_CircRecord (ODR o, Z_CircRecord **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->availableNow, ODR_CONTEXT, 1, 0, "availableNow") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->availablityDate, ODR_CONTEXT, 2, 1, "availablityDate") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->availableThru, ODR_CONTEXT, 3, 1, "availableThru") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->restrictions, ODR_CONTEXT, 4, 1, "restrictions") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->itemId, ODR_CONTEXT, 5, 1, "itemId") && - odr_implicit_tag (o, odr_bool, - &(*p)->renewable, ODR_CONTEXT, 6, 0, "renewable") && - odr_implicit_tag (o, odr_bool, - &(*p)->onHold, ODR_CONTEXT, 7, 0, "onHold") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->enumAndChron, ODR_CONTEXT, 8, 1, "enumAndChron") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->midspine, ODR_CONTEXT, 9, 1, "midspine") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->temporaryLocation, ODR_CONTEXT, 10, 1, "temporaryLocation") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-rrf1.c b/dependencies/yaz_3.0.14/src/z-rrf1.c deleted file mode 100644 index dbbc475..0000000 --- a/dependencies/yaz_3.0.14/src/z-rrf1.c +++ /dev/null @@ -1,39 +0,0 @@ -/** \file z-rrf1.c - \brief ASN.1 Module ResourceReport-Format-Resource-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_ResourceReport1 (ODR o, Z_ResourceReport1 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 1) && - odr_sequence_of(o, (Odr_fun) z_Estimate1, &(*p)->estimates, - &(*p)->num_estimates, "estimates") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->message, ODR_CONTEXT, 2, 0, "message") && - odr_sequence_end (o); -} - -int z_Estimate1 (ODR o, Z_Estimate1 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_EstimateType, - &(*p)->type, ODR_CONTEXT, 1, 0, "type") && - odr_implicit_tag (o, odr_integer, - &(*p)->value, ODR_CONTEXT, 2, 0, "value") && - odr_implicit_tag (o, odr_integer, - &(*p)->currency_code, ODR_CONTEXT, 3, 1, "currency_code") && - odr_sequence_end (o); -} - -int z_EstimateType (ODR o, Z_EstimateType **p, int opt, const char *name) -{ - return odr_integer (o, p, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/z-rrf2.c b/dependencies/yaz_3.0.14/src/z-rrf2.c deleted file mode 100644 index 92ca783..0000000 --- a/dependencies/yaz_3.0.14/src/z-rrf2.c +++ /dev/null @@ -1,32 +0,0 @@ -/** \file z-rrf2.c - \brief ASN.1 Module ResourceReport-Format-Resource-2 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_ResourceReport2 (ODR o, Z_ResourceReport2 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 1) && - (odr_sequence_of(o, (Odr_fun) z_Estimate2, &(*p)->estimates, - &(*p)->num_estimates, "estimates") || odr_ok(o)) && - odr_implicit_tag (o, z_InternationalString, - &(*p)->message, ODR_CONTEXT, 2, 1, "message") && - odr_sequence_end (o); -} - -int z_Estimate2 (ODR o, Z_Estimate2 **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_StringOrNumeric, - &(*p)->type, ODR_CONTEXT, 1, 0, "type") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->value, ODR_CONTEXT, 2, 0, "value") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-sum.c b/dependencies/yaz_3.0.14/src/z-sum.c deleted file mode 100644 index 7080bc4..0000000 --- a/dependencies/yaz_3.0.14/src/z-sum.c +++ /dev/null @@ -1,57 +0,0 @@ -/** \file z-sum.c - \brief ASN.1 Module RecordSyntax-summary - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_BriefBib (ODR o, Z_BriefBib **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->title, ODR_CONTEXT, 1, 0, "title") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->author, ODR_CONTEXT, 2, 1, "author") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->callNumber, ODR_CONTEXT, 3, 1, "callNumber") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->recordType, ODR_CONTEXT, 4, 1, "recordType") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->bibliographicLevel, ODR_CONTEXT, 5, 1, "bibliographicLevel") && - odr_implicit_settag (o, ODR_CONTEXT, 6) && - (odr_sequence_of(o, (Odr_fun) z_FormatSpec, &(*p)->format, - &(*p)->num_format, "format") || odr_ok(o)) && - odr_implicit_tag (o, z_InternationalString, - &(*p)->publicationPlace, ODR_CONTEXT, 7, 1, "publicationPlace") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->publicationDate, ODR_CONTEXT, 8, 1, "publicationDate") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->targetSystemKey, ODR_CONTEXT, 9, 1, "targetSystemKey") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->satisfyingElement, ODR_CONTEXT, 10, 1, "satisfyingElement") && - odr_implicit_tag (o, odr_integer, - &(*p)->rank, ODR_CONTEXT, 11, 1, "rank") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->documentId, ODR_CONTEXT, 12, 1, "documentId") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->abstract, ODR_CONTEXT, 13, 1, "abstract") && - z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") && - odr_sequence_end (o); -} - -int z_FormatSpec (ODR o, Z_FormatSpec **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->type, ODR_CONTEXT, 1, 0, "type") && - odr_implicit_tag (o, odr_integer, - &(*p)->size, ODR_CONTEXT, 2, 1, "size") && - odr_implicit_tag (o, odr_integer, - &(*p)->bestPosn, ODR_CONTEXT, 3, 1, "bestPosn") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z-sutrs.c b/dependencies/yaz_3.0.14/src/z-sutrs.c deleted file mode 100644 index f3eb5b9..0000000 --- a/dependencies/yaz_3.0.14/src/z-sutrs.c +++ /dev/null @@ -1,19 +0,0 @@ -/** \file z-sutrs.c - \brief ASN.1 Module RecordSyntax-SUTRS - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_SutrsRecord (ODR o, Z_SutrsRecord **p, int opt, const char *name) -{ - return z_InternationalString (o, p, opt, name); -} - -int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name) -{ - return odr_implicit_tag(o, odr_octetstring, p, ODR_UNIVERSAL, - ODR_GENERALSTRING, opt, name); -} - diff --git a/dependencies/yaz_3.0.14/src/z-uifr1.c b/dependencies/yaz_3.0.14/src/z-uifr1.c deleted file mode 100644 index cb033c0..0000000 --- a/dependencies/yaz_3.0.14/src/z-uifr1.c +++ /dev/null @@ -1,119 +0,0 @@ -/** \file z-uifr1.c - \brief ASN.1 Module UserInfoFormat-searchResult-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_SearchInfoReport_s (ODR o, Z_SearchInfoReport_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->subqueryId, ODR_CONTEXT, 1, 1, "subqueryId") && - odr_implicit_tag (o, odr_bool, - &(*p)->fullQuery, ODR_CONTEXT, 2, 0, "fullQuery") && - odr_explicit_tag (o, z_QueryExpression, - &(*p)->subqueryExpression, ODR_CONTEXT, 3, 1, "subqueryExpression") && - odr_explicit_tag (o, z_QueryExpression, - &(*p)->subqueryInterpretation, ODR_CONTEXT, 4, 1, "subqueryInterpretation") && - odr_explicit_tag (o, z_QueryExpression, - &(*p)->subqueryRecommendation, ODR_CONTEXT, 5, 1, "subqueryRecommendation") && - odr_implicit_tag (o, odr_integer, - &(*p)->subqueryCount, ODR_CONTEXT, 6, 1, "subqueryCount") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->subqueryWeight, ODR_CONTEXT, 7, 1, "subqueryWeight") && - odr_implicit_tag (o, z_ResultsByDB, - &(*p)->resultsByDB, ODR_CONTEXT, 8, 1, "resultsByDB") && - odr_sequence_end (o); -} - -int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_SearchInfoReport_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ResultsByDB_sList (ODR o, Z_ResultsByDB_sList **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_DatabaseName, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ResultsByDB_s (ODR o, Z_ResultsByDB_s **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ResultsByDB_s_all, - (Odr_fun) odr_null, "all"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ResultsByDB_s_list, - (Odr_fun) z_ResultsByDB_sList, "list"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "databases") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_implicit_tag (o, odr_integer, - &(*p)->count, ODR_CONTEXT, 2, 1, "count") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->resultSetName, ODR_CONTEXT, 3, 1, "resultSetName") && - odr_sequence_end (o); -} - -int z_ResultsByDB (ODR o, Z_ResultsByDB **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_ResultsByDB_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_QueryExpressionTerm (ODR o, Z_QueryExpressionTerm **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_Term, - &(*p)->queryTerm, ODR_CONTEXT, 1, 0, "queryTerm") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->termComment, ODR_CONTEXT, 2, 1, "termComment") && - odr_sequence_end (o); -} - -int z_QueryExpression (ODR o, Z_QueryExpression **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryExpression_term, - (Odr_fun) z_QueryExpressionTerm, "term"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_QueryExpression_query, - (Odr_fun) z_Query, "query"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/z-univ.c b/dependencies/yaz_3.0.14/src/z-univ.c deleted file mode 100644 index 4e420f0..0000000 --- a/dependencies/yaz_3.0.14/src/z-univ.c +++ /dev/null @@ -1,43 +0,0 @@ -/** \file z-univ.c - \brief ASN.1 Module ResourceReport-Format-Universe-1 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_UniverseReportHits (ODR o, Z_UniverseReportHits **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_StringOrNumeric(o, &(*p)->database, 0, "database") && - z_StringOrNumeric(o, &(*p)->hits, 0, "hits") && - odr_sequence_end (o); -} - -int z_UniverseReportDuplicate (ODR o, Z_UniverseReportDuplicate **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - z_StringOrNumeric(o, &(*p)->hitno, 0, "hitno") && - odr_sequence_end (o); -} - -int z_UniverseReport (ODR o, Z_UniverseReport **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_UniverseReport_databaseHits, - (Odr_fun) z_UniverseReportHits, "databaseHits"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_UniverseReport_duplicate, - (Odr_fun) z_UniverseReportDuplicate, "duplicate"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_integer(o, &(*p)->totalHits, 0, "totalHits") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/z.tcl b/dependencies/yaz_3.0.14/src/z.tcl deleted file mode 100644 index 3ce3383..0000000 --- a/dependencies/yaz_3.0.14/src/z.tcl +++ /dev/null @@ -1,351 +0,0 @@ -# YC Sample Config File for Z39.50 -# $Id: z.tcl,v 1.1 2003/10/27 12:21:36 adam Exp $ -# ---------------------------------------------------------- -# Prefix Specifications -# -# 1: C function prefix -# 2: C type prefix -# 3: C preprocessor prefix - -# Default prefix -set default-prefix {z_ Z_ Z_} - -# Name clash in extended services (TargetPart, OriginPartToKeep, etc) -# You can possibly think of better names :) -set prefix(ESFormat-PersistentResultSet) {z_PR Z_PR Z_PR} -set prefix(ESFormat-PersistentQuery) {z_PQuery Z_PQuery Z_PQuery} -set prefix(ESFormat-PeriodicQuerySchedule) {z_PQS Z_PQS Z_PQS} -set prefix(ESFormat-ItemOrder) {z_IO Z_IO Z_IO} -set prefix(ESFormat-Update0) {z_IU0 Z_IU0 Z_IU0} -set prefix(ESFormat-Update) {z_IU Z_IU Z_IU} -set prefix(ESFormat-ExportSpecification) {z_ES Z_ES Z_ES} -set prefix(ESFormat-ExportInvocation) {z_EI Z_EI Z_EI} - -# ---------------------------------------------------------- -# Settings for core of the protocol -set m Z39-50-APDU-1995 - -# Filename -set filename($m) z-core - -# Public header initialization code -set init($m,h) { -typedef struct Z_External Z_External; -YAZ_EXPORT int z_External(ODR o, Z_External **p, int opt, const char *name); -} - -set body($m,h) " -#ifdef __cplusplus -extern \"C\" \{ -#endif - -int z_ANY_type_0 (ODR o, void **p, int opt); - -#ifdef __cplusplus -\} -#endif -" -set body($m,c) { - -/* the type-0 query ... */ -int z_ANY_type_0 (ODR o, void **p, int opt) -{ - return 0; -} - -} - -# Type Name overrides -set map($m,PDU) APDU -set membermap($m,Operator,and) {Operator_and op_and} -set membermap($m,Operator,or) {Operator_or op_or} -#set membermap($m,Operator,and-not) {Operator_and_not op_and_not} -set map($m,AttributeElement_complex) ComplexAttribute -set map($m,DeleteSetStatus) DeleteStatus -set membermap($m,ProximityOperator,private) {ProximityOperator_private zprivate} -set unionmap($m,AttributeElement,attributeValue) {which value AttributeValue} -set membermap($m,ElementSpec,externalEspec) externalSpec -set membermap($m,RPNStructure,op) simple -set membermap($m,RPNStructure,rpnRpnOp) complex -set map($m,RPNStructure_complex) Complex -set membermap($m,Operand,attrTerm) {Operand_APT attributesPlusTerm} -set membermap($m,Operand,resultSet) {Operand_resultSetId resultSetId} -set membermap($m,Operand,resultAttr) {Operand_resultAttr resultAttr} -set membermap($m,Complex,rpn1) s1 -set membermap($m,Complex,rpn2) s2 -set membermap($m,Complex,op) roperator -set membermap($m,RPNQuery,attributeSet) attributeSetId -set membermap($m,RPNQuery,rpn) RPNStructure -set map($m,KnownProximityUnit) ProxUnit -set membermap($m,ProximityOperator,lessThan) {Prox_lessThan 1} -set membermap($m,ProximityOperator,lessThanOrEqual) {Prox_lessThanOrEqual 1} -set membermap($m,ProximityOperator,equal) {Prox_equal 1} -set membermap($m,ProximityOperator,greaterThanOrEqual) {Prox_greaterThanOrEqual 1} -set membermap($m,ProximityOperator,greaterThan) {Prox_greaterThan 1} -set membermap($m,ProximityOperator,notEqual) {Prox_notEqual 1} -# -set membermap($m,Records,responseRecords) {Records_DBOSD databaseOrSurDiagnostics} -set membermap($m,Records,nonSurrogateDiagnostic) {Records_NSD nonSurrogateDiagnostic} -set membermap($m,Records,multipleNonSurDiagnostics) {Records_multipleNSD multipleNonSurDiagnostics} -set map($m,Records_DBOSD) NamePlusRecordList -set map($m,Records_NSD) DiagRec -set map($m,Records_multipleNSD) DiagRecs -set membermap($m,NamePlusRecord,name) databaseName -set unionmap($m,DiagRecs) {num_diagRecs diagRecs} -set unionmap($m,NamePlusRecordList) {num_records records} -# -set membermap($m,ElementSetNames,genericElementSetName) generic -set map($m,ElementSetNames_databaseSpecific) DatabaseSpecific -# -set map($m,OccurrenceByAttributes_s) OccurrenceByAttributesElem -set map($m,OccurrenceByAttributesElem_byDatabase) byDatabaseList -# -set membermap($m,SortElement,datbaseSpecific) databaseSpecific -set map($m,SortElement_databaseSpecific) SortDbSpecificList -# -set map($m,SortKey_sortAttributes) SortAttributes -set unionmap($m,PresentRequest,recordComposition) {} -set map($m,PresentRequest_0) RecordComposition -set unionmap($m,PresentRequest,additionalRanges) {num_ranges additionalRanges} -set unionmap($m,SortRequest,sortSequence) {} -set map($m,SortRequest_0) SortKeySpecList -set unionmap($m,SortKeySpecList) {num_specs specs} -set map($m,InitializeRequest) InitRequest -set map($m,InitializeResponse) InitResponse -set unionmap($m,CloseReason) Close -set membermap($m,ProtocolVersion,version-1) 1 -set membermap($m,ProtocolVersion,version-2) 2 -set membermap($m,ProtocolVersion,version-3) 3 -set membermap($m,InitRequest,exceptionalRecordSize) maximumRecordSize -set membermap($m,InitResponse,exceptionalRecordSize) maximumRecordSize -set map($m,RecordsMultipleNonSurDiagnostics) DiagRecs -set map($m,RecordsDatabaseOrSurDiagnostics) NamePlusRecordList -set membermap($m,NamePlusRecord,retrievalRecord) databaseRecord -set unionmap($m,RecordComposition) {which u RecordComp} -set unionmap($m,ScanResponse,scanStatus) Scan -set unionmap($m,AttributeList) {num_attributes attributes} -set membermap($m,SortKey,sortfield) sortField -set map($m,CompSpec_0) DbSpecific -set map($m,DatabaseSpecific_s) DatabaseSpecificUnit -set map($m,ListStatuses_s) ListStatus -set map($m,IdAuthenticationIdPass) IdPass -set map($m,OtherInformation_s) OtherInformationUnit -set unionmap($m,OtherInformationUnit,information) {which information OtherInfo} -set unionmap($m,OtherInformation) {num_elements list} -set unionmap($m,Specification,elementSpec) {} -set map($m,Specification_0) ElementSpec -set unionmap($m,Specification,schema) {which schema Schema} - -# ---- -set m DiagnosticFormatDiag1 -set filename($m) z-diag1 -set map($m,DiagFormat_tooMany) TooMany -set map($m,DiagFormat_badSpec) BadSpec -set map($m,DiagFormat_dbUnavail) DbUnavail -set map($m,DiagFormat_attribute) Attribute -set map($m,DiagFormat_attCombo) AttCombo -set map($m,DiagFormat_term) DiagTerm -set map($m,DiagFormat_proximity) Proximity -set map($m,DiagFormat_scan) Scan -set map($m,DiagFormat_sort) Sort -set unionmap($m,Sort) {which u SortD} -set map($m,DiagFormat_segmentation) Segmentation -set map($m,DiagFormat_extServices) ExtServices -set map($m,DiagFormat_accessCtrl) AccessCtrl -set map($m,DiagFormat_recordSyntax) RecordSyntax -# -set map($m,Scan_termList2) AttrListList -set map($m,Sort_inputTooLarge) StringList -# -set map($m,AccessCtrl_oid) OidList -set map($m,AccessCtrl_alternative) AltOidList -# ---- -set m RecordSyntax-explain -set filename($m) z-exp -set map($m,Explain-Record) ExplainRecord -set map($m,ElementDataType_structured) ElementInfoList -set map($m,HumanString_s) HumanStringUnit -set unionmap($m,HumanString) {num_strings strings} -set membermap($m,CommonInfo,humanString-Language) humanStringLanguage -set unionmap($m,AttributeOccurrence,attributeValues) {which attributeValues AttributeOcc} -set unionmap($m,AttributeCombination) {num_occurrences occurrences} -# -set membermap($m,NetworkAddress,internetAddress) {NetworkAddress_iA internetAddress} -set map($m,NetworkAddress_iA) NetworkAddressIA -set membermap($m,NetworkAddress,osiPresentationAddress) {NetworkAddress_oPA osiPresentationAddress} -set map($m,NetworkAddress_oPA) NetworkAddressOPA -set map($m,NetworkAddress_other) NetworkAddressOther -set unionmap($m,DatabaseList) {num_databases databases} -set membermap($m,TargetInfo,recent-news) recentNews -set membermap($m,TargetInfo,usage-restrictions) usageRest -set membermap($m,DatabaseInfo,user-fee) userFee -# -set map($m,ProximitySupport_0) ProxSupportUnit -set map($m,ProxSupportUnitZprivate) ProxSupportPrivate -set membermap($m,ProxSupportUnit,private) {ProxSupportUnit_private zprivate} -# -set map($m,AttributeOccurrence_specific) AttributeValueList -set unionmap($m,AttributeValueList) {num_attributes attributes} - -set unionmap($m,ExplainRecord) {which u Explain} -set map($m,SchemaInfo_0) TagTypeMapping -set map($m,TagSetInfo_0) TagSetElements -set map($m,TermListInfo_0) TermListElement -set map($m,TermListDetails_0) EScanInfo -set map($m,PrivateCapabilities_0) PrivateCapOperator -set map($m,Costs_0) CostsOtherCharge -set map($m,Path_s) PathUnit -set map($m,IconObject_s) IconObjectUnit -set map($m,NetworkAddressInternetAddress) NetworkAddressIA -set map($m,NetworkAddressOsiPresentationAddress) NetworkAddressOPA -set membermap($m,QueryTypeDetails,private) {QueryTypeDetails_private zprivate} -set membermap($m,PrivateCapOperator,operator) roperator -set map($m,AccessRestrictions_s) AccessRestrictionsUnit -# ---- -set m RecordSyntax-SUTRS -set filename($m) z-sutrs -#set map($m,SutrsRecord) SUTRS -set body($m,c) { -int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name) -{ - return odr_implicit_tag(o, odr_octetstring, p, ODR_UNIVERSAL, - ODR_GENERALSTRING, opt, name); -} -} - -set init($m,h) { -typedef Odr_oct Z_SUTRS; -YAZ_EXPORT int z_SUTRS (ODR o, Odr_oct **p, int opt, const char *name); -} -# ---- -set m RecordSyntax-opac -set filename($m) z-opac -# ---- -set m RecordSyntax-summary -set filename($m) z-sum -# ---- -set m RecordSyntax-generic -set filename($m) z-grs -set map($m,ElementData_subtree) GenericRecord -set map($m,Variant_0) Triple -set membermap($m,Triple,class) zclass -set unionmap($m,Triple,value) {which value Triple} -set unionmap($m,GenericRecord) {num_elements elements} -# ---- -set m RecordSyntax-ESTaskPackage -set filename($m) z-estask -# ---- -set m ResourceReport-Format-Resource-1 -set filename($m) z-rrf1 -set map($m,ResourceReport) ResourceReport1 -set map($m,Estimate) Estimate1 -# ---- -set m ResourceReport-Format-Resource-2 -set filename($m) z-rrf2 -set map($m,ResourceReport) ResourceReport2 -set map($m,Estimate) Estimate2 -# ---- -set m AccessControlFormat-prompt-1 -set filename($m) z-accform1 -set membermap($m,PromptId,enummeratedPrompt) enumeratedPrompt -set map($m,PromptObject) PromptObject1 -set map($m,Challenge) Challenge1 -set map($m,Challenge1_s) ChallengeUnit1 -set map($m,Response) Response1 -set map($m,Response1_s) ResponseUnit1 -set map($m,PromptObject) PromptObject1 -# ---- -set m AccessControlFormat-des-1 -set filename($m) z-accdes1 -# ---- -set m AccessControlFormat-krb-1 -set filename($m) z-acckrb1 -# ---- -set m ESFormat-PersistentResultSet -set filename($m) zes-pset -# ---- -set m ESFormat-PersistentQuery -set filename($m) zes-pquery -# ---- -set m ESFormat-PeriodicQuerySchedule -set filename($m) zes-psched -# ---- -set m ESFormat-ItemOrder -set filename($m) zes-order -set map($m,ItemOrderEsRequest) Request -set map($m,ItemOrderTaskPackage) TaskPackage -set map($m,OriginPartToKeep_0) Contact -set map($m,OriginPartToKeep_1) Billing -set map($m,OriginPartNotToKeep_0) ResultSetItem -# -# ---- (old version) -set m ESFormat-Update0 -set filename($m) zes-update0 -set map($m,SuppliedRecords_s) SuppliedRecords_elem -set map($m,SuppliedRecords_elem_0) SuppliedRecordsId -# -# ---- (new, current version) -set m ESFormat-Update -set filename($m) zes-update -set map($m,SuppliedRecords_s) SuppliedRecords_elem -set map($m,SuppliedRecords_elem_0) SuppliedRecordsId -# ---- -set m ESFormat-ExportSpecification -set filename($m) zes-exps -# ---- -set m ESFormat-ExportInvocation -set filename($m) zes-expi -# ---- -set m UserInfoFormat-searchResult-1 -set filename($m) z-uifr1 -# ---- -set m ElementSpecificationFormat-eSpec-1 -set filename($m) z-espec1 -set map($m,Espec-1) Espec1 -set map($m,TagPath) ETagPath -set map($m,ETagPath_s) ETagUnit -set map($m,ETagUnitSpecificTag) SpecificTag -set membermap($m,SpecificTag,occurrence) occurrences -set unionmap($m,ElementRequest) {which u ERequest} -set unionmap($m,ETagPath) {num_tags tags} -set map($m,OccurrencesValues) OccurValues -# ---- -set m UserInfoFormat-dateTime -set filename($m) z-date -set map($m,Z3950Date) Date -set map($m,Z3950Time) Time -set unionmap($m,Z3950Date,era) {} -set map($m,DateFlags_0) Era -set map($m,Z3950DateMonthAndDay) MonthAndDay -set map($m,Z3950DateQuarter) DateQuater -set map($m,Z3950DateSeason) DateSeason -set map($m,Date_0) DateFlags -set unionmap($m,DateFlags,era) {} -# ---- -set m UserInfoFormat-multipleSearchTerms-2 -set filename($m) z-mterm2 -# ---- -set m ResourceReport-Format-Universe-1 -set filename($m) z-univ -# ---- -set m UserInfoFormat-oclcUserInformation -set filename($m) z-oclcui -# ---- -set m ESFormat-Admin -set filename($m) zes-admin -set map($m,EsRequest) ESAdminRequest -set map($m,TaskPackage) ESAdminTaskPackage -set map($m,OriginPartToKeep) ESAdminOriginPartToKeep -set map($m,OriginPartNotToKeep) ESAdminOriginPartNotToKeep -set map($m,TargetPart) ESAdminTargetPart -# ---- -set m NegotiationRecordDefinition-charSetandLanguageNegotiation-3 -set filename($m) z-charneg -set membermap($m,OriginProposal_0,private) {OriginProposal_0_private zprivate} -set membermap($m,TargetResponse,private) {TargetResponse_private zprivate} -# ---------------------------------------------------------- -# "Constructed" types defined by means of C-types are declared here. -# Each function returns the C-handler and the C-type. -proc asnBasicEXTERNAL {} { - return {z_External Z_External} -} diff --git a/dependencies/yaz_3.0.14/src/z3950v3.asn b/dependencies/yaz_3.0.14/src/z3950v3.asn deleted file mode 100644 index a8d83c2..0000000 --- a/dependencies/yaz_3.0.14/src/z3950v3.asn +++ /dev/null @@ -1,2669 +0,0 @@ -Z39-50-APDU-1995 -- OID for this definition, assigned in OID.3.1, is {Z39-50 2 1} -DEFINITIONS ::= -BEGIN -- Z39.50 Maintenance Agency Official Text for ANSI/NISO Z39.50-1995 - July 1995 --- -EXPORTS OtherInformation, Term, AttributeSetId, AttributeList, AttributeElement, ElementSetName, SortElement, DatabaseName, -CompSpec, Specification, Permissions, InternationalString, IntUnit, Unit, StringOrNumeric, Query, Records, ResultSetId, -DefaultDiagFormat, DiagRec, Segment; --- - -PDU ::= CHOICE{ - initRequest [20] IMPLICIT InitializeRequest, - initResponse [21] IMPLICIT InitializeResponse, - searchRequest [22] IMPLICIT SearchRequest, - searchResponse [23] IMPLICIT SearchResponse, - presentRequest [24] IMPLICIT PresentRequest, - presentResponse [25] IMPLICIT PresentResponse, - deleteResultSetRequest [26] IMPLICIT DeleteResultSetRequest, - deleteResultSetResponse [27] IMPLICIT DeleteResultSetResponse, - accessControlRequest [28] IMPLICIT AccessControlRequest, - accessControlResponse [29] IMPLICIT AccessControlResponse, - resourceControlRequest [30] IMPLICIT ResourceControlRequest, - resourceControlResponse [31] IMPLICIT ResourceControlResponse, - triggerResourceControlRequest [32] IMPLICIT TriggerResourceControlRequest, - resourceReportRequest [33] IMPLICIT ResourceReportRequest, - resourceReportResponse [34] IMPLICIT ResourceReportResponse, - scanRequest [35] IMPLICIT ScanRequest, - scanResponse [36] IMPLICIT ScanResponse, - -- [37] through [42] reserved - sortRequest [43] IMPLICIT SortRequest, - sortResponse [44] IMPLICIT SortResponse, - segmentRequest [45] IMPLICIT Segment, - extendedServicesRequest [46] IMPLICIT ExtendedServicesRequest, - extendedServicesResponse [47] IMPLICIT ExtendedServicesResponse, - close [48] IMPLICIT Close, - duplicateDetectionRequest [49] IMPLICIT DuplicateDetectionRequest, - duplicateDetectionResponse [50] IMPLICIT DuplicateDetectionResponse} - - --- Initialize APDUs --- - InitializeRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - protocolVersion ProtocolVersion, - options Options, - preferredMessageSize [5] IMPLICIT INTEGER, - exceptionalRecordSize [6] IMPLICIT INTEGER, - idAuthentication [7] IdAuthentication OPTIONAL, -- see note below - implementationId [110] IMPLICIT InternationalString OPTIONAL, - implementationName [111] IMPLICIT InternationalString OPTIONAL, - implementationVersion [112] IMPLICIT InternationalString OPTIONAL, - userInformationField [11] EXTERNAL OPTIONAL, - otherInfo OtherInformation OPTIONAL} ---Note: --- For idAuthentication, the type ANY is retained for compatibility with earlier versions. --- For interoperability, the following is recommended: -IdAuthentication ::= - CHOICE{ - open VisibleString, - idPass SEQUENCE { - groupId [0] IMPLICIT InternationalString OPTIONAL, - userId [1] IMPLICIT InternationalString OPTIONAL, - password [2] IMPLICIT InternationalString OPTIONAL }, - anonymous NULL, - other EXTERNAL - } --- May use access control formats for 'other'. See Appendix 7 ACC. --- - InitializeResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - protocolVersion ProtocolVersion, - options Options, - preferredMessageSize [5] IMPLICIT INTEGER, - exceptionalRecordSize [6] IMPLICIT INTEGER, - result [12] IMPLICIT BOOLEAN, -- reject = FALSE; Accept = TRUE - implementationId [110] IMPLICIT InternationalString OPTIONAL, - implementationName [111] IMPLICIT InternationalString OPTIONAL, - implementationVersion [112] IMPLICIT InternationalString OPTIONAL, - userInformationField [11] EXTERNAL OPTIONAL, - otherInfo OtherInformation OPTIONAL} --- Begin auxiliary definitions for Init PDUs - ProtocolVersion ::= [3] IMPLICIT BIT STRING{ - version-1 (0), -- This bit should always be set, but does not - -- correspond to any Z39.50 version. - version-2 (1), -- "Version 2 supported." - -- This bit should always be set. - version-3 (2) -- "Version 3 supported." --- Values higher than 'version-3' should be ignored. Both the Initialize request and Initialize Response APDUs --- include a value string corresponding to the supported versions. The highest common version is selected --- for use. If there are no versions in common, "Result" in the Init Response should indicate "reject." --- Note: Versions 1 and 2 are identical. Systems supporting version 2 should indicate support for version --- 1 as well, for interoperability with systems that indicate support for version 1 only (e.g. ISO 10163-1991 --- implementations). - } - Options ::= [4] IMPLICIT BIT STRING{ - search (0), - present (1), - delSet (2), - resourceReport (3), - triggerResourceCtrl (4), - resourceCtrl (5), - accessCtrl (6), - scan (7), - sort (8), - -- (not used) (9), - extendedServices (10), - level-1Segmentation (11), - level-2Segmentation (12), - concurrentOperations (13), - namedResultSets (14), - encapsulation (15), - resultCount (16), - negotiationModel (17), - duplicateDetection (18), - queryType104 (19), - pQESCorrection (20), - stringSchema (21) -} --- end auxiliary definitions for Init PDUs - - ---Search APDUs - SearchRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - smallSetUpperBound [13] IMPLICIT INTEGER, - largeSetLowerBound [14] IMPLICIT INTEGER, - mediumSetPresentNumber [15] IMPLICIT INTEGER, - replaceIndicator [16] IMPLICIT BOOLEAN, - resultSetName [17] IMPLICIT InternationalString, - databaseNames [18] IMPLICIT SEQUENCE OF DatabaseName, - smallSetElementSetNames [100] ElementSetNames OPTIONAL, - mediumSetElementSetNames [101] ElementSetNames OPTIONAL, - preferredRecordSyntax [104] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - query [21] Query, - -- Following two parameters may be used only if version 3 is in force. - additionalSearchInfo [203] IMPLICIT OtherInformation OPTIONAL, - otherInfo OtherInformation OPTIONAL} - - --- Query Definitions - Query ::= CHOICE{ - type-0 [0] ANY, - type-1 [1] IMPLICIT RPNQuery, - type-2 [2] OCTET STRING, - type-100 [100] OCTET STRING, - type-101 [101] IMPLICIT RPNQuery, - type-102 [102] OCTET STRING, - type-104 [104] IMPLICIT EXTERNAL -} --- --- Definitions for RPN query - RPNQuery ::= SEQUENCE{ - attributeSet AttributeSetId, - rpn RPNStructure} --- - RPNStructure ::= CHOICE{ - op [0] Operand, - rpnRpnOp [1] IMPLICIT SEQUENCE{ - rpn1 RPNStructure, - rpn2 RPNStructure, - op Operator }} - Operand ::= CHOICE{ - attrTerm AttributesPlusTerm, - resultSet ResultSetId, - -- If version 2 is in force: - -- - If query type is 1, one of the above two must be chosen; - -- - resultAttr (below) may be used only if query type is 101. - resultAttr ResultSetPlusAttributes} - - AttributesPlusTerm ::= [102] IMPLICIT SEQUENCE{ - attributes AttributeList, - term Term} - ResultSetPlusAttributes ::= [214] IMPLICIT SEQUENCE{ - resultSet ResultSetId, - attributes AttributeList} - AttributeList ::= [44] IMPLICIT SEQUENCE OF AttributeElement --- - Term ::= CHOICE{ - general [45] IMPLICIT OCTET STRING, - -- values below may be used only if version 3 is in force - numeric [215] IMPLICIT INTEGER, - characterString [216] IMPLICIT InternationalString, - oid [217] IMPLICIT OBJECT IDENTIFIER, - dateTime [218] IMPLICIT GeneralizedTime, - external [219] IMPLICIT EXTERNAL, - integerAndUnit [220] IMPLICIT IntUnit, - null [221] IMPLICIT NULL} - - Operator ::= [46] CHOICE{ - and [0] IMPLICIT NULL, - or [1] IMPLICIT NULL, - and-not [2] IMPLICIT NULL, - -- If version 2 is in force: - -- - For query type 1, one of the above three must be chosen; - -- - prox (below) may be used only if query type is 101. - prox [3] IMPLICIT ProximityOperator} - AttributeElement ::= SEQUENCE{ - attributeSet [1] IMPLICIT AttributeSetId OPTIONAL, - -- Must be omitted if version 2 is in force. - -- If included, overrides value of attributeSet - -- in RPNQuery above, but only for this attribute. - attributeType [120] IMPLICIT INTEGER, - attributeValue CHOICE{ - numeric [121] IMPLICIT INTEGER, - -- If version 2 is in force, - -- Must select 'numeric' for attributeValue. - - complex [224] IMPLICIT SEQUENCE{ - list [1] IMPLICIT SEQUENCE OF StringOrNumeric, - semanticAction [2] IMPLICIT SEQUENCE OF INTEGER OPTIONAL}}} - - - ProximityOperator ::= SEQUENCE{ - exclusion [1] IMPLICIT BOOLEAN OPTIONAL, - distance [2] IMPLICIT INTEGER, - ordered [3] IMPLICIT BOOLEAN, - relationType [4] IMPLICIT INTEGER{ - lessThan (1), - lessThanOrEqual (2), - equal (3), - greaterThanOrEqual (4), - greaterThan (5), - notEqual (6)}, - proximityUnitCode [5] CHOICE{ - known [1] IMPLICIT KnownProximityUnit, - private [2] IMPLICIT INTEGER}} --- - KnownProximityUnit ::= INTEGER{ - character (1), - word (2), - sentence (3), - paragraph (4), - section (5), - chapter (6), - document (7), - element (8), - subelement (9), - elementType (10), - byte (11) -- Version 3 only - } --- End definitions for RPN Query - - -SearchResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - resultCount [23] IMPLICIT INTEGER, - numberOfRecordsReturned [24] IMPLICIT INTEGER, - nextResultSetPosition [25] IMPLICIT INTEGER, - searchStatus [22] IMPLICIT BOOLEAN, - resultSetStatus [26] IMPLICIT INTEGER{ - subset (1), - interim (2), - none (3), - estimate(4) - } OPTIONAL, - presentStatus PresentStatus OPTIONAL, - records Records OPTIONAL, - -- Following two parameters may be used only if version 3 is in force. - additionalSearchInfo [203] IMPLICIT OtherInformation OPTIONAL, - otherInfo OtherInformation OPTIONAL} ---Retrieval APDUs - PresentRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - resultSetId ResultSetId, - resultSetStartPoint [30] IMPLICIT INTEGER, - numberOfRecordsRequested [29] IMPLICIT INTEGER, - additionalRanges [212] IMPLICIT SEQUENCE OF Range OPTIONAL, - -- additionalRanges may be included only if version 3 is in force. - recordComposition CHOICE{ - simple [19] ElementSetNames, - -- must choose 'simple' if version 2 is in force - complex [209] IMPLICIT CompSpec} OPTIONAL, - preferredRecordSyntax [104] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - maxSegmentCount [204] IMPLICIT INTEGER OPTIONAL, -- level 1 or 2 - maxRecordSize [206] IMPLICIT INTEGER OPTIONAL, -- level 2 only - maxSegmentSize [207] IMPLICIT INTEGER OPTIONAL, -- level 2 only - otherInfo OtherInformation OPTIONAL} --- - Segment ::= SEQUENCE{ - -- Segment PDU may only be used when version 3 is in force, - -- and only when segmentation is in effect. - referenceId ReferenceId OPTIONAL, - numberOfRecordsReturned [24] IMPLICIT INTEGER, - segmentRecords [0] IMPLICIT SEQUENCE OF NamePlusRecord, - otherInfo OtherInformation OPTIONAL} --- - PresentResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - numberOfRecordsReturned [24] IMPLICIT INTEGER, - nextResultSetPosition [25] IMPLICIT INTEGER, - presentStatus PresentStatus, - records Records OPTIONAL, - otherInfo OtherInformation OPTIONAL} --- begin auxiliary definitions for Search and Present APDUs - --- begin definition of records - Records ::= CHOICE{ - responseRecords [28] IMPLICIT SEQUENCE OF NamePlusRecord, - nonSurrogateDiagnostic [130] IMPLICIT DefaultDiagFormat, - multipleNonSurDiagnostics [205] IMPLICIT SEQUENCE OF DiagRec} --- - NamePlusRecord ::= SEQUENCE{ - name [0] IMPLICIT DatabaseName OPTIONAL, - record [1] CHOICE{ - retrievalRecord [1] EXTERNAL, - surrogateDiagnostic [2] DiagRec, - -- Must select one of the above two, retrievalRecord or - -- surrogateDiagnostic, unless 'level 2 segmentation' is in effect. - startingFragment [3] FragmentSyntax, - intermediateFragment [4] FragmentSyntax, - finalFragment [5] FragmentSyntax}} - FragmentSyntax ::= CHOICE{ - externallyTagged EXTERNAL, - notExternallyTagged OCTET STRING} - - DiagRec ::= CHOICE{ - defaultFormat DefaultDiagFormat, - -- Must choose defaultFormat if version 2 is in effect. - externallyDefined EXTERNAL} - - DefaultDiagFormat::= SEQUENCE{ - diagnosticSetId OBJECT IDENTIFIER, - condition INTEGER, - addinfo CHOICE{ - v2Addinfo VisibleString, -- version 2 - v3Addinfo InternationalString -- version 3 - }} - -- end definition of records - Range ::= SEQUENCE{ - startingPosition [1] IMPLICIT INTEGER, - numberOfRecords [2] IMPLICIT INTEGER} --- - ElementSetNames ::= CHOICE { - genericElementSetName [0] IMPLICIT InternationalString, - databaseSpecific [1] IMPLICIT SEQUENCE OF SEQUENCE{ - dbName DatabaseName, - esn ElementSetName}} - - PresentStatus ::= [27] IMPLICIT INTEGER{ - success (0), - partial-1 (1), - partial-2 (2), - partial-3 (3), - partial-4 (4), - failure (5)} - --- begin definition of composition specification - CompSpec ::= SEQUENCE{ - selectAlternativeSyntax [1] IMPLICIT BOOLEAN, - -- See comment for recordSyntax, below. - generic [2] IMPLICIT Specification OPTIONAL, - dbSpecific [3] IMPLICIT SEQUENCE OF SEQUENCE{ - db [1] DatabaseName, - spec [2] IMPLICIT Specification} OPTIONAL, - -- At least one of generic and dbSpecific must occur, and both may occur. If both, then for - -- any record not in the list of databases within dbSpecific, generic applies. - recordSyntax [4] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL - -- For each record, the target selects the first record syntax - -- in this list that it can support. If the list is exhausted, the - -- target may select an alternative syntax if - -- selectAlternativeSyntax is 'true'. - } - Specification ::= SEQUENCE{ - schema CHOICE { - oid [1] IMPLICIT OBJECT IDENTIFIER, - uri [300] IMPLICIT InternationalString - } OPTIONAL, - elementSpec [2] CHOICE{ - elementSetName [1] IMPLICIT InternationalString, - externalEspec [2] IMPLICIT EXTERNAL} OPTIONAL} --- end definition of composition specification --- end auxiliary definitions for search and response APDUs - --- Delete APDUs - DeleteResultSetRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - deleteFunction [32] IMPLICIT INTEGER{ - list (0), - all (1)}, - resultSetList SEQUENCE OF ResultSetId OPTIONAL, - otherInfo OtherInformation OPTIONAL} --- - DeleteResultSetResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - deleteOperationStatus [0] IMPLICIT DeleteSetStatus, - deleteListStatuses [1] IMPLICIT ListStatuses OPTIONAL, - numberNotDeleted [34] IMPLICIT INTEGER OPTIONAL, - bulkStatuses [35] IMPLICIT ListStatuses OPTIONAL, - deleteMessage [36] IMPLICIT InternationalString OPTIONAL, - otherInfo OtherInformation OPTIONAL} - ListStatuses ::= SEQUENCE OF SEQUENCE{ - id ResultSetId, - status DeleteSetStatus} - - DeleteSetStatus ::= [33] IMPLICIT INTEGER{ - success (0), - resultSetDidNotExist (1), - previouslyDeletedByTarget (2), - systemProblemAtTarget (3), - accessNotAllowed (4), - resourceControlAtOrigin (5), - resourceControlAtTarget (6), - bulkDeleteNotSupported (7), - notAllRsltSetsDeletedOnBulkDlte (8), - notAllRequestedResultSetsDeleted (9), - resultSetInUse (10)} --- - ---Access- and Resource-control APDUs --- - AccessControlRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - securityChallenge CHOICE{ - simpleForm [37] IMPLICIT OCTET STRING, - externallyDefined [0] EXTERNAL}, - otherInfo OtherInformation OPTIONAL} - - AccessControlResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - securityChallengeResponse CHOICE{ - simpleForm [38] IMPLICIT OCTET STRING, - externallyDefined [0] EXTERNAL} OPTIONAL, - -- Optional only in version 3; mandatory in version 2. If - -- omitted (in version 3) then diagnostic must occur. - diagnostic [223] DiagRec OPTIONAL, -- Version 3 only. - otherInfo OtherInformation OPTIONAL} - - - - ResourceControlRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - suspendedFlag [39] IMPLICIT BOOLEAN OPTIONAL, - resourceReport [40] ResourceReport OPTIONAL, - partialResultsAvailable [41] IMPLICIT INTEGER{ - subset (1), - interim (2), - none (3)} OPTIONAL, - responseRequired [42] IMPLICIT BOOLEAN, - triggeredRequestFlag [43] IMPLICIT BOOLEAN OPTIONAL, - otherInfo OtherInformation OPTIONAL} - - - ResourceControlResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - continueFlag [44] IMPLICIT BOOLEAN, - resultSetWanted [45] IMPLICIT BOOLEAN OPTIONAL, - otherInfo OtherInformation OPTIONAL} - - - - TriggerResourceControlRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - requestedAction [46] IMPLICIT INTEGER{ - resourceReport (1), - resourceControl (2), - cancel (3)}, - prefResourceReportFormat [47] IMPLICIT ResourceReportId OPTIONAL, - resultSetWanted [48] IMPLICIT BOOLEAN OPTIONAL, - otherInfo OtherInformation OPTIONAL} - - - - ResourceReportRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - opId [210] IMPLICIT ReferenceId OPTIONAL, - prefResourceReportFormat [49] IMPLICIT ResourceReportId OPTIONAL, - otherInfo OtherInformation OPTIONAL} --- - ResourceReportResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - resourceReportStatus [50] IMPLICIT INTEGER{ - success (0), - partial (1), - failure-1 (2), - failure-2 (3), - failure-3 (4), - failure-4 (5), - failure-5 (6), - failure-6 (7)}, - resourceReport [51] ResourceReport OPTIONAL, - otherInfo OtherInformation OPTIONAL} --- - ResourceReport ::= EXTERNAL - ResourceReportId ::= OBJECT IDENTIFIER - ---Scan APDUs - ScanRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - databaseNames [3] IMPLICIT SEQUENCE OF DatabaseName, - attributeSet AttributeSetId OPTIONAL, - termListAndStartPoint AttributesPlusTerm, - stepSize [5] IMPLICIT INTEGER OPTIONAL, - numberOfTermsRequested [6] IMPLICIT INTEGER, - preferredPositionInResponse [7] IMPLICIT INTEGER OPTIONAL, - otherInfo OtherInformation OPTIONAL} - - ScanResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - stepSize [3] IMPLICIT INTEGER OPTIONAL, - scanStatus [4] IMPLICIT INTEGER { - success (0), - partial-1 (1), - partial-2 (2), - partial-3 (3), - partial-4 (4), - partial-5 (5), - failure (6) }, - numberOfEntriesReturned [5] IMPLICIT INTEGER, - positionOfTerm [6] IMPLICIT INTEGER OPTIONAL, - entries [7] IMPLICIT ListEntries OPTIONAL, - attributeSet [8] IMPLICIT AttributeSetId OPTIONAL, - otherInfo OtherInformation OPTIONAL} - --- begin auxiliary definitions for Scan - ListEntries ::= SEQUENCE{ - entries [1] IMPLICIT SEQUENCE OF Entry OPTIONAL, - nonsurrogateDiagnostics [2] IMPLICIT SEQUENCE OF DiagRec OPTIONAL - -- At least one of entries and nonsurrogateDiagnostics must occur - } - - Entry ::= CHOICE { - termInfo [1] IMPLICIT TermInfo, - surrogateDiagnostic [2] DiagRec} --- - TermInfo ::= SEQUENCE { - term Term, - displayTerm [0] IMPLICIT InternationalString OPTIONAL, - -- Presence of displayTerm means that term is not considered by - -- the target to be suitable for display, and displayTerm should - -- instead be displayed. 'term' is the actual term in the term list; - -- 'displayTerm' is for display purposes only, and is not an actual - -- term in the term list. - suggestedAttributes AttributeList OPTIONAL, - alternativeTerm [4] IMPLICIT SEQUENCE OF AttributesPlusTerm OPTIONAL, - globalOccurrences [2] IMPLICIT INTEGER OPTIONAL, - byAttributes [3] IMPLICIT OccurrenceByAttributes OPTIONAL, - otherTermInfo OtherInformation OPTIONAL} - - OccurrenceByAttributes ::= SEQUENCE OF SEQUENCE{ - attributes [1] AttributeList, - occurrences CHOICE{ - global [2] INTEGER, - byDatabase [3] IMPLICIT SEQUENCE OF SEQUENCE{ - db DatabaseName, - num [1] IMPLICIT INTEGER OPTIONAL, - otherDbInfo OtherInformation OPTIONAL}} OPTIONAL, - otherOccurInfo OtherInformation OPTIONAL} --- end auxiliary definitions for Scan - --- Sort APDUs -SortRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - inputResultSetNames [3] IMPLICIT SEQUENCE OF InternationalString, - sortedResultSetName [4] IMPLICIT InternationalString, - sortSequence [5] IMPLICIT SEQUENCE OF SortKeySpec, - -- order of occurrence is from major to minor - otherInfo OtherInformation OPTIONAL} - -SortResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - sortStatus [3] IMPLICIT INTEGER{ - success (0), - partial-1 (1), - failure (2)}, - resultSetStatus [4] IMPLICIT INTEGER{ - empty (1), - interim (2), - unchanged (3), - none (4)} OPTIONAL, - diagnostics [5] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, - resultCount [6] IMPLICIT INTEGER OPTIONAL, - otherInfo OtherInformation OPTIONAL} - --- begin auxiliary definitions for Sort - SortKeySpec ::= SEQUENCE{ - sortElement SortElement, - sortRelation [1] IMPLICIT INTEGER{ - ascending (0), - descending (1), - ascendingByFrequency (3), - descendingByfrequency (4)}, - caseSensitivity [2] IMPLICIT INTEGER{ - caseSensitive (0), - caseInsensitive (1)}, - missingValueAction [3] CHOICE{ - abort [1] IMPLICIT NULL, - null [2] IMPLICIT NULL, - --supply a null value for missing value - missingValueData [3] IMPLICIT OCTET STRING} OPTIONAL} - - SortElement ::= CHOICE{ - generic [1] SortKey, - datbaseSpecific [2] IMPLICIT SEQUENCE OF SEQUENCE{ - databaseName DatabaseName, - dbSort SortKey}} - - SortKey ::= CHOICE{ - sortfield [0] IMPLICIT InternationalString, - -- An element, element-group-tag, or alias supported by the target - -- and denoting a set of elements associated with each record. - elementSpec [1] IMPLICIT Specification, - sortAttributes [2] IMPLICIT SEQUENCE{ - id AttributeSetId, - list AttributeList}} --- end auxiliary definitions for sort - - - --- Extended Service APDUs - ExtendedServicesRequest ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - function [3] IMPLICIT INTEGER { - create (1), - delete (2), - modify (3)}, - packageType [4] IMPLICIT OBJECT IDENTIFIER, - packageName [5] IMPLICIT InternationalString OPTIONAL, - -- PackageName mandatory for 'modify' or 'delete'; optional for - -- 'create'. Following four parameters mandatory for 'create'; should - -- be included on 'modify' if being modified; not needed on 'delete'. - userId [6] IMPLICIT InternationalString OPTIONAL, - retentionTime [7] IMPLICIT IntUnit OPTIONAL, - permissions [8] IMPLICIT Permissions OPTIONAL, - description [9] IMPLICIT InternationalString OPTIONAL, - --- (ExtendedServiceRequest APDU continued) - taskSpecificParameters [10] IMPLICIT EXTERNAL OPTIONAL, - -- Mandatory for 'create'; included on 'modify' if specific - -- parameters being modified; not necessary on 'delete'. For the - -- 'EXTERNAL,' use OID of specific ES definition and select - -- CHOICE [1]: 'esRequest'. - waitAction [11] IMPLICIT INTEGER{ - wait (1), - waitIfPossible (2), - dontWait (3), - dontReturnPackage (4)}, - elements ElementSetName OPTIONAL, - otherInfo OtherInformation OPTIONAL} --- - -ExtendedServicesResponse ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, - operationStatus [3] IMPLICIT INTEGER{ - done (1), - accepted (2), - failure (3)}, - diagnostics [4] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, - taskPackage [5] IMPLICIT EXTERNAL OPTIONAL, - -- Use OID: {Z39-50-recordSyntax (106)} and corresponding - -- syntax. For the EXTERNAL, 'taskSpecific,' within that - -- definition, use OID of the specific es, and choose [2], - -- 'taskPackage'. - otherInfo OtherInformation OPTIONAL} - - Permissions ::= SEQUENCE OF SEQUENCE{ - userId [1] IMPLICIT InternationalString OPTIONAL, - allowableFunctions [2] IMPLICIT SEQUENCE OF INTEGER{ - delete (1), - modifyContents (2), - modifyPermissions (3), - present (4), - invoke (5)}} - -Close ::= SEQUENCE{ - referenceId ReferenceId OPTIONAL, -- See 3.2.11.1.5. - closeReason CloseReason, - diagnosticInformation [3] IMPLICIT InternationalString OPTIONAL, - resourceReportFormat [4] IMPLICIT ResourceReportId OPTIONAL, - -- For use by origin only, and only on Close request; - -- origin requests target to include report in response. - resourceReport [5] ResourceReport OPTIONAL, - -- For use by target only, unilaterally on Close request; - -- on Close response may be unilateral or in response - -- to origin request. - otherInfo OtherInformation OPTIONAL} - - CloseReason ::= [211] IMPLICIT INTEGER{ - finished (0), - shutdown (1), - systemProblem (2), - costLimit (3), - resources (4), - securityViolation (5), - protocolError (6), - lackOfActivity (7), - peerAbort (8), - unspecified (9)} - ---Duplicate detection APDUs -DuplicateDetectionRequest ::= SEQUENCE { - referenceId ReferenceId OPTIONAL, - inputResultSetIds [3] IMPLICIT SEQUENCE OF InternationalString, - outputResultSetName [4] IMPLICIT InternationalString, - applicablePortionOfRecord [5] IMPLICIT EXTERNAL OPTIONAL, - duplicateDetectionCriteria [6] IMPLICIT SEQUENCE OF - DuplicateDetectionCriterion OPTIONAL, - clustering [7] IMPLICIT BOOLEAN OPTIONAL, - -- 'true' means "clustered". - -- This parameter may be omitted - -- only if retentionCriteria CHOICE is - -- 'numberOfEntries' and its value is 1. - retentionCriteria [8] IMPLICIT SEQUENCE OF - RetentionCriterion, - sortCriteria [9] IMPLICIT SEQUENCE OF - SortCriterion OPTIONAL, - otherInfo OtherInformation OPTIONAL} - -DuplicateDetectionCriterion ::= CHOICE{ - levelOfMatch [1] IMPLICIT INTEGER, - -- a percentage; 1-100. - caseSensitive [2] IMPLICIT NULL, - punctuationSensitive [3] IMPLICIT NULL, - regularExpression [4] IMPLICIT EXTERNAL, - rsDuplicates [5] IMPLICIT NULL - -- values 6-100 reserved for future assignment. - } - -RetentionCriterion ::= CHOICE{ - numberOfEntries [1] IMPLICIT INTEGER, - -- greater than 0 - percentOfEntries [2] IMPLICIT INTEGER, - -- 1-100, - duplicatesOnly [3] IMPLICIT NULL, - -- should not be chosen - -- if clustering is 'true' - discardRsDuplicates [4] IMPLICIT NULL - -- values 5-100 reserved for future assignment. - } - -SortCriterion ::= CHOICE{ - mostComprehensive [1] IMPLICIT NULL, - leastConmprehensive [2] IMPLICIT NULL, - mostRecent [3] IMPLICIT NULL, - oldest [4] IMPLICIT NULL, - leastCost [5] IMPLICIT NULL, - preferredDatabases [6] IMPLICIT - SEQUENCE OF InternationalString - -- values 7-100 reserved for future assignment. -} - -DuplicateDetectionResponse ::= SEQUENCE { - referenceId ReferenceId OPTIONAL, - status [3] IMPLICIT INTEGER{ - success (0), - failure (1)}, - resultSetCount [4] IMPLICIT INTEGER OPTIONAL, - diagnostics [5] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, - otherInfo OtherInformation OPTIONAL} - --- Global auxiliary definitions - ReferenceId ::= [2] IMPLICIT OCTET STRING - ResultSetId ::= [31] IMPLICIT InternationalString - ElementSetName ::= [103] IMPLICIT InternationalString - DatabaseName ::= [105] IMPLICIT InternationalString - AttributeSetId ::= OBJECT IDENTIFIER - - --- OtherInformation - OtherInformation ::= [201] IMPLICIT SEQUENCE OF SEQUENCE{ - category [1] IMPLICIT InfoCategory OPTIONAL, - information CHOICE{ - characterInfo [2] IMPLICIT InternationalString, - binaryInfo [3] IMPLICIT OCTET STRING, - externallyDefinedInfo [4] IMPLICIT EXTERNAL, - oid [5] IMPLICIT OBJECT IDENTIFIER}} --- - InfoCategory ::= SEQUENCE{ - categoryTypeId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - categoryValue [2] IMPLICIT INTEGER} - - --- Units - -- IntUnit is used when value and unit are supplied together. Unit, alone, is used when just - -- specifying a unit (without a value). For example, IntUnit is used in Term, in an RPNQuery, or - -- it can be the datatype of an element within a retrieval record. Unit (alone) would be used in an - -- element request, when requesting data be returned according to a particular unit. - - IntUnit ::= SEQUENCE{ - value [1] IMPLICIT INTEGER, - unitUsed [2] IMPLICIT Unit} --- - Unit ::= SEQUENCE{ - unitSystem [1] InternationalString OPTIONAL, -- e.g. 'SI' - unitType [2] StringOrNumeric OPTIONAL, -- e.g. 'mass' - unit [3] StringOrNumeric OPTIONAL, -- e.g. 'kilograms' - scaleFactor [4] IMPLICIT INTEGER OPTIONAL -- e.g. 9 means 10**9 - } - ---CharacterString - InternationalString ::= GeneralString - -- When version 2 is in force, this collapses to VisibleString. That is, only characters in the - -- visibleString repertoire may be used. (Datatype compatibility with version 2 is not affected, - -- because references are IMPLICIT.) When version 3 is in force, the semantics of the - -- GeneralString content may be altered by negotiation during initialization. If no such - -- negotiation is in effect, then GeneralString semantics are in force. - -StringOrNumeric ::= CHOICE{ - string [1] IMPLICIT InternationalString, - numeric [2] IMPLICIT INTEGER} - -END -- IR DEFINITIONS - - - -DiagnosticFormatDiag1 -{Z39-50-diagnosticFormat diag-1 (2)} DEFINITIONS ::= -BEGIN -IMPORTS Term, Specification, AttributeList, SortElement, DatabaseName, -DefaultDiagFormat, InternationalString FROM Z39-50-APDU-1995; - - -DiagnosticFormat ::= SEQUENCE OF SEQUENCE{ - diagnostic [1] CHOICE{ - defaultDiagRec [1] IMPLICIT DefaultDiagFormat, - explicitDiagnostic [2] DiagFormat} OPTIONAL, - message [2] IMPLICIT InternationalString OPTIONAL} - - -DiagFormat ::= CHOICE{ - -tooMany [1000] IMPLICIT SEQUENCE{ - tooManyWhat [1] IMPLICIT INTEGER{ - argumentWords (1), - truncatedWords (2), - booleanOperators (3), - incompleteSubfields (4), - characters (5), - recordsRetrieved (6), - dataBasesSpecified (7), - resultSetsCreated (8), - indexTermsProcessed (9)}, - max [2] IMPLICIT INTEGER OPTIONAL}, - - - - - - - -badSpec [1001] IMPLICIT SEQUENCE{ -- element set name or specification - spec [1] IMPLICIT Specification, -- esn or element spec not supported - db [2] IMPLICIT DatabaseName OPTIONAL, - -- if db specified, above spec not supported for db; otherwise, - -- spec not supported period. - goodOnes [3] IMPLICIT SEQUENCE OF Specification OPTIONAL - -- target supplies ones that are supported - }, - - -dbUnavail [1002] IMPLICIT SEQUENCE{ -- database unavailable - db [1] IMPLICIT DatabaseName, - why [2] IMPLICIT SEQUENCE{ - reasonCode [1] IMPLICIT INTEGER{ - doesNotExist (0), - existsButUnavail (1), - locked (2), - accessDenied (3)} OPTIONAL, - message [2] IMPLICIT InternationalString OPTIONAL}}, - - -unSupOp [1003] IMPLICIT INTEGER{ -- unsupported operator - and (0), - or (1), - and-not (2), - prox (3)}, - - -attribute [1004] IMPLICIT SEQUENCE{ - -- Applies for unsupported attribute set, attribute type, - -- attribute value, or term (for a given attribute type or value). - - id [1] IMPLICIT OBJECT IDENTIFIER, - -- if only "id" occurs, then attribute set is not supported - type [2] IMPLICIT INTEGER OPTIONAL, - -- must occur if value occurs. - value [3] IMPLICIT INTEGER OPTIONAL, - -- if omitted, and Type occurs, then Type is what is unsupported - term [4] Term OPTIONAL - -- If occurs, term is illegal or not supported, for attribute value, - -- if value occurs; otherwise, for type. - }, - - -attCombo [1005] IMPLICIT SEQUENCE{ -- attribute combination not supported - unsupportedCombination [1] IMPLICIT AttributeList, - recommendedAlternatives [2] IMPLICIT SEQUENCE OF AttributeList OPTIONAL}, - - - - -term [1006] IMPLICIT SEQUENCE{ - problem [1] IMPLICIT INTEGER{ - codedValue (1), - unparsable (2), - tooShort (3), - type (4)} OPTIONAL, - term [2] Term}, - - -proximity [1007] CHOICE{ -- proximity diagnostics: - resultSets [1] IMPLICIT NULL, -- proximity between sets not supported - badSet [2] IMPLICIT InternationalString, -- bad result set specified - relation [3] IMPLICIT INTEGER, -- 1 to 6 ; relation not supported - unit [4] IMPLICIT INTEGER, -- unsupported unit code - distance [5] IMPLICIT INTEGER, -- unsupported distance - attributes [6] AttributeList, -- proximity not supported with specified - -- attribute combination - ordered [7] IMPLICIT NULL, -- ordered flag not supported - exclusion [8] IMPLICIT NULL -- exclusion flag not supported - }, - - - - - -scan [1008] CHOICE{ -- scan diagnostics: - nonZeroStepSize [0] IMPLICIT NULL, -- only zero step size supported - specifiedStepSize [1] IMPLICIT NULL, -- specified step size not supported - termList1 [3] IMPLICIT NULL, -- term list not supported (no alternative supplied) - termList2 [4] IMPLICIT SEQUENCE OF AttributeList, - -- term list not supported (alternatives supplied) - posInResponse [5] IMPLICIT INTEGER{ --value of positionInResponse not supported - mustBeOne (1), - mustBePositive (2), - mustBeNonNegative (3), - other (4)}, - resources [6] IMPLICIT NULL, -- resources exhausted looking for satisfying terms - endOfList [7] IMPLICIT NULL -- beginning or end of term list - }, - - -sort [1009] CHOICE{ - sequence [0] IMPLICIT NULL, -- cannot sort according to sequence - noRsName [1] IMPLICIT NULL, -- no result set name supplied - tooMany [2] IMPLICIT INTEGER, -- Too many input result sets, - -- maximum supplied. - incompatible [3] IMPLICIT NULL, -- records with different formats - -- not compatible for sorting - generic [4] IMPLICIT NULL, -- generic sort not supported - -- (db specific only) - dbSpecific [5] IMPLICIT NULL, -- db specific sort not supported - sortElement [6] SortElement, - key [7] IMPLICIT INTEGER{ - tooMany (1), -- too many sort keys - duplicate (2)}, -- duplicate sort keys - action [8] IMPLICIT NULL, -- unsupported missing data action - illegal [9] IMPLICIT INTEGER{ - relation (1), -- illegal sort relation - case (2), -- illegal case value - action (3), -- illegal missing data action - sort (4)}, -- illegal sort - inputTooLarge [10] IMPLICIT SEQUENCE OF InternationalString, - -- one or more of the input result sets too large to sort - aggregateTooLarge [11] IMPLICIT NULL -- aggregate result set too large - }, - -segmentation [1010] CHOICE{ - segmentCount [0] IMPLICIT NULL, - -- Cannot guarantee record will fit within max segments. Target - -- suggests that origin try again to retrieve record, without - -- including max-segment-count. - segmentSize [1] IMPLICIT INTEGER - -- record cannot be segmented into fragments such that the largest - -- will fit within max segment size specified. Target supplies (in - -- bytes) the smallest acceptable value of Max-segment-size to - -- retrieve the record. - }, - - -extServices [1011] CHOICE{ - req [1] IMPLICIT INTEGER{ -- bad request - nameInUse (1), -- package name already in use - noSuchName (2), -- no such package, on modify/delete - quota (3), -- quota exceeded - type (4)}, -- extended service type not supported - permission [2] IMPLICIT INTEGER{ -- permission denied on ES, because: - id (1), -- id not authorized, or - modifyDelete (2)}, -- cannot modify or delete - immediate [3] IMPLICIT INTEGER{ -- immediate execution: - failed (1), -- failed, - service (2), -- not supported for this service, or - parameters (3) -- for these parameters. - }}, - - -accessCtrl [1012] CHOICE{ - noUser [1] IMPLICIT NULL, -- no user to display challenge to - refused [2] IMPLICIT NULL, -- access control information refused by user - simple [3] IMPLICIT NULL, -- only simple form supported (target used - -- externally defined) - oid [4] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, - -- oid not supported (origin supplies alternative - -- suggested oids) - alternative [5] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, - -- origin insists that target use an alternative - -- challenge for this data (e.g. stronger - - -- authentication or stronger Access control). The - -- origin supplies suggested alternative oids. - pwdInv [6] IMPLICIT NULL, -- password invalid - pwdExp [7] IMPLICIT NULL -- password expired - }, - - -recordSyntax [1013] IMPLICIT SEQUENCE{ -- record cannot be transferred in requested syntax - unsupportedSyntax [1] IMPLICIT OBJECT IDENTIFIER, - suggestedAlternatives [2] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL} -} - -END - - - - - -RecordSyntax-explain -{Z39-50-recordSyntax explain (100)} DEFINITIONS ::= - -BEGIN -IMPORTS AttributeSetId, Term, OtherInformation, DatabaseName, ElementSetName, IntUnit, Unit, - StringOrNumeric, Specification, InternationalString, AttributeList, AttributeElement FROM Z39-50-APDU-1995; -EXPORTS LanguageCode; - -Explain-Record ::= CHOICE{ - -- Each of these may be used as search term when Use attribute is 'explain-category'. - targetInfo [0] IMPLICIT TargetInfo, - databaseInfo [1] IMPLICIT DatabaseInfo, - schemaInfo [2] IMPLICIT SchemaInfo, - tagSetInfo [3] IMPLICIT TagSetInfo, - recordSyntaxInfo [4] IMPLICIT RecordSyntaxInfo, - attributeSetInfo [5] IMPLICIT AttributeSetInfo, - termListInfo [6] IMPLICIT TermListInfo, - extendedServicesInfo [7] IMPLICIT ExtendedServicesInfo, - attributeDetails [8] IMPLICIT AttributeDetails, - termListDetails [9] IMPLICIT TermListDetails, - elementSetDetails [10] IMPLICIT ElementSetDetails, - retrievalRecordDetails [11] IMPLICIT RetrievalRecordDetails, - sortDetails [12] IMPLICIT SortDetails, - processing [13] IMPLICIT ProcessingInformation, - variants [14] IMPLICIT VariantSetInfo, - units [15] IMPLICIT UnitInfo, - categoryList [100] IMPLICIT CategoryList} - --- Element set name 'B' (brief) retrieves: --- - 'commonInfo' (except for otherInfo within commonInfo) --- - key elements --- - other elements designated as 'non-key brief elements' --- Esn 'description' retrieves brief elements as well as 'description', and specific additional descriptive --- elements if designated. --- Element set name 'F' (full) retrieves all of the above, as well as those designated as "non-brief elements". Some --- elements designated as OPTIONAL may be mandatory in full records, and are so identified. (Note that all elements --- that are not part of the brief element set must be designated as OPTIONAL in the ASN.1, otherwise it would be --- illegal to omit them.) --- Other esns are defined (below) as needed. - --- - - - - - - - - - - - - Info Records - -- Info records are mainly for software consumption - -- They describe individual entities within the target system: - -- The target itself - -- Individual databases - -- Schemas - -- Tag sets - -- Record syntaxes - -- Attribute sets - -- Term lists - -- Extended services - -- The information about each Schema, Tag Set, Record Syntax and Attribute Set should - -- match the universal definitions of these items. The only exception is that a target may omit any - -- items it doesn't support, for example the description of the bib-1 attribute set may omit attributes - -- that the target does not support under any circumstances. - -- Databases that may be searched together can be listed in the dbCominations element of the TargetInfo record. -TargetInfo ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - name [1] IMPLICIT InternationalString, - -- Non-key brief elements follow: - recent-news [2] IMPLICIT HumanString OPTIONAL, - icon [3] IMPLICIT IconObject OPTIONAL, - namedResultSets [4] IMPLICIT BOOLEAN, - multipleDBsearch [5] IMPLICIT BOOLEAN, - maxResultSets [6] IMPLICIT INTEGER OPTIONAL, - maxResultSize [7] IMPLICIT INTEGER OPTIONAL, - maxTerms [8] IMPLICIT INTEGER OPTIONAL, - timeoutInterval [9] IMPLICIT IntUnit OPTIONAL, - welcomeMessage [10] IMPLICIT HumanString OPTIONAL, - -- non-brief elements follow: - -- 'description' esn retrieves the following two (as well as brief): - contactInfo [11] IMPLICIT ContactInfo OPTIONAL, - description [12] IMPLICIT HumanString OPTIONAL, - nicknames [13] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - usage-restrictions [14] IMPLICIT HumanString OPTIONAL, - paymentAddr [15] IMPLICIT HumanString OPTIONAL, - hours [16] IMPLICIT HumanString OPTIONAL, - dbCombinations [17] IMPLICIT SEQUENCE OF DatabaseList OPTIONAL, - addresses [18] IMPLICIT SEQUENCE OF NetworkAddress OPTIONAL, - languages [101] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - -- Languages supported for message strings. Each is a three-character - -- language code from Z39.53-1994. --- characterSets [102] this tag reserved for "character sets supported for name and message strings". - -- commonAccessInfo elements list objects the target supports. All objects listed in - -- AccessInfo for any individual database should also be listed here. - commonAccessInfo [19] IMPLICIT AccessInfo OPTIONAL} - - -DatabaseInfo ::= SEQUENCE { - -- A target may provide "virtual databases" that are combinations of individual database. These - -- databases are indicated by the presence of subDbs in the combination database's DatabaseDescription. - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - name [1] IMPLICIT DatabaseName, - -- Non-key brief elements follow: - explainDatabase [2] IMPLICIT NULL OPTIONAL, - -- If present, this database is the Explain database, or an Explain database - -- for a different server, possibly on a different host. The means by which - -- that server may be accessed is not addressed by this standard. One - -- suggested possibility is an implementor agreement whereby the - -- database name is a url which may be used to connect to the server. - nicknames [3] IMPLICIT SEQUENCE OF DatabaseName OPTIONAL, - icon [4] IMPLICIT IconObject OPTIONAL, - user-fee [5] IMPLICIT BOOLEAN, - available [6] IMPLICIT BOOLEAN, - titleString [7] IMPLICIT HumanString OPTIONAL, - -- Non-brief elements follow: - keywords [8] IMPLICIT SEQUENCE OF HumanString OPTIONAL, - description [9] IMPLICIT HumanString OPTIONAL, - associatedDbs [10] IMPLICIT DatabaseList OPTIONAL, - -- databases that may be searched in combination with this one - - subDbs [11] IMPLICIT DatabaseList OPTIONAL, - -- When present, this database is a composite representing the combined - -- databases 'subDbs'. The individual subDbs are also available. - disclaimers [12] IMPLICIT HumanString OPTIONAL, - news [13] IMPLICIT HumanString OPTIONAL, - recordCount [14] CHOICE { - actualNumber [0] IMPLICIT INTEGER, - approxNumber [1] IMPLICIT INTEGER} OPTIONAL, - defaultOrder [15] IMPLICIT HumanString OPTIONAL, - avRecordSize [16] IMPLICIT INTEGER OPTIONAL, - maxRecordSize [17] IMPLICIT INTEGER OPTIONAL, - hours [18] IMPLICIT HumanString OPTIONAL, - bestTime [19] IMPLICIT HumanString OPTIONAL, - lastUpdate [20] IMPLICIT GeneralizedTime OPTIONAL, - updateInterval [21] IMPLICIT IntUnit OPTIONAL, - coverage [22] IMPLICIT HumanString OPTIONAL, - proprietary [23] IMPLICIT BOOLEAN OPTIONAL, -- mandatory in full record - copyrightText [24] IMPLICIT HumanString OPTIONAL, - copyrightNotice [25] IMPLICIT HumanString OPTIONAL, - producerContactInfo [26] IMPLICIT ContactInfo OPTIONAL, - supplierContactInfo [27] IMPLICIT ContactInfo OPTIONAL, - submissionContactInfo [28] IMPLICIT ContactInfo OPTIONAL, - -- accessInfo lists items connected with the database. All listed items should be in the target's AccessInfo. - accessInfo [29] IMPLICIT AccessInfo OPTIONAL} - - -SchemaInfo ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - schema [1] IMPLICIT OBJECT IDENTIFIER, - -- Non-key brief elements follow: - name [2] IMPLICIT InternationalString, - -- Non-brief elements follow: - description [3] IMPLICIT HumanString OPTIONAL, - tagTypeMapping [4] IMPLICIT SEQUENCE OF SEQUENCE { - tagType [0] IMPLICIT INTEGER, - tagSet [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - -- If tagSet is omitted, then this tagType is for a tagSet locally defined - -- within the schema that cannot be referenced by another schema. - defaultTagType [2] IMPLICIT NULL OPTIONAL - } OPTIONAL, - recordStructure [5] IMPLICIT SEQUENCE OF ElementInfo OPTIONAL} - - - -- ElementInfo referenced in SchemaInfo and RecordSyntaxInfo - ElementInfo ::= SEQUENCE { - elementName [1] IMPLICIT InternationalString, - elementTagPath [2] IMPLICIT Path, - dataType [3] ElementDataType OPTIONAL, -- If omitted, not specified. - required [4] IMPLICIT BOOLEAN, - repeatable [5] IMPLICIT BOOLEAN, - description [6] IMPLICIT HumanString OPTIONAL} - - - -- Path is referenced by ElementInfo as well as PerElementDetails - Path ::= SEQUENCE OF SEQUENCE{ - tagType [1] IMPLICIT INTEGER, - tagValue [2] StringOrNumeric} - ElementDataType ::= CHOICE{ - primitive [0] IMPLICIT PrimitiveDataType, - structured [1] IMPLICIT SEQUENCE OF ElementInfo} - PrimitiveDataType ::= INTEGER{ - octetString (0), - numeric (1), - date (2), - external (3), - string (4), - trueOrFalse (5), - oid (6), - intUnit (7), - empty (8), - noneOfTheAbove (100) -- see 'description' - } - - -TagSetInfo ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - tagSet [1] IMPLICIT OBJECT IDENTIFIER, - -- non-key brief elements follow: - name [2] IMPLICIT InternationalString, - -- non-brief elements follow: - description [3] IMPLICIT HumanString OPTIONAL, - elements [4] IMPLICIT SEQUENCE OF SEQUENCE { - elementname [1] IMPLICIT InternationalString, - nicknames [2] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - elementTag [3] StringOrNumeric, - description [4] IMPLICIT HumanString OPTIONAL, - dataType [5] PrimitiveDataType OPTIONAL, - -- If the data type is expected to be structured, that is described in the schema info, - -- and datatype is omitted here. - otherTagInfo OtherInformation OPTIONAL} OPTIONAL} - -RecordSyntaxInfo ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - recordSyntax [1] IMPLICIT OBJECT IDENTIFIER, - -- Non-key brief elements follow: - name [2] IMPLICIT InternationalString, - -- non-brief elements follow: - transferSyntaxes [3] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, - description [4] IMPLICIT HumanString OPTIONAL, - asn1Module [5] IMPLICIT InternationalString OPTIONAL, - abstractStructure [6] IMPLICIT SEQUENCE OF ElementInfo OPTIONAL - -- Omitting abstractStructure only means target isn't using - -- Explain to describe the structure, not that there is no structure. - } - -AttributeSetInfo ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - attributeSet [1] IMPLICIT AttributeSetId, - -- non-key brief elements follow: - name [2] IMPLICIT InternationalString, - -- non-brief elements follow: - attributes [3] IMPLICIT SEQUENCE OF AttributeType OPTIONAL, - -- mandatory in full record - description [4] IMPLICIT HumanString OPTIONAL} --- AttributeType referenced in AttributeSetInfo - AttributeType ::= SEQUENCE { - name [0] IMPLICIT InternationalString OPTIONAL, - description [1] IMPLICIT HumanString OPTIONAL, - attributeType [2] IMPLICIT INTEGER, - attributeValues [3] IMPLICIT SEQUENCE OF AttributeDescription} - AttributeDescription ::= SEQUENCE { - name [0] IMPLICIT InternationalString OPTIONAL, - description [1] IMPLICIT HumanString OPTIONAL, - attributeValue [2] StringOrNumeric, - equivalentAttributes [3] IMPLICIT SEQUENCE OF StringOrNumeric OPTIONAL - -- each is an occurrence of 'attributeValue' from AttributeDescription for a - -- different attribute. Equivalences listed here should be derived from the - -- attribute set definition, not from a particular server's behavior. - } - - -TermListInfo ::= SEQUENCE{ - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - databaseName [1] IMPLICIT DatabaseName, - -- Non-key brief elements follow: - termLists [2] IMPLICIT SEQUENCE OF SEQUENCE{ - name [1] IMPLICIT InternationalString, - title [2] IMPLICIT HumanString OPTIONAL, - -- Title is for users to see and can differ by language. Name, on the - -- other hand is typically a short string not necessarily meant to be - -- human-readable, and not variable by language. - searchCost [3] IMPLICIT INTEGER { - optimized (0), -- The attribute (or combination) associated - -- with this list will do fast searches. - normal (1), -- The attribute (combination) will work as - -- expected. So there's probably an index for the - -- attribute (combination) or some similar - -- mechanism. - expensive (2), -- Can use the attribute (combination), but it - -- might not provide satisfactory results. - -- Probably there is no index, or post- - -- processing of records is required. - filter (3) -- can't search with this attribute (combination) alone. - } OPTIONAL, - scanable [4] IMPLICIT BOOLEAN, -- 'true' means this list can be scanned. - broader [5] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - narrower [6] IMPLICIT SEQUENCE OF InternationalString OPTIONAL - -- broader and narrower list alternative term lists related to this one. - -- The term lists so listed should also be in this termLists structure. - } - -- no non-brief elements - } - - -ExtendedServicesInfo ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - type [1] IMPLICIT OBJECT IDENTIFIER, - -- Non-key brief elements follow: - name [2] IMPLICIT InternationalString OPTIONAL, - -- should be supplied if privateType is 'true' - privateType [3] IMPLICIT BOOLEAN, - restrictionsApply [5] IMPLICIT BOOLEAN, -- if 'true' see 'description' - feeApply [6] IMPLICIT BOOLEAN, -- if 'true' see 'description' - available [7] IMPLICIT BOOLEAN, - retentionSupported [8] IMPLICIT BOOLEAN, - waitAction [9] IMPLICIT INTEGER{ - waitSupported (1), - waitAlways (2), - waitNotSupported (3), - depends (4), - notSaying (5)}, - -- non-brief elements follow: - -- To get brief plus 'description' use esn 'description' - description [10] IMPLICIT HumanString OPTIONAL, - -- to get above elements and 'specificExplain' use esn 'specificExplain' - specificExplain [11] IMPLICIT EXTERNAL OPTIONAL, - -- Use oid of specific ES, and select choice [3] 'explain'. Format - -- to be developed in conjunction with the specific ES definition. - -- to get all elements except 'specificExplain', use esn 'asn' - esASN [12] IMPLICIT InternationalString OPTIONAL -- the ASN.1 for this ES - } - --- - - - - - - - - - - - - Detail records - -- The detail records describe relationships among entities supported by the target. RetrievalRecordDetails describes - -- the way that schema elements are mapped into record elements. This mapping may be different for each - -- combination of database, schema, record syntax. The per-element details describe the default mapping. - -- Origin-request re-tagging can change that mapping. When multiple databases are listed in a databaseNames - -- element, the record applies equally to all of the listed databases. This is unrelated to searching the databases - -- together. AttributeDetails describes how databases can be searched. Each supported attribute is listed, and the - -- allowable combinations can be described. - - -AttributeDetails ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - databaseName [1] IMPLICIT DatabaseName, - -- Non-brief elements follow: - attributesBySet [2] IMPLICIT SEQUENCE OF AttributeSetDetails OPTIONAL, - -- mandatory in full record - attributeCombinations [3] IMPLICIT AttributeCombinations OPTIONAL} - - - - --- AttributeSetDetails referenced by AttributeDetails - AttributeSetDetails ::= SEQUENCE { - attributeSet [0] IMPLICIT AttributeSetId, - attributesByType [1] IMPLICIT SEQUENCE OF AttributeTypeDetails } - AttributeTypeDetails ::= SEQUENCE { - attributeType [0] IMPLICIT INTEGER, - defaultIfOmitted [1] IMPLICIT OmittedAttributeInterpretation OPTIONAL, - attributeValues [2] IMPLICIT SEQUENCE OF AttributeValue OPTIONAL } - -- If no attributeValues are supplied, all values of this type are fully - -- supported, and the descriptions in AttributeSetInfo are adequate. - - OmittedAttributeInterpretation ::= SEQUENCE { - defaultValue [0] StringOrNumeric OPTIONAL, - -- A default value is listed if that's how the server works - defaultDescription [1] IMPLICIT HumanString OPTIONAL } - -- The human-readable description should generally be provided. - -- It is legal for both default elements to be missing, which - -- means that the target will allow the attribute type to be - -- omitted, but isn't saying what it will do. - - AttributeValue ::= SEQUENCE { - value [0] StringOrNumeric, - description [1] IMPLICIT HumanString OPTIONAL, - subAttributes [2] IMPLICIT SEQUENCE OF StringOrNumeric OPTIONAL, - superAttributes [3] IMPLICIT SEQUENCE OF StringOrNumeric OPTIONAL, - partialSupport [4] IMPLICIT NULL OPTIONAL } - -- partialSupport indicates that an attributeValue is accepted, but may not be processed in the - -- "expected" way. One important reason for this is composite databases: in this case partialSupport - -- may indicate that only some of the subDbs support the attribute, and others ignore it. - - - -TermListDetails ::= SEQUENCE{ -- one for each termList in TermListInfo - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - termListName [1] IMPLICIT InternationalString, - -- Non-key elements (all non-brief) follow: - description [2] IMPLICIT HumanString OPTIONAL, - attributes [3] IMPLICIT AttributeCombinations OPTIONAL, - -- Pattern for attributes that hit this list. Mandatory in full record - scanInfo [4] IMPLICIT SEQUENCE { - maxStepSize [0] IMPLICIT INTEGER OPTIONAL, - collatingSequence [1] IMPLICIT HumanString OPTIONAL, - increasing [2] IMPLICIT BOOLEAN OPTIONAL} OPTIONAL, - -- Occurs only if list is scanable. If list is scanable and if scanInfo is omitted, - -- target doesn't consider these important. - estNumberTerms [5] IMPLICIT INTEGER OPTIONAL, - sampleTerms [6] IMPLICIT SEQUENCE OF Term OPTIONAL} - - - -ElementSetDetails ::= SEQUENCE { - -- ElementSetDetails describes the way that database records are mapped to record elements. This - -- mapping may be different for each combination of database name and element set. The database record - -- description is a schema, which may be private to the target. The schema's abstract record structure - -- and tag sets provide the vocabulary for discussing record content; their presence in the Explain - -- database does not imply support for complex retrieval specification. - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - databaseName [1] IMPLICIT DatabaseName, - elementSetName [2] IMPLICIT ElementSetName, - recordSyntax [3] IMPLICIT OBJECT IDENTIFIER, - -- Non-key Brief elements follow: - schema [4] IMPLICIT OBJECT IDENTIFIER, - -- Non-brief elements follow: - description [5] IMPLICIT HumanString OPTIONAL, - detailsPerElement [6] IMPLICIT SEQUENCE OF PerElementDetails OPTIONAL -- mandatory in full record - } - - -RetrievalRecordDetails ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - databaseName [1] IMPLICIT DatabaseName, - schema [2] IMPLICIT OBJECT IDENTIFIER, - recordSyntax [3] IMPLICIT OBJECT IDENTIFIER, - -- Non-brief elements follow: - description [4] IMPLICIT HumanString OPTIONAL, - detailsPerElement [5] IMPLICIT SEQUENCE OF PerElementDetails OPTIONAL - -- mandatory in full record - } - --- PerElementDetails is referenced in RetrievalRecordDetails and ElementSetDetails. - PerElementDetails ::= SEQUENCE { - name [0] IMPLICIT InternationalString OPTIONAL, - -- If the name is omitted, the record syntax's name for this element - -- is appropriate. - recordTag [1] IMPLICIT RecordTag OPTIONAL, - -- The record tag may be omitted if tags are inappropriate for the record - -- syntax, or if the origin can be expected to know it for some other reason. - schemaTags [2] IMPLICIT SEQUENCE OF Path OPTIONAL, - -- The information from the listed schema elements is combined - -- in some way to produce the data sent in the listed record tag. The - -- 'contents' element below may describe the logic used. - maxSize [3] IMPLICIT INTEGER OPTIONAL, - minSize [4] IMPLICIT INTEGER OPTIONAL, - avgSize [5] IMPLICIT INTEGER OPTIONAL, - fixedSize [6] IMPLICIT INTEGER OPTIONAL, - repeatable [8] IMPLICIT BOOLEAN, - required [9] IMPLICIT BOOLEAN, - -- 'required' really means that target will always supply the element. - description [12] IMPLICIT HumanString OPTIONAL, - contents [13] IMPLICIT HumanString OPTIONAL, - billingInfo [14] IMPLICIT HumanString OPTIONAL, - restrictions [15] IMPLICIT HumanString OPTIONAL, - alternateNames [16] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - genericNames [17] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - searchAccess [18] IMPLICIT AttributeCombinations OPTIONAL } - -- RecordTag referenced in PerElementDetails above - RecordTag ::= SEQUENCE { - qualifier [0] StringOrNumeric OPTIONAL, - -- E.g. tag set for GRS-1 - tagValue [1] StringOrNumeric} - -SortDetails ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - databaseName [1] IMPLICIT DatabaseName, - -- No non-key brief elements - -- Non-brief elements follow: - sortKeys [2] IMPLICIT SEQUENCE OF SortKeyDetails OPTIONAL - -- mandatory in full record - } - SortKeyDetails ::= SEQUENCE { - description [0] IMPLICIT HumanString OPTIONAL, - elementSpecifications [1] IMPLICIT SEQUENCE OF Specification OPTIONAL, - -- each specification is a way of specifying this same sort key - attributeSpecifications [2] IMPLICIT AttributeCombinations OPTIONAL, - -- each combination is a way of specifying this same sort key - sortType [3] CHOICE { - character [0] IMPLICIT NULL, - numeric [1] IMPLICIT NULL, - structured [2] IMPLICIT HumanString} OPTIONAL, - caseSensitivity [4] IMPLICIT INTEGER { - always (0), -- always case-sensitive - never (1), -- never case-sensitive - default-yes (2), -- case-sensitivity is as specified on request, and if not - -- specified, case-sensitive. - default-no (3)} -- case-sensitivity is as specified on request, and if not - -- specified, not case-sensitive. - OPTIONAL} - -ProcessingInformation ::= SEQUENCE{ - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - databaseName [1] IMPLICIT DatabaseName, - processingContext [2] IMPLICIT INTEGER { - access (0), -- e.g. choosing databases - search (1), -- e.g. "search strategies" or search forms - retrieval (2), -- e.g. recommended element combinations - record-presentation (3), -- display of retrieved records - record-handling (4) -- handling (e.g. saving) of retrieved records - }, - name [3] IMPLICIT InternationalString, - oid [4] IMPLICIT OBJECT IDENTIFIER, - -- No non-key brief elements - -- Non-brief elements follow: - description [5] IMPLICIT HumanString OPTIONAL, - -- use element set name 'description' to retrieve all except instructions. - instructions [6] IMPLICIT EXTERNAL OPTIONAL -- mandatory in full record - } - - -VariantSetInfo ::= SEQUENCE { - -- A record in this category describes a variant set definition, i.e., classes, types, and values, for a specific - -- variant set definition supported by the target. Support by the target of a particular variant set definition - -- does not imply that the definition is supported for any specific database or element. - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - variantSet [1] IMPLICIT OBJECT IDENTIFIER, - -- Non-key brief elements follow: - name [2] IMPLICIT InternationalString, - -- Non-brief elements follow: - variants [3] IMPLICIT SEQUENCE OF VariantClass OPTIONAL - -- mandatory in full record - } - - -- Subsidiary structures for VariantSetInfo - VariantClass ::= SEQUENCE { - name [0] IMPLICIT InternationalString OPTIONAL, - description [1] IMPLICIT HumanString OPTIONAL, - variantClass [2] IMPLICIT INTEGER, - variantTypes [3] IMPLICIT SEQUENCE OF VariantType} - VariantType ::= SEQUENCE { - name [0] IMPLICIT InternationalString OPTIONAL, - description [1] IMPLICIT HumanString OPTIONAL, - variantType [2] IMPLICIT INTEGER, - variantValue [3] IMPLICIT VariantValue OPTIONAL} - VariantValue ::= SEQUENCE { - dataType [0] PrimitiveDataType, - values [1] ValueSet OPTIONAL } - ValueSet ::= CHOICE { - range [0] IMPLICIT ValueRange, - enumerated [1] IMPLICIT SEQUENCE OF ValueDescription } - ValueRange ::= SEQUENCE { - -- At last one the following must be supplied, both may be supplied. - lower [0] ValueDescription OPTIONAL, - upper [1] ValueDescription OPTIONAL } - ValueDescription ::= CHOICE{ - integer INTEGER, - string InternationalString, - octets OCTET STRING, - oid OBJECT IDENTIFIER, - unit [1] IMPLICIT Unit, - valueAndUnit [2] IMPLICIT IntUnit - -- oid and unit can't be used in a ValueRange - } - - - -UnitInfo ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Key elements follow: - unitSystem [1] IMPLICIT InternationalString, - -- No non-key brief elements - -- Non-brief elements follow: - description [2] IMPLICIT HumanString OPTIONAL, - units [3] IMPLICIT SEQUENCE OF UnitType OPTIONAL - -- mandatory in full record - } - - -- Subsidiary structures for UnitInfo - UnitType ::= SEQUENCE { - name [0] IMPLICIT InternationalString OPTIONAL, - description [1] IMPLICIT HumanString OPTIONAL, - unitType [2] StringOrNumeric, - units [3] IMPLICIT SEQUENCE OF Units} - - Units ::= SEQUENCE { - name [0] IMPLICIT InternationalString OPTIONAL, - description [1] IMPLICIT HumanString OPTIONAL, - unit [2] StringOrNumeric} - -CategoryList ::= SEQUENCE { - commonInfo [0] IMPLICIT CommonInfo OPTIONAL, - -- Only one record expected per Explain database. All elements appear in brief presentation. - categories [1] IMPLICIT SEQUENCE OF CategoryInfo } - CategoryInfo ::= SEQUENCE { - category [1] IMPLICIT InternationalString, - originalCategory [2] IMPLICIT InternationalString OPTIONAL, - description [3] IMPLICIT HumanString OPTIONAL, - asn1Module [4] IMPLICIT InternationalString OPTIONAL} - - --- - - - - - - - - - - - - - Subsidiary definitions - -CommonInfo ::= SEQUENCE { - dateAdded [0] IMPLICIT GeneralizedTime OPTIONAL, - dateChanged [1] IMPLICIT GeneralizedTime OPTIONAL, - expiry [2] IMPLICIT GeneralizedTime OPTIONAL, - humanString-Language [3] IMPLICIT LanguageCode OPTIONAL, - -- following not to occur for brief: - otherInfo OtherInformation OPTIONAL} - - -HumanString ::= SEQUENCE OF SEQUENCE { - language [0] IMPLICIT LanguageCode OPTIONAL, - text [1] IMPLICIT InternationalString} - -IconObject ::= SEQUENCE OF SEQUENCE{ - -- Note that the "SEQUENCE OF" is to allow alternative representations of the same Icon; it is not - -- intended to allow multiple icons. - bodyType [1] CHOICE{ - ianaType [1] IMPLICIT InternationalString, - z3950type [2] IMPLICIT InternationalString, - otherType [3] IMPLICIT InternationalString}, - content [2] IMPLICIT OCTET STRING} - - -LanguageCode ::= InternationalString -- from ANSI/NISO Z39.53-1994 - -ContactInfo ::= SEQUENCE { - name [0] IMPLICIT InternationalString OPTIONAL, - description [1] IMPLICIT HumanString OPTIONAL, - address [2] IMPLICIT HumanString OPTIONAL, - email [3] IMPLICIT InternationalString OPTIONAL, - phone [4] IMPLICIT InternationalString OPTIONAL} - -NetworkAddress ::= CHOICE { - internetAddress [0] IMPLICIT SEQUENCE { - hostAddress [0] IMPLICIT InternationalString, - port [1] IMPLICIT INTEGER}, - osiPresentationAddress [1] IMPLICIT SEQUENCE { - pSel [0] IMPLICIT InternationalString, - sSel [1] IMPLICIT InternationalString OPTIONAL, - tSel [2] IMPLICIT InternationalString OPTIONAL, - nSap [3] IMPLICIT InternationalString}, - other [2] IMPLICIT SEQUENCE { - type [0] IMPLICIT InternationalString, - address [1] IMPLICIT InternationalString}} - -AccessInfo ::= SEQUENCE { - -- AccessInfo contains the fundamental information about what facilities are required to use this target - -- or server. For example, if an origin can handle none of the record syntaxes a database can provide, - -- it might choose not to access the database. - queryTypesSupported [0] IMPLICIT SEQUENCE OF QueryTypeDetails OPTIONAL, - diagnosticsSets [1] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, - attributeSetIds [2] IMPLICIT SEQUENCE OF AttributeSetId OPTIONAL, - schemas [3] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, - recordSyntaxes [4] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, - resourceChallenges [5] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, - restrictedAccess [6] IMPLICIT AccessRestrictions OPTIONAL, - costInfo [8] IMPLICIT Costs OPTIONAL, - variantSets [9] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL, - elementSetNames [10] IMPLICIT SEQUENCE OF ElementSetName OPTIONAL, - unitSystems [11] IMPLICIT SEQUENCE OF InternationalString} - --- begin auxiliary definitions for AccessInfo --- Begin Query Details -QueryTypeDetails ::= CHOICE { - private [0] IMPLICIT PrivateCapabilities, - rpn [1] IMPLICIT RpnCapabilities, - iso8777 [2] IMPLICIT Iso8777Capabilities, - z39-58 [100] IMPLICIT HumanString, - erpn [101] IMPLICIT RpnCapabilities, - rankedList [102] IMPLICIT HumanString} - -PrivateCapabilities ::= SEQUENCE { - operators [0] IMPLICIT SEQUENCE OF SEQUENCE { - operator [0] IMPLICIT InternationalString, - description [1] IMPLICIT HumanString OPTIONAL } OPTIONAL, - searchKeys [1] IMPLICIT SEQUENCE OF SearchKey OPTIONAL, -- field names that can be searched - description [2] IMPLICIT SEQUENCE OF HumanString OPTIONAL } - -RpnCapabilities ::= SEQUENCE { - operators [0] IMPLICIT SEQUENCE OF INTEGER OPTIONAL, - -- Omitted means all operators are supported. - resultSetAsOperandSupported [1] IMPLICIT BOOLEAN, - restrictionOperandSupported [2] IMPLICIT BOOLEAN, - proximity [3] IMPLICIT ProximitySupport OPTIONAL} - -Iso8777Capabilities ::= SEQUENCE { - searchKeys [0] IMPLICIT SEQUENCE OF SearchKey, -- field names that may be searched - restrictions [1] IMPLICIT HumanString OPTIONAL - -- Omitted means supported, not specifying units. - } - -ProximitySupport ::= SEQUENCE { - anySupport [0] IMPLICIT BOOLEAN, - -- 'false' means no proximity support, in which case unitsSupported not supplied. - unitsSupported [1] IMPLICIT SEQUENCE OF CHOICE{ - known [1] IMPLICIT INTEGER, -- values from KnownProximityUnit - private [2] IMPLICIT SEQUENCE{ - unit [0] IMPLICIT INTEGER, - description [1] HumanString OPTIONAL}} OPTIONAL} - -SearchKey ::= SEQUENCE { - searchKey [0] IMPLICIT InternationalString, - description [1] IMPLICIT HumanString OPTIONAL } --- End Query details -AccessRestrictions ::= SEQUENCE OF SEQUENCE { - accessType [0] INTEGER { - any (0), - search (1), - present (2), - specific-elements (3), - extended-services (4), - by-database (5)}, - accessText [1] IMPLICIT HumanString OPTIONAL, - accessChallenges [2] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL} - -Costs ::= SEQUENCE { - connectCharge [0] IMPLICIT Charge OPTIONAL, -- Per-connection charge - connectTime [1] IMPLICIT Charge OPTIONAL, -- Time-based charge - displayCharge [2] IMPLICIT Charge OPTIONAL, -- Per-record charge - searchCharge [3] IMPLICIT Charge OPTIONAL, -- Per-search charge - subscriptCharge [4] IMPLICIT Charge OPTIONAL, -- Subscription charges - otherCharges [5] IMPLICIT SEQUENCE OF SEQUENCE{ -- Other charges - forWhat [1] IMPLICIT HumanString, - charge [2] IMPLICIT Charge} OPTIONAL} - Charge ::= SEQUENCE{ - cost [1] IMPLICIT IntUnit, - perWhat [2] IMPLICIT Unit OPTIONAL, - -- e.g. "second," "minute," "line," "record"... - text [3] IMPLICIT HumanString OPTIONAL} --- End Auxiliary definitions for AccessInfo - -DatabaseList ::= SEQUENCE OF DatabaseName - -AttributeCombinations ::= SEQUENCE { - defaultAttributeSet [0] IMPLICIT AttributeSetId, - -- Default for the combinations. Also probably a good choice for the default - -- in searches, but that isn't required. - legalCombinations [1] IMPLICIT SEQUENCE OF AttributeCombination } - - -AttributeCombination ::= SEQUENCE OF AttributeOccurrence - -- An AttributeCombination is a pattern for legal combination of attributes - - -AttributeOccurrence ::= SEQUENCE { - -- An AttributeOccurrence lists the legal values for a specific attribute type in a combination. - attributeSet [0] IMPLICIT AttributeSetId OPTIONAL, - attributeType [1] IMPLICIT INTEGER, - mustBeSupplied [2] IMPLICIT NULL OPTIONAL, - attributeValues CHOICE { - any-or-none [3] IMPLICIT NULL, -- All supported values are OK - specific [4] IMPLICIT SEQUENCE OF StringOrNumeric}} - -- Only these values allowed -END - - - - - - - - - -RecordSyntax-SUTRS -{Z39-50-recordSyntax SUTRS (101)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString FROM Z39-50-APDU-1995; - SutrsRecord ::= InternationalString --- Line terminator is ASCII LF (X'0A'). --- Recommended maximum line length is 72 characters. -END - - - - - -RecordSyntax-opac -{Z39-50-recordSyntax opac (102)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString FROM Z39-50-APDU-1995; -OPACRecord ::= SEQUENCE { - bibliographicRecord [1] IMPLICIT EXTERNAL OPTIONAL, - holdingsData [2] IMPLICIT SEQUENCE OF HoldingsRecord OPTIONAL} -HoldingsRecord ::= CHOICE { - marcHoldingsRecord [1] IMPLICIT EXTERNAL, - holdingsAndCirc [2] IMPLICIT HoldingsAndCircData} -HoldingsAndCircData ::= SEQUENCE { --- the following elements are required to display holdings in conformance with NISO standards. - typeOfRecord [1] IMPLICIT InternationalString OPTIONAL, -- LDR 06 - encodingLevel [2] IMPLICIT InternationalString OPTIONAL, -- LDR 017 - format [3] IMPLICIT InternationalString OPTIONAL, -- 007 00-01 - receiptAcqStatus [4] IMPLICIT InternationalString OPTIONAL, -- 008 06 - generalRetention [5] IMPLICIT InternationalString OPTIONAL, -- 008 12 - completeness [6] IMPLICIT InternationalString OPTIONAL, -- 008 16 - dateOfReport [7] IMPLICIT InternationalString OPTIONAL, -- 008 26-31 - nucCode [8] IMPLICIT InternationalString OPTIONAL, -- 852 $a - localLocation [9] IMPLICIT InternationalString OPTIONAL, -- 852 $b - shelvingLocation [10] IMPLICIT InternationalString OPTIONAL, -- 852 $c - callNumber [11] IMPLICIT InternationalString OPTIONAL, -- 852 $h and $i - shelvingData [12] IMPLICIT InternationalString OPTIONAL, -- 852 $j thru $m - copyNumber [13] IMPLICIT InternationalString OPTIONAL, -- 852 $t - publicNote [14] IMPLICIT InternationalString OPTIONAL, -- 852 $z - reproductionNote [15] IMPLICIT InternationalString OPTIONAL, -- 843 - termsUseRepro [16] IMPLICIT InternationalString OPTIONAL, -- 845 - enumAndChron [17] IMPLICIT InternationalString OPTIONAL, -- all 85x, 86x - volumes [18] IMPLICIT SEQUENCE OF Volume OPTIONAL, - -- repeats for each volume held - circulationData [19] IMPLICIT SEQUENCE OF CircRecord OPTIONAL - -- repeats for each circulating item. - } -Volume ::= SEQUENCE { - enumeration [1] IMPLICIT InternationalString OPTIONAL, - chronology [2] IMPLICIT InternationalString OPTIONAL, - enumAndChron [3] IMPLICIT InternationalString OPTIONAL } -CircRecord ::= SEQUENCE { - availableNow [1] IMPLICIT BOOLEAN, - availablityDate [2] IMPLICIT InternationalString OPTIONAL, - availableThru [3] IMPLICIT InternationalString OPTIONAL, - restrictions [4] IMPLICIT InternationalString OPTIONAL, - itemId [5] IMPLICIT InternationalString OPTIONAL, - renewable [6] IMPLICIT BOOLEAN, - onHold [7] IMPLICIT BOOLEAN, - enumAndChron [8] IMPLICIT InternationalString OPTIONAL, - midspine [9] IMPLICIT InternationalString OPTIONAL, - temporaryLocation [10] IMPLICIT InternationalString OPTIONAL} -END - - - -RecordSyntax-summary - -{Z39-50-recordSyntax summary (103)} DEFINITIONS ::= -BEGIN -IMPORTS OtherInformation, InternationalString FROM Z39-50-APDU-1995; -BriefBib ::= SEQUENCE { - title [1] IMPLICIT InternationalString, - author [2] IMPLICIT InternationalString OPTIONAL, - callNumber [3] IMPLICIT InternationalString OPTIONAL, - recordType [4] IMPLICIT InternationalString OPTIONAL, - bibliographicLevel [5] IMPLICIT InternationalString OPTIONAL, - format [6] IMPLICIT SEQUENCE OF FormatSpec OPTIONAL, - publicationPlace [7] IMPLICIT InternationalString OPTIONAL, - publicationDate [8] IMPLICIT InternationalString OPTIONAL, - targetSystemKey [9] IMPLICIT InternationalString OPTIONAL, - satisfyingElement [10] IMPLICIT InternationalString OPTIONAL, - rank [11] IMPLICIT INTEGER OPTIONAL, - documentId [12] IMPLICIT InternationalString OPTIONAL, - abstract [13] IMPLICIT InternationalString OPTIONAL, - otherInfo OtherInformation OPTIONAL} - -FormatSpec ::= SEQUENCE { - type [1] IMPLICIT InternationalString, - size [2] IMPLICIT INTEGER OPTIONAL, - bestPosn [3] IMPLICIT INTEGER OPTIONAL} -END - - - - - - - - - - -RecordSyntax-generic -- For detailed semantics, see Appendix RET. -{Z39-50-recordSyntax GRS-1 (105)} DEFINITIONS ::= -BEGIN -EXPORTS Variant; -IMPORTS IntUnit, Unit, InternationalString, StringOrNumeric, Term FROM Z39-50-APDU-1995; - -GenericRecord ::= SEQUENCE OF TaggedElement -TaggedElement ::= SEQUENCE { - tagType [1] IMPLICIT INTEGER OPTIONAL, - -- If omitted, default should be supplied dynamically by tagSet-M; - -- otherwise it should be statically specified by the schema. - tagValue [2] StringOrNumeric, - tagOccurrence [3] IMPLICIT INTEGER OPTIONAL, - -- Occurrence within the database record, and relative to the parent. No - -- default; if omitted, target not telling or it is irrelevant. - content [4] ElementData, - metaData [5] IMPLICIT ElementMetaData OPTIONAL, - appliedVariant [6] IMPLICIT Variant OPTIONAL} - -ElementData ::= CHOICE{ - octets OCTET STRING, - numeric INTEGER, - date GeneralizedTime, - ext EXTERNAL, - string InternationalString, - trueOrFalse BOOLEAN, - oid OBJECT IDENTIFIER, - intUnit [1] IMPLICIT IntUnit, - elementNotThere [2] IMPLICIT NULL, -- element requested but not there - elementEmpty [3] IMPLICIT NULL, -- element there, but empty - noDataRequested [4] IMPLICIT NULL, -- variant request said 'no data' - diagnostic [5] IMPLICIT EXTERNAL, - subtree [6] SEQUENCE OF TaggedElement -- recursive, for nested tags - } - - -ElementMetaData ::= SEQUENCE{ - seriesOrder [1] IMPLICIT Order OPTIONAL, -- only for a non-leaf node - usageRight [2] IMPLICIT Usage OPTIONAL, - hits [3] IMPLICIT SEQUENCE OF HitVector OPTIONAL, - displayName [4] IMPLICIT InternationalString OPTIONAL, - -- name for element that origin can use for display - supportedVariants [5] IMPLICIT SEQUENCE OF Variant OPTIONAL, - message [6] IMPLICIT InternationalString OPTIONAL, - elementDescriptor [7] IMPLICIT OCTET STRING OPTIONAL, - surrogateFor [8] IMPLICIT TagPath OPTIONAL, - -- the retrieved element is a surrogate for the element given by this path - surrogateElement [9] IMPLICIT TagPath OPTIONAL, - -- the element given by this path is a surrogate for the retrieved element - other [99] IMPLICIT EXTERNAL OPTIONAL} - - TagPath ::= SEQUENCE OF SEQUENCE{ - tagType [1] IMPLICIT INTEGER OPTIONAL, - tagValue [2] StringOrNumeric, - tagOccurrence [3] IMPLICIT INTEGER OPTIONAL} - - - -Order ::= SEQUENCE{ - ascending [1] IMPLICIT BOOLEAN, - -- "true" means monotonically increasing (i.e. non-decreasing); - -- "false" means monotonically decreasing (i.e. non-increasing). - order [2] IMPLICIT INTEGER - -- Same as defined by 'elementOrdering' in tagSet-M, though this may be - -- overridden by schema. - } - - - -Usage ::= SEQUENCE { - type [1] IMPLICIT INTEGER{ - redistributable (1), -- Element is freely redistributable. - restricted (2), -- Restriction contains statement. - licensePointer (3) -- Restriction contains license pointer. - }, - restriction [2] IMPLICIT InternationalString OPTIONAL} - - - -HitVector ::= SEQUENCE{ - -- Each hit vector points to a fragment within the element, via location and/or token. - satisfier Term OPTIONAL, -- sourceword, etc. - offsetIntoElement [1] IMPLICIT IntUnit OPTIONAL, - length [2] IMPLICIT IntUnit OPTIONAL, - hitRank [3] IMPLICIT INTEGER OPTIONAL, - targetToken [4] IMPLICIT OCTET STRING OPTIONAL - -- Origin may use token subsequently within a variantRequest (in - -- an elementRequest) to retrieve (or to refer to) the fragment. - } - - - - -Variant ::= SEQUENCE{ - globalVariantSetId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - -- Applies to the triples below, when variantSetId omitted. If - -- globalVariantSetId omitted, default applies. Default may be provided by - -- the tagSet-M element defaultVariantSetId. - - - - - triples [2] IMPLICIT SEQUENCE OF SEQUENCE{ - variantSetId [0] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - -- If omitted, globalVariantSetId (above) - -- applies, unless that too is omitted, in - -- which case, default used. - class [1] IMPLICIT INTEGER, - type [2] IMPLICIT INTEGER, - value [3] CHOICE{ - integer INTEGER, - internationalString InternationalString, - octetString OCTET STRING, - objectIdentifier OBJECT IDENTIFIER, - boolean BOOLEAN, - null NULL, - -- Following need context tags: - unit [1] IMPLICIT Unit, - valueAndUnit [2] IMPLICIT IntUnit}}} -END - - - -RecordSyntax-ESTaskPackage -{Z39-50-recordSyntax ESTaskPackage (106)} DEFINITIONS ::= -BEGIN -IMPORTS Permissions, InternationalString, IntUnit, DiagRec FROM Z39-50-APDU-1995; - -TaskPackage ::= SEQUENCE{ - packageType [1] IMPLICIT OBJECT IDENTIFIER, - -- oid of specific ES definition - packageName [2] IMPLICIT InternationalString OPTIONAL, - userId [3] IMPLICIT InternationalString OPTIONAL, - retentionTime [4] IMPLICIT IntUnit OPTIONAL, - permissions [5] IMPLICIT Permissions OPTIONAL, - description [6] IMPLICIT InternationalString OPTIONAL, - targetReference [7] IMPLICIT OCTET STRING OPTIONAL, - creationDateTime [8] IMPLICIT GeneralizedTime OPTIONAL, - taskStatus [9] IMPLICIT INTEGER{ - pending (0), - active (1), - complete (2), - aborted (3)}, - packageDiagnostics [10] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, - taskSpecificParameters [11] IMPLICIT EXTERNAL - -- Use oid for specific ES definition - -- (same oid as packageType above) - -- and select [2] "taskPackage." - } -END - - - - -ResourceReport-Format-Resource-1 -{Z39-50-resourceReport resource-1 (1)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString FROM Z39-50-APDU-1995; --- -ResourceReport ::= SEQUENCE{ -estimates [1] IMPLICIT SEQUENCE OF Estimate, -message [2] IMPLICIT InternationalString} --- -Estimate ::= SEQUENCE{ -type [1] IMPLICIT EstimateType, -value [2] IMPLICIT INTEGER, -- the actual estimate -currency-code [3] IMPLICIT INTEGER OPTIONAL - -- code for representation of currencies defined in ISO 4217-1990. - -- Applicable only to monetary estimates. - } -EstimateType ::= INTEGER{ -currentSearchRecords (1), -- estimated no. records in current (incomplete) result set for search -finalSearchRecords (2), -- estimated no. records that will be in result set if search completes -currentPresentRecords (3), -- estimated number of records in current (incomplete) set of - -- records to be returned on Present -finalPresentRecords (4), -- estimated number of records that will be in the set of records - -- to be returned by Present if Present completes -currentOpTimeProcessing (5), -- processing time (in .001 CPU seconds) used by operation so far -finalOpTimeProcessing (6), -- estimated total processing time (in .001 CPU seconds) that will - -- be used by this operation if it completes -currentAssocTime (7), -- estimated processing time used by association (in .001 CPU sec.) -currentOperationCost (8), -- estimated cost for this operation so far -finalOperationCost (9), -- estimated cost for this operation if it completes -currentAssocCost (10), -- estimated cost for this association so far -finalOpTimeElapsed (11), -- estimated elapsed time for operation if it completes (in .001 sec.) -percentComplete (12), -- estimated percent complete -currentSearchAssocCost (13), -- estimated search cost for association so far -currentPresentAssocCost (14), -- estimated present cost for this association so far -currentConnectAssocCost (15), -- estimated connect time cost for association so far -currentOtherAssocCost (16) -- estimated other cost (not included in 13-15) for association so far - } -END - - - - - - - - - - - - - -ResourceReport-Format-Resource-2 -{Z39-50-resourceReport resource-2 (2)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString, StringOrNumeric, IntUnit FROM Z39-50-APDU-1995; --- -ResourceReport ::= SEQUENCE{ -estimates [1] IMPLICIT SEQUENCE OF Estimate OPTIONAL, -message [2] IMPLICIT InternationalString OPTIONAL} --- -Estimate ::= SEQUENCE{ -type [1] StringOrNumeric, - -- Numeric values of 1-16 are the same as used in Resource-1. -value [2] IMPLICIT IntUnit - -- When expressing currency: - -- unitSystem (of Unit) is 'z3950' (case insensitive) - -- unitType is 'iso4217-1990' (case insensitive) - -- unit is currency code from ISO 4217-1990. -} -END - - - - - -AccessControlFormat-prompt-1 -{Z39-50-accessControl prompt-1 (1)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString, DiagRec FROM Z39-50-APDU-1995; --- -PromptObject ::= CHOICE{ - challenge [1] IMPLICIT Challenge, - response [2] IMPLICIT Response} - - Challenge ::= SEQUENCE OF SEQUENCE { - promptId [1] PromptId, - -- Target supplies a number (for an enumerated prompt) or string (for a non - -- -enumerated prompt), for each prompt, and the origin returns it in response, for - -- this prompt, so target may correlate the prompt response with the prompt. - defaultResponse [2] IMPLICIT InternationalString OPTIONAL, - promptInfo [3] CHOICE{ - character [1] IMPLICIT InternationalString, - encrypted [2] IMPLICIT Encryption} OPTIONAL, - -- Information corresponding to an enumerated prompt. For example if 'type', within - -- PromptId, is 'copyright', then promptInfo may contain a copyright statement. - regExpr [4] IMPLICIT InternationalString OPTIONAL, - -- A regular expression that promptResponse should match. See IEEE 1003.2 - -- Volume 1, Section 2.8 "Regular Expression Notation." For example if promptId - -- is "Year of publication," regExpr might be "19[89][0-9]|20[0-9][0-9]". - responseRequired [5] IMPLICIT NULL OPTIONAL, - allowedValues [6] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - -- e.g. promptId="Desired color"; allowed = 'red', 'blue','Green'. - shouldSave [7] IMPLICIT NULL OPTIONAL, - -- Target recommends that origin save the data that it prompts from the - -- user corresponding to this prompt, because it is likely to be requested again (so - -- origin might not have to prompt the user next time). - dataType [8] IMPLICIT INTEGER{ - integer (1), - date (2), - float (3), - alphaNumeric (4), - url-urn (5), - boolean (6)} OPTIONAL, - -- Target telling origin type of data it wants. E.g., if "date" is specified, - -- presumably the origin will try to prompt something "date-like" from the user. - diagnostic [9] IMPLICIT EXTERNAL OPTIONAL - -- Intended for repeat requests when there is an error the origin - -- should report to the user from previous attempt. - } - - - Response ::= SEQUENCE OF SEQUENCE { - promptId [1] PromptId, - -- Corresponds to a prompt in the challenge, or may be unprompted, for - -- example "newPassword." If unprompted, should be "enumerated." - -- If this responds to a non-enumerated prompt, then nonEnumeratedPrompt - -- should contain the prompt string from the challenge. - promptResponse [2] CHOICE{ - string [1] IMPLICIT InternationalString, - accept [2] IMPLICIT BOOLEAN, - acknowledge [3] IMPLICIT NULL, - diagnostic [4] DiagRec, - encrypted [5] IMPLICIT Encryption}} - - - PromptId ::= CHOICE{ - enummeratedPrompt [1] IMPLICIT SEQUENCE{ - type [1] IMPLICIT INTEGER{ - groupId (0), - userId (1), - password (2), - newPassword (3), - copyright (4), - -- When type on Challenge is 'copyright', promptInfo has text of - -- copyright message to be displayed verbatim to the user. If - -- promptResponse indicates 'acceptance', this indicates the user has been - -- shown, and accepted, the terms of the copyright. This is not intended - -- to be legally binding, but provides a good-faith attempt on - -- the part of the target to inform the user of the copyright. - sessionId (5)}, - suggestedString [2] IMPLICIT InternationalString OPTIONAL}, - nonEnumeratedPrompt [2] IMPLICIT InternationalString} - - - Encryption ::= SEQUENCE{ - cryptType [1] IMPLICIT OCTET STRING OPTIONAL, - credential [2] IMPLICIT OCTET STRING OPTIONAL, - --random number, SALT, or other factor - data [3] IMPLICIT OCTET STRING} - -END - - - - -AccessControlFormat-des-1 -{Z39-50-accessControlFormat des-1 (2)} DEFINITIONS ::= -BEGIN - DES-RN-Object ::= CHOICE { - challenge [1] IMPLICIT DRNType, - response [2] IMPLICIT DRNType} - DRNType ::= SEQUENCE{ - userId [1] IMPLICIT OCTET STRING OPTIONAL, - salt [2] IMPLICIT OCTET STRING OPTIONAL, - randomNumber [3] IMPLICIT OCTET STRING} -END - - -AccessControlFormat-krb-1 -{Z39-50-accessControlFormat krb-1 (3)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString FROM Z39-50-APDU-1995; - - KRBObject ::= CHOICE { - challenge [1] IMPLICIT KRBRequest, - response [2] IMPLICIT KRBResponse} - KRBRequest ::= SEQUENCE{ - service [1] IMPLICIT InternationalString, - instance [2] IMPLICIT InternationalString OPTIONAL, - realm [3] IMPLICIT InternationalString OPTIONAL} - -- target requests a ticket for the given service, instance, and realm - KRBResponse ::= SEQUENCE{ - userid [1] IMPLICIT InternationalString OPTIONAL, - ticket [2] IMPLICIT OCTET STRING} - -- origin responds with a ticket for the requested service -END - - - - - - - - - -ESFormat-PersistentResultSet -{Z39-50-extendedService PersistentResultSet (1)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString FROM Z39-50-APDU-1995; -PersistentResultSet ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] IMPLICIT NULL, - notToKeep [2] OriginPartNotToKeep OPTIONAL}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] IMPLICIT NULL, - targetPart [2] TargetPart OPTIONAL}} -OriginPartNotToKeep ::= SEQUENCE{ - originSuppliedResultSet [1] IMPLICIT InternationalString OPTIONAL, - -- name of transient result set, supplied on request, mandatory unless function is 'delete' - replaceOrAppend [2] IMPLICIT INTEGER{ -- only if function is "modify" - replace (1), - append (2)} OPTIONAL} -TargetPart ::= SEQUENCE{ - targetSuppliedResultSet [1] IMPLICIT InternationalString OPTIONAL, - -- Name of transient result set, supplied by target, representing the persistent result set to which - -- package pertains. Meaningful only when package is presented. (i.e. not on ES response). - numberOfRecords [2] IMPLICIT INTEGER OPTIONAL} -END - - -ESFormat-PersistentQuery -{Z39-50-extendedService PersistentQuery (2)} DEFINITIONS ::= -BEGIN -IMPORTS Query, InternationalString, OtherInformation FROM Z39-50-APDU-1995; -PersistentQuery ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] OriginPartToKeep OPTIONAL, - notToKeep [2] OriginPartNotToKeep}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] OriginPartToKeep OPTIONAL, - targetPart [2] TargetPart}} -OriginPartToKeep ::= SEQUENCE{ - dbNames [2] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - additionalSearchInfo [3] OtherInformation OPTIONAL} -OriginPartNotToKeep ::= CHOICE{ - package [1] IMPLICIT InternationalString, - query [2] Query} -TargetPart ::= Query -END - -ESFormat-PeriodicQuerySchedule -{Z39-50-extendedService PeriodicQuerySchedule (3)} DEFINITIONS ::= -BEGIN -IMPORTS Query, InternationalString, IntUnit FROM Z39-50-APDU-1995 -ExportSpecification, Destination FROM ESFormat-ExportSpecification; - -PeriodicQuerySchedule ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] OriginPartToKeep, - notToKeep [2] OriginPartNotToKeep}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] OriginPartToKeep, - targetPart [2] TargetPart}} - -OriginPartToKeep ::=SEQUENCE{ - activeFlag [1] IMPLICIT BOOLEAN, - databaseNames [2] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - resultSetDisposition [3] IMPLICIT INTEGER{ - replace (1), - append (2), - createNew (3) -- Only if origin and target have agreement about - -- naming convention for the resulting package, - -- and only if no result set is specified. - } OPTIONAL, -- Mandatory on 'create' if result set is specified, in - -- which case it must be 'replace' or 'append. - alertDestination [4] Destination OPTIONAL, - exportParameters [5] CHOICE{ - packageName [1] IMPLICIT InternationalString, - exportPackage [2] ExportSpecification} OPTIONAL} - -OriginPartNotToKeep ::= SEQUENCE{ - querySpec [1] CHOICE{ - actualQuery [1] Query, - packageName [2] IMPLICIT InternationalString} OPTIONAL, - -- mandatory for 'create' - originSuggestedPeriod [2] Period OPTIONAL, -- mandatory for 'create' - expiration [3] IMPLICIT GeneralizedTime OPTIONAL, - resultSetPackage [4] IMPLICIT InternationalString OPTIONAL} - -TargetPart ::= SEQUENCE{ - actualQuery [1] Query, - targetStatedPeriod [2] Period, - -- Target supplies the period, which may be same as origin proposed. - expiration [3] IMPLICIT GeneralizedTime OPTIONAL, - -- Target supplies value for task package. It may be the same as origin - -- proposed or different from (and overrides) origin proposal, but if - -- omitted, there is no expiration. - resultSetPackage [4] IMPLICIT InternationalString OPTIONAL, - -- May be omitted only if exportParameters was supplied. Target - -- supplies same name as origin supplied, if origin did supply a name. - lastQueryTime [5] IMPLICIT GeneralizedTime, - lastResultNumber [6] IMPLICIT INTEGER, - numberSinceModify [7] IMPLICIT INTEGER OPTIONAL} - - - - - Period ::= CHOICE{ - unit [1] IMPLICIT IntUnit, - businessDaily [2] IMPLICIT NULL, - continuous [3] IMPLICIT NULL, - other [4] IMPLICIT InternationalString} -END - - -ESFormat-ItemOrder -{Z39-50-extendedService ItemOrder (4)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString FROM Z39-50-APDU-1995; -ItemOrder ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] OriginPartToKeep OPTIONAL, - notToKeep [2] OriginPartNotToKeep}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] OriginPartToKeep OPTIONAL, - targetPart [2] TargetPart}} -OriginPartToKeep ::= SEQUENCE{ - supplDescription [1] IMPLICIT EXTERNAL OPTIONAL, - contact [2] IMPLICIT SEQUENCE{ - name [1] IMPLICIT InternationalString OPTIONAL, - phone [2] IMPLICIT InternationalString OPTIONAL, - email [3] IMPLICIT InternationalString OPTIONAL} OPTIONAL, - addlBilling [3] IMPLICIT SEQUENCE{ - paymentMethod [1] CHOICE{ - billInvoice [0] IMPLICIT NULL, - prepay [1] IMPLICIT NULL, - depositAccount [2] IMPLICIT NULL, - creditCard [3] IMPLICIT CreditCardInfo, - cardInfoPreviouslySupplied [4] IMPLICIT NULL, - privateKnown [5] IMPLICIT NULL, - privateNotKnown [6] IMPLICIT EXTERNAL}, - customerReference [2] IMPLICIT InternationalString OPTIONAL, - customerPONumber [3] IMPLICIT InternationalString OPTIONAL} - OPTIONAL} -CreditCardInfo ::= SEQUENCE{ - nameOnCard [1] IMPLICIT InternationalString, - expirationDate [2] IMPLICIT InternationalString, - cardNumber [3] IMPLICIT InternationalString} - -OriginPartNotToKeep ::= SEQUENCE{ -- Corresponds to 'requestedItem' in service definition. - -- Must supply at least one, and may supply both. - resultSetItem [1] IMPLICIT SEQUENCE{ - resultSetId [1] IMPLICIT InternationalString, - item [2] IMPLICIT INTEGER} OPTIONAL, - itemRequest [2] IMPLICIT EXTERNAL OPTIONAL - -- When itemRequest is an ILL-Request APDU, - -- use OID {iso standard 10161 abstract-syntax (2) ill-apdus (1)} - } - -TargetPart ::= SEQUENCE{ - itemRequest [1] IMPLICIT EXTERNAL OPTIONAL, - -- When itemRequest is an ILL-Request APDU, use OID 1.0.10161.2.1 (as above) - statusOrErrorReport [2] IMPLICIT EXTERNAL OPTIONAL, - -- When statusOrErrorReport is an ILL Status-Or-Error-Report APDU, use OID 1.0.10161.2.1 (as above) - auxiliaryStatus [3] IMPLICIT INTEGER{ - notReceived (1), - loanQueue (2), - forwarded (3), - unfilledCopyright (4), - filledCopyright (5)} OPTIONAL} -END - - - - -ESFormat-Update0 -{Z39-50-extendedService Update (5)} DEFINITIONS ::= -BEGIN -IMPORTS DiagRec, InternationalString FROM Z39-50-APDU-1995; -Update ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] OriginPartToKeep, - notToKeep [2] OriginPartNotToKeep}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] OriginPartToKeep, - targetPart [2] TargetPart}} - - -OriginPartToKeep ::= SEQUENCE{ - action [1] IMPLICIT INTEGER{ - recordInsert (1), - recordReplace (2), - recordDelete (3), - elementUpdate (4)}, - databaseName [2] IMPLICIT InternationalString, - schema [3] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - elementSetName [4] IMPLICIT InternationalString OPTIONAL} - - -OriginPartNotToKeep ::= SuppliedRecords - - -TargetPart ::= SEQUENCE{ - updateStatus [1] IMPLICIT INTEGER{ - success (1), - partial (2), - failure (3)}, - globalDiagnostics [2] IMPLICIT SEQUENCE OF DiagRec OPTIONAL, - -- These are non-surrogate diagnostics relating to the task, - -- not to individual records. - taskPackageRecords [3] IMPLICIT SEQUENCE OF TaskPackageRecordStructure OPTIONAL - -- There should be a TaskPackageRecordStructure for every record - -- supplied. The target should create such a structure for every - -- record immediately upon creating the task package to include - -- correlation information and status. The record itself would not - -- be included until processing for that record is complete. - } - --- Auxiliary definitions for Update -SuppliedRecords ::= SEQUENCE OF SEQUENCE{ - recordId [1] CHOICE{ - number [1] IMPLICIT INTEGER, - string [2] IMPLICIT InternationalString, - opaque [3] IMPLICIT OCTET STRING} OPTIONAL, - supplementalId [2] CHOICE{ - timeStamp [1] IMPLICIT GeneralizedTime, - versionNumber [2] IMPLICIT InternationalString, - previousVersion [3] IMPLICIT EXTERNAL} OPTIONAL, - correlationInfo [3] IMPLICIT CorrelationInfo OPTIONAL, - record [4] IMPLICIT EXTERNAL} - -CorrelationInfo ::= SEQUENCE{ - -- origin may supply one or both for any record: - note [1] IMPLICIT InternationalString OPTIONAL, - id [2] IMPLICIT INTEGER OPTIONAL} - -TaskPackageRecordStructure ::= SEQUENCE{ - recordOrSurDiag [1] CHOICE { - record [1] IMPLICIT EXTERNAL, - -- Choose 'record' if recordStatus is 'success', and - -- elementSetName was supplied. - diagnostic [2] DiagRec - -- Choose 'diagnostic', if RecordStatus is failure. - } OPTIONAL, - -- The parameter recordOrSurDiag will thus be omitted only if - -- 'elementSetName' was omitted and recordStatus is - -- 'success'; or if record status is 'queued' or in 'process'. - correlationInfo [2] IMPLICIT CorrelationInfo OPTIONAL, - -- This should be included if it was supplied by the origin. - recordStatus [3] IMPLICIT INTEGER{ - success (1), - queued (2), - inProcess (3), - failure (4)}} -END - - -ESFormat-ExportSpecification -{Z39-50-extendedService ExportSpecification (6)} DEFINITIONS ::= -BEGIN -EXPORTS ExportSpecification, Destination; IMPORTS CompSpec, InternationalString FROM Z39-50-APDU-1995; -ExportSpecification ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] OriginPartToKeep, - notToKeep [2] IMPLICIT NULL}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] OriginPartToKeep, - targetPart [2] IMPLICIT NULL}} -OriginPartToKeep ::= SEQUENCE{ - composition [1] IMPLICIT CompSpec, - exportDestination [2] Destination} - - Destination ::= CHOICE{ - phoneNumber [1] IMPLICIT InternationalString, - faxNumber [2] IMPLICIT InternationalString, - x400address [3] IMPLICIT InternationalString, - emailAddress [4] IMPLICIT InternationalString, - pagerNumber [5] IMPLICIT InternationalString, - ftpAddress [6] IMPLICIT InternationalString, - ftamAddress [7] IMPLICIT InternationalString, - printerAddress [8] IMPLICIT InternationalString, - other [100] IMPLICIT SEQUENCE{ - vehicle [1] IMPLICIT InternationalString OPTIONAL, - destination [2] IMPLICIT InternationalString}} -END - - - - -ESFormat-ExportInvocation -{Z39-50-extendedService ExportInvocation (7)} DEFINITIONS ::= -BEGIN -IMPORTS InternationalString, IntUnit FROM Z39-50-APDU-1995 -ExportSpecification FROM ESFormat-ExportSpecification; -ExportInvocation ::= CHOICE{ - esRequest [1] IMPLICIT SEQUENCE{ - toKeep [1] OriginPartToKeep, - notToKeep [2] OriginPartNotToKeep}, - taskPackage [2] IMPLICIT SEQUENCE{ - originPart [1] OriginPartToKeep, - targetPart [2] TargetPart OPTIONAL}} - -OriginPartToKeep ::= SEQUENCE{ - exportSpec [1] CHOICE{ - packageName [1] IMPLICIT InternationalString, - packageSpec [2] ExportSpecification}, - numberOfCopies [2] IMPLICIT INTEGER} - - - - - -OriginPartNotToKeep ::= SEQUENCE{ - resultSetId [1] IMPLICIT InternationalString, - records [2] CHOICE{ - all [1] IMPLICIT NULL, - ranges [2] IMPLICIT SEQUENCE OF SEQUENCE{ - start [1] IMPLICIT INTEGER, - count [2] IMPLICIT INTEGER OPTIONAL - -- Count may be omitted only on last range, to indicate - -- "all remaining records beginning with 'start'." - }}} - -TargetPart ::= SEQUENCE{ - estimatedQuantity [1] IMPLICIT IntUnit OPTIONAL, - quantitySoFar [2] IMPLICIT IntUnit OPTIONAL, - estimatedCost [3] IMPLICIT IntUnit OPTIONAL, - costSoFar [4] IMPLICIT IntUnit OPTIONAL} -END - - - -UserInfoFormat-searchResult-1 -{Z39-50-userInfoFormat searchResult-1 (1)} DEFINITIONS ::= -BEGIN -IMPORTS DatabaseName, Term, Query, IntUnit, InternationalString FROM Z39-50-APDU-1995; -SearchInfoReport ::= SEQUENCE OF SEQUENCE{ - subqueryId [1] IMPLICIT InternationalString OPTIONAL, - -- shorthand identifier of subquery - fullQuery [2] IMPLICIT BOOLEAN, -- 'true' means this is the full query; 'false', - -- a sub-query - subqueryExpression [3] QueryExpression OPTIONAL, -- A subquery of the query as - -- submitted. May be whole query; - -- if so, "fullQuery" should be 'true'. - subqueryInterpretation [4] QueryExpression OPTIONAL, -- how target interpreted subquery - subqueryRecommendation [5] QueryExpression OPTIONAL, -- target-recommended alternative - subqueryCount [6] IMPLICIT INTEGER OPTIONAL, -- Number of records for this - -- subQuery, across all of the specified - -- databases. (If during search, via resource - -- control, number of records so far). - subqueryWeight [7] IMPLICIT IntUnit OPTIONAL, -- relative weight of this subquery - resultsByDB [8] IMPLICIT ResultsByDB OPTIONAL} - -ResultsByDB ::= SEQUENCE OF SEQUENCE{ - databases [1] CHOICE{ - all [1] IMPLICIT NULL, - -- applies across all of the databases in Search PDU - list [2] IMPLICIT SEQUENCE OF DatabaseName - -- applies across all databases in this list - }, - count [2] IMPLICIT INTEGER OPTIONAL, - -- Number of records for query component (and, as above, if during search, - -- via resource control, number of records so far). - resultSetName [3] IMPLICIT InternationalString OPTIONAL - -- Target-assigned result set by which subQuery is available. Should not - -- be provided unless processing for this query component is concluded (i.e., - -- when this report comes during search, via resource control, as opposed - -- to after search, via additionalSearchInfo). - } - -QueryExpression ::= CHOICE { - term [1] IMPLICIT SEQUENCE{ - queryTerm [1] Term, - termComment [2] IMPLICIT InternationalString OPTIONAL}, - query [2] Query} -END - - - -ElementSpecificationFormat-eSpec-1 -{Z39-50-elementSpec eSpec-1 (1)} DEFINITIONS ::= -BEGIN -IMPORTS Variant FROM RecordSyntax-generic -StringOrNumeric, InternationalString FROM Z39-50-APDU-1995; --- -Espec-1 ::= SEQUENCE{ - elementSetNames [1] IMPLICIT SEQUENCE OF InternationalString OPTIONAL, - -- Origin may include one or more element set names, each - -- specifying a set of elements. Each of the elements is to be - -- treated as an elementRequest in the form of simpleElement, - -- where occurrence is 1. - defaultVariantSetId [2] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - -- If supplied, applies whenever variantRequest - -- does not include variantSetId. - defaultVariantRequest [3] IMPLICIT Variant OPTIONAL, - -- If supplied, then for each simple elementRequest that does not - -- include a variantRequest, the defaultVariantRequest applies. - -- (defaultVariantRequest does not apply to a compositeRequest.) - defaultTagType [4] IMPLICIT INTEGER OPTIONAL, - -- If supplied, applies whenever 'tagType' (within 'tag' within TagPath) - -- is omitted. - elements [5] IMPLICIT SEQUENCE OF ElementRequest OPTIONAL} --- - -ElementRequest::= CHOICE{ - simpleElement [1] IMPLICIT SimpleElement, - compositeElement [2] IMPLICIT SEQUENCE{ - elementList [1] CHOICE{ - primitives [1] IMPLICIT SEQUENCE OF InternationalString, - -- Origin may specify one or more element - -- set names, each identifying a set of elements, - -- and the composite element is the union. - specs [2] IMPLICIT SEQUENCE OF SimpleElement}, - - deliveryTag [2] IMPLICIT TagPath, - -- DeliveryTag tagPath for compositeElement may not - -- include wildThing or wildPath. - variantRequest [3] IMPLICIT Variant OPTIONAL}} - -SimpleElement ::= SEQUENCE{ - path [1] IMPLICIT TagPath, - variantRequest [2] IMPLICIT Variant OPTIONAL} - - -TagPath ::= SEQUENCE OF CHOICE{ - specificTag [1] IMPLICIT SEQUENCE{ - tagType [1] IMPLICIT INTEGER OPTIONAL, - -- If omitted, then 'defaultTagType' (above) applies, if supplied, and - -- if not supplied, then default listed in schema applies. - tagValue [2] StringOrNumeric, - occurrence [3] Occurrences OPTIONAL - -- default is "first occurrence" - }, - wildThing [2] Occurrences, - -- Get Nth "thing" at this level, regardless of tag, for each N specified by - -- "Occurrences" (which may be 'all' meaning match every element at this level). - -- E.g., if "Occurrences" is 3, get third element regardless of its tag or the tag of - -- the first two elements. - wildPath [3] IMPLICIT NULL - -- Match any tag, at this level or below, that is on a path for which next tag in this - -- TagPath sequence occurs. WildPath may not be last member of the TagPath - -- sequence. - } --- - -Occurrences ::= CHOICE{ - all [1] IMPLICIT NULL, - last [2] IMPLICIT NULL, - values [3] IMPLICIT SEQUENCE{ - start [1] IMPLICIT INTEGER, - -- if 'start' alone is included, then single occurrence is requested - howMany [2] IMPLICIT INTEGER OPTIONAL - -- For example, if 'start' is 5 and 'howMany' is 6, then request is for - -- "occurrences 5 through 10." - }} -END - diff --git a/dependencies/yaz_3.0.14/src/zes-admin.c b/dependencies/yaz_3.0.14/src/zes-admin.c deleted file mode 100644 index ce252b4..0000000 --- a/dependencies/yaz_3.0.14/src/zes-admin.c +++ /dev/null @@ -1,124 +0,0 @@ -/** \file zes-admin.c - \brief ASN.1 Module ESFormat-Admin - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_AdminEsRequest (ODR o, Z_AdminEsRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_ESAdminOriginPartToKeep, - &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && - odr_explicit_tag (o, z_ESAdminOriginPartNotToKeep, - &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && - odr_sequence_end (o); -} - -int z_AdminTaskPackage (ODR o, Z_AdminTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_ESAdminOriginPartToKeep, - &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && - odr_explicit_tag (o, z_ESAdminTargetPart, - &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && - odr_sequence_end (o); -} - -int z_Admin (ODR o, Z_Admin **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Admin_esRequest, - (Odr_fun) z_AdminEsRequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Admin_taskPackage, - (Odr_fun) z_AdminTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ESAdminOriginPartToKeep (ODR o, Z_ESAdminOriginPartToKeep **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_ESAdminOriginPartToKeep_reIndex, - (Odr_fun) odr_null, "reIndex"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ESAdminOriginPartToKeep_truncate, - (Odr_fun) odr_null, "truncate"}, - {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_ESAdminOriginPartToKeep_drop, - (Odr_fun) odr_null, "drop"}, - {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_ESAdminOriginPartToKeep_create, - (Odr_fun) odr_null, "create"}, - {ODR_EXPLICIT, ODR_CONTEXT, 5, Z_ESAdminOriginPartToKeep_import, - (Odr_fun) z_ImportParameters, "import"}, - {ODR_EXPLICIT, ODR_CONTEXT, 6, Z_ESAdminOriginPartToKeep_refresh, - (Odr_fun) odr_null, "refresh"}, - {ODR_EXPLICIT, ODR_CONTEXT, 7, Z_ESAdminOriginPartToKeep_commit, - (Odr_fun) odr_null, "commit"}, - {ODR_EXPLICIT, ODR_CONTEXT, 8, Z_ESAdminOriginPartToKeep_shutdown, - (Odr_fun) odr_null, "shutdown"}, - {ODR_EXPLICIT, ODR_CONTEXT, 9, Z_ESAdminOriginPartToKeep_start, - (Odr_fun) odr_null, "start"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "action") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_implicit_tag (o, z_InternationalString, - &(*p)->databaseName, ODR_CONTEXT, 2, 1, "databaseName") && - odr_sequence_end (o); -} - -int z_ESAdminOriginPartNotToKeep (ODR o, Z_ESAdminOriginPartNotToKeep **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_ESAdminOriginPartNotToKeep_records, - (Odr_fun) z_Segment, "records"}, - {ODR_EXPLICIT, ODR_CONTEXT, 0, Z_ESAdminOriginPartNotToKeep_recordsWillFollow, - (Odr_fun) odr_null, "recordsWillFollow"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ESAdminTargetPart (ODR o, Z_ESAdminTargetPart **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->updateStatus, ODR_CONTEXT, 1, 0, "updateStatus") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->globalDiagnostics, - &(*p)->num_globalDiagnostics, "globalDiagnostics") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_ImportParameters (ODR o, Z_ImportParameters **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->recordType, ODR_CONTEXT, 1, 0, "recordType") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/zes-expi.c b/dependencies/yaz_3.0.14/src/zes-expi.c deleted file mode 100644 index c979acd..0000000 --- a/dependencies/yaz_3.0.14/src/zes-expi.c +++ /dev/null @@ -1,129 +0,0 @@ -/** \file zes-expi.c - \brief ASN.1 Module ESFormat-ExportInvocation - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_EIExportInvocationEsRequest (ODR o, Z_EIExportInvocationEsRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_EIOriginPartToKeep, - &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && - odr_explicit_tag (o, z_EIOriginPartNotToKeep, - &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && - odr_sequence_end (o); -} - -int z_EIExportInvocationTaskPackage (ODR o, Z_EIExportInvocationTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_EIOriginPartToKeep, - &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && - odr_explicit_tag (o, z_EITargetPart, - &(*p)->targetPart, ODR_CONTEXT, 2, 1, "targetPart") && - odr_sequence_end (o); -} - -int z_EIExportInvocation (ODR o, Z_EIExportInvocation **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIExportInvocation_esRequest, - (Odr_fun) z_EIExportInvocationEsRequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_EIExportInvocation_taskPackage, - (Odr_fun) z_EIExportInvocationTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_EIOriginPartToKeep (ODR o, Z_EIOriginPartToKeep **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIOriginPartToKeep_packageName, - (Odr_fun) z_InternationalString, "packageName"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_EIOriginPartToKeep_packageSpec, - (Odr_fun) z_ESExportSpecification, "packageSpec"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "exportSpec") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfCopies, ODR_CONTEXT, 2, 0, "numberOfCopies") && - odr_sequence_end (o); -} - -int z_EIOriginPartNotToKeepRanges_s (ODR o, Z_EIOriginPartNotToKeepRanges_s **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->start, ODR_CONTEXT, 1, 0, "start") && - odr_implicit_tag (o, odr_integer, - &(*p)->count, ODR_CONTEXT, 2, 1, "count") && - odr_sequence_end (o); -} - -int z_EIOriginPartNotToKeepRanges (ODR o, Z_EIOriginPartNotToKeepRanges **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_EIOriginPartNotToKeepRanges_s, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_EIOriginPartNotToKeep (ODR o, Z_EIOriginPartNotToKeep **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIOriginPartNotToKeep_all, - (Odr_fun) odr_null, "all"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_EIOriginPartNotToKeep_ranges, - (Odr_fun) z_EIOriginPartNotToKeepRanges, "ranges"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->resultSetId, ODR_CONTEXT, 1, 0, "resultSetId") && - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "records") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_sequence_end (o); -} - -int z_EITargetPart (ODR o, Z_EITargetPart **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_IntUnit, - &(*p)->estimatedQuantity, ODR_CONTEXT, 1, 1, "estimatedQuantity") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->quantitySoFar, ODR_CONTEXT, 2, 1, "quantitySoFar") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->estimatedCost, ODR_CONTEXT, 3, 1, "estimatedCost") && - odr_implicit_tag (o, z_IntUnit, - &(*p)->costSoFar, ODR_CONTEXT, 4, 1, "costSoFar") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/zes-exps.c b/dependencies/yaz_3.0.14/src/zes-exps.c deleted file mode 100644 index f96f2ba..0000000 --- a/dependencies/yaz_3.0.14/src/zes-exps.c +++ /dev/null @@ -1,105 +0,0 @@ -/** \file zes-exps.c - \brief ASN.1 Module ESFormat-ExportSpecification - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_ESExportSpecificationEsRequest (ODR o, Z_ESExportSpecificationEsRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_ESOriginPartToKeep, - &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && - odr_implicit_tag (o, odr_null, - &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && - odr_sequence_end (o); -} - -int z_ESExportSpecificationTaskPackage (ODR o, Z_ESExportSpecificationTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_ESOriginPartToKeep, - &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && - odr_implicit_tag (o, odr_null, - &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && - odr_sequence_end (o); -} - -int z_ESExportSpecification (ODR o, Z_ESExportSpecification **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ESExportSpecification_esRequest, - (Odr_fun) z_ESExportSpecificationEsRequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ESExportSpecification_taskPackage, - (Odr_fun) z_ESExportSpecificationTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_ESOriginPartToKeep (ODR o, Z_ESOriginPartToKeep **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_CompSpec, - &(*p)->composition, ODR_CONTEXT, 1, 0, "composition") && - odr_explicit_tag (o, z_ESDestination, - &(*p)->exportDestination, ODR_CONTEXT, 2, 0, "exportDestination") && - odr_sequence_end (o); -} - -int z_ESDestinationOther (ODR o, Z_ESDestinationOther **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->vehicle, ODR_CONTEXT, 1, 1, "vehicle") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->destination, ODR_CONTEXT, 2, 0, "destination") && - odr_sequence_end (o); -} - -int z_ESDestination (ODR o, Z_ESDestination **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ESDestination_phoneNumber, - (Odr_fun) z_InternationalString, "phoneNumber"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ESDestination_faxNumber, - (Odr_fun) z_InternationalString, "faxNumber"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ESDestination_x400address, - (Odr_fun) z_InternationalString, "x400address"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_ESDestination_emailAddress, - (Odr_fun) z_InternationalString, "emailAddress"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_ESDestination_pagerNumber, - (Odr_fun) z_InternationalString, "pagerNumber"}, - {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_ESDestination_ftpAddress, - (Odr_fun) z_InternationalString, "ftpAddress"}, - {ODR_IMPLICIT, ODR_CONTEXT, 7, Z_ESDestination_ftamAddress, - (Odr_fun) z_InternationalString, "ftamAddress"}, - {ODR_IMPLICIT, ODR_CONTEXT, 8, Z_ESDestination_printerAddress, - (Odr_fun) z_InternationalString, "printerAddress"}, - {ODR_IMPLICIT, ODR_CONTEXT, 100, Z_ESDestination_other, - (Odr_fun) z_ESDestinationOther, "other"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/zes-order.c b/dependencies/yaz_3.0.14/src/zes-order.c deleted file mode 100644 index 47f8a7c..0000000 --- a/dependencies/yaz_3.0.14/src/zes-order.c +++ /dev/null @@ -1,161 +0,0 @@ -/** \file zes-order.c - \brief ASN.1 Module ESFormat-ItemOrder - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_IORequest (ODR o, Z_IORequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_IOOriginPartToKeep, - &(*p)->toKeep, ODR_CONTEXT, 1, 1, "toKeep") && - odr_explicit_tag (o, z_IOOriginPartNotToKeep, - &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && - odr_sequence_end (o); -} - -int z_IOTaskPackage (ODR o, Z_IOTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_IOOriginPartToKeep, - &(*p)->originPart, ODR_CONTEXT, 1, 1, "originPart") && - odr_explicit_tag (o, z_IOTargetPart, - &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && - odr_sequence_end (o); -} - -int z_IOItemOrder (ODR o, Z_IOItemOrder **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOItemOrder_esRequest, - (Odr_fun) z_IORequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOItemOrder_taskPackage, - (Odr_fun) z_IOTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IOContact (ODR o, Z_IOContact **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->name, ODR_CONTEXT, 1, 1, "name") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->phone, ODR_CONTEXT, 2, 1, "phone") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->email, ODR_CONTEXT, 3, 1, "email") && - odr_sequence_end (o); -} - -int z_IOBilling (ODR o, Z_IOBilling **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 0, Z_IOBilling_billInvoice, - (Odr_fun) odr_null, "billInvoice"}, - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IOBilling_prepay, - (Odr_fun) odr_null, "prepay"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IOBilling_depositAccount, - (Odr_fun) odr_null, "depositAccount"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IOBilling_creditCard, - (Odr_fun) z_IOCreditCardInfo, "creditCard"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_IOBilling_cardInfoPreviouslySupplied, - (Odr_fun) odr_null, "cardInfoPreviouslySupplied"}, - {ODR_IMPLICIT, ODR_CONTEXT, 5, Z_IOBilling_privateKnown, - (Odr_fun) odr_null, "privateKnown"}, - {ODR_IMPLICIT, ODR_CONTEXT, 6, Z_IOBilling_privateNotKnown, - (Odr_fun) z_External, "privateNotKnown"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "paymentMethod") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o) && - odr_implicit_tag (o, z_InternationalString, - &(*p)->customerReference, ODR_CONTEXT, 2, 1, "customerReference") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->customerPONumber, ODR_CONTEXT, 3, 1, "customerPONumber") && - odr_sequence_end (o); -} - -int z_IOOriginPartToKeep (ODR o, Z_IOOriginPartToKeep **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_External, - &(*p)->supplDescription, ODR_CONTEXT, 1, 1, "supplDescription") && - odr_implicit_tag (o, z_IOContact, - &(*p)->contact, ODR_CONTEXT, 2, 1, "contact") && - odr_implicit_tag (o, z_IOBilling, - &(*p)->addlBilling, ODR_CONTEXT, 3, 1, "addlBilling") && - odr_sequence_end (o); -} - -int z_IOCreditCardInfo (ODR o, Z_IOCreditCardInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->nameOnCard, ODR_CONTEXT, 1, 0, "nameOnCard") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->expirationDate, ODR_CONTEXT, 2, 0, "expirationDate") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->cardNumber, ODR_CONTEXT, 3, 0, "cardNumber") && - odr_sequence_end (o); -} - -int z_IOResultSetItem (ODR o, Z_IOResultSetItem **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->resultSetId, ODR_CONTEXT, 1, 0, "resultSetId") && - odr_implicit_tag (o, odr_integer, - &(*p)->item, ODR_CONTEXT, 2, 0, "item") && - odr_sequence_end (o); -} - -int z_IOOriginPartNotToKeep (ODR o, Z_IOOriginPartNotToKeep **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_IOResultSetItem, - &(*p)->resultSetItem, ODR_CONTEXT, 1, 1, "resultSetItem") && - odr_implicit_tag (o, z_External, - &(*p)->itemRequest, ODR_CONTEXT, 2, 1, "itemRequest") && - odr_sequence_end (o); -} - -int z_IOTargetPart (ODR o, Z_IOTargetPart **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_External, - &(*p)->itemRequest, ODR_CONTEXT, 1, 1, "itemRequest") && - odr_implicit_tag (o, z_External, - &(*p)->statusOrErrorReport, ODR_CONTEXT, 2, 1, "statusOrErrorReport") && - odr_implicit_tag (o, odr_integer, - &(*p)->auxiliaryStatus, ODR_CONTEXT, 3, 1, "auxiliaryStatus") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/zes-pquery.c b/dependencies/yaz_3.0.14/src/zes-pquery.c deleted file mode 100644 index 41dcb6c..0000000 --- a/dependencies/yaz_3.0.14/src/zes-pquery.c +++ /dev/null @@ -1,85 +0,0 @@ -/** \file zes-pquery.c - \brief ASN.1 Module ESFormat-PersistentQuery - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_PQueryPersistentQueryEsRequest (ODR o, Z_PQueryPersistentQueryEsRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_PQueryOriginPartToKeep, - &(*p)->toKeep, ODR_CONTEXT, 1, 1, "toKeep") && - odr_explicit_tag (o, z_PQueryOriginPartNotToKeep, - &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && - odr_sequence_end (o); -} - -int z_PQueryPersistentQueryTaskPackage (ODR o, Z_PQueryPersistentQueryTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_PQueryOriginPartToKeep, - &(*p)->originPart, ODR_CONTEXT, 1, 1, "originPart") && - odr_explicit_tag (o, z_PQueryTargetPart, - &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && - odr_sequence_end (o); -} - -int z_PQueryPersistentQuery (ODR o, Z_PQueryPersistentQuery **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQueryPersistentQuery_esRequest, - (Odr_fun) z_PQueryPersistentQueryEsRequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PQueryPersistentQuery_taskPackage, - (Odr_fun) z_PQueryPersistentQueryTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PQueryOriginPartToKeep (ODR o, Z_PQueryOriginPartToKeep **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->dbNames, - &(*p)->num_dbNames, "dbNames") || odr_ok(o)) && - odr_explicit_tag (o, z_OtherInformation, - &(*p)->additionalSearchInfo, ODR_CONTEXT, 3, 1, "additionalSearchInfo") && - odr_sequence_end (o); -} - -int z_PQueryOriginPartNotToKeep (ODR o, Z_PQueryOriginPartNotToKeep **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQueryOriginPartNotToKeep_package, - (Odr_fun) z_InternationalString, "package"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_PQueryOriginPartNotToKeep_query, - (Odr_fun) z_Query, "query"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PQueryTargetPart (ODR o, Z_PQueryTargetPart **p, int opt, const char *name) -{ - return z_Query (o, p, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/zes-psched.c b/dependencies/yaz_3.0.14/src/zes-psched.c deleted file mode 100644 index 803a7da..0000000 --- a/dependencies/yaz_3.0.14/src/zes-psched.c +++ /dev/null @@ -1,144 +0,0 @@ -/** \file zes-psched.c - \brief ASN.1 Module ESFormat-PeriodicQuerySchedule - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_PQSPeriodicQueryScheduleEsRequest (ODR o, Z_PQSPeriodicQueryScheduleEsRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_PQSOriginPartToKeep, - &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && - odr_explicit_tag (o, z_PQSOriginPartNotToKeep, - &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && - odr_sequence_end (o); -} - -int z_PQSPeriodicQueryScheduleTaskPackage (ODR o, Z_PQSPeriodicQueryScheduleTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_PQSOriginPartToKeep, - &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && - odr_explicit_tag (o, z_PQSTargetPart, - &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && - odr_sequence_end (o); -} - -int z_PQSPeriodicQuerySchedule (ODR o, Z_PQSPeriodicQuerySchedule **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQSPeriodicQuerySchedule_esRequest, - (Odr_fun) z_PQSPeriodicQueryScheduleEsRequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PQSPeriodicQuerySchedule_taskPackage, - (Odr_fun) z_PQSPeriodicQueryScheduleTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PQSOriginPartToKeep (ODR o, Z_PQSOriginPartToKeep **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQSOriginPartToKeep_packageName, - (Odr_fun) z_InternationalString, "packageName"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_PQSOriginPartToKeep_exportPackage, - (Odr_fun) z_ESExportSpecification, "exportPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_bool, - &(*p)->activeFlag, ODR_CONTEXT, 1, 0, "activeFlag") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->databaseNames, - &(*p)->num_databaseNames, "databaseNames") || odr_ok(o)) && - odr_implicit_tag (o, odr_integer, - &(*p)->resultSetDisposition, ODR_CONTEXT, 3, 1, "resultSetDisposition") && - odr_explicit_tag (o, z_ESDestination, - &(*p)->alertDestination, ODR_CONTEXT, 4, 1, "alertDestination") && - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "exportParameters") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_PQSOriginPartNotToKeep (ODR o, Z_PQSOriginPartNotToKeep **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_PQSOriginPartNotToKeep_actualQuery, - (Odr_fun) z_Query, "actualQuery"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PQSOriginPartNotToKeep_packageName, - (Odr_fun) z_InternationalString, "packageName"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "querySpec") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_explicit_tag (o, z_PQSPeriod, - &(*p)->originSuggestedPeriod, ODR_CONTEXT, 2, 1, "originSuggestedPeriod") && - odr_implicit_tag (o, odr_generalizedtime, - &(*p)->expiration, ODR_CONTEXT, 3, 1, "expiration") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->resultSetPackage, ODR_CONTEXT, 4, 1, "resultSetPackage") && - odr_sequence_end (o); -} - -int z_PQSTargetPart (ODR o, Z_PQSTargetPart **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_Query, - &(*p)->actualQuery, ODR_CONTEXT, 1, 0, "actualQuery") && - odr_explicit_tag (o, z_PQSPeriod, - &(*p)->targetStatedPeriod, ODR_CONTEXT, 2, 0, "targetStatedPeriod") && - odr_implicit_tag (o, odr_generalizedtime, - &(*p)->expiration, ODR_CONTEXT, 3, 1, "expiration") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->resultSetPackage, ODR_CONTEXT, 4, 1, "resultSetPackage") && - odr_implicit_tag (o, odr_generalizedtime, - &(*p)->lastQueryTime, ODR_CONTEXT, 5, 0, "lastQueryTime") && - odr_implicit_tag (o, odr_integer, - &(*p)->lastResultNumber, ODR_CONTEXT, 6, 0, "lastResultNumber") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberSinceModify, ODR_CONTEXT, 7, 1, "numberSinceModify") && - odr_sequence_end (o); -} - -int z_PQSPeriod (ODR o, Z_PQSPeriod **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PQSPeriod_unit, - (Odr_fun) z_IntUnit, "unit"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PQSPeriod_businessDaily, - (Odr_fun) odr_null, "businessDaily"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_PQSPeriod_continuous, - (Odr_fun) odr_null, "continuous"}, - {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_PQSPeriod_other, - (Odr_fun) z_InternationalString, "other"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} diff --git a/dependencies/yaz_3.0.14/src/zes-pset.c b/dependencies/yaz_3.0.14/src/zes-pset.c deleted file mode 100644 index a2bc7f7..0000000 --- a/dependencies/yaz_3.0.14/src/zes-pset.c +++ /dev/null @@ -1,73 +0,0 @@ -/** \file zes-pset.c - \brief ASN.1 Module ESFormat-PersistentResultSet - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_PRPersistentResultSetEsRequest (ODR o, Z_PRPersistentResultSetEsRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_null, - &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && - odr_explicit_tag (o, z_PROriginPartNotToKeep, - &(*p)->notToKeep, ODR_CONTEXT, 2, 1, "notToKeep") && - odr_sequence_end (o); -} - -int z_PRPersistentResultSetTaskPackage (ODR o, Z_PRPersistentResultSetTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_null, - &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && - odr_explicit_tag (o, z_PRTargetPart, - &(*p)->targetPart, ODR_CONTEXT, 2, 1, "targetPart") && - odr_sequence_end (o); -} - -int z_PRPersistentResultSet (ODR o, Z_PRPersistentResultSet **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PRPersistentResultSet_esRequest, - (Odr_fun) z_PRPersistentResultSetEsRequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PRPersistentResultSet_taskPackage, - (Odr_fun) z_PRPersistentResultSetTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_PROriginPartNotToKeep (ODR o, Z_PROriginPartNotToKeep **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->originSuppliedResultSet, ODR_CONTEXT, 1, 1, "originSuppliedResultSet") && - odr_implicit_tag (o, odr_integer, - &(*p)->replaceOrAppend, ODR_CONTEXT, 2, 1, "replaceOrAppend") && - odr_sequence_end (o); -} - -int z_PRTargetPart (ODR o, Z_PRTargetPart **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->targetSuppliedResultSet, ODR_CONTEXT, 1, 1, "targetSuppliedResultSet") && - odr_implicit_tag (o, odr_integer, - &(*p)->numberOfRecords, ODR_CONTEXT, 2, 1, "numberOfRecords") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/zes-update.c b/dependencies/yaz_3.0.14/src/zes-update.c deleted file mode 100644 index e33e114..0000000 --- a/dependencies/yaz_3.0.14/src/zes-update.c +++ /dev/null @@ -1,195 +0,0 @@ -/** \file zes-update.c - \brief ASN.1 Module ESFormat-Update - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_IUUpdateEsRequest (ODR o, Z_IUUpdateEsRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_IUOriginPartToKeep, - &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && - odr_explicit_tag (o, z_IUOriginPartNotToKeep, - &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && - odr_sequence_end (o); -} - -int z_IUUpdateTaskPackage (ODR o, Z_IUUpdateTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_IUOriginPartToKeep, - &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && - odr_explicit_tag (o, z_IUTargetPart, - &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && - odr_sequence_end (o); -} - -int z_IUUpdate (ODR o, Z_IUUpdate **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUUpdate_esRequest, - (Odr_fun) z_IUUpdateEsRequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUUpdate_taskPackage, - (Odr_fun) z_IUUpdateTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IUOriginPartToKeep (ODR o, Z_IUOriginPartToKeep **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->action, ODR_CONTEXT, 1, 0, "action") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->databaseName, ODR_CONTEXT, 2, 0, "databaseName") && - odr_implicit_tag (o, odr_oid, - &(*p)->schema, ODR_CONTEXT, 3, 1, "schema") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->elementSetName, ODR_CONTEXT, 4, 1, "elementSetName") && - odr_implicit_tag (o, z_External, - &(*p)->actionQualifier, ODR_CONTEXT, 5, 1, "actionQualifier") && - odr_sequence_end (o); -} - -int z_IUOriginPartNotToKeep (ODR o, Z_IUOriginPartNotToKeep **p, int opt, const char *name) -{ - return z_IUSuppliedRecords (o, p, opt, name); -} - -int z_IUTargetPart (ODR o, Z_IUTargetPart **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->updateStatus, ODR_CONTEXT, 1, 0, "updateStatus") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->globalDiagnostics, - &(*p)->num_globalDiagnostics, "globalDiagnostics") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - odr_sequence_of(o, (Odr_fun) z_IUTaskPackageRecordStructure, &(*p)->taskPackageRecords, - &(*p)->num_taskPackageRecords, "taskPackageRecords") && - odr_sequence_end (o); -} - -int z_IUSuppliedRecordsId (ODR o, Z_IUSuppliedRecordsId **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecordsId_timeStamp, - (Odr_fun) odr_generalizedtime, "timeStamp"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecordsId_versionNumber, - (Odr_fun) z_InternationalString, "versionNumber"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecordsId_previousVersion, - (Odr_fun) z_External, "previousVersion"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IUSuppliedRecords_elem (ODR o, Z_IUSuppliedRecords_elem **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUSuppliedRecords_elem_number, - (Odr_fun) odr_integer, "number"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUSuppliedRecords_elem_string, - (Odr_fun) z_InternationalString, "string"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IUSuppliedRecords_elem_opaque, - (Odr_fun) odr_octetstring, "opaque"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "recordId") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_explicit_tag (o, z_IUSuppliedRecordsId, - &(*p)->supplementalId, ODR_CONTEXT, 2, 1, "supplementalId") && - odr_implicit_tag (o, z_IUCorrelationInfo, - &(*p)->correlationInfo, ODR_CONTEXT, 3, 1, "correlationInfo") && - odr_implicit_tag (o, z_External, - &(*p)->record, ODR_CONTEXT, 4, 0, "record") && - odr_sequence_end (o); -} - -int z_IUSuppliedRecords (ODR o, Z_IUSuppliedRecords **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_IUSuppliedRecords_elem, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IUCorrelationInfo (ODR o, Z_IUCorrelationInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->note, ODR_CONTEXT, 1, 1, "note") && - odr_implicit_tag (o, odr_integer, - &(*p)->id, ODR_CONTEXT, 2, 1, "id") && - odr_sequence_end (o); -} - -int z_IUTaskPackageRecordStructureSurrogateDiagnostics (ODR o, Z_IUTaskPackageRecordStructureSurrogateDiagnostics **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_DiagRec, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IUTaskPackageRecordStructure (ODR o, Z_IUTaskPackageRecordStructure **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IUTaskPackageRecordStructure_record, - (Odr_fun) z_External, "record"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IUTaskPackageRecordStructure_surrogateDiagnostics, - (Odr_fun) z_IUTaskPackageRecordStructureSurrogateDiagnostics, "surrogateDiagnostics"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "recordOrSurDiag") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_implicit_tag (o, z_IUCorrelationInfo, - &(*p)->correlationInfo, ODR_CONTEXT, 2, 1, "correlationInfo") && - odr_implicit_tag (o, odr_integer, - &(*p)->recordStatus, ODR_CONTEXT, 3, 0, "recordStatus") && - odr_implicit_settag (o, ODR_CONTEXT, 4) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->supplementalDiagnostics, - &(*p)->num_supplementalDiagnostics, "supplementalDiagnostics") || odr_ok(o)) && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/zes-update0.c b/dependencies/yaz_3.0.14/src/zes-update0.c deleted file mode 100644 index 60a9364..0000000 --- a/dependencies/yaz_3.0.14/src/zes-update0.c +++ /dev/null @@ -1,178 +0,0 @@ -/** \file zes-update0.c - \brief ASN.1 Module ESFormat-Update0 - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#include - -int z_IU0UpdateEsRequest (ODR o, Z_IU0UpdateEsRequest **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_IU0OriginPartToKeep, - &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") && - odr_explicit_tag (o, z_IU0OriginPartNotToKeep, - &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") && - odr_sequence_end (o); -} - -int z_IU0UpdateTaskPackage (ODR o, Z_IU0UpdateTaskPackage **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_explicit_tag (o, z_IU0OriginPartToKeep, - &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") && - odr_explicit_tag (o, z_IU0TargetPart, - &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") && - odr_sequence_end (o); -} - -int z_IU0Update (ODR o, Z_IU0Update **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0Update_esRequest, - (Odr_fun) z_IU0UpdateEsRequest, "esRequest"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IU0Update_taskPackage, - (Odr_fun) z_IU0UpdateTaskPackage, "taskPackage"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IU0OriginPartToKeep (ODR o, Z_IU0OriginPartToKeep **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->action, ODR_CONTEXT, 1, 0, "action") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->databaseName, ODR_CONTEXT, 2, 0, "databaseName") && - odr_implicit_tag (o, odr_oid, - &(*p)->schema, ODR_CONTEXT, 3, 1, "schema") && - odr_implicit_tag (o, z_InternationalString, - &(*p)->elementSetName, ODR_CONTEXT, 4, 1, "elementSetName") && - odr_sequence_end (o); -} - -int z_IU0OriginPartNotToKeep (ODR o, Z_IU0OriginPartNotToKeep **p, int opt, const char *name) -{ - return z_IU0SuppliedRecords (o, p, opt, name); -} - -int z_IU0TargetPart (ODR o, Z_IU0TargetPart **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->updateStatus, ODR_CONTEXT, 1, 0, "updateStatus") && - odr_implicit_settag (o, ODR_CONTEXT, 2) && - (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->globalDiagnostics, - &(*p)->num_globalDiagnostics, "globalDiagnostics") || odr_ok(o)) && - odr_implicit_settag (o, ODR_CONTEXT, 3) && - (odr_sequence_of(o, (Odr_fun) z_IU0TaskPackageRecordStructure, &(*p)->taskPackageRecords, - &(*p)->num_taskPackageRecords, "taskPackageRecords") || odr_ok(o)) && - odr_sequence_end (o); -} - -int z_IU0SuppliedRecordsId (ODR o, Z_IU0SuppliedRecordsId **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0SuppliedRecordsId_timeStamp, - (Odr_fun) odr_generalizedtime, "timeStamp"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IU0SuppliedRecordsId_versionNumber, - (Odr_fun) z_InternationalString, "versionNumber"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IU0SuppliedRecordsId_previousVersion, - (Odr_fun) z_External, "previousVersion"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_initmember(o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IU0SuppliedRecords_elem (ODR o, Z_IU0SuppliedRecords_elem **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0SuppliedRecords_elem_number, - (Odr_fun) odr_integer, "number"}, - {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_IU0SuppliedRecords_elem_string, - (Odr_fun) z_InternationalString, "string"}, - {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_IU0SuppliedRecords_elem_opaque, - (Odr_fun) odr_octetstring, "opaque"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "recordId") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_explicit_tag (o, z_IU0SuppliedRecordsId, - &(*p)->supplementalId, ODR_CONTEXT, 2, 1, "supplementalId") && - odr_implicit_tag (o, z_IU0CorrelationInfo, - &(*p)->correlationInfo, ODR_CONTEXT, 3, 1, "correlationInfo") && - odr_implicit_tag (o, z_External, - &(*p)->record, ODR_CONTEXT, 4, 0, "record") && - odr_sequence_end (o); -} - -int z_IU0SuppliedRecords (ODR o, Z_IU0SuppliedRecords **p, int opt, const char *name) -{ - if (!odr_initmember (o, p, sizeof(**p))) - return odr_missing(o, opt, name); - if (odr_sequence_of (o, (Odr_fun) z_IU0SuppliedRecords_elem, &(*p)->elements, - &(*p)->num, name)) - return 1; - if(o->direction == ODR_DECODE) - *p = 0; - return odr_missing(o, opt, name); -} - -int z_IU0CorrelationInfo (ODR o, Z_IU0CorrelationInfo **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, z_InternationalString, - &(*p)->note, ODR_CONTEXT, 1, 1, "note") && - odr_implicit_tag (o, odr_integer, - &(*p)->id, ODR_CONTEXT, 2, 1, "id") && - odr_sequence_end (o); -} - -int z_IU0TaskPackageRecordStructure (ODR o, Z_IU0TaskPackageRecordStructure **p, int opt, const char *name) -{ - static Odr_arm arm[] = { - {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_IU0TaskPackageRecordStructure_record, - (Odr_fun) z_External, "record"}, - {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_IU0TaskPackageRecordStructure_diagnostic, - (Odr_fun) z_DiagRec, "diagnostic"}, - {-1, -1, -1, -1, (Odr_fun) 0, 0} - }; - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "recordOrSurDiag") && - odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) && - odr_constructed_end (o)) || odr_ok(o)) && - odr_implicit_tag (o, z_IU0CorrelationInfo, - &(*p)->correlationInfo, ODR_CONTEXT, 2, 1, "correlationInfo") && - odr_implicit_tag (o, odr_integer, - &(*p)->recordStatus, ODR_CONTEXT, 3, 0, "recordStatus") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/src/zgdu.c b/dependencies/yaz_3.0.14/src/zgdu.c deleted file mode 100644 index beb87fd..0000000 --- a/dependencies/yaz_3.0.14/src/zgdu.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: zgdu.c,v 1.19 2007/01/11 10:55:57 adam Exp $ - */ - -/** - * \file zgdu.c - * \brief Implements HTTP and Z39.50 encoding and decoding. - */ - -#include -#include -#include - -int z_GDU (ODR o, Z_GDU **p, int opt, const char *name) -{ - if (o->direction == ODR_DECODE) { - *p = (Z_GDU *) odr_malloc(o, sizeof(**p)); - if (o->size > 10 && !memcmp(o->buf, "HTTP/", 5)) - { - (*p)->which = Z_GDU_HTTP_Response; - return yaz_decode_http_response(o, &(*p)->u.HTTP_Response); - - } - else if (o->size > 5 && - o->buf[0] >= 0x20 && o->buf[0] < 0x7f - && o->buf[1] >= 0x20 && o->buf[1] < 0x7f - && o->buf[2] >= 0x20 && o->buf[2] < 0x7f - && o->buf[3] >= 0x20 && o->buf[3] < 0x7f) - { - (*p)->which = Z_GDU_HTTP_Request; - return yaz_decode_http_request(o, &(*p)->u.HTTP_Request); - } - else - { - (*p)->which = Z_GDU_Z3950; - return z_APDU(o, &(*p)->u.z3950, opt, 0); - } - } - else /* ENCODE or PRINT */ - { - switch((*p)->which) - { - case Z_GDU_HTTP_Response: - return yaz_encode_http_response(o, (*p)->u.HTTP_Response); - case Z_GDU_HTTP_Request: - return yaz_encode_http_request(o, (*p)->u.HTTP_Request); - case Z_GDU_Z3950: - return z_APDU(o, &(*p)->u.z3950, opt, 0); - } - } - return 0; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/zget.c b/dependencies/yaz_3.0.14/src/zget.c deleted file mode 100644 index 8067b68..0000000 --- a/dependencies/yaz_3.0.14/src/zget.c +++ /dev/null @@ -1,661 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: zget.c,v 1.15 2007/05/06 20:12:20 adam Exp $ - */ -/** - * \file zget.c - * \brief Implements Z39.50 package creator utilities - */ - -#include -#include - -Z_InitRequest *zget_InitRequest(ODR o) -{ - Z_InitRequest *r = (Z_InitRequest *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->options = (Odr_bitmask *)odr_malloc(o, sizeof(*r->options)); - ODR_MASK_ZERO(r->options); - r->protocolVersion = (Odr_bitmask *) - odr_malloc(o, sizeof(*r->protocolVersion)); - - ODR_MASK_SET(r->options, Z_Options_search); - ODR_MASK_SET(r->options, Z_Options_present); - - ODR_MASK_ZERO(r->protocolVersion); - - ODR_MASK_SET(r->protocolVersion, Z_ProtocolVersion_1); - ODR_MASK_SET(r->protocolVersion, Z_ProtocolVersion_2); - - r->preferredMessageSize = odr_intdup(o, 1024*1024); - r->maximumRecordSize = odr_intdup(o, 1024*1024); - r->idAuthentication = 0; - r->implementationId = "81"; - r->implementationName = "YAZ"; - r->implementationVersion = YAZ_VERSION -#ifdef YAZ_DATE_STR - " (" YAZ_DATE_STR ")" -#endif -#ifdef YAZ_OS - " " YAZ_OS -#endif - ; - r->userInformationField = 0; - r->otherInfo = 0; - return r; -} - -Z_InitResponse *zget_InitResponse(ODR o) -{ - Z_InitResponse *r = (Z_InitResponse *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->options = (Odr_bitmask *)odr_malloc(o, sizeof(*r->options)); - ODR_MASK_ZERO(r->options); - r->protocolVersion = (Odr_bitmask *)odr_malloc(o, sizeof(*r->protocolVersion)); - ODR_MASK_ZERO(r->protocolVersion); - r->preferredMessageSize = odr_intdup(o, 30*1024); - r->maximumRecordSize = odr_intdup(o, 30*1024); - r->result = odr_intdup(o, 1); - r->implementationId = "81"; - r->implementationName = "YAZ"; - r->implementationVersion = YAZ_VERSION -#ifdef YAZ_DATE_STR - " (" YAZ_DATE_STR ")" -#endif -#ifdef YAZ_OS - " " YAZ_OS -#endif - ; - r->userInformationField = 0; - r->otherInfo = 0; - return r; -} - -Z_SearchRequest *zget_SearchRequest(ODR o) -{ - Z_SearchRequest *r = (Z_SearchRequest *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->smallSetUpperBound = odr_intdup(o, 0); - r->largeSetLowerBound = odr_intdup(o, 1); - r->mediumSetPresentNumber = odr_intdup(o, 0); - r->replaceIndicator = odr_intdup(o, 1); - r->resultSetName = "default"; - r->num_databaseNames = 0; - r->databaseNames = 0; - r->smallSetElementSetNames = 0; - r->mediumSetElementSetNames = 0; - r->preferredRecordSyntax = 0; - r->query = 0; - r->additionalSearchInfo = 0; - r->otherInfo = 0; - return r; -} - -Z_SearchResponse *zget_SearchResponse(ODR o) -{ - Z_SearchResponse *r = (Z_SearchResponse *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->resultCount = odr_intdup(o, 0); - r->numberOfRecordsReturned = odr_intdup(o, 0); - r->nextResultSetPosition = odr_intdup(o, 0); - r->searchStatus = odr_intdup(o, 1); - r->resultSetStatus = 0; - r->presentStatus = 0; - r->records = 0; - r->additionalSearchInfo = 0; - r->otherInfo = 0; - return r; -} - -Z_PresentRequest *zget_PresentRequest(ODR o) -{ - Z_PresentRequest *r = (Z_PresentRequest *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->resultSetId = "default"; - r->resultSetStartPoint = odr_intdup(o, 1); - r->numberOfRecordsRequested = odr_intdup(o, 10); - r->num_ranges = 0; - r->additionalRanges = 0; - r->recordComposition = 0; - r->preferredRecordSyntax = 0; - r->maxSegmentCount = 0; - r->maxRecordSize = 0; - r->maxSegmentSize = 0; - r->otherInfo = 0; - return r; -} - -Z_PresentResponse *zget_PresentResponse(ODR o) -{ - Z_PresentResponse *r = (Z_PresentResponse *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->numberOfRecordsReturned = odr_intdup(o, 0); - r->nextResultSetPosition = odr_intdup(o, 0); - r->presentStatus = odr_intdup(o, Z_PresentStatus_success); - r->records = 0; - r->otherInfo = 0; - return r; -} - -Z_DeleteResultSetRequest *zget_DeleteResultSetRequest(ODR o) -{ - Z_DeleteResultSetRequest *r = (Z_DeleteResultSetRequest *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->deleteFunction = odr_intdup(o, Z_DeleteResultSetRequest_list); - r->num_resultSetList = 0; - r->resultSetList = 0; - r->otherInfo = 0; - return r; -} - -Z_DeleteResultSetResponse *zget_DeleteResultSetResponse(ODR o) -{ - Z_DeleteResultSetResponse *r = (Z_DeleteResultSetResponse *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->deleteOperationStatus = odr_intdup(o, Z_DeleteStatus_success); - r->deleteListStatuses = 0; - r->numberNotDeleted = 0; - r->bulkStatuses = 0; - r->deleteMessage = 0; - r->otherInfo = 0; - return r; -} - -Z_ScanRequest *zget_ScanRequest(ODR o) -{ - Z_ScanRequest *r = (Z_ScanRequest *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->num_databaseNames = 0; - r->databaseNames = 0; - r->attributeSet = 0; - r->termListAndStartPoint = 0; - r->stepSize = 0; - r->numberOfTermsRequested = odr_intdup(o, 20); - r->preferredPositionInResponse = 0; - r->otherInfo = 0; - return r; -} - -Z_ScanResponse *zget_ScanResponse(ODR o) -{ - Z_ScanResponse *r = (Z_ScanResponse *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->stepSize = 0; - r->scanStatus = odr_intdup(o, Z_Scan_success); - r->numberOfEntriesReturned = odr_intdup(o, 0); - r->positionOfTerm =0; - r->entries = 0; - r->attributeSet = 0; - r->otherInfo = 0; - return r; -} - -Z_TriggerResourceControlRequest *zget_TriggerResourceControlRequest(ODR o) -{ - Z_TriggerResourceControlRequest *r = (Z_TriggerResourceControlRequest *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->requestedAction = odr_intdup(o, Z_TriggerResourceControlRequest_resourceReport); - r->prefResourceReportFormat = 0; - r->resultSetWanted = 0; - r->otherInfo = 0; - return r; -} - -Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o) -{ - Z_ResourceControlRequest *r = (Z_ResourceControlRequest *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->suspendedFlag = 0; - r->resourceReport = 0; - r->partialResultsAvailable = 0; - r->responseRequired = odr_intdup(o, 0); - r->triggeredRequestFlag = 0; - r->otherInfo = 0; - return r; -} - -Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o) -{ - Z_ResourceControlResponse *r = (Z_ResourceControlResponse *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->continueFlag = odr_intdup(o, 1); - r->resultSetWanted = 0; - r->otherInfo = 0; - return r; -} - -Z_AccessControlRequest *zget_AccessControlRequest(ODR o) -{ - Z_AccessControlRequest *r = (Z_AccessControlRequest *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->which = Z_AccessControlRequest_simpleForm; - r->u.simpleForm = 0; - r->otherInfo = 0; - return r; -} - -Z_AccessControlResponse *zget_AccessControlResponse(ODR o) -{ - Z_AccessControlResponse *r = (Z_AccessControlResponse *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->which = Z_AccessControlResponse_simpleForm; - r->u.simpleForm = 0; - r->diagnostic = 0; - r->otherInfo = 0; - return r; -} - -Z_Segment *zget_Segment(ODR o) -{ - Z_Segment *r = (Z_Segment *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->numberOfRecordsReturned = odr_intdup(o, 0); - r->num_segmentRecords = 0; - r->segmentRecords = (Z_NamePlusRecord **) odr_nullval(); - r->otherInfo = 0; - return r; -} - -Z_Close *zget_Close(ODR o) -{ - Z_Close *r = (Z_Close *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->closeReason = odr_intdup(o, Z_Close_finished); - r->diagnosticInformation = 0; - r->resourceReportFormat = 0; - r->resourceReport = 0; - r->otherInfo = 0; - return r; -} - -Z_ResourceReportRequest *zget_ResourceReportRequest(ODR o) -{ - Z_ResourceReportRequest *r = (Z_ResourceReportRequest *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->opId = 0; - r->prefResourceReportFormat = 0; - r->otherInfo = 0; - return r; -} - -Z_ResourceReportResponse *zget_ResourceReportResponse(ODR o) -{ - Z_ResourceReportResponse *r = (Z_ResourceReportResponse *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->resourceReportStatus = odr_intdup(o, Z_ResourceReportResponse_success); - r->resourceReport = 0; - r->otherInfo = 0; - return r; -} - -Z_SortRequest *zget_SortRequest(ODR o) -{ - Z_SortRequest *r = (Z_SortRequest *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->inputResultSetNames = 0; - r->sortedResultSetName = 0; - r->sortSequence = 0; - r->otherInfo = 0; - return r; -} - -Z_SortResponse *zget_SortResponse(ODR o) -{ - Z_SortResponse *r = (Z_SortResponse *)odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->sortStatus = odr_intdup(o, Z_SortResponse_success); - r->resultSetStatus = odr_intdup(o, Z_SortResponse_empty); - r->diagnostics = 0; - r->resultCount = 0; - r->otherInfo = 0; - return r; -} - -Z_ExtendedServicesRequest *zget_ExtendedServicesRequest(ODR o) -{ - Z_ExtendedServicesRequest *r = (Z_ExtendedServicesRequest *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->function = odr_intdup(o, Z_ExtendedServicesRequest_create); - r->packageType = 0; - r->packageName = 0; - r->userId = 0; - r->retentionTime = 0; - r->permissions = 0; - r->description = 0; - r->taskSpecificParameters = 0; - r->waitAction = odr_intdup(o, Z_ExtendedServicesRequest_waitIfPossible); - r->elements = 0; - r->otherInfo = 0; - return r; -} - -Z_ExtendedServicesResponse *zget_ExtendedServicesResponse(ODR o) -{ - Z_ExtendedServicesResponse *r = (Z_ExtendedServicesResponse *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->operationStatus = odr_intdup(o, Z_ExtendedServicesResponse_done); - r->num_diagnostics = 0; - r->diagnostics = 0; - r->taskPackage = 0; - r->otherInfo = 0; - return r; -} - -Z_DuplicateDetectionRequest *zget_DuplicateDetectionRequest(ODR o) -{ - Z_DuplicateDetectionRequest *r = (Z_DuplicateDetectionRequest *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->num_inputResultSetIds = 0; - r->inputResultSetIds = 0; - r->outputResultSetName = 0; - r->applicablePortionOfRecord = 0; - r->num_duplicateDetectionCriteria = 0; - r->duplicateDetectionCriteria = 0; - r->clustering = 0; - r->num_retentionCriteria = 0; - r->retentionCriteria = 0; - r->num_sortCriteria = 0; - r->sortCriteria = 0; - r->otherInfo = 0; - return r; -} - -Z_DuplicateDetectionResponse *zget_DuplicateDetectionResponse(ODR o) -{ - Z_DuplicateDetectionResponse *r = (Z_DuplicateDetectionResponse *) - odr_malloc(o, sizeof(*r)); - - r->referenceId = 0; - r->status = odr_intdup(o, Z_DuplicateDetectionResponse_success); - r->resultSetCount = 0; - r->num_diagnostics = 0; - r->diagnostics = 0; - r->otherInfo = 0; - return r; -} - -Z_APDU *zget_APDU(ODR o, int which) -{ - Z_APDU *r = (Z_APDU *)odr_malloc(o, sizeof(*r)); - - switch (r->which = which) - { - case Z_APDU_initRequest: - r->u.initRequest = zget_InitRequest(o); - break; - case Z_APDU_initResponse: - r->u.initResponse = zget_InitResponse(o); - break; - case Z_APDU_searchRequest: - r->u.searchRequest = zget_SearchRequest(o); - break; - case Z_APDU_searchResponse: - r->u.searchResponse = zget_SearchResponse(o); - break; - case Z_APDU_presentRequest: - r->u.presentRequest = zget_PresentRequest(o); - break; - case Z_APDU_presentResponse: - r->u.presentResponse = zget_PresentResponse(o); - break; - case Z_APDU_deleteResultSetRequest: - r->u.deleteResultSetRequest = zget_DeleteResultSetRequest(o); - break; - case Z_APDU_deleteResultSetResponse: - r->u.deleteResultSetResponse = zget_DeleteResultSetResponse(o); - break; - case Z_APDU_scanRequest: - r->u.scanRequest = zget_ScanRequest(o); - break; - case Z_APDU_scanResponse: - r->u.scanResponse = zget_ScanResponse(o); - break; - case Z_APDU_triggerResourceControlRequest: - r->u.triggerResourceControlRequest = - zget_TriggerResourceControlRequest(o); - break; - case Z_APDU_resourceControlRequest: - r->u.resourceControlRequest = zget_ResourceControlRequest(o); - break; - case Z_APDU_resourceControlResponse: - r->u.resourceControlResponse = zget_ResourceControlResponse(o); - break; - case Z_APDU_segmentRequest: - r->u.segmentRequest = zget_Segment(o); - break; - case Z_APDU_close: - r->u.close = zget_Close(o); - break; - case Z_APDU_accessControlRequest: - r->u.accessControlRequest = zget_AccessControlRequest(o); - break; - case Z_APDU_accessControlResponse: - r->u.accessControlResponse = zget_AccessControlResponse(o); - break; - case Z_APDU_resourceReportRequest: - r->u.resourceReportRequest = zget_ResourceReportRequest(o); - break; - case Z_APDU_resourceReportResponse: - r->u.resourceReportResponse = zget_ResourceReportResponse(o); - break; - case Z_APDU_sortRequest: - r->u.sortRequest = zget_SortRequest(o); - break; - case Z_APDU_sortResponse: - r->u.sortResponse = zget_SortResponse(o); - break; - case Z_APDU_extendedServicesRequest: - r->u.extendedServicesRequest = zget_ExtendedServicesRequest(o); - break; - case Z_APDU_extendedServicesResponse: - r->u.extendedServicesResponse = zget_ExtendedServicesResponse(o); - break; - case Z_APDU_duplicateDetectionRequest: - r->u.duplicateDetectionRequest = zget_DuplicateDetectionRequest(o); - break; - case Z_APDU_duplicateDetectionResponse: - r->u.duplicateDetectionResponse = zget_DuplicateDetectionResponse(o); - break; - default: - return 0; - } - return r; -} - -Z_DefaultDiagFormat *zget_DefaultDiagFormat(ODR o, int error, - const char *addinfo) -{ - Z_DefaultDiagFormat *dr = (Z_DefaultDiagFormat *) - odr_malloc (o, sizeof(*dr)); - - dr->diagnosticSetId = odr_oiddup(o, yaz_oid_diagset_bib_1); - dr->condition = odr_intdup(o, error); - dr->which = Z_DefaultDiagFormat_v2Addinfo; - dr->u.v2Addinfo = odr_strdup (o, addinfo ? addinfo : ""); - return dr; -} - -Z_DiagRec *zget_DiagRec(ODR o, int error, const char *addinfo) -{ - Z_DiagRec *dr = (Z_DiagRec*) odr_malloc(o, sizeof(*dr)); - dr->which = Z_DiagRec_defaultFormat; - dr->u.defaultFormat = zget_DefaultDiagFormat(o, error, addinfo); - return dr; -} - -Z_DiagRecs *zget_DiagRecs(ODR o, int error, const char *addinfo) -{ - Z_DiagRecs *drecs = (Z_DiagRecs*) odr_malloc(o, sizeof(*drecs)); - Z_DiagRec **dr = (Z_DiagRec**) odr_malloc(o, sizeof(**dr)); - drecs->diagRecs = dr; - dr[0] = zget_DiagRec(o, error, addinfo); - drecs->num_diagRecs = 1; - return drecs; -} - -Z_NamePlusRecord *zget_surrogateDiagRec(ODR o, const char *dbname, - int error, const char *addinfo) -{ - Z_NamePlusRecord *rec = (Z_NamePlusRecord *) odr_malloc (o, sizeof(*rec)); - Z_DiagRec *drec = (Z_DiagRec *)odr_malloc (o, sizeof(*drec)); - - if (dbname) - rec->databaseName = odr_strdup(o, dbname); - else - rec->databaseName = 0; - rec->which = Z_NamePlusRecord_surrogateDiagnostic; - rec->u.surrogateDiagnostic = drec; - drec->which = Z_DiagRec_defaultFormat; - drec->u.defaultFormat = zget_DefaultDiagFormat(o, error, addinfo); - return rec; -} - -Z_External *zget_init_diagnostics(ODR odr, int error, const char *addinfo) -{ - Z_External *x, *x2; - Z_OtherInformation *u; - Z_OtherInformationUnit *l; - Z_DiagnosticFormat *d; - Z_DiagnosticFormat_s *e; - - x = (Z_External*) odr_malloc(odr, sizeof *x); - x->descriptor = 0; - x->indirect_reference = 0; - x->direct_reference = odr_oiddup(odr, yaz_oid_userinfo_userinfo_1); - x->which = Z_External_userInfo1; - - u = (Z_OtherInformation *) odr_malloc(odr, sizeof *u); - x->u.userInfo1 = u; - u->num_elements = 1; - u->list = (Z_OtherInformationUnit**) odr_malloc(odr, sizeof *u->list); - u->list[0] = (Z_OtherInformationUnit*) odr_malloc(odr, sizeof *u->list[0]); - l = u->list[0]; - l->category = 0; - l->which = Z_OtherInfo_externallyDefinedInfo; - - x2 = (Z_External*) odr_malloc(odr, sizeof *x); - l->information.externallyDefinedInfo = x2; - x2->descriptor = 0; - x2->indirect_reference = 0; - x2->direct_reference = odr_oiddup(odr, yaz_oid_diagset_diag_1); - x2->which = Z_External_diag1; - - d = (Z_DiagnosticFormat*) odr_malloc(odr, sizeof *d); - x2->u.diag1 = d; - d->num = 1; - d->elements = (Z_DiagnosticFormat_s**) odr_malloc (odr, sizeof *d->elements); - d->elements[0] = (Z_DiagnosticFormat_s*) odr_malloc (odr, sizeof *d->elements[0]); - e = d->elements[0]; - - e->which = Z_DiagnosticFormat_s_defaultDiagRec; - e->u.defaultDiagRec = zget_DefaultDiagFormat(odr, error, addinfo); - e->message = 0; - return x; -} - -Z_External *zget_init_diagnostics_octet(ODR odr, int error, - const char *addinfo) -{ - Z_External *x, *x2; - Z_OtherInformation *u; - Z_OtherInformationUnit *l; - Z_DiagnosticFormat *d; - Z_DiagnosticFormat_s *e; - char *octet_buf; - int octet_len; - ODR encode; - - u = (Z_OtherInformation *) odr_malloc(odr, sizeof *u); - u->num_elements = 1; - u->list = (Z_OtherInformationUnit**) odr_malloc(odr, sizeof *u->list); - u->list[0] = (Z_OtherInformationUnit*) odr_malloc(odr, sizeof *u->list[0]); - l = u->list[0]; - l->category = 0; - l->which = Z_OtherInfo_externallyDefinedInfo; - - x2 = (Z_External*) odr_malloc(odr, sizeof *x); - l->information.externallyDefinedInfo = x2; - x2->descriptor = 0; - x2->indirect_reference = 0; - - x2->direct_reference = odr_oiddup(odr, yaz_oid_diagset_diag_1); - x2->which = Z_External_diag1; - - d = (Z_DiagnosticFormat*) odr_malloc(odr, sizeof *d); - x2->u.diag1 = d; - d->num = 1; - d->elements = (Z_DiagnosticFormat_s**) odr_malloc (odr, sizeof *d->elements); - d->elements[0] = (Z_DiagnosticFormat_s*) odr_malloc (odr, sizeof *d->elements[0]); - e = d->elements[0]; - - e->which = Z_DiagnosticFormat_s_defaultDiagRec; - e->u.defaultDiagRec = zget_DefaultDiagFormat(odr, error, addinfo); - e->message = 0; - - encode = odr_createmem(ODR_ENCODE); - - z_OtherInformation(encode, &u, 0, 0); - - octet_buf = odr_getbuf(encode, &octet_len, 0); - - x = (Z_External*) odr_malloc(odr, sizeof *x); - x->descriptor = 0; - x->indirect_reference = 0; - x->direct_reference = odr_oiddup(odr, yaz_oid_userinfo_userinfo_1); - x->which = Z_External_octet; - x->u.octet_aligned = (Odr_oct *) odr_malloc(odr, sizeof(Odr_oct)); - x->u.octet_aligned->buf = (unsigned char *) odr_malloc(odr, octet_len); - memcpy(x->u.octet_aligned->buf, octet_buf, octet_len); - x->u.octet_aligned->len = octet_len; - - odr_destroy(encode); - - return x; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/zoom-c.c b/dependencies/yaz_3.0.14/src/zoom-c.c deleted file mode 100644 index f3cca63..0000000 --- a/dependencies/yaz_3.0.14/src/zoom-c.c +++ /dev/null @@ -1,4516 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: zoom-c.c,v 1.150 2007/09/21 07:10:08 adam Exp $ - */ -/** - * \file zoom-c.c - * \brief Implements ZOOM C interface. - */ - -#include -#include -#include -#include "zoom-p.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static int log_api = 0; -static int log_details = 0; - -typedef enum { - zoom_pending, - zoom_complete -} zoom_ret; - -static void resultset_destroy(ZOOM_resultset r); -static zoom_ret ZOOM_connection_send_init(ZOOM_connection c); -static zoom_ret do_write_ex(ZOOM_connection c, char *buf_out, int len_out); -static char *cql2pqf(ZOOM_connection c, const char *cql); - - -/* - * This wrapper is just for logging failed lookups. It would be nicer - * if it could cause failure when a lookup fails, but that's hard. - */ -static Odr_oid *zoom_yaz_str_to_z3950oid(ZOOM_connection c, - int oid_class, const char *str) { - Odr_oid *res = yaz_string_to_oid_odr(yaz_oid_std(), oid_class, str, - c->odr_out); - if (res == 0) - yaz_log(YLOG_WARN, "%p OID lookup (%d, '%s') failed", - c, (int) oid_class, str); - return res; -} - - -static void initlog(void) -{ - static int log_level_initialized = 0; - if (!log_level_initialized) - { - log_api = yaz_log_module_level("zoom"); - log_details = yaz_log_module_level("zoomdetails"); - log_level_initialized = 1; - } -} - -static ZOOM_Event ZOOM_Event_create(int kind) -{ - ZOOM_Event event = (ZOOM_Event) xmalloc(sizeof(*event)); - event->kind = kind; - event->next = 0; - event->prev = 0; - yaz_log(log_details, "ZOOM_Event_create(kind=%d)", kind); - return event; -} - -static void ZOOM_Event_destroy(ZOOM_Event event) -{ - xfree(event); -} - -static void ZOOM_connection_put_event(ZOOM_connection c, ZOOM_Event event) -{ - if (c->m_queue_back) - { - c->m_queue_back->prev = event; - assert(c->m_queue_front); - } - else - { - assert(!c->m_queue_front); - c->m_queue_front = event; - } - event->next = c->m_queue_back; - event->prev = 0; - c->m_queue_back = event; -} - -static ZOOM_Event ZOOM_connection_get_event(ZOOM_connection c) -{ - ZOOM_Event event = c->m_queue_front; - if (!event) - { - c->last_event = ZOOM_EVENT_NONE; - return 0; - } - assert(c->m_queue_back); - c->m_queue_front = event->prev; - if (c->m_queue_front) - { - assert(c->m_queue_back); - c->m_queue_front->next = 0; - } - else - c->m_queue_back = 0; - c->last_event = event->kind; - return event; -} - -static void ZOOM_connection_remove_events(ZOOM_connection c) -{ - ZOOM_Event event; - while ((event = ZOOM_connection_get_event(c))) - ZOOM_Event_destroy(event); -} - -ZOOM_API(int) ZOOM_connection_peek_event(ZOOM_connection c) -{ - ZOOM_Event event = c->m_queue_front; - - return event ? event->kind : ZOOM_EVENT_NONE; -} - -void ZOOM_connection_remove_tasks(ZOOM_connection c); - -static void set_dset_error(ZOOM_connection c, int error, - const char *dset, - const char *addinfo, const char *addinfo2) -{ - char *cp; - - xfree(c->addinfo); - c->addinfo = 0; - c->error = error; - if (!c->diagset || strcmp(dset, c->diagset)) - { - xfree(c->diagset); - c->diagset = xstrdup(dset); - /* remove integer part from SRW diagset .. */ - if ((cp = strrchr(c->diagset, '/'))) - *cp = '\0'; - } - if (addinfo && addinfo2) - { - c->addinfo = (char*) xmalloc(strlen(addinfo) + strlen(addinfo2) + 2); - strcpy(c->addinfo, addinfo); - strcat(c->addinfo, addinfo2); - } - else if (addinfo) - c->addinfo = xstrdup(addinfo); - if (error != ZOOM_ERROR_NONE) - { - yaz_log(log_api, "%p set_dset_error %s %s:%d %s %s", - c, c->host_port ? c->host_port : "<>", dset, error, - addinfo ? addinfo : "", - addinfo2 ? addinfo2 : ""); - ZOOM_connection_remove_tasks(c); - } -} - -#if YAZ_HAVE_XML2 -static void set_HTTP_error(ZOOM_connection c, int error, - const char *addinfo, const char *addinfo2) -{ - set_dset_error(c, error, "HTTP", addinfo, addinfo2); -} - -static int uri_to_code(const char *uri) -{ - int code = 0; - const char *cp; - if ((cp = strrchr(uri, '/'))) - code = atoi(cp+1); - return code; -} - -static void set_SRU_error(ZOOM_connection c, Z_SRW_diagnostic *d) -{ - const char *uri = d->uri; - if (uri) - set_dset_error(c, uri_to_code(uri), uri, d->details, 0); -} - -#endif - - -static void set_ZOOM_error(ZOOM_connection c, int error, - const char *addinfo) -{ - set_dset_error(c, error, "ZOOM", addinfo, 0); -} - -static void clear_error(ZOOM_connection c) -{ - /* - * If an error is tied to an operation then it's ok to clear: for - * example, a diagnostic returned from a search is cleared by a - * subsequent search. However, problems such as Connection Lost - * or Init Refused are not cleared, because they are not - * recoverable: doing another search doesn't help. - */ - - ZOOM_connection_remove_events(c); - switch (c->error) - { - case ZOOM_ERROR_CONNECT: - case ZOOM_ERROR_MEMORY: - case ZOOM_ERROR_DECODE: - case ZOOM_ERROR_CONNECTION_LOST: - case ZOOM_ERROR_INIT: - case ZOOM_ERROR_INTERNAL: - case ZOOM_ERROR_UNSUPPORTED_PROTOCOL: - break; - default: - set_ZOOM_error(c, ZOOM_ERROR_NONE, 0); - } -} - -void ZOOM_connection_show_task(ZOOM_task task) -{ - switch(task->which) - { - case ZOOM_TASK_SEARCH: - yaz_log(YLOG_LOG, "search p=%p", task); - break; - case ZOOM_TASK_RETRIEVE: - yaz_log(YLOG_LOG, "retrieve p=%p", task); - break; - case ZOOM_TASK_CONNECT: - yaz_log(YLOG_LOG, "connect p=%p", task); - break; - case ZOOM_TASK_SCAN: - yaz_log(YLOG_LOG, "scant p=%p", task); - break; - } -} - -void ZOOM_connection_show_tasks(ZOOM_connection c) -{ - ZOOM_task task; - yaz_log(YLOG_LOG, "connection p=%p tasks", c); - for (task = c->tasks; task; task = task->next) - ZOOM_connection_show_task(task); -} - -ZOOM_task ZOOM_connection_add_task(ZOOM_connection c, int which) -{ - ZOOM_task *taskp = &c->tasks; - while (*taskp) - taskp = &(*taskp)->next; - *taskp = (ZOOM_task) xmalloc(sizeof(**taskp)); - (*taskp)->running = 0; - (*taskp)->which = which; - (*taskp)->next = 0; - clear_error(c); - return *taskp; -} - -ZOOM_API(int) ZOOM_connection_is_idle(ZOOM_connection c) -{ - return c->tasks ? 0 : 1; -} - -ZOOM_task ZOOM_connection_insert_task(ZOOM_connection c, int which) -{ - ZOOM_task task = (ZOOM_task) xmalloc(sizeof(*task)); - - task->next = c->tasks; - c->tasks = task; - - task->running = 0; - task->which = which; - clear_error(c); - return task; -} - -void ZOOM_connection_remove_task(ZOOM_connection c) -{ - ZOOM_task task = c->tasks; - - if (task) - { - c->tasks = task->next; - switch (task->which) - { - case ZOOM_TASK_SEARCH: - resultset_destroy(task->u.search.resultset); - xfree(task->u.search.syntax); - xfree(task->u.search.elementSetName); - break; - case ZOOM_TASK_RETRIEVE: - resultset_destroy(task->u.retrieve.resultset); - xfree(task->u.retrieve.syntax); - xfree(task->u.retrieve.elementSetName); - break; - case ZOOM_TASK_CONNECT: - break; - case ZOOM_TASK_SCAN: - ZOOM_scanset_destroy(task->u.scan.scan); - break; - case ZOOM_TASK_PACKAGE: - ZOOM_package_destroy(task->u.package); - break; - case ZOOM_TASK_SORT: - resultset_destroy(task->u.sort.resultset); - ZOOM_query_destroy(task->u.sort.q); - break; - default: - assert(0); - } - xfree(task); - - if (!c->tasks) - { - ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_END); - ZOOM_connection_put_event(c, event); - } - } -} - -static int ZOOM_connection_exec_task(ZOOM_connection c); - -void ZOOM_connection_remove_tasks(ZOOM_connection c) -{ - while (c->tasks) - ZOOM_connection_remove_task(c); -} - -static ZOOM_record record_cache_lookup(ZOOM_resultset r, int pos, - const char *syntax, - const char *elementSetName); - -ZOOM_API(ZOOM_connection) - ZOOM_connection_create(ZOOM_options options) -{ - ZOOM_connection c = (ZOOM_connection) xmalloc(sizeof(*c)); - - initlog(); - - yaz_log(log_api, "%p ZOOM_connection_create", c); - - c->proto = PROTO_Z3950; - c->cs = 0; - ZOOM_connection_set_mask(c, 0); - c->reconnect_ok = 0; - c->state = STATE_IDLE; - c->addinfo = 0; - c->diagset = 0; - set_ZOOM_error(c, ZOOM_ERROR_NONE, 0); - c->buf_in = 0; - c->len_in = 0; - c->buf_out = 0; - c->len_out = 0; - c->resultsets = 0; - - c->options = ZOOM_options_create_with_parent(options); - - c->host_port = 0; - c->path = 0; - c->proxy = 0; - - c->charset = c->lang = 0; - - c->cookie_out = 0; - c->cookie_in = 0; - c->client_IP = 0; - c->tasks = 0; - - c->user = 0; - c->group = 0; - c->password = 0; - - c->maximum_record_size = 0; - c->preferred_message_size = 0; - - c->odr_in = odr_createmem(ODR_DECODE); - c->odr_out = odr_createmem(ODR_ENCODE); - - c->async = 0; - c->support_named_resultsets = 0; - c->last_event = ZOOM_EVENT_NONE; - - c->m_queue_front = 0; - c->m_queue_back = 0; - - c->sru_version = 0; - return c; -} - - -/* set database names. Take local databases (if set); otherwise - take databases given in ZURL (if set); otherwise use Default */ -static char **set_DatabaseNames(ZOOM_connection con, ZOOM_options options, - int *num, ODR odr) -{ - char **databaseNames; - const char *cp = ZOOM_options_get(options, "databaseName"); - - if ((!cp || !*cp) && con->host_port) - { - if (strncmp(con->host_port, "unix:", 5) == 0) - cp = strchr(con->host_port+5, ':'); - else - cp = strchr(con->host_port, '/'); - if (cp) - cp++; - } - if (!cp) - cp = "Default"; - nmem_strsplit(odr_getmem(odr), "+", cp, &databaseNames, num); - return databaseNames; -} - -ZOOM_API(ZOOM_connection) - ZOOM_connection_new(const char *host, int portnum) -{ - ZOOM_connection c = ZOOM_connection_create(0); - - ZOOM_connection_connect(c, host, portnum); - return c; -} - -static zoom_sru_mode get_sru_mode_from_string(const char *s) -{ - if (!s || !*s) - return zoom_sru_soap; - if (!yaz_matchstr(s, "soap")) - return zoom_sru_soap; - else if (!yaz_matchstr(s, "get")) - return zoom_sru_get; - else if (!yaz_matchstr(s, "post")) - return zoom_sru_post; - return zoom_sru_error; -} - -ZOOM_API(void) - ZOOM_connection_connect(ZOOM_connection c, - const char *host, int portnum) -{ - const char *val; - ZOOM_task task; - - initlog(); - - yaz_log(log_api, "%p ZOOM_connection_connect host=%s portnum=%d", - c, host ? host : "null", portnum); - - set_ZOOM_error(c, ZOOM_ERROR_NONE, 0); - ZOOM_connection_remove_tasks(c); - - if (c->cs) - { - yaz_log(log_details, "%p ZOOM_connection_connect reconnect ok", c); - c->reconnect_ok = 1; - return; - } - yaz_log(log_details, "%p ZOOM_connection_connect connect", c); - xfree(c->proxy); - c->proxy = 0; - val = ZOOM_options_get(c->options, "proxy"); - if (val && *val) - { - yaz_log(log_details, "%p ZOOM_connection_connect proxy=%s", c, val); - c->proxy = xstrdup(val); - } - - xfree(c->charset); - c->charset = 0; - val = ZOOM_options_get(c->options, "charset"); - if (val && *val) - { - yaz_log(log_details, "%p ZOOM_connection_connect charset=%s", c, val); - c->charset = xstrdup(val); - } - - xfree(c->lang); - val = ZOOM_options_get(c->options, "lang"); - if (val && *val) - { - yaz_log(log_details, "%p ZOOM_connection_connect lang=%s", c, val); - c->lang = xstrdup(val); - } - else - c->lang = 0; - - if (host) - { - xfree(c->host_port); - if (portnum) - { - char hostn[128]; - sprintf(hostn, "%.80s:%d", host, portnum); - c->host_port = xstrdup(hostn); - } - else - c->host_port = xstrdup(host); - } - - { - /* - * If the ":" part of the host string is preceded by one - * or more comma-separated = pairs, these are taken - * to be options to be set on the connection object. Among other - * applications, this facility can be used to embed authentication - * in a host string: - * user=admin,password=secret,tcp:localhost:9999 - */ - char *remainder = c->host_port; - char *pcolon = strchr(remainder, ':'); - char *pcomma; - char *pequals; - while ((pcomma = strchr(remainder, ',')) != 0 && - (pcolon == 0 || pcomma < pcolon)) { - *pcomma = '\0'; - if ((pequals = strchr(remainder, '=')) != 0) { - *pequals = '\0'; - /*printf("# setting '%s'='%s'\n", remainder, pequals+1);*/ - ZOOM_connection_option_set(c, remainder, pequals+1); - } - remainder = pcomma+1; - } - - if (remainder != c->host_port) { - xfree(c->host_port); - c->host_port = xstrdup(remainder); - /*printf("# reset hp='%s'\n", remainder);*/ - } - } - - val = ZOOM_options_get(c->options, "sru"); - c->sru_mode = get_sru_mode_from_string(val); - - xfree(c->sru_version); - val = ZOOM_options_get(c->options, "sru_version"); - c->sru_version = xstrdup(val ? val : "1.2"); - - ZOOM_options_set(c->options, "host", c->host_port); - - xfree(c->cookie_out); - c->cookie_out = 0; - val = ZOOM_options_get(c->options, "cookie"); - if (val && *val) - { - yaz_log(log_details, "%p ZOOM_connection_connect cookie=%s", c, val); - c->cookie_out = xstrdup(val); - } - - xfree(c->client_IP); - c->client_IP = 0; - val = ZOOM_options_get(c->options, "clientIP"); - if (val && *val) - { - yaz_log(log_details, "%p ZOOM_connection_connect clientIP=%s", - c, val); - c->client_IP = xstrdup(val); - } - - xfree(c->group); - c->group = 0; - val = ZOOM_options_get(c->options, "group"); - if (val && *val) - c->group = xstrdup(val); - - xfree(c->user); - c->user = 0; - val = ZOOM_options_get(c->options, "user"); - if (val && *val) - c->user = xstrdup(val); - - xfree(c->password); - c->password = 0; - val = ZOOM_options_get(c->options, "password"); - if (!val) - val = ZOOM_options_get(c->options, "pass"); - - if (val && *val) - c->password = xstrdup(val); - - c->maximum_record_size = - ZOOM_options_get_int(c->options, "maximumRecordSize", 1024*1024); - c->preferred_message_size = - ZOOM_options_get_int(c->options, "preferredMessageSize", 1024*1024); - - c->async = ZOOM_options_get_bool(c->options, "async", 0); - yaz_log(log_details, "%p ZOOM_connection_connect async=%d", c, c->async); - - task = ZOOM_connection_add_task(c, ZOOM_TASK_CONNECT); - - if (!c->async) - { - while (ZOOM_event(1, &c)) - ; - } -} - -ZOOM_API(ZOOM_query) - ZOOM_query_create(void) -{ - ZOOM_query s = (ZOOM_query) xmalloc(sizeof(*s)); - - yaz_log(log_details, "%p ZOOM_query_create", s); - s->refcount = 1; - s->z_query = 0; - s->sort_spec = 0; - s->odr = odr_createmem(ODR_ENCODE); - s->query_string = 0; - - return s; -} - -ZOOM_API(void) - ZOOM_query_destroy(ZOOM_query s) -{ - if (!s) - return; - - (s->refcount)--; - yaz_log(log_details, "%p ZOOM_query_destroy count=%d", s, s->refcount); - if (s->refcount == 0) - { - odr_destroy(s->odr); - xfree(s); - } -} - -ZOOM_API(int) - ZOOM_query_prefix(ZOOM_query s, const char *str) -{ - s->query_string = odr_strdup(s->odr, str); - s->z_query = (Z_Query *) odr_malloc(s->odr, sizeof(*s->z_query)); - s->z_query->which = Z_Query_type_1; - s->z_query->u.type_1 = p_query_rpn(s->odr, str); - if (!s->z_query->u.type_1) - { - yaz_log(log_details, "%p ZOOM_query_prefix str=%s failed", s, str); - s->z_query = 0; - return -1; - } - yaz_log(log_details, "%p ZOOM_query_prefix str=%s", s, str); - return 0; -} - -ZOOM_API(int) - ZOOM_query_cql(ZOOM_query s, const char *str) -{ - Z_External *ext; - - s->query_string = odr_strdup(s->odr, str); - - ext = (Z_External *) odr_malloc(s->odr, sizeof(*ext)); - ext->direct_reference = odr_oiddup(s->odr, yaz_oid_userinfo_cql); - ext->indirect_reference = 0; - ext->descriptor = 0; - ext->which = Z_External_CQL; - ext->u.cql = s->query_string; - - s->z_query = (Z_Query *) odr_malloc(s->odr, sizeof(*s->z_query)); - s->z_query->which = Z_Query_type_104; - s->z_query->u.type_104 = ext; - - yaz_log(log_details, "%p ZOOM_query_cql str=%s", s, str); - - return 0; -} - -/* - * Translate the CQL string client-side into RPN which is passed to - * the server. This is useful for server's that don't themselves - * support CQL, for which ZOOM_query_cql() is useless. `conn' is used - * only as a place to stash diagnostics if compilation fails; if this - * information is not needed, a null pointer may be used. - */ -ZOOM_API(int) - ZOOM_query_cql2rpn(ZOOM_query s, const char *str, ZOOM_connection conn) -{ - char *rpn; - int ret; - ZOOM_connection freeme = 0; - - yaz_log(log_details, "%p ZOOM_query_cql2rpn str=%s conn=%p", s, str, conn); - if (conn == 0) - conn = freeme = ZOOM_connection_create(0); - - rpn = cql2pqf(conn, str); - if (freeme != 0) - ZOOM_connection_destroy(freeme); - if (rpn == 0) - return -1; - - ret = ZOOM_query_prefix(s, rpn); - xfree(rpn); - return ret; -} - -/* - * Analogous in every way to ZOOM_query_cql2rpn(), except that there - * is no analogous ZOOM_query_ccl() that just sends uninterpreted CCL - * to the server, as the YAZ GFS doesn't know how to handle this. - */ -ZOOM_API(int) - ZOOM_query_ccl2rpn(ZOOM_query s, const char *str, const char *config, - int *ccl_error, const char **error_string, - int *error_pos) -{ - int ret; - struct ccl_rpn_node *rpn; - CCL_bibset bibset = ccl_qual_mk(); - - if (config) - ccl_qual_buf(bibset, config); - - rpn = ccl_find_str(bibset, str, ccl_error, error_pos); - if (!rpn) - { - *error_string = ccl_err_msg(*ccl_error); - ret = -1; - } - else - { - WRBUF wr = wrbuf_alloc(); - ccl_pquery(wr, rpn); - ccl_rpn_delete(rpn); - ret = ZOOM_query_prefix(s, wrbuf_cstr(wr)); - wrbuf_destroy(wr); - } - ccl_qual_rm(&bibset); - return ret; -} - -ZOOM_API(int) - ZOOM_query_sortby(ZOOM_query s, const char *criteria) -{ - s->sort_spec = yaz_sort_spec(s->odr, criteria); - if (!s->sort_spec) - { - yaz_log(log_details, "%p ZOOM_query_sortby criteria=%s failed", - s, criteria); - return -1; - } - yaz_log(log_details, "%p ZOOM_query_sortby criteria=%s", s, criteria); - return 0; -} - -static zoom_ret do_write(ZOOM_connection c); - -ZOOM_API(void) - ZOOM_connection_destroy(ZOOM_connection c) -{ - ZOOM_resultset r; - if (!c) - return; - yaz_log(log_api, "%p ZOOM_connection_destroy", c); - if (c->cs) - cs_close(c->cs); - for (r = c->resultsets; r; r = r->next) - r->connection = 0; - - xfree(c->buf_in); - xfree(c->addinfo); - xfree(c->diagset); - odr_destroy(c->odr_in); - odr_destroy(c->odr_out); - ZOOM_options_destroy(c->options); - ZOOM_connection_remove_tasks(c); - ZOOM_connection_remove_events(c); - xfree(c->host_port); - xfree(c->path); - xfree(c->proxy); - xfree(c->charset); - xfree(c->lang); - xfree(c->cookie_out); - xfree(c->cookie_in); - xfree(c->client_IP); - xfree(c->user); - xfree(c->group); - xfree(c->password); - xfree(c->sru_version); - xfree(c); -} - -void ZOOM_resultset_addref(ZOOM_resultset r) -{ - if (r) - { - (r->refcount)++; - yaz_log(log_details, "%p ZOOM_resultset_addref count=%d", - r, r->refcount); - } -} - -ZOOM_resultset ZOOM_resultset_create(void) -{ - int i; - ZOOM_resultset r = (ZOOM_resultset) xmalloc(sizeof(*r)); - - initlog(); - - yaz_log(log_details, "%p ZOOM_resultset_create", r); - r->refcount = 1; - r->size = 0; - r->odr = odr_createmem(ODR_ENCODE); - r->piggyback = 1; - r->setname = 0; - r->schema = 0; - r->step = 0; - for (i = 0; irecord_hash[i] = 0; - r->r_sort_spec = 0; - r->query = 0; - r->connection = 0; - r->next = 0; - r->databaseNames = 0; - r->num_databaseNames = 0; - return r; -} - -ZOOM_API(ZOOM_resultset) - ZOOM_connection_search_pqf(ZOOM_connection c, const char *q) -{ - ZOOM_resultset r; - ZOOM_query s = ZOOM_query_create(); - - ZOOM_query_prefix(s, q); - - r = ZOOM_connection_search(c, s); - ZOOM_query_destroy(s); - return r; -} - -ZOOM_API(ZOOM_resultset) - ZOOM_connection_search(ZOOM_connection c, ZOOM_query q) -{ - ZOOM_resultset r = ZOOM_resultset_create(); - ZOOM_task task; - const char *cp; - int start, count; - const char *syntax, *elementSetName; - - yaz_log(log_api, "%p ZOOM_connection_search set %p query %p", c, r, q); - r->r_sort_spec = q->sort_spec; - r->query = q; - - r->options = ZOOM_options_create_with_parent(c->options); - - start = ZOOM_options_get_int(r->options, "start", 0); - count = ZOOM_options_get_int(r->options, "count", 0); - { - /* If "presentChunk" is defined use that; otherwise "step" */ - const char *cp = ZOOM_options_get(r->options, "presentChunk"); - r->step = ZOOM_options_get_int(r->options, - (cp != 0 ? "presentChunk": "step"), 0); - } - r->piggyback = ZOOM_options_get_bool(r->options, "piggyback", 1); - cp = ZOOM_options_get(r->options, "setname"); - if (cp) - r->setname = xstrdup(cp); - cp = ZOOM_options_get(r->options, "schema"); - if (cp) - r->schema = xstrdup(cp); - - r->databaseNames = set_DatabaseNames(c, c->options, &r->num_databaseNames, - r->odr); - - r->connection = c; - - r->next = c->resultsets; - c->resultsets = r; - - - - if (c->host_port && c->proto == PROTO_HTTP) - { - if (!c->cs) - { - yaz_log(log_details, "ZOOM_connection_search: no comstack"); - ZOOM_connection_add_task(c, ZOOM_TASK_CONNECT); - } - else - { - yaz_log(log_details, "ZOOM_connection_search: reconnect"); - c->reconnect_ok = 1; - } - } - - task = ZOOM_connection_add_task(c, ZOOM_TASK_SEARCH); - task->u.search.resultset = r; - task->u.search.start = start; - task->u.search.count = count; - - syntax = ZOOM_options_get(r->options, "preferredRecordSyntax"); - task->u.search.syntax = syntax ? xstrdup(syntax) : 0; - elementSetName = ZOOM_options_get(r->options, "elementSetName"); - task->u.search.elementSetName = elementSetName - ? xstrdup(elementSetName) : 0; - - ZOOM_resultset_addref(r); - - (q->refcount)++; - - if (!c->async) - { - while (ZOOM_event(1, &c)) - ; - } - return r; -} - -ZOOM_API(void) - ZOOM_resultset_sort(ZOOM_resultset r, - const char *sort_type, const char *sort_spec) -{ - (void) ZOOM_resultset_sort1(r, sort_type, sort_spec); -} - -ZOOM_API(int) - ZOOM_resultset_sort1(ZOOM_resultset r, - const char *sort_type, const char *sort_spec) -{ - ZOOM_connection c = r->connection; - ZOOM_task task; - ZOOM_query newq; - - newq = ZOOM_query_create(); - if (ZOOM_query_sortby(newq, sort_spec) < 0) - return -1; - - yaz_log(log_api, "%p ZOOM_resultset_sort r=%p sort_type=%s sort_spec=%s", - r, r, sort_type, sort_spec); - if (!c) - return 0; - - if (c->host_port && c->proto == PROTO_HTTP) - { - if (!c->cs) - { - yaz_log(log_details, "%p ZOOM_resultset_sort: no comstack", r); - ZOOM_connection_add_task(c, ZOOM_TASK_CONNECT); - } - else - { - yaz_log(log_details, "%p ZOOM_resultset_sort: prepare reconnect", - r); - c->reconnect_ok = 1; - } - } - - ZOOM_resultset_cache_reset(r); - task = ZOOM_connection_add_task(c, ZOOM_TASK_SORT); - task->u.sort.resultset = r; - task->u.sort.q = newq; - - ZOOM_resultset_addref(r); - - if (!c->async) - { - while (ZOOM_event(1, &c)) - ; - } - - return 0; -} - -ZOOM_API(void) - ZOOM_resultset_cache_reset(ZOOM_resultset r) -{ - int i; - for (i = 0; irecord_hash[i]; rc; rc = rc->next) - { - if (rc->rec.wrbuf_marc) - wrbuf_destroy(rc->rec.wrbuf_marc); - if (rc->rec.wrbuf_iconv) - wrbuf_destroy(rc->rec.wrbuf_iconv); - if (rc->rec.wrbuf_opac) - wrbuf_destroy(rc->rec.wrbuf_opac); - } - r->record_hash[i] = 0; - } -} - -ZOOM_API(void) - ZOOM_resultset_destroy(ZOOM_resultset r) -{ - resultset_destroy(r); -} - -static void resultset_destroy(ZOOM_resultset r) -{ - if (!r) - return; - (r->refcount)--; - yaz_log(log_details, "%p ZOOM_resultset_destroy r=%p count=%d", - r, r, r->refcount); - if (r->refcount == 0) - { - ZOOM_resultset_cache_reset(r); - - if (r->connection) - { - /* remove ourselves from the resultsets in connection */ - ZOOM_resultset *rp = &r->connection->resultsets; - while (1) - { - assert(*rp); /* we must be in this list!! */ - if (*rp == r) - { /* OK, we're here - take us out of it */ - *rp = (*rp)->next; - break; - } - rp = &(*rp)->next; - } - } - ZOOM_query_destroy(r->query); - ZOOM_options_destroy(r->options); - odr_destroy(r->odr); - xfree(r->setname); - xfree(r->schema); - xfree(r); - } -} - -ZOOM_API(size_t) - ZOOM_resultset_size(ZOOM_resultset r) -{ - yaz_log(log_details, "ZOOM_resultset_size r=%p count=%d", - r, r->size); - return r->size; -} - -static void do_close(ZOOM_connection c) -{ - if (c->cs) - cs_close(c->cs); - c->cs = 0; - ZOOM_connection_set_mask(c, 0); - c->state = STATE_IDLE; -} - -static int ZOOM_test_reconnect(ZOOM_connection c) -{ - ZOOM_Event event; - - if (!c->reconnect_ok) - return 0; - do_close(c); - c->reconnect_ok = 0; - c->tasks->running = 0; - ZOOM_connection_insert_task(c, ZOOM_TASK_CONNECT); - - event = ZOOM_Event_create(ZOOM_EVENT_CONNECT); - ZOOM_connection_put_event(c, event); - - return 1; -} - -static void ZOOM_resultset_retrieve(ZOOM_resultset r, - int force_sync, int start, int count) -{ - ZOOM_task task; - ZOOM_connection c; - const char *cp; - const char *syntax, *elementSetName; - - if (!r) - return; - yaz_log(log_details, "%p ZOOM_resultset_retrieve force_sync=%d start=%d" - " count=%d", r, force_sync, start, count); - c = r->connection; - if (!c) - return; - - if (c->host_port && c->proto == PROTO_HTTP) - { - if (!c->cs) - { - yaz_log(log_details, "%p ZOOM_resultset_retrieve: no comstack", r); - ZOOM_connection_add_task(c, ZOOM_TASK_CONNECT); - } - else - { - yaz_log(log_details, "%p ZOOM_resultset_retrieve: prepare " - "reconnect", r); - c->reconnect_ok = 1; - } - } - task = ZOOM_connection_add_task(c, ZOOM_TASK_RETRIEVE); - task->u.retrieve.resultset = r; - task->u.retrieve.start = start; - task->u.retrieve.count = count; - - syntax = ZOOM_options_get(r->options, "preferredRecordSyntax"); - task->u.retrieve.syntax = syntax ? xstrdup(syntax) : 0; - elementSetName = ZOOM_options_get(r->options, "elementSetName"); - task->u.retrieve.elementSetName = elementSetName - ? xstrdup(elementSetName) : 0; - - cp = ZOOM_options_get(r->options, "schema"); - if (cp) - { - if (!r->schema || strcmp(r->schema, cp)) - { - xfree(r->schema); - r->schema = xstrdup(cp); - } - } - - ZOOM_resultset_addref(r); - - if (!r->connection->async || force_sync) - while (r->connection && ZOOM_event(1, &r->connection)) - ; -} - -ZOOM_API(void) - ZOOM_resultset_records(ZOOM_resultset r, ZOOM_record *recs, - size_t start, size_t count) -{ - int force_present = 0; - - if (!r) - return ; - yaz_log(log_api, "%p ZOOM_resultset_records r=%p start=%ld count=%ld", - r, r, (long) start, (long) count); - if (count && recs) - force_present = 1; - ZOOM_resultset_retrieve(r, force_present, start, count); - if (force_present) - { - size_t i; - for (i = 0; i< count; i++) - recs[i] = ZOOM_resultset_record_immediate(r, i+start); - } -} - -static void get_cert(ZOOM_connection c) -{ - char *cert_buf; - int cert_len; - - if (cs_get_peer_certificate_x509(c->cs, &cert_buf, &cert_len)) - { - ZOOM_connection_option_setl(c, "sslPeerCert", - cert_buf, cert_len); - xfree(cert_buf); - } -} - -static zoom_ret do_connect(ZOOM_connection c) -{ - void *add; - const char *effective_host; - - if (c->proxy) - effective_host = c->proxy; - else - effective_host = c->host_port; - - yaz_log(log_details, "%p do_connect effective_host=%s", c, effective_host); - - if (c->cs) - cs_close(c->cs); - c->cs = cs_create_host(effective_host, 0, &add); - - if (c->cs && c->cs->protocol == PROTO_HTTP) - { -#if YAZ_HAVE_XML2 - const char *path = 0; - - c->proto = PROTO_HTTP; - cs_get_host_args(c->host_port, &path); - xfree(c->path); - c->path = (char*) xmalloc(strlen(path)+2); - c->path[0] = '/'; - strcpy(c->path+1, path); -#else - set_ZOOM_error(c, ZOOM_ERROR_UNSUPPORTED_PROTOCOL, "SRW"); - do_close(c); - return zoom_complete; -#endif - } - if (c->cs) - { - int ret = cs_connect(c->cs, add); - if (ret == 0) - { - ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_CONNECT); - ZOOM_connection_put_event(c, event); - get_cert(c); - if (c->proto == PROTO_Z3950) - ZOOM_connection_send_init(c); - else - { - /* no init request for SRW .. */ - assert(c->tasks->which == ZOOM_TASK_CONNECT); - ZOOM_connection_remove_task(c); - ZOOM_connection_set_mask(c, 0); - ZOOM_connection_exec_task(c); - } - c->state = STATE_ESTABLISHED; - return zoom_pending; - } - else if (ret > 0) - { - int mask = ZOOM_SELECT_EXCEPT; - if (c->cs->io_pending & CS_WANT_WRITE) - mask += ZOOM_SELECT_WRITE; - if (c->cs->io_pending & CS_WANT_READ) - mask += ZOOM_SELECT_READ; - ZOOM_connection_set_mask(c, mask); - c->state = STATE_CONNECTING; - return zoom_pending; - } - } - c->state = STATE_IDLE; - set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); - return zoom_complete; -} - -static void otherInfo_attach(ZOOM_connection c, Z_APDU *a, ODR out) -{ - int i; - for (i = 0; i<200; i++) - { - size_t len; - Odr_oid *oid; - Z_OtherInformation **oi; - char buf[80]; - const char *val; - const char *cp; - - sprintf(buf, "otherInfo%d", i); - val = ZOOM_options_get(c->options, buf); - if (!val) - break; - cp = strchr(val, ':'); - if (!cp) - continue; - len = cp - val; - if (len >= sizeof(buf)) - len = sizeof(buf)-1; - memcpy(buf, val, len); - buf[len] = '\0'; - - oid = yaz_string_to_oid_odr(yaz_oid_std(), CLASS_USERINFO, - buf, out); - if (!oid) - continue; - - yaz_oi_APDU(a, &oi); - yaz_oi_set_string_oid(oi, out, oid, 1, cp+1); - } -} - -static int encode_APDU(ZOOM_connection c, Z_APDU *a, ODR out) -{ - assert(a); - if (c->cookie_out) - { - Z_OtherInformation **oi; - yaz_oi_APDU(a, &oi); - yaz_oi_set_string_oid(oi, out, yaz_oid_userinfo_cookie, - 1, c->cookie_out); - } - if (c->client_IP) - { - Z_OtherInformation **oi; - yaz_oi_APDU(a, &oi); - yaz_oi_set_string_oid(oi, out, yaz_oid_userinfo_client_ip, - 1, c->client_IP); - } - otherInfo_attach(c, a, out); - if (!z_APDU(out, &a, 0, 0)) - { - FILE *outf = fopen("/tmp/apdu.txt", "a"); - if (a && outf) - { - ODR odr_pr = odr_createmem(ODR_PRINT); - fprintf(outf, "a=%p\n", a); - odr_setprint(odr_pr, outf); - z_APDU(odr_pr, &a, 0, 0); - odr_destroy(odr_pr); - } - yaz_log(log_api, "%p encoding_APDU: encoding failed", c); - set_ZOOM_error(c, ZOOM_ERROR_ENCODE, 0); - odr_reset(out); - return -1; - } - yaz_log(log_details, "%p encoding_APDU encoding OK", c); - return 0; -} - -static zoom_ret send_APDU(ZOOM_connection c, Z_APDU *a) -{ - ZOOM_Event event; - assert(a); - if (encode_APDU(c, a, c->odr_out)) - return zoom_complete; - yaz_log(log_details, "%p send APDU type=%d", c, a->which); - c->buf_out = odr_getbuf(c->odr_out, &c->len_out, 0); - event = ZOOM_Event_create(ZOOM_EVENT_SEND_APDU); - ZOOM_connection_put_event(c, event); - odr_reset(c->odr_out); - return do_write(c); -} - -/* returns 1 if PDU was sent OK (still pending ) - 0 if PDU was not sent OK (nothing to wait for) -*/ - -static zoom_ret ZOOM_connection_send_init(ZOOM_connection c) -{ - Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_initRequest); - Z_InitRequest *ireq = apdu->u.initRequest; - Z_IdAuthentication *auth = (Z_IdAuthentication *) - odr_malloc(c->odr_out, sizeof(*auth)); - char *version; - - ODR_MASK_SET(ireq->options, Z_Options_search); - ODR_MASK_SET(ireq->options, Z_Options_present); - ODR_MASK_SET(ireq->options, Z_Options_scan); - ODR_MASK_SET(ireq->options, Z_Options_sort); - ODR_MASK_SET(ireq->options, Z_Options_extendedServices); - ODR_MASK_SET(ireq->options, Z_Options_namedResultSets); - - ODR_MASK_SET(ireq->protocolVersion, Z_ProtocolVersion_1); - ODR_MASK_SET(ireq->protocolVersion, Z_ProtocolVersion_2); - ODR_MASK_SET(ireq->protocolVersion, Z_ProtocolVersion_3); - - /* Index Data's Z39.50 Implementor Id is 81 */ - ireq->implementationId = - odr_prepend(c->odr_out, - ZOOM_options_get(c->options, "implementationId"), - odr_prepend(c->odr_out, "81", ireq->implementationId)); - - ireq->implementationName = - odr_prepend(c->odr_out, - ZOOM_options_get(c->options, "implementationName"), - odr_prepend(c->odr_out, "ZOOM-C", - ireq->implementationName)); - - version = odr_strdup(c->odr_out, "$Revision: 1.150 $"); - if (strlen(version) > 10) /* check for unexpanded CVS strings */ - version[strlen(version)-2] = '\0'; - ireq->implementationVersion = - odr_prepend(c->odr_out, - ZOOM_options_get(c->options, "implementationVersion"), - odr_prepend(c->odr_out, &version[11], - ireq->implementationVersion)); - - *ireq->maximumRecordSize = c->maximum_record_size; - *ireq->preferredMessageSize = c->preferred_message_size; - - if (c->group || c->password) - { - Z_IdPass *pass = (Z_IdPass *) odr_malloc(c->odr_out, sizeof(*pass)); - pass->groupId = odr_strdup_null(c->odr_out, c->group); - pass->userId = odr_strdup_null(c->odr_out, c->user); - pass->password = odr_strdup_null(c->odr_out, c->password); - auth->which = Z_IdAuthentication_idPass; - auth->u.idPass = pass; - ireq->idAuthentication = auth; - } - else if (c->user) - { - auth->which = Z_IdAuthentication_open; - auth->u.open = odr_strdup(c->odr_out, c->user); - ireq->idAuthentication = auth; - } - if (c->proxy) - { - yaz_oi_set_string_oid(&ireq->otherInfo, c->odr_out, - yaz_oid_userinfo_proxy, 1, c->host_port); - } - if (c->charset || c->lang) - { - Z_OtherInformation **oi; - Z_OtherInformationUnit *oi_unit; - - yaz_oi_APDU(apdu, &oi); - - if ((oi_unit = yaz_oi_update(oi, c->odr_out, NULL, 0, 0))) - { - ODR_MASK_SET(ireq->options, Z_Options_negotiationModel); - oi_unit->which = Z_OtherInfo_externallyDefinedInfo; - oi_unit->information.externallyDefinedInfo = - yaz_set_proposal_charneg_list(c->odr_out, " ", - c->charset, c->lang, 1); - } - } - assert(apdu); - return send_APDU(c, apdu); -} - -#if YAZ_HAVE_XML2 -static zoom_ret send_srw(ZOOM_connection c, Z_SRW_PDU *sr) -{ - Z_GDU *gdu; - ZOOM_Event event; - - gdu = z_get_HTTP_Request_host_path(c->odr_out, c->host_port, c->path); - - if (c->sru_mode == zoom_sru_get) - { - yaz_sru_get_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); - } - else if (c->sru_mode == zoom_sru_post) - { - yaz_sru_post_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); - } - else if (c->sru_mode == zoom_sru_soap) - { - yaz_sru_soap_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset); - } - if (!z_GDU(c->odr_out, &gdu, 0, 0)) - return zoom_complete; - c->buf_out = odr_getbuf(c->odr_out, &c->len_out, 0); - - event = ZOOM_Event_create(ZOOM_EVENT_SEND_APDU); - ZOOM_connection_put_event(c, event); - odr_reset(c->odr_out); - return do_write(c); -} -#endif - - -static Z_SRW_PDU *ZOOM_srw_get_pdu(ZOOM_connection c, int type) { - Z_SRW_PDU *sr = yaz_srw_get_pdu(c->odr_out, type, c->sru_version); - sr->username = c->user; - sr->password = c->password; - return sr; -} - - -#if YAZ_HAVE_XML2 -static zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c) -{ - int i; - int *start, *count; - ZOOM_resultset resultset = 0; - Z_SRW_PDU *sr = 0; - const char *option_val = 0; - - if (c->error) /* don't continue on error */ - return zoom_complete; - assert(c->tasks); - switch(c->tasks->which) - { - case ZOOM_TASK_SEARCH: - resultset = c->tasks->u.search.resultset; - resultset->setname = xstrdup("default"); - ZOOM_options_set(resultset->options, "setname", resultset->setname); - start = &c->tasks->u.search.start; - count = &c->tasks->u.search.count; - break; - case ZOOM_TASK_RETRIEVE: - resultset = c->tasks->u.retrieve.resultset; - - start = &c->tasks->u.retrieve.start; - count = &c->tasks->u.retrieve.count; - - if (*start >= resultset->size) - return zoom_complete; - if (*start + *count > resultset->size) - *count = resultset->size - *start; - - for (i = 0; i < *count; i++) - { - ZOOM_record rec = - record_cache_lookup(resultset, i + *start, - c->tasks->u.retrieve.syntax, - c->tasks->u.retrieve.elementSetName); - if (!rec) - break; - else - { - ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_RECV_RECORD); - ZOOM_connection_put_event(c, event); - } - } - *start += i; - *count -= i; - - if (*count == 0) - return zoom_complete; - break; - default: - return zoom_complete; - } - assert(resultset->query); - - sr = ZOOM_srw_get_pdu(c, Z_SRW_searchRetrieve_request); - if (resultset->query->z_query->which == Z_Query_type_104 - && resultset->query->z_query->u.type_104->which == Z_External_CQL) - { - sr->u.request->query_type = Z_SRW_query_type_cql; - sr->u.request->query.cql =resultset->query->z_query->u.type_104->u.cql; - } - else if (resultset->query->z_query->which == Z_Query_type_1 && - resultset->query->z_query->u.type_1) - { - sr->u.request->query_type = Z_SRW_query_type_pqf; - sr->u.request->query.pqf = resultset->query->query_string; - } - else - { - set_ZOOM_error(c, ZOOM_ERROR_UNSUPPORTED_QUERY, 0); - return zoom_complete; - } - sr->u.request->startRecord = odr_intdup(c->odr_out, *start + 1); - sr->u.request->maximumRecords = odr_intdup( - c->odr_out, resultset->step>0 ? resultset->step : *count); - sr->u.request->recordSchema = resultset->schema; - - option_val = ZOOM_resultset_option_get(resultset, "recordPacking"); - if (option_val) - sr->u.request->recordPacking = odr_strdup(c->odr_out, option_val); - - option_val = ZOOM_resultset_option_get(resultset, "extraArgs"); - if (option_val) - sr->extra_args = odr_strdup(c->odr_out, option_val); - return send_srw(c, sr); -} -#else -static zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c) -{ - return zoom_complete; -} -#endif - -static zoom_ret ZOOM_connection_send_search(ZOOM_connection c) -{ - ZOOM_resultset r; - int lslb, ssub, mspn; - const char *syntax; - Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_searchRequest); - Z_SearchRequest *search_req = apdu->u.searchRequest; - const char *elementSetName; - const char *smallSetElementSetName; - const char *mediumSetElementSetName; - - assert(c->tasks); - assert(c->tasks->which == ZOOM_TASK_SEARCH); - - r = c->tasks->u.search.resultset; - - yaz_log(log_details, "%p ZOOM_connection_send_search set=%p", c, r); - - elementSetName = - ZOOM_options_get(r->options, "elementSetName"); - smallSetElementSetName = - ZOOM_options_get(r->options, "smallSetElementSetName"); - mediumSetElementSetName = - ZOOM_options_get(r->options, "mediumSetElementSetName"); - - if (!smallSetElementSetName) - smallSetElementSetName = elementSetName; - - if (!mediumSetElementSetName) - mediumSetElementSetName = elementSetName; - - assert(r); - assert(r->query); - - /* prepare query for the search request */ - search_req->query = r->query->z_query; - if (!search_req->query) - { - set_ZOOM_error(c, ZOOM_ERROR_INVALID_QUERY, 0); - return zoom_complete; - } - if (r->query->z_query->which == Z_Query_type_1 || - r->query->z_query->which == Z_Query_type_101) - { - const char *cp = ZOOM_options_get(r->options, "rpnCharset"); - if (cp) - { - yaz_iconv_t cd = yaz_iconv_open(cp, "UTF-8"); - if (cd) - { - search_req->query = yaz_copy_Z_Query(search_req->query, - c->odr_out); - - yaz_query_charset_convert_rpnquery(search_req->query->u.type_1, - c->odr_out, cd); - yaz_iconv_close(cd); - } - } - } - search_req->databaseNames = r->databaseNames; - search_req->num_databaseNames = r->num_databaseNames; - - /* get syntax (no need to provide unless piggyback is in effect) */ - syntax = c->tasks->u.search.syntax; - - lslb = ZOOM_options_get_int(r->options, "largeSetLowerBound", -1); - ssub = ZOOM_options_get_int(r->options, "smallSetUpperBound", -1); - mspn = ZOOM_options_get_int(r->options, "mediumSetPresentNumber", -1); - if (lslb != -1 && ssub != -1 && mspn != -1) - { - /* So're a Z39.50 expert? Let's hope you don't do sort */ - *search_req->largeSetLowerBound = lslb; - *search_req->smallSetUpperBound = ssub; - *search_req->mediumSetPresentNumber = mspn; - } - else if (c->tasks->u.search.start == 0 && c->tasks->u.search.count > 0 - && r->piggyback && !r->r_sort_spec && !r->schema) - { - /* Regular piggyback - do it unless we're going to do sort */ - *search_req->largeSetLowerBound = 2000000000; - *search_req->smallSetUpperBound = 1; - *search_req->mediumSetPresentNumber = - r->step>0 ? r->step : c->tasks->u.search.count; - } - else - { - /* non-piggyback. Need not provide elementsets or syntaxes .. */ - smallSetElementSetName = 0; - mediumSetElementSetName = 0; - syntax = 0; - } - if (smallSetElementSetName && *smallSetElementSetName) - { - Z_ElementSetNames *esn = (Z_ElementSetNames *) - odr_malloc(c->odr_out, sizeof(*esn)); - - esn->which = Z_ElementSetNames_generic; - esn->u.generic = odr_strdup(c->odr_out, smallSetElementSetName); - search_req->smallSetElementSetNames = esn; - } - if (mediumSetElementSetName && *mediumSetElementSetName) - { - Z_ElementSetNames *esn =(Z_ElementSetNames *) - odr_malloc(c->odr_out, sizeof(*esn)); - - esn->which = Z_ElementSetNames_generic; - esn->u.generic = odr_strdup(c->odr_out, mediumSetElementSetName); - search_req->mediumSetElementSetNames = esn; - } - if (syntax) - search_req->preferredRecordSyntax = - zoom_yaz_str_to_z3950oid(c, CLASS_RECSYN, syntax); - - if (!r->setname) - { - if (c->support_named_resultsets) - { - char setname[14]; - int ord; - /* find the lowest unused ordinal so that we re-use - result sets on the server. */ - for (ord = 1; ; ord++) - { - ZOOM_resultset rp; - sprintf(setname, "%d", ord); - for (rp = c->resultsets; rp; rp = rp->next) - if (rp->setname && !strcmp(rp->setname, setname)) - break; - if (!rp) - break; - } - r->setname = xstrdup(setname); - yaz_log(log_details, "%p ZOOM_connection_send_search: allocating " - "set %s", c, r->setname); - } - else - { - yaz_log(log_details, "%p ZOOM_connection_send_search: using " - "default set", c); - r->setname = xstrdup("default"); - } - ZOOM_options_set(r->options, "setname", r->setname); - } - search_req->resultSetName = odr_strdup(c->odr_out, r->setname); - return send_APDU(c, apdu); -} - -static void response_default_diag(ZOOM_connection c, Z_DefaultDiagFormat *r) -{ - char oid_name_buf[OID_STR_MAX]; - const char *oid_name; - char *addinfo = 0; - - oid_name = yaz_oid_to_string_buf(r->diagnosticSetId, 0, oid_name_buf); - switch (r->which) - { - case Z_DefaultDiagFormat_v2Addinfo: - addinfo = r->u.v2Addinfo; - break; - case Z_DefaultDiagFormat_v3Addinfo: - addinfo = r->u.v3Addinfo; - break; - } - xfree(c->addinfo); - c->addinfo = 0; - set_dset_error(c, *r->condition, oid_name, addinfo, 0); -} - -static void response_diag(ZOOM_connection c, Z_DiagRec *p) -{ - if (p->which != Z_DiagRec_defaultFormat) - set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); - else - response_default_diag(c, p->u.defaultFormat); -} - -ZOOM_API(ZOOM_record) - ZOOM_record_clone(ZOOM_record srec) -{ - char *buf; - int size; - ODR odr_enc; - ZOOM_record nrec; - - odr_enc = odr_createmem(ODR_ENCODE); - if (!z_NamePlusRecord(odr_enc, &srec->npr, 0, 0)) - return 0; - buf = odr_getbuf(odr_enc, &size, 0); - - nrec = (ZOOM_record) xmalloc(sizeof(*nrec)); - nrec->odr = odr_createmem(ODR_DECODE); - nrec->wrbuf_marc = 0; - nrec->wrbuf_iconv = 0; - nrec->wrbuf_opac = 0; - odr_setbuf(nrec->odr, buf, size, 0); - z_NamePlusRecord(nrec->odr, &nrec->npr, 0, 0); - - nrec->schema = odr_strdup_null(nrec->odr, srec->schema); - nrec->diag_uri = odr_strdup_null(nrec->odr, srec->diag_uri); - nrec->diag_message = odr_strdup_null(nrec->odr, srec->diag_message); - nrec->diag_details = odr_strdup_null(nrec->odr, srec->diag_details); - nrec->diag_set = odr_strdup_null(nrec->odr, srec->diag_set); - odr_destroy(odr_enc); - return nrec; -} - -ZOOM_API(ZOOM_record) - ZOOM_resultset_record_immediate(ZOOM_resultset s,size_t pos) -{ - const char *syntax = - ZOOM_options_get(s->options, "preferredRecordSyntax"); - const char *elementSetName = - ZOOM_options_get(s->options, "elementSetName"); - - return record_cache_lookup(s, pos, syntax, elementSetName); -} - -ZOOM_API(ZOOM_record) - ZOOM_resultset_record(ZOOM_resultset r, size_t pos) -{ - ZOOM_record rec = ZOOM_resultset_record_immediate(r, pos); - - if (!rec) - { - /* - * MIKE: I think force_sync should always be zero, but I don't - * want to make this change until I get the go-ahead from - * Adam, in case something depends on the old synchronous - * behaviour. - */ - int force_sync = 1; - if (getenv("ZOOM_RECORD_NO_FORCE_SYNC")) force_sync = 0; - ZOOM_resultset_retrieve(r, force_sync, pos, 1); - rec = ZOOM_resultset_record_immediate(r, pos); - } - return rec; -} - -ZOOM_API(void) - ZOOM_record_destroy(ZOOM_record rec) -{ - if (!rec) - return; - if (rec->wrbuf_marc) - wrbuf_destroy(rec->wrbuf_marc); - if (rec->wrbuf_iconv) - wrbuf_destroy(rec->wrbuf_iconv); - if (rec->wrbuf_opac) - wrbuf_destroy(rec->wrbuf_opac); - odr_destroy(rec->odr); - xfree(rec); -} - -static const char *marc_iconv_return(ZOOM_record rec, int marc_type, - int *len, - const char *buf, int sz, - const char *record_charset) -{ - char to[40]; - char from[40]; - yaz_iconv_t cd = 0; - yaz_marc_t mt = yaz_marc_create(); - - *from = '\0'; - strcpy(to, "UTF-8"); - if (record_charset && *record_charset) - { - /* Use "from,to" or just "from" */ - const char *cp = strchr(record_charset, ','); - int clen = strlen(record_charset); - if (cp && cp[1]) - { - strncpy( to, cp+1, sizeof(to)-1); - to[sizeof(to)-1] = '\0'; - clen = cp - record_charset; - } - if (clen > sizeof(from)-1) - clen = sizeof(from)-1; - - if (clen) - strncpy(from, record_charset, clen); - from[clen] = '\0'; - } - - if (*from && *to) - { - cd = yaz_iconv_open(to, from); - yaz_marc_iconv(mt, cd); - } - - yaz_marc_xml(mt, marc_type); - if (!rec->wrbuf_marc) - rec->wrbuf_marc = wrbuf_alloc(); - wrbuf_rewind(rec->wrbuf_marc); - if (yaz_marc_decode_wrbuf(mt, buf, sz, rec->wrbuf_marc) > 0) - { - yaz_marc_destroy(mt); - if (cd) - yaz_iconv_close(cd); - if (len) - *len = wrbuf_len(rec->wrbuf_marc); - return wrbuf_cstr(rec->wrbuf_marc); - } - yaz_marc_destroy(mt); - if (cd) - yaz_iconv_close(cd); - return 0; -} - -static const char *record_iconv_return(ZOOM_record rec, int *len, - const char *buf, int sz, - const char *record_charset) -{ - char to[40]; - char from[40]; - yaz_iconv_t cd = 0; - - *from = '\0'; - strcpy(to, "UTF-8"); - - if (record_charset && *record_charset) - { - /* Use "from,to" or just "from" */ - const char *cp = strchr(record_charset, ','); - int clen = strlen(record_charset); - if (cp && cp[1]) - { - strncpy( to, cp+1, sizeof(to)-1); - to[sizeof(to)-1] = '\0'; - clen = cp - record_charset; - } - if (clen > sizeof(from)-1) - clen = sizeof(from)-1; - - if (clen) - strncpy(from, record_charset, clen); - from[clen] = '\0'; - } - - if (*from && *to && (cd = yaz_iconv_open(to, from))) - { - if (!rec->wrbuf_iconv) - rec->wrbuf_iconv = wrbuf_alloc(); - - wrbuf_rewind(rec->wrbuf_iconv); - - wrbuf_iconv_write(rec->wrbuf_iconv, cd, buf, sz); - wrbuf_iconv_reset(rec->wrbuf_iconv, cd); - - buf = wrbuf_cstr(rec->wrbuf_iconv); - sz = wrbuf_len(rec->wrbuf_iconv); - yaz_iconv_close(cd); - } - if (len) - *len = sz; - return buf; -} - - -ZOOM_API(int) - ZOOM_record_error(ZOOM_record rec, const char **cp, - const char **addinfo, const char **diagset) -{ - Z_NamePlusRecord *npr; - - if (!rec) - return 0; - - npr = rec->npr; - if (rec->diag_uri) - { - if (cp) - *cp = rec->diag_message; - if (addinfo) - *addinfo = rec->diag_details; - if (diagset) - *diagset = rec->diag_set; - return uri_to_code(rec->diag_uri); - } - if (npr && npr->which == Z_NamePlusRecord_surrogateDiagnostic) - { - Z_DiagRec *diag_rec = npr->u.surrogateDiagnostic; - int error = YAZ_BIB1_UNSPECIFIED_ERROR; - const char *add = 0; - - if (diag_rec->which == Z_DiagRec_defaultFormat) - { - Z_DefaultDiagFormat *ddf = diag_rec->u.defaultFormat; - oid_class oclass; - - error = *ddf->condition; - switch (ddf->which) - { - case Z_DefaultDiagFormat_v2Addinfo: - add = ddf->u.v2Addinfo; - break; - case Z_DefaultDiagFormat_v3Addinfo: - add = ddf->u.v3Addinfo; - break; - } - if (diagset) - *diagset = - yaz_oid_to_string(yaz_oid_std(), - ddf->diagnosticSetId, &oclass); - } - else - { - if (diagset) - *diagset = "Bib-1"; - } - if (addinfo) - *addinfo = add ? add : ""; - if (cp) - *cp = diagbib1_str(error); - return error; - } - return 0; -} - -ZOOM_API(const char *) - ZOOM_record_get(ZOOM_record rec, const char *type_spec, int *len) -{ - char type[40]; - char charset[40]; - char xpath[512]; - const char *cp; - int i; - Z_NamePlusRecord *npr; - - if (len) - *len = 0; /* default return */ - - if (!rec) - return 0; - npr = rec->npr; - if (!npr) - return 0; - - cp = type_spec; - for (i = 0; cp[i] && i < sizeof(type)-1; i++) - { - if (cp[i] == ';' || cp[i] == ' ') - break; - type[i] = cp[i]; - } - type[i] = '\0'; - charset[0] = '\0'; - while (type_spec[i] == ';') - { - i++; - while (type_spec[i] == ' ') - i++; - if (!strncmp(type_spec+i, "charset=", 8)) - { - int j = 0; - i = i + 8; /* skip charset= */ - for (j = 0; type_spec[i] && j < sizeof(charset)-1; i++, j++) - { - if (type_spec[i] == ';' || type_spec[i] == ' ') - break; - charset[j] = cp[i]; - } - charset[j] = '\0'; - } - else if (!strncmp(type_spec+i, "xpath=", 6)) - { - int j = 0; - i = i + 6; - for (j = 0; type_spec[i] && j < sizeof(xpath)-1; i++, j++) - xpath[j] = cp[i]; - xpath[j] = '\0'; - } - while (type_spec[i] == ' ') - i++; - } - if (!strcmp(type, "database")) - { - if (len) - *len = (npr->databaseName ? strlen(npr->databaseName) : 0); - return npr->databaseName; - } - else if (!strcmp(type, "schema")) - { - if (len) - *len = rec->schema ? strlen(rec->schema) : 0; - return rec->schema; - } - else if (!strcmp(type, "syntax")) - { - const char *desc = 0; - if (npr->which == Z_NamePlusRecord_databaseRecord) - { - Z_External *r = (Z_External *) npr->u.databaseRecord; - desc = yaz_oid_to_string(yaz_oid_std(), r->direct_reference, 0); - } - if (!desc) - desc = "none"; - if (len) - *len = strlen(desc); - return desc; - } - if (npr->which != Z_NamePlusRecord_databaseRecord) - return 0; - - /* from now on - we have a database record .. */ - if (!strcmp(type, "render")) - { - Z_External *r = (Z_External *) npr->u.databaseRecord; - const Odr_oid *oid = r->direct_reference; - - /* render bibliographic record .. */ - if (r->which == Z_External_OPAC) - { - r = r->u.opac->bibliographicRecord; - if (!r) - return 0; - oid = r->direct_reference; - } - if (r->which == Z_External_sutrs) - return record_iconv_return(rec, len, - (char*) r->u.sutrs->buf, - r->u.sutrs->len, - charset); - else if (r->which == Z_External_octet) - { - if (yaz_oid_is_iso2709(oid)) - { - const char *ret_buf = marc_iconv_return( - rec, YAZ_MARC_LINE, len, - (const char *) r->u.octet_aligned->buf, - r->u.octet_aligned->len, - charset); - if (ret_buf) - return ret_buf; - } - return record_iconv_return(rec, len, - (const char *) r->u.octet_aligned->buf, - r->u.octet_aligned->len, - charset); - } - else if (r->which == Z_External_grs1) - { - if (!rec->wrbuf_marc) - rec->wrbuf_marc = wrbuf_alloc(); - wrbuf_rewind(rec->wrbuf_marc); - yaz_display_grs1(rec->wrbuf_marc, r->u.grs1, 0); - return record_iconv_return(rec, len, - wrbuf_buf(rec->wrbuf_marc), - wrbuf_len(rec->wrbuf_marc), - charset); - } - return 0; - } - else if (!strcmp(type, "xml")) - { - Z_External *r = (Z_External *) npr->u.databaseRecord; - const Odr_oid *oid = r->direct_reference; - - /* render bibliographic record .. */ - if (r->which == Z_External_OPAC) - { - r = r->u.opac->bibliographicRecord; - if (!r) - return 0; - oid = r->direct_reference; - } - - if (r->which == Z_External_sutrs) - return record_iconv_return(rec, len, - (const char *) r->u.sutrs->buf, - r->u.sutrs->len, - charset); - else if (r->which == Z_External_octet) - { - int marc_decode_type = YAZ_MARC_MARCXML; - if (yaz_oid_is_iso2709(oid)) - { - const char *ret_buf = marc_iconv_return( - rec, marc_decode_type, len, - (const char *) r->u.octet_aligned->buf, - r->u.octet_aligned->len, - charset); - if (ret_buf) - return ret_buf; - } - return record_iconv_return(rec, len, - (const char *) r->u.octet_aligned->buf, - r->u.octet_aligned->len, - charset); - } - else if (r->which == Z_External_grs1) - { - if (len) *len = 5; - return "GRS-1"; - } - return 0; - } - else if (!strcmp(type, "raw")) - { - Z_External *r = (Z_External *) npr->u.databaseRecord; - - if (r->which == Z_External_sutrs) - { - if (len) *len = r->u.sutrs->len; - return (const char *) r->u.sutrs->buf; - } - else if (r->which == Z_External_octet) - { - if (len) *len = r->u.octet_aligned->len; - return (const char *) r->u.octet_aligned->buf; - } - else /* grs-1, explain, OPAC, ... */ - { - if (len) *len = -1; - return (const char *) npr->u.databaseRecord; - } - return 0; - } - else if (!strcmp (type, "ext")) - { - if (len) *len = -1; - return (const char *) npr->u.databaseRecord; - } - else if (!strcmp (type, "opac")) - - { - Z_External *r = (Z_External *) npr->u.databaseRecord; - if (r->which == Z_External_OPAC) - { - if (!rec->wrbuf_opac) - rec->wrbuf_opac = wrbuf_alloc(); - wrbuf_rewind(rec->wrbuf_opac); - yaz_display_OPAC(rec->wrbuf_opac, r->u.opac, 0); - return record_iconv_return(rec, len, - wrbuf_buf(rec->wrbuf_opac), - wrbuf_len(rec->wrbuf_opac), - charset); - } - } - return 0; -} - -static int strcmp_null(const char *v1, const char *v2) -{ - if (!v1 && !v2) - return 0; - if (!v1 || !v2) - return -1; - return strcmp(v1, v2); -} - -static size_t record_hash(int pos) -{ - if (pos < 0) - pos = 0; - return pos % RECORD_HASH_SIZE; -} - -static void record_cache_add(ZOOM_resultset r, Z_NamePlusRecord *npr, - int pos, - const char *syntax, const char *elementSetName, - const char *schema, - Z_SRW_diagnostic *diag) -{ - ZOOM_record_cache rc = 0; - - ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_RECV_RECORD); - ZOOM_connection_put_event(r->connection, event); - - for (rc = r->record_hash[record_hash(pos)]; rc; rc = rc->next) - { - if (pos == rc->pos - && strcmp_null(r->schema, rc->schema) == 0 - && strcmp_null(elementSetName,rc->elementSetName) == 0 - && strcmp_null(syntax, rc->syntax) == 0) - break; - } - if (!rc) - { - rc = (ZOOM_record_cache) odr_malloc(r->odr, sizeof(*rc)); - rc->rec.odr = 0; - rc->rec.wrbuf_marc = 0; - rc->rec.wrbuf_iconv = 0; - rc->rec.wrbuf_opac = 0; - rc->elementSetName = odr_strdup_null(r->odr, elementSetName); - - rc->syntax = odr_strdup_null(r->odr, syntax); - - rc->schema = odr_strdup_null(r->odr, r->schema); - - rc->pos = pos; - rc->next = r->record_hash[record_hash(pos)]; - r->record_hash[record_hash(pos)] = rc; - } - rc->rec.npr = npr; - rc->rec.schema = odr_strdup_null(r->odr, schema); - rc->rec.diag_set = 0; - rc->rec.diag_uri = 0; - rc->rec.diag_message = 0; - rc->rec.diag_details = 0; - if (diag) - { - if (diag->uri) - { - char *cp; - rc->rec.diag_set = odr_strdup(r->odr, diag->uri); - if ((cp = strrchr(rc->rec.diag_set, '/'))) - *cp = '\0'; - rc->rec.diag_uri = odr_strdup(r->odr, diag->uri); - } - rc->rec.diag_message = odr_strdup_null(r->odr, diag->message); - rc->rec.diag_details = odr_strdup_null(r->odr, diag->details); - } -} - -static ZOOM_record record_cache_lookup(ZOOM_resultset r, int pos, - const char *syntax, - const char *elementSetName) -{ - ZOOM_record_cache rc; - - for (rc = r->record_hash[record_hash(pos)]; rc; rc = rc->next) - { - if (pos == rc->pos) - { - if (strcmp_null(r->schema, rc->schema)) - continue; - if (strcmp_null(elementSetName,rc->elementSetName)) - continue; - if (strcmp_null(syntax, rc->syntax)) - continue; - return &rc->rec; - } - } - return 0; -} - -static void handle_records(ZOOM_connection c, Z_Records *sr, - int present_phase) -{ - ZOOM_resultset resultset; - int *start, *count; - const char *syntax = 0, *elementSetName = 0; - - if (!c->tasks) - return ; - switch (c->tasks->which) - { - case ZOOM_TASK_SEARCH: - resultset = c->tasks->u.search.resultset; - start = &c->tasks->u.search.start; - count = &c->tasks->u.search.count; - syntax = c->tasks->u.search.syntax; - elementSetName = c->tasks->u.search.elementSetName; - break; - case ZOOM_TASK_RETRIEVE: - resultset = c->tasks->u.retrieve.resultset; - start = &c->tasks->u.retrieve.start; - count = &c->tasks->u.retrieve.count; - syntax = c->tasks->u.retrieve.syntax; - elementSetName = c->tasks->u.retrieve.elementSetName; - break; - default: - return; - } - if (sr && sr->which == Z_Records_NSD) - response_default_diag(c, sr->u.nonSurrogateDiagnostic); - else if (sr && sr->which == Z_Records_multipleNSD) - { - if (sr->u.multipleNonSurDiagnostics->num_diagRecs >= 1) - response_diag(c, sr->u.multipleNonSurDiagnostics->diagRecs[0]); - else - set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); - } - else - { - if (*count + *start > resultset->size) - *count = resultset->size - *start; - if (*count < 0) - *count = 0; - if (sr && sr->which == Z_Records_DBOSD) - { - int i; - NMEM nmem = odr_extract_mem(c->odr_in); - Z_NamePlusRecordList *p = - sr->u.databaseOrSurDiagnostics; - for (i = 0; inum_records; i++) - { - record_cache_add(resultset, p->records[i], i + *start, - syntax, elementSetName, - elementSetName, 0); - } - *count -= i; - if (*count < 0) - *count = 0; - *start += i; - yaz_log(log_details, - "handle_records resultset=%p start=%d count=%d", - resultset, *start, *count); - - /* transfer our response to search_nmem .. we need it later */ - nmem_transfer(odr_getmem(resultset->odr), nmem); - nmem_destroy(nmem); - if (present_phase && p->num_records == 0) - { - /* present response and we didn't get any records! */ - Z_NamePlusRecord *myrec = - zget_surrogateDiagRec(resultset->odr, 0, 14, 0); - record_cache_add(resultset, myrec, *start, - syntax, elementSetName, 0, 0); - } - } - else if (present_phase) - { - /* present response and we didn't get any records! */ - Z_NamePlusRecord *myrec = - zget_surrogateDiagRec(resultset->odr, 0, 14, 0); - record_cache_add(resultset, myrec, *start, syntax, elementSetName, - 0, 0); - } - } -} - -static void handle_present_response(ZOOM_connection c, Z_PresentResponse *pr) -{ - handle_records(c, pr->records, 1); -} - -static void handle_queryExpressionTerm(ZOOM_options opt, const char *name, - Z_Term *term) -{ - switch (term->which) - { - case Z_Term_general: - ZOOM_options_setl(opt, name, - (const char *)(term->u.general->buf), - term->u.general->len); - break; - case Z_Term_characterString: - ZOOM_options_set(opt, name, term->u.characterString); - break; - case Z_Term_numeric: - ZOOM_options_set_int(opt, name, *term->u.numeric); - break; - } -} - -static void handle_queryExpression(ZOOM_options opt, const char *name, - Z_QueryExpression *exp) -{ - char opt_name[80]; - - switch (exp->which) - { - case Z_QueryExpression_term: - if (exp->u.term && exp->u.term->queryTerm) - { - sprintf(opt_name, "%s.term", name); - handle_queryExpressionTerm(opt, opt_name, exp->u.term->queryTerm); - } - break; - case Z_QueryExpression_query: - break; - } -} - -static void handle_searchResult(ZOOM_connection c, ZOOM_resultset resultset, - Z_OtherInformation *o) -{ - int i; - for (i = 0; o && i < o->num_elements; i++) - { - if (o->list[i]->which == Z_OtherInfo_externallyDefinedInfo) - { - Z_External *ext = o->list[i]->information.externallyDefinedInfo; - - if (ext->which == Z_External_searchResult1) - { - int j; - Z_SearchInfoReport *sr = ext->u.searchResult1; - - if (sr->num) - ZOOM_options_set_int( - resultset->options, "searchresult.size", sr->num); - - for (j = 0; j < sr->num; j++) - { - Z_SearchInfoReport_s *ent = - ext->u.searchResult1->elements[j]; - char pref[80]; - - sprintf(pref, "searchresult.%d", j); - - if (ent->subqueryId) - { - char opt_name[80]; - sprintf(opt_name, "%s.id", pref); - ZOOM_options_set(resultset->options, opt_name, - ent->subqueryId); - } - if (ent->subqueryExpression) - { - char opt_name[80]; - sprintf(opt_name, "%s.subquery", pref); - handle_queryExpression(resultset->options, opt_name, - ent->subqueryExpression); - } - if (ent->subqueryInterpretation) - { - char opt_name[80]; - sprintf(opt_name, "%s.interpretation", pref); - handle_queryExpression(resultset->options, opt_name, - ent->subqueryInterpretation); - } - if (ent->subqueryRecommendation) - { - char opt_name[80]; - sprintf(opt_name, "%s.recommendation", pref); - handle_queryExpression(resultset->options, opt_name, - ent->subqueryRecommendation); - } - if (ent->subqueryCount) - { - char opt_name[80]; - sprintf(opt_name, "%s.count", pref); - ZOOM_options_set_int(resultset->options, opt_name, - *ent->subqueryCount); - } - } - } - } - } -} - -static void handle_search_response(ZOOM_connection c, Z_SearchResponse *sr) -{ - ZOOM_resultset resultset; - ZOOM_Event event; - - if (!c->tasks || c->tasks->which != ZOOM_TASK_SEARCH) - return ; - - event = ZOOM_Event_create(ZOOM_EVENT_RECV_SEARCH); - ZOOM_connection_put_event(c, event); - - resultset = c->tasks->u.search.resultset; - - if (sr->resultSetStatus) - { - ZOOM_options_set_int(resultset->options, "resultSetStatus", - *sr->resultSetStatus); - } - if (sr->presentStatus) - { - ZOOM_options_set_int(resultset->options, "presentStatus", - *sr->presentStatus); - } - handle_searchResult(c, resultset, sr->additionalSearchInfo); - - resultset->size = *sr->resultCount; - handle_records(c, sr->records, 0); -} - -static void sort_response(ZOOM_connection c, Z_SortResponse *res) -{ - if (res->diagnostics && res->num_diagnostics > 0) - response_diag(c, res->diagnostics[0]); -} - -static int scan_response(ZOOM_connection c, Z_ScanResponse *res) -{ - NMEM nmem = odr_extract_mem(c->odr_in); - ZOOM_scanset scan; - - if (!c->tasks || c->tasks->which != ZOOM_TASK_SCAN) - return 0; - scan = c->tasks->u.scan.scan; - - if (res->entries && res->entries->nonsurrogateDiagnostics) - response_diag(c, res->entries->nonsurrogateDiagnostics[0]); - scan->scan_response = res; - scan->srw_scan_response = 0; - nmem_transfer(odr_getmem(scan->odr), nmem); - if (res->stepSize) - ZOOM_options_set_int(scan->options, "stepSize", *res->stepSize); - if (res->positionOfTerm) - ZOOM_options_set_int(scan->options, "position", *res->positionOfTerm); - if (res->scanStatus) - ZOOM_options_set_int(scan->options, "scanStatus", *res->scanStatus); - if (res->numberOfEntriesReturned) - ZOOM_options_set_int(scan->options, "number", - *res->numberOfEntriesReturned); - nmem_destroy(nmem); - return 1; -} - -static zoom_ret send_sort(ZOOM_connection c, - ZOOM_resultset resultset) -{ - if (c->error) - resultset->r_sort_spec = 0; - if (resultset->r_sort_spec) - { - Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_sortRequest); - Z_SortRequest *req = apdu->u.sortRequest; - - req->num_inputResultSetNames = 1; - req->inputResultSetNames = (Z_InternationalString **) - odr_malloc(c->odr_out, sizeof(*req->inputResultSetNames)); - req->inputResultSetNames[0] = - odr_strdup(c->odr_out, resultset->setname); - req->sortedResultSetName = odr_strdup(c->odr_out, resultset->setname); - req->sortSequence = resultset->r_sort_spec; - resultset->r_sort_spec = 0; - return send_APDU(c, apdu); - } - return zoom_complete; -} - -static zoom_ret send_present(ZOOM_connection c) -{ - Z_APDU *apdu = 0; - Z_PresentRequest *req = 0; - int i = 0; - const char *syntax = 0; - const char *elementSetName = 0; - ZOOM_resultset resultset; - int *start, *count; - - if (!c->tasks) - { - yaz_log(log_details, "%p send_present no tasks", c); - return zoom_complete; - } - - switch (c->tasks->which) - { - case ZOOM_TASK_SEARCH: - resultset = c->tasks->u.search.resultset; - start = &c->tasks->u.search.start; - count = &c->tasks->u.search.count; - syntax = c->tasks->u.search.syntax; - elementSetName = c->tasks->u.search.elementSetName; - break; - case ZOOM_TASK_RETRIEVE: - resultset = c->tasks->u.retrieve.resultset; - start = &c->tasks->u.retrieve.start; - count = &c->tasks->u.retrieve.count; - syntax = c->tasks->u.retrieve.syntax; - elementSetName = c->tasks->u.retrieve.elementSetName; - break; - default: - return zoom_complete; - } - yaz_log(log_details, "%p send_present start=%d count=%d", - c, *start, *count); - - if (*start < 0 || *count < 0 || *start + *count > resultset->size) - { - set_dset_error(c, YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE, "Bib-1", - "", 0); - } - if (c->error) /* don't continue on error */ - return zoom_complete; - yaz_log(log_details, "send_present resultset=%p start=%d count=%d", - resultset, *start, *count); - - for (i = 0; i < *count; i++) - { - ZOOM_record rec = - record_cache_lookup(resultset, i + *start, syntax, elementSetName); - if (!rec) - break; - else - { - ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_RECV_RECORD); - ZOOM_connection_put_event(c, event); - } - } - *start += i; - *count -= i; - - if (*count == 0) - { - yaz_log(log_details, "%p send_present skip=%d no more to fetch", c, i); - return zoom_complete; - } - - apdu = zget_APDU(c->odr_out, Z_APDU_presentRequest); - req = apdu->u.presentRequest; - - if (i) - yaz_log(log_details, "%p send_present skip=%d", c, i); - - *req->resultSetStartPoint = *start + 1; - *req->numberOfRecordsRequested = resultset->step>0 ? - resultset->step : *count; - if (*req->numberOfRecordsRequested + *start > resultset->size) - *req->numberOfRecordsRequested = resultset->size - *start; - assert(*req->numberOfRecordsRequested > 0); - - if (syntax && *syntax) - req->preferredRecordSyntax = - zoom_yaz_str_to_z3950oid(c, CLASS_RECSYN, syntax); - - if (resultset->schema && *resultset->schema) - { - Z_RecordComposition *compo = (Z_RecordComposition *) - odr_malloc(c->odr_out, sizeof(*compo)); - - req->recordComposition = compo; - compo->which = Z_RecordComp_complex; - compo->u.complex = (Z_CompSpec *) - odr_malloc(c->odr_out, sizeof(*compo->u.complex)); - compo->u.complex->selectAlternativeSyntax = (bool_t *) - odr_malloc(c->odr_out, sizeof(bool_t)); - *compo->u.complex->selectAlternativeSyntax = 0; - - compo->u.complex->generic = (Z_Specification *) - odr_malloc(c->odr_out, sizeof(*compo->u.complex->generic)); - - compo->u.complex->generic->which = Z_Schema_oid; - compo->u.complex->generic->schema.oid = (Odr_oid *) - zoom_yaz_str_to_z3950oid (c, CLASS_SCHEMA, resultset->schema); - - if (!compo->u.complex->generic->schema.oid) - { - /* OID wasn't a schema! Try record syntax instead. */ - - compo->u.complex->generic->schema.oid = (Odr_oid *) - zoom_yaz_str_to_z3950oid (c, CLASS_RECSYN, resultset->schema); - } - if (elementSetName && *elementSetName) - { - compo->u.complex->generic->elementSpec = (Z_ElementSpec *) - odr_malloc(c->odr_out, sizeof(Z_ElementSpec)); - compo->u.complex->generic->elementSpec->which = - Z_ElementSpec_elementSetName; - compo->u.complex->generic->elementSpec->u.elementSetName = - odr_strdup(c->odr_out, elementSetName); - } - else - compo->u.complex->generic->elementSpec = 0; - compo->u.complex->num_dbSpecific = 0; - compo->u.complex->dbSpecific = 0; - compo->u.complex->num_recordSyntax = 0; - compo->u.complex->recordSyntax = 0; - } - else if (elementSetName && *elementSetName) - { - Z_ElementSetNames *esn = (Z_ElementSetNames *) - odr_malloc(c->odr_out, sizeof(*esn)); - Z_RecordComposition *compo = (Z_RecordComposition *) - odr_malloc(c->odr_out, sizeof(*compo)); - - esn->which = Z_ElementSetNames_generic; - esn->u.generic = odr_strdup(c->odr_out, elementSetName); - compo->which = Z_RecordComp_simple; - compo->u.simple = esn; - req->recordComposition = compo; - } - req->resultSetId = odr_strdup(c->odr_out, resultset->setname); - return send_APDU(c, apdu); -} - -ZOOM_API(ZOOM_scanset) - ZOOM_connection_scan(ZOOM_connection c, const char *start) -{ - ZOOM_scanset s; - ZOOM_query q = ZOOM_query_create(); - - ZOOM_query_prefix(q, start); - - s = ZOOM_connection_scan1(c, q); - ZOOM_query_destroy(q); - return s; - -} - -ZOOM_API(ZOOM_scanset) - ZOOM_connection_scan1(ZOOM_connection c, ZOOM_query q) -{ - ZOOM_scanset scan = 0; - - if (!q->z_query) - return 0; - scan = (ZOOM_scanset) xmalloc(sizeof(*scan)); - scan->connection = c; - scan->odr = odr_createmem(ODR_DECODE); - scan->options = ZOOM_options_create_with_parent(c->options); - scan->refcount = 1; - scan->scan_response = 0; - scan->srw_scan_response = 0; - - scan->query = q; - (q->refcount)++; - scan->databaseNames = set_DatabaseNames(c, c->options, - &scan->num_databaseNames, - scan->odr); - - if (1) - { - ZOOM_task task = ZOOM_connection_add_task(c, ZOOM_TASK_SCAN); - task->u.scan.scan = scan; - - (scan->refcount)++; - if (!c->async) - { - while (ZOOM_event(1, &c)) - ; - } - } - return scan; -} - -ZOOM_API(void) - ZOOM_scanset_destroy(ZOOM_scanset scan) -{ - if (!scan) - return; - (scan->refcount)--; - if (scan->refcount == 0) - { - ZOOM_query_destroy(scan->query); - - odr_destroy(scan->odr); - - ZOOM_options_destroy(scan->options); - xfree(scan); - } -} - -static zoom_ret send_package(ZOOM_connection c) -{ - ZOOM_Event event; - - yaz_log(log_details, "%p send_package", c); - if (!c->tasks) - return zoom_complete; - assert (c->tasks->which == ZOOM_TASK_PACKAGE); - - event = ZOOM_Event_create(ZOOM_EVENT_SEND_APDU); - ZOOM_connection_put_event(c, event); - - c->buf_out = c->tasks->u.package->buf_out; - c->len_out = c->tasks->u.package->len_out; - - return do_write(c); -} - -static zoom_ret ZOOM_connection_send_scan(ZOOM_connection c) -{ - ZOOM_scanset scan; - Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_scanRequest); - Z_ScanRequest *req = apdu->u.scanRequest; - - yaz_log(log_details, "%p send_scan", c); - if (!c->tasks) - return zoom_complete; - assert (c->tasks->which == ZOOM_TASK_SCAN); - scan = c->tasks->u.scan.scan; - - /* Z39.50 scan can only carry RPN */ - if (scan->query->z_query->which == Z_Query_type_1 || - scan->query->z_query->which == Z_Query_type_101) - { - Z_RPNQuery *rpn = scan->query->z_query->u.type_1; - const char *cp = ZOOM_options_get(scan->options, "rpnCharset"); - if (cp) - { - yaz_iconv_t cd = yaz_iconv_open(cp, "UTF-8"); - if (cd) - { - rpn = yaz_copy_z_RPNQuery(rpn, c->odr_out); - - yaz_query_charset_convert_rpnquery( - rpn, c->odr_out, cd); - yaz_iconv_close(cd); - } - } - req->attributeSet = rpn->attributeSetId; - if (!req->attributeSet) - req->attributeSet = odr_oiddup(c->odr_out, yaz_oid_attset_bib_1); - if (rpn->RPNStructure->which == Z_RPNStructure_simple && - rpn->RPNStructure->u.simple->which == Z_Operand_APT) - { - req->termListAndStartPoint = - rpn->RPNStructure->u.simple->u.attributesPlusTerm; - } - else - { - set_ZOOM_error(c, ZOOM_ERROR_INVALID_QUERY, 0); - return zoom_complete; - } - } - else - { - set_ZOOM_error(c, ZOOM_ERROR_UNSUPPORTED_QUERY, 0); - return zoom_complete; - } - - *req->numberOfTermsRequested = - ZOOM_options_get_int(scan->options, "number", 10); - - req->preferredPositionInResponse = - odr_intdup(c->odr_out, - ZOOM_options_get_int(scan->options, "position", 1)); - - req->stepSize = - odr_intdup(c->odr_out, - ZOOM_options_get_int(scan->options, "stepSize", 0)); - - req->databaseNames = scan->databaseNames; - req->num_databaseNames = scan->num_databaseNames; - - return send_APDU(c, apdu); -} - -#if YAZ_HAVE_XML2 -static zoom_ret ZOOM_connection_srw_send_scan(ZOOM_connection c) -{ - ZOOM_scanset scan; - Z_SRW_PDU *sr = 0; - const char *option_val = 0; - - if (!c->tasks) - return zoom_complete; - assert (c->tasks->which == ZOOM_TASK_SCAN); - scan = c->tasks->u.scan.scan; - - sr = ZOOM_srw_get_pdu(c, Z_SRW_scan_request); - - /* SRU scan can only carry CQL and PQF */ - if (scan->query->z_query->which == Z_Query_type_104) - { - sr->u.scan_request->query_type = Z_SRW_query_type_cql; - sr->u.scan_request->scanClause.cql = scan->query->query_string; - } - else if (scan->query->z_query->which == Z_Query_type_1 - || scan->query->z_query->which == Z_Query_type_101) - { - sr->u.scan_request->query_type = Z_SRW_query_type_pqf; - sr->u.scan_request->scanClause.pqf = scan->query->query_string; - } - else - { - set_ZOOM_error(c, ZOOM_ERROR_UNSUPPORTED_QUERY, 0); - return zoom_complete; - } - - sr->u.scan_request->maximumTerms = odr_intdup( - c->odr_out, ZOOM_options_get_int(scan->options, "number", 10)); - - sr->u.scan_request->responsePosition = odr_intdup( - c->odr_out, ZOOM_options_get_int(scan->options, "position", 1)); - - option_val = ZOOM_options_get(scan->options, "extraArgs"); - if (option_val) - sr->extra_args = odr_strdup(c->odr_out, option_val); - return send_srw(c, sr); -} -#else -static zoom_ret ZOOM_connection_srw_send_scan(ZOOM_connection c) -{ - return zoom_complete; -} -#endif - - -ZOOM_API(size_t) - ZOOM_scanset_size(ZOOM_scanset scan) -{ - if (!scan) - return 0; - - if (scan->scan_response && scan->scan_response->entries) - return scan->scan_response->entries->num_entries; - else if (scan->srw_scan_response) - return scan->srw_scan_response->num_terms; - return 0; -} - -static void ZOOM_scanset_term_x(ZOOM_scanset scan, size_t pos, - int *occ, - const char **value_term, size_t *value_len, - const char **disp_term, size_t *disp_len) -{ - size_t noent = ZOOM_scanset_size(scan); - - *value_term = 0; - *value_len = 0; - - *disp_term = 0; - *disp_len = 0; - - *occ = 0; - if (pos >= noent || pos < 0) - return; - if (scan->scan_response) - { - Z_ScanResponse *res = scan->scan_response; - if (res->entries->entries[pos]->which == Z_Entry_termInfo) - { - Z_TermInfo *t = res->entries->entries[pos]->u.termInfo; - - *value_term = (const char *) t->term->u.general->buf; - *value_len = t->term->u.general->len; - if (t->displayTerm) - { - *disp_term = t->displayTerm; - *disp_len = strlen(*disp_term); - } - else if (t->term->which == Z_Term_general) - { - *disp_term = (const char *) t->term->u.general->buf; - *disp_len = t->term->u.general->len; - } - *occ = t->globalOccurrences ? *t->globalOccurrences : 0; - } - } - if (scan->srw_scan_response) - { - Z_SRW_scanResponse *res = scan->srw_scan_response; - Z_SRW_scanTerm *t = res->terms + pos; - if (t) - { - *value_term = t->value; - *value_len = strlen(*value_term); - - if (t->displayTerm) - *disp_term = t->displayTerm; - else - *disp_term = t->value; - *disp_len = strlen(*disp_term); - *occ = t->numberOfRecords ? *t->numberOfRecords : 0; - } - } -} - -ZOOM_API(const char *) - ZOOM_scanset_term(ZOOM_scanset scan, size_t pos, - int *occ, int *len) -{ - const char *value_term = 0; - size_t value_len = 0; - const char *disp_term = 0; - size_t disp_len = 0; - - ZOOM_scanset_term_x(scan, pos, occ, &value_term, &value_len, - &disp_term, &disp_len); - - *len = value_len; - return value_term; -} - -ZOOM_API(const char *) - ZOOM_scanset_display_term(ZOOM_scanset scan, size_t pos, - int *occ, int *len) -{ - const char *value_term = 0; - size_t value_len = 0; - const char *disp_term = 0; - size_t disp_len = 0; - - ZOOM_scanset_term_x(scan, pos, occ, &value_term, &value_len, - &disp_term, &disp_len); - - *len = disp_len; - return disp_term; -} - -ZOOM_API(const char *) - ZOOM_scanset_option_get(ZOOM_scanset scan, const char *key) -{ - return ZOOM_options_get(scan->options, key); -} - -ZOOM_API(void) - ZOOM_scanset_option_set(ZOOM_scanset scan, const char *key, - const char *val) -{ - ZOOM_options_set(scan->options, key, val); -} - -static Z_APDU *create_es_package(ZOOM_package p, const Odr_oid *oid) -{ - const char *str; - Z_APDU *apdu = zget_APDU(p->odr_out, Z_APDU_extendedServicesRequest); - Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; - - str = ZOOM_options_get(p->options, "package-name"); - if (str && *str) - req->packageName = odr_strdup(p->odr_out, str); - - str = ZOOM_options_get(p->options, "user-id"); - if (str) - req->userId = odr_strdup_null(p->odr_out, str); - - req->packageType = odr_oiddup(p->odr_out, oid); - - str = ZOOM_options_get(p->options, "function"); - if (str) - { - if (!strcmp (str, "create")) - *req->function = Z_ExtendedServicesRequest_create; - if (!strcmp (str, "delete")) - *req->function = Z_ExtendedServicesRequest_delete; - if (!strcmp (str, "modify")) - *req->function = Z_ExtendedServicesRequest_modify; - } - - str = ZOOM_options_get(p->options, "waitAction"); - if (str) - { - if (!strcmp (str, "wait")) - *req->waitAction = Z_ExtendedServicesRequest_wait; - if (!strcmp (str, "waitIfPossible")) - *req->waitAction = Z_ExtendedServicesRequest_waitIfPossible; - if (!strcmp (str, "dontWait")) - *req->waitAction = Z_ExtendedServicesRequest_dontWait; - if (!strcmp (str, "dontReturnPackage")) - *req->waitAction = Z_ExtendedServicesRequest_dontReturnPackage; - } - return apdu; -} - -static const char *ill_array_lookup(void *clientData, const char *idx) -{ - ZOOM_package p = (ZOOM_package) clientData; - return ZOOM_options_get(p->options, idx+4); -} - -static Z_External *encode_ill_request(ZOOM_package p) -{ - ODR out = p->odr_out; - ILL_Request *req; - Z_External *r = 0; - struct ill_get_ctl ctl; - - ctl.odr = p->odr_out; - ctl.clientData = p; - ctl.f = ill_array_lookup; - - req = ill_get_ILLRequest(&ctl, "ill", 0); - - if (!ill_Request(out, &req, 0, 0)) - { - int ill_request_size; - char *ill_request_buf = odr_getbuf(out, &ill_request_size, 0); - if (ill_request_buf) - odr_setbuf(out, ill_request_buf, ill_request_size, 1); - return 0; - } - else - { - int illRequest_size = 0; - char *illRequest_buf = odr_getbuf(out, &illRequest_size, 0); - - r = (Z_External *) odr_malloc(out, sizeof(*r)); - r->direct_reference = odr_oiddup(out, yaz_oid_general_isoill_1); - r->indirect_reference = 0; - r->descriptor = 0; - r->which = Z_External_single; - - r->u.single_ASN1_type = - odr_create_Odr_oct(out, - (unsigned char *)illRequest_buf, - illRequest_size); - } - return r; -} - -static Z_ItemOrder *encode_item_order(ZOOM_package p) -{ - Z_ItemOrder *req = (Z_ItemOrder *) odr_malloc(p->odr_out, sizeof(*req)); - const char *str; - - req->which = Z_IOItemOrder_esRequest; - req->u.esRequest = (Z_IORequest *) - odr_malloc(p->odr_out,sizeof(Z_IORequest)); - - /* to keep part ... */ - req->u.esRequest->toKeep = (Z_IOOriginPartToKeep *) - odr_malloc(p->odr_out,sizeof(Z_IOOriginPartToKeep)); - req->u.esRequest->toKeep->supplDescription = 0; - req->u.esRequest->toKeep->contact = (Z_IOContact *) - odr_malloc(p->odr_out, sizeof(*req->u.esRequest->toKeep->contact)); - - str = ZOOM_options_get(p->options, "contact-name"); - req->u.esRequest->toKeep->contact->name = - odr_strdup_null(p->odr_out, str); - - str = ZOOM_options_get(p->options, "contact-phone"); - req->u.esRequest->toKeep->contact->phone = - odr_strdup_null(p->odr_out, str); - - str = ZOOM_options_get(p->options, "contact-email"); - req->u.esRequest->toKeep->contact->email = - odr_strdup_null(p->odr_out, str); - - req->u.esRequest->toKeep->addlBilling = 0; - - /* not to keep part ... */ - req->u.esRequest->notToKeep = (Z_IOOriginPartNotToKeep *) - odr_malloc(p->odr_out,sizeof(Z_IOOriginPartNotToKeep)); - - str = ZOOM_options_get(p->options, "itemorder-setname"); - if (!str) - str = "default"; - - if (!*str) - req->u.esRequest->notToKeep->resultSetItem = 0; - else - { - req->u.esRequest->notToKeep->resultSetItem = (Z_IOResultSetItem *) - odr_malloc(p->odr_out, sizeof(Z_IOResultSetItem)); - - req->u.esRequest->notToKeep->resultSetItem->resultSetId = - odr_strdup(p->odr_out, str); - req->u.esRequest->notToKeep->resultSetItem->item = - (int *) odr_malloc(p->odr_out, sizeof(int)); - - str = ZOOM_options_get(p->options, "itemorder-item"); - *req->u.esRequest->notToKeep->resultSetItem->item = - (str ? atoi(str) : 1); - } - - str = ZOOM_options_get(p->options, "doc"); - if (str) - { - req->u.esRequest->notToKeep->itemRequest = - z_ext_record_xml(p->odr_out, str, strlen(str)); - } - else - req->u.esRequest->notToKeep->itemRequest = encode_ill_request(p); - - return req; -} - -Z_APDU *create_admin_package(ZOOM_package p, int type, - Z_ESAdminOriginPartToKeep **toKeepP, - Z_ESAdminOriginPartNotToKeep **notToKeepP) -{ - Z_APDU *apdu = create_es_package(p, yaz_oid_extserv_admin); - if (apdu) - { - Z_ESAdminOriginPartToKeep *toKeep; - Z_ESAdminOriginPartNotToKeep *notToKeep; - Z_External *r = (Z_External *) odr_malloc(p->odr_out, sizeof(*r)); - const char *first_db = "Default"; - int num_db; - char **db = set_DatabaseNames(p->connection, p->options, &num_db, - p->odr_out); - if (num_db > 0) - first_db = db[0]; - - r->direct_reference = odr_oiddup(p->odr_out, yaz_oid_extserv_admin); - r->descriptor = 0; - r->indirect_reference = 0; - r->which = Z_External_ESAdmin; - - r->u.adminService = (Z_Admin *) - odr_malloc(p->odr_out, sizeof(*r->u.adminService)); - r->u.adminService->which = Z_Admin_esRequest; - r->u.adminService->u.esRequest = (Z_AdminEsRequest *) - odr_malloc(p->odr_out, sizeof(*r->u.adminService->u.esRequest)); - - toKeep = r->u.adminService->u.esRequest->toKeep = - (Z_ESAdminOriginPartToKeep *) - odr_malloc(p->odr_out, sizeof(*r->u.adminService->u.esRequest->toKeep)); - toKeep->which = type; - toKeep->databaseName = odr_strdup(p->odr_out, first_db); - toKeep->u.create = odr_nullval(); - apdu->u.extendedServicesRequest->taskSpecificParameters = r; - - r->u.adminService->u.esRequest->notToKeep = notToKeep = - (Z_ESAdminOriginPartNotToKeep *) - odr_malloc(p->odr_out, - sizeof(*r->u.adminService->u.esRequest->notToKeep)); - notToKeep->which = Z_ESAdminOriginPartNotToKeep_recordsWillFollow; - notToKeep->u.recordsWillFollow = odr_nullval(); - if (toKeepP) - *toKeepP = toKeep; - if (notToKeepP) - *notToKeepP = notToKeep; - } - return apdu; -} - -static Z_APDU *create_xmlupdate_package(ZOOM_package p) -{ - Z_APDU *apdu = create_es_package(p, yaz_oid_extserv_xml_es); - Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest; - Z_External *ext = (Z_External *) odr_malloc(p->odr_out, sizeof(*ext)); - const char *doc = ZOOM_options_get(p->options, "doc"); - - if (!doc) - doc = ""; - - req->taskSpecificParameters = ext; - ext->direct_reference = req->packageType; - ext->descriptor = 0; - ext->indirect_reference = 0; - - ext->which = Z_External_octet; - ext->u.single_ASN1_type = - odr_create_Odr_oct(p->odr_out, (const unsigned char *) doc, - strlen(doc)); - return apdu; -} - -static Z_APDU *create_update_package(ZOOM_package p) -{ - Z_APDU *apdu = 0; - const char *first_db = "Default"; - int num_db; - char **db = set_DatabaseNames(p->connection, p->options, &num_db, p->odr_out); - const char *action = ZOOM_options_get(p->options, "action"); - const char *recordIdOpaque = ZOOM_options_get(p->options, "recordIdOpaque"); - const char *recordIdNumber = ZOOM_options_get(p->options, "recordIdNumber"); - const char *record_buf = ZOOM_options_get(p->options, "record"); - const char *syntax_str = ZOOM_options_get(p->options, "syntax"); - const char *version = ZOOM_options_get(p->options, "updateVersion"); - - const char *correlationInfo_note = - ZOOM_options_get(p->options, "correlationInfo.note"); - const char *correlationInfo_id = - ZOOM_options_get(p->options, "correlationInfo.id"); - int action_no = -1; - Odr_oid *syntax_oid = 0; - const Odr_oid *package_oid = yaz_oid_extserv_database_update; - - if (!version) - version = "3"; - if (!syntax_str) - syntax_str = "xml"; - if (!record_buf) - { - record_buf = "void"; - syntax_str = "SUTRS"; - } - - if (syntax_str) - { - syntax_oid = yaz_string_to_oid_odr(yaz_oid_std(), - CLASS_RECSYN, syntax_str, - p->odr_out); - } - if (!syntax_oid) - return 0; - - if (num_db > 0) - first_db = db[0]; - - switch(*version) - { - case '1': - package_oid = yaz_oid_extserv_database_update_first_version; - /* old update does not support specialUpdate */ - if (!action) - action = "recordInsert"; - break; - case '2': - if (!action) - action = "specialUpdate"; - package_oid = yaz_oid_extserv_database_update_second_version; - break; - case '3': - if (!action) - action = "specialUpdate"; - package_oid = yaz_oid_extserv_database_update; - break; - default: - return 0; - } - - if (!strcmp(action, "recordInsert")) - action_no = Z_IUOriginPartToKeep_recordInsert; - else if (!strcmp(action, "recordReplace")) - action_no = Z_IUOriginPartToKeep_recordReplace; - else if (!strcmp(action, "recordDelete")) - action_no = Z_IUOriginPartToKeep_recordDelete; - else if (!strcmp(action, "elementUpdate")) - action_no = Z_IUOriginPartToKeep_elementUpdate; - else if (!strcmp(action, "specialUpdate")) - action_no = Z_IUOriginPartToKeep_specialUpdate; - else - return 0; - - apdu = create_es_package(p, package_oid); - if (apdu) - { - Z_IUOriginPartToKeep *toKeep; - Z_IUSuppliedRecords *notToKeep; - Z_External *r = (Z_External *) - odr_malloc(p->odr_out, sizeof(*r)); - const char *elementSetName = - ZOOM_options_get(p->options, "elementSetName"); - - apdu->u.extendedServicesRequest->taskSpecificParameters = r; - - r->direct_reference = odr_oiddup(p->odr_out, package_oid); - r->descriptor = 0; - r->which = Z_External_update; - r->indirect_reference = 0; - r->u.update = (Z_IUUpdate *) - odr_malloc(p->odr_out, sizeof(*r->u.update)); - - r->u.update->which = Z_IUUpdate_esRequest; - r->u.update->u.esRequest = (Z_IUUpdateEsRequest *) - odr_malloc(p->odr_out, sizeof(*r->u.update->u.esRequest)); - toKeep = r->u.update->u.esRequest->toKeep = - (Z_IUOriginPartToKeep *) - odr_malloc(p->odr_out, sizeof(*toKeep)); - - toKeep->databaseName = odr_strdup(p->odr_out, first_db); - toKeep->schema = 0; - - toKeep->elementSetName = odr_strdup_null(p->odr_out, elementSetName); - - toKeep->actionQualifier = 0; - toKeep->action = odr_intdup(p->odr_out, action_no); - - notToKeep = r->u.update->u.esRequest->notToKeep = - (Z_IUSuppliedRecords *) - odr_malloc(p->odr_out, sizeof(*notToKeep)); - notToKeep->num = 1; - notToKeep->elements = (Z_IUSuppliedRecords_elem **) - odr_malloc(p->odr_out, sizeof(*notToKeep->elements)); - notToKeep->elements[0] = (Z_IUSuppliedRecords_elem *) - odr_malloc(p->odr_out, sizeof(**notToKeep->elements)); - notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_opaque; - if (recordIdOpaque) - { - notToKeep->elements[0]->u.opaque = - odr_create_Odr_oct(p->odr_out, - (const unsigned char *) recordIdOpaque, - strlen(recordIdOpaque)); - } - else if (recordIdNumber) - { - notToKeep->elements[0]->which = Z_IUSuppliedRecords_elem_number; - - notToKeep->elements[0]->u.number = - odr_intdup(p->odr_out, atoi(recordIdNumber)); - } - else - notToKeep->elements[0]->u.opaque = 0; - notToKeep->elements[0]->supplementalId = 0; - if (correlationInfo_note || correlationInfo_id) - { - Z_IUCorrelationInfo *ci; - ci = notToKeep->elements[0]->correlationInfo = - odr_malloc(p->odr_out, sizeof(*ci)); - ci->note = odr_strdup_null(p->odr_out, correlationInfo_note); - ci->id = correlationInfo_id ? - odr_intdup(p->odr_out, atoi(correlationInfo_id)) : 0; - } - else - notToKeep->elements[0]->correlationInfo = 0; - notToKeep->elements[0]->record = - z_ext_record_oid(p->odr_out, syntax_oid, - record_buf, strlen(record_buf)); - } - if (0 && apdu) - { - ODR print = odr_createmem(ODR_PRINT); - - z_APDU(print, &apdu, 0, 0); - odr_destroy(print); - } - return apdu; -} - -ZOOM_API(void) - ZOOM_package_send(ZOOM_package p, const char *type) -{ - Z_APDU *apdu = 0; - ZOOM_connection c; - if (!p) - return; - c = p->connection; - odr_reset(p->odr_out); - xfree(p->buf_out); - p->buf_out = 0; - if (!strcmp(type, "itemorder")) - { - apdu = create_es_package(p, yaz_oid_extserv_item_order); - if (apdu) - { - Z_External *r = (Z_External *) odr_malloc(p->odr_out, sizeof(*r)); - - r->direct_reference = - odr_oiddup(p->odr_out, yaz_oid_extserv_item_order); - r->descriptor = 0; - r->which = Z_External_itemOrder; - r->indirect_reference = 0; - r->u.itemOrder = encode_item_order(p); - - apdu->u.extendedServicesRequest->taskSpecificParameters = r; - } - } - else if (!strcmp(type, "create")) /* create database */ - { - apdu = create_admin_package(p, Z_ESAdminOriginPartToKeep_create, - 0, 0); - } - else if (!strcmp(type, "drop")) /* drop database */ - { - apdu = create_admin_package(p, Z_ESAdminOriginPartToKeep_drop, - 0, 0); - } - else if (!strcmp(type, "commit")) /* commit changes */ - { - apdu = create_admin_package(p, Z_ESAdminOriginPartToKeep_commit, - 0, 0); - } - else if (!strcmp(type, "update")) /* update record(s) */ - { - apdu = create_update_package(p); - } - else if (!strcmp(type, "xmlupdate")) - { - apdu = create_xmlupdate_package(p); - } - if (apdu) - { - if (encode_APDU(p->connection, apdu, p->odr_out) == 0) - { - char *buf; - - ZOOM_task task = ZOOM_connection_add_task(c, ZOOM_TASK_PACKAGE); - task->u.package = p; - buf = odr_getbuf(p->odr_out, &p->len_out, 0); - p->buf_out = (char *) xmalloc(p->len_out); - memcpy(p->buf_out, buf, p->len_out); - - (p->refcount)++; - if (!c->async) - { - while (ZOOM_event(1, &c)) - ; - } - } - } -} - -ZOOM_API(ZOOM_package) - ZOOM_connection_package(ZOOM_connection c, ZOOM_options options) -{ - ZOOM_package p = (ZOOM_package) xmalloc(sizeof(*p)); - - p->connection = c; - p->odr_out = odr_createmem(ODR_ENCODE); - p->options = ZOOM_options_create_with_parent2(options, c->options); - p->refcount = 1; - p->buf_out = 0; - p->len_out = 0; - return p; -} - -ZOOM_API(void) - ZOOM_package_destroy(ZOOM_package p) -{ - if (!p) - return; - (p->refcount)--; - if (p->refcount == 0) - { - odr_destroy(p->odr_out); - xfree(p->buf_out); - - ZOOM_options_destroy(p->options); - xfree(p); - } -} - -ZOOM_API(const char *) - ZOOM_package_option_get(ZOOM_package p, const char *key) -{ - return ZOOM_options_get(p->options, key); -} - - -ZOOM_API(void) - ZOOM_package_option_set(ZOOM_package p, const char *key, - const char *val) -{ - ZOOM_options_set(p->options, key, val); -} - -static int ZOOM_connection_exec_task(ZOOM_connection c) -{ - ZOOM_task task = c->tasks; - zoom_ret ret = zoom_complete; - - if (!task) - return 0; - yaz_log(log_details, "%p ZOOM_connection_exec_task type=%d run=%d", - c, task->which, task->running); - if (c->error != ZOOM_ERROR_NONE) - { - yaz_log(log_details, "%p ZOOM_connection_exec_task " - "removing tasks because of error = %d", c, c->error); - ZOOM_connection_remove_tasks(c); - return 0; - } - if (task->running) - { - yaz_log(log_details, "%p ZOOM_connection_exec_task " - "task already running", c); - return 0; - } - task->running = 1; - ret = zoom_complete; - if (c->cs || task->which == ZOOM_TASK_CONNECT) - { - switch (task->which) - { - case ZOOM_TASK_SEARCH: - if (c->proto == PROTO_HTTP) - ret = ZOOM_connection_srw_send_search(c); - else - ret = ZOOM_connection_send_search(c); - break; - case ZOOM_TASK_RETRIEVE: - if (c->proto == PROTO_HTTP) - ret = ZOOM_connection_srw_send_search(c); - else - ret = send_present(c); - break; - case ZOOM_TASK_CONNECT: - ret = do_connect(c); - break; - case ZOOM_TASK_SCAN: - if (c->proto == PROTO_HTTP) - ret = ZOOM_connection_srw_send_scan(c); - else - ret = ZOOM_connection_send_scan(c); - break; - case ZOOM_TASK_PACKAGE: - ret = send_package(c); - break; - case ZOOM_TASK_SORT: - c->tasks->u.sort.resultset->r_sort_spec = - c->tasks->u.sort.q->sort_spec; - ret = send_sort(c, c->tasks->u.sort.resultset); - break; - } - } - else - { - yaz_log(log_details, "%p ZOOM_connection_exec_task " - "remove tasks because no connection exist", c); - ZOOM_connection_remove_tasks(c); - } - if (ret == zoom_complete) - { - yaz_log(log_details, "%p ZOOM_connection_exec_task " - "task removed (complete)", c); - ZOOM_connection_remove_task(c); - return 0; - } - yaz_log(log_details, "%p ZOOM_connection_exec_task " - "task pending", c); - return 1; -} - -static zoom_ret send_sort_present(ZOOM_connection c) -{ - zoom_ret r = zoom_complete; - - if (c->tasks && c->tasks->which == ZOOM_TASK_SEARCH) - r = send_sort(c, c->tasks->u.search.resultset); - if (r == zoom_complete) - r = send_present(c); - return r; -} - -static int es_response(ZOOM_connection c, - Z_ExtendedServicesResponse *res) -{ - if (!c->tasks || c->tasks->which != ZOOM_TASK_PACKAGE) - return 0; - if (res->diagnostics && res->num_diagnostics > 0) - response_diag(c, res->diagnostics[0]); - if (res->taskPackage && - res->taskPackage->which == Z_External_extendedService) - { - Z_TaskPackage *taskPackage = res->taskPackage->u.extendedService; - Odr_oct *id = taskPackage->targetReference; - - if (id) - ZOOM_options_setl(c->tasks->u.package->options, - "targetReference", (char*) id->buf, id->len); - } - if (res->taskPackage && - res->taskPackage->which == Z_External_octet) - { - Odr_oct *doc = res->taskPackage->u.octet_aligned; - ZOOM_options_setl(c->tasks->u.package->options, - "xmlUpdateDoc", (char*) doc->buf, doc->len); - } - return 1; -} - -static void interpret_init_diag(ZOOM_connection c, - Z_DiagnosticFormat *diag) -{ - if (diag->num > 0) - { - Z_DiagnosticFormat_s *ds = diag->elements[0]; - if (ds->which == Z_DiagnosticFormat_s_defaultDiagRec) - response_default_diag(c, ds->u.defaultDiagRec); - } -} - - -static void interpret_otherinformation_field(ZOOM_connection c, - Z_OtherInformation *ui) -{ - int i; - for (i = 0; i < ui->num_elements; i++) - { - Z_OtherInformationUnit *unit = ui->list[i]; - if (unit->which == Z_OtherInfo_externallyDefinedInfo && - unit->information.externallyDefinedInfo && - unit->information.externallyDefinedInfo->which == - Z_External_diag1) - { - interpret_init_diag(c, unit->information.externallyDefinedInfo->u.diag1); - } - } -} - - -static void set_init_option(const char *name, void *clientData) { - ZOOM_connection c = (ZOOM_connection) clientData; - char buf[80]; - - sprintf(buf, "init_opt_%.70s", name); - ZOOM_connection_option_set(c, buf, "1"); -} - - -static void recv_apdu(ZOOM_connection c, Z_APDU *apdu) -{ - Z_InitResponse *initrs; - - ZOOM_connection_set_mask(c, 0); - yaz_log(log_details, "%p recv_apdu apdu->which=%d", c, apdu->which); - switch(apdu->which) - { - case Z_APDU_initResponse: - yaz_log(log_api, "%p recv_apdu: Received Init response", c); - initrs = apdu->u.initResponse; - ZOOM_connection_option_set(c, "serverImplementationId", - initrs->implementationId ? - initrs->implementationId : ""); - ZOOM_connection_option_set(c, "serverImplementationName", - initrs->implementationName ? - initrs->implementationName : ""); - ZOOM_connection_option_set(c, "serverImplementationVersion", - initrs->implementationVersion ? - initrs->implementationVersion : ""); - /* Set the three old options too, for old applications */ - ZOOM_connection_option_set(c, "targetImplementationId", - initrs->implementationId ? - initrs->implementationId : ""); - ZOOM_connection_option_set(c, "targetImplementationName", - initrs->implementationName ? - initrs->implementationName : ""); - ZOOM_connection_option_set(c, "targetImplementationVersion", - initrs->implementationVersion ? - initrs->implementationVersion : ""); - - /* Make initrs->options available as ZOOM-level options */ - yaz_init_opt_decode(initrs->options, set_init_option, (void*) c); - - if (!*initrs->result) - { - Z_External *uif = initrs->userInformationField; - - set_ZOOM_error(c, ZOOM_ERROR_INIT, 0); /* default error */ - - if (uif && uif->which == Z_External_userInfo1) - interpret_otherinformation_field(c, uif->u.userInfo1); - } - else - { - char *cookie = - yaz_oi_get_string_oid(&apdu->u.initResponse->otherInfo, - yaz_oid_userinfo_cookie, 1, 0); - xfree(c->cookie_in); - c->cookie_in = 0; - if (cookie) - c->cookie_in = xstrdup(cookie); - if (ODR_MASK_GET(initrs->options, Z_Options_namedResultSets) && - ODR_MASK_GET(initrs->protocolVersion, Z_ProtocolVersion_3)) - c->support_named_resultsets = 1; - if (c->tasks) - { - assert(c->tasks->which == ZOOM_TASK_CONNECT); - ZOOM_connection_remove_task(c); - } - ZOOM_connection_exec_task(c); - } - if (ODR_MASK_GET(initrs->options, Z_Options_negotiationModel)) - { - NMEM tmpmem = nmem_create(); - Z_CharSetandLanguageNegotiation *p = - yaz_get_charneg_record(initrs->otherInfo); - - if (p) - { - char *charset = NULL, *lang = NULL; - int sel; - - yaz_get_response_charneg(tmpmem, p, &charset, &lang, &sel); - yaz_log(log_details, "%p recv_apdu target accepted: " - "charset %s, language %s, select %d", - c, - charset ? charset : "none", lang ? lang : "none", sel); - if (charset) - ZOOM_connection_option_set(c, "negotiation-charset", - charset); - if (lang) - ZOOM_connection_option_set(c, "negotiation-lang", - lang); - - ZOOM_connection_option_set( - c, "negotiation-charset-in-effect-for-records", - (sel != 0) ? "1" : "0"); - nmem_destroy(tmpmem); - } - } - break; - case Z_APDU_searchResponse: - yaz_log(log_api, "%p recv_apdu Search response", c); - handle_search_response(c, apdu->u.searchResponse); - if (send_sort_present(c) == zoom_complete) - ZOOM_connection_remove_task(c); - break; - case Z_APDU_presentResponse: - yaz_log(log_api, "%p recv_apdu Present response", c); - handle_present_response(c, apdu->u.presentResponse); - if (send_present(c) == zoom_complete) - ZOOM_connection_remove_task(c); - break; - case Z_APDU_sortResponse: - yaz_log(log_api, "%p recv_apdu Sort response", c); - sort_response(c, apdu->u.sortResponse); - if (send_present(c) == zoom_complete) - ZOOM_connection_remove_task(c); - break; - case Z_APDU_scanResponse: - yaz_log(log_api, "%p recv_apdu Scan response", c); - scan_response(c, apdu->u.scanResponse); - ZOOM_connection_remove_task(c); - break; - case Z_APDU_extendedServicesResponse: - yaz_log(log_api, "%p recv_apdu Extended Services response", c); - es_response(c, apdu->u.extendedServicesResponse); - ZOOM_connection_remove_task(c); - break; - case Z_APDU_close: - yaz_log(log_api, "%p recv_apdu Close PDU", c); - if (!ZOOM_test_reconnect(c)) - { - set_ZOOM_error(c, ZOOM_ERROR_CONNECTION_LOST, c->host_port); - do_close(c); - } - break; - default: - yaz_log(log_api, "%p Received unknown PDU", c); - set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); - do_close(c); - } -} - -#if YAZ_HAVE_XML2 -static void handle_srw_response(ZOOM_connection c, - Z_SRW_searchRetrieveResponse *res) -{ - ZOOM_resultset resultset = 0; - int i; - NMEM nmem; - ZOOM_Event event; - int *start; - const char *syntax, *elementSetName; - - if (!c->tasks) - return; - - switch(c->tasks->which) - { - case ZOOM_TASK_SEARCH: - resultset = c->tasks->u.search.resultset; - start = &c->tasks->u.search.start; - syntax = c->tasks->u.search.syntax; - elementSetName = c->tasks->u.search.elementSetName; - break; - case ZOOM_TASK_RETRIEVE: - resultset = c->tasks->u.retrieve.resultset; - start = &c->tasks->u.retrieve.start; - syntax = c->tasks->u.retrieve.syntax; - elementSetName = c->tasks->u.retrieve.elementSetName; - break; - default: - return; - } - event = ZOOM_Event_create(ZOOM_EVENT_RECV_SEARCH); - ZOOM_connection_put_event(c, event); - - resultset->size = 0; - - if (res->resultSetId) - ZOOM_resultset_option_set(resultset, "resultSetId", res->resultSetId); - - yaz_log(log_details, "%p handle_srw_response got SRW response OK", c); - - if (res->numberOfRecords) - resultset->size = *res->numberOfRecords; - - for (i = 0; inum_records; i++) - { - int pos; - Z_SRW_record *sru_rec; - Z_SRW_diagnostic *diag = 0; - int num_diag; - - Z_NamePlusRecord *npr = (Z_NamePlusRecord *) - odr_malloc(c->odr_in, sizeof(Z_NamePlusRecord)); - - if (res->records[i].recordPosition && - *res->records[i].recordPosition > 0) - pos = *res->records[i].recordPosition - 1; - else - pos = *start + i; - - sru_rec = &res->records[i]; - - npr->databaseName = 0; - npr->which = Z_NamePlusRecord_databaseRecord; - npr->u.databaseRecord = (Z_External *) - odr_malloc(c->odr_in, sizeof(Z_External)); - npr->u.databaseRecord->descriptor = 0; - npr->u.databaseRecord->direct_reference = - odr_oiddup(c->odr_in, yaz_oid_recsyn_xml); - npr->u.databaseRecord->which = Z_External_octet; - - npr->u.databaseRecord->u.octet_aligned = (Odr_oct *) - odr_malloc(c->odr_in, sizeof(Odr_oct)); - npr->u.databaseRecord->u.octet_aligned->buf = (unsigned char*) - sru_rec->recordData_buf; - npr->u.databaseRecord->u.octet_aligned->len = - npr->u.databaseRecord->u.octet_aligned->size = - sru_rec->recordData_len; - - if (sru_rec->recordSchema - && !strcmp(sru_rec->recordSchema, - "info:srw/schema/1/diagnostics-v1.1")) - { - sru_decode_surrogate_diagnostics(sru_rec->recordData_buf, - sru_rec->recordData_len, - &diag, &num_diag, - resultset->odr); - } - record_cache_add(resultset, npr, pos, syntax, elementSetName, - sru_rec->recordSchema, diag); - } - if (res->num_diagnostics > 0) - set_SRU_error(c, &res->diagnostics[0]); - nmem = odr_extract_mem(c->odr_in); - nmem_transfer(odr_getmem(resultset->odr), nmem); - nmem_destroy(nmem); -} -#endif - -#if YAZ_HAVE_XML2 -static void handle_srw_scan_response(ZOOM_connection c, - Z_SRW_scanResponse *res) -{ - NMEM nmem = odr_extract_mem(c->odr_in); - ZOOM_scanset scan; - - if (!c->tasks || c->tasks->which != ZOOM_TASK_SCAN) - return; - scan = c->tasks->u.scan.scan; - - if (res->num_diagnostics > 0) - set_SRU_error(c, &res->diagnostics[0]); - - scan->scan_response = 0; - scan->srw_scan_response = res; - nmem_transfer(odr_getmem(scan->odr), nmem); - - ZOOM_options_set_int(scan->options, "number", res->num_terms); - nmem_destroy(nmem); -} -#endif - -#if YAZ_HAVE_XML2 -static void handle_http(ZOOM_connection c, Z_HTTP_Response *hres) -{ - int ret = -1; - const char *addinfo = 0; - const char *connection_head = z_HTTP_header_lookup(hres->headers, - "Connection"); - ZOOM_connection_set_mask(c, 0); - yaz_log(log_details, "%p handle_http", c); - - if (!yaz_srw_check_content_type(hres)) - addinfo = "content-type"; - else - { - Z_SOAP *soap_package = 0; - ODR o = c->odr_in; - Z_SOAP_Handler soap_handlers[2] = { - {YAZ_XMLNS_SRU_v1_1, 0, (Z_SOAP_fun) yaz_srw_codec}, - {0, 0, 0} - }; - ret = z_soap_codec(o, &soap_package, - &hres->content_buf, &hres->content_len, - soap_handlers); - if (!ret && soap_package->which == Z_SOAP_generic && - soap_package->u.generic->no == 0) - { - Z_SRW_PDU *sr = (Z_SRW_PDU*) soap_package->u.generic->p; - - ZOOM_options_set(c->options, "sru_version", sr->srw_version); - if (sr->which == Z_SRW_searchRetrieve_response) - handle_srw_response(c, sr->u.response); - else if (sr->which == Z_SRW_scan_response) - handle_srw_scan_response(c, sr->u.scan_response); - else - ret = -1; - } - else if (!ret && (soap_package->which == Z_SOAP_fault - || soap_package->which == Z_SOAP_error)) - { - set_HTTP_error(c, hres->code, - soap_package->u.fault->fault_code, - soap_package->u.fault->fault_string); - } - else - ret = -1; - } - if (ret) - { - if (hres->code != 200) - set_HTTP_error(c, hres->code, 0, 0); - else - set_ZOOM_error(c, ZOOM_ERROR_DECODE, addinfo); - do_close(c); - } - ZOOM_connection_remove_task(c); - if (!strcmp(hres->version, "1.0")) - { - /* HTTP 1.0: only if Keep-Alive we stay alive.. */ - if (!connection_head || strcmp(connection_head, "Keep-Alive")) - do_close(c); - } - else - { - /* HTTP 1.1: only if no close we stay alive .. */ - if (connection_head && !strcmp(connection_head, "close")) - do_close(c); - } -} -#endif - -static int do_read(ZOOM_connection c) -{ - int r, more; - ZOOM_Event event; - - event = ZOOM_Event_create(ZOOM_EVENT_RECV_DATA); - ZOOM_connection_put_event(c, event); - - r = cs_get(c->cs, &c->buf_in, &c->len_in); - more = cs_more(c->cs); - yaz_log(log_details, "%p do_read len=%d more=%d", c, r, more); - if (r == 1) - return 0; - if (r <= 0) - { - if (!ZOOM_test_reconnect(c)) - { - set_ZOOM_error(c, ZOOM_ERROR_CONNECTION_LOST, c->host_port); - do_close(c); - } - } - else - { - Z_GDU *gdu; - ZOOM_Event event; - - odr_reset(c->odr_in); - odr_setbuf(c->odr_in, c->buf_in, r, 0); - event = ZOOM_Event_create(ZOOM_EVENT_RECV_APDU); - ZOOM_connection_put_event(c, event); - - if (!z_GDU(c->odr_in, &gdu, 0, 0)) - { - int x; - int err = odr_geterrorx(c->odr_in, &x); - char msg[100]; - const char *element = odr_getelement(c->odr_in); - yaz_snprintf(msg, sizeof(msg), - "ODR code %d:%d element=%s offset=%d", - err, x, element ? element : "", - odr_offset(c->odr_in)); - set_ZOOM_error(c, ZOOM_ERROR_DECODE, msg); - if (log_api) - { - FILE *ber_file = yaz_log_file(); - if (ber_file) - odr_dumpBER(ber_file, c->buf_in, r); - } - do_close(c); - } - else if (gdu->which == Z_GDU_Z3950) - recv_apdu(c, gdu->u.z3950); - else if (gdu->which == Z_GDU_HTTP_Response) - { -#if YAZ_HAVE_XML2 - handle_http(c, gdu->u.HTTP_Response); -#else - set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0); - do_close(c); -#endif - } - c->reconnect_ok = 0; - } - return 1; -} - -static zoom_ret do_write_ex(ZOOM_connection c, char *buf_out, int len_out) -{ - int r; - ZOOM_Event event; - - event = ZOOM_Event_create(ZOOM_EVENT_SEND_DATA); - ZOOM_connection_put_event(c, event); - - yaz_log(log_details, "%p do_write_ex len=%d", c, len_out); - if ((r = cs_put(c->cs, buf_out, len_out)) < 0) - { - yaz_log(log_details, "%p do_write_ex write failed", c); - if (ZOOM_test_reconnect(c)) - { - return zoom_pending; - } - if (c->state == STATE_CONNECTING) - set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); - else - set_ZOOM_error(c, ZOOM_ERROR_CONNECTION_LOST, c->host_port); - do_close(c); - return zoom_complete; - } - else if (r == 1) - { - int mask = ZOOM_SELECT_EXCEPT; - if (c->cs->io_pending & CS_WANT_WRITE) - mask += ZOOM_SELECT_WRITE; - if (c->cs->io_pending & CS_WANT_READ) - mask += ZOOM_SELECT_READ; - ZOOM_connection_set_mask(c, mask); - yaz_log(log_details, "%p do_write_ex write incomplete mask=%d", - c, c->mask); - } - else - { - ZOOM_connection_set_mask(c, ZOOM_SELECT_READ|ZOOM_SELECT_EXCEPT); - yaz_log(log_details, "%p do_write_ex write complete mask=%d", - c, c->mask); - } - return zoom_pending; -} - -static zoom_ret do_write(ZOOM_connection c) -{ - return do_write_ex(c, c->buf_out, c->len_out); -} - - -ZOOM_API(const char *) - ZOOM_connection_option_get(ZOOM_connection c, const char *key) -{ - return ZOOM_options_get(c->options, key); -} - -ZOOM_API(const char *) - ZOOM_connection_option_getl(ZOOM_connection c, const char *key, int *lenp) -{ - return ZOOM_options_getl(c->options, key, lenp); -} - -ZOOM_API(void) - ZOOM_connection_option_set(ZOOM_connection c, const char *key, - const char *val) -{ - ZOOM_options_set(c->options, key, val); -} - -ZOOM_API(void) - ZOOM_connection_option_setl(ZOOM_connection c, const char *key, - const char *val, int len) -{ - ZOOM_options_setl(c->options, key, val, len); -} - -ZOOM_API(const char *) - ZOOM_resultset_option_get(ZOOM_resultset r, const char *key) -{ - return ZOOM_options_get(r->options, key); -} - -ZOOM_API(void) - ZOOM_resultset_option_set(ZOOM_resultset r, const char *key, - const char *val) -{ - ZOOM_options_set(r->options, key, val); -} - - -ZOOM_API(int) - ZOOM_connection_errcode(ZOOM_connection c) -{ - return ZOOM_connection_error(c, 0, 0); -} - -ZOOM_API(const char *) - ZOOM_connection_errmsg(ZOOM_connection c) -{ - const char *msg; - ZOOM_connection_error(c, &msg, 0); - return msg; -} - -ZOOM_API(const char *) - ZOOM_connection_addinfo(ZOOM_connection c) -{ - const char *addinfo; - ZOOM_connection_error(c, 0, &addinfo); - return addinfo; -} - -ZOOM_API(const char *) - ZOOM_connection_diagset(ZOOM_connection c) -{ - const char *diagset; - ZOOM_connection_error_x(c, 0, 0, &diagset); - return diagset; -} - -ZOOM_API(const char *) - ZOOM_diag_str(int error) -{ - switch (error) - { - case ZOOM_ERROR_NONE: - return "No error"; - case ZOOM_ERROR_CONNECT: - return "Connect failed"; - case ZOOM_ERROR_MEMORY: - return "Out of memory"; - case ZOOM_ERROR_ENCODE: - return "Encoding failed"; - case ZOOM_ERROR_DECODE: - return "Decoding failed"; - case ZOOM_ERROR_CONNECTION_LOST: - return "Connection lost"; - case ZOOM_ERROR_INIT: - return "Init rejected"; - case ZOOM_ERROR_INTERNAL: - return "Internal failure"; - case ZOOM_ERROR_TIMEOUT: - return "Timeout"; - case ZOOM_ERROR_UNSUPPORTED_PROTOCOL: - return "Unsupported protocol"; - case ZOOM_ERROR_UNSUPPORTED_QUERY: - return "Unsupported query type"; - case ZOOM_ERROR_INVALID_QUERY: - return "Invalid query"; - case ZOOM_ERROR_CQL_PARSE: - return "CQL parsing error"; - case ZOOM_ERROR_CQL_TRANSFORM: - return "CQL transformation error"; - case ZOOM_ERROR_CCL_CONFIG: - return "CCL configuration error"; - case ZOOM_ERROR_CCL_PARSE: - return "CCL parsing error"; - default: - return diagbib1_str(error); - } -} - -ZOOM_API(int) - ZOOM_connection_error_x(ZOOM_connection c, const char **cp, - const char **addinfo, const char **diagset) -{ - int error = c->error; - if (cp) - { - if (!c->diagset || !strcmp(c->diagset, "ZOOM")) - *cp = ZOOM_diag_str(error); - else if (!strcmp(c->diagset, "HTTP")) - *cp = z_HTTP_errmsg(c->error); - else if (!strcmp(c->diagset, "Bib-1")) - *cp = ZOOM_diag_str(error); - else if (!strcmp(c->diagset, "info:srw/diagnostic/1")) - *cp = yaz_diag_srw_str(c->error); - else - *cp = "Unknown error and diagnostic set"; - } - if (addinfo) - *addinfo = c->addinfo ? c->addinfo : ""; - if (diagset) - *diagset = c->diagset ? c->diagset : ""; - return c->error; -} - -ZOOM_API(int) - ZOOM_connection_error(ZOOM_connection c, const char **cp, - const char **addinfo) -{ - return ZOOM_connection_error_x(c, cp, addinfo, 0); -} - -static void ZOOM_connection_do_io(ZOOM_connection c, int mask) -{ - ZOOM_Event event = 0; - int r = cs_look(c->cs); - yaz_log(log_details, "%p ZOOM_connection_do_io mask=%d cs_look=%d", - c, mask, r); - - if (r == CS_NONE) - { - event = ZOOM_Event_create(ZOOM_EVENT_CONNECT); - set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); - do_close(c); - ZOOM_connection_put_event(c, event); - } - else if (r == CS_CONNECT) - { - int ret = ret = cs_rcvconnect(c->cs); - yaz_log(log_details, "%p ZOOM_connection_do_io " - "cs_rcvconnect returned %d", c, ret); - if (ret == 1) - { - int mask = ZOOM_SELECT_EXCEPT; - if (c->cs->io_pending & CS_WANT_WRITE) - mask += ZOOM_SELECT_WRITE; - if (c->cs->io_pending & CS_WANT_READ) - mask += ZOOM_SELECT_READ; - ZOOM_connection_set_mask(c, mask); - event = ZOOM_Event_create(ZOOM_EVENT_NONE); - ZOOM_connection_put_event(c, event); - } - else if (ret == 0) - { - event = ZOOM_Event_create(ZOOM_EVENT_CONNECT); - ZOOM_connection_put_event(c, event); - get_cert(c); - if (c->proto == PROTO_Z3950) - ZOOM_connection_send_init(c); - else - { - /* no init request for SRW .. */ - assert(c->tasks->which == ZOOM_TASK_CONNECT); - ZOOM_connection_remove_task(c); - ZOOM_connection_set_mask(c, 0); - ZOOM_connection_exec_task(c); - } - c->state = STATE_ESTABLISHED; - } - else - { - set_ZOOM_error(c, ZOOM_ERROR_CONNECT, c->host_port); - do_close(c); - } - } - else - { - if (mask & ZOOM_SELECT_EXCEPT) - { - if (!ZOOM_test_reconnect(c)) - { - set_ZOOM_error(c, ZOOM_ERROR_CONNECTION_LOST, c->host_port); - do_close(c); - } - return; - } - if (mask & ZOOM_SELECT_READ) - do_read(c); - if (c->cs && (mask & ZOOM_SELECT_WRITE)) - do_write(c); - } -} - -ZOOM_API(int) - ZOOM_connection_last_event(ZOOM_connection cs) -{ - if (!cs) - return ZOOM_EVENT_NONE; - return cs->last_event; -} - - -static void cql2pqf_wrbuf_puts(const char *buf, void *client_data) -{ - WRBUF wrbuf = (WRBUF) client_data; - wrbuf_puts(wrbuf, buf); -} - -/* - * Returns an xmalloc()d string containing RPN that corresponds to the - * CQL passed in. On error, sets the Connection object's error state - * and returns a null pointer. - * ### We could cache CQL parser and/or transformer in Connection. - */ -static char *cql2pqf(ZOOM_connection c, const char *cql) -{ - CQL_parser parser; - int error; - const char *cqlfile; - cql_transform_t trans; - char *result = 0; - - parser = cql_parser_create(); - if ((error = cql_parser_string(parser, cql)) != 0) { - cql_parser_destroy(parser); - set_ZOOM_error(c, ZOOM_ERROR_CQL_PARSE, cql); - return 0; - } - - cqlfile = ZOOM_connection_option_get(c, "cqlfile"); - if (cqlfile == 0) - { - set_ZOOM_error(c, ZOOM_ERROR_CQL_TRANSFORM, "no CQL transform file"); - } - else if ((trans = cql_transform_open_fname(cqlfile)) == 0) - { - char buf[512]; - sprintf(buf, "can't open CQL transform file '%.200s': %.200s", - cqlfile, strerror(errno)); - set_ZOOM_error(c, ZOOM_ERROR_CQL_TRANSFORM, buf); - } - else - { - WRBUF wrbuf_result = wrbuf_alloc(); - error = cql_transform(trans, cql_parser_result(parser), - cql2pqf_wrbuf_puts, wrbuf_result); - if (error != 0) { - char buf[512]; - const char *addinfo; - error = cql_transform_error(trans, &addinfo); - sprintf(buf, "%.200s (addinfo=%.200s)", - cql_strerror(error), addinfo); - set_ZOOM_error(c, ZOOM_ERROR_CQL_TRANSFORM, buf); - } - else - { - result = xstrdup(wrbuf_cstr(wrbuf_result)); - } - cql_transform_close(trans); - wrbuf_destroy(wrbuf_result); - } - cql_parser_destroy(parser); - return result; -} - -ZOOM_API(int) ZOOM_connection_fire_event_timeout(ZOOM_connection c) -{ - if (c->mask) - { - ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_TIMEOUT); - /* timeout and this connection was waiting */ - set_ZOOM_error(c, ZOOM_ERROR_TIMEOUT, 0); - do_close(c); - ZOOM_connection_put_event(c, event); - } - return 0; -} - -ZOOM_API(int) - ZOOM_connection_process(ZOOM_connection c) -{ - ZOOM_Event event; - if (!c) - return 0; - - event = ZOOM_connection_get_event(c); - if (event) - { - ZOOM_Event_destroy(event); - return 1; - } - ZOOM_connection_exec_task(c); - event = ZOOM_connection_get_event(c); - if (event) - { - ZOOM_Event_destroy(event); - return 1; - } - return 0; -} - -ZOOM_API(int) - ZOOM_event_nonblock(int no, ZOOM_connection *cs) -{ - int i; - - yaz_log(log_details, "ZOOM_process_event(no=%d,cs=%p)", no, cs); - - for (i = 0; imask && mask) - ZOOM_connection_do_io(c, mask); - return 0; -} - -ZOOM_API(int) ZOOM_connection_get_socket(ZOOM_connection c) -{ - if (c->cs) - return cs_fileno(c->cs); - return -1; -} - -ZOOM_API(int) ZOOM_connection_set_mask(ZOOM_connection c, int mask) -{ - c->mask = mask; - if (!c->cs) - return -1; - return 0; -} - -ZOOM_API(int) ZOOM_connection_get_mask(ZOOM_connection c) -{ - if (c->cs) - return c->mask; - return 0; -} - -ZOOM_API(int) ZOOM_connection_get_timeout(ZOOM_connection c) -{ - return ZOOM_options_get_int(c->options, "timeout", 30); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/zoom-opt.c b/dependencies/yaz_3.0.14/src/zoom-opt.c deleted file mode 100644 index bdb822f..0000000 --- a/dependencies/yaz_3.0.14/src/zoom-opt.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: zoom-opt.c,v 1.8 2007/05/05 11:53:26 adam Exp $ - */ -/** - * \file zoom-opt.c - * \brief Implements ZOOM options handling - */ -#include -#include "zoom-p.h" - -#include - -static void set_value(struct ZOOM_options_entry **e, - const char *value, int len) -{ - (*e)->value = 0; - (*e)->len = 0; - if (value) - { - (*e)->value = (char *) xmalloc(len+1); - memcpy((*e)->value, value, len); - (*e)->value[len] = '\0'; - (*e)->len = len; - } -} - -static void append_entry(struct ZOOM_options_entry **e, - const char *name, const char *value, int len) -{ - *e = (struct ZOOM_options_entry *) xmalloc(sizeof(**e)); - (*e)->name = xstrdup(name); - set_value(e, value, len); - (*e)->next = 0; -} - -ZOOM_API(ZOOM_options) - ZOOM_options_dup(ZOOM_options src) -{ - if (!src) - return 0; - else - { - ZOOM_options dst = ZOOM_options_create(); - struct ZOOM_options_entry *src_e = src->entries; - struct ZOOM_options_entry **dst_e = &dst->entries; - - while(src_e) - { - append_entry(dst_e, src_e->name, src_e->value, src_e->len); - dst_e = &(*dst_e)->next; - src_e = src_e->next; - } - dst->parent1 = ZOOM_options_dup(src->parent1); - dst->parent2 = ZOOM_options_dup(src->parent2); - return dst; - } -} - -ZOOM_API(ZOOM_options) - ZOOM_options_create_with_parent(ZOOM_options parent) -{ - return ZOOM_options_create_with_parent2(parent, 0); -} - -ZOOM_API(ZOOM_options) - ZOOM_options_create(void) -{ - return ZOOM_options_create_with_parent(0); -} - - -ZOOM_API(ZOOM_options) - ZOOM_options_create_with_parent2(ZOOM_options parent1, - ZOOM_options parent2) -{ - ZOOM_options opt = (ZOOM_options) xmalloc(sizeof(*opt)); - - opt->refcount = 1; - opt->callback_func = 0; - opt->callback_handle = 0; - opt->entries = 0; - opt->parent1= parent1; - if (parent1) - (parent1->refcount)++; - opt->parent2= parent2; - if (parent2) - (parent2->refcount)++; - return opt; -} - - -void ZOOM_options_addref(ZOOM_options opt) -{ - (opt->refcount)++; -} - -ZOOM_API(ZOOM_options_callback) - ZOOM_options_set_callback ( - ZOOM_options opt, - ZOOM_options_callback callback_func, - void *callback_handle) -{ - ZOOM_options_callback callback_old; - - assert(opt); - callback_old = opt->callback_func; - opt->callback_func = callback_func; - opt->callback_handle = callback_handle; - return callback_old; -} - -ZOOM_API(void) - ZOOM_options_destroy(ZOOM_options opt) -{ - if (!opt) - return; - (opt->refcount)--; - if (opt->refcount == 0) - { - struct ZOOM_options_entry *e; - - ZOOM_options_destroy(opt->parent1); - ZOOM_options_destroy(opt->parent2); - e = opt->entries; - while (e) - { - struct ZOOM_options_entry *e0 = e; - xfree(e->name); - xfree(e->value); - e = e->next; - xfree(e0); - } - xfree(opt); - } -} - - -ZOOM_API(void) - ZOOM_options_setl(ZOOM_options opt, const char *name, const char *value, - int len) -{ - struct ZOOM_options_entry **e; - - e = &opt->entries; - while (*e) - { - if (!strcmp((*e)->name, name)) - { - xfree((*e)->value); - set_value(e, value, len); - return; - } - e = &(*e)->next; - } - append_entry(e, name, value, len); -} - -ZOOM_API(void) - ZOOM_options_set(ZOOM_options opt, const char *name, const char *value) -{ - ZOOM_options_setl(opt, name, value, value ? strlen(value): 0); -} - -ZOOM_API(const char *) - ZOOM_options_getl(ZOOM_options opt, const char *name, int *lenp) -{ - const char *v = 0; - if (!opt) - return 0; - if (opt->callback_func) - v = (*opt->callback_func)(opt->callback_handle, name); - if (!v) - { - struct ZOOM_options_entry *e; - for (e = opt->entries; e; e = e->next) - if (!strcmp(e->name, name)) - { - v = e->value; - *lenp = e->len; - break; - } - } - if (!v) - v = ZOOM_options_getl(opt->parent1, name, lenp); - if (!v) - v = ZOOM_options_getl(opt->parent2, name, lenp); - return v; -} - -ZOOM_API(const char *) - ZOOM_options_get(ZOOM_options opt, const char *name) -{ - int dummy; - return ZOOM_options_getl(opt, name, &dummy); -} - -ZOOM_API(int) - ZOOM_options_get_bool(ZOOM_options opt, const char *name, int defa) -{ - const char *v = ZOOM_options_get(opt, name); - - if (!v) - return defa; - if (!strcmp(v, "1") || !strcmp(v, "T")) - return 1; - return 0; -} - -ZOOM_API(int) - ZOOM_options_get_int(ZOOM_options opt, const char *name, int defa) -{ - const char *v = ZOOM_options_get(opt, name); - - if (!v || !*v) - return defa; - return atoi(v); -} - -ZOOM_API(void) -ZOOM_options_set_int(ZOOM_options opt, const char *name, int value) -{ - char s[40]; - - sprintf(s, "%d", value); - ZOOM_options_set(opt, name, s); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/zoom-p.h b/dependencies/yaz_3.0.14/src/zoom-p.h deleted file mode 100644 index 59a940d..0000000 --- a/dependencies/yaz_3.0.14/src/zoom-p.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (C) 1995-2005, Index Data ApS - * See the file LICENSE for details. - * - * $Id: zoom-p.h,v 1.25 2007/09/11 08:40:28 adam Exp $ - */ -/** - * \file zoom-p.h - * \brief Internal header for ZOOM implementation - */ -#include -#include -#include -#include -#include -#include -#include - -typedef struct ZOOM_Event_p *ZOOM_Event; - -struct ZOOM_query_p { - Z_Query *z_query; - Z_SortKeySpecList *sort_spec; - int refcount; - ODR odr; - char *query_string; -}; - -typedef enum { - zoom_sru_error, - zoom_sru_soap, - zoom_sru_get, - zoom_sru_post -} zoom_sru_mode; - - -typedef struct ZOOM_task_p *ZOOM_task; - -#define STATE_IDLE 0 -#define STATE_CONNECTING 1 -#define STATE_ESTABLISHED 2 - -struct ZOOM_connection_p { - enum oid_proto proto; - COMSTACK cs; - char *host_port; - char *path; - int error; - char *addinfo; - char *diagset; - int state; - int mask; - int reconnect_ok; - ODR odr_in; - ODR odr_out; - char *buf_in; - int len_in; - char *buf_out; - int len_out; - char *proxy; - char *charset; - char *lang; - char *cookie_out; - char *cookie_in; - char *client_IP; - char *sru_version; - - char *user; - char *group; - char *password; - - int async; - int support_named_resultsets; - int last_event; - - int maximum_record_size; - int preferred_message_size; - - ZOOM_task tasks; - ZOOM_options options; - ZOOM_resultset resultsets; - ZOOM_Event m_queue_front; - ZOOM_Event m_queue_back; - zoom_sru_mode sru_mode; -}; - -struct ZOOM_options_entry { - char *name; - char *value; - int len; /* of `value', which may contain NULs */ - struct ZOOM_options_entry *next; -}; - -struct ZOOM_options_p { - int refcount; - void *callback_handle; - ZOOM_options_callback callback_func; - struct ZOOM_options_entry *entries; - ZOOM_options parent1; - ZOOM_options parent2; -}; - - -typedef struct ZOOM_record_cache_p *ZOOM_record_cache; - -#define RECORD_HASH_SIZE 131 - -struct ZOOM_resultset_p { - Z_SortKeySpecList *r_sort_spec; - ZOOM_query query; - int refcount; - int size; - int step; - int piggyback; - char *setname; - char *schema; - ODR odr; - ZOOM_record_cache record_hash[RECORD_HASH_SIZE]; - ZOOM_options options; - ZOOM_connection connection; - ZOOM_resultset next; - char **databaseNames; - int num_databaseNames; -}; - -struct ZOOM_record_p { - ODR odr; - WRBUF wrbuf_marc; - WRBUF wrbuf_iconv; - WRBUF wrbuf_opac; - Z_NamePlusRecord *npr; - const char *schema; - - const char *diag_uri; - const char *diag_message; - const char *diag_details; - const char *diag_set; -}; - -struct ZOOM_record_cache_p { - struct ZOOM_record_p rec; - char *elementSetName; - char *syntax; - char *schema; - int pos; - ZOOM_record_cache next; -}; - -struct ZOOM_scanset_p { - int refcount; - ODR odr; - ZOOM_options options; - ZOOM_connection connection; - ZOOM_query query; - Z_ScanResponse *scan_response; - Z_SRW_scanResponse *srw_scan_response; - - char **databaseNames; - int num_databaseNames; -}; - -struct ZOOM_package_p { - int refcount; - ODR odr_out; - ZOOM_options options; - ZOOM_connection connection; - char *buf_out; - int len_out; -}; - -struct ZOOM_task_p { - int running; - int which; - union { -#define ZOOM_TASK_SEARCH 1 - struct { - int count; - int start; - ZOOM_resultset resultset; - char *syntax; - char *elementSetName; - } search; -#define ZOOM_TASK_RETRIEVE 2 - struct { - int start; - ZOOM_resultset resultset; - int count; - char *syntax; - char *elementSetName; - } retrieve; -#define ZOOM_TASK_CONNECT 3 -#define ZOOM_TASK_SCAN 4 - struct { - ZOOM_scanset scan; - } scan; -#define ZOOM_TASK_PACKAGE 5 - ZOOM_package package; -#define ZOOM_TASK_SORT 6 - struct { - ZOOM_resultset resultset; - ZOOM_query q; - } sort; - } u; - ZOOM_task next; -}; - -struct ZOOM_Event_p { - int kind; - ZOOM_Event next; - ZOOM_Event prev; -}; - -void ZOOM_options_addref (ZOOM_options opt); - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/src/zoom-socket.c b/dependencies/yaz_3.0.14/src/zoom-socket.c deleted file mode 100644 index 3d2a813..0000000 --- a/dependencies/yaz_3.0.14/src/zoom-socket.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: zoom-socket.c,v 1.4 2007/05/06 20:12:20 adam Exp $ - */ -/** - * \file zoom-socket.c - * \brief Implements ZOOM C socket interface. - */ - -#include -#include -#include -#include - -#include -#include - -#if HAVE_SYS_TYPES_H -#include -#endif -#if HAVE_SYS_TIME_H -#include -#endif -#if HAVE_SYS_POLL_H -#include -#endif -#if HAVE_SYS_SELECT_H -#include -#endif -#ifdef WIN32 -#if FD_SETSIZE < 512 -#define FD_SETSIZE 512 -#endif -#include -#endif - - -/* - * Note that ZOOM_event_sys_select() is limited as to how many file - * descriptors it can multiplex due to its use of select() which in - * turn uses the statically defined fd_set type to be a bitmap of the - * file descriptors to check. On Ubuntu 6.06 (and almost certainly on - * Debian, and probably on all Linuxes, and maybe all Unixes) this is - * by default set to 1024 (though it may be possible to override this - * using a #define before including -- I've not tried - * this). 1024 file descriptors is a lot, but not enough in all - * cases, e.g. when running IRSpy on a large target database. So you - * should ensure that YAZ uses ZOOM_event_sys_poll() when possible. - */ -ZOOM_API(int) - ZOOM_event_sys_select(int no, ZOOM_connection *cs) -{ - struct timeval tv; - fd_set input, output, except; - int i, r; - int max_fd = 0; - int timeout = 30; - int nfds = 0; - - FD_ZERO(&input); - FD_ZERO(&output); - FD_ZERO(&except); - - for (i = 0; i - - 00988nam0a32003011 450 - - 9 181 423 4 - 710100 - a - - - n - e - - - m - u - 2002 - us - eng - 0 - - - a - xx - - - 1-4000-4596-7 - $14,00 - - - DBC200439 - - - - Sloman - Larry - - - On the road with Bob Dylan - Larry "Ratso" Sloman - - - Revised edition - Three Rivers Press - - - New York - Three Rivers Press - 2002 - - - xv, 464 sider, tavler - - - Larry "Ratso" Slomans meget personlige beretning om Bob Dylans koncertturne i USA i 1975: "The Rolling Thunder revue" - - - PÃ¥ omslaget: With a new introduction by Kinky Friedman - - - Tidligere: 1. udgave. New York, Bantam, 1978 - - - - 99.4 - Dylan - Bob - - - 78.9064 - 5 - - - folkemusik - - - folkemusikere - - - rockmusik - - - rockmusikere - - - rockkoncerter - - - USA - - - 1970-1979 - - diff --git a/dependencies/yaz_3.0.14/test/marc1.xml.marc b/dependencies/yaz_3.0.14/test/marc1.xml.marc deleted file mode 100644 index efc7bdf..0000000 --- a/dependencies/yaz_3.0.14/test/marc1.xml.marc +++ /dev/null @@ -1 +0,0 @@ -00989nam0a32003011 450 001002800000004001000028008002800038009001100066021002700077032001500104100002100119245005400140250004100194260004000235300002700275504012300302512006100425520005000486652002400536652001600560666001600576666001900592666001500611666001800626666001900644666000900663666001500672000a9 181 423 4b710100fa000rnae000tmuua2002buslengv0000aagxx000a1-4000-4596-7d$14,00000&DBC2004390000aSlomanhLarry000aOn the road with Bob DylaneLarry "Ratso" Sloman000aRevised editionbThree Rivers Press000aNew YorkbThree Rivers Pressc2002000axv, 464 sider, tavler000aLarry "Ratso" Slomans meget personlige beretning om Bob Dylans koncertturne i USA i 1975: "The Rolling Thunder revue"000aPÃ¥ omslaget: With a new introduction by Kinky Friedman000aTidligere: 1. udgave. New York, Bantam, 19780000m99.4aDylanhBob000p78.9064v5000ffolkemusik000ffolkemusikere000frockmusik000frockmusikere000frockkoncerter000eUSA000i1970-1979 \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc2.chr b/dependencies/yaz_3.0.14/test/marc2.chr deleted file mode 100644 index 328c81e..0000000 --- a/dependencies/yaz_3.0.14/test/marc2.chr +++ /dev/null @@ -1 +0,0 @@ -iso-8859-1 diff --git a/dependencies/yaz_3.0.14/test/marc2.marc b/dependencies/yaz_3.0.14/test/marc2.marc deleted file mode 100644 index cfc7f72..0000000 --- a/dependencies/yaz_3.0.14/test/marc2.marc +++ /dev/null @@ -1 +0,0 @@ -01116nam0 32002171 45 001002800000004001000028008002800038009001100066039000900077100001900086245005900105260003300164300001000197512007300207531001400280538001900294652001500313666004900328795050200377795001900879000a9 182 502 3b710100fa000rcae000tsufa1995bgblengv0000asgxc000abef000aMimmshGarnet000aCry babyaWarm and soulfuleGarnet Mimms ... [et al.]000aBury St. EdmundsbBGOc1995000n1 cd000aIndspilninger publiceret 1963 (Cry baby) og 1965 (Warm and soulful)000aIndhold:000fBGOgBGOCD268000m78.794v4000msoulmrhythm & bluesnvokalp1960-1969lUSA000å11aCry babyaNobody but youaUntil you were goneaAnytime you want meaSo closeaFor your precious loveaBaby don't you weepaA ¤quiet placeaCry to meaDon't change your heartaWanting youaThe ¤truth hurtsaI'll take good care of youaLooking for youaIt won't hurt (half as much)aIt was easier to hurt heraThinkin'aProve it to meaMore than a miracleaAs long as I have youaOne girlaThere goes my babyaIt's just a matter of timeaA ¤little bit of soapaLook awayaI'll make it up to you000å40y0a1 girl \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc2.xml b/dependencies/yaz_3.0.14/test/marc2.xml deleted file mode 100644 index dd0bc13..0000000 --- a/dependencies/yaz_3.0.14/test/marc2.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - 01116nam0a32002171 450 - - 9 182 502 3 - 710100 - a - - - c - e - - - s - f - 1995 - gb - eng - 0 - - - s - xc - - - bef - - - Mimms - Garnet - - - Cry baby - Warm and soulful - Garnet Mimms ... [et al.] - - - Bury St. Edmunds - BGO - 1995 - - - 1 cd - - - Indspilninger publiceret 1963 (Cry baby) og 1965 (Warm and soulful) - - - Indhold: - - - BGO - BGOCD268 - - - 78.794 - 4 - - - soul - rhythm & blues - vokal - 1960-1969 - USA - - - 11 - Cry baby - Nobody but you - Until you were gone - Anytime you want me - So close - For your precious love - Baby don't you weep - A ¤quiet place - Cry to me - Don't change your heart - Wanting you - The ¤truth hurts - I'll take good care of you - Looking for you - It won't hurt (half as much) - It was easier to hurt her - Thinkin' - Prove it to me - More than a miracle - As long as I have you - One girl - There goes my baby - It's just a matter of time - A ¤little bit of soap - Look away - I'll make it up to you - - - 40 - 0 - 1 girl - - diff --git a/dependencies/yaz_3.0.14/test/marc2.xml.marc b/dependencies/yaz_3.0.14/test/marc2.xml.marc deleted file mode 100644 index 106fce3..0000000 --- a/dependencies/yaz_3.0.14/test/marc2.xml.marc +++ /dev/null @@ -1 +0,0 @@ -01121nam0a32002171 450 001002800000004001000028008002800038009001100066039000900077100001900086245005900105260003300164300001000197512007300207531001400280538001900294652001500313666004900328795050600377795002000883000a9 182 502 3b710100fa000rcae000tsufa1995bgblengv0000asgxc000abef000aMimmshGarnet000aCry babyaWarm and soulfuleGarnet Mimms ... [et al.]000aBury St. EdmundsbBGOc1995000n1 cd000aIndspilninger publiceret 1963 (Cry baby) og 1965 (Warm and soulful)000aIndhold:000fBGOgBGOCD268000m78.794v4000msoulmrhythm & bluesnvokalp1960-1969lUSA000Ã¥11aCry babyaNobody but youaUntil you were goneaAnytime you want meaSo closeaFor your precious loveaBaby don't you weepaA ¤quiet placeaCry to meaDon't change your heartaWanting youaThe ¤truth hurtsaI'll take good care of youaLooking for youaIt won't hurt (half as much)aIt was easier to hurt heraThinkin'aProve it to meaMore than a miracleaAs long as I have youaOne girlaThere goes my babyaIt's just a matter of timeaA ¤little bit of soapaLook awayaI'll make it up to you000Ã¥40y0a1 girl \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc3.chr b/dependencies/yaz_3.0.14/test/marc3.chr deleted file mode 100644 index 328c81e..0000000 --- a/dependencies/yaz_3.0.14/test/marc3.chr +++ /dev/null @@ -1 +0,0 @@ -iso-8859-1 diff --git a/dependencies/yaz_3.0.14/test/marc3.marc b/dependencies/yaz_3.0.14/test/marc3.marc deleted file mode 100644 index 2c40d62..0000000 --- a/dependencies/yaz_3.0.14/test/marc3.marc +++ /dev/null @@ -1 +0,0 @@ -00914naa 2200337 45 001001700000004000900017008002400026009001000050041000800060041000800068097000700076245003300083300002600116557003300142630001600175630001300191633001000204633000900214648006100223648001600284648005400300J01000600354BAS000500360LKR004200365CAT003000407CAT003000437CAT003000467CAT003900497CAT002600536UID001400562 aa00001508fa airn a1991bxxlnortav9 aagxx anor deng00a06 aByfornyelse ved Ibsen-Ringen bfarvefotobplanbsnit aByggekunstj1991v1/2k41-45 fbyfornyelse fsanering fNorge fOslo aTelje Torp Aasen ArkitektkontorcKristian Augustsgate 7B aEng, Dagfin Granlund, TomcKristian AugustsgatecPilestredet 19 aa 20 aITMlARK50b0000145y1991i1/2k41-45 abc20020111lARK01h2002 abc20020111lARK01h2116 abc20021002lARK01h1000 aICLLOADb00c20021122lARK01h1948 c20030618lARK01h1330 aa00001508 \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc3.xml b/dependencies/yaz_3.0.14/test/marc3.xml deleted file mode 100644 index baab879..0000000 --- a/dependencies/yaz_3.0.14/test/marc3.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - 00914naa a2200337 450 - - a00001508 - a - - - i - n - - - 1991 - xx - nor - a - 9 - - - a - xx - - - nor - - - eng - - - 06 - - - Byfornyelse ved Ibsen-Ringen - - - farvefoto - plan - snit - - - Byggekunst - 1991 - 1/2 - 41-45 - - - byfornyelse - - - sanering - - - Norge - - - Oslo - - - Telje Torp Aasen Arkitektkontor - Kristian Augustsgate 7B - - - Eng, Dagfin - - - anlund, Tom - Kristian Augustsgate - Pilestredet 19 - - - a - - - - - - ITM - ARK50 - 0000145 - 1991 - 1/2 - 41-45 - - - - - 20020111 - ARK01 - 2002 - - - - - 20020111 - ARK01 - 2116 - - - - - 20021002 - ARK01 - 1000 - - - ICLLOAD - 00 - 20021122 - ARK01 - 1948 - - - 20030618 - ARK01 - 1330 - - - a00001508 - - diff --git a/dependencies/yaz_3.0.14/test/marc3.xml.marc b/dependencies/yaz_3.0.14/test/marc3.xml.marc deleted file mode 100644 index 64f2cef..0000000 --- a/dependencies/yaz_3.0.14/test/marc3.xml.marc +++ /dev/null @@ -1 +0,0 @@ -00914naa a2200337 450 001001700000004000900017008002400026009001000050041000800060041000800068097000700076245003300083300002600116557003300142630001600175630001300191633001000204633000900214648006100223648001600284648005400300J01000600354BAS000500360LKR004200365CAT003000407CAT003000437CAT003000467CAT003900497CAT002600536UID001400562 aa00001508fa airn a1991bxxlnortav9 aagxx anor deng00a06 aByfornyelse ved Ibsen-Ringen bfarvefotobplanbsnit aByggekunstj1991v1/2k41-45 fbyfornyelse fsanering fNorge fOslo aTelje Torp Aasen ArkitektkontorcKristian Augustsgate 7B aEng, Dagfin ranlund, TomcKristian AugustsgatecPilestredet 19 aa 0 aITMlARK50b0000145y1991i1/2k41-45 abc20020111lARK01h2002 abc20020111lARK01h2116 abc20021002lARK01h1000 aICLLOADb00c20021122lARK01h1948 c20030618lARK01h1330 aa00001508 \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc4.chr b/dependencies/yaz_3.0.14/test/marc4.chr deleted file mode 100644 index 328c81e..0000000 --- a/dependencies/yaz_3.0.14/test/marc4.chr +++ /dev/null @@ -1 +0,0 @@ -iso-8859-1 diff --git a/dependencies/yaz_3.0.14/test/marc4.marc b/dependencies/yaz_3.0.14/test/marc4.marc deleted file mode 100644 index 39d179c..0000000 --- a/dependencies/yaz_3.0.14/test/marc4.marc +++ /dev/null @@ -1 +0,0 @@ -0091400914naa 2200337 45 001001700000004000900017008002400026009001000050041000800060041000800068097000700076245003300083300002600116557003300142630001600175630001300191633001000204633000900214648006100223648001600284648005400300J01000600354BAS000500360LKR004200365CAT003000407CAT003000437CAT003000467CAT003900497CAT002600536UID001400562 aa00001508fa airn a1991bxxlnortav9 aagxx anor deng00a06 aByfornyelse ved Ibsen-Ringen bfarvefotobplanbsnit aByggekunstj1991v1/2k41-45 fbyfornyelse fsanering fNorge fOslo aTelje Torp Aasen ArkitektkontorcKristian Augustsgate 7B aEng, Dagfin Granlund, TomcKristian AugustsgatecPilestredet 19 aa 20 aITMlARK50b0000145y1991i1/2k41-45 abc20020111lARK01h2002 abc20020111lARK01h2116 abc20021002lARK01h1000 aICLLOADb00c20021122lARK01h1948 c20030618lARK01h1330 aa00001508 diff --git a/dependencies/yaz_3.0.14/test/marc4.xml b/dependencies/yaz_3.0.14/test/marc4.xml deleted file mode 100644 index 6587da9..0000000 --- a/dependencies/yaz_3.0.14/test/marc4.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - 009140091a22a 22003370 - - - diff --git a/dependencies/yaz_3.0.14/test/marc4.xml.marc b/dependencies/yaz_3.0.14/test/marc4.xml.marc deleted file mode 100644 index 9b3d907..0000000 --- a/dependencies/yaz_3.0.14/test/marc4.xml.marc +++ /dev/null @@ -1 +0,0 @@ -000260091a2200025003370  \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc5.chr b/dependencies/yaz_3.0.14/test/marc5.chr deleted file mode 100644 index a524421..0000000 --- a/dependencies/yaz_3.0.14/test/marc5.chr +++ /dev/null @@ -1 +0,0 @@ -utf-8 diff --git a/dependencies/yaz_3.0.14/test/marc5.marc b/dependencies/yaz_3.0.14/test/marc5.marc deleted file mode 100644 index f72deaa..0000000 --- a/dependencies/yaz_3.0.14/test/marc5.marc +++ /dev/null @@ -1 +0,0 @@ -00492nam a22001455a 450000100100000000500170001000800410002710000520006824501040012025000140022426000230023830000160026165000510027765000180032800027748520051026111436.0050413s1894 gr 000 0 gre d1 aΜαρούδης, Κωνσταντίνος Ιω10aΕλληνικόν κρυπτογραφικόν λεξικόν /cΚωνστ. Ι. Μαρούδης. 2η εκδ. aΑθήνα,c1894. a248 σελ. 0aGreek language, ModernxDialectsvDictionaries 0aCryptography. \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc5.xml b/dependencies/yaz_3.0.14/test/marc5.xml deleted file mode 100644 index 54323ee..0000000 --- a/dependencies/yaz_3.0.14/test/marc5.xml +++ /dev/null @@ -1,31 +0,0 @@ - - 00492nam a22001455a 4500 - 000277485 - 20051026111436.0 - 050413s1894 gr 000 0 gre d - - Μαρούδης, Κωνσταντίνος Ιω - - - Ελληνικόν κρυπτογραφικόν λεξικόν / - Κωνστ. Ι. Μαρούδης. - - - εκδ. - - - Αθήνα, - 1894. - - - 248 σελ. - - - Greek language, Modern - Dialects - Dictionaries - - - Cryptography. - - diff --git a/dependencies/yaz_3.0.14/test/marc5.xml.marc b/dependencies/yaz_3.0.14/test/marc5.xml.marc deleted file mode 100644 index 50102a7..0000000 --- a/dependencies/yaz_3.0.14/test/marc5.xml.marc +++ /dev/null @@ -1 +0,0 @@ -00492nam a22001455a 450000100100000000500170001000800410002710000520006824501040012025000140022426000230023830000160026165000510027765000180032800027748520051026111436.0050413s1894 gr 000 0 gre d1 aΜαρούδης, Κωνσταντίνος Ιω10aΕλληνικόν κρυπτογραφικόν λεξικόν /cΚωνστ. Ι. Μαρούδης. η εκδ. aΑθήνα,c1894. a248 σελ. 0aGreek language, ModernxDialectsvDictionaries 0aCryptography. \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc6.chr b/dependencies/yaz_3.0.14/test/marc6.chr deleted file mode 100644 index f51f8e4..0000000 --- a/dependencies/yaz_3.0.14/test/marc6.chr +++ /dev/null @@ -1 +0,0 @@ -marc-8 diff --git a/dependencies/yaz_3.0.14/test/marc6.marc b/dependencies/yaz_3.0.14/test/marc6.marc deleted file mode 100644 index c78fdce..0000000 --- a/dependencies/yaz_3.0.14/test/marc6.marc +++ /dev/null @@ -1 +0,0 @@ -00366nam 22001698a 4500001001300000003000400013005001700017008004100034010001700179040001300075050001200088100001700100245003000117260001200147263000900159300001100168 11224466 DLC00000000000000.0910710c19910701nju 00010 eng  aDLCcDLC00a123-xyz10aJack Collins10aHow to program a computer1 aPenguin a8710 ap. cm. a 11224466  \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc6.xml b/dependencies/yaz_3.0.14/test/marc6.xml deleted file mode 100644 index a78dca2..0000000 --- a/dependencies/yaz_3.0.14/test/marc6.xml +++ /dev/null @@ -1,32 +0,0 @@ - - 00366nam a22001698a 4500 - 11224466 - DLC - 00000000000000.0 - 910710c19910701nju 00010 eng - - 11224466 - - - DLC - DLC - - - 123-xyz - - - Jack Collins - - - How to program a computer - - - Penguin - - - 8710 - - - p. cm. - - diff --git a/dependencies/yaz_3.0.14/test/marc6.xml.marc b/dependencies/yaz_3.0.14/test/marc6.xml.marc deleted file mode 100644 index 400a01a..0000000 --- a/dependencies/yaz_3.0.14/test/marc6.xml.marc +++ /dev/null @@ -1 +0,0 @@ -00366nam a22001698a 4500001001300000003000400013005001700017008004100034010001700075040001300092050001200105100001700117245003000134260001200164263000900176300001100185 11224466 DLC00000000000000.0910710c19910701nju 00010 eng  a 11224466  aDLCcDLC00a123-xyz10aJack Collins10aHow to program a computer1 aPenguin a8710 ap. cm. \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc7.chr b/dependencies/yaz_3.0.14/test/marc7.chr deleted file mode 100644 index f51f8e4..0000000 --- a/dependencies/yaz_3.0.14/test/marc7.chr +++ /dev/null @@ -1 +0,0 @@ -marc-8 diff --git a/dependencies/yaz_3.0.14/test/marc7.marc b/dependencies/yaz_3.0.14/test/marc7.marc deleted file mode 100644 index 42ecb4a..0000000 --- a/dependencies/yaz_3.0.14/test/marc7.marc +++ /dev/null @@ -1 +0,0 @@ -03114cam 2200349 i 4500001001300000003000400013005001700017008004100034035001000075035001000085035001000095040001300105906004500118010001700163245005200180260002100232300002100253500004300274500016800317500019000485500015500675500018600830500019301016500023801209500022301447500020801670500016801878500020702046500020902253500016102462500014102623 77123332 DLC20051218154744.0981008b2001 ilu 000 0 eng  a57779 a90490 a93202 aDLCcDLC a0bundcorignewduencipf19gy-gencatlg a 77123332 00aVoyager Diacritic test -- New input 001 (SBIE). any :bny,c2001. a100 p. ;c12 cm. aNew copy imported from file (8/12/99). aVOYAGER COLUMN 0 (NEW): Degree sign (À); Phono Copyright mark (Â); Copyright mark (Ã); Sharp (Ä); Inverted Question mark (Å); Inverted Exclamation mark (Æ). aVOYAGER COLUMN 1: Script L (Á); Polish L (¡); Scandanavian O (¢); D with Crossbar (£); Icelandic Thorn (¤); AE Digraph (¥); OE Digraph (¦); Miagkii Znak (§); Dot at Midline (¨). aVOYAGER COLUMN 2: Musical Flat (©); Patent Mark (ª); Plus or Minus («); O Hook (¬); U Hook (­); Alif (®); alpha gas; Ayn (°); Polish l (±). aVOYAGER COLUMN 3: Scandanavian o (²); d with crossbar (³); Icelandic Thorn (´); ae Digraph (µ); oe Digraph (¶); Tverdii Znak (·); Turkish i (¸); British Pound (¹); eth (º). aVOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (¼); u Hook (½); Beta gbs; Gamma gcs; Superscript 0 (p0s); Superscript 1 (p1s); Superscript 2 (p2s); Superscript 3 (p3s). aVOYAGER COLUMN 5: Superscript 4 (p4s); Superscript 5 (p5s); Superscript 6 (p6s); Superscript 7 (p7s); Superscript 8 (p8s); Superscript 9 (p9s); Superscript + (p+s); Superscript - (p-s); Superscript ( (p(s). aVOYAGER COLUMN 6: Superscript ) (p)s); Subscript 0 (b0s); Subscript 1 (b1s); Subscript 2 (b2s); Subscript 3 (b3s); Subscript 4 (b4s); Subscript 5 (b5s); Subscript 6 (b6s); Subscript 7 (b7s). aVOYAGER COLUMN 7: Subscript 8 (b8s); Subscript 9 (b9s); Subscript + (b+s); Subscript - (b-s); Subscript ( (b(s); Subscript ) (b)s); Pseudo Question Mark (ào); Grave (áo); Acute (âo). aVOYAGER COLUMN 8: Circumflex (ão); Tilde (äo); Macron (åo); Breve (æo); Superior Dot (ço); Umlaut (èo); Hacek (éo); Circle Above (êo); Ligature left (ëo). aVOYAGER COLUMN 9: Ligature right (ìo) ; High Comma off center (ío); Double Acute (îo); Candrabindu (ïo); Cedilla (ðo); Right Hook (ño); Dot Below (òo); Double Dot Below (óo); Circle Below (ôo). aVOYAGER COLUMN 10: Double Underscore (õo); Underscore (öo); Left Hook (÷o); Right Cedilla (øo); Upadhmaniya (ùo); Double Tilde 1st half (úo); Double Tilde 2nd half (ûo) ; High Comma centered (þo). aVOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~). aStandard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc7.xml b/dependencies/yaz_3.0.14/test/marc7.xml deleted file mode 100644 index bc6922d..0000000 --- a/dependencies/yaz_3.0.14/test/marc7.xml +++ /dev/null @@ -1,86 +0,0 @@ - - 03114cam a2200349 i 4500 - 77123332 - DLC - 20051218154744.0 - 981008b2001 ilu 000 0 eng - - 57779 - - - 90490 - - - 93202 - - - DLC - DLC - - - 0 - und - orignew - u - ncip - 19 - y-gencatlg - - - 77123332 - - - Voyager Diacritic test -- New input 001 (SBIE). - - - ny : - ny, - 2001. - - - 100 p. ; - 12 cm. - - - New copy imported from file (8/12/99). - - - VOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡). - - - VOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·). - - - VOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Æ ); U Hook (Ư); Alif (ʼ); alpha α; Ayn (Ê»); Polish l (ł). - - - VOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð). - - - VOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (Æ¡); u Hook (Æ°); Beta β; Gamma γ; Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³). - - - VOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽). - - - VOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇). - - - VOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó). - - - VOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (oÍ¡). - - - VOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (oÌ£); Double Dot Below (o̤); Circle Below (oÌ¥). - - - VOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (oÌ®); Double Tilde 1st half (oÍ ); Double Tilde 2nd half (o) ; High Comma centered (o̓). - - - VOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~). - - - Standard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? - - diff --git a/dependencies/yaz_3.0.14/test/marc7.xml.marc b/dependencies/yaz_3.0.14/test/marc7.xml.marc deleted file mode 100644 index e6315df..0000000 --- a/dependencies/yaz_3.0.14/test/marc7.xml.marc +++ /dev/null @@ -1 +0,0 @@ -03109cam a2200349 i 4500001001300000003000400013005001700017008004100034035001000075035001000085035001000095040001300105906004500118010001700163245005200180260002100232300002100253500004300274500017600317500020000493500016100693500019500854500017801049500022001227500020501447500019901652500017701851500021402028500021502242500016102457500014102618 77123332 DLC20051218154744.0981008b2001 ilu 000 0 eng  a57779 a90490 a93202 aDLCcDLC a0bundcorignewduencipf19gy-gencatlg a 77123332 00aVoyager Diacritic test -- New input 001 (SBIE). any :bny,c2001. a100 p. ;c12 cm. aNew copy imported from file (8/12/99). aVOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡). aVOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·). aVOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Æ ); U Hook (Ư); Alif (ʼ); alpha α; Ayn (Ê»); Polish l (ł). aVOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð). aVOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (Æ¡); u Hook (Æ°); Beta β; Gamma γ; Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³). aVOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽). aVOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇). aVOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó). aVOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (oÍ¡). aVOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (oÌ£); Double Dot Below (o̤); Circle Below (oÌ¥). aVOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (oÌ®); Double Tilde 1st half (oÍ ); Double Tilde 2nd half (o) ; High Comma centered (o̓). aVOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~). aStandard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc8.chr b/dependencies/yaz_3.0.14/test/marc8.chr deleted file mode 100644 index f51f8e4..0000000 --- a/dependencies/yaz_3.0.14/test/marc8.chr +++ /dev/null @@ -1 +0,0 @@ -marc-8 diff --git a/dependencies/yaz_3.0.14/test/marc8.marc b/dependencies/yaz_3.0.14/test/marc8.marc deleted file mode 100644 index 6e4e6ef..0000000 --- a/dependencies/yaz_3.0.14/test/marc8.marc +++ /dev/null @@ -1 +0,0 @@ -02647nam^^2200469^^^4500001001400000005001700014006001900031007001500050008004100065035001500106037009000121040004500211100002300256245028100279246006300560246006300623260014400686300001100830500001300841500005700854500009300911500002901004500005701033510002401090530004201114533008901156655002901245650004301274700003601317700002801353793003101381852001501412852001401427856015401441856015401595852003001749852002801779856015401807856014901961830004702110901002002157UCD-00259230120061209034435.0m d cr bn |||a|bb|920330s1583 enk s 000 0 eng d a99851339eo aCL0036000039bProQuest Information and Learning. 300 N. Zeeb Rd., Ann Arbor, MI 48106 aCu-RivEScCu-RivESdCStRLINedcrbdWaOLN1 aClinton, Atkinson.00aClinton, Purser & Arnold, to their countreymen wheresoeuerh[electronic resource] :bWherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie2 aClinton, Purser & Arnold, to their countreymen wheresoever2 aClinton, Purser & Arnold, to their countreymen wheresoever aLondon :bImprinted by Iohn Wolfe and are to be sold [by W. Wright] at the middle shop in the Poultry, ioyning S. Mildreds Church,c[1583?] a[12] p aIn verse aThe first poem is signed: Thomas Walton alias Purser aClinton's full name and bookseller's name from, and publication date conjectured by, STC aSignatures: Ap4(B Bp2 aReproduction of the original in the Bodleian Library4 aSTC (2nd ed.)c5431 aAlso issued in print and on microform aElectronic reproduction.nMode of access: World Wide Web.nRestricted to UC campuses 7aElectronic texts.2local 0aPirateszEnglandvEarly works to 1800.1 aWalton, Thomas,dfl. 1583.4aut1 aArnold,dfl. 1583.4aut0 aEarly English books online aMERbkmain aSCBbnnet40zRestricted to UC campusesxSCP UCSDuhttp://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:1661040zRestricted to UC campusesxSCP UCSDuhttp://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610 aDVXLbELECT-GENhInternet aLAGEbin3Online access40zRestricted to UC campusesxSCP UCSDuhttp://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:1661040zRestricted to UC campusesuhttp://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610xCDL 0aEarly English books, 1475-1640 ;v1406:13. aDVXLb002592301 \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marc8.xml b/dependencies/yaz_3.0.14/test/marc8.xml deleted file mode 100644 index bb73af0..0000000 --- a/dependencies/yaz_3.0.14/test/marc8.xml +++ /dev/null @@ -1,139 +0,0 @@ - - 02647nam^a2200469^^^4500 - UCD-002592301 - 20061209034435.0 - m d - cr bn |||a|bb| - 920330s1583 enk s 000 0 eng d - - 99851339eo - - - CL0036000039 - ProQuest Information and Learning. 300 N. Zeeb Rd., Ann Arbor, MI 48106 - - - Cu-RivES - Cu-RivES - CStRLIN - dcrb - WaOLN - - - Clinton, Atkinson. - - - Clinton, Purser & Arnold, to their countreymen wheresoeuer - [electronic resource] : - Wherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie - - - Clinton, Purser & Arnold, to their countreymen wheresoever - - - Clinton, Purser & Arnold, to their countreymen wheresoever - - - London : - Imprinted by Iohn Wolfe and are to be sold [by W. Wright] at the middle shop in the Poultry, ioyning S. Mildreds Church, - [1583?] - - - [12] p - - - In verse - - - The first poem is signed: Thomas Walton alias Purser - - - Clinton's full name and bookseller's name from, and publication date conjectured by, STC - - - Signatures: A⁴ B² - - - Reproduction of the original in the Bodleian Library - - - STC (2nd ed.) - 5431 - - - Also issued in print and on microform - - - Electronic reproduction. - Mode of access: World Wide Web. - Restricted to UC campuses - - - Electronic texts. - local - - - Pirates - England - Early works to 1800. - - - Walton, Thomas, - fl. 1583. - aut - - - Arnold, - fl. 1583. - aut - - - Early English books online - - - MER - kmain - - - SCB - nnet - - - Restricted to UC campuses - SCP UCSD - http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610 - - - Restricted to UC campuses - SCP UCSD - http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610 - - - DVXL - ELECT-GEN - Internet - - - LAGE - in - Online access - - - Restricted to UC campuses - SCP UCSD - http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610 - - - Restricted to UC campuses - http://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610 - CDL - - - Early English books, 1475-1640 ; - 1406:13. - - - DVXL - 002592301 - - diff --git a/dependencies/yaz_3.0.14/test/marc8.xml.marc b/dependencies/yaz_3.0.14/test/marc8.xml.marc deleted file mode 100644 index 7a433b0..0000000 --- a/dependencies/yaz_3.0.14/test/marc8.xml.marc +++ /dev/null @@ -1 +0,0 @@ -02643nam^a2200469^^^4500001001400000005001700014006001900031007001500050008004100065035001500106037009000121040004500211100002300256245028100279246006300560246006300623260014400686300001100830500001300841500005700854500009300911500002501004500005701029510002401086530004201110533008901152655002901241650004301270700003601313700002801349793003101377852001501408852001401423856015401437856015401591852003001745852002801775856015401803856014901957830004702106901002002153UCD-00259230120061209034435.0m d cr bn |||a|bb|920330s1583 enk s 000 0 eng d a99851339eo aCL0036000039bProQuest Information and Learning. 300 N. Zeeb Rd., Ann Arbor, MI 48106 aCu-RivEScCu-RivESdCStRLINedcrbdWaOLN1 aClinton, Atkinson.00aClinton, Purser & Arnold, to their countreymen wheresoeuerh[electronic resource] :bWherein is described by their own hands their vnfeigned penitence for their offences past: their patience in welcoming their death, & their duetiful minds towardes her most excellent Maiestie2 aClinton, Purser & Arnold, to their countreymen wheresoever2 aClinton, Purser & Arnold, to their countreymen wheresoever aLondon :bImprinted by Iohn Wolfe and are to be sold [by W. Wright] at the middle shop in the Poultry, ioyning S. Mildreds Church,c[1583?] a[12] p aIn verse aThe first poem is signed: Thomas Walton alias Purser aClinton's full name and bookseller's name from, and publication date conjectured by, STC aSignatures: A⁴ B² aReproduction of the original in the Bodleian Library4 aSTC (2nd ed.)c5431 aAlso issued in print and on microform aElectronic reproduction.nMode of access: World Wide Web.nRestricted to UC campuses 7aElectronic texts.2local 0aPirateszEnglandvEarly works to 1800.1 aWalton, Thomas,dfl. 1583.4aut1 aArnold,dfl. 1583.4aut0 aEarly English books online aMERbkmain aSCBbnnet40zRestricted to UC campusesxSCP UCSDuhttp://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:1661040zRestricted to UC campusesxSCP UCSDuhttp://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610 aDVXLbELECT-GENhInternet aLAGEbin3Online access40zRestricted to UC campusesxSCP UCSDuhttp://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:1661040zRestricted to UC campusesuhttp://gateway.proquest.com/openurl?ctx_ver=Z39.88-2003&res_id=xri:eebo&rft_val_fmt=&rft_id=xri:eebo:image:16610xCDL 0aEarly English books, 1475-1640 ;v1406:13. aDVXLb002592301 \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marccol1.u8.1.lst b/dependencies/yaz_3.0.14/test/marccol1.u8.1.lst deleted file mode 100644 index ec47cef..0000000 --- a/dependencies/yaz_3.0.14/test/marccol1.u8.1.lst +++ /dev/null @@ -1,477 +0,0 @@ -01087cam a2200277 a 4500 -001 70813420 /AJ/r86 -003 DLC -005 19871006084439.0 -008 860826m19689999ja ab l00000 jpn -010 $a 70813420 /AJ/r86 -035 $a (CStRLIN)DCLP86-B14482 -040 $c NNC $d NNC $d DLC -043 $a a-ja--- -050 0 $a DS897.H325 $b H36 1968 -066 $c $1 -245 00 $6 880-01 $a Handa shishi. -260 0 $6 880-02 $a [Handa-shi] : $b Handa-shi, $c Shōwa 43-<59> [1968-<1984> -300 $a v. <1-5, 7-8> : $b ill. ; $c 22 cm. -500 $a Vol. 3 accompanied by Handa-shi chiiki chishitsuzu; v. 8, Handa-shi Otsukawa Asaiyama dashi kumiage zumen (1 folded) leaf). -505 1 $a [1]-[4] Shiryō hen -- [5] Honbun hen -- [7] Bunkazai hen -- [8] Sairei minzoku hen -651 0 $6 880-03 $a Handa-shi (Japan) -651 0 $6 880-04 $a Handa-shi (Japan) $x History $x Sources. -880 00 $6 245-01/$1 $a 半田 市誌. -880 0 $6 260-02/$1 $a [半田市] : $b 半田市, $c 昭和 43-<59> [1968-<1984> -880 4 $6 651-03/$1 $a 半田市 (Japan) -880 4 $6 651-04/$1 $a 半田市 (Japan) $x History $x Sources. - -00847nam a2200229 a 4500 -001 75840215 /ACN/r86 -003 DLC -005 19870219000000.0 -008 860606m19009999ch 00001 chi -010 $a 75840215 /ACN/r86 -035 $a (CStRLIN)DCLP86-B9742 -050 0 $a PL3031.T32 $b L5 -066 $c $1 -245 00 $6 880-01 $a Li tsÊ»ung. -260 0 $6 880-02 $a [Kao-hsiung shih] : $b Wen hua yüan : $b Fa hsing so Sheng su chÊ»u pan she, $c -300 $a v. <4, pts 1-2; v. 5> in <3 > ; $c 22 cm. -500 $a Cover title. -650 0 $a Didactic fiction, Chinese $z Taiwan. -710 20 $6 880-03 $a Kao-hsiung shih wen hua yüan. -880 00 $6 245-01/$1 $a 歷叢. -880 0 $6 260-02/$1 $a [高雄市] : $b 文化院 : $b 發行所 聖書 出版社, $c <民國63-66 [1974-1977 > -880 20 $6 710-03/$1 $a 高雄市 文化院. - -01020nam a2200277 a 4500 -001 84226659 /ACN -003 DLC -005 19870219000000.0 -008 860227s1983 cc ac b 00000dchi -010 $a 84226659 /ACN -035 $a (CStRLIN)DCLP86-B3400 -050 0 $a NX90 $b .I18 1983 -066 $c $1 -082 0 $a 174/.97 $2 19 -245 00 $6 880-01 $a I shu chia yü te yü. -250 $6 880-02 $a Ti 1 pan. -260 0 $6 880-03 $a ChÊ»eng-tu : $b Ssu-chÊ»uan jen min chÊ»u pan she : $b Ssu-chÊ»uan sheng hsin hua shu tien fa hsing, $c 1983. -300 $a 2, 3, 4, 244 p. : $b ill., ports. ; $c 19 cm. -440 0 $6 880-04 $a Te yü tsÊ»ung shu -504 $a Bibliography: p. 239-240. -650 0 $a Artists $x Anecdotes, facetiae, satire, etc. -650 0 $a Ethics $x Anecdotes, facetiae, satire, etc. -880 00 $6 245-01/$1 $a 艺术家 与 德育. -880 $6 250-02/$1 $a 第1版. -880 0 $6 260-03/$1 $a 成都 : $b 四川 人民 出版社 : $b 四川省 新华 书店 发行, $c 1983. -880 0 $6 440-04/$1 $a 德育 丛书 - -01336cam a2200349 a 4500 -001 84231405 -003 DLC -005 20001214140017.0 -008 841203m19849999cc b 000 0 chi -010 $a 84231405 -020 $c RMBY0.38 (v. 1) -035 $a (CStRLIN)DCLP84-B5184 -040 $a DLC-R $c DLC-R $d DLC-R $d CStRLIN $d DLC -043 $a a-cc--- -050 00 $a JQ1519.A5 $b C47529 1984 -066 $c $1 -082 00 $a 324.251/075 $2 19 -245 00 $6 880-01 $a Zheng dang xue xi cai liao / $c ben she bian. -250 $6 880-02 $a Di 1 ban. -260 $6 880-03 $a Shenyang : $b Liaoning ren min chu ban she : $b Liaoning sheng xin hua shu dian fa xing, $c 1984- -300 $a v. <1, 3-5, > ; $c 19 cm. -500 $a Colophon title also in pinyin: Zhengdang xuexi cailiao. -504 $a Includes bibliographical references. -610 20 $6 880-04 $a Zhongguo gong chan dang $x Party work. -710 2 $6 880-05 $a Liaoning ren min chu ban she. -740 0 $a Zhengdang xuexi cailiao. -880 00 $6 245-01/$1 $a 整党 学习 材料 / $c 本社 编. -880 $6 250-02/$1 $a 第1版. -880 $6 260-03/$1 $a 沈阳 : $b 辽宁 人氱 出版社 : $b 辽宁省 新华 书店 叱行, $c 1984- -880 24 $6 610-04/$1 $a 中国 共产党 $x Party work. -880 2 $6 710-05/$1 $a 辽宁 人氱 出版社. -987 $a PINYIN $b CStRLIN $c 20001212 $d c $e 1.0 - -00916nam a2200241 a 4500 -001 85174785 /ACN -003 DLC -005 19870219000000.0 -008 860312s1983 cc a 00000 chi -010 $a 85174785 /ACN -035 $a (CStRLIN)DCLP86-B4377 -043 $a a-cc-hp -050 0 $a GR336.H67 $b H6 1983 -066 $c $1 -082 0 $a 398.2/32/5115 $2 19 -245 00 $6 880-01 $a Ho-pei min chien ku shih hsüan / $c [chÊ»a tÊ»u Chang Wen-hsüeh]. -250 $6 880-02 $a Hsin 1 pan. -260 0 $6 880-03 $a Shih-chia-chuang : $b Hua shan wen i chÊ»u pan she : $b Ho-pei sheng hsin hua shu tien fa hsing, $c 1983. -300 $a 2, 255 p. : $b ill. ; $c 19 cm. -650 0 $a Tales $z China $z Hopeh Province. -880 00 $6 245-01/$1 $a 河北 氱间 故事 选 / $c [插图 张 文学]. -880 $6 250-02/$1 $a 新1版. -880 0 $6 260-03/$1 $a 石家庄 : $b 花山 文艺 出版社 : $b 河北省 新華 書店 叱行, $c 1983. - -01171nam a2200325 a 4500 -001 86116930 /ACN -003 DLC -005 19870219000000.0 -008 860430s1984 cc b 00010 chi -010 $a 86116930 /ACN -020 $c RMBY1.00 -035 $a (CStRLIN)DCLP86-B7190 -050 0 $a PN45 $b .C436 1984 -066 $c $1 -082 0 $a 809 $2 19 -100 10 $6 880-01 $a Chang, Hsin-chien. -245 10 $6 880-02 $a Wen hsüeh chi chÊ»u chih shih / $c Chang Hsin-chien. -250 $6 880-03 $a Ti 1 pan. -260 0 $6 880-04 $a Ho-fei shih : $b An-hui wen i chÊ»u pan she : $b An-hui sheng hsin hua shu tien fa hsing, $c 1984. -300 $a 196 p. ; $c 19 cm. -440 0 $6 880-05 $a ChÊ»ing nien wen hsüeh tsÊ»ung shu -500 $a Cover title also in pinyin: Wenxuejichuzhishi. -504 $a Includes bibliographies. -650 0 $a Literature. -740 01 $a Wenxuejichuzhishi. -880 10 $6 100-01/$1 $a 章 新建. -880 10 $6 245-02/$1 $a 文学 基础 知识 / $c 章 新建. -880 $6 250-03/$1 $a 第1版. -880 0 $6 260-04/$1 $a 合肥市 : $b 安徽 文艺 出版社 : $b 安徽省 新華 書店 发行, $c 1984. -880 0 $6 440-05/$1 $a 青年 文学 丛书 - -01437nam a2200301 a 4500 -001 86117080 /ACN -003 DLC -005 19870219000000.0 -008 860502s1985 cc ab b 00000 chi -010 $a 86117080 /ACN -020 $c RMBY2.30 -035 $a (CStRLIN)DCLP86-B7475 -043 $a a-cc--- -050 0 $a QE537.2.C6 $b S5 1985 -066 $c $1 -082 0 $a 551.2/2/09514 $2 19 -245 00 $6 880-01 $a Shan Kan Ning ChÊ»ing ssu sheng (chÊ»ü) chÊ»iang ti chen mu lu : $b kung yüan [chÊ»ien] 1177 nien-kung yüan 1982 nien / $c Kuo chia ti chen chü Lan-chou ti chen yen chiu so. -250 $6 880-02 $a Ti 1 pan. -260 0 $6 880-03 $a Hsi-an : $b Shan-hsi kÊ»o hsüeh chi shu chÊ»u pan she : $b Shan-hsi sheng hsin hua shu tien fa hsing, $c 1985. -300 $a 2, 170 p. : $b ill., maps ; $c 26 cm. -504 $a Bibliography: p. 170. -650 0 $a Earthquakes $z China, Northwest $x Chronology. -710 20 $6 880-04 $a Kuo chia ti chen chü Lan-chou ti chen yen chiu so. -740 01 $a Shan Kan Ning ChÊ»ing 4 sheng (chÊ»ü) chÊ»iang ti chen mu lu. -880 00 $6 245-01/$1 $a 陕甘宁青 四省(区) 强 地震 目录 : $b 公元[前] 1177年-公元 1982å¹´ / $c 国家 地震局 兰州 地震 研究所. -880 $6 250-02/$1 $a 第1版. -880 0 $6 260-03/$1 $a 西安 : $b 陕西 秱学 技术 出版社 : $b 陕西省 新華 書店 叱行, $c 1985. -880 20 $6 710-04/$1 $a 国家 地震局 兰州 地震 研究所. - -01289cam a2200337 a 4500 -001 86118651 /ACN/r88 -003 DLC -005 19880830123434.0 -008 860218s1985 ch d 00110 chi -010 $a 86118651 /ACN/r88 -020 $c NT$260.00 -035 $a (CStRLIN)DCLP86-B2669 -041 0 $a chieng -050 0 $a SD126 $b .C473 1985 -066 $c $1 -082 0 $a 634.9/03/21 $2 19 -100 10 $6 880-01 $a ChÊ»en, Ming-tsÊ»un. -245 10 $6 880-02 $a Sen lin hsüeh ming tzÊ»u tzÊ»u tien = $b English Chinese dictionary of forestry / $c ChÊ»en Ming-tsÊ»un, Huang Chin-hsien ho pien. -250 $6 880-03 $a ChÊ»u pan. -260 0 $6 880-04 $a TÊ»ai-pei shih : $b Ming shan chÊ»u pan she, $c min kuo 74 [1985] -300 $a 274 p. ; $c 20 cm. -500 $a Includes index. -650 0 $a Forests and forestry $x Dictionaries. -650 0 $a English language $x Dictionaries $x Chinese. -700 10 $6 880-05 $a Huang, Chin-hsien. -740 01 $a English Chinese dictionary of forestry. -880 10 $6 100-01/$1 $a 陳 銘東. -880 10 $6 245-02/$1 $a 森林學 名詞 辭典 = $b English Chinese dictionary of forestry / $c 陳 銘東, 黃 釱仙 合編. -880 $6 250-03/$1 $a 初版. -880 0 $6 260-04/$1 $a 台北市 : $b 名山 出版社, $c 氱國74 [1985] -880 10 $6 700-05/$1 $a 黃 釱仙. - -00995nam a2200289 a 4500 -001 86118679 /ACN -003 DLC -005 19870219000000.0 -008 860218s1985 ch 00011 chi -010 $a 86118679 /ACN -035 $a (CStRLIN)DCLP86-B2674 -050 0 $a PL2865.H3 $b H84 1985 -066 $c $1 -082 0 $a 895.1/35 $2 19 -100 10 $6 880-01 $a Huang, Hai, $d 1943- -245 10 $6 880-02 $a Hsing hsing ti hsiang lien / $c Huang Hai chu. -250 $6 880-03 $a ChÊ»u pan. -260 0 $6 880-04 $a TÊ»ai-pei shih : $b Huang kuan chÊ»u pan she, $c min kuo 74 [1985] -300 $a 297 p. ; $c 19 cm. -440 0 $6 880-05 $a Huang kuan tsÊ»ung shu ; $v ti 1143 chung -500 $a Short stories. -650 0 $a Science fiction, Chinese. -880 10 $6 100-01/$1 $a 黃 海, $d 1943- -880 10 $6 245-02/$1 $a 星星 的 項練 / $c 黃 海 著. -880 $6 250-03/$1 $a 初版. -880 0 $6 260-04/$1 $a 台北市 : $b 皇冠 出版社, $c 民國74 [1985] -880 0 $6 440-05/$1 $a 皇冠 叢書 ; $v 第1143種 - -01365cam a2200361 a 4500 -001 86119726 -003 DLC -005 20010412140706.0 -008 860403s1985 cc af b 00000 chi -010 $a 86119726 -020 $c RMBY3.90 -035 $a (CStRLIN)DCLP86-B5782 -040 $a DLC-R $c DLC-R $d DLC-R $d CStRLIN $d DLC-R -043 $a a-cc--- -050 00 $a DS751 $b .C4945 1985 -066 $c $1 -082 00 $a 951/.024 $2 19 -245 00 $6 880-01 $a Jian ming Song shi / $c Zhou Baozhu, Chen Zhen zhu bian ; Zhou Baozhu ... [et al.] bian xie. -250 $6 880-02 $a Di 1 ban. -260 $6 880-03 $a Beijing : $b Ren min chu ban she : $b Xin hua shu dian fa xing, $c 1985. -300 $a 4, 5, 603 p., [12] p. of plates : $b ill. ; $c 21 cm. -500 $a Colophon title also in pinyin : Jianming Songshi. -504 $a Includes bibliographical references. -651 0 $a China $x History $y Song dynasty, 960-1279. -700 1 $6 880-04 $a Zhou, Baozhu. -700 1 $6 880-05 $a Chen, Zhen. -740 0 $a Jianming Songshi. -880 00 $6 245-01/$1 $a 簡明 宋 史 / $c 周 宝珠, 陈 振 主编 ; 周 宝珠 ... [et al.] 编写. -880 $6 250-02/$1 $a 第1版. -880 $6 260-03/$1 $a 北京 : $b 人民 出版社 : $b 新華 書店 发行, $c 1985. -880 1 $6 700-04/$1 $a 周 宝珠. -880 1 $6 700-05/$1 $a 陈 振. -987 $a PINYIN $b CStRLIN $c 20001214 $d c $e 1.0 - -01069nam a2200289 a 4500 -001 86122256 /ACN -003 DLC -005 19870219000000.0 -008 860303s1984 cc b 00010 chi -010 $a 86122256 /ACN -020 $c RMBY2.80 -035 $a (CStRLIN)DCLP86-B3622 -043 $a a-cc--- -050 0 $a PL2333 $b .L63 1984 -066 $c $1 -082 0 $a 895.1/15/09 $2 19 -100 10 $6 880-01 $a Lo, Han-chÊ»ao. -245 10 $6 880-02 $a Chung-kuo hsien tai shih ko lun / $c [Lo Han-chÊ»ao]. -250 $6 880-03 $a Ti 1 pan. -260 0 $6 880-04 $a [Nan-ching shih] : $b Chiang-su jen min chÊ»u pan she : $b Chiang-su sheng hsin hua shu tien fa hsing, $c 1984. -300 $a 11, 411 p. ; $c 20 cm. -504 $a Includes bibliographical references. -650 0 $a Chinese poetry $y 20th century $x History and criticism. -880 10 $6 100-01/$1 $a 骆 寒超. -880 10 $6 245-02/$1 $a 中国 现代 诗歌 论 / $c [骆 寒超]. -880 $6 250-03/$1 $a 第1版. -880 0 $6 260-04/$1 $a [南京市] : $b 江苏 人氱 出版社 : $b 江苏省 新華 書店 叱行, $c 1984. - -01194nam a2200325 a 4500 -001 86124008 /ACN -003 DLC -005 19870219000000.0 -008 860417s1985 cc j 00010 chi -010 $a 86124008 /ACN -020 $c RMBY0.61 -035 $a (CStRLIN)DCLP86-B6501 -043 $a a-cc--- -050 0 $a DS731.U4 $b H75 1985 -066 $c $1 -082 0 $a 951/.6 $2 19 -100 10 $6 880-01 $a Hsin, She. -245 10 $6 880-02 $a Tsai Wei-wu-erh chih hsiang / $c Hsin She. -250 $6 880-03 $a Ti 1 pan. -260 0 $6 880-04 $a Wu-lu-mu-chÊ»i shih : $b Hsin-chiang jen min chÊ»u pan she : $b Hsin-chiang hsin hua shu tien fa hsing, $c 1985. -300 $a 2, 178 p. ; $c 19 cm. -440 0 $6 880-05 $a Tsu kuo ta chia tÊ»ing tsÊ»ung shu -650 0 $a Uigurs $x Juvenile literature. -650 0 $a Ethnology $z China $x Juvenile literatture. -651 0 $a China $x Ethnic relations $x Juvenile literature. -880 10 $6 100-01/$1 $a 辛 涉. -880 10 $6 245-02/$1 $a 在 维吾尔 之 乡 / $c 辛 涉. -880 $6 250-03/$1 $a 第1版. -880 0 $6 260-04/$1 $a 乌鲁木齐市 : $b 新疆 人民 出版社 : $b 新疆 新華 書店 发行, $c 1985. -880 0 $6 440-05/$1 $a 祖国 大家庭 丛书 - -01192cam a2200313 a 4500 -001 86124229 -003 DLC -005 20001214140017.0 -008 860703s1985 cc 000 1 chi -010 $a 86124229 -020 $c RMBY1.05 -035 $a (CStRLIN)DCLP86-B11515 -040 $a DLC-R $c DLC-R $d CStRLIN $d DLC -050 00 $a PL2724.H37 $b H7 1985 -066 $c $1 -082 00 $a 895.1/34 $2 19 -100 1 $6 880-01 $a Shen, Qifeng, $d b. 1741. -245 10 $6 880-02 $a Xie duo / $c Shen Qifeng zhu ; Qiao Yuzhou jiao dian. -250 $6 880-03 $a Beijing di 1 ban. -260 $6 880-04 $a Beijing : $b Ren min wen xue chu ban she : $b Xin hua shu dian Beijing fa xing suo fa xing, $c 1985. -300 $a 7, 198 p. ; $c 19 cm. -440 0 $6 880-05 $a Zhongguo xiao shuo shi liao cong shu -500 $a Short stories. -880 1 $6 100-01/$1 $a 沈 起凤, $d b. 1741. -880 10 $6 245-02/$1 $a 谐铎 / $c 沈 起凤 著 ; 乔 雨舟 校点. -880 $6 250-03/$1 $a 北京 第1版. -880 $6 260-04/$1 $a 北京 : $b 人民 文学 出版社 : $b 新华 书店 北京 发行所 发行, $c 1985. -880 0 $6 440-05/$1 $a 中国 小说 史料 丛书 -987 $a PINYIN $b CStRLIN $c 20001214 $d c $e 1.0 - -01470cam a2200349 a 4500 -001 86124531 /ACN/r93 -003 DLC -005 19930723073715.0 -008 860319s1985 cc 00000 chi -010 $a 86124531 /ACN/r93 -020 $c RMBY1.80 -035 $a (CStRLIN)DCLP86-B4826 -043 $a a-cc--- -050 0 $a HX418.5 $b .C482 1985 -066 $c $1 -082 0 $a 322/.2/0951 $2 19 -245 00 $6 880-01 $a ChÊ»ing kung cheng chih lun hsün chiao tsÊ»ai / $c Chung kung Shang-hai shih wei hsüan chÊ»uan pu tsu chih pien hsieh. -250 $6 880-02 $a Ti 1 pan. -260 $6 880-03 $a Shang-hai : $b Shang-hai jen min chÊ»u pan she : $b Hsin hua shu tien Shang-hai fa hsing so fa hsing, $c 1985. -300 $a 8, 479 p. ; $c 19 cm. -500 $a Cover title also in pinyin: Qinggong zhengzhi lunxun jiaocai. -650 0 $a Communism $z China. -650 0 $a Working class $z China. -651 0 $a China $x History $y 19th century. -651 0 $a China $x History $y 20th century. -651 0 $a China $x Description and travel. -710 20 $6 880-04 $a Chung kung Shang-hai shih wei. $b Hsüan chÊ»uan pu. -740 01 $a Qinggong zhengzhi lunxun jiaocai. -880 00 $6 245-01/$1 $a 青工 政治 轮训 教材 / $c 中共 上海 市委 宣传部 组织 编写. -880 $6 250-02/$1 $a 第1版. -880 $6 260-03/$1 $a 上海 : $b 上海 人氱 出版社 : $b 新華 書店 上海 叱行所 叱行, $c 1985. -880 20 $6 710-04/$1 $a 中共 上海 市委. $b 宣传部. - -01072nam a2200301 a 4500 -001 86125160 /ACN -003 DLC -005 19870219000000.0 -008 860327s1985 cc cfh 00010 chi -010 $a 86125160 /ACN -020 $c RMBY1.05 -035 $a (CStRLIN)DCLP86-B5292 -050 0 $a PL2862.I276 $b W8 1985 -066 $c $1 -082 0 $a 895.1/15 $2 19 -100 10 $6 880-01 $a Hsiao, ChÊ»ing. -245 10 $6 880-02 $a Wu shu hua / $c Hsiao ChÊ»ing. -250 $6 880-03 $a Ti 1 pan. -260 0 $6 880-04 $a Pei-ching : $b Pei-ching shih yüeh wen i chÊ»u pan she : $b Hsin hua shu tien Pei-ching fa hsing so fa hsing, $c 1985. -300 $a 4, 3, 199 p., [2] p. of plates : $b facsim., port. ; $c 19 cm. -440 0 $6 880-05 $a Hung yeh shih tsÊ»ung -500 $a Poems. -740 01 $a 5 shu hua. -880 10 $6 100-01/$1 $a 晓 晴. -880 10 $6 245-02/$1 $a 五束 花/ $c 晓 晴. -880 $6 250-03/$1 $a 第1版. -880 0 $6 260-04/$1 $a 北京 : $b 北京 十月 文艺 出版社 : $b 新华 书店 北京 叱行所 叱行, $c 1985. -880 0 $6 440-05/$1 $a 红叶 诗丛 - -01248nam a2200301 a 4500 -001 86125348 /ACN -003 DLC -005 19870219000000.0 -008 860304r19851917ch 00010 chi -010 $a 86125348 /ACN -035 $a (CStRLIN)DCLP86-B3824 -043 $a a-cc--- -050 0 $a DS754.18 $b .C446 1985 -066 $c $1 -082 0 $a 327.51 $2 19 -100 10 $6 880-01 $a Chuang, Ping-hai. -245 10 $6 880-02 $a Wai chiao ssu tÊ»ung lu / $c Chuang Ping-hai pien [tsuan]. -260 0 $6 880-03 $a [TÊ»ai-pei hsien Yung-ho shih] : $b Wen hai chÊ»u pan she, $c min kuo 74 [1985] -300 $a 2, 2, 2, 272 p. ; $c 22 cm. -490 1 $6 880-04 $a Chin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien : ti 2 chi ; $v 20 -500 $a Reprint. Originally published: 1917? -651 0 $a China $x Foreign relations $y 1644-1912. -830 0 $6 880-05 $a Chin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien ; $v 20. -880 10 $6 100-01/$1 $a 莊 病骸. -880 10 $6 245-02/$1 $a 外交 思痛 錄 / $c 莊 病骸 編[纂]. -880 0 $6 260-03/$1 $a [臺北縣 永和市] : $b 文海 出版社, $c 民國74 [1985] -880 1 $6 490-04/$1 $a 近代 中國 史料 叢刊 三編 : 第二輯 ; $v 20 -880 0 $6 830-05/$1 $a 近代 中國 史料 叢刊 三編 ; $v 20. - -01116cam a2200325 a 4500 -001 86125443 -003 DLC -005 20020326070412.0 -008 860304s1985 ch a 00010 chi -010 $a 86125443 -020 $c $9.00 (U.S.) -035 $a (CStRLIN)DCLP86-B3795 -040 $a DLC-R $c DLC-R $d CStRLIN $d DLC-R -043 $a a-cc--- -050 00 $a B5231 $b .L59 1985 -066 $c $1 -082 00 $a 181/.11 $2 19 -100 1 $6 880-01 $a Liu, Shaoji. -245 10 $6 880-02 $a Zhongguo zhe xue xin lun = $b A new view of the Chinese philosophy / $c Liu Shaoji zhu. -250 $6 880-03 $a Chu ban. -260 $6 880-04 $a Taibei Shi : $b Shi jie shu ju, $c min guo 74 [1985] -300 $a 6, 12, 424 p. : $b ill. ; $c 27 cm. -546 $a In Chinese. -650 0 $a Philosophy, Chinese. -740 0 $a New view of the Chinese philosophy. -880 1 $6 100-01/$1 $a 劉 紹基. -880 10 $6 245-02/$1 $a 中國 哲學 新論 = $b A new view of the Chinese philosophy / $c 劉 紹基 豗. -880 $6 250-03/$1 $a 初版. -880 $6 260-04/$1 $a 台北市 : $b 世界 書局, $c 氱國74 [1985] -987 $a PINYIN $b DLC $c 20020326 $d c - -01199nam a2200301 a 4500 -001 86154542 /ACN/r86 -003 DLC -005 19870219000000.0 -008 860528s1985 cc 00000 chi -010 $a 86154542 /ACN/r86 -020 $c RMBY3.60 (v. 1) -035 $a (CStRLIN)DCLP86-B9002 -043 $a a-cc--- -050 0 $a HB126.C4 $b C533 1985 -066 $c $1 -082 0 $a 330/.0951 $2 19 -245 00 $6 880-01 $a Chung-kuo ku tai ching chi chu shu hsüan tu / $c Yü Tsu-yao ... [et al.] pien chu. -250 $6 880-02 $a Ti 1 pan. -260 0 $6 880-03 $a [ChÊ»ang-chÊ»un shih] : $b Chi-lin jen min chÊ»u pan she : $b Chi-lin sheng hsin hua shu tien fa hsing, $c 1985. -300 $a 2 v. ; $c 20 cm. -500 $a Colophon title also in pinyin: Zhongguo gudai jingji zhushu xuandu. -650 0 $a Economics $z China $x History. -700 10 $6 880-04 $a Yü, Tsu-yao. -740 01 $a Zhongguo gudai jingji zhushu xuandu. -880 00 $6 245-01/$1 $a 中國 古代 經濟 著述 選讀 / $c 虞 祖尧 ... [et al.] 编著. -880 $6 250-02/$1 $a 第1版. -880 0 $6 260-03/$1 $a [长春市] : $b 吉林 人民 出版社 : $b 吉林省 新华 书店 发行, $c 1985. -880 10 $6 700-04/$1 $a 虞 祖尧. - -00920nam a2200253 a 4500 -001 86159478 /AK -003 DLC -005 19870219000000.0 -008 860602s1984 ko 00010 kor -010 $a 86159478 /AK -020 $c W2800 -035 $a (CStRLIN)DCLP86-B9357 -040 $a CLASIA $c CLASIA $d DLC -050 0 $a AC148 $b .K589256 1985 -066 $c $1 -100 10 $6 880-01 $a Kim, Tong-gil, $d 1928- -245 10 $6 880-02 $a Tŭrŏra, ttaltŭl a : $b Kim Tong-gil taepÊ»yo esei. -260 0 $6 880-03 $a Sŏul : $b ChÊ»ŏngnyŏnsa, $c 1984 $g (1985 printing) -300 $a 271 p. ; $c 23 cm. -440 0 $6 880-04 $a Uri sidae ŭi taepÊ»yo sanmunsŏn ; $v 1 -880 10 $6 100-01/$1 $a 김 동길, $d 1928- -880 10 $6 245-02/$1 $a 들어라, 딸들 아 : $b 김 동길 대표 에세이. -880 0 $6 260-03/$1 $a 서울 : $b 청년사, $c 1984 $g (1985 printing) -880 0 $6 440-04/$1 $a 우리 시대 의 대표 산문선 ; $v 1 - diff --git a/dependencies/yaz_3.0.14/test/marccol1.u8.2.lst b/dependencies/yaz_3.0.14/test/marccol1.u8.2.lst deleted file mode 100644 index 557fdef..0000000 --- a/dependencies/yaz_3.0.14/test/marccol1.u8.2.lst +++ /dev/null @@ -1,477 +0,0 @@ -01127cam a2200277 a 4500 -001 70813420 /AJ/r86 -003 DLC -005 19871006084439.0 -008 860826m19689999ja ab l00000 jpn -010 $a 70813420 /AJ/r86 -035 $a (CStRLIN)DCLP86-B14482 -040 $c NNC $d NNC $d DLC -043 $a a-ja--- -050 0 $a DS897.H325 $b H36 1968 -066 $c $1 -245 00 $6 880-01 $a Handa shishi. -260 0 $6 880-02 $a [Handa-shi] : $b Handa-shi, $c Shōwa 43-<59> [1968-<1984> -300 $a v. <1-5, 7-8> : $b ill. ; $c 22 cm. -500 $a Vol. 3 accompanied by Handa-shi chiiki chishitsuzu; v. 8, Handa-shi Otsukawa Asaiyama dashi kumiage zumen (1 folded) leaf). -505 1 $a [1]-[4] Shiryō hen -- [5] Honbun hen -- [7] Bunkazai hen -- [8] Sairei minzoku hen -651 0 $6 880-03 $a Handa-shi (Japan) -651 0 $6 880-04 $a Handa-shi (Japan) $x History $x Sources. -880 00 $6 245-01/$1 $a 半田 市誌. -880 0 $6 260-02/$1 $a [半田市] : $b 半田市, $c 昭和 43-<59> [1968-<1984> -880 4 $6 651-03/$1 $a 半田市 (Japan) -880 4 $6 651-04/$1 $a 半田市 (Japan) $x History $x Sources. - -00885nam a2200229 a 4500 -001 75840215 /ACN/r86 -003 DLC -005 19870219000000.0 -008 860606m19009999ch 00001 chi -010 $a 75840215 /ACN/r86 -035 $a (CStRLIN)DCLP86-B9742 -050 0 $a PL3031.T32 $b L5 -066 $c $1 -245 00 $6 880-01 $a Li tsÊ»ung. -260 0 $6 880-02 $a [Kao-hsiung shih] : $b Wen hua yüan : $b Fa hsing so Sheng su chÊ»u pan she, $c -300 $a v. <4, pts 1-2; v. 5> in <3 > ; $c 22 cm. -500 $a Cover title. -650 0 $a Didactic fiction, Chinese $z Taiwan. -710 20 $6 880-03 $a Kao-hsiung shih wen hua yüan. -880 00 $6 245-01/$1 $a 歷叢. -880 0 $6 260-02/$1 $a [高雄市] : $b 文化院 : $b 發行所 聖書 出版社, $c <民國63-66 [1974-1977 > -880 20 $6 710-03/$1 $a 高雄市 文化院. - -01054nam a2200277 a 4500 -001 84226659 /ACN -003 DLC -005 19870219000000.0 -008 860227s1983 cc ac b 00000dchi -010 $a 84226659 /ACN -035 $a (CStRLIN)DCLP86-B3400 -050 0 $a NX90 $b .I18 1983 -066 $c $1 -082 0 $a 174/.97 $2 19 -245 00 $6 880-01 $a I shu chia yü te yü. -250 $6 880-02 $a Ti 1 pan. -260 0 $6 880-03 $a ChÊ»eng-tu : $b Ssu-chÊ»uan jen min chÊ»u pan she : $b Ssu-chÊ»uan sheng hsin hua shu tien fa hsing, $c 1983. -300 $a 2, 3, 4, 244 p. : $b ill., ports. ; $c 19 cm. -440 0 $6 880-04 $a Te yü tsÊ»ung shu -504 $a Bibliography: p. 239-240. -650 0 $a Artists $x Anecdotes, facetiae, satire, etc. -650 0 $a Ethics $x Anecdotes, facetiae, satire, etc. -880 00 $6 245-01/$1 $a 艺术家 与 德育. -880 $6 250-02/$1 $a 第1版. -880 0 $6 260-03/$1 $a 成都 : $b 四川 人民 出版社 : $b 四川省 新华 书店 发行, $c 1983. -880 0 $6 440-04/$1 $a 德育 丛书 - -01390cam a2200349 a 4500 -001 84231405 -003 DLC -005 20001214140017.0 -008 841203m19849999cc b 000 0 chi -010 $a 84231405 -020 $c RMBY0.38 (v. 1) -035 $a (CStRLIN)DCLP84-B5184 -040 $a DLC-R $c DLC-R $d DLC-R $d CStRLIN $d DLC -043 $a a-cc--- -050 00 $a JQ1519.A5 $b C47529 1984 -066 $c $1 -082 00 $a 324.251/075 $2 19 -245 00 $6 880-01 $a Zheng dang xue xi cai liao / $c ben she bian. -250 $6 880-02 $a Di 1 ban. -260 $6 880-03 $a Shenyang : $b Liaoning ren min chu ban she : $b Liaoning sheng xin hua shu dian fa xing, $c 1984- -300 $a v. <1, 3-5, > ; $c 19 cm. -500 $a Colophon title also in pinyin: Zhengdang xuexi cailiao. -504 $a Includes bibliographical references. -610 20 $6 880-04 $a Zhongguo gong chan dang $x Party work. -710 2 $6 880-05 $a Liaoning ren min chu ban she. -740 0 $a Zhengdang xuexi cailiao. -880 00 $6 245-01/$1 $a 整党 学习 材料 / $c 本社 编. -880 $6 250-02/$1 $a 第1版. -880 $6 260-03/$1 $a 沈阳 : $b 辽宁 人氱 出版社 : $b 辽宁省 新华 书店 叱行, $c 1984- -880 24 $6 610-04/$1 $a 中国 共产党 $x Party work. -880 2 $6 710-05/$1 $a 辽宁 人氱 出版社. -987 $a PINYIN $b CStRLIN $c 20001212 $d c $e 1.0 - -00953nam a2200241 a 4500 -001 85174785 /ACN -003 DLC -005 19870219000000.0 -008 860312s1983 cc a 00000 chi -010 $a 85174785 /ACN -035 $a (CStRLIN)DCLP86-B4377 -043 $a a-cc-hp -050 0 $a GR336.H67 $b H6 1983 -066 $c $1 -082 0 $a 398.2/32/5115 $2 19 -245 00 $6 880-01 $a Ho-pei min chien ku shih hsüan / $c [chÊ»a tÊ»u Chang Wen-hsüeh]. -250 $6 880-02 $a Hsin 1 pan. -260 0 $6 880-03 $a Shih-chia-chuang : $b Hua shan wen i chÊ»u pan she : $b Ho-pei sheng hsin hua shu tien fa hsing, $c 1983. -300 $a 2, 255 p. : $b ill. ; $c 19 cm. -650 0 $a Tales $z China $z Hopeh Province. -880 00 $6 245-01/$1 $a 河北 氱间 故事 选 / $c [插图 张 文学]. -880 $6 250-02/$1 $a 新1版. -880 0 $6 260-03/$1 $a 石家庄 : $b 花山 文艺 出版社 : $b 河北省 新華 書店 叱行, $c 1983. - -01219nam a2200325 a 4500 -001 86116930 /ACN -003 DLC -005 19870219000000.0 -008 860430s1984 cc b 00010 chi -010 $a 86116930 /ACN -020 $c RMBY1.00 -035 $a (CStRLIN)DCLP86-B7190 -050 0 $a PN45 $b .C436 1984 -066 $c $1 -082 0 $a 809 $2 19 -100 10 $6 880-01 $a Chang, Hsin-chien. -245 10 $6 880-02 $a Wen hsüeh chi chÊ»u chih shih / $c Chang Hsin-chien. -250 $6 880-03 $a Ti 1 pan. -260 0 $6 880-04 $a Ho-fei shih : $b An-hui wen i chÊ»u pan she : $b An-hui sheng hsin hua shu tien fa hsing, $c 1984. -300 $a 196 p. ; $c 19 cm. -440 0 $6 880-05 $a ChÊ»ing nien wen hsüeh tsÊ»ung shu -500 $a Cover title also in pinyin: Wenxuejichuzhishi. -504 $a Includes bibliographies. -650 0 $a Literature. -740 01 $a Wenxuejichuzhishi. -880 10 $6 100-01/$1 $a 章 新建. -880 10 $6 245-02/$1 $a 文学 基础 知识 / $c 章 新建. -880 $6 250-03/$1 $a 第1版. -880 0 $6 260-04/$1 $a 合肥市 : $b 安徽 文艺 出版社 : $b 安徽省 新華 書店 发行, $c 1984. -880 0 $6 440-05/$1 $a 青年 文学 丛书 - -01502nam a2200301 a 4500 -001 86117080 /ACN -003 DLC -005 19870219000000.0 -008 860502s1985 cc ab b 00000 chi -010 $a 86117080 /ACN -020 $c RMBY2.30 -035 $a (CStRLIN)DCLP86-B7475 -043 $a a-cc--- -050 0 $a QE537.2.C6 $b S5 1985 -066 $c $1 -082 0 $a 551.2/2/09514 $2 19 -245 00 $6 880-01 $a Shan Kan Ning ChÊ»ing ssu sheng (chÊ»ü) chÊ»iang ti chen mu lu : $b kung yüan [chÊ»ien] 1177 nien-kung yüan 1982 nien / $c Kuo chia ti chen chü Lan-chou ti chen yen chiu so. -250 $6 880-02 $a Ti 1 pan. -260 0 $6 880-03 $a Hsi-an : $b Shan-hsi kÊ»o hsüeh chi shu chÊ»u pan she : $b Shan-hsi sheng hsin hua shu tien fa hsing, $c 1985. -300 $a 2, 170 p. : $b ill., maps ; $c 26 cm. -504 $a Bibliography: p. 170. -650 0 $a Earthquakes $z China, Northwest $x Chronology. -710 20 $6 880-04 $a Kuo chia ti chen chü Lan-chou ti chen yen chiu so. -740 01 $a Shan Kan Ning ChÊ»ing 4 sheng (chÊ»ü) chÊ»iang ti chen mu lu. -880 00 $6 245-01/$1 $a 陕甘宁青 四省(区) 强 地震 目录 : $b 公元[前] 1177年-公元 1982å¹´ / $c 国家 地震局 兰州 地震 研究所. -880 $6 250-02/$1 $a 第1版. -880 0 $6 260-03/$1 $a 西安 : $b 陕西 学 技术 出版社 : $b 陕西省 新華 書店 叱行, $c 1985. -880 20 $6 710-04/$1 $a 国家 地震局 兰州 地震 研究所. - -01333cam a2200337 a 4500 -001 86118651 /ACN/r88 -003 DLC -005 19880830123434.0 -008 860218s1985 ch d 00110 chi -010 $a 86118651 /ACN/r88 -020 $c NT$260.00 -035 $a (CStRLIN)DCLP86-B2669 -041 0 $a chieng -050 0 $a SD126 $b .C473 1985 -066 $c $1 -082 0 $a 634.9/03/21 $2 19 -100 10 $6 880-01 $a ChÊ»en, Ming-tsÊ»un. -245 10 $6 880-02 $a Sen lin hsüeh ming tzÊ»u tzÊ»u tien = $b English Chinese dictionary of forestry / $c ChÊ»en Ming-tsÊ»un, Huang Chin-hsien ho pien. -250 $6 880-03 $a ChÊ»u pan. -260 0 $6 880-04 $a TÊ»ai-pei shih : $b Ming shan chÊ»u pan she, $c min kuo 74 [1985] -300 $a 274 p. ; $c 20 cm. -500 $a Includes index. -650 0 $a Forests and forestry $x Dictionaries. -650 0 $a English language $x Dictionaries $x Chinese. -700 10 $6 880-05 $a Huang, Chin-hsien. -740 01 $a English Chinese dictionary of forestry. -880 10 $6 100-01/$1 $a 陳 銘東. -880 10 $6 245-02/$1 $a 森林學 名詞 辭典 = $b English Chinese dictionary of forestry / $c 陳 銘東, 黃 釱仙 合編. -880 $6 250-03/$1 $a 初版. -880 0 $6 260-04/$1 $a 台北市 : $b 名山 出版社, $c 氱國74 [1985] -880 10 $6 700-05/$1 $a 黃 釱仙. - -01051nam a2200289 a 4500 -001 86118679 /ACN -003 DLC -005 19870219000000.0 -008 860218s1985 ch 00011 chi -010 $a 86118679 /ACN -035 $a (CStRLIN)DCLP86-B2674 -050 0 $a PL2865.H3 $b H84 1985 -066 $c $1 -082 0 $a 895.1/35 $2 19 -100 10 $6 880-01 $a Huang, Hai, $d 1943- -245 10 $6 880-02 $a Hsing hsing ti hsiang lien / $c Huang Hai chu. -250 $6 880-03 $a ChÊ»u pan. -260 0 $6 880-04 $a TÊ»ai-pei shih : $b Huang kuan chÊ»u pan she, $c min kuo 74 [1985] -300 $a 297 p. ; $c 19 cm. -440 0 $6 880-05 $a Huang kuan tsÊ»ung shu ; $v ti 1143 chung -500 $a Short stories. -650 0 $a Science fiction, Chinese. -880 10 $6 100-01/$1 $a 黃 海, $d 1943- -880 10 $6 245-02/$1 $a 星星 的 項練 / $c 黃 海 著. -880 $6 250-03/$1 $a 初版. -880 0 $6 260-04/$1 $a 台北市 : $b 皇冠 出版社, $c 民國74 [1985] -880 0 $6 440-05/$1 $a 皇冠 叢書 ; $v 第1143種 - -01437cam a2200361 a 4500 -001 86119726 -003 DLC -005 20010412140706.0 -008 860403s1985 cc af b 00000 chi -010 $a 86119726 -020 $c RMBY3.90 -035 $a (CStRLIN)DCLP86-B5782 -040 $a DLC-R $c DLC-R $d DLC-R $d CStRLIN $d DLC-R -043 $a a-cc--- -050 00 $a DS751 $b .C4945 1985 -066 $c $1 -082 00 $a 951/.024 $2 19 -245 00 $6 880-01 $a Jian ming Song shi / $c Zhou Baozhu, Chen Zhen zhu bian ; Zhou Baozhu ... [et al.] bian xie. -250 $6 880-02 $a Di 1 ban. -260 $6 880-03 $a Beijing : $b Ren min chu ban she : $b Xin hua shu dian fa xing, $c 1985. -300 $a 4, 5, 603 p., [12] p. of plates : $b ill. ; $c 21 cm. -500 $a Colophon title also in pinyin : Jianming Songshi. -504 $a Includes bibliographical references. -651 0 $a China $x History $y Song dynasty, 960-1279. -700 1 $6 880-04 $a Zhou, Baozhu. -700 1 $6 880-05 $a Chen, Zhen. -740 0 $a Jianming Songshi. -880 00 $6 245-01/$1 $a 簡明 宋 史 / $c 周 宝珠, 陈 振 主编 ; 周 宝珠 ... [et al.] 编写. -880 $6 250-02/$1 $a 第1版. -880 $6 260-03/$1 $a 北京 : $b 人民 出版社 : $b 新華 書店 发行, $c 1985. -880 1 $6 700-04/$1 $a 周 宝珠. -880 1 $6 700-05/$1 $a 陈 振. -987 $a PINYIN $b CStRLIN $c 20001214 $d c $e 1.0 - -01114nam a2200289 a 4500 -001 86122256 /ACN -003 DLC -005 19870219000000.0 -008 860303s1984 cc b 00010 chi -010 $a 86122256 /ACN -020 $c RMBY2.80 -035 $a (CStRLIN)DCLP86-B3622 -043 $a a-cc--- -050 0 $a PL2333 $b .L63 1984 -066 $c $1 -082 0 $a 895.1/15/09 $2 19 -100 10 $6 880-01 $a Lo, Han-chÊ»ao. -245 10 $6 880-02 $a Chung-kuo hsien tai shih ko lun / $c [Lo Han-chÊ»ao]. -250 $6 880-03 $a Ti 1 pan. -260 0 $6 880-04 $a [Nan-ching shih] : $b Chiang-su jen min chÊ»u pan she : $b Chiang-su sheng hsin hua shu tien fa hsing, $c 1984. -300 $a 11, 411 p. ; $c 20 cm. -504 $a Includes bibliographical references. -650 0 $a Chinese poetry $y 20th century $x History and criticism. -880 10 $6 100-01/$1 $a 骆 寒超. -880 10 $6 245-02/$1 $a 中国 现代 诗歌 论 / $c [骆 寒超]. -880 $6 250-03/$1 $a 第1版. -880 0 $6 260-04/$1 $a [南京市] : $b 江苏 人氱 出版社 : $b 江苏省 新華 書店 叱行, $c 1984. - -01244nam a2200325 a 4500 -001 86124008 /ACN -003 DLC -005 19870219000000.0 -008 860417s1985 cc j 00010 chi -010 $a 86124008 /ACN -020 $c RMBY0.61 -035 $a (CStRLIN)DCLP86-B6501 -043 $a a-cc--- -050 0 $a DS731.U4 $b H75 1985 -066 $c $1 -082 0 $a 951/.6 $2 19 -100 10 $6 880-01 $a Hsin, She. -245 10 $6 880-02 $a Tsai Wei-wu-erh chih hsiang / $c Hsin She. -250 $6 880-03 $a Ti 1 pan. -260 0 $6 880-04 $a Wu-lu-mu-chÊ»i shih : $b Hsin-chiang jen min chÊ»u pan she : $b Hsin-chiang hsin hua shu tien fa hsing, $c 1985. -300 $a 2, 178 p. ; $c 19 cm. -440 0 $6 880-05 $a Tsu kuo ta chia tÊ»ing tsÊ»ung shu -650 0 $a Uigurs $x Juvenile literature. -650 0 $a Ethnology $z China $x Juvenile literatture. -651 0 $a China $x Ethnic relations $x Juvenile literature. -880 10 $6 100-01/$1 $a 辛 涉. -880 10 $6 245-02/$1 $a 在 维吾尔 之 乡 / $c 辛 涉. -880 $6 250-03/$1 $a 第1版. -880 0 $6 260-04/$1 $a 乌鲁木齐市 : $b 新疆 人民 出版社 : $b 新疆 新華 書店 发行, $c 1985. -880 0 $6 440-05/$1 $a 祖国 大家庭 丛书 - -01252cam a2200313 a 4500 -001 86124229 -003 DLC -005 20001214140017.0 -008 860703s1985 cc 000 1 chi -010 $a 86124229 -020 $c RMBY1.05 -035 $a (CStRLIN)DCLP86-B11515 -040 $a DLC-R $c DLC-R $d CStRLIN $d DLC -050 00 $a PL2724.H37 $b H7 1985 -066 $c $1 -082 00 $a 895.1/34 $2 19 -100 1 $6 880-01 $a Shen, Qifeng, $d b. 1741. -245 10 $6 880-02 $a Xie duo / $c Shen Qifeng zhu ; Qiao Yuzhou jiao dian. -250 $6 880-03 $a Beijing di 1 ban. -260 $6 880-04 $a Beijing : $b Ren min wen xue chu ban she : $b Xin hua shu dian Beijing fa xing suo fa xing, $c 1985. -300 $a 7, 198 p. ; $c 19 cm. -440 0 $6 880-05 $a Zhongguo xiao shuo shi liao cong shu -500 $a Short stories. -880 1 $6 100-01/$1 $a 沈 起凤, $d b. 1741. -880 10 $6 245-02/$1 $a 谐铎 / $c 沈 起凤 著 ; 乔 雨舟 校点. -880 $6 250-03/$1 $a 北京 第1版. -880 $6 260-04/$1 $a 北京 : $b 人民 文学 出版社 : $b 新华 书店 北京 发行所 发行, $c 1985. -880 0 $6 440-05/$1 $a 中国 小说 史料 丛书 -987 $a PINYIN $b CStRLIN $c 20001214 $d c $e 1.0 - -01516cam a2200349 a 4500 -001 86124531 /ACN/r93 -003 DLC -005 19930723073715.0 -008 860319s1985 cc 00000 chi -010 $a 86124531 /ACN/r93 -020 $c RMBY1.80 -035 $a (CStRLIN)DCLP86-B4826 -043 $a a-cc--- -050 0 $a HX418.5 $b .C482 1985 -066 $c $1 -082 0 $a 322/.2/0951 $2 19 -245 00 $6 880-01 $a ChÊ»ing kung cheng chih lun hsün chiao tsÊ»ai / $c Chung kung Shang-hai shih wei hsüan chÊ»uan pu tsu chih pien hsieh. -250 $6 880-02 $a Ti 1 pan. -260 $6 880-03 $a Shang-hai : $b Shang-hai jen min chÊ»u pan she : $b Hsin hua shu tien Shang-hai fa hsing so fa hsing, $c 1985. -300 $a 8, 479 p. ; $c 19 cm. -500 $a Cover title also in pinyin: Qinggong zhengzhi lunxun jiaocai. -650 0 $a Communism $z China. -650 0 $a Working class $z China. -651 0 $a China $x History $y 19th century. -651 0 $a China $x History $y 20th century. -651 0 $a China $x Description and travel. -710 20 $6 880-04 $a Chung kung Shang-hai shih wei. $b Hsüan chÊ»uan pu. -740 01 $a Qinggong zhengzhi lunxun jiaocai. -880 00 $6 245-01/$1 $a 青工 政治 轮训 教材 / $c 中共 上海 市委 宣传部 组织 编写. -880 $6 250-02/$1 $a 第1版. -880 $6 260-03/$1 $a 上海 : $b 上海 人氱 出版社 : $b 新華 書店 上海 叱行所 叱行, $c 1985. -880 20 $6 710-04/$1 $a 中共 上海 市委. $b 宣传部. - -01121nam a2200301 a 4500 -001 86125160 /ACN -003 DLC -005 19870219000000.0 -008 860327s1985 cc cfh 00010 chi -010 $a 86125160 /ACN -020 $c RMBY1.05 -035 $a (CStRLIN)DCLP86-B5292 -050 0 $a PL2862.I276 $b W8 1985 -066 $c $1 -082 0 $a 895.1/15 $2 19 -100 10 $6 880-01 $a Hsiao, ChÊ»ing. -245 10 $6 880-02 $a Wu shu hua / $c Hsiao ChÊ»ing. -250 $6 880-03 $a Ti 1 pan. -260 0 $6 880-04 $a Pei-ching : $b Pei-ching shih yüeh wen i chÊ»u pan she : $b Hsin hua shu tien Pei-ching fa hsing so fa hsing, $c 1985. -300 $a 4, 3, 199 p., [2] p. of plates : $b facsim., port. ; $c 19 cm. -440 0 $6 880-05 $a Hung yeh shih tsÊ»ung -500 $a Poems. -740 01 $a 5 shu hua. -880 10 $6 100-01/$1 $a 晓 晴. -880 10 $6 245-02/$1 $a 五束 花/ $c 晓 晴. -880 $6 250-03/$1 $a 第1版. -880 0 $6 260-04/$1 $a 北京 : $b 北京 十月 文艺 出版社 : $b 新华 书店 北京 叱行所 叱行, $c 1985. -880 0 $6 440-05/$1 $a 红叶 诗丛 - -01301nam a2200301 a 4500 -001 86125348 /ACN -003 DLC -005 19870219000000.0 -008 860304r19851917ch 00010 chi -010 $a 86125348 /ACN -035 $a (CStRLIN)DCLP86-B3824 -043 $a a-cc--- -050 0 $a DS754.18 $b .C446 1985 -066 $c $1 -082 0 $a 327.51 $2 19 -100 10 $6 880-01 $a Chuang, Ping-hai. -245 10 $6 880-02 $a Wai chiao ssu tÊ»ung lu / $c Chuang Ping-hai pien [tsuan]. -260 0 $6 880-03 $a [TÊ»ai-pei hsien Yung-ho shih] : $b Wen hai chÊ»u pan she, $c min kuo 74 [1985] -300 $a 2, 2, 2, 272 p. ; $c 22 cm. -490 1 $6 880-04 $a Chin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien : ti 2 chi ; $v 20 -500 $a Reprint. Originally published: 1917? -651 0 $a China $x Foreign relations $y 1644-1912. -830 0 $6 880-05 $a Chin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien ; $v 20. -880 10 $6 100-01/$1 $a 莊 病骸. -880 10 $6 245-02/$1 $a 外交 思痛 錄 / $c 莊 病骸 編[纂]. -880 0 $6 260-03/$1 $a [臺北縣 永和市] : $b 文海 出版社, $c 民國74 [1985] -880 1 $6 490-04/$1 $a 近代 中國 史料 叢刊 三編 : 第二輯 ; $v 20 -880 0 $6 830-05/$1 $a 近代 中國 史料 叢刊 三編 ; $v 20. - -01158cam a2200325 a 4500 -001 86125443 -003 DLC -005 20020326070412.0 -008 860304s1985 ch a 00010 chi -010 $a 86125443 -020 $c $9.00 (U.S.) -035 $a (CStRLIN)DCLP86-B3795 -040 $a DLC-R $c DLC-R $d CStRLIN $d DLC-R -043 $a a-cc--- -050 00 $a B5231 $b .L59 1985 -066 $c $1 -082 00 $a 181/.11 $2 19 -100 1 $6 880-01 $a Liu, Shaoji. -245 10 $6 880-02 $a Zhongguo zhe xue xin lun = $b A new view of the Chinese philosophy / $c Liu Shaoji zhu. -250 $6 880-03 $a Chu ban. -260 $6 880-04 $a Taibei Shi : $b Shi jie shu ju, $c min guo 74 [1985] -300 $a 6, 12, 424 p. : $b ill. ; $c 27 cm. -546 $a In Chinese. -650 0 $a Philosophy, Chinese. -740 0 $a New view of the Chinese philosophy. -880 1 $6 100-01/$1 $a 劉 紹基. -880 10 $6 245-02/$1 $a 中國 哲學 新論 = $b A new view of the Chinese philosophy / $c 劉 紹基 豗. -880 $6 250-03/$1 $a 初版. -880 $6 260-04/$1 $a 台北市 : $b 世界 書局, $c 氱國74 [1985] -987 $a PINYIN $b DLC $c 20020326 $d c - -01247nam a2200301 a 4500 -001 86154542 /ACN/r86 -003 DLC -005 19870219000000.0 -008 860528s1985 cc 00000 chi -010 $a 86154542 /ACN/r86 -020 $c RMBY3.60 (v. 1) -035 $a (CStRLIN)DCLP86-B9002 -043 $a a-cc--- -050 0 $a HB126.C4 $b C533 1985 -066 $c $1 -082 0 $a 330/.0951 $2 19 -245 00 $6 880-01 $a Chung-kuo ku tai ching chi chu shu hsüan tu / $c Yü Tsu-yao ... [et al.] pien chu. -250 $6 880-02 $a Ti 1 pan. -260 0 $6 880-03 $a [ChÊ»ang-chÊ»un shih] : $b Chi-lin jen min chÊ»u pan she : $b Chi-lin sheng hsin hua shu tien fa hsing, $c 1985. -300 $a 2 v. ; $c 20 cm. -500 $a Colophon title also in pinyin: Zhongguo gudai jingji zhushu xuandu. -650 0 $a Economics $z China $x History. -700 10 $6 880-04 $a Yü, Tsu-yao. -740 01 $a Zhongguo gudai jingji zhushu xuandu. -880 00 $6 245-01/$1 $a 中國 古代 經濟 著述 選讀 / $c 虞 祖尧 ... [et al.] 编著. -880 $6 250-02/$1 $a 第1版. -880 0 $6 260-03/$1 $a [长春市] : $b 吉林 人民 出版社 : $b 吉林省 新华 书店 发行, $c 1985. -880 10 $6 700-04/$1 $a 虞 祖尧. - -00951nam a2200253 a 4500 -001 86159478 /AK -003 DLC -005 19870219000000.0 -008 860602s1984 ko 00010 kor -010 $a 86159478 /AK -020 $c W2800 -035 $a (CStRLIN)DCLP86-B9357 -040 $a CLASIA $c CLASIA $d DLC -050 0 $a AC148 $b .K589256 1985 -066 $c $1 -100 10 $6 880-01 $a Kim, Tong-gil, $d 1928- -245 10 $6 880-02 $a Tŭrŏra, ttaltŭl a : $b Kim Tong-gil taepÊ»yo esei. -260 0 $6 880-03 $a Sŏul : $b ChÊ»ŏngnyŏnsa, $c 1984 $g (1985 printing) -300 $a 271 p. ; $c 23 cm. -440 0 $6 880-04 $a Uri sidae ŭi taepÊ»yo sanmunsŏn ; $v 1 -880 10 $6 100-01/$1 $a 김 동길, $d 1928- -880 10 $6 245-02/$1 $a 들어라, 딸들 아 : $b 김 동길 대표 에세이. -880 0 $6 260-03/$1 $a 서울 : $b 청년사, $c 1984 $g (1985 printing) -880 0 $6 440-04/$1 $a 우리 시대 의 대표 산문선 ; $v 1 - diff --git a/dependencies/yaz_3.0.14/test/marccol1.u8.marc b/dependencies/yaz_3.0.14/test/marccol1.u8.marc deleted file mode 100644 index bfd3e2f..0000000 --- a/dependencies/yaz_3.0.14/test/marccol1.u8.marc +++ /dev/null @@ -1 +0,0 @@ -01087cam a2200277 a 4500001002000000003000400020005001700024008004100041010002400082035002700106040001800133043001200151050002500163066000700188245002600195260006800221300003600289500012800325505009200453651003000545651004900575880003000624880007000654880003300724880005200757 70813420 /AJ/r86DLC19871006084439.0860826m19689999ja ab l00000 jpn  a 70813420 /AJ/r86 a(CStRLIN)DCLP86-B14482 cNNCdNNCdDLC aa-ja---0 aDS897.H325bH36 1968 c$1006880-01aHanda shishi.0 6880-02a[Handa-shi] :bHanda-shi,cShōwa 43-<59> [1968-<1984> av. <1-5, 7-8> :bill. ;c22 cm. aVol. 3 accompanied by Handa-shi chiiki chishitsuzu; v. 8, Handa-shi Otsukawa Asaiyama dashi kumiage zumen (1 folded) leaf).1 a[1]-[4] Shiryō hen -- [5] Honbun hen -- [7] Bunkazai hen -- [8] Sairei minzoku hen 06880-03aHanda-shi (Japan) 06880-04aHanda-shi (Japan)xHistoryxSources.006245-01/$1a半田 市誌.0 6260-02/$1a[半田市] :b半田市,c昭和 43-<59> [1968-<1984> 46651-03/$1a半田市 (Japan) 46651-04/$1a半田市 (Japan)xHistoryxSources.00847nam a2200229 a 4500001002100000003000400021005001700025008004100042010002500083035002600108050001900134066000700153245002400160260012100184300004600305500001700351650003900368710004400407880002300451880010600474880003700580 75840215 /ACN/r86DLC19870219000000.0860606m19009999ch 00001 chi  a 75840215 /ACN/r86 a(CStRLIN)DCLP86-B97420 aPL3031.T32bL5 c$1006880-01aLi tsÊ»ung.0 6880-02a[Kao-hsiung shih] :bWen hua yüan :bFa hsing so Sheng su chÊ»u pan she,c av. <4, pts 1-2; v. 5> in <3 > ;c22 cm. aCover title. 0aDidactic fiction, ChinesezTaiwan.206880-03aKao-hsiung shih wen hua yüan.006245-01/$1a歷叢.0 6260-02/$1a[高雄市] :b文化院 :b發行所 聖書 出版社,c<民國63-66 [1974-1977 >206710-03/$1a高雄市 文化院.01020nam a2200277 a 4500001001700000003000400017005001700021008004100038010002100079035002600100050002000126066000700146082001600153245003700169250002200206260011600228300004600344440003200390504003000422650004700452650004600499880004100545880002400586880010100610880003100711 84226659 /ACNDLC19870219000000.0860227s1983 cc ac b 00000dchi  a 84226659 /ACN a(CStRLIN)DCLP86-B34000 aNX90b.I18 1983 c$10 a174/.97219006880-01aI shu chia yü te yü. 6880-02aTi 1 pan.0 6880-03aChÊ»eng-tu :bSsu-chÊ»uan jen min chÊ»u pan she :bSsu-chÊ»uan sheng hsin hua shu tien fa hsing,c1983. a2, 3, 4, 244 p. :bill., ports. ;c19 cm. 06880-04aTe yü tsÊ»ung shu aBibliography: p. 239-240. 0aArtistsxAnecdotes, facetiae, satire, etc. 0aEthicsxAnecdotes, facetiae, satire, etc.006245-01/$1a艺术家 与 德育. 6250-02/$1a第1版.0 6260-03/$1a成都 :b四川 人民 出版社 :b四川省 新华 书店 发行,c1983. 06440-04/$1a德育 丛书01336cam a2200349 a 4500001001300000003000400013005001700017008004100034010001700075020002000092035002600112040003800138043001200176050002700188066000700215082002000222245005600242250002200298260010400320300003000424500006000454504004100514610004900555710004200604740002900646880005700675880002400732880010100756880004700857880004400904987003800948 84231405 DLC20001214140017.0841203m19849999cc b 000 0 chi  a 84231405  cRMBY0.38 (v. 1) a(CStRLIN)DCLP84-B5184 aDLC-RcDLC-RdDLC-RdCStRLINdDLC aa-cc---00aJQ1519.A5bC47529 1984 c$100a324.251/075219006880-01aZheng dang xue xi cai liao /cben she bian. 6880-02aDi 1 ban. 6880-03aShenyang :bLiaoning ren min chu ban she :bLiaoning sheng xin hua shu dian fa xing,c1984- av. <1, 3-5, > ;c19 cm. aColophon title also in pinyin: Zhengdang xuexi cailiao. aIncludes bibliographical references.206880-04aZhongguo gong chan dangxParty work.2 6880-05aLiaoning ren min chu ban she.0 aZhengdang xuexi cailiao.006245-01/$1a整党 学习 材料 /c本社 编. 6250-02/$1a第1版. 6260-03/$1a沈阳 :b辽宁 人氱 出版社 :b辽宁省 新华 书店 叱行,c1984-246610-04/$1a中国 共产党xParty work.2 6710-05/$1a辽宁 人氱 出版社. aPINYINbCStRLINc20001212dce1.000916nam a2200241 a 4500001001700000003000400017005001700021008004100038010002100079035002600100043001200126050002300138066000700161082002200168245008000190250002400270260011200294300003200406650003400438880007400472880002400546880010400570 85174785 /ACNDLC19870219000000.0860312s1983 cc a 00000 chi  a 85174785 /ACN a(CStRLIN)DCLP86-B4377 aa-cc-hp0 aGR336.H67bH6 1983 c$10 a398.2/32/5115219006880-01aHo-pei min chien ku shih hsüan /c[chÊ»a tÊ»u Chang Wen-hsüeh]. 6880-02aHsin 1 pan.0 6880-03aShih-chia-chuang :bHua shan wen i chÊ»u pan she :bHo-pei sheng hsin hua shu tien fa hsing,c1983. a2, 255 p. :bill. ;c19 cm. 0aTaleszChinazHopeh Province.006245-01/$1a河北 氱间 故事 选 /c[插图 张 文学]. 6250-02/$1a新1版.0 6260-03/$1a石家庄 :b花山 文艺 出版社 :b河北省 新華 書店 叱行,c1983.01171nam a2200325 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113050002100139066000700160082001200167100003100179245006500210250002200275260010500297300002100402440004900423500005100472504002900523650001600552740002300568880002900591880005700620880002400677880010400701880004000805 86116930 /ACNDLC19870219000000.0860430s1984 cc b 00010 chi  a 86116930 /ACN cRMBY1.00 a(CStRLIN)DCLP86-B71900 aPN45b.C436 1984 c$10 a809219106880-01aChang, Hsin-chien.106880-02aWen hsüeh chi chÊ»u chih shih /cChang Hsin-chien. 6880-03aTi 1 pan.0 6880-04aHo-fei shih :bAn-hui wen i chÊ»u pan she :bAn-hui sheng hsin hua shu tien fa hsing,c1984. a196 p. ;c19 cm. 06880-05aChÊ»ing nien wen hsüeh tsÊ»ung shu aCover title also in pinyin: Wenxuejichuzhishi. aIncludes bibliographies. 0aLiterature.01aWenxuejichuzhishi.106100-01/$1a章 新建.106245-02/$1a文学 基础 知识 /c章 新建. 6250-03/$1a第1版.0 6260-04/$1a合肥市 :b安徽 文艺 出版社 :b安徽省 新華 書店 发行,c1984. 06440-05/$1a青年 文学 丛书01437nam a2200301 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113043001200139050002400151066000700175082002200182245019000204250002200394260011900416300003800535504002600573650004700599710006500646740006800711880015700779880002400936880011000960880006501070 86117080 /ACNDLC19870219000000.0860502s1985 cc ab b 00000 chi  a 86117080 /ACN cRMBY2.30 a(CStRLIN)DCLP86-B7475 aa-cc---0 aQE537.2.C6bS5 1985 c$10 a551.2/2/09514219006880-01aShan Kan Ning ChÊ»ing ssu sheng (chÊ»ü) chÊ»iang ti chen mu lu :bkung yüan [chÊ»ien] 1177 nien-kung yüan 1982 nien /cKuo chia ti chen chü Lan-chou ti chen yen chiu so. 6880-02aTi 1 pan.0 6880-03aHsi-an :bShan-hsi kÊ»o hsüeh chi shu chÊ»u pan she :bShan-hsi sheng hsin hua shu tien fa hsing,c1985. a2, 170 p. :bill., maps ;c26 cm. aBibliography: p. 170. 0aEarthquakeszChina, NorthwestxChronology.206880-04aKuo chia ti chen chü Lan-chou ti chen yen chiu so.01aShan Kan Ning ChÊ»ing 4 sheng (chÊ»ü) chÊ»iang ti chen mu lu.006245-01/$1a陕甘宁青 四省(区) 强 地震 目录 :b公元[前] 1177年-公元 1982å¹´ /c国家 地震局 兰州 地震 研究所. 6250-02/$1a第1版.0 6260-03/$1a西安 :b陕西 秱学 技术 出版社 :b陕西省 新華 書店 叱行,c1985.206710-04/$1a国家 地震局 兰州 地震 研究所.01289cam a2200337 a 4500001002100000003000400021005001700025008004100042010002500083020001400108035002600122041001100148050002200159066000700181082002000188100003300208245014100241250002300382260007400405300002100479500002000500650004000520650004500560700003100605740004400636880002900680880012500709880002300834880006500857880002900922 86118651 /ACN/r88DLC19880830123434.0860218s1985 ch d 00110 chi  a 86118651 /ACN/r88 cNT$260.00 a(CStRLIN)DCLP86-B26690 achieng0 aSD126b.C473 1985 c$10 a634.9/03/21219106880-01aChÊ»en, Ming-tsÊ»un.106880-02aSen lin hsüeh ming tzÊ»u tzÊ»u tien =bEnglish Chinese dictionary of forestry /cChÊ»en Ming-tsÊ»un, Huang Chin-hsien ho pien. 6880-03aChÊ»u pan.0 6880-04aTÊ»ai-pei shih :bMing shan chÊ»u pan she,cmin kuo 74 [1985] a274 p. ;c20 cm. aIncludes index. 0aForests and forestryxDictionaries. 0aEnglish languagexDictionariesxChinese.106880-05aHuang, Chin-hsien.01aEnglish Chinese dictionary of forestry.106100-01/$1a陳 銘東.106245-02/$1a森林學 名詞 辭典 =bEnglish Chinese dictionary of forestry /c陳 銘東, 黃 釱仙 合編. 6250-03/$1a初版.0 6260-04/$1a台北市 :b名山 出版社,c氱國74 [1985]106700-05/$1a黃 釱仙.00995nam a2200289 a 4500001001700000003000400017005001700021008004100038010002100079035002600100050002400126066000700150082001700157100003100174245005700205250002300262260007500285300002100360440005200381500001900433650003000452880003300482880005700515880002300572880006500595880004500660 86118679 /ACNDLC19870219000000.0860218s1985 ch 00011 chi  a 86118679 /ACN a(CStRLIN)DCLP86-B26740 aPL2865.H3bH84 1985 c$10 a895.1/35219106880-01aHuang, Hai,d1943-106880-02aHsing hsing ti hsiang lien /cHuang Hai chu. 6880-03aChÊ»u pan.0 6880-04aTÊ»ai-pei shih :bHuang kuan chÊ»u pan she,cmin kuo 74 [1985] a297 p. ;c19 cm. 06880-05aHuang kuan tsÊ»ung shu ;vti 1143 chung aShort stories. 0aScience fiction, Chinese.106100-01/$1a黃 海,d1943-106245-02/$1a星星 的 項練 /c黃 海 著. 6250-03/$1a初版.0 6260-04/$1a台北市 :b皇冠 出版社,c民國74 [1985] 06440-05/$1a皇冠 叢書 ;v第1143種01365cam a2200361 a 4500001001300000003000400013005001700017008004100034010001700075020001300092035002600105040004000131043001200171050002300183066000700206082001700213245010300230250002200333260007900355300005400434500005400488504004100542651004500583700002600628700002400654740002200678880010600700880002400806880008000830880002900910880002600939987003800965 86119726 DLC20010412140706.0860403s1985 cc af b 00000 chi  a 86119726  cRMBY3.90 a(CStRLIN)DCLP86-B5782 aDLC-RcDLC-RdDLC-RdCStRLINdDLC-R aa-cc---00aDS751b.C4945 1985 c$100a951/.024219006880-01aJian ming Song shi /cZhou Baozhu, Chen Zhen zhu bian ; Zhou Baozhu ... [et al.] bian xie. 6880-02aDi 1 ban. 6880-03aBeijing :bRen min chu ban she :bXin hua shu dian fa xing,c1985. a4, 5, 603 p., [12] p. of plates :bill. ;c21 cm. aColophon title also in pinyin : Jianming Songshi. aIncludes bibliographical references. 0aChinaxHistoryySong dynasty, 960-1279.1 6880-04aZhou, Baozhu.1 6880-05aChen, Zhen.0 aJianming Songshi.006245-01/$1a簡明 宋 史 /c周 宝珠, 陈 振 主编 ; 周 宝珠 ... [et al.] 编写. 6250-02/$1a第1版. 6260-03/$1a北京 :b人民 出版社 :b新華 書店 发行,c1985.1 6700-04/$1a周 宝珠.1 6700-05/$1a陈 振. aPINYINbCStRLINc20001214dce1.001069nam a2200289 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113043001200139050002200151066000700173082002000180100002800200245006400228250002200292260011800314300002500432504004100457650005700498880002900555880006500584880002400649880010600673 86122256 /ACNDLC19870219000000.0860303s1984 cc b 00010 chi  a 86122256 /ACN cRMBY2.80 a(CStRLIN)DCLP86-B3622 aa-cc---0 aPL2333b.L63 1984 c$10 a895.1/15/09219106880-01aLo, Han-chÊ»ao.106880-02aChung-kuo hsien tai shih ko lun /c[Lo Han-chÊ»ao]. 6880-03aTi 1 pan.0 6880-04a[Nan-ching shih] :bChiang-su jen min chÊ»u pan she :bChiang-su sheng hsin hua shu tien fa hsing,c1984. a11, 411 p. ;c20 cm. aIncludes bibliographical references. 0aChinese poetryy20th centuryxHistory and criticism.106100-01/$1a骆 寒超.106245-02/$1a中国 现代 诗歌 论 /c[骆 寒超]. 6250-03/$1a第1版.0 6260-04/$1a[南京市] :b江苏 人氱 出版社 :b江苏省 新華 書店 叱行,c1984.01194nam a2200325 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113043001200139050002300151066000700174082001500181100002300196245005300219250002200272260011900294300002400413440004700437650003300484650004400517651005000561880002600611880005700637880002400694880010700718880004300825 86124008 /ACNDLC19870219000000.0860417s1985 cc j 00010 chi  a 86124008 /ACN cRMBY0.61 a(CStRLIN)DCLP86-B6501 aa-cc---0 aDS731.U4bH75 1985 c$10 a951/.6219106880-01aHsin, She.106880-02aTsai Wei-wu-erh chih hsiang /cHsin She. 6880-03aTi 1 pan.0 6880-04aWu-lu-mu-chÊ»i shih :bHsin-chiang jen min chÊ»u pan she :bHsin-chiang hsin hua shu tien fa hsing,c1985. a2, 178 p. ;c19 cm. 06880-05aTsu kuo ta chia tÊ»ing tsÊ»ung shu 0aUigursxJuvenile literature. 0aEthnologyzChinaxJuvenile literatture. 0aChinaxEthnic relationsxJuvenile literature.106100-01/$1a辛 涉.106245-02/$1a在 维吾尔 之 乡 /c辛 涉. 6250-03/$1a第1版.0 6260-04/$1a乌鲁木齐市 :b新疆 人民 出版社 :b新疆 新華 書店 发行,c1985. 06440-05/$1a祖国 大家庭 丛书01192cam a2200313 a 4500001001300000003000400013005001700017008004100034010001700075020001300092035002700105040003100132050002400163066000700187082001700194100003600211245006400247250003000311260010700341300002400448440004900472500001900521880003900540880006900579880003300648880011000681880004900791987003800840 86124229 DLC20001214140017.0860703s1985 cc 000 1 chi  a 86124229  cRMBY1.05 a(CStRLIN)DCLP86-B11515 aDLC-RcDLC-RdCStRLINdDLC00aPL2724.H37bH7 1985 c$100a895.1/342191 6880-01aShen, Qifeng,db. 1741.106880-02aXie duo /cShen Qifeng zhu ; Qiao Yuzhou jiao dian. 6880-03aBeijing di 1 ban. 6880-04aBeijing :bRen min wen xue chu ban she :bXin hua shu dian Beijing fa xing suo fa xing,c1985. a7, 198 p. ;c19 cm. 06880-05aZhongguo xiao shuo shi liao cong shu aShort stories.1 6100-01/$1a沈 起凤,db. 1741.106245-02/$1a谐铎 /c沈 起凤 著 ; 乔 雨舟 校点. 6250-03/$1a北京 第1版. 6260-04/$1a北京 :b人民 文学 出版社 :b新华 书店 北京 发行所 发行,c1985. 06440-05/$1a中国 小说 史料 丛书 aPINYINbCStRLINc20001214dce1.001470cam a2200349 a 4500001002100000003000400021005001700025008004100042010002500083020001300108035002600121043001200147050002400159066000700183082002000190245013300210250002200343260011700365300002400482500006600506650002200572650002600594651003400620651003400654651003500688710006400723740003800787880010800825880002400933880011000957880005301067 86124531 /ACN/r93DLC19930723073715.0860319s1985 cc 00000 chi  a 86124531 /ACN/r93 cRMBY1.80 a(CStRLIN)DCLP86-B4826 aa-cc---0 aHX418.5b.C482 1985 c$10 a322/.2/0951219006880-01aChÊ»ing kung cheng chih lun hsün chiao tsÊ»ai /cChung kung Shang-hai shih wei hsüan chÊ»uan pu tsu chih pien hsieh. 6880-02aTi 1 pan. 6880-03aShang-hai :bShang-hai jen min chÊ»u pan she :bHsin hua shu tien Shang-hai fa hsing so fa hsing,c1985. a8, 479 p. ;c19 cm. aCover title also in pinyin: Qinggong zhengzhi lunxun jiaocai. 0aCommunismzChina. 0aWorking classzChina. 0aChinaxHistoryy19th century. 0aChinaxHistoryy20th century. 0aChinaxDescription and travel.206880-04aChung kung Shang-hai shih wei.bHsüan chÊ»uan pu.01aQinggong zhengzhi lunxun jiaocai.006245-01/$1a青工 政治 轮训 教材 /c中共 上海 市委 宣传部 组织 编写. 6250-02/$1a第1版. 6260-03/$1a上海 :b上海 人氱 出版社 :b新華 書店 上海 叱行所 叱行,c1985.206710-04/$1a中共 上海 市委.b宣传部.01072nam a2200301 a 4500001001700000003000400017005001700021008004100038010002100079020001300100035002600113050002500139066000700164082001700171100002800188245004100216250002200257260012700279300006300406440003400469500001100503740001500514880002600529880004100555880002400596880011900620880003100739 86125160 /ACNDLC19870219000000.0860327s1985 cc cfh 00010 chi  a 86125160 /ACN cRMBY1.05 a(CStRLIN)DCLP86-B52920 aPL2862.I276bW8 1985 c$10 a895.1/15219106880-01aHsiao, ChÊ»ing.106880-02aWu shu hua /cHsiao ChÊ»ing. 6880-03aTi 1 pan.0 6880-04aPei-ching :bPei-ching shih yüeh wen i chÊ»u pan she :bHsin hua shu tien Pei-ching fa hsing so fa hsing,c1985. a4, 3, 199 p., [2] p. of plates :bfacsim., port. ;c19 cm. 06880-05aHung yeh shih tsÊ»ung aPoems.01a5 shu hua.106100-01/$1a晓 晴.106245-02/$1a五束 花/c晓 晴. 6250-03/$1a第1版.0 6260-04/$1a北京 :b北京 十月 文艺 出版社 :b新华 书店 北京 叱行所 叱行,c1985. 06440-05/$1a红叶 诗丛01248nam a2200301 a 4500001001700000003000400017005001700021008004100038010002100079035002600100043001200126050002500138066000700163082001500170100003000185245006900215260008800284300003000372490007900402500004100481651004100522830006900563880002900632880006500661880007900726880007600805880006500881 86125348 /ACNDLC19870219000000.0860304r19851917ch 00010 chi  a 86125348 /ACN a(CStRLIN)DCLP86-B3824 aa-cc---0 aDS754.18b.C446 1985 c$10 a327.51219106880-01aChuang, Ping-hai.106880-02aWai chiao ssu tÊ»ung lu /cChuang Ping-hai pien [tsuan].0 6880-03a[TÊ»ai-pei hsien Yung-ho shih] :bWen hai chÊ»u pan she,cmin kuo 74 [1985] a2, 2, 2, 272 p. ;c22 cm.1 6880-04aChin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien : ti 2 chi ;v20 aReprint. Originally published: 1917? 0aChinaxForeign relationsy1644-1912. 06880-05aChin tai Chung-kuo shih liao tsÊ»ung kÊ»an 3 pien ;v20.106100-01/$1a莊 病骸.106245-02/$1a外交 思痛 錄 /c莊 病骸 編[纂].0 6260-03/$1a[臺北縣 永和市] :b文海 出版社,c民國74 [1985]1 6490-04/$1a近代 中國 史料 叢刊 三編 : 第二輯 ;v20 06830-05/$1a近代 中國 史料 叢刊 三編 ;v20.01116cam a2200325 a 4500001001300000003000400013005001700017008004100034010001700075020001700092035002600109040003300135043001200168050002100180066000700201082001600208100002500224245009600249250002100345260006100366300003600427546001600463650002500479740004000504880002900544880010300573880002300676880006200699987002900761 86125443 DLC20020326070412.0860304s1985 ch a 00010 chi  a 86125443  c$9.00 (U.S.) a(CStRLIN)DCLP86-B3795 aDLC-RcDLC-RdCStRLINdDLC-R aa-cc---00aB5231b.L59 1985 c$100a181/.112191 6880-01aLiu, Shaoji.106880-02aZhongguo zhe xue xin lun =bA new view of the Chinese philosophy /cLiu Shaoji zhu. 6880-03aChu ban. 6880-04aTaibei Shi :bShi jie shu ju,cmin guo 74 [1985] a6, 12, 424 p. :bill. ;c27 cm. aIn Chinese. 0aPhilosophy, Chinese.0 aNew view of the Chinese philosophy.1 6100-01/$1a劉 紹基.106245-02/$1a中國 哲學 新論 =bA new view of the Chinese philosophy /c劉 紹基 豗. 6250-03/$1a初版. 6260-04/$1a台北市 :b世界 書局,c氱國74 [1985] aPINYINbDLCc20020326dc01199nam a2200301 a 4500001002100000003000400021005001700025008004100042010002500083020002000108035002600128043001200154050002400166066000700190082001800197245009700215250002200312260011900334300001900453500007200472650003100544700002700575740004100602880009500643880002400738880010600762880002900868 86154542 /ACN/r86DLC19870219000000.0860528s1985 cc 00000 chi  a 86154542 /ACN/r86 cRMBY3.60 (v. 1) a(CStRLIN)DCLP86-B9002 aa-cc---0 aHB126.C4bC533 1985 c$10 a330/.0951219006880-01aChung-kuo ku tai ching chi chu shu hsüan tu /cYü Tsu-yao ... [et al.] pien chu. 6880-02aTi 1 pan.0 6880-03a[ChÊ»ang-chÊ»un shih] :bChi-lin jen min chÊ»u pan she :bChi-lin sheng hsin hua shu tien fa hsing,c1985. a2 v. ;c20 cm. aColophon title also in pinyin: Zhongguo gudai jingji zhushu xuandu. 0aEconomicszChinaxHistory.106880-04aYü, Tsu-yao.01aZhongguo gudai jingji zhushu xuandu.006245-01/$1a中國 古代 經濟 著述 選讀 /c虞 祖尧 ... [et al.] 编著. 6250-02/$1a第1版.0 6260-03/$1a[长春市] :b吉林 人民 出版社 :b吉林省 新华 书店 发行,c1985.106700-04/$1a虞 祖尧.00920nam a2200253 a 4500001001600000003000400016005001700020008004100037010002000078020001000098035002600108040002400134050002500158066000700183100003400190245006700224260006400291300002100355440005300376880003600429880007900465880005900544880006300603 86159478 /AKDLC19870219000000.0860602s1984 ko 00010 kor  a 86159478 /AK cW2800 a(CStRLIN)DCLP86-B9357 aCLASIAcCLASIAdDLC0 aAC148b.K589256 1985 c$1106880-01aKim, Tong-gil,d1928-106880-02aTŭrŏra, ttaltŭl a :bKim Tong-gil taepÊ»yo esei.0 6880-03aSŏul :bChÊ»ŏngnyŏnsa,c1984g(1985 printing) a271 p. ;c23 cm. 06880-04aUri sidae ŭi taepÊ»yo sanmunsŏn ;v1106100-01/$1a김 동길,d1928-106245-02/$1a들어라, 딸들 아 :b김 동길 대표 에세이.0 6260-03/$1a서울 :b청년사,c1984g(1985 printing) 06440-04/$1a우리 시대 의 대표 산문선 ;v1 \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/marccol2.u8.1.lst b/dependencies/yaz_3.0.14/test/marccol2.u8.1.lst deleted file mode 100644 index 2a915fa..0000000 --- a/dependencies/yaz_3.0.14/test/marccol2.u8.1.lst +++ /dev/null @@ -1,28 +0,0 @@ -03103cam a2200337 i 4500 -001 12683849 -005 20051218154744.0 -008 981008b2001 ilu 000 0 eng -035 $a 57779 -035 $a 90490 -035 $a 93202 -040 $a DLC $c DLC -906 $a 0 $b und $c orignew $d u $e ncip $f 19 $g y-gencatlg -010 $a 77123332 -245 00 $a Voyager Diacritic test -- New input 001 (SBIE) -260 $a ny $b ny, $c 2001. -300 $a p. $c cm. -500 $a New copy imported from file (8/12/99) -500 $a VOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡) -500 $a VOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·) -500 $a VOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Æ ); U Hook (Ư); Alif (ʾ); alpha (DO NOT USE); Ayn (Ê»); Polish l (ł) -500 $a VOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð) -500 $a VOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (Æ¡); u Hook (Æ°); Beta (DO NOT USE); Gamma (DO NOT USE); Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³) -500 $a VOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽); -500 $a VOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇) -500 $a VOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó) -500 $a VOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (o︠) -500 $a VOYAGER COLUMN 9: Ligature right (o︡) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (oÌ£); Double Dot Below (o̤); Circle Below (oÌ¥) -500 $a VOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (oÌ®); Double Tilde 1st half (o︢); Double Tilde 2nd half (o︣) ; High Comma centered (o̓) -500 $a VOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~) -500 $a Standard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? - diff --git a/dependencies/yaz_3.0.14/test/marccol2.u8.2.lst b/dependencies/yaz_3.0.14/test/marccol2.u8.2.lst deleted file mode 100644 index b083089..0000000 --- a/dependencies/yaz_3.0.14/test/marccol2.u8.2.lst +++ /dev/null @@ -1,28 +0,0 @@ -03091cam a2200337 i 4500 -001 12683849 -005 20051218154744.0 -008 981008b2001 ilu 000 0 eng -035 $a 57779 -035 $a 90490 -035 $a 93202 -040 $a DLC $c DLC -906 $a 0 $b und $c orignew $d u $e ncip $f 19 $g y-gencatlg -010 $a 77123332 -245 00 $a Voyager Diacritic test -- New input 001 (SBIE) -260 $a ny $b ny, $c 2001. -300 $a p. $c cm. -500 $a New copy imported from file (8/12/99) -500 $a VOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡) -500 $a VOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·) -500 $a VOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Æ ); U Hook (Ư); Alif (ʼ); alpha (DO NOT USE); Ayn (Ê»); Polish l (ł) -500 $a VOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð) -500 $a VOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (Æ¡); u Hook (Æ°); Beta (DO NOT USE); Gamma (DO NOT USE); Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³) -500 $a VOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽); -500 $a VOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇) -500 $a VOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó) -500 $a VOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (oÍ¡) -500 $a VOYAGER COLUMN 9: Ligature right (o) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (oÌ£); Double Dot Below (o̤); Circle Below (oÌ¥) -500 $a VOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (oÌ®); Double Tilde 1st half (oÍ ); Double Tilde 2nd half (o) ; High Comma centered (o̓) -500 $a VOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~) -500 $a Standard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? - diff --git a/dependencies/yaz_3.0.14/test/marccol2.u8.marc b/dependencies/yaz_3.0.14/test/marccol2.u8.marc deleted file mode 100644 index 28a97f0..0000000 --- a/dependencies/yaz_3.0.14/test/marccol2.u8.marc +++ /dev/null @@ -1 +0,0 @@ -03103cam a2200337 i 45000010009000000050017000090080041000260350010000670350010000770350010000870400013000979060045001100100017001552450051001722600019002233000012002425000042002545000175002965000199004715000170006705000194008405000197010345000220012315000204014515000198016555000177018535000216020305000218022465000160024645000141026241268384920051218154744.0981008b2001 ilu 000 0 eng  a57779 a90490 a93202 aDLCcDLC a0bundcorignewduencipf19gy-gencatlg a 77123332 00aVoyager Diacritic test -- New input 001 (SBIE) anybny,c2001. ap.ccm. aNew copy imported from file (8/12/99) aVOYAGER COLUMN 0 (NEW): Degree sign (°); Phono Copyright mark (℗); Copyright mark (©); Sharp (♯); Inverted Question mark (¿); Inverted Exclamation mark (¡) aVOYAGER COLUMN 1: Script L (ℓ); Polish L (Ł); Scandanavian O (Ø); D with Crossbar (Đ); Icelandic Thorn (Þ); AE Digraph (Æ); OE Digraph (Œ); Miagkii Znak (ʹ); Dot at Midline (·) aVOYAGER COLUMN 2: Musical Flat (♭); Patent Mark (®); Plus or Minus (±); O Hook (Æ ); U Hook (Ư); Alif (ʾ); alpha (DO NOT USE); Ayn (Ê»); Polish l (ł) aVOYAGER COLUMN 3: Scandanavian o (ø); d with crossbar (đ); Icelandic Thorn (þ); ae Digraph (æ); oe Digraph (œ); Tverdii Znak (ʺ); Turkish i (ı); British Pound (£); eth (ð) aVOYAGER COLUMN 4: Dagger (DO NOT USE); o Hook (Æ¡); u Hook (Æ°); Beta (DO NOT USE); Gamma (DO NOT USE); Superscript 0 (⁰); Superscript 1 (¹); Superscript 2 (²); Superscript 3 (³) aVOYAGER COLUMN 5: Superscript 4 (⁴); Superscript 5 (⁵); Superscript 6 (⁶); Superscript 7 (⁷); Superscript 8 (⁸); Superscript 9 (⁹); Superscript + (⁺); Superscript - (⁻); Superscript ( (⁽); aVOYAGER COLUMN 6: Superscript ) (⁾); Subscript 0 (₀); Subscript 1 (₁); Subscript 2 (₂); Subscript 3 (₃); Subscript 4 (₄); Subscript 5 (₅); Subscript 6 (₆); Subscript 7 (₇) aVOYAGER COLUMN 7: Subscript 8 (₈); Subscript 9 (₉); Subscript + (₊); Subscript - (₋); Subscript ( (₍); Subscript ) (₎); Pseudo Question Mark (ỏ); Grave (ò); Acute (ó) aVOYAGER COLUMN 8: Circumflex (ô); Tilde (õ); Macron (ō); Breve (ŏ); Superior Dot (ȯ); Umlaut (ö); Hacek (ǒ); Circle Above (o̊); Ligature left (o︠) aVOYAGER COLUMN 9: Ligature right (o︡) ; High Comma off center (o̕); Double Acute (ő); Candrabindu (o̐); Cedilla (o̧); Right Hook (ǫ); Dot Below (oÌ£); Double Dot Below (o̤); Circle Below (oÌ¥) aVOYAGER COLUMN 10: Double Underscore (o̳); Underscore (o̲); Left Hook (o̦); Right Cedilla (o̜); Upadhmaniya (oÌ®); Double Tilde 1st half (o︢); Double Tilde 2nd half (o︣) ; High Comma centered (o̓) aVOYAGER PC Keyboard: Spacing Circumflex (^); Spacing Underscore (_); Spacing Grave (`); Open Curly Bracket ({); Close Curly Bracket (}); Spacing Tilde (~) aStandard PC Keyboard: 1234567890-= !@#$%^&*()_+ qwertyuiop[]\ QWERTYUIOP{}| asdfghjkl;' ASDFGHJKL:" zxcvbnm,./ ZXCVBNM<>? \ No newline at end of file diff --git a/dependencies/yaz_3.0.14/test/tst_comstack.c b/dependencies/yaz_3.0.14/test/tst_comstack.c deleted file mode 100644 index 432153c..0000000 --- a/dependencies/yaz_3.0.14/test/tst_comstack.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tst_comstack.c,v 1.1 2007/01/11 10:30:41 adam Exp $ - */ - -#include -#include - -#include -#include - -static void tst_http_request(void) -{ - { - /* no content, no headers */ - const char *http_buf = - /*123456789012345678 */ - "GET / HTTP/1.1\r\n" - "\r\n" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 1), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 2), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 16), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 17), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 18), 18); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 19), 18); - } - { - /* one header, no content */ - const char *http_buf = - /*123456789012345678 */ - "GET / HTTP/1.1\r\n" - "Content-Type: x\r\n" - "\r\n" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 1), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 2), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 34), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 35), 35); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 36), 35); - } - { - /* one content-length header, length 0 */ - const char *http_buf = - /*123456789012345678 */ - "GET / HTTP/1.1\r\n" - "Content-Length: 0\r\n" - "\r\n" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 1), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 2), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 35), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 37), 37); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 38), 37); - } - { - /* one content-length header, length 5 */ - const char *http_buf = - /*123456789012345678 */ - "GET / HTTP/1.1\r\n" - "Content-Length: 5\r\n" - "\r\n" - "ABCDE" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 1), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 2), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 41), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 42), 42); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 43), 42); - } - { - /* LF only in GET, one content-length header, length 5 */ - const char *http_buf = - /*123456789012345678 */ - "GET / HTTP/1.1\n" - "Content-Length: 5\r\n" - "\r\n" - "ABCDE" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 1), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 2), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 40), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 41), 41); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 42), 41); - } - { - /* LF only in all places, one content-length header, length 5 */ - const char *http_buf = - /*123456789012345678 */ - "GET / HTTP/1.1\n" - "Content-Length: 5\n" - "\n" - "ABCDE" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 1), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 2), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 38), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 39), 39); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 40), 39); - } - - { - /* one header, unknown transfer-encoding (no content) */ - const char *http_buf = - /*12345678901234567890123456789 */ - "GET / HTTP/1.1\r\n" - "Transfer-Encoding: chunke_\r\n" - "\r\n" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 45), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 46), 46); - } - - { - /* one header, one chunk */ - const char *http_buf = - /*12345678901234567890123456789 */ - "GET / HTTP/1.1\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "3\r\n" - "123\r\n" - "0\r\n\r\n" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 58), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 59), 59); - } - - { - /* one header, two chunks */ - const char *http_buf = - /*12345678901234567890123456789 */ - "GET / HTTP/1.1\r\n" - "Transfer-Encoding: chunked\r\n" - "\r\n" - "3\r\n" - "123\r\n" - "2\r\n" - "12\n" - "0\r\n\r\n" - "GET / HTTP/1.0\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 64), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 65), 65); - } -} - -static void tst_http_response(void) -{ - { - /* unlimited content, no headers */ - const char *http_buf = - /*123456789012345678 */ - "HTTP/1.1 200 OK\r\n" - "\r\n" - "HTTP/1.1 200 OK\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 1), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 2), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 24), 0); - } - { - /* response, content */ - const char *http_buf = - /*123456789012345678 */ - "HTTP/1.1 200 OK\r\n" - "Content-Length: 2\r\n" - "\r\n" - "12" - "HTTP/1.1 200 OK\r\n"; - - YAZ_CHECK_EQ(cs_complete_http(http_buf, 1), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 2), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 39), 0); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 40), 40); - YAZ_CHECK_EQ(cs_complete_http(http_buf, 41), 40); - } -} - - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - YAZ_CHECK_LOG(); - tst_http_request(); - tst_http_response(); - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tst_filepath.c b/dependencies/yaz_3.0.14/test/tst_filepath.c deleted file mode 100644 index 89ca12f..0000000 --- a/dependencies/yaz_3.0.14/test/tst_filepath.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tst_filepath.c,v 1.2 2007/01/03 08:42:16 adam Exp $ - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include -#include - -void tst(void) -{ - char fullpath[1024]; - YAZ_CHECK(yaz_filepath_resolve("tst_filepath", ".", 0, fullpath)); - YAZ_CHECK(strcmp(fullpath, "./tst_filepath") == 0); - YAZ_CHECK(!yaz_filepath_resolve("tst_filepath1", ".", 0, fullpath)); - YAZ_CHECK(!yaz_filepath_resolve("tst_filepath", "bogus", 0, fullpath)); - YAZ_CHECK(yaz_filepath_resolve("tst_filepath", "bogus:.", 0, fullpath)); -} - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - tst(); - YAZ_CHECK_TERM; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tst_oid.c b/dependencies/yaz_3.0.14/test/tst_oid.c deleted file mode 100644 index 0fef00e..0000000 --- a/dependencies/yaz_3.0.14/test/tst_oid.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tst_oid.c,v 1.1 2007/06/24 19:27:12 adam Exp $ - */ - -#include -#include - -#include -#include -#include - -static void tst(void) -{ - char oid_buf[OID_STR_MAX]; - const char *n; - yaz_oid_db_t db; - const Odr_oid *c_oid; - Odr_oid *oid; - NMEM nmem = nmem_create(); - ODR odr = odr_createmem(ODR_ENCODE); - - db = yaz_oid_std(); - YAZ_CHECK(db); - - c_oid = yaz_string_to_oid(db, CLASS_ATTSET, "Bib-1"); - YAZ_CHECK(c_oid && oid_oidcmp(c_oid, yaz_oid_attset_bib_1) == 0); - - c_oid = yaz_string_to_oid(db, CLASS_GENERAL, "Bib-1"); - YAZ_CHECK(c_oid && oid_oidcmp(c_oid, yaz_oid_attset_bib_1) == 0); - - c_oid = yaz_string_to_oid(db, CLASS_ATTSET, "unknown"); - YAZ_CHECK(c_oid == 0); - - oid = yaz_string_to_oid_nmem(db, CLASS_ATTSET, "1.2.840.10003.3.1", nmem); - YAZ_CHECK(oid && !oid_oidcmp(oid, yaz_oid_attset_bib_1)); - - oid = yaz_string_to_oid_nmem(db, CLASS_ATTSET, "unknown", nmem); - YAZ_CHECK(oid == 0); - - oid = yaz_string_to_oid_odr(db, CLASS_ATTSET, "1.2.840.10003.3.1", odr); - YAZ_CHECK(oid && !oid_oidcmp(oid, yaz_oid_attset_bib_1)); - - oid = yaz_string_to_oid_odr(db, CLASS_ATTSET, "unknown", odr); - YAZ_CHECK(oid == 0); - - n = yaz_oid_to_string(db, yaz_oid_attset_bib_1, 0); - YAZ_CHECK(n && !strcmp(n, "Bib-1")); - - n = oid_name_to_dotstring(CLASS_ATTSET, "Bib-1", oid_buf); - YAZ_CHECK(n && !strcmp(n, "1.2.840.10003.3.1")); - - n = oid_name_to_dotstring(CLASS_DIAGSET, "Bib-1", oid_buf); - YAZ_CHECK(n && !strcmp(n, "1.2.840.10003.4.1")); - - n = oid_name_to_dotstring(CLASS_DIAGSET, "unknown", oid_buf); - YAZ_CHECK(!n); - - n = oid_name_to_dotstring(CLASS_DIAGSET, "1.2.840.10003.3.1", oid_buf); - YAZ_CHECK(!n); - - nmem_destroy(nmem); - odr_destroy(odr); -} - - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - YAZ_CHECK_LOG(); - tst(); - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tst_query_charset.c b/dependencies/yaz_3.0.14/test/tst_query_charset.c deleted file mode 100644 index 03afc3a..0000000 --- a/dependencies/yaz_3.0.14/test/tst_query_charset.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tst_query_charset.c,v 1.2 2007/04/30 08:29:08 adam Exp $ - */ - -#include -#include - -#include -#include -#include -#include -#include - -enum query_charset_status { - NO_ERROR, - PQF_FAILED, - MATCH, - NO_MATCH, - CONV_FAILED -}; - -enum query_charset_status t(yaz_iconv_t cd, - const char *pqf, const char *expect_pqf) -{ - YAZ_PQF_Parser parser = yaz_pqf_create(); - ODR odr = odr_createmem(ODR_ENCODE); - Z_RPNQuery *rpn; - enum query_charset_status status = NO_ERROR; - - YAZ_CHECK(parser); - - YAZ_CHECK(odr); - - rpn = yaz_pqf_parse(parser, odr, pqf); - - yaz_pqf_destroy(parser); - - if (!rpn) - status = PQF_FAILED; - else - { - WRBUF w = wrbuf_alloc(); - Z_RPNQuery *r2 = yaz_copy_z_RPNQuery(rpn, odr); - - YAZ_CHECK(r2); - YAZ_CHECK(r2 != rpn); - yaz_query_charset_convert_rpnquery(rpn, odr, cd); - yaz_rpnquery_to_wrbuf(w, rpn); - if (!expect_pqf || strcmp(expect_pqf, wrbuf_cstr(w)) == 0) - status = MATCH; - else - { - status = NO_MATCH; - printf("Result: %s\n", wrbuf_cstr(w)); - } - wrbuf_destroy(w); - } - odr_destroy(odr); - return status; -} - -static void tst(void) -{ - yaz_iconv_t cd = yaz_iconv_open("iso-8859-1", "utf-8"); - - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK_EQ(t(cd, "@attr 1=4 bad query", 0), PQF_FAILED); - YAZ_CHECK_EQ(t(cd, "@attr 1=4 ok", "@attrset Bib-1 @attr 1=4 ok"), MATCH); - - /* m followed by latin smaller letter ae */ - YAZ_CHECK_EQ(t(cd, "@attr 1=4 m\xc3\xa6", "@attrset Bib-1 @attr 1=4 m\xe6"), MATCH); - - yaz_iconv_close(cd); -} - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - tst(); - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tst_record_conv.c b/dependencies/yaz_3.0.14/test/tst_record_conv.c deleted file mode 100644 index 4a2d04c..0000000 --- a/dependencies/yaz_3.0.14/test/tst_record_conv.c +++ /dev/null @@ -1,340 +0,0 @@ -/* - * Copyright (C) 2005-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tst_record_conv.c,v 1.16 2007/03/20 21:37:32 adam Exp $ - * - */ -#include -#include -#include -#include -#include -#include - -#if HAVE_CONFIG_H -#include -#endif - -#if YAZ_HAVE_XML2 - -#include -#include - -yaz_record_conv_t conv_configure(const char *xmlstring, WRBUF w) -{ - xmlDocPtr doc = xmlParseMemory(xmlstring, strlen(xmlstring)); - if (!doc) - { - wrbuf_printf(w, "xmlParseMemory"); - return 0; - } - else - { - xmlNodePtr ptr = xmlDocGetRootElement(doc); - yaz_record_conv_t p = yaz_record_conv_create(); - - if (p) - { - const char *srcdir = getenv("srcdir"); - if (srcdir) - yaz_record_conv_set_path(p, srcdir); - } - if (!ptr) - { - wrbuf_printf(w, "xmlDocGetRootElement"); - yaz_record_conv_destroy(p); - p = 0; - } - else if (!p) - { - wrbuf_printf(w, "yaz_record_conv_create"); - } - else - { - - - int r = yaz_record_conv_configure(p, ptr); - - if (r) - { - wrbuf_puts(w, yaz_record_conv_get_error(p)); - yaz_record_conv_destroy(p); - p = 0; - } - } - xmlFreeDoc(doc); - return p; - } -} - -int conv_configure_test(const char *xmlstring, const char *expect_error, - yaz_record_conv_t *pt) -{ - WRBUF w = wrbuf_alloc(); - int ret; - - yaz_record_conv_t p = conv_configure(xmlstring, w); - - if (!p) - { - if (expect_error && !strcmp(wrbuf_cstr(w), expect_error)) - ret = 1; - else - { - ret = 0; - printf("%s\n", wrbuf_cstr(w)); - } - } - else - { - if (expect_error) - ret = 0; - else - ret = 1; - } - - if (pt) - *pt = p; - else - if (p) - yaz_record_conv_destroy(p); - - wrbuf_destroy(w); - return ret; -} - -static void tst_configure(void) -{ - - - - YAZ_CHECK(conv_configure_test("" - "
    ", - "Element : expected or " - " element, got ", 0)); - -#if YAZ_HAVE_XSLT - YAZ_CHECK(conv_configure_test("" - "" - "" - "", - "Element : attribute 'inputformat' " - "required", 0)); - YAZ_CHECK(conv_configure_test("" - "" - "", - "Element : attribute 'stylesheet' " - "expected", 0)); - YAZ_CHECK(conv_configure_test("" - "" - "" - "", - 0, 0)); -#else - YAZ_CHECK(conv_configure_test("" - "" - "", - "xslt unsupported." - " YAZ compiled without XSLT support", 0)); -#endif -} - -static int conv_convert_test(yaz_record_conv_t p, - const char *input_record, - const char *output_expect_record) -{ - int ret = 0; - if (!p) - { - YAZ_CHECK(ret); - } - else - { - WRBUF output_record = wrbuf_alloc(); - int r = yaz_record_conv_record(p, input_record, strlen(input_record), - output_record); - if (r) - { - if (output_expect_record) - { - printf("yaz_record_conv error=%s\n", - yaz_record_conv_get_error(p)); - ret = 0; - } - else - ret = 1; - } - else - { - if (!output_expect_record) - { - ret = 0; - } - else if (strcmp(output_expect_record, wrbuf_cstr(output_record))) - { - ret = 0; - printf("got-output_record len=%d: %s\n", - wrbuf_len(output_record),wrbuf_cstr(output_record)); - printf("output_expect_record len=%d %s\n", - strlen(output_expect_record), output_expect_record); - } - else - { - ret = 1; - } - } - wrbuf_destroy(output_record); - } - return ret; -} - -static void tst_convert1(void) -{ - yaz_record_conv_t p = 0; - const char *marcxml_rec = - "\n" - " 00080nam a22000498a 4500\n" - " 11224466 \n" - " \n" - " 11224466 \n" - " \n" - "\n"; - const char *iso2709_rec = - "\x30\x30\x30\x38\x30\x6E\x61\x6D\x20\x61\x32\x32\x30\x30\x30\x34" - "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" - "\x30\x30\x30\x30\x30\x31\x30\x30\x30\x31\x37\x30\x30\x30\x31\x33" - "\x1E\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x20\x20" - "\x1F\x61\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x1D"; - - YAZ_CHECK(conv_configure_test("" - "" - "", - 0, &p)); - YAZ_CHECK(conv_convert_test(p, marcxml_rec, iso2709_rec)); - yaz_record_conv_destroy(p); - - YAZ_CHECK(conv_configure_test("" - "" - "", - 0, &p)); - YAZ_CHECK(conv_convert_test(p, iso2709_rec, marcxml_rec)); - yaz_record_conv_destroy(p); - - - YAZ_CHECK(conv_configure_test("" - "" - "" - "" - "" - "", - 0, &p)); - YAZ_CHECK(conv_convert_test(p, marcxml_rec, marcxml_rec)); - yaz_record_conv_destroy(p); - - - YAZ_CHECK(conv_configure_test("" - "" - "" - "" - "" - "", - 0, &p)); - YAZ_CHECK(conv_convert_test(p, marcxml_rec, marcxml_rec)); - yaz_record_conv_destroy(p); -} - -static void tst_convert2(void) -{ - yaz_record_conv_t p = 0; - const char *marcxml_rec = - "\n" - " 00080nam a22000498a 4500\n" - " 11224466 \n" - " \n" - " københavn\n" - " \n" - "\n"; - const char *iso2709_rec = - "\x30\x30\x30\x37\x37\x6E\x61\x6D\x20\x61\x32\x32\x30\x30\x30\x34" - "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" - "\x30\x30\x30\x30\x30\x31\x30\x30\x30\x31\x34\x30\x30\x30\x31\x33" - "\x1E\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x20\x20" - "\x1F\x61\x6b\xb2\x62\x65\x6e\x68\x61\x76\x6e\x1E\x1D"; - - YAZ_CHECK(conv_configure_test("" - "" - "", - 0, &p)); - YAZ_CHECK(conv_convert_test(p, marcxml_rec, iso2709_rec)); - yaz_record_conv_destroy(p); -} - -#endif - -int main(int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - libxml2_error_to_yazlog(0 /* disable log */, 0); -#if YAZ_HAVE_XML2 - tst_configure(); -#endif -#if YAZ_HAVE_XSLT - tst_convert1(); - tst_convert2(); -#endif - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tst_retrieval.c b/dependencies/yaz_3.0.14/test/tst_retrieval.c deleted file mode 100644 index e8afafe..0000000 --- a/dependencies/yaz_3.0.14/test/tst_retrieval.c +++ /dev/null @@ -1,337 +0,0 @@ -/* - * Copyright (C) 2005-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tst_retrieval.c,v 1.10 2007/03/19 14:40:07 adam Exp $ - * - */ -#include -#include -#include -#include -#include -#include - -#if HAVE_CONFIG_H -#include -#endif - -#if YAZ_HAVE_XSLT - -#include -#include - -yaz_retrieval_t conv_configure(const char *xmlstring, WRBUF w) -{ - xmlDocPtr doc = xmlParseMemory(xmlstring, strlen(xmlstring)); - if (!doc) - { - wrbuf_printf(w, "xmlParseMemory"); - return 0; - } - else - { - xmlNodePtr ptr = xmlDocGetRootElement(doc); - yaz_retrieval_t p = yaz_retrieval_create(); - - if (p) - { - const char *srcdir = getenv("srcdir"); - if (srcdir) - yaz_retrieval_set_path(p, srcdir); - } - if (!ptr) - { - wrbuf_printf(w, "xmlDocGetRootElement"); - yaz_retrieval_destroy(p); - p = 0; - } - else if (!p) - { - wrbuf_printf(w, "yaz_retrieval_create"); - } - else - { - int r = yaz_retrieval_configure(p, ptr); - - if (r) - { - wrbuf_puts(w, yaz_retrieval_get_error(p)); - yaz_retrieval_destroy(p); - p = 0; - } - } - xmlFreeDoc(doc); - return p; - } -} - -int conv_configure_test(const char *xmlstring, const char *expect_error, - yaz_retrieval_t *pt) -{ - WRBUF w = wrbuf_alloc(); - int ret; - - yaz_retrieval_t p = conv_configure(xmlstring, w); - - if (!p) - { - if (expect_error && !strcmp(wrbuf_cstr(w), expect_error)) - ret = 1; - else - { - ret = 0; - printf("%s\n", wrbuf_cstr(w)); - } - } - else - { - if (expect_error) - { - ret = 0; - yaz_retrieval_destroy(p); - } - else - { - if (pt) - *pt = p; - else - yaz_retrieval_destroy(p); - ret = 1; - } - } - wrbuf_destroy(w); - return ret; -} - -static void tst_configure(void) -{ - YAZ_CHECK(conv_configure_test("", - "Expected element ", 0)); - - YAZ_CHECK(conv_configure_test("", 0, 0)); - - YAZ_CHECK(conv_configure_test("", - "Element :" - " expected element , got ", - 0)); - - YAZ_CHECK(conv_configure_test("" - "", - "Missing 'syntax' attribute", 0)); - - - YAZ_CHECK(conv_configure_test("" - "" - "" - "", - "Element : expected attributes " - "'syntax', identifier' or 'name', got " - "'unknown'", 0)); - - YAZ_CHECK(conv_configure_test("" - "" - "" - "", - "Element : unknown attribute " - "value syntax='unknown_synt'", 0)); - - YAZ_CHECK(conv_configure_test("" - "" - "", - 0, 0)); - - YAZ_CHECK(conv_configure_test("" - "" - "", - 0, 0)); - - - YAZ_CHECK(conv_configure_test("" - "" - "", - 0, 0)); - - - - YAZ_CHECK(conv_configure_test("" - "" - "" - "" - "", - "Element : expected zero or one element " - ", got ", 0)); - - YAZ_CHECK(conv_configure_test("" - "" - " " - "" - "", - "Element : expected attributes 'syntax' or 'name," - " got 'schema'", 0)); - - YAZ_CHECK(conv_configure_test("" - "" - " " - "
    " - "", - 0, 0)); - - YAZ_CHECK(conv_configure_test("" - "" - " " - "
    " - "", - "Element : " - "attribute 'syntax' has invalid value " - "'unknown'", 0)); - - - YAZ_CHECK(conv_configure_test("" - "" - " " - "
    " - "", - "Element : expected attributes " - "'syntax' or 'name, got 'unknown'", 0)); - - - YAZ_CHECK(conv_configure_test("" - "" - "" - "" - "" - "" - "" - "", - "Element : Unsupported character" - " set mapping defined by attribute values", 0)); - - YAZ_CHECK(conv_configure_test("" - "" - "" - "" - "" - "" - "" - "", - "Element : Unsupported" - " input format defined by attribute value", 0)); - - YAZ_CHECK(conv_configure_test("" - "" - "" - "" - "" - "" - "" - "", - 0, 0)); - - YAZ_CHECK(conv_configure_test( - "" - "" - "" - "" - "" - " " - " " - " " - "" - "" - " " - " " - " " - "" - "" - " " - " " - " " - " " - "" - "", - 0, 0)); - -} - -#endif - -int main(int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - - libxml2_error_to_yazlog(0 /* disable it */, ""); - -#if YAZ_HAVE_XSLT - tst_configure(); -#endif - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tst_timing.c b/dependencies/yaz_3.0.14/test/tst_timing.c deleted file mode 100644 index 0654efe..0000000 --- a/dependencies/yaz_3.0.14/test/tst_timing.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tst_timing.c,v 1.3 2007/01/05 14:05:55 adam Exp $ - */ - -#include -#include - -#include -#include -#include -#ifdef WIN32 -#include -#endif - -static void tst(void) -{ - yaz_timing_t t = yaz_timing_create(); - double real, user, sys; - int i = 0; - double x = 0; - - YAZ_CHECK(t); - if (!t) - return; - -#ifdef WIN32 - Sleep(10); -#endif - for (i = 0; i<5000000; i++) - x += i; - - YAZ_CHECK_EQ(i, 5000000); - - yaz_log(YLOG_LOG, "i=%d x=%f", i, x); - yaz_timing_stop(t); - - real = yaz_timing_get_real(t); - YAZ_CHECK(real == -1.0 || real >= 0.0); - - user = yaz_timing_get_user(t); - YAZ_CHECK(user == -1.0 || user >= 0.0); - - sys = yaz_timing_get_sys(t); - YAZ_CHECK(sys == -1.0 || sys >= 0.0); - - yaz_log(YLOG_LOG, "real=%f user=%f sys=%f", real, user, sys); - - yaz_timing_destroy(&t); - YAZ_CHECK(!t); -} - - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - YAZ_CHECK_LOG(); - tst(); - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tst_tpath.c b/dependencies/yaz_3.0.14/test/tst_tpath.c deleted file mode 100644 index 071c951..0000000 --- a/dependencies/yaz_3.0.14/test/tst_tpath.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2005-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tst_tpath.c,v 1.3 2007/01/03 08:42:16 adam Exp $ - * - */ -#include -#include -#include -#include - -#if HAVE_CONFIG_H -#include -#endif - - -static void tst_tpath(void) -{ - char fullpath[FILENAME_MAX]; - - YAZ_CHECK(!yaz_filepath_resolve("etc", 0, 0, fullpath)); - YAZ_CHECK(!yaz_filepath_resolve("etc", "", 0, fullpath)); /* bug #606 */ - YAZ_CHECK(!yaz_filepath_resolve("etc", ".", 0, fullpath)); - YAZ_CHECK(!yaz_filepath_resolve("does_not_exist", "", 0, fullpath)); - YAZ_CHECK(!yaz_filepath_resolve("does_not_exist", ".", 0, fullpath)); - YAZ_CHECK(yaz_filepath_resolve("tst_tpath", 0, 0, fullpath)); - - YAZ_CHECK(!yaz_filepath_resolve("tst_tpath", "", 0, fullpath)); - YAZ_CHECK(yaz_filepath_resolve("tst_tpath", ".", 0, fullpath)); - - YAZ_CHECK(!yaz_filepath_resolve("tst_tpath", "unknown_dir", 0, fullpath)); - YAZ_CHECK(yaz_filepath_resolve("tst_tpath", "unknown_dir:.", 0, fullpath)); - YAZ_CHECK(!yaz_filepath_resolve("tst_tpath", "unknown_dir:", 0, fullpath)); - YAZ_CHECK(!yaz_filepath_resolve("tst_tpath", "unknown_dir:c:", 0, fullpath)); - YAZ_CHECK(!yaz_filepath_resolve("tst_tpath", "unknown_dir:c:\\other", 0, fullpath)); - -} - -int main(int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - tst_tpath(); - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tstccl.c b/dependencies/yaz_3.0.14/test/tstccl.c deleted file mode 100644 index bb278aa..0000000 --- a/dependencies/yaz_3.0.14/test/tstccl.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstccl.c,v 1.17 2007/04/27 09:48:28 adam Exp $ - */ - -/* CCL test */ - -#include -#include -#include - - -static int tst_ccl_query(CCL_bibset bibset, - const char *query, - const char *result) -{ - CCL_parser parser = ccl_parser_create(bibset); - int ret = 0; - - if (parser && bibset) - { - struct ccl_rpn_node *rpn; - - rpn = ccl_parser_find_str(parser, query); - if (rpn) - { - /* parse ok. check that result is there and match */ - WRBUF wrbuf = wrbuf_alloc(); - ccl_pquery(wrbuf, rpn); - - /* check expect a result and that it matches */ - if (result && !strcmp(wrbuf_cstr(wrbuf), result)) - ret = 1; - else - ret = 0; - ccl_rpn_delete(rpn); - wrbuf_destroy(wrbuf); - } - else - { - if (result) - ret = 0; - else - ret = 1; - } - } - ccl_parser_destroy (parser); - return ret; -} - -void tst1(int pass) -{ - CCL_bibset bibset = ccl_qual_mk(); - char tstline[128]; - - YAZ_CHECK(bibset); - if (!bibset) - return; - - switch(pass) - { - case 0: - ccl_qual_fitem(bibset, "u=4 s=pw t=l,r", "ti"); - ccl_qual_fitem(bibset, "1=1016 s=al,pw", "term"); - ccl_qual_fitem(bibset, "1=/my/title", "dc.title"); - ccl_qual_fitem(bibset, "r=r", "date"); - ccl_qual_fitem(bibset, "r=o", "x"); - break; - case 1: - strcpy(tstline, "ti u=4 s=pw t=l,r"); - ccl_qual_line(bibset, tstline); - - strcpy(tstline, "term 1=1016 s=al,pw # default term"); - ccl_qual_line(bibset, tstline); - - strcpy(tstline, "dc.title 1=/my/title"); - ccl_qual_line(bibset, tstline); - - strcpy(tstline, "date r=r # ordered relation"); - ccl_qual_line(bibset, tstline); - - strcpy(tstline, "x r=o # ordered relation"); - ccl_qual_line(bibset, tstline); - break; - case 2: - ccl_qual_buf(bibset, "ti u=4 s=pw t=l,r\n" - "term 1=1016 s=al,pw\r\n" - "\n" - "dc.title 1=/my/title\n" - "date r=r\n" - "x r=o\n" - ); - break; - case 3: -#if YAZ_HAVE_XML2 - if (1) - { - xmlDocPtr doc; - int r; - const char *addinfo = 0; - const char *xml_str = - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n"; - - doc = xmlParseMemory(xml_str, strlen(xml_str)); - YAZ_CHECK(doc); - - r = ccl_xml_config(bibset, xmlDocGetRootElement(doc), &addinfo); - YAZ_CHECK_EQ(r, 0); - - xmlFreeDoc(doc); - } - break; -#else - return; -#endif - default: - YAZ_CHECK(0); - return; - } - - YAZ_CHECK(tst_ccl_query(bibset, "x1", "@attr 4=2 @attr 1=1016 x1 ")); - YAZ_CHECK(tst_ccl_query(bibset, "(((((x1)))))", "@attr 4=2 @attr 1=1016 x1 ")); - YAZ_CHECK(tst_ccl_query(bibset, "x1 and x2", - "@and " - "@attr 4=2 @attr 1=1016 x1 " - "@attr 4=2 @attr 1=1016 x2 ")); - YAZ_CHECK(tst_ccl_query(bibset, "ti=x3", "@attr 4=2 @attr 1=4 x3 ")); - YAZ_CHECK(tst_ccl_query(bibset, "dc.title=x4", "@attr 1=/my/title x4 ")); - YAZ_CHECK(tst_ccl_query(bibset, "x1 and", 0)); - YAZ_CHECK(tst_ccl_query(bibset, "tix=x5", 0)); - - YAZ_CHECK(tst_ccl_query(bibset, "a%b", - "@prox 0 1 0 2 k 2 " - "@attr 4=2 @attr 1=1016 a " - "@attr 4=2 @attr 1=1016 b ")); - YAZ_CHECK(tst_ccl_query(bibset, "a%1b", - "@prox 0 1 0 2 k 2 " - "@attr 4=2 @attr 1=1016 a " - "@attr 4=2 @attr 1=1016 b ")); - - YAZ_CHECK(tst_ccl_query(bibset, "a%2b", - "@prox 0 2 0 2 k 2 " - "@attr 4=2 @attr 1=1016 a " - "@attr 4=2 @attr 1=1016 b ")); - - YAZ_CHECK(tst_ccl_query(bibset, "a%19b", - "@prox 0 19 0 2 k 2 " - "@attr 4=2 @attr 1=1016 a " - "@attr 4=2 @attr 1=1016 b ")); - - YAZ_CHECK(tst_ccl_query(bibset, "spid%æserne", - "@prox 0 1 0 2 k 2 " - "@attr 4=2 @attr 1=1016 spid " - "@attr 4=2 @attr 1=1016 æserne ")); - - YAZ_CHECK(tst_ccl_query(bibset, "a!b", - "@prox 0 1 1 2 k 2 " - "@attr 4=2 @attr 1=1016 a " - "@attr 4=2 @attr 1=1016 b ")); - YAZ_CHECK(tst_ccl_query(bibset, "a!2b", - "@prox 0 2 1 2 k 2 " - "@attr 4=2 @attr 1=1016 a " - "@attr 4=2 @attr 1=1016 b ")); - - YAZ_CHECK(tst_ccl_query(bibset, "date=1980", "@attr 2=3 1980 ")); - YAZ_CHECK(tst_ccl_query(bibset, "date=234-1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); - YAZ_CHECK(tst_ccl_query(bibset, "date=234- 1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); - YAZ_CHECK(tst_ccl_query(bibset, "date=234 -1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); - YAZ_CHECK(tst_ccl_query(bibset, "date=234 - 1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); - YAZ_CHECK(tst_ccl_query(bibset, "date=-1980", "@attr 2=2 1980 ")); - YAZ_CHECK(tst_ccl_query(bibset, "date=- 1980", "@attr 2=2 1980 ")); - YAZ_CHECK(tst_ccl_query(bibset, "x=-1980", "@attr 2=3 -1980 ")); - YAZ_CHECK(tst_ccl_query(bibset, "x=- 1980", "@attr 2=2 1980 ")); - YAZ_CHECK(tst_ccl_query(bibset, "x= -1980", "@attr 2=3 -1980 ")); - YAZ_CHECK(tst_ccl_query(bibset, "x=234-1990", "@attr 2=3 234-1990 ")); - YAZ_CHECK(tst_ccl_query(bibset, "x=234 - 1990", "@and @attr 2=4 234 @attr 2=2 1990 ")); - YAZ_CHECK(tst_ccl_query(bibset, "ti=a,b", "@attr 4=1 @attr 1=4 a,b ")); - YAZ_CHECK(tst_ccl_query(bibset, "ti=a, b", "@attr 4=1 @attr 1=4 a,\\ b ")); - YAZ_CHECK(tst_ccl_query(bibset, "ti=a-b", "@attr 4=2 @attr 1=4 a-b ")); - YAZ_CHECK(tst_ccl_query(bibset, "ti=a - b", "@attr 4=1 @attr 1=4 a\\ -\\ b ")); - ccl_qual_rm(&bibset); -} - -int main(int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - YAZ_CHECK_LOG(); - tst1(0); - tst1(1); - tst1(2); - tst1(3); - YAZ_CHECK_TERM; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tstcql.sh b/dependencies/yaz_3.0.14/test/tstcql.sh deleted file mode 100644 index 7064343..0000000 --- a/dependencies/yaz_3.0.14/test/tstcql.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -# $Id: tstcql.sh,v 1.4 2004/11/16 22:44:31 adam Exp $ -srcdir=${srcdir:-.} -oIFS="$IFS" -IFS=' -' -secno=0 -testno=0 -comment=0 -ecode=0 -test -f ${srcdir}/cqlsample || exit 1 -test -d cql || mkdir cql -for f in `cat ${srcdir}/cqlsample`; do - if echo $f | grep '^#' >/dev/null; then - comment=1 - else - if test "$comment" = "1"; then - secno=`expr $secno + 1` - testno=0 - fi - comment=0 - testno=`expr $testno + 1` - OUT1=${srcdir}/cql/$secno.$testno.out - ERR1=${srcdir}/cql/$secno.$testno.err - OUT2=cql/$secno.$testno.out.tmp - ERR2=cql/$secno.$testno.err.tmp - DIFF=cql/$secno.$testno.diff - ../util/cql2xcql "$f" >$OUT2 2>$ERR2 - if test -f $OUT1 -a -f $ERR1; then - if diff $OUT1 $OUT2 >$DIFF; then - rm $DIFF - rm $OUT2 - else - echo "diff out $secno $testno $f" - cat $DIFF - ecode=1 - fi - if diff $ERR1 $ERR2 >$DIFF; then - rm $DIFF - rm $ERR2 - else - echo "diff err $secno $testno $f" - cat $DIFF - ecode=1 - fi - else - echo "making test $secno $testno $f" - mv $OUT2 $OUT1 - mv $ERR2 $ERR1 - ecode=1 - fi - fi -done -IFS="$oIFS" -exit $ecode diff --git a/dependencies/yaz_3.0.14/test/tsticonv.c b/dependencies/yaz_3.0.14/test/tsticonv.c deleted file mode 100644 index 7843834..0000000 --- a/dependencies/yaz_3.0.14/test/tsticonv.c +++ /dev/null @@ -1,664 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tsticonv.c,v 1.30 2007/09/17 19:15:22 adam Exp $ - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include -#include - -static int compare_buffers(char *msg, int no, - int expect_len, const char *expect_buf, - int got_len, const char *got_buf) -{ - if (expect_len == got_len - && !memcmp(expect_buf, got_buf, expect_len)) - return 1; - - if (0) /* use 1 see how the buffers differ (for debug purposes) */ - { - int i; - printf("tsticonv test=%s i=%d failed\n", msg, no); - printf("off got exp\n"); - for (i = 0; i 0 ? in_len : strlen(in_buf); - char outbuf0[64]; - char *outbuf = outbuf0; - - while (inbytesleft) - { - size_t outbytesleft = outbuf0 + sizeof(outbuf0) - outbuf; - if (outbytesleft > 12) - outbytesleft = 12; - r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); - if (r == (size_t) (-1)) - { - int e = yaz_iconv_error(cd); - if (e != YAZ_ICONV_E2BIG) - return 0; - } - else - { - yaz_iconv(cd, 0, 0, &outbuf, &outbytesleft); - break; - } - } - - return compare_buffers("tsticonv 22", 0, - expect_len, expect_buf, - outbuf - outbuf0, outbuf0); -} - -static int tst_convert(yaz_iconv_t cd, const char *buf, const char *cmpbuf) -{ - int ret = 0; - WRBUF b = wrbuf_alloc(); - char outbuf[12]; - size_t inbytesleft = strlen(buf); - const char *inp = buf; - int rounds = 0; - for (rounds = 0; inbytesleft && rounds < sizeof(outbuf); rounds++) - { - size_t outbytesleft = sizeof(outbuf); - char *outp = outbuf; - size_t r = yaz_iconv(cd, (char**) &inp, &inbytesleft, - &outp, &outbytesleft); - wrbuf_write(b, outbuf, outp - outbuf); - if (r == (size_t) (-1)) - { - int e = yaz_iconv_error(cd); - if (e != YAZ_ICONV_E2BIG) - break; - } - else - { - size_t outbytesleft = sizeof(outbuf); - char *outp = outbuf; - r = yaz_iconv(cd, 0, 0, &outp, &outbytesleft); - wrbuf_write(b, outbuf, outp - outbuf); - break; - } - } - if (wrbuf_len(b) == strlen(cmpbuf) - && !memcmp(cmpbuf, wrbuf_buf(b), wrbuf_len(b))) - ret = 1; - else - { - WRBUF w = wrbuf_alloc(); - - wrbuf_rewind(w); - wrbuf_verbose_str(w, buf, strlen(buf)); - yaz_log(YLOG_LOG, "input %s", wrbuf_cstr(w)); - - wrbuf_rewind(w); - wrbuf_verbose_str(w, wrbuf_buf(b), wrbuf_len(b)); - yaz_log(YLOG_LOG, "got %s", wrbuf_cstr(w)); - - wrbuf_rewind(w); - wrbuf_verbose_str(w, cmpbuf, strlen(cmpbuf)); - yaz_log(YLOG_LOG, "expected %s", wrbuf_cstr(w)); - - wrbuf_destroy(w); - } - - wrbuf_destroy(b); - return ret; -} - - -/* some test strings in ISO-8859-1 format */ -static const char *iso_8859_1_a[] = { - "ax" , - "\xd8", - "eneb\346r", - "\xe5" "\xd8", - "\xe5" "\xd8" "b", - "\xe5" "\xe5", - 0 }; - -static void tst_marc8_to_ucs4b(void) -{ - yaz_iconv_t cd = yaz_iconv_open("UCS4", "MARC8"); - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\033$1" "\x21\x2B\x3B" /* FF1F */ "\033(B" "o", - 8, - "\x00\x00\xFF\x1F" "\x00\x00\x00o")); - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\033$1" "\x6F\x77\x29" /* AE0E */ - "\x6F\x52\x7C" /* c0F4 */ "\033(B", - 8, - "\x00\x00\xAE\x0E" "\x00\x00\xC0\xF4")); - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\033$1" - "\x21\x50\x6E" /* UCS 7CFB */ - "\x21\x51\x31" /* UCS 7D71 */ - "\x21\x3A\x67" /* UCS 5B89 */ - "\x21\x33\x22" /* UCS 5168 */ - "\x21\x33\x53" /* UCS 5206 */ - "\x21\x44\x2B" /* UCS 6790 */ - "\033(B", - 24, - "\x00\x00\x7C\xFB" - "\x00\x00\x7D\x71" - "\x00\x00\x5B\x89" - "\x00\x00\x51\x68" - "\x00\x00\x52\x06" - "\x00\x00\x67\x90")); - - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\xB0\xB2", /* AYN and oSLASH */ - 8, - "\x00\x00\x02\xBB" "\x00\x00\x00\xF8")); - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\xF6\x61", /* a underscore */ - 8, - "\x00\x00\x00\x61" "\x00\x00\x03\x32")); - - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\x61\xC2", /* a, phonorecord mark */ - 8, - "\x00\x00\x00\x61" "\x00\x00\x21\x17")); - - /* bug #258 */ - YAZ_CHECK(tst_convert_l( - cd, - 0, - "el" "\xe8" "am\xe8" "an", /* elaman where a is a" */ - 32, - "\x00\x00\x00" "e" - "\x00\x00\x00" "l" - "\x00\x00\x00" "a" - "\x00\x00\x03\x08" - "\x00\x00\x00" "m" - "\x00\x00\x00" "a" - "\x00\x00\x03\x08" - "\x00\x00\x00" "n")); - /* bug #260 */ - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\xe5\xe8\x41", - 12, - "\x00\x00\x00\x41" "\x00\x00\x03\x04" "\x00\x00\x03\x08")); - /* bug #416 */ - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\xEB\x74\xEC\x73", - 12, - "\x00\x00\x00\x74" "\x00\x00\x03\x61" "\x00\x00\x00\x73")); - /* bug #416 */ - YAZ_CHECK(tst_convert_l( - cd, - 0, - "\xFA\x74\xFB\x73", - 12, - "\x00\x00\x00\x74" "\x00\x00\x03\x60" "\x00\x00\x00\x73")); - - yaz_iconv_close(cd); -} - -static void tst_ucs4b_to_utf8(void) -{ - yaz_iconv_t cd = yaz_iconv_open("UTF8", "UCS4"); - YAZ_CHECK(cd); - if (!cd) - return; - YAZ_CHECK(tst_convert_l( - cd, - 8, - "\x00\x00\xFF\x1F\x00\x00\x00o", - 4, - "\xEF\xBC\x9F\x6F")); - - YAZ_CHECK(tst_convert_l( - cd, - 8, - "\x00\x00\xAE\x0E\x00\x00\xC0\xF4", - 6, - "\xEA\xB8\x8E\xEC\x83\xB4")); - yaz_iconv_close(cd); -} - -static void dconvert(int mandatory, const char *tmpcode) -{ - int i; - int ret; - yaz_iconv_t cd; - for (i = 0; iso_8859_1_a[i]; i++) - { - size_t r; - char *inbuf = (char*) iso_8859_1_a[i]; - size_t inbytesleft = strlen(inbuf); - char outbuf0[24]; - char outbuf1[10]; - char *outbuf = outbuf0; - size_t outbytesleft = sizeof(outbuf0); - - cd = yaz_iconv_open(tmpcode, "ISO-8859-1"); - YAZ_CHECK(cd || !mandatory); - if (!cd) - return; - r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); - YAZ_CHECK(r != (size_t) (-1)); - - r = yaz_iconv(cd, 0, 0, &outbuf, &outbytesleft); - YAZ_CHECK(r != (size_t) (-1)); - yaz_iconv_close(cd); - if (r == (size_t) (-1)) - return; - - cd = yaz_iconv_open("ISO-8859-1", tmpcode); - YAZ_CHECK(cd || !mandatory); - if (!cd) - return; - inbuf = outbuf0; - inbytesleft = sizeof(outbuf0) - outbytesleft; - - outbuf = outbuf1; - outbytesleft = sizeof(outbuf1); - r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); - YAZ_CHECK(r != (size_t) (-1)); - - r = yaz_iconv(cd, 0, 0, &outbuf, &outbytesleft); - if (r == (size_t)(-1)) - { - fprintf(stderr, "failed\n"); - } - YAZ_CHECK(r != (size_t) (-1)); - - if (r != (size_t)(-1)) - { - ret = compare_buffers("dconvert", i, - strlen(iso_8859_1_a[i]), iso_8859_1_a[i], - sizeof(outbuf1) - outbytesleft, outbuf1); - YAZ_CHECK(ret); - } - yaz_iconv_close(cd); - } -} - -int utf8_check(unsigned c) -{ - if (sizeof(c) >= 4) - { - size_t r; - char src[4]; - char dst[4]; - char utf8buf[6]; - char *inbuf = src; - size_t inbytesleft = 4; - char *outbuf = utf8buf; - size_t outbytesleft = sizeof(utf8buf); - int i; - yaz_iconv_t cd = yaz_iconv_open("UTF-8", "UCS4LE"); - if (!cd) - return 0; - for (i = 0; i<4; i++) - src[i] = c >> (i*8); - - r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); - yaz_iconv_close(cd); - - if (r == (size_t)(-1)) - return 0; - - cd = yaz_iconv_open("UCS4LE", "UTF-8"); - if (!cd) - return 0; - inbytesleft = sizeof(utf8buf) - outbytesleft; - inbuf = utf8buf; - - outbuf = dst; - outbytesleft = 4; - - r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); - if (r == (size_t)(-1)) - return 0; - - yaz_iconv_close(cd); - - if (memcmp(src, dst, 4)) - return 0; - } - return 1; -} - -static void tst_marc8_to_utf8(void) -{ - yaz_iconv_t cd = yaz_iconv_open("UTF-8", "MARC8"); - - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK(tst_convert(cd, "Cours de math", - "Cours de math")); - /* COMBINING ACUTE ACCENT */ - YAZ_CHECK(tst_convert(cd, "Cours de mathâe", - "Cours de mathe\xcc\x81")); - - - YAZ_CHECK(tst_convert(cd, "a\xea\x1e", "a\x1e\xcc\x8a")); - - YAZ_CHECK(tst_convert(cd, "a\xea", "a")); - yaz_iconv_close(cd); -} - -static void tst_marc8s_to_utf8(void) -{ - yaz_iconv_t cd = yaz_iconv_open("UTF-8", "MARC8s"); - - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK(tst_convert(cd, "Cours de math", - "Cours de math")); - /* E9: LATIN SMALL LETTER E WITH ACUTE */ - YAZ_CHECK(tst_convert(cd, "Cours de mathâe", - "Cours de math\xc3\xa9")); - - yaz_iconv_close(cd); -} - - -static void tst_marc8_to_latin1(void) -{ - yaz_iconv_t cd = yaz_iconv_open("ISO-8859-1", "MARC8"); - - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK(tst_convert(cd, "ax", "ax")); - - /* latin capital letter o with stroke */ - YAZ_CHECK(tst_convert(cd, "\xa2", "\xd8")); - - /* with latin small letter ae */ - YAZ_CHECK(tst_convert(cd, "eneb\xb5r", "eneb\346r")); - - YAZ_CHECK(tst_convert(cd, "\xea" "a\xa2", "\xe5" "\xd8")); - - YAZ_CHECK(tst_convert(cd, "\xea" "a\xa2" "b", "\xe5" "\xd8" "b")); - - YAZ_CHECK(tst_convert(cd, "\xea" "a" "\xea" "a", "\xe5" "\xe5")); - - YAZ_CHECK(tst_convert(cd, "Cours de math", - "Cours de math")); - YAZ_CHECK(tst_convert(cd, "Cours de mathâe", - "Cours de mathé")); - YAZ_CHECK(tst_convert(cd, "12345678âe", - "12345678é")); - YAZ_CHECK(tst_convert(cd, "123456789âe", - "123456789é")); - YAZ_CHECK(tst_convert(cd, "1234567890âe", - "1234567890é")); - YAZ_CHECK(tst_convert(cd, "12345678901âe", - "12345678901é")); - YAZ_CHECK(tst_convert(cd, "Cours de mathâem", - "Cours de mathém")); - YAZ_CHECK(tst_convert(cd, "Cours de mathâematiques", - "Cours de mathématiques")); - - yaz_iconv_close(cd); -} - -static void tst_utf8_to_marc8(void) -{ - yaz_iconv_t cd = yaz_iconv_open("MARC8", "UTF-8"); - - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK(tst_convert(cd, "Cours ", "Cours ")); - - /** Pure ASCII. 11 characters (sizeof(outbuf)-1) */ - YAZ_CHECK(tst_convert(cd, "Cours de mat", "Cours de mat")); - - /** Pure ASCII. 12 characters (sizeof(outbuf)) */ - YAZ_CHECK(tst_convert(cd, "Cours de math", "Cours de math")); - - /** Pure ASCII. 13 characters (sizeof(outbuf)+1) */ - YAZ_CHECK(tst_convert(cd, "Cours de math.", "Cours de math.")); - - /** UPPERCASE SCANDINAVIAN O */ - YAZ_CHECK(tst_convert(cd, "S\xc3\x98", "S\xa2")); - - /** ARING */ - YAZ_CHECK(tst_convert(cd, "A" "\xCC\x8A", "\xEA" "A")); - - /** A MACRON + UMLAUT, DIAERESIS */ - YAZ_CHECK(tst_convert(cd, "A" "\xCC\x84" "\xCC\x88", - "\xE5\xE8\x41")); - - /* Ligature spanning two characters */ - YAZ_CHECK(tst_convert(cd, - "\x74" "\xCD\xA1" "\x73", /* UTF-8 */ - "\xEB\x74\xEC\x73")); /* MARC-8 */ - - /* Double title spanning two characters */ - YAZ_CHECK(tst_convert(cd, - "\x74" "\xCD\xA0" "\x73", /* UTF-8 */ - "\xFA\x74\xFB\x73")); /* MARC-8 */ - - /** Ideographic question mark (Unicode FF1F) */ - YAZ_CHECK(tst_convert(cd, - "\xEF\xBC\x9F" "o", /* UTF-8 */ - "\033$1" "\x21\x2B\x3B" "\033(B" "o" )); - - - /** Superscript 0 . bug #642 */ - YAZ_CHECK(tst_convert(cd, - "(\xe2\x81\xb0)", /* UTF-8 */ - "(\033p0\x1bs)")); - - - { - char *inbuf0 = "\xe2\x81\xb0"; - char *inbuf = inbuf0; - size_t inbytesleft = strlen(inbuf); - char outbuf0[64]; - char *outbuf = outbuf0; - size_t outbytesleft = sizeof(outbuf0)-1; - size_t r; -#if 0 - int i; -#endif - r = yaz_iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); - YAZ_CHECK(r != (size_t) (-1)); - -#if 0 - *outbuf = '\0'; /* so we know when to stop printing */ - for (i = 0; outbuf0[i]; i++) - { - int ch = outbuf0[i] & 0xff; - yaz_log(YLOG_LOG, "ch%d %02X %c", i, ch, ch >= ' ' ? ch : '?'); - } -#endif - - r = yaz_iconv(cd, 0, 0, &outbuf, &outbytesleft); - YAZ_CHECK(r != (size_t) (-1)); - *outbuf = '\0'; /* for strcmp test below and printing */ -#if 0 - for (i = 0; outbuf0[i]; i++) - { - int ch = outbuf0[i] & 0xff; - yaz_log(YLOG_LOG, "ch%d %02X %c", i, ch, ch >= ' ' ? ch : '?'); - } -#endif - YAZ_CHECK(strcmp("\033p0\x1bs", outbuf0) == 0); - } - yaz_iconv_close(cd); -} - -static void tst_advance_to_utf8(void) -{ - yaz_iconv_t cd = yaz_iconv_open("utf-8", "advancegreek"); - - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK(tst_convert(cd, "Cours ", "Cours ")); - yaz_iconv_close(cd); -} - -static void tst_utf8_to_advance(void) -{ - yaz_iconv_t cd = yaz_iconv_open("advancegreek", "utf-8"); - - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK(tst_convert(cd, "Cours ", "Cours ")); - yaz_iconv_close(cd); -} - -static void tst_latin1_to_marc8(void) -{ - yaz_iconv_t cd = yaz_iconv_open("MARC8", "ISO-8859-1"); - - YAZ_CHECK(cd); - if (!cd) - return; - - YAZ_CHECK(tst_convert(cd, "Cours ", "Cours ")); - - /** Pure ASCII. 11 characters (sizeof(outbuf)-1) */ - YAZ_CHECK(tst_convert(cd, "Cours de mat", "Cours de mat")); - - /** Pure ASCII. 12 characters (sizeof(outbuf)) */ - YAZ_CHECK(tst_convert(cd, "Cours de math", "Cours de math")); - - /** Pure ASCII. 13 characters (sizeof(outbuf)) */ - YAZ_CHECK(tst_convert(cd, "Cours de math.", "Cours de math.")); - - /** D8: UPPERCASE SCANDINAVIAN O */ - YAZ_CHECK(tst_convert(cd, "S\xd8", "S\xa2")); - - /** E9: LATIN SMALL LETTER E WITH ACUTE */ - YAZ_CHECK(tst_convert(cd, "Cours de math\xe9", "Cours de mathâe")); - YAZ_CHECK(tst_convert(cd, "Cours de math", "Cours de math" - )); - YAZ_CHECK(tst_convert(cd, "Cours de mathé", "Cours de mathâe" )); - YAZ_CHECK(tst_convert(cd, "12345678é","12345678âe")); - YAZ_CHECK(tst_convert(cd, "123456789é", "123456789âe")); - YAZ_CHECK(tst_convert(cd, "1234567890é","1234567890âe")); - YAZ_CHECK(tst_convert(cd, "12345678901é", "12345678901âe")); - YAZ_CHECK(tst_convert(cd, "Cours de mathém", "Cours de mathâem")); - YAZ_CHECK(tst_convert(cd, "Cours de mathématiques", - "Cours de mathâematiques")); - yaz_iconv_close(cd); -} - -static void tst_utf8_codes(void) -{ - YAZ_CHECK(utf8_check(3)); - YAZ_CHECK(utf8_check(127)); - YAZ_CHECK(utf8_check(128)); - YAZ_CHECK(utf8_check(255)); - YAZ_CHECK(utf8_check(256)); - YAZ_CHECK(utf8_check(900)); - YAZ_CHECK(utf8_check(1000)); - YAZ_CHECK(utf8_check(10000)); - YAZ_CHECK(utf8_check(100000)); - YAZ_CHECK(utf8_check(1000000)); - YAZ_CHECK(utf8_check(10000000)); - YAZ_CHECK(utf8_check(100000000)); -} - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - - tst_utf8_codes(); - - tst_marc8_to_utf8(); - - tst_marc8s_to_utf8(); - - tst_marc8_to_latin1(); - - tst_advance_to_utf8(); - tst_utf8_to_advance(); - - tst_utf8_to_marc8(); - - tst_latin1_to_marc8(); - - tst_marc8_to_ucs4b(); - tst_ucs4b_to_utf8(); - - dconvert(1, "UTF-8"); - dconvert(1, "ISO-8859-1"); - dconvert(1, "UCS4"); - dconvert(1, "UCS4LE"); - dconvert(0, "CP865"); - - YAZ_CHECK_TERM; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ diff --git a/dependencies/yaz_3.0.14/test/tstlog.c b/dependencies/yaz_3.0.14/test/tstlog.c deleted file mode 100644 index 10e26db..0000000 --- a/dependencies/yaz_3.0.14/test/tstlog.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstlog.c,v 1.14 2007/06/05 06:40:28 adam Exp $ - * - */ -#include -#include -#include -#include -#include -#if HAVE_UNISTD_H -#include -#endif - -void hook_func(int level, const char *msg, void *vp) -{ - fprintf(stderr, "[HOOK level=%d msg=%s]\n", level, msg); -} - -int main(int argc, char **argv) -{ - char *arg; - int i, ret; - int level = YLOG_LOG; - int number = 1; - unsigned int wait_between_log = 0; - - while ((ret = options("f:p:v:l:m:n:r:w:Hh", argv, argc, &arg)) != -2) - { - switch (ret) - { - case 'r': - yaz_log_init_max_size(atoi(arg)); - break; - case 'f': - yaz_log_time_format(arg); - break; - case 'p': - yaz_log_init_prefix(arg); - break; - case 'v': - yaz_log_init_level(yaz_log_mask_str(arg)); - break; - case 'l': - if (!strcmp(arg, "@")) - yaz_log_init_file(0); - else - yaz_log_init_file(arg); - break; - case 'n': - number = atoi(arg); - break; - case 'm': - level = yaz_log_module_level(arg); - break; - case 'w': - wait_between_log = atoi(arg); - break; - case 'H': - yaz_log_set_handler(hook_func, 0); - break; - case 0: - for (i = 0; i -#endif - -#include -#include -#include -#include - -#if YAZ_POSIX_THREADS -#include - - -static void *t_loop2(void *vp) -{ - int i, sz = 10; - - for (i = 0; i$NEW - if test $? != "0"; then - echo "$f: yaz-marcdump returned error" - ecode=1 - break - elif test -f $OLD; then - if diff $OLD $NEW >$DIFF; then - rm $DIFF - rm $NEW - else - echo "$f: $NEW and $OLD differ" - ecode=1 - fi - else - echo "$f: Making test result $OLD for the first time" - mv $NEW $OLD - fi - - filem=`echo $fb | sed 's/u8/m8/'`.marc - ../util/yaz-marcdump -o marc -f utf8 -t marc8 $f >$filem - - DIFF=${fb}.2.lst.diff - NEW=${fb}.2.lst.new - OLD=${srcdir}/${fb}.2.lst - ../util/yaz-marcdump -f marc8 -t utf-8 $filem >$NEW - if test $? != "0"; then - echo "$f: yaz-marcdump returned error" - ecode=1 - break - elif test -f $OLD; then - if diff $OLD $NEW >$DIFF; then - rm $DIFF - rm $NEW - rm $filem - else - echo "$f: $NEW and $OLD differ" - ecode=1 - fi - else - echo "$f: Making test result $OLD for the first time" - mv $NEW $OLD - rm $filem - fi -done -exit $ecode - -# Local Variables: -# mode:shell-script -# sh-indentation: 2 -# sh-basic-offset: 4 -# End: diff --git a/dependencies/yaz_3.0.14/test/tstmarciso.sh b/dependencies/yaz_3.0.14/test/tstmarciso.sh deleted file mode 100644 index c4c8b40..0000000 --- a/dependencies/yaz_3.0.14/test/tstmarciso.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# $Id: tstmarciso.sh,v 1.5 2007/01/18 11:44:50 adam Exp $ -# Tests reading of ISO2709 and checks that we get identical MARCXML -# -# Reads marc?.marc files , Generates marc?.xml files -srcdir=${srcdir:-.} -ecode=0 -for f in ${srcdir}/marc?.marc; do - fb=`basename ${f} .marc` - CHR=${srcdir}/${fb}.chr - NEW=${fb}.new.xml - OLD=${srcdir}/${fb}.xml - DIFF=`basename ${f}`.diff - ../util/yaz-marcdump -f `cat $CHR` -t utf-8 -o marcxml $f > $NEW - if test $? != "0"; then - echo "$f: yaz-marcdump returned error" - ecode=1 - elif test -f $OLD; then - if diff $OLD $NEW >$DIFF; then - rm $DIFF - rm $NEW - else - echo "$f: $NEW and $OLD differ" - ecode=1 - fi - else - echo "$f: Making test result $OLD for the first time" - if test -x /usr/bin/xmllint; then - if xmllint --noout $NEW >out 2>stderr; then - echo "$f: $NEW is well-formed" - mv $NEW $OLD - else - echo "$f: $NEW not well-formed" - ecode=1 - fi - else - echo "xmllint not found. install libxml2-utils" - ecode=1 - fi - fi -done -exit $ecode - -# Local Variables: -# mode:shell-script -# sh-indentation: 2 -# sh-basic-offset: 4 -# End: diff --git a/dependencies/yaz_3.0.14/test/tstmarcxml.sh b/dependencies/yaz_3.0.14/test/tstmarcxml.sh deleted file mode 100644 index 19abbc6..0000000 --- a/dependencies/yaz_3.0.14/test/tstmarcxml.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# $Id: tstmarcxml.sh,v 1.5 2007/02/17 10:53:05 adam Exp $ -# Tests reading of MARCXML and checks that we get identical ISO2709 output. -# -# Reads marc?.xml files , Generates marc?.xml.marc files -srcdir=${srcdir:-.} -ecode=0 -# Skip this test if Libxml2 support is not enabled -../util/yaz-marcdump -i marcxml >/dev/null 2>&1 -if test $? = "3"; then - exit 0 -fi -for f in ${srcdir}/marc?.xml; do - NEW=`basename ${f}`.new.marc - OLD=${f}.marc - DIFF=`basename ${f}`.diff - ../util/yaz-marcdump -f utf-8 -t utf-8 -i marcxml -o marc $f > $NEW - if test $? != "0"; then - echo "Failed decode of $f" - ecode=1 - elif test -f $OLD; then - if diff $OLD $NEW >$DIFF; then - rm $DIFF - rm $NEW - else - echo "$f: $NEW and $OLD Differ" - ecode=1 - fi - else - echo "$f: Making test result $OLD for the first time" - mv $NEW $OLD - fi -done -exit $ecode - -# Local Variables: -# mode:shell-script -# sh-indentation: 2 -# sh-basic-offset: 4 -# End: diff --git a/dependencies/yaz_3.0.14/test/tstmatchstr.c b/dependencies/yaz_3.0.14/test/tstmatchstr.c deleted file mode 100644 index 0c2230b..0000000 --- a/dependencies/yaz_3.0.14/test/tstmatchstr.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstmatchstr.c,v 1.6 2007/01/03 08:42:16 adam Exp $ - */ - -#include -#include - -#include -#include - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - - YAZ_CHECK(yaz_matchstr("x", "x") == 0); - YAZ_CHECK(yaz_matchstr("x", "X") == 0); - YAZ_CHECK(yaz_matchstr("a", "b") > 0); - YAZ_CHECK(yaz_matchstr("b", "a") > 0); - YAZ_CHECK(yaz_matchstr("aa","a") > 0); - YAZ_CHECK(yaz_matchstr("a-", "a") > 0); - YAZ_CHECK(yaz_matchstr("A-b", "ab") == 0); - YAZ_CHECK(yaz_matchstr("A--b", "ab") > 0); - YAZ_CHECK(yaz_matchstr("A--b", "a-b") > 0); - YAZ_CHECK(yaz_matchstr("A--b", "a--b") == 0); - YAZ_CHECK(yaz_matchstr("a123", "a?") == 0); - YAZ_CHECK(yaz_matchstr("a123", "a1.3") == 0); - YAZ_CHECK(yaz_matchstr("a123", "..?") == 0); - YAZ_CHECK(yaz_matchstr("a123", "a1.") > 0); - YAZ_CHECK(yaz_matchstr("a123", "a...") == 0); - - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tstnmem.c b/dependencies/yaz_3.0.14/test/tstnmem.c deleted file mode 100644 index b90fa5d..0000000 --- a/dependencies/yaz_3.0.14/test/tstnmem.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstnmem.c,v 1.8 2007/04/17 20:26:18 adam Exp $ - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include -#include - -void tst(void) -{ - NMEM n; - int j; - char *cp; - - n = nmem_create(); - YAZ_CHECK(n); - - for (j = 1; j<500; j++) - { - cp = nmem_malloc(n, j); - YAZ_CHECK(cp); - if (sizeof(long) >= j) - *(long*) cp = 123L; -#if HAVE_LONG_LONG - if (sizeof(long long) >= j) - *(long long*) cp = 123L; -#endif - if (sizeof(double) >= j) - *(double*) cp = 12.2; - } - - for (j = 2000; j<20000; j+= 2000) - { - cp = nmem_malloc(n, j); - YAZ_CHECK(cp); - } - nmem_destroy(n); -} - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - tst(); - YAZ_CHECK_TERM; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tstodr.asn b/dependencies/yaz_3.0.14/test/tstodr.asn deleted file mode 100644 index 7ccfc63..0000000 --- a/dependencies/yaz_3.0.14/test/tstodr.asn +++ /dev/null @@ -1,17 +0,0 @@ --- Small ASN.1 spec for tstodr test --- $Id: tstodr.asn,v 1.2 2005/05/26 21:47:16 adam Exp $ -tstodrcodec -{tstodrcodec} DEFINITIONS ::= -BEGIN -MySequence ::= SEQUENCE { - first [1] IMPLICIT INTEGER, - second [2] IMPLICIT OCTET STRING, - third [3] IMPLICIT BOOLEAN, - fourth [4] IMPLICIT NULL, - fifth [5] IMPLICIT INTEGER { - enum1(0), - enum2(1) - }, - myoid [6] IMPLICIT OBJECT IDENTIFIER -} -END diff --git a/dependencies/yaz_3.0.14/test/tstodr.c b/dependencies/yaz_3.0.14/test/tstodr.c deleted file mode 100644 index 450027c..0000000 --- a/dependencies/yaz_3.0.14/test/tstodr.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstodr.c,v 1.12 2007/08/13 16:23:30 mike Exp $ - * - */ -#include -#include -#include -#include "tstodrcodec.h" - -#include - -#define MYOID "1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19" - -void tst_MySequence1(ODR encode, ODR decode) -{ - int ret; - char *ber_buf; - int ber_len; - Yc_MySequence *s = odr_malloc(encode, sizeof(*s)); - Yc_MySequence *t; - - YAZ_CHECK(s); - s->first = odr_intdup(encode, 12345); - s->second = odr_malloc(encode, sizeof(*s->second)); - s->second->buf = (unsigned char *) "hello"; - s->second->len = 5; - s->second->size = 0; - s->third = odr_intdup(encode, 1); - s->fourth = odr_nullval(); - s->fifth = odr_intdup(encode, YC_MySequence_enum1); - - s->myoid = odr_getoidbystr(decode, MYOID); - - ret = yc_MySequence(encode, &s, 0, 0); - YAZ_CHECK(ret); - if (!ret) - return; - - ber_buf = odr_getbuf(encode, &ber_len, 0); - - odr_setbuf(decode, ber_buf, ber_len, 0); - - ret = yc_MySequence(decode, &t, 0, 0); - YAZ_CHECK(ret); - if (!ret) - return; - - YAZ_CHECK(t); - - YAZ_CHECK(t->first && *t->first == 12345); - - YAZ_CHECK(t->second && t->second->buf && t->second->len == 5); - - YAZ_CHECK(t->second && t->second->buf && t->second->len == 5 && - memcmp(t->second->buf, "hello", t->second->len) == 0); - - YAZ_CHECK(t->third && *t->third == 1); - - YAZ_CHECK(t->fourth); - - YAZ_CHECK(t->fifth && *t->fifth == YC_MySequence_enum1); - - YAZ_CHECK(t->myoid); - if (t->myoid) - { - Odr_oid *myoid = odr_getoidbystr(decode, MYOID); - - YAZ_CHECK(oid_oidcmp(myoid, t->myoid) == 0); - } -} - -void tst_MySequence2(ODR encode, ODR decode) -{ - int ret; - Yc_MySequence *s = odr_malloc(encode, sizeof(*s)); - - YAZ_CHECK(s); - s->first = 0; /* deliberately miss this .. */ - s->second = odr_malloc(encode, sizeof(*s->second)); - s->second->buf = (unsigned char *) "hello"; - s->second->len = 5; - s->second->size = 0; - s->third = odr_intdup(encode, 1); - s->fourth = odr_nullval(); - s->fifth = odr_intdup(encode, YC_MySequence_enum1); - s->myoid = odr_getoidbystr(encode, MYOID); - - ret = yc_MySequence(encode, &s, 0, 0); /* should fail */ - YAZ_CHECK(!ret); - - YAZ_CHECK(odr_geterror(encode) == OREQUIRED); - - YAZ_CHECK(strcmp(odr_getelement(encode), "first") == 0); - odr_reset(encode); - - YAZ_CHECK(odr_geterror(encode) == ONONE); - - YAZ_CHECK(strcmp(odr_getelement(encode), "") == 0); -} - -void tst_MySequence3(ODR encode, ODR decode) -{ - char buf[40]; - int i; - Yc_MySequence *t; - - srand(123); - for (i = 0; i<1000; i++) - { - int j; - for (j = 0; j - -int yc_MySequence (ODR o, Yc_MySequence **p, int opt, const char *name) -{ - if (!odr_sequence_begin (o, p, sizeof(**p), name)) - return odr_missing(o, opt, name) && odr_ok (o); - return - odr_implicit_tag (o, odr_integer, - &(*p)->first, ODR_CONTEXT, 1, 0, "first") && - odr_implicit_tag (o, odr_octetstring, - &(*p)->second, ODR_CONTEXT, 2, 0, "second") && - odr_implicit_tag (o, odr_bool, - &(*p)->third, ODR_CONTEXT, 3, 0, "third") && - odr_implicit_tag (o, odr_null, - &(*p)->fourth, ODR_CONTEXT, 4, 0, "fourth") && - odr_implicit_tag (o, odr_integer, - &(*p)->fifth, ODR_CONTEXT, 5, 0, "fifth") && - odr_implicit_tag (o, odr_oid, - &(*p)->myoid, ODR_CONTEXT, 6, 0, "myoid") && - odr_sequence_end (o); -} diff --git a/dependencies/yaz_3.0.14/test/tstodrcodec.h b/dependencies/yaz_3.0.14/test/tstodrcodec.h deleted file mode 100644 index 1ad8a71..0000000 --- a/dependencies/yaz_3.0.14/test/tstodrcodec.h +++ /dev/null @@ -1,37 +0,0 @@ -/** \file tstodrcodec.h - \brief ASN.1 Module tstodrcodec - - Generated automatically by YAZ ASN.1 Compiler 0.4 -*/ - -#ifndef tstodrcodec_H -#define tstodrcodec_H - -#include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct Yc_MySequence Yc_MySequence; -YAZ_EXPORT int yc_MySequence (ODR o, Yc_MySequence **p, int opt, const char *name); -#ifdef __cplusplus -} -#endif -#ifdef __cplusplus -extern "C" { -#endif -struct Yc_MySequence { - int *first; - Odr_oct *second; - bool_t *third; - Odr_null *fourth; -#define YC_MySequence_enum1 0 -#define YC_MySequence_enum2 1 - int *fifth; - Odr_oid *myoid; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/dependencies/yaz_3.0.14/test/tstodrstack.c b/dependencies/yaz_3.0.14/test/tstodrstack.c deleted file mode 100644 index de60ee9..0000000 --- a/dependencies/yaz_3.0.14/test/tstodrstack.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstodrstack.c,v 1.6 2007/01/03 08:42:16 adam Exp $ - * - */ -#include -#include -#include -#include - -/** \brief build a 100 level query */ -void test1(void) -{ - ODR odr = odr_createmem(ODR_ENCODE); - YAZ_PQF_Parser parser = yaz_pqf_create(); - Z_RPNQuery *rpn_query; - char qstr[10000]; - int i; - int ret; - - YAZ_CHECK(odr); - YAZ_CHECK(parser); - - *qstr = '\0'; - for (i = 0; i<100; i++) - strcat(qstr, "@and 1 "); - strcat(qstr, "1"); - - rpn_query = yaz_pqf_parse (parser, odr, qstr); - YAZ_CHECK(rpn_query); - - ret = z_RPNQuery(odr, &rpn_query, 0, 0); - YAZ_CHECK(ret); - - yaz_pqf_destroy(parser); - odr_destroy(odr); -} - -/** \brief build a circular referenced query */ -void test2(void) -{ - ODR odr = odr_createmem(ODR_ENCODE); - YAZ_PQF_Parser parser = yaz_pqf_create(); - Z_RPNQuery *rpn_query; - int ret; - - YAZ_CHECK(odr); - - rpn_query = yaz_pqf_parse (parser, odr, "@and @and a b c"); - YAZ_CHECK(rpn_query); - - /* make the circular reference */ - rpn_query->RPNStructure->u.complex->s1 = rpn_query->RPNStructure; - - ret = z_RPNQuery(odr, &rpn_query, 0, 0); /* should fail */ - YAZ_CHECK(!ret); - - yaz_pqf_destroy(parser); - odr_destroy(odr); -} - -int main(int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - test1(); - test2(); - YAZ_CHECK_TERM; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ diff --git a/dependencies/yaz_3.0.14/test/tstpquery.c b/dependencies/yaz_3.0.14/test/tstpquery.c deleted file mode 100644 index 40a64cc..0000000 --- a/dependencies/yaz_3.0.14/test/tstpquery.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstpquery.c,v 1.5 2007/03/19 14:40:07 adam Exp $ - */ - -#include -#include - -#include -#include -#include -#include - -int expect_pqf(const char *pqf, const char *expect_pqf, int expect_error) -{ - YAZ_PQF_Parser parser = yaz_pqf_create(); - int res = 0; - ODR odr = odr_createmem(ODR_ENCODE); - Z_RPNQuery *rpn; - - if (!parser) - return 0; - - if (!odr) - return 0; - - rpn = yaz_pqf_parse(parser, odr, pqf); - - if (!rpn) - { - const char *msg; - size_t offset; - int got_error = yaz_pqf_error (parser, &msg, &offset); - - if (expect_error == got_error) - res = 1; - } - else if (expect_error == YAZ_PQF_ERROR_NONE) - { - WRBUF wrbuf = wrbuf_alloc(); - - if (wrbuf) - { - yaz_rpnquery_to_wrbuf(wrbuf, rpn); - - if (!strcmp(wrbuf_cstr(wrbuf), expect_pqf)) - res = 1; - wrbuf_destroy(wrbuf); - } - } - yaz_pqf_destroy(parser); - odr_destroy(odr); - return res; -} - -static void tst(void) -{ - YAZ_CHECK(expect_pqf("a", "@attrset Bib-1 a", YAZ_PQF_ERROR_NONE)); - YAZ_CHECK(expect_pqf("@attr 1=4 a", "@attrset Bib-1 @attr 1=4 a", YAZ_PQF_ERROR_NONE)); - YAZ_CHECK(expect_pqf("a b", "", YAZ_PQF_ERROR_EXTRA)); - YAZ_CHECK(expect_pqf("@and a", "", YAZ_PQF_ERROR_MISSING)); - YAZ_CHECK(expect_pqf("@attr p=q a", "", YAZ_PQF_ERROR_BAD_INTEGER)); - YAZ_CHECK(expect_pqf("@prox 0 0 0 0 k 0 a b", - "@attrset Bib-1 @prox 0 0 0 0 k 0 a b", - YAZ_PQF_ERROR_NONE)); - YAZ_CHECK(expect_pqf("@prox 0 0 0 0 3 0 a b", "", - YAZ_PQF_ERROR_PROXIMITY)); -} - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - tst(); - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tstsoap1.c b/dependencies/yaz_3.0.14/test/tstsoap1.c deleted file mode 100644 index 447f3ab..0000000 --- a/dependencies/yaz_3.0.14/test/tstsoap1.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstsoap1.c,v 1.9 2007/01/03 08:42:16 adam Exp $ - */ - -#include -#if YAZ_HAVE_XML2 -#include -#endif -#include - -void tst(void) -{ -#if YAZ_HAVE_XML2 - xmlChar *buf_out; - int len_out; - xmlDocPtr doc; - xmlNodePtr top; -#if 0 - const char *val = "jordbær"; /* makes xmlDocDumpMemory hang .. */ -#else - const char *val = "jordbaer"; /* OK */ -#endif - doc = xmlNewDoc(BAD_CAST "1.0"); - YAZ_CHECK(doc); - - top = xmlNewNode(0, BAD_CAST "top"); - YAZ_CHECK(top); - - xmlNewTextChild(top, 0, BAD_CAST "sub", BAD_CAST val); - xmlDocSetRootElement(doc, top); - - xmlDocDumpMemory(doc, &buf_out, &len_out); -#if 0 - printf("%*s", len_out, buf_out); -#endif - - -/* YAZ_HAVE_XML2 */ -#endif -} - -int main(int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); -#if YAZ_HAVE_XML2 - LIBXML_TEST_VERSION; -#endif - tst(); - YAZ_CHECK_TERM; -} - - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tstsoap2.c b/dependencies/yaz_3.0.14/test/tstsoap2.c deleted file mode 100644 index 0594df3..0000000 --- a/dependencies/yaz_3.0.14/test/tstsoap2.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstsoap2.c,v 1.6 2007/01/03 08:42:16 adam Exp $ - */ - -#include -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include - -static void tst_srw(void) -{ - const char *charset = 0; - char *content_buf = 0; - int content_len; - int ret; - ODR o = odr_createmem(ODR_ENCODE); - Z_SOAP_Handler h[2] = { - {"http://www.loc.gov/zing/srw/", 0, (Z_SOAP_fun) yaz_srw_codec}, - {0, 0, 0} - }; - Z_SRW_PDU *sr = yaz_srw_get(o, Z_SRW_searchRetrieve_request); - Z_SOAP *p = odr_malloc(o, sizeof(*p)); - - YAZ_CHECK(o); - YAZ_CHECK(sr); - YAZ_CHECK(p); -#if 0 - sr->u.request->query.cql = "jordbær"; -#else - sr->u.request->query.cql = "jordbaer"; -#endif - - p->which = Z_SOAP_generic; - p->u.generic = odr_malloc(o, sizeof(*p->u.generic)); - p->u.generic->no = 0; - p->u.generic->ns = 0; - p->u.generic->p = sr; - p->ns = "http://schemas.xmlsoap.org/soap/envelope/"; - - ret = z_soap_codec_enc(o, &p, &content_buf, &content_len, h, charset); - odr_destroy(o); - YAZ_CHECK(ret == 0); /* codec failed ? */ -} -#endif - -int main(int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); -#if YAZ_HAVE_XML2 - LIBXML_TEST_VERSION; - tst_srw(); -#endif - YAZ_CHECK_TERM; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/test/tstwrbuf.c b/dependencies/yaz_3.0.14/test/tstwrbuf.c deleted file mode 100644 index e027215..0000000 --- a/dependencies/yaz_3.0.14/test/tstwrbuf.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: tstwrbuf.c,v 1.7 2007/03/19 14:40:07 adam Exp $ - */ - -#include -#include - -#include -#include - -static void tstwrbuf(void) -{ - int step; - WRBUF wr = wrbuf_alloc(); - - YAZ_CHECK(wr); - - wrbuf_destroy(wr); - - wr = wrbuf_alloc(); - - YAZ_CHECK(wr); - - for (step = 1; step < 65; step++) - { - int i, j, k; - int len; - char buf[64]; - char *cp; - for (j = 1; j -#include - -#include -#include -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include -#include -#endif - -enum pqf2xml_status { - PQF_FAILED, - QUERY2XML_FAILED, - XML_NO_MATCH, - XML_MATCH, - XML_NO_ERROR -}; - -enum pqf2xml_status pqf2xml_text(const char *pqf, const char *expect_xml, - const char *expect_pqf) -{ - YAZ_PQF_Parser parser = yaz_pqf_create(); - ODR odr = odr_createmem(ODR_ENCODE); - Z_RPNQuery *rpn; - enum pqf2xml_status status = XML_NO_ERROR; - - YAZ_CHECK(parser); - - YAZ_CHECK(odr); - - rpn = yaz_pqf_parse(parser, odr, pqf); - - yaz_pqf_destroy(parser); - - if (!rpn) - status = PQF_FAILED; - else - { -#if YAZ_HAVE_XML2 - xmlDocPtr doc = 0; - - yaz_rpnquery2xml(rpn, &doc); - - if (!doc) - status = QUERY2XML_FAILED; - else - { - char *buf_out; - int len_out; - - xmlDocDumpMemory(doc, (xmlChar **) &buf_out, &len_out); - - if (len_out == strlen(expect_xml) - && memcmp(buf_out, expect_xml, len_out) == 0) - { - Z_Query *query2 = 0; - int error_code = 0; - const char *addinfo = 0; - const xmlNode *root_element = xmlDocGetRootElement(doc); - ODR odr2 = odr_createmem(ODR_ENCODE); - - yaz_xml2query(root_element, &query2, odr2, - &error_code, &addinfo); - if (error_code || !query2) - status = XML_NO_MATCH; - else - { - WRBUF w = wrbuf_alloc(); - yaz_query_to_wrbuf(w, query2); - if (!expect_pqf || strcmp(expect_pqf, wrbuf_cstr(w)) == 0) - status = XML_MATCH; - else - { - status = XML_NO_MATCH; - printf("Result: %s\n", wrbuf_cstr(w)); - } - wrbuf_destroy(w); - } - odr_destroy(odr2); - } - else - { - printf("%.*s\n", len_out, buf_out); - status = XML_NO_MATCH; - } - xmlFreeDoc(doc); - } -#else - status = QUERY2XML_FAILED; -#endif - } - odr_destroy(odr); - return status; -} - -static void tst(void) -{ - YAZ_CHECK_EQ(pqf2xml_text("@attr 1=4 bad query", "", 0), PQF_FAILED); -#if YAZ_HAVE_XML2 - YAZ_CHECK_EQ(pqf2xml_text( - "@attr 1=4 computer", - "\n" - "" - "" - "computer" - "\n", - "RPN @attrset Bib-1 @attr 1=4 computer" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@attr 2=1 @attr 1=title computer", - "\n" - "" - "" - "" - "computer" - "\n", - "RPN @attrset Bib-1 @attr \"1=title\" @attr 2=1 computer" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@attr 2=1 @attr exp1 1=1 computer", - "\n" - "" - "" - "" - "computer" - "\n", - "RPN @attrset Bib-1 @attr Exp-1 1=1 @attr 2=1 computer" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@and a b", - "\n" - "" - "" - "a" - "b" - "\n", - "RPN @attrset Bib-1 @and a b" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@or @and a b c", - "\n" - "" - "" - "" - "a" - "b" - "c" - "\n", - "RPN @attrset Bib-1 @or @and a b c" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@set abe", - "\n" - "" - "abe\n", - "RPN @attrset Bib-1 @set abe" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - /* exclusion, distance, ordered, relationtype, - knownunit, proxunit */ - "@prox 0 3 1 2 k 2 a b", - "\n" - "" - "" - "a" - "b" - "\n", - "RPN @attrset Bib-1 @prox 0 3 1 2 k 2 a b" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@term numeric 32", - "\n" - "" - "" - "32" - "\n", - "RPN @attrset Bib-1 @term numeric 32" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@term string computer", - "\n" - "" - "" - "computer" - "\n", - "RPN @attrset Bib-1 @term string computer" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@term null void", - "\n" - "" - "" - "" - "\n", - "RPN @attrset Bib-1 @term null x" - ), XML_MATCH); - - YAZ_CHECK_EQ(pqf2xml_text( - "@attrset gils @attr 4=2 x", - "\n" - "" - "" - "" - "x" - "\n", - "RPN @attrset GILS @attr 4=2 x" - ), XML_MATCH); -#endif -} - -int main (int argc, char **argv) -{ - YAZ_CHECK_INIT(argc, argv); - tst(); - YAZ_CHECK_TERM; -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/uninst.exe b/dependencies/yaz_3.0.14/uninst.exe deleted file mode 100644 index 0f50f7e45bb8a22eff8384aeb8db8c2004f8a617..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50518 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 -#include -#include -#include -#include - -#include - - -struct boptions { - int nconnect; /* number of connections to make */ - int nsearch; /* number of searches on each connection */ - int npresent; /* number of presents for each search */ - int full; /* 1 = fetch full records, 0 = brief */ - int delay; /* number of ms to delay between ops */ - int random; /* if true, delay is random 0-specified */ - int verbosity; /* 0 = quiet, higher => more verbose */ -} boptions = { - 3, - 3, - 3, - 0, - 1000, - 1, - 0, -}; - - -static int test(char *host, int port); -static void db_printf(int level, char *fmt, ...); -static void usage(const char *prog); - -int main(int argc, char **argv) -{ - char *host = 0; - int port = 0; - int c; - int i; - int ok; - int nok = 0; - char *arg; - - while ((c = options("c:s:p:fbd:rv:", argv, argc, &arg)) != -2) { - switch (c) { - case 0: - if (!host) - host = arg; - else if (!port) - port = atoi(arg); - else - usage(*argv); - break; - case 'c': boptions.nconnect = atoi(arg); break; - case 's': boptions.nsearch = atoi(arg); break; - case 'p': boptions.npresent = atoi(arg); break; - case 'f': boptions.full = 1; break; - case 'b': boptions.full = 0; break; - case 'd': boptions.delay = atoi(arg); break; - case 'r': boptions.random = 1; break; - case 'v': boptions.verbosity = atoi(arg); break; - default: usage(*argv); - } - } - - if (!host || !port) - usage(*argv); - - for (i = 0; i < boptions.nconnect; i++) { - db_printf(2, "iteration %d of %d", i+1, boptions.nconnect); - ok = test(host, port); - if (ok) nok++; - } - - db_printf(1, "passed %d of %d tests", nok, boptions.nconnect); - if (nok < boptions.nconnect) - printf("Failed %d of %d tests\n", - boptions.nconnect-nok, boptions.nconnect); - - return 0; -} - -static void usage(const char *prog) -{ - fprintf(stderr, "Usage: %s [options] \n" -" -c Make connection to the server [default: 3]\n" -" -s Perform searches on each connection [3]\n" -" -p Make present requests after each search [3]\n" -" -f Fetch full records [default: brief]\n" -" -b Fetch brief records\n" -" -d Delay ms after each operation\n" -" -r Delays are random between 0 and the specified number of ms\n" -" -v Set verbosity level to [0, silent on success]\n" - , prog); - exit(1); -} - -static int test(char *host, int port) -{ - ZOOM_connection conn; - int error; - const char *errmsg, *addinfo; - - conn = ZOOM_connection_new(host, port); - if ((error = ZOOM_connection_error(conn, &errmsg, &addinfo))) { - fprintf(stderr, "ZOOM error: %s (%d): %s\n", errmsg, error, addinfo); - return 0; - } - - ZOOM_connection_destroy(conn); - return 1; -} - -static void db_printf(int level, char *fmt, ...) -{ - va_list ap; - - if (level > boptions.verbosity) - return; - - fprintf(stderr, "DEBUG(%d): ", level); - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - fputc('\n', stderr); - va_end(ap); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/util/cclsh.c b/dependencies/yaz_3.0.14/util/cclsh.c deleted file mode 100644 index b3dde6d..0000000 --- a/dependencies/yaz_3.0.14/util/cclsh.c +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright (c) 1995, the EUROPAGATE consortium (see below). - * - * The EUROPAGATE consortium members are: - * - * University College Dublin - * Danmarks Teknologiske Videnscenter - * An Chomhairle Leabharlanna - * Consejo Superior de Investigaciones Cientificas - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: - * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The names of EUROPAGATE or the project partners may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 3. Users of this software (implementors and gateway operators) agree to - * inform the EUROPAGATE consortium of their use of the software. This - * information will be used to evaluate the EUROPAGATE project and the - * software, and to plan further developments. The consortium may use - * the information in later publications. - * - * 4. Users of this software agree to make their best efforts, when - * documenting their use of the software, to acknowledge the EUROPAGATE - * consortium, and the role played by the software in their work. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL THE EUROPAGATE CONSORTIUM OR ITS MEMBERS BE LIABLE - * FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF - * ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA - * OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND - * ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ -/* CCL shell. - * Europagate 1995 - * - * $Id: cclsh.c,v 1.8 2007/05/01 12:22:11 adam Exp $ - * - * Old Europagate Log: - * - * Revision 1.11 1995/05/16 09:39:27 adam - * LICENSE. - * - * Revision 1.10 1995/05/11 14:03:57 adam - * Changes in the reading of qualifier(s). New function: ccl_qual_fitem. - * New variable ccl_case_sensitive, which controls whether reserved - * words and field names are case sensitive or not. - * - * Revision 1.9 1995/02/23 08:32:00 adam - * Changed header. - * - * Revision 1.7 1995/02/15 17:42:16 adam - * Minor changes of the api of this module. FILE* argument added - * to ccl_pr_tree. - * - * Revision 1.6 1995/02/14 19:55:13 adam - * Header files ccl.h/cclp.h are gone! They have been merged an - * moved to ../include/ccl.h. - * Node kind(s) in ccl_rpn_node have changed names. - * - * Revision 1.5 1995/02/14 16:20:57 adam - * Qualifiers are read from a file now. - * - * Revision 1.4 1995/02/14 14:12:42 adam - * Ranges for ordered qualfiers implemented (e.g. pd=1980-1990). - * - * Revision 1.3 1995/02/14 10:25:57 adam - * The constructions 'qualifier rel term ...' implemented. - * - * Revision 1.2 1995/02/13 15:15:07 adam - * Added handling of qualifiers. Not finished yet. - * - * Revision 1.1 1995/02/13 12:35:21 adam - * First version of CCL. Qualifiers aren't handled yet. - */ - -#include -#include -#include - -#include -#include - -#if HAVE_READLINE_READLINE_H -#include -#endif -#if HAVE_READLINE_HISTORY_H -#include -#endif - - -static int debug = 0; -static char *prog; - -void usage(const char *prog) -{ - fprintf(stderr, "%s: [-d] [-b configfile] [-x xmlconfig]\n", prog); - exit(1); -} - -int main(int argc, char **argv) -{ - CCL_bibset bibset; - FILE *bib_inf; - char *bib_fname; - int ret; - char *arg; -#if YAZ_HAVE_XML2 - xmlDocPtr doc; - const char *addinfo; -#endif - WRBUF q_wrbuf = 0; - - prog = *argv; - bibset = ccl_qual_mk(); - - while ((ret = options("db:x:", argv, argc, &arg)) != -2) - { - switch(ret) - { - case 'd': - debug = 1; - break; - case 'b': - bib_fname = arg; - bib_inf = fopen(bib_fname, "r"); - if (!bib_inf) - { - fprintf(stderr, "%s: cannot open %s\n", prog, - bib_fname); - exit(1); - } - ccl_qual_file(bibset, bib_inf); - fclose(bib_inf); - break; -#if YAZ_HAVE_XML2 - case 'x': - doc = xmlParseFile(arg); - if (!doc) - { - fprintf(stderr, "%s: could not read %s\n", prog, arg); - exit(1); - } - if (ccl_xml_config(bibset, xmlDocGetRootElement(doc), &addinfo)) - { - fprintf(stderr, "%s: error in %s: %s\n", prog, arg, addinfo); - exit(1); - } - xmlFreeDoc(doc); - break; -#endif - case 0: - if (q_wrbuf) - wrbuf_puts(q_wrbuf, " "); - else - q_wrbuf = wrbuf_alloc(); - wrbuf_puts(q_wrbuf, arg); - break; - default: - usage(prog); - } - } - if (q_wrbuf) - { - CCL_parser cclp = ccl_parser_create(bibset); - int error; - struct ccl_rpn_node *rpn; - - rpn = ccl_parser_find_str(cclp, wrbuf_cstr(q_wrbuf)); - - error = ccl_parser_get_error(cclp, 0); - - if (error) - { - printf("%s\n", ccl_err_msg(error)); - } - else - { - if (rpn) - { - ccl_pr_tree(rpn, stdout); - printf("\n"); - } - } - ccl_parser_destroy(cclp); - if (rpn) - ccl_rpn_delete(rpn); - wrbuf_destroy(q_wrbuf); - exit(0); - } - while (1) - { - char buf[1000]; - int i, error; - struct ccl_rpn_node *rpn; - -#if HAVE_READLINE_READLINE_H - char* line_in; - line_in=readline("CCLSH>"); - if (!line_in) - break; -#if HAVE_READLINE_HISTORY_H - if (*line_in) - add_history(line_in); -#endif - if (strlen(line_in) > 999) { - fprintf(stderr,"Input line to long\n"); - break; - } - strcpy(buf,line_in); - free(line_in); -#else - printf("CCLSH>"); fflush(stdout); - if (!fgets(buf, 999, stdin)) - break; -#endif - - for (i = 0; i<1; i++) - { - CCL_parser cclp = ccl_parser_create(bibset); - int pos; - - rpn = ccl_parser_find_str(cclp, buf); - - error = ccl_parser_get_error(cclp, &pos); - - if (error) - { - printf("%*s^ - ", 6+pos, " "); - printf("%s\n", ccl_err_msg(error)); - } - else - { - if (rpn && i == 0) - { - ccl_stop_words_t csw = ccl_stop_words_create(); - int idx = 0; - printf("First:\n"); - ccl_pr_tree(rpn, stdout); - if (ccl_stop_words_tree(csw, bibset, &rpn)) - { - printf("Second:\n"); - ccl_pr_tree(rpn, stdout); - printf("\n"); - - for (idx = 0; ; idx++) - { - const char *qname; - const char *term; - if (!ccl_stop_words_info(csw, idx, - &qname, &term)) - break; - printf("Removed from %s: %s\n", - qname ? qname : "none", term); - } - } - ccl_stop_words_destroy(csw); - } - } - ccl_parser_destroy(cclp); - if (rpn) - ccl_rpn_delete(rpn); - } - } - printf("\n"); - ccl_qual_rm(&bibset); - return 0; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/util/cql2pqf.c b/dependencies/yaz_3.0.14/util/cql2pqf.c deleted file mode 100644 index baf851a..0000000 --- a/dependencies/yaz_3.0.14/util/cql2pqf.c +++ /dev/null @@ -1,99 +0,0 @@ -/* $Id: cql2pqf.c,v 1.9 2007/01/03 08:42:16 adam Exp $ - Copyright (C) 1995-2007, Index Data ApS - Index Data Aps - -This file is part of the YAZ toolkit. - -See the file LICENSE. -*/ - -#include -#include - -#include -#include - -static void usage(void) -{ - fprintf (stderr, "usage\n cql2pqf [-n ] []\n"); - exit (1); -} - -int main(int argc, char **argv) -{ - cql_transform_t ct; - int r = 0; - int i, iterations = 1; - CQL_parser cp = cql_parser_create(); - char *query = 0; - char *fname = 0; - - int ret; - char *arg; - - while ((ret = options("n:", argv, argc, &arg)) != -2) - { - switch (ret) - { - case 0: - if (!fname) - fname = arg; - else - query = arg; - break; - case 'n': - iterations = atoi(arg); - break; - default: - usage(); - } - } - if (!fname) - usage(); - ct = cql_transform_open_fname(fname); - if (!ct) - { - fprintf (stderr, "failed to read properties %s\n", fname); - exit (1); - } - - if (query) - { - for (i = 0; i -#include - -#include -#include - -int main(int argc, char **argv) -{ - CQL_parser cp; - int r = 0; - const char *fname = 0; - int iterations = 1; - int ret; - char *arg; - - while ((ret = options("n:", argv, argc, &arg)) != -2) - { - switch (ret) - { - case 0: - fname = arg; - break; - case 'n': - iterations = atoi(arg); - break; - } - } - - cp = cql_parser_create(); - if (fname) - { - int i; - for (i = 0; i -#endif - -#if YAZ_HAVE_XML2 -#include -#include - -#include -#include - -#endif - -#include -#include -#include -#include -#include - -#if HAVE_LOCALE_H -#include -#endif -#if HAVE_LANGINFO_H -#include -#endif - -#include -#include -#include -#include - -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif -#ifndef SEEK_END -#define SEEK_END 2 -#endif - - -static char *prog; - -static void usage(const char *prog) -{ - fprintf (stderr, "Usage: %s [-c cfile] [-f from] [-t to] " - "[-i format] [-o format] " - "[-n] [-l pos=value] [-v] [-C chunk] [-s splitfname] file...\n", - prog); -} - -static int getbyte_stream(void *client_data) -{ - FILE *f = (FILE*) client_data; - - int c = fgetc(f); - if (c == EOF) - return 0; - return c; -} - -static void ungetbyte_stream(int c, void *client_data) -{ - FILE *f = (FILE*) client_data; - - if (c == 0) - c = EOF; - ungetc(c, f); -} - -static void marcdump_read_line(yaz_marc_t mt, const char *fname) -{ - FILE *inf = fopen(fname, "rb"); - if (!inf) - { - fprintf (stderr, "%s: cannot open %s:%s\n", - prog, fname, strerror (errno)); - exit(1); - } - - while (yaz_marc_read_line(mt, getbyte_stream, - ungetbyte_stream, inf) == 0) - { - WRBUF wrbuf = wrbuf_alloc(); - yaz_marc_write_mode(mt, wrbuf); - fputs(wrbuf_cstr(wrbuf), stdout); - wrbuf_destroy(wrbuf); - } - fclose(inf); -} - -#if YAZ_HAVE_XML2 -static void marcdump_read_xml(yaz_marc_t mt, const char *fname) -{ - xmlNodePtr ptr; - xmlDocPtr doc = xmlParseFile(fname); - if (!doc) - return; - - ptr = xmlDocGetRootElement(doc); - if (ptr) - { - int r; - WRBUF wrbuf = wrbuf_alloc(); - r = yaz_marc_read_xml(mt, ptr); - if (r) - fprintf(stderr, "yaz_marc_read_xml failed\n"); - else - { - yaz_marc_write_mode(mt, wrbuf); - - fputs(wrbuf_cstr(wrbuf), stdout); - } - wrbuf_destroy(wrbuf); - } - xmlFreeDoc(doc); -} -#endif - -static void dump(const char *fname, const char *from, const char *to, - int input_format, int output_format, - int write_using_libxml2, - int print_offset, const char *split_fname, int split_chunk, - int verbose, FILE *cfile, const char *leader_spec) -{ - yaz_marc_t mt = yaz_marc_create(); - yaz_iconv_t cd = 0; - - if (yaz_marc_leader_spec(mt, leader_spec)) - { - fprintf(stderr, "bad leader spec: %s\n", leader_spec); - yaz_marc_destroy(mt); - exit(2); - } - if (from && to) - { - cd = yaz_iconv_open(to, from); - if (!cd) - { - fprintf(stderr, "conversion from %s to %s " - "unsupported\n", from, to); - yaz_marc_destroy(mt); - exit(2); - } - yaz_marc_iconv(mt, cd); - } - yaz_marc_xml(mt, output_format); - yaz_marc_write_using_libxml2(mt, write_using_libxml2); - yaz_marc_debug(mt, verbose); - - if (input_format == YAZ_MARC_MARCXML || input_format == YAZ_MARC_XCHANGE) - { -#if YAZ_HAVE_XML2 - marcdump_read_xml(mt, fname); -#endif - } - else if (input_format == YAZ_MARC_LINE) - { - marcdump_read_line(mt, fname); - } - else if (input_format == YAZ_MARC_ISO2709) - { - FILE *inf = fopen(fname, "rb"); - int num = 1; - int marc_no = 0; - int split_file_no = -1; - if (!inf) - { - fprintf (stderr, "%s: cannot open %s:%s\n", - prog, fname, strerror (errno)); - exit(1); - } - if (cfile) - fprintf (cfile, "char *marc_records[] = {\n"); - for(;; marc_no++) - { - const char *result = 0; - size_t len; - size_t rlen; - size_t len_result; - size_t r; - char buf[100001]; - - r = fread (buf, 1, 5, inf); - if (r < 5) - { - if (r && print_offset && verbose) - printf ("\n", - (long) r); - break; - } - while (*buf < '0' || *buf > '9') - { - int i; - long off = ftell(inf) - 5; - if (verbose || print_offset) - printf("\n", - *buf & 0xff, *buf & 0xff, - off, off); - for (i = 0; i<4; i++) - buf[i] = buf[i+1]; - r = fread(buf+4, 1, 1, inf); - if (r < 1) - break; - } - if (r < 1) - { - if (verbose || print_offset) - printf ("\n"); - break; - } - if (print_offset) - { - long off = ftell(inf) - 5; - printf ("\n", - num, off, off); - } - len = atoi_n(buf, 5); - if (len < 25 || len > 100000) - { - long off = ftell(inf) - 5; - printf("Bad Length %ld read at offset %ld (%lx)\n", - (long)len, (long) off, (long) off); - break; - } - rlen = len - 5; - r = fread (buf + 5, 1, rlen, inf); - if (r < rlen) - break; - while (buf[len-1] != ISO2709_RS) - { - if (len > sizeof(buf)-2) - break; - r = fread (buf + len, 1, 1, inf); - if (r != 1) - break; - len++; - } - if (split_fname) - { - char fname[256]; - const char *mode = 0; - FILE *sf; - if ((marc_no % split_chunk) == 0) - { - mode = "wb"; - split_file_no++; - } - else - mode = "ab"; - sprintf(fname, "%.200s%07d", split_fname, split_file_no); - sf = fopen(fname, mode); - if (!sf) - { - fprintf(stderr, "Could not open %s\n", fname); - split_fname = 0; - } - else - { - if (fwrite(buf, 1, len, sf) != len) - { - fprintf(stderr, "Could write content to %s\n", - fname); - split_fname = 0; - } - fclose(sf); - } - } - len_result = rlen; - r = yaz_marc_decode_buf(mt, buf, -1, &result, &len_result); - if (r > 0 && result) - { - fwrite (result, len_result, 1, stdout); - } - if (r > 0 && cfile) - { - char *p = buf; - size_t i; - if (marc_no) - fprintf (cfile, ","); - fprintf (cfile, "\n"); - for (i = 0; i < r; i++) - { - if ((i & 15) == 0) - fprintf (cfile, " \""); - fprintf (cfile, "\\x%02X", p[i] & 255); - - if (i < r - 1 && (i & 15) == 15) - fprintf (cfile, "\"\n"); - - } - fprintf (cfile, "\"\n"); - } - num++; - if (verbose) - printf("\n"); - } - if (cfile) - fprintf (cfile, "};\n"); - fclose(inf); - } - if (cd) - yaz_iconv_close(cd); - yaz_marc_destroy(mt); -} - -int main (int argc, char **argv) -{ - int r; - int print_offset = 0; - char *arg; - int verbose = 0; - int no = 0; - int output_format = YAZ_MARC_LINE; - FILE *cfile = 0; - char *from = 0, *to = 0; - int input_format = YAZ_MARC_ISO2709; - int split_chunk = 1; - const char *split_fname = 0; - const char *leader_spec = 0; - int write_using_libxml2 = 0; - -#if HAVE_LOCALE_H - setlocale(LC_CTYPE, ""); -#endif -#if HAVE_LANGINFO_H -#ifdef CODESET - to = nl_langinfo(CODESET); -#endif -#endif - - prog = *argv; - while ((r = options("i:o:C:npvc:xOeXIf:t:s:l:", argv, argc, &arg)) != -2) - { - no++; - switch (r) - { - case 'i': - input_format = yaz_marc_decode_formatstr(arg); - if (input_format == -1) - { - fprintf(stderr, "%s: bad input format: %s\n", prog, arg); - exit(1); - } -#if YAZ_HAVE_XML2 -#else - if (input_format == YAZ_MARC_MARCXML - || input_format == YAZ_MARC_XCHANGE) - { - fprintf(stderr, "%s: Libxml2 support not enabled\n", prog); - exit(3); - } -#endif - break; - case 'o': - /* dirty hack so we can make Libxml2 do the writing .. - rather than WRBUF */ - if (strlen(arg) > 4 && strncmp(arg, "xml,", 4) == 0) - { - arg = arg + 4; - write_using_libxml2 = 1; - } - output_format = yaz_marc_decode_formatstr(arg); - if (output_format == -1) - { - fprintf(stderr, "%s: bad output format: %s\n", prog, arg); - exit(1); - } - break; - case 'l': - leader_spec = arg; - break; - case 'f': - from = arg; - break; - case 't': - to = arg; - break; - case 'c': - if (cfile) - fclose (cfile); - cfile = fopen(arg, "w"); - break; - case 'x': - fprintf(stderr, "%s: -x no longer supported. " - "Use -i marcxml instead\n", prog); - exit(1); - break; - case 'O': - fprintf(stderr, "%s: OAI MARC no longer supported." - " Use MARCXML instead.\n", prog); - exit(1); - break; - case 'e': - fprintf(stderr, "%s: -e no longer supported. " - "Use -o marcxchange instead\n", prog); - exit(1); - break; - case 'X': - fprintf(stderr, "%s: -X no longer supported. " - "Use -o marcxml instead\n", prog); - exit(1); - break; - case 'I': - fprintf(stderr, "%s: -I no longer supported. " - "Use -o marc instead\n", prog); - exit(1); - break; - case 'n': - output_format = YAZ_MARC_CHECK; - break; - case 'p': - print_offset = 1; - break; - case 's': - split_fname = arg; - break; - case 'C': - split_chunk = atoi(arg); - break; - case 0: - dump(arg, from, to, input_format, output_format, - write_using_libxml2, - print_offset, split_fname, split_chunk, - verbose, cfile, leader_spec); - break; - case 'v': - verbose++; - break; - default: - usage(prog); - exit(1); - } - } - if (cfile) - fclose (cfile); - if (!no) - { - usage(prog); - exit (1); - } - exit (0); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/util/srwtst.c b/dependencies/yaz_3.0.14/util/srwtst.c deleted file mode 100644 index 9af3547..0000000 --- a/dependencies/yaz_3.0.14/util/srwtst.c +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: srwtst.c,v 1.8 2007/05/06 20:12:20 adam Exp $ - */ - -#include -#include - -#if YAZ_HAVE_XML2 -Z_SOAP_Handler h[2] = { - {"http://www.loc.gov/zing/srw/v1.0/", 0, (Z_SOAP_fun) yaz_srw_codec}, - {0, 0, 0} -}; - -int main(int argc, char **argv) -{ - char buf[163840]; - char *content_buf = buf; - int content_len; - int ret; - size_t no; - Z_SOAP *soap_package = 0; - ODR decode, encode; - int debug = 0; - - if (argc == 2 && !strcmp(argv[1], "debug")) - debug = 1; - no = fread(buf, 1, sizeof(buf), stdin); - if (no < 1 || no == sizeof(buf)) - { - fprintf(stderr, "Bad file or too big\n"); - exit (1); - } - decode = odr_createmem(ODR_DECODE); - encode = odr_createmem(ODR_ENCODE); - content_len = no; - ret = z_soap_codec(decode, &soap_package, - &content_buf, &content_len, h); - if (!soap_package) - { - fprintf(stderr, "Decoding seriously failed\n"); - exit(1); - } - if (debug) - { - fprintf(stderr, "got NS = %s\n", soap_package->ns); - if (soap_package->which == Z_SOAP_generic && - soap_package->u.generic->no == 0) - { - Z_SRW_PDU *sr = (Z_SRW_PDU *) soap_package->u.generic->p; - if (sr->which == Z_SRW_searchRetrieve_request) - { - Z_SRW_searchRetrieveRequest *req = sr->u.request; - switch(req->query_type) - { - case Z_SRW_query_type_cql: - fprintf(stderr, "CQL: %s\n", req->query.cql); - break; - case Z_SRW_query_type_xcql: - fprintf(stderr, "XCQL\n"); - break; - case Z_SRW_query_type_pqf: - fprintf(stderr, "PQF: %s\n", req->query.pqf); - break; - } - } - else if (sr->which == Z_SRW_searchRetrieve_response) - { - Z_SRW_searchRetrieveResponse *res = sr->u.response; - if (res->records && res->num_records) - { - int i; - for (i = 0; inum_records; i++) - { - fprintf (stderr, "%d\n", i); - if (res->records[i].recordData_buf) - fwrite(res->records[i].recordData_buf, 1, - res->records[i].recordData_len, stderr); - } - } - } - - } - } - ret = z_soap_codec(encode, &soap_package, - &content_buf, &content_len, h); - if (content_buf && content_len) - fwrite (content_buf, content_len, 1, stdout); - else - { - fprintf(stderr, "No output!\n"); - exit(1); - } - odr_destroy(decode); - odr_destroy(encode); - exit(0); -} -#else -int main(int argc, char **argv) -{ - fprintf(stderr, "SOAP disabled\n"); - exit(1); -} -#endif -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/util/yaz-asncomp b/dependencies/yaz_3.0.14/util/yaz-asncomp deleted file mode 100644 index 70dec24..0000000 --- a/dependencies/yaz_3.0.14/util/yaz-asncomp +++ /dev/null @@ -1,1407 +0,0 @@ -#!/bin/sh -# the next line restarts using tclsh \ -if [ -f /usr/local/bin/tclsh8.4 ]; then exec tclsh8.4 "$0" "$@"; else exec tclsh "$0" "$@"; fi -# -# yaz-comp: ASN.1 Compiler for YAZ -# (c) Index Data 1996-2007 -# See the file LICENSE for details. -# -# $Id: yaz-asncomp,v 1.8 2007/01/03 08:42:16 adam Exp $ -# - -set yc_version 0.4 - -# Syntax for the ASN.1 supported: -# file -> file module -# | module -# module -> name skip DEFINITIONS ::= mbody END -# mbody -> EXPORTS { nlist } -# | IMPORTS { imlist } -# | name ::= tmt -# | skip -# tmt -> tag mod type -# type -> SEQUENCE { sqlist } -# | SEQUENCE OF type -# | CHOICE { chlist } -# | basic enlist -# -# basic -> INTEGER -# | BOOLEAN -# | OCTET STRING -# | BIT STRING -# | EXTERNAL -# | name -# sqlist -> sqlist , name tmt opt -# | name tmt opt -# chlist -> chlist , name tmt -# | name tmt -# enlist -> enlist , name (n) -# | name (n) -# imlist -> nlist FROM name -# imlist nlist FROM name -# nlist -> name -# | nlist , name -# mod -> IMPLICIT | EXPLICIT | e -# tag -> [tagtype n] | [n] | e -# opt -> OPTIONAL | e -# -# name identifier/token -# e epsilon/empty -# skip one token skipped -# n number -# tagtype APPLICATION, CONTEXT, etc. - -# lex: moves input file pointer and returns type of token. -# The globals $type and $val are set. $val holds name if token -# is normal identifier name. -# sets global var type to one of: -# {} eof-of-file -# \{ left curly brace -# \} right curly brace -# , comma -# ; semicolon -# ( (n) -# [ [n] -# : ::= -# n other token n -proc lex {} { - global inf val type - while {![string length $inf(str)]} { - incr inf(lineno) - set inf(cnt) [gets $inf(inf) inf(str)] - if {$inf(cnt) < 0} { - set type {} - return {} - } - lappend inf(asn,$inf(asndef)) $inf(str) - set l [string first -- $inf(str)] - if {$l >= 0} { - incr l -1 - set inf(str) [string range $inf(str) 0 $l] - } - set inf(str) [string trim $inf(str)] - } - set s [string index $inf(str) 0] - set type $s - set val {} - switch -- $s { - \{ { } - \} { } - , { } - ; { } - \( { } - \) { } - \[ { regexp {^\[[ ]*(.+)[ ]*\]} $inf(str) s val } - : { regexp {^::=} $inf(str) s } - default { - regexp "^\[^,\t :\{\}();\]+" $inf(str) s - set type n - set val $s - } - } - set off [string length $s] - set inf(str) [string trim [string range $inf(str) $off end]] - return $type -} - -# lex-expect: move pointer and expect token $t -proc lex-expect {t} { - global type val - lex - if {[string compare $t $type]} { - asnError "Got $type '$val', expected $t" - } -} - -# lex-name-move: see if token is $name; moves pointer and returns -# 1 if it is; returns 0 otherwise. -proc lex-name-move {name} { - global type val - if {![string compare $type n] && ![string compare $val $name]} { - lex - return 1 - } - return 0 -} - -# asnError: Report error and die -proc asnError {msg} { - global inf - - puts "Error in line $inf(lineno) in module $inf(module)" - puts " $msg" - error - exit 1 -} - -# asnWarning: Report warning and return -proc asnWarning {msg} { - global inf - - puts "Warning in line $inf(lineno) in module $inf(module)" - puts " $msg" -} - -# asnEnum: parses enumerated list - { name1 (n), name2 (n), ... } -# Uses $name as prefix. If there really is a list, $lx holds the C -# preprocessor definitions on return; otherwise lx isn't set. -proc asnEnum {name lx} { - global type val inf - - if {[string compare $type \{]} return - upvar $lx l - while {1} { - set pq [asnName $name] - set id [lindex $pq 0] - set id ${name}_$id - lex-expect n - lappend l "#define $inf(dprefix)$id $val" - lex-expect ")" - lex - if {[string compare $type ,]} break - } - if {[string compare $type \}]} { - asnError "Missing \} in enum list got $type '$val'" - } - lex -} - -# asnMod: parses tag and modifier. -# $xtag and $ximplicit holds tag and implicit-indication on return. -# $xtag is empty if no tag was specified. $ximplicit is 1 on implicit -# tagging; 0 otherwise. -proc asnMod {xtag ximplicit xtagtype} { - global type val inf - - upvar $xtag tag - upvar $ximplicit implicit - upvar $xtagtype tagtype - - set tag {} - set tagtype {} - if {![string compare $type \[]} { - if {[regexp {^([a-zA-Z]+)[ ]+([0-9]+)$} $val x tagtype tag]} { - set tagtype ODR_$tagtype - } elseif {[regexp {^([0-9]+)$} $val x tag]} { - set tagtype ODR_CONTEXT - } else { - asnError "bad tag specification: $val" - } - lex - } - set implicit $inf(implicit-tags) - if {![string compare $type n]} { - if {![string compare $val EXPLICIT]} { - lex - set implicit 0 - } elseif {![string compare $val IMPLICIT]} { - lex - set implicit 1 - } - } -} - -# asnName: moves pointer and expects name. Returns C-validated name. -proc asnName {name} { - global val inf - lex-expect n - if {[info exists inf(membermap,$inf(module),$name,$val)]} { - set nval $inf(membermap,$inf(module),$name,$val) - if {$inf(verbose)} { - puts " mapping member $name,$val to $nval" - } - if {![string match {[A-Z]*} $val]} { - lex - } - } else { - set nval $val - if {![string match {[A-Z]*} $val]} { - lex - } - } - return [join [split $nval -] _] -} - -# asnOptional: parses optional modifier. Returns 1 if OPTIONAL was -# specified; 0 otherwise. -proc asnOptional {} { - global type val - if {[lex-name-move OPTIONAL]} { - return 1 - } elseif {[lex-name-move DEFAULT]} { - lex - return 0 - } - return 0 -} - -# asnSizeConstraint: parses the optional SizeConstraint. -# Currently not used for anything. -proc asnSizeConstraint {} { - global type val - if {[lex-name-move SIZE]} { - asnSubtypeSpec - } -} - -# asnSubtypeSpec: parses the SubtypeSpec ... -# Currently not used for anything. We now it's balanced however, i.e. -# (... ( ... ) .. ) -proc asnSubtypeSpec {} { - global type val - - if {[string compare $type "("]} { - return - } - lex - set level 1 - while {$level > 0} { - if {![string compare $type "("]} { - incr level - } elseif {![string compare $type ")"]} { - incr level -1 - } - lex - } -} - -# asnType: parses ASN.1 type. -# On entry $name should hold the name we are currently defining. -# Returns type indicator: -# SequenceOf SEQUENCE OF -# Sequence SEQUENCE -# SetOf SET OF -# Set SET -# Choice CHOICE -# Simple Basic types. -# In this casecalling procedure's $tname variable is a list holding: -# {C-Function C-Type} if the type is IMPORTed or ODR defined. -# or -# {C-Function C-Type 1} if the type should be defined in this module -proc asnType {name} { - global type val inf - upvar tname tname - - set tname {} - if {[string compare $type n]} { - asnError "Expects type specifier, but got $type" - } - set v $val - lex - switch -- $v { - SEQUENCE { - asnSizeConstraint - if {[lex-name-move OF]} { - asnSubtypeSpec - return SequenceOf - } else { - asnSubtypeSpec - return Sequence - } - } - SET { - asnSizeConstraint - if {[lex-name-move OF]} { - asnSubtypeSpec - return SetOf - } else { - asnSubtypeSpec - return Set - } - } - CHOICE { - asnSubtypeSpec - return Choice - } - } - if {[string length [info commands asnBasic$v]]} { - set tname [asnBasic$v] - } else { - if {[info exists inf(map,$inf(module),$v)]} { - set v $inf(map,$inf(module),$v) - } - if {[info exists inf(imports,$v)]} { - set tname $inf(imports,$v) - } else { - set w [join [split $v -] _] - set tname [list $inf(fprefix)$w $inf(vprefix)$w 1] - } - } - if {[lex-name-move DEFINED]} { - if {[lex-name-move BY]} { - lex - } - } - asnSubtypeSpec - return Simple -} - -proc mapName {name} { - global inf - if {[info exists inf(map,$inf(module),$name)]} { - set name $inf(map,$inf(module),$name) - if {$inf(verbose)} { - puts -nonewline " $name ($inf(lineno))" - puts " mapping to $name" - } - } else { - if {$inf(verbose)} { - puts " $name ($inf(lineno))" - } - } - return $name -} - -# asnDef: parses type definition (top-level) and generates C code -# On entry $name holds the type we are defining. -proc asnDef {name} { - global inf file - - set name [mapName $name] - if {[info exist inf(defined,$inf(fprefix)$name)]} { - incr inf(definedl,$name) - if {$inf(verbose) > 1} { - puts "set map($inf(module),$name) $name$inf(definedl,$name)" - } - } else { - set inf(definedl,$name) 0 - } - set mname [join [split $name -] _] - asnMod tag implicit tagtype - set t [asnType $mname] - asnSub $mname $t $tname $tag $implicit $tagtype -} - - -# asnSub: parses type and generates C-code -# On entry, -# $name holds the type we are defining. -# $t is the type returned by the asnType procedure. -# $tname is the $tname set by the asnType procedure. -# $tag is the tag as returned by asnMod -# $implicit is the implicit indicator as returned by asnMod -proc asnSub {name t tname tag implicit tagtype} { - global file inf - - set ignore 0 - set defname defined,$inf(fprefix)$name - if {[info exist inf($defname)]} { - asnWarning "$name already defined in line $inf($defname)" - set ignore 1 - } - set inf($defname) $inf(lineno) - switch -- $t { - Sequence { set l [asnSequence $name $tag $implicit $tagtype] } - SequenceOf { set l [asnOf $name $tag $implicit $tagtype 0] } - SetOf { set l [asnOf $name $tag $implicit $tagtype 1] } - Choice { set l [asnChoice $name $tag $implicit $tagtype] } - Simple { set l [asnSimple $name $tname $tag $implicit $tagtype] } - default { asnError "switch asnType case not handled" } - } - if {$ignore} return - - puts $file(outc) {} - puts $file(outc) "int $inf(fprefix)$name (ODR o, $inf(vprefix)$name **p, int opt, const char *name)" - puts $file(outc) \{ - puts $file(outc) [lindex $l 0] - puts $file(outc) \} - set ok 1 - set fdef "$inf(cprefix)int $inf(fprefix)$name (ODR o, $inf(vprefix)$name **p, int opt, const char *name);" - switch -- $t { - Simple { - set decl "typedef [lindex $l 1] $inf(vprefix)$name;" - if {![string compare [lindex $tname 2] 1]} { - if {![info exist inf(defined,[lindex $tname 0])]} { - set ok 0 - } - } - set inf(var,$inf(nodef)) [join [lindex $l 2] \n] - incr inf(nodef) - } - default { - set decl "typedef struct $inf(vprefix)$name $inf(vprefix)$name;" - set inf(var,$inf(nodef)) "[lindex $l 1];" - incr inf(nodef) - } - } - if {$ok} { - puts $file(outh) {} - puts $file(outh) $decl - puts $file(outh) $fdef - asnForwardTypes $name - } else { - lappend inf(forward,code,[lindex $tname 0]) {} $decl $fdef - lappend inf(forward,ref,[lindex $tname 0]) $name - } -} - -proc asnForwardTypes {name} { - global inf file - - if {![info exists inf(forward,code,$inf(fprefix)$name)]} { - return 0 - } - foreach r $inf(forward,code,$inf(fprefix)$name) { - puts $file(outh) $r - } - unset inf(forward,code,$inf(fprefix)$name) - - while {[info exists inf(forward,ref,$inf(fprefix)$name)]} { - set n $inf(forward,ref,$inf(fprefix)$name) - set m [lrange $n 1 end] - if {[llength $m]} { - set inf(forward,ref,$inf(fprefix)$name) $m - } else { - unset inf(forward,ref,$inf(fprefix)$name) - } - asnForwardTypes [lindex $n 0] - } -} - -# asnSimple: parses simple type definition and generates C code -# On entry, -# $name is the name we are defining -# $tname is the tname as returned by asnType -# $tag is the tag as returned by asnMod -# $implicit is the implicit indicator as returned by asnMod -# Returns, -# {c-code, h-code} -# Note: Doesn't take care of enum lists yet. -proc asnSimple {name tname tag implicit tagtype} { - global inf - - set j "[lindex $tname 1] " - - if {[info exists inf(unionmap,$inf(module),$name)]} { - set uName $inf(unionmap,$inf(module),$name) - } else { - set uName $name - } - - asnEnum $uName jj - if {![string length $tag]} { - set l "\treturn [lindex $tname 0] (o, p, opt, name);" - } elseif {$implicit} { - set l \ - "\treturn odr_implicit_tag (o, [lindex $tname 0], p, $tagtype, $tag, opt, name);" - } else { - set l \ - "\treturn odr_explicit_tag (o, [lindex $tname 0], p, $tagtype, $tag, opt, name);" \ - } - if {[info exists jj]} { - return [list $l $j $jj] - } else { - return [list $l $j] - } -} - -# asnSequence: parses "SEQUENCE { s-list }" and generates C code. -# On entry, -# $name is the type we are defining -# $tag tag -# $implicit -# Returns, -# {c-code, h-code} -proc asnSequence {name tag implicit tagtype} { - global val type inf - - lappend j "struct $inf(vprefix)$name \{" - set level 0 - set nchoice 0 - if {![string length $tag]} { - lappend l "\tif (!odr_sequence_begin (o, p, sizeof(**p), name))" - lappend l "\t\treturn odr_missing(o, opt, name) && odr_ok (o);" - } elseif {$implicit} { - lappend l "\tif (!odr_implicit_settag (o, $tagtype, $tag) ||" - lappend l "\t\t!odr_sequence_begin (o, p, sizeof(**p), name))" - lappend l "\t\treturn odr_missing(o, opt, name);" - } else { - lappend l "\tif (!odr_constructed_begin (o, p, $tagtype, $tag, name))" - lappend l "\t\treturn odr_missing(o, opt, name);" - lappend l "\tif (o->direction == ODR_DECODE)" - lappend l "\t\t*p = ($inf(vprefix)$name *) odr_malloc (o, sizeof(**p));" - - lappend l "\tif (!odr_sequence_begin (o, p, sizeof(**p), 0))" - lappend l "\t\{" - lappend l "\t\tif(o->direction == ODR_DECODE)" - lappend l "\t\t\t*p = 0;" - lappend l "\t\treturn 0;" - lappend l "\t\}" - } - lappend l "\treturn" - while {1} { - set p [lindex [asnName $name] 0] - asnMod ltag limplicit ltagtype - set t [asnType $p] - - set uName { } - if {[info exists inf(unionmap,$inf(module),$name,$p)]} { - set uName $inf(unionmap,$inf(module),$name,$p) - } - - if {![string compare $t Simple]} { - if {[string compare $uName { }]} { - set enumName $uName - } else { - set enumName $name - } - asnEnum $enumName j - set opt [asnOptional] - if {![string length $ltag]} { - lappend l "\t\t[lindex $tname 0](o, &(*p)->$p, $opt, \"$p\") &&" - } elseif {$limplicit} { - lappend l "\t\todr_implicit_tag (o, [lindex $tname 0]," - lappend l "\t\t\t&(*p)->$p, $ltagtype, $ltag, $opt, \"$p\") &&" - } else { - lappend l "\t\todr_explicit_tag (o, [lindex $tname 0]," - lappend l "\t\t\t&(*p)->$p, $ltagtype, $ltag, $opt, \"$p\") &&" - } - set dec "\t[lindex $tname 1] *$p;" - } elseif {![string compare $t SequenceOf] && [string length $uName] &&\ - (![string length $ltag] || $limplicit)} { - set u [asnType $p] - - if {[llength $uName] < 2} { - set uName [list num_$p $p] - } - if {[string length $ltag]} { - if {!$limplicit} { - asnError explicittag - } - lappend l "\t\todr_implicit_settag (o, $ltagtype, $ltag) &&" - } - switch -- $u { - Simple { - asnEnum $name j - set tmpa "odr_sequence_of(o, (Odr_fun) [lindex $tname 0], &(*p)->$p," - set tmpb "&(*p)->[lindex $uName 0], \"$p\")" - lappend j "\tint [lindex $uName 0];" - set dec "\t[lindex $tname 1] **[lindex $uName 1];" - } - default { - set subName [mapName ${name}_$level] - asnSub $subName $u {} {} 0 {} - - set tmpa "odr_sequence_of(o, (Odr_fun) $inf(fprefix)$subName, &(*p)->$p," - set tmpb "&(*p)->[lindex $uName 0], \"$p\")" - lappend j "\tint [lindex $uName 0];" - set dec "\t$inf(vprefix)$subName **[lindex $uName 1];" - incr level - } - } - set opt [asnOptional] - if {$opt} { - lappend l "\t\t($tmpa" - lappend l "\t\t $tmpb || odr_ok(o)) &&" - } else { - lappend l "\t\t$tmpa" - lappend l "\t\t $tmpb &&" - } - } elseif {!$nchoice && ![string compare $t Choice] && \ - [string length $uName]} { - if {[llength $uName] < 3} { - set uName [list which u $name] - incr nchoice - } - lappend j "\tint [lindex $uName 0];" - lappend j "\tunion \{" - lappend v "\tstatic Odr_arm arm\[\] = \{" - asnArm $name [lindex $uName 2] v j - lappend v "\t\};" - set dec "\t\} [lindex $uName 1];" - set opt [asnOptional] - set oa {} - set ob {} - if {[string length $ltag]} { - if {$limplicit} { - lappend l "\t\todr_implicit_settag (o, $ltagtype, $ltag) &&" - if {$opt} { - asnWarning "optional handling missing in CHOICE in SEQUENCE" - asnWarning " set unionmap($inf(module),$name,$p) to {}" - } - } else { - if {$opt} { - set la "((" - } else { - set la "" - } - lappend l "\t\t${la}odr_constructed_begin (o, &(*p)->[lindex $uName 1], $ltagtype, $ltag, \"$p\") &&" - } - } else { - if {$opt} { - set oa "(" - set ob " || odr_ok(o))" - } - } - lappend l "\t\t${oa}odr_choice (o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], 0)${ob} &&" - if {[string length $ltag]} { - if {!$limplicit} { - if {$opt} { - set lb ") || odr_ok(o))" - } else { - set lb "" - } - lappend l "\t\todr_constructed_end (o)${lb} &&" - } - } - } else { - set subName [mapName ${name}_$level] - asnSub $subName $t {} {} 0 {} - set opt [asnOptional] - if {![string length $ltag]} { - lappend l "\t\t$inf(fprefix)${subName} (o, &(*p)->$p, $opt, \"$p\") &&" - } elseif {$limplicit} { - lappend l "\t\todr_implicit_tag (o, $inf(fprefix)${subName}," - lappend l "\t\t\t&(*p)->$p, $ltagtype, $ltag, $opt, \"$p\") &&" - } else { - lappend l "\t\todr_explicit_tag (o, $inf(fprefix)${subName}," - lappend l "\t\t\t&(*p)->$p, $ltagtype, $ltag, $opt, \"$p\") &&" - } - set dec "\t$inf(vprefix)${subName} *$p;" - incr level - } - if {$opt} { - lappend j "$dec /* OPT */" - } else { - lappend j $dec - } - if {[string compare $type ,]} break - } - lappend j "\}" - if {[string length $tag] && !$implicit} { - lappend l "\t\todr_sequence_end (o) &&" - lappend l "\t\todr_constructed_end (o);" - } else { - lappend l "\t\todr_sequence_end (o);" - } - if {[string compare $type \}]} { - asnError "Missing \} got $type '$val'" - } - lex - if {[info exists v]} { - set l [concat $v $l] - } - return [list [join $l \n] [join $j \n]] -} - -# asnOf: parses "SEQUENCE/SET OF type" and generates C code. -# On entry, -# $name is the type we are defining -# $tag tag -# $implicit -# Returns, -# {c-code, h-code} -proc asnOf {name tag implicit tagtype isset} { - global inf - - if {$isset} { - set func odr_set_of - } else { - set func odr_sequence_of - } - - if {[info exists inf(unionmap,$inf(module),$name)]} { - set numName $inf(unionmap,$inf(module),$name) - } else { - set numName {num elements} - } - - lappend j "struct $inf(vprefix)$name \{" - lappend j "\tint [lindex $numName 0];" - - lappend l "\tif (!odr_initmember (o, p, sizeof(**p)))" - lappend l "\t\treturn odr_missing(o, opt, name);" - if {[string length $tag]} { - if {$implicit} { - lappend l "\todr_implicit_settag (o, $tagtype, $tag);" - } else { - asnWarning "Constructed SEQUENCE/SET OF not handled" - } - } - set t [asnType $name] - switch -- $t { - Simple { - asnEnum $name j - lappend l "\tif ($func (o, (Odr_fun) [lindex $tname 0], &(*p)->[lindex $numName 1]," - lappend l "\t\t&(*p)->[lindex $numName 0], name))" - lappend j "\t[lindex $tname 1] **[lindex $numName 1];" - } - default { - set subName [mapName ${name}_s] - lappend l "\tif ($func (o, (Odr_fun) $inf(fprefix)$subName, &(*p)->[lindex $numName 1]," - lappend l "\t\t&(*p)->[lindex $numName 0], name))" - lappend j "\t$inf(vprefix)$subName **[lindex $numName 1];" - asnSub $subName $t {} {} 0 {} - } - } - lappend j "\}" - lappend l "\t\treturn 1;" - lappend l "\tif(o->direction == ODR_DECODE)" - lappend l "\t\t*p = 0;" - lappend l "\treturn odr_missing(o, opt, name);" - return [list [join $l \n] [join $j \n]] -} - -# asnArm: parses c-list in choice -proc asnArm {name defname lx jx} { - global type val inf - - upvar $lx l - upvar $jx j - while {1} { - set pq [asnName $name] - set p [lindex $pq 0] - set q [lindex $pq 1] - if {![string length $q]} { - set q $p - set p ${defname}_$p - } - asnMod ltag limplicit ltagtype - set t [asnType $q] - - lappend enums "$inf(dprefix)$p" - if {![string compare $t Simple]} { - asnEnum $name j - if {![string length $ltag]} { - lappend l "\t\t\{-1, -1, -1, $inf(dprefix)$p," - lappend l "\t\t (Odr_fun) [lindex $tname 0], \"$q\"\}," - } elseif {$limplicit} { - lappend l "\t\t\{ODR_IMPLICIT, $ltagtype, $ltag, $inf(dprefix)$p," - lappend l "\t\t(Odr_fun) [lindex $tname 0], \"$q\"\}," - } else { - lappend l "\t\t\{ODR_EXPLICIT, $ltagtype, $ltag, $inf(dprefix)$p," - lappend l "\t\t(Odr_fun) [lindex $tname 0], \"$q\"\}," - } - lappend j "\t\t[lindex $tname 1] *$q;" - } else { - set subName [mapName ${name}_$q] - if {![string compare $inf(dprefix)${name}_$q \ - $inf(vprefix)$subName]} { - set po [string toupper [string index $q 0]][string \ - range $q 1 end] - set subName [mapName ${name}${po}] - } - asnSub $subName $t $tname {} 0 {} - if {![string length $ltag]} { - lappend l "\t\t\{-1, -1, -1, $inf(dprefix)$p," - lappend l "\t\t (Odr_fun) $inf(fprefix)$subName, \"$q\"\}," - } elseif {$limplicit} { - lappend l "\t\t\{ODR_IMPLICIT, $ltagtype, $ltag, $inf(dprefix)$p," - lappend l "\t\t(Odr_fun) $inf(fprefix)$subName, \"$q\"\}," - } else { - lappend l "\t\t\{ODR_EXPLICIT, $ltagtype, $ltag, $inf(dprefix)$p," - lappend l "\t\t(Odr_fun) $inf(fprefix)$subName, \"$q\"\}," - } - lappend j "\t\t$inf(vprefix)$subName *$q;" - } - if {[string compare $type ,]} break - } - if {[string compare $type \}]} { - asnError "Missing \} got $type '$val'" - } - lex - set level 1 - foreach e $enums { - lappend j "#define $e $level" - incr level - } - lappend l "\t\t\{-1, -1, -1, -1, (Odr_fun) 0, 0\}" -} - -# asnChoice: parses "CHOICE {c-list}" and generates C code. -# On entry, -# $name is the type we are defining -# $tag tag -# $implicit -# Returns, -# {c-code, h-code} -proc asnChoice {name tag implicit tagtype} { - global type val inf - - if {[info exists inf(unionmap,$inf(module),$name)]} { - set uName $inf(unionmap,$inf(module),$name) - } else { - set uName [list which u $name] - } - - lappend j "struct $inf(vprefix)$name \{" - lappend j "\tint [lindex $uName 0];" - lappend j "\tunion \{" - lappend l "\tstatic Odr_arm arm\[\] = \{" - asnArm $name [lindex $uName 2] l j - lappend j "\t\} [lindex $uName 1];" - lappend j "\}" - lappend l "\t\};" - if {![string length $tag]} { - lappend l "\tif (!odr_initmember(o, p, sizeof(**p)))" - lappend l "\t\treturn odr_missing(o, opt, name);" - lappend l "\tif (odr_choice(o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], name))" - } elseif {$implicit} { - lappend l "\tif (!odr_initmember(o, p, sizeof(**p)))" - lappend l "\t\treturn odr_missing(o, opt, name);" - lappend l "\todr_implicit_settag(o, $tagtype, $tag);" - lappend l "\tif (odr_choice(o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], name))" - } else { - lappend l "\tif (!odr_constructed_begin(o, p, $tagtype, $tag, 0))" - lappend l "\t\treturn odr_missing(o, opt, name);" - lappend l "\tif (!odr_initmember(o, p, sizeof(**p)))" - lappend l "\t\treturn odr_missing(o, opt, name);" - lappend l "\tif (odr_choice(o, arm, &(*p)->[lindex $uName 1], &(*p)->[lindex $uName 0], name) &&" - lappend l "\t\todr_constructed_end(o))" - } - lappend l "\t\treturn 1;" - - lappend l "\tif(o->direction == ODR_DECODE)" - lappend l "\t\t*p = 0;" - - lappend l "\treturn odr_missing(o, opt, name);" - return [list [join $l \n] [join $j \n]] -} - -# asnImports: parses i-list in "IMPORTS {i-list}" -# On return inf(import,..)-array is updated. -# inf(import,"module") is a list of {C-handler, C-type} elements. -# The {C-handler, C-type} is compatible with the $tname as is used by the -# asnType procedure to solve external references. -proc asnImports {} { - global type val inf file - - while {1} { - if {[string compare $type n]} { - asnError "Missing name in IMPORTS list" - } - lappend nam $val - lex - if {![string compare $type n] && ![string compare $val FROM]} { - lex - - if {[info exists inf(filename,$val)]} { - set fname $inf(filename,$val) - } else { - set fname $val - } - puts $file(outh) "\#include <$inf(h-dir)${fname}.h>" - - if {[info exists inf(prefix,$val)]} { - set prefix $inf(prefix,$val) - } else { - set prefix $inf(prefix) - } - foreach n $nam { - if {[info exists inf(map,$val,$n)]} { - set v $inf(map,$val,$n) - } else { - set v $n - } - set w [join [split $v -] _] - set inf(imports,$n) [list [lindex $prefix 0]$w \ - [lindex $prefix 1]$w] - } - unset nam - lex - if {[string compare $type n]} break - } elseif {![string compare $type ,]} { - lex - } else break - } - if {[string compare $type \;]} { - asnError "Missing ; after IMPORTS list - got $type '$val'" - } - lex -} - -# asnExports: parses e-list in "EXPORTS {e-list}" -# This function does nothing with elements in the list. -proc asnExports {} { - global type val inf - - while {1} { - if {[string compare $type n]} { - asnError "Missing name in EXPORTS list" - } - set inf(exports,$val) 1 - lex - if {[string compare $type ,]} break - lex - } - if {[string compare $type \;]} { - asnError "Missing ; after EXPORTS list - got $type ($val)" - } - lex -} - -# asnModuleBody: parses a module specification and generates C code. -# Exports lists, imports lists, and type definitions are handled; -# other things are silently ignored. -proc asnModuleBody {} { - global type val file inf - - if {[info exists inf(prefix,$inf(module))]} { - set prefix $inf(prefix,$inf(module)) - } else { - set prefix $inf(prefix) - } - set inf(fprefix) [lindex $prefix 0] - set inf(vprefix) [lindex $prefix 1] - set inf(dprefix) [lindex $prefix 2] - if {[llength $prefix] > 3} { - set inf(cprefix) [lindex $prefix 3] - } else { - set inf(cprefix) {YAZ_EXPORT } - } - - if {$inf(verbose)} { - puts "Module $inf(module), $inf(lineno)" - } - - set defblock 0 - if {[info exists inf(init,$inf(module),c)]} { - puts $file(outc) $inf(init,$inf(module),c) - } - if {[info exists inf(init,$inf(module),h)]} { - puts $file(outh) "\#ifdef __cplusplus" - puts $file(outh) "extern \"C\" \{" - puts $file(outh) "\#endif" - set defblock 1 - puts $file(outh) $inf(init,$inf(module),h) - } - if {[info exists inf(init,$inf(module),p)]} { - puts $file(outp) $inf(init,$inf(module),p) - } - - while {[string length $type]} { - if {[string compare $type n]} { - lex - continue - } - if {![string compare $val END]} { - break - } elseif {![string compare $val EXPORTS]} { - lex - asnExports - } elseif {![string compare $val IMPORTS]} { - if {$defblock} { - puts $file(outh) "\#ifdef __cplusplus" - puts $file(outh) "\}" - puts $file(outh) "\#endif" - set defblock 0 - } - lex - asnImports - } else { - if {!$defblock} { - puts $file(outh) "\#ifdef __cplusplus" - puts $file(outh) "extern \"C\" \{" - puts $file(outh) "\#endif" - set defblock 1 - } - set inf(asndef) $inf(nodef) - set oval $val - lex - if {![string compare $type :]} { - lex - asnDef $oval - set inf(asndef) 0 - } elseif {![string compare $type n]} { - lex - if {[string length $type]} { - lex - } - } - } - } - if {$defblock} { - puts $file(outh) "\#ifdef __cplusplus" - puts $file(outh) "\}" - puts $file(outh) "\#endif" - set defblock 0 - } - foreach x [array names inf imports,*] { - unset inf($x) - } -} - -# asnTagDefault: parses TagDefault section -proc asnTagDefault {} { - global type val inf file - - set inf(implicit-tags) 0 - while {[string length $type]} { - if {[lex-name-move EXPLICIT]} { - lex - set inf(implicit-tags) 0 - } elseif {[lex-name-move IMPLICIT]} { - lex - set inf(implicit-tags) 1 - } else { - break - } - } -} - -# asnModules: parses a collection of module specifications. -# Depending on the module pattern, $inf(moduleP), a module is either -# skipped or processed. -proc asnModules {} { - global type val inf file yc_version - - set inf(nodef) 0 - set inf(asndef) 0 - lex - while {![string compare $type n]} { - set inf(module) $val - if {[info exists inf(moduleP)] && ![string match $inf(moduleP) $val]} { - if {$inf(verbose)} { - puts "Skipping $id" - } - while {![lex-name-move END]} { - lex - } - } else { - set inf(nodef) 1 - set inf(asndef) 1 - - while {![lex-name-move DEFINITIONS]} { - lex - if {![string length $type]} return - } - if {[info exists inf(filename,$inf(module))]} { - set fname $inf(filename,$inf(module)) - } else { - set fname $inf(module) - } - set ppname [join [split $fname -] _] - - if {![info exists inf(c-file)]} { - set inf(c-file) ${fname}.c - } - set file(outc) [open $inf(c-file) w] - - if {![info exists inf(h-file)]} { - set inf(h-file) ${fname}.h - } - set file(outh) [open $inf(h-path)/$inf(h-dir)$inf(h-file) w] - - if {0} { - if {![info exists inf(p-file)]} { - set inf(p-file) ${fname}-p.h - } - set file(outp) [open $inf(h-path)/$inf(h-dir)$inf(p-file) w] - } - - set greeting {Generated automatically by YAZ ASN.1 Compiler} - - puts $file(outc) "/** \\file $inf(c-file)" - puts $file(outc) " \\brief ASN.1 Module $inf(module)" - puts $file(outc) "" - puts $file(outc) " ${greeting} ${yc_version}" - puts $file(outc) "*/" - puts $file(outc) {} - - puts $file(outh) "/** \\file $inf(h-file)" - puts $file(outh) " \\brief ASN.1 Module $inf(module)" - puts $file(outh) "" - puts $file(outh) " ${greeting} ${yc_version}" - puts $file(outh) "*/" - puts $file(outh) {} - - if {[info exists file(outp)]} { - puts $file(outp) "/** \\file $inf(p-file)" - puts $file(outp) " \\brief ASN.1 Module $inf(module)" - puts $file(outp) "" - puts $file(outp) " ${greeting} ${yc_version}" - puts $file(outp) "*/" - puts $file(outp) {} - } - - if {[info exists inf(p-file)]} { - puts $file(outc) "\#include <$inf(h-dir)$inf(p-file)>" - } else { - puts $file(outc) "\#include <$inf(h-dir)$inf(h-file)>" - } - puts $file(outh) "\#ifndef ${ppname}_H" - puts $file(outh) "\#define ${ppname}_H" - puts $file(outh) {} - puts $file(outh) "\#include " - - if {[info exists file(outp)]} { - puts $file(outp) "\#ifndef ${ppname}_P_H" - puts $file(outp) "\#define ${ppname}_P_H" - puts $file(outp) {} - puts $file(outp) "\#include <$inf(h-dir)$inf(h-file)>" - - } - - asnTagDefault - if {[string compare $type :]} { - asnError "::= expected got $type '$val'" - } - lex - if {![lex-name-move BEGIN]} { - asnError "BEGIN expected" - } - asnModuleBody - lex - - if {[info exists file(outp)]} { - set f $file(outp) - } else { - set f $file(outh) - } - puts $f "\#ifdef __cplusplus" - puts $f "extern \"C\" \{" - puts $f "\#endif" - for {set i 1} {$i < $inf(nodef)} {incr i} { - puts $f $inf(var,$i) - if {[info exists inf(asn,$i)]} { - if {0} { - puts $f "/*" - foreach comment $inf(asn,$i) { - puts $f $comment - } - puts $f " */" - } - unset inf(asn,$i) - } - unset inf(var,$i) - puts $f {} - } - puts $f "\#ifdef __cplusplus" - puts $f "\}" - puts $f "\#endif" - - if {[info exists inf(body,$inf(module),h)]} { - puts $file(outh) $inf(body,$inf(module),h) - } - if {[info exists inf(body,$inf(module),c)]} { - puts $file(outc) $inf(body,$inf(module),c) - } - if {[info exists inf(body,$inf(module),p)]} { - if {[info exists file(outp)]} { - puts $file(outp) $inf(body,$inf(module),p) - } - } - puts $file(outh) "\#endif" - if {[info exists file(outp)]} { - puts $file(outp) "\#endif" - } - foreach f [array names file] { - close $file($f) - } - unset inf(c-file) - unset inf(h-file) - catch {unset inf(p-file)} - } - } -} - -# asnFile: parses an ASN.1 specification file as specified in $inf(iname). -proc asnFile {} { - global inf file - - if {$inf(verbose) > 1} { - puts "Reading ASN.1 file $inf(iname)" - } - set inf(str) {} - set inf(lineno) 0 - set inf(inf) [open $inf(iname) r] - - asnModules - -} - -# The following procedures are invoked by the asnType function. -# Each procedure takes the form: asnBasic and they must return -# two elements: the C function handler and the C type. -# On entry upvar $name is the type we are defining and global, $inf(module), is -# the current module name. - -proc asnBasicEXTERNAL {} { - return {odr_external {Odr_external}} -} - -proc asnBasicINTEGER {} { - return {odr_integer {int}} -} - -proc asnBasicENUMERATED {} { - return {odr_enum {int}} -} - -proc asnBasicNULL {} { - return {odr_null {Odr_null}} -} - -proc asnBasicBOOLEAN {} { - return {odr_bool {bool_t}} -} - -proc asnBasicOCTET {} { - global type val - lex-name-move STRING - return {odr_octetstring {Odr_oct}} -} - -proc asnBasicBIT {} { - global type val - lex-name-move STRING - return {odr_bitstring {Odr_bitmask}} -} - -proc asnBasicOBJECT {} { - global type val - lex-name-move IDENTIFIER - return {odr_oid {Odr_oid}} -} - -proc asnBasicGeneralString {} { - return {odr_generalstring char} -} - -proc asnBasicVisibleString {} { - return {odr_visiblestring char} -} - -proc asnBasicGeneralizedTime {} { - return {odr_generalizedtime char} -} - -proc asnBasicANY {} { - upvar name name - global inf - return [list $inf(fprefix)ANY_$name void] -} - -# userDef: reads user definitions file $name -proc userDef {name} { - global inf - - if {$inf(verbose) > 1} { - puts "Reading definitions file $name" - } - source $name - - if {[info exists default-prefix]} { - set inf(prefix) ${default-prefix} - } - if {[info exists h-path]} { - set inf(h-path) ${h-path} - } - foreach m [array names prefix] { - set inf(prefix,$m) $prefix($m) - } - foreach m [array names body] { - set inf(body,$m) $body($m) - } - foreach m [array names init] { - set inf(init,$m) $init($m) - } - foreach m [array names filename] { - set inf(filename,$m) $filename($m) - } - foreach m [array names map] { - set inf(map,$m) $map($m) - } - foreach m [array names membermap] { - set inf(membermap,$m) $membermap($m) - } - foreach m [array names unionmap] { - set inf(unionmap,$m) $unionmap($m) - } -} - -set inf(verbose) 0 -set inf(prefix) {yc_ Yc_ YC_} -set inf(h-path) . -set inf(h-dir) "" - -# Parse command line -set l [llength $argv] -set i 0 -while {$i < $l} { - set arg [lindex $argv $i] - switch -glob -- $arg { - -v { - incr inf(verbose) - } - -c { - set p [string range $arg 2 end] - if {![string length $p]} { - set p [lindex $argv [incr i]] - } - set inf(c-file) $p - } - -I* { - set p [string range $arg 2 end] - if {![string length $p]} { - set p [lindex $argv [incr i]] - } - set inf(h-path) $p - } - -i* { - set p [string range $arg 2 end] - if {![string length $p]} { - set p [lindex $argv [incr i]] - } - set inf(h-dir) [string trim $p \\/]/ - } - -h* { - set p [string range $arg 2 end] - if {![string length $p]} { - set p [lindex $argv [incr i]] - } - set inf(h-file) $p - } - -p* { - set p [string range $arg 2 end] - if {![string length $p]} { - set p [lindex $argv [incr i]] - } - set inf(p-file) $p - } - -d* { - set p [string range $arg 2 end] - if {![string length $p]} { - set p [lindex $argv [incr i]] - } - userDef $p - } - -m* { - set p [string range $arg 2 end] - if {![string length $p]} { - set p [lindex $argv [incr i]] - } - set inf(moduleP) $p - } - -x* { - set p [string range $arg 2 end] - if {![string length $p]} { - set p [lindex $argv [incr i]] - } - if {[llength $p] == 1} { - set inf(prefix) [list [string tolower $p] \ - [string toupper $p] [string toupper $p]] - } elseif {[llength $p] == 3} { - set inf(prefix) $p - } else { - puts [llength $p] - exit 1 - } - } - default { - set inf(iname) $arg - } - } - incr i -} - -if {![info exists inf(iname)]} { - puts "YAZ ASN.1 Compiler ${yc_version}" - puts "Usage:" - puts -nonewline ${argv0} - puts { [-v] [-c cfile] [-h hfile] [-p hfile] [-d dfile] [-I iout]} - puts { [-i idir] [-m module] file} - exit 1 -} - -asnFile diff --git a/dependencies/yaz_3.0.14/util/yaz-illclient.c b/dependencies/yaz_3.0.14/util/yaz-illclient.c deleted file mode 100644 index 107d96f..0000000 --- a/dependencies/yaz_3.0.14/util/yaz-illclient.c +++ /dev/null @@ -1,695 +0,0 @@ -/* - * Copyright (C) 1995-2006, Index Data ApS - * See the file LICENSE for details. - * - * $Id: yaz-illclient.c,v 1.8 2007/06/08 10:01:07 heikki Exp $ - */ - -/* WARNING - This is work in progress - not at all ready */ - -/** \file yaz-illclient.c - * \brief client for ILL requests (ISO 10161-1) - * - * This is a test client for handling ISO 10161-1 ILL requests. - * Those are not directly Z39.50, but the protocol is quite similar - * and yaz already provides the APDUS for it. - * - * This is not an interactive client like yaz-client, but driven by command- - * line arguments. Its output is a return code, and possibly some text on - * stdout. - * - * Exit codes (note, the program exits as soon as it finds a good reason) - * 0 ok - * 1 errors in arguments - * 2 Internal errors in creating objects (comstack, odr...) - * mostly programming errors. - * 3 could not connect - * 4 could not send request - * 5 No reponse received - * 6 Error decoding response packet - * 7 Server returned an error (see log or stdout) - * - * - * - * - */ - -#include -#include - -#if HAVE_UNISTD_H -#include -#endif -#if HAVE_SYS_STAT_H -#include -#endif -#if HAVE_SYS_TIME_H -#include -#endif - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -/* A structure for holding name-value pairs in a linked list */ -struct nameval { - char *name; - char *val; - struct nameval *next; -}; - -/* A structure for storing all the arguments */ -struct prog_args { - char *host; - char *auth_userid; - char *auth_passwd; - char *oclc_recno; /* record number in oclc-mode */ - int oclc_auth; /* 1=use oclc-type auth */ - struct nameval* namevals; /* circular list, points to last */ -} ; - - - -/* Call-back to be called for every field in the ill-request */ -/* It can set values to any field, perhaps from the prog_args */ -const char *get_ill_element(void *clientData, const char *element) { - struct prog_args *args = (struct prog_args *) clientData; - struct nameval *nv=args->namevals; - char *ret=0; - if (!nv) - return ""; - do { - nv=nv->next; - /* printf("comparing '%s' with '%s' \n",element, nv->name ); */ - if ( strcmp(element, nv->name) == 0 ) - ret = nv->val; - } while ( ( !ret) && ( nv != args->namevals) ); - yaz_log(YLOG_DEBUG,"get_ill_element:'%s'->'%s'", element, ret ); - return ret; -} - - -/* * * * * * * * * * * * * * * * * */ - -/** \brief parse a parameter string */ -/* string is like 'name=value' */ -struct nameval *parse_nameval( char *arg ) { - struct nameval *nv = (struct nameval *) xmalloc(sizeof(*nv)); - char *p=arg; - int len; - if (!p || !*p) - return 0; /* yeah, leaks a bit of memory. so what */ - while ( *p && ( *p != '=' ) ) - p++; - len = p - arg; - if (!len) - return 0; - nv->name = (char *) xmalloc(len+1); - strncpy(nv->name, arg, len); - nv->name[len]='\0'; - if (*p == '=' ) - p++; /* skip the '=' */ - else - return 0; /* oops, no '=' */ - if (!*p) - return 0; /* no value */ - nv->val=xstrdup(p); - nv->next=0; - yaz_log(YLOG_DEBUG,"parse_nameval: n='%s' v='%s'", nv->name, nv->val ); - return nv; -} - -/** \brief append nv to the list of namevals */ -void append_nameval (struct prog_args *args, struct nameval *nv) { - if (!nv) - return; - if (args->namevals) { - nv->next=args->namevals->next; /* first */ - args->namevals->next=nv; - args->namevals=nv; - } else { - nv->next=nv; - args->namevals=nv; - } -} /* append_nameval */ - -/** \brief parse a parameter file */ -void parse_paramfile(char *arg, struct prog_args *args) { - FILE *f=fopen(arg,"r"); -#define BUFSIZE 4096 - char buf[BUFSIZE]; - int len; - struct nameval *nv; - if (!f) { - yaz_log(YLOG_FATAL,"Could not open param file '%s' ", arg); - printf("Could not open file '%s' \n",arg); - exit(1); - } - yaz_log(YLOG_DEBUG,"Opened input file '%s' ",arg ); - while (fgets(buf,BUFSIZE,f)) { - if (buf[0] != '#' ) { - len=strlen(buf)-1; - if (buf[len] == '\n') - buf[len] = '\0' ; - nv=parse_nameval(buf); - append_nameval(args, nv); - } /* not a comment */ - } - (void) fclose(f); - - if (0) { - nv=args->namevals; - printf("nv chain: ================ \n"); - printf("(last:) %p: '%s' = '%s' (%p) \n",nv, nv->name, nv->val, nv->next ); - do { - nv=nv->next; - printf("%p: '%s' = '%s' (%p)\n",nv, nv->name, nv->val, nv->next ); - } while (nv != args->namevals ); - exit(1); - } - -} /* parse_paramfile */ - - -/** \brief Parse program arguments */ -void parseargs( int argc, char * argv[], struct prog_args *args) { - int ret; - char *arg; - char *prog=*argv; - char *version="$Id: yaz-illclient.c,v 1.8 2007/06/08 10:01:07 heikki Exp $"; /* from cvs */ - struct nameval *nv; - - /* default values */ - args->host = 0; /* not known (yet) */ - args->namevals=0; /* none set up */ - args->oclc_auth=0; - args->oclc_recno=0; - args->auth_userid = 0; - args->auth_passwd = 0; -#if 0 - /* Example 3 - directly from OCLC, supposed to work on their test server*/ - args->auth_userid = "100-310-658" ; /* FIXME - get from cmd line */ - args->auth_passwd = "apii2test" ; /* FIXME - get from cmd line */ -#endif - - while ((ret = options("Vov:p:u:D:f:r:l:", argv, argc, &arg)) != -2) - { - yaz_log(YLOG_DEBUG,"parsing option '%c' '%s'",ret, arg); - switch (ret) - { - case 0: - if (!args->host) - { - args->host = xstrdup (arg); - } - else - { - fprintf(stderr, "%s: Specify at most one server address\n", - prog); - exit(1); - } - break; - case 'v': - yaz_log_init(yaz_log_mask_str(arg), "", 0); - break; - case 'l': - yaz_log_init_file(arg); - break; - case 'V': - printf("%s %s",prog, version ); - break; - case 'D': - nv=parse_nameval(arg); - append_nameval(args,nv); - break; - case 'f': - parse_paramfile(arg,args); - break; - case 'o': - args->oclc_auth=1; - break; - case 'u': - args->auth_userid=xstrdup(arg); - break; - case 'p': - args->auth_passwd=xstrdup(arg); - break; - case 'r': - args->oclc_recno=xstrdup(arg); - break; - default: - fprintf (stderr, "Usage: %s " - " [-f filename]" - " [-v loglevel...]" - " [-D name=value ]" - " [-o -u user -p passwd]" - " [-V]" - " \n", - prog); - exit (1); - } - } -} /* parseargs */ - -/* * * * * * * * * * * */ -/** \brief Validate the arguments make sense */ -void validateargs( struct prog_args *args) { - if (!args->host) { - fprintf(stderr, "Specify a connection address, " - "as in 'bagel.indexdata.dk:210' \n"); - exit(1); - } - if (args->oclc_auth && ((!args->auth_userid) || (!args->auth_passwd))){ - fprintf(stderr, "-o option requires -u and -p \n"); - exit(1); - } -} /* validateargs */ - - -/* * * * * * * * * * * * * * * */ -/** \brief Connect to the target */ -COMSTACK connect_to( char *hostaddr ){ - COMSTACK stack; - void *server_address_ip; - int status; - - yaz_log(YLOG_DEBUG,"Connecting to '%s'", hostaddr); - stack = cs_create_host(hostaddr, 1, &server_address_ip ); - if (!stack) { - yaz_log(YLOG_FATAL,"Error in creating the comstack '%s' ", - hostaddr ); - exit(2); - } - - yaz_log(YLOG_DEBUG,"Created stack ok "); - - status = cs_connect(stack, server_address_ip); - if (status != 0) { - yaz_log(YLOG_FATAL|YLOG_ERRNO,"Can not connect '%s' ", - hostaddr ); - exit(3); - } - yaz_log(YLOG_DEBUG,"Connected OK to '%s'", hostaddr); - return stack; -} - - -/* * * * * * * * * * * * * * * */ -/* Makes a Z39.50-like prompt package with username and password */ -Z_PromptObject1 *makeprompt(struct prog_args *args, ODR odr) { - Z_PromptObject1 *p = (Z_PromptObject1 *) odr_malloc(odr, sizeof(*p) ); - Z_ResponseUnit1 *ru = (Z_ResponseUnit1 *) odr_malloc(odr, sizeof(*ru) ); - - p->which=Z_PromptObject1_response; - p->u.response = (Z_Response1*) odr_malloc(odr, sizeof(*(p->u.response)) ); - p->u.response->num=2; - p->u.response->elements= (Z_ResponseUnit1 **) odr_malloc(odr, - p->u.response->num*sizeof(*(p->u.response->elements)) ); - /* user id, aka "oclc authorization number" */ - p->u.response->elements[0] = ru; - ru->promptId = (Z_PromptId *) odr_malloc(odr, sizeof(*(ru->promptId) )); - ru->promptId->which = Z_PromptId_enumeratedPrompt; - ru->promptId->u.enumeratedPrompt = (Z_PromptIdEnumeratedPrompt *) - odr_malloc(odr, sizeof(*(ru->promptId->u.enumeratedPrompt) )); - ru->promptId->u.enumeratedPrompt->type = - odr_intdup(odr,Z_PromptIdEnumeratedPrompt_userId); - ru->promptId->u.enumeratedPrompt->suggestedString = 0 ; - ru->which = Z_ResponseUnit1_string ; - ru->u.string = odr_strdup(odr, args->auth_userid); - /* password */ - ru = (Z_ResponseUnit1 *) odr_malloc(odr, sizeof(*ru) ); - p->u.response->elements[1] = ru; - ru->promptId = (Z_PromptId *) odr_malloc(odr, sizeof(*(ru->promptId) )); - ru->promptId->which = Z_PromptId_enumeratedPrompt; - ru->promptId->u.enumeratedPrompt = (Z_PromptIdEnumeratedPrompt *) - odr_malloc(odr, sizeof(*(ru->promptId->u.enumeratedPrompt) )); - ru->promptId->u.enumeratedPrompt->type = - odr_intdup(odr,Z_PromptIdEnumeratedPrompt_password); - ru->promptId->u.enumeratedPrompt->suggestedString = 0 ; - ru->which = Z_ResponseUnit1_string ; - ru->u.string = odr_strdup(odr, args->auth_passwd); - return p; -} /* makeprompt */ - -ILL_Extension *makepromptextension(struct prog_args *args, ODR odr) { - ODR odr_ext = odr_createmem(ODR_ENCODE); - ODR odr_prt = odr_createmem(ODR_PRINT); - ILL_Extension *e = (ILL_Extension *) odr_malloc(odr, sizeof(*e)); - Z_PromptObject1 *p = makeprompt(args,odr_ext); - char * buf; - int siz; - Z_External *ext = (Z_External *) odr_malloc(odr, sizeof(*ext)); - ext->direct_reference = odr_getoidbystr(odr,"1.2.840.10003.8.1"); - ext->indirect_reference=0; - ext->descriptor=0; - ext->which=Z_External_single; - if ( ! z_PromptObject1(odr_ext, &p, 0,0 ) ) { - yaz_log(YLOG_FATAL,"Encoding of z_PromptObject1 failed "); - exit (6); - } - - printf ("Prompt: \n"); /*!*/ - z_PromptObject1(odr_prt, &p, 0,0 ); /*!*/ - - buf= odr_getbuf(odr_ext,&siz,0); - ext->u.single_ASN1_type=(Odr_any *) - odr_malloc(odr,sizeof(*ext->u.single_ASN1_type)); - ext->u.single_ASN1_type->buf= (unsigned char *) odr_malloc(odr, siz); - memcpy(ext->u.single_ASN1_type->buf,buf, siz ); - ext->u.single_ASN1_type->len = ext->u.single_ASN1_type->size = siz; - odr_reset(odr_ext); - odr_reset(odr_prt); /*!*/ - - e->identifier = odr_intdup(odr,1); - e->critical = odr_intdup(odr,0); - e->item = (Odr_any *) odr_malloc(odr,sizeof(*e->item)); - if ( ! z_External(odr_ext, &ext,0,0) ) { - yaz_log(YLOG_FATAL,"Encoding of z_External failed "); - exit (6); - } - printf("External: \n"); - z_External(odr_prt, &ext,0,0); /*!*/ - buf= odr_getbuf(odr_ext,&siz,0); - e->item->buf= (unsigned char *) odr_malloc(odr, siz); - memcpy(e->item->buf,buf, siz ); - e->item->len = e->item->size = siz; - - odr_destroy(odr_prt); - odr_destroy(odr_ext); - return e; -} /* makepromptextension */ - -ILL_Extension *makeoclcextension(struct prog_args *args, ODR odr) { - /* The oclc extension is required, but only contains optional */ - /* fields. Here we just null them all out */ - ODR odr_ext = odr_createmem(ODR_ENCODE); - ODR odr_prt = odr_createmem(ODR_PRINT); - ILL_Extension *e = (ILL_Extension *) odr_malloc(odr, sizeof(*e)); - ILL_OCLCILLRequestExtension *oc = (ILL_OCLCILLRequestExtension *) - odr_malloc(odr_ext, sizeof(*oc)); - char * buf; - int siz; - Z_External *ext = (Z_External *) odr_malloc(odr, sizeof(*ext)); - oc->clientDepartment = 0; - oc->paymentMethod = 0; - oc->uniformTitle = 0; - oc->dissertation = 0; - oc->issueNumber = 0; - oc->volume = 0; - oc->affiliations = 0; - oc->source = 0; - ext->direct_reference = odr_getoidbystr(odr,"1.0.10161.13.2"); - ext->indirect_reference=0; - ext->descriptor=0; - ext->which=Z_External_single; - if ( ! ill_OCLCILLRequestExtension(odr_ext, &oc, 0,0 ) ) { - yaz_log(YLOG_FATAL,"Encoding of ill_OCLCILLRequestExtension failed "); - exit (6); - } - - printf ("OCLC: \n"); /*!*/ - ill_OCLCILLRequestExtension(odr_prt, &oc, 0,0 ); /*!*/ - - buf= odr_getbuf(odr_ext,&siz,0); - ext->u.single_ASN1_type = (Odr_any*) - odr_malloc(odr,sizeof(*ext->u.single_ASN1_type)); - ext->u.single_ASN1_type->buf = (unsigned char *) odr_malloc(odr, siz); - memcpy(ext->u.single_ASN1_type->buf,buf, siz ); - ext->u.single_ASN1_type->len = ext->u.single_ASN1_type->size = siz; - odr_reset(odr_ext); - odr_reset(odr_prt); /*!*/ - - e->identifier = odr_intdup(odr,1); - e->critical = odr_intdup(odr,0); - e->item = (Odr_any *) odr_malloc(odr,sizeof(*e->item)); - if ( ! z_External(odr_ext, &ext,0,0) ) { - yaz_log(YLOG_FATAL,"Encoding of z_External failed "); - exit (6); - } - printf("External: \n"); - z_External(odr_prt, &ext,0,0); /*!*/ - buf= odr_getbuf(odr_ext,&siz,0); - e->item->buf= (unsigned char *) odr_malloc(odr, siz); - memcpy(e->item->buf, buf, siz); - e->item->len = e->item->size = siz; - - odr_destroy(odr_prt); - odr_destroy(odr_ext); - return e; - -} /* makeoclcextension */ - -ILL_APDU *createrequest( struct prog_args *args, ODR odr) { - struct ill_get_ctl ctl; - ILL_APDU *apdu; - ILL_Request *req; - - ctl.odr = odr; - ctl.clientData = args; - ctl.f = get_ill_element; - apdu = (ILL_APDU *) odr_malloc( odr, sizeof(*apdu) ); - apdu->which=ILL_APDU_ILL_Request; - req = ill_get_ILLRequest(&ctl, "ill", 0); - apdu->u.illRequest=req; - if (args->oclc_auth) { - req->num_iLL_request_extensions=2; - req->iLL_request_extensions= - odr_malloc(odr, req->num_iLL_request_extensions* - sizeof(*req->iLL_request_extensions)); - req->iLL_request_extensions[0]=makepromptextension(args,odr); - req->iLL_request_extensions[1]=makeoclcextension(args,odr); - } - if (!req) { - yaz_log(YLOG_FATAL,"Could not create ill request"); - exit(2); - } - return apdu; -} /* createrequest */ - - -/* * * * * * * * * * * * * * * */ -/** \brief Send the request */ -void sendrequest(ILL_APDU *apdu, ODR odr, COMSTACK stack ) { - char *buf_out; - int len_out; - int res; - if (!ill_APDU (odr, &apdu, 0, 0)) { - yaz_log(YLOG_FATAL,"ill_Apdu failed"); - exit(2); - } - buf_out = odr_getbuf(odr, &len_out, 0); - if (0) { - yaz_log(YLOG_DEBUG,"Request PDU Dump"); - odr_dumpBER(yaz_log_file(), buf_out, len_out); - } - if (!buf_out) { - yaz_log(YLOG_FATAL,"Encoding failed. Len=%d", len_out); - odr_perror(odr, "encoding failed"); - exit(2); - } - yaz_log(YLOG_DEBUG,"About to send the request. Len=%d", len_out); - res = cs_put(stack, buf_out, len_out); - if ( res<0 ) { - yaz_log(YLOG_FATAL,"Could not send packet. code %d",res ); - exit (4); - } - if (1) { - FILE *F = fopen("req.apdu","w"); - fwrite ( buf_out, 1, len_out, F); - fclose(F); - } - -} /* sendrequest */ - -/* * * * * * * * * * * * * * * */ -/** \brief Get a response */ -ILL_APDU *getresponse( COMSTACK stack, ODR in_odr ){ - ILL_APDU *resp; - int res; - char *buf_in=0; - int len_in=0; - yaz_log(YLOG_DEBUG,"About to wait for a response"); - res = cs_get(stack, &buf_in, &len_in); - yaz_log(YLOG_DEBUG,"Got a response of %d bytes at %p. res=%d", len_in,buf_in, res); - if (res<0) { - yaz_log(YLOG_FATAL,"Could not receive packet. code %d",res ); - yaz_log(YLOG_DEBUG,"%02x %02x %02x %02x %02x %02x %02x %02x ...", - buf_in[0], buf_in[1], buf_in[2], buf_in[3], - buf_in[4], buf_in[5], buf_in[6], buf_in[7] ); - yaz_log(YLOG_DEBUG,"PDU Dump:"); - odr_dumpBER(yaz_log_file(), buf_in, len_in); - exit (5); - } - odr_setbuf(in_odr, buf_in, res, 0); - if (!ill_APDU (in_odr, &resp, 0, 0)) - { - int x; - int err = odr_geterrorx(in_odr, &x); - char msg[60]; - const char *element = odr_getelement(in_odr); - sprintf(msg, "ODR code %d:%d element=%-20s", - err, x, element ? element : ""); - yaz_log(YLOG_FATAL,"Error decoding incoming packet: %s",msg); - yaz_log(YLOG_DEBUG,"%02x %02x %02x %02x %02x %02x %02x %02x ...", - buf_in[0], buf_in[1], buf_in[2], buf_in[3], - buf_in[4], buf_in[5], buf_in[6], buf_in[7] ); - yaz_log(YLOG_DEBUG,"PDU Dump:"); - odr_dumpBER(yaz_log_file(), buf_in, len_in); - yaz_log(YLOG_FATAL,"Error decoding incoming packet: %s",msg); - exit(6); - } - return resp; -} /* getresponse */ - - -/** \brief Dump a apdu */ -void dumpapdu( ILL_APDU *apdu) { - ODR print_odr = odr_createmem(ODR_PRINT); - ill_APDU (print_odr, &apdu, 0, 0); - odr_destroy(print_odr); -} /* dumpapdu */ - -/** \brief Check apdu type and extract the status_or_error */ -ILL_Status_Or_Error_Report *getstaterr( ILL_APDU *resp, ODR in_odr ) { - if (resp->which != ILL_APDU_Status_Or_Error_Report ) { - const char *element = odr_getelement(in_odr); - if (!element) - element="unknown"; - printf("Server returned wrong packet type: %d\n", resp->which); - yaz_log(YLOG_FATAL,"Server returned a (%d) and " - "not a 'Status_Or_Error_Report' (%d) ", - resp->which, ILL_APDU_Status_Or_Error_Report); - exit(6); - } - return resp->u.Status_Or_Error_Report; -} /* getstaterr */ - -/** \brief Return a printable string from an ILL_String */ -char *getillstring( ILL_String *s) { - if (s->which == ILL_String_GeneralString ) - return s->u.GeneralString; - else if (s->which == ILL_String_EDIFACTString ) - return s->u.EDIFACTString; - else { - yaz_log(YLOG_FATAL,"Invalid ILL_String "); - exit (6); - } -} /* getillstring */ - -/** \brief Check if the status was an error packet */ -/* The presence of an error_report indicates it was an error */ -/* Then the problem is to find the right message. We dig around */ -/* until we find the first message, print that, and exit the program */ -void checkerr( ILL_Status_Or_Error_Report *staterr ) { - yaz_log(YLOG_DEBUG, "err= %p ",staterr->error_report ); - if (staterr->error_report) { - ILL_Error_Report *err= staterr->error_report; - if ( err->user_error_report) { - ILL_User_Error_Report *uerr= err->user_error_report; - switch( uerr->which ) { - case ILL_User_Error_Report_already_forwarded: - printf("Already forwarded: \n"); - break; - case ILL_User_Error_Report_intermediary_problem: - printf("Intermediary problem: %d\n", - *uerr->u.intermediary_problem); - break; - case ILL_User_Error_Report_security_problem: - printf("Security problem: %s\n", - getillstring(uerr->u.security_problem)); - break; - case ILL_User_Error_Report_unable_to_perform: - printf("Unable to perform: %d\n", - *uerr->u.unable_to_perform); - break; - default: - printf("Unknown problem"); - } - exit(7); - } - if ( err->provider_error_report) { - ILL_Provider_Error_Report *perr= err->provider_error_report; - switch( perr->which ) { - case ILL_Provider_Error_Report_general_problem: - printf("General Problem: %d:", - *perr->u.general_problem); - break; - case ILL_Provider_Error_Report_transaction_id_problem: - printf("Transaction Id Problem: %d:", - *perr->u.general_problem); - break; - case ILL_Provider_Error_Report_state_transition_prohibited: - printf("State Transition prohibited:"); - break; - } - /*exit(7);*/ - } - /* fallbacks */ - if ( staterr->note ) - printf("%s", getillstring(staterr->note)); - else - printf("Unknown error type"); - printf("\n"); - exit(7); - } -} /* checkerr */ - - - -/* * * * * * * * * * * * * * * */ - -/** \brief Main program - * - * Parse arguments - * Validate arguments - * Establish connection - * Build a request - * Send a request - * Get a reply - * Parse reply - * Produce output - */ - -int main (int argc, char * argv[]) { - struct prog_args args; - COMSTACK stack; - ODR out_odr = odr_createmem(ODR_ENCODE); - ODR in_odr = odr_createmem(ODR_DECODE); - ILL_APDU *apdu; - ILL_APDU *resp; - ILL_Status_Or_Error_Report *staterr; - - parseargs( argc, argv, &args); - validateargs(&args); - stack = connect_to(args.host); - apdu = createrequest(&args, out_odr); - if (1) - dumpapdu(apdu); - sendrequest(apdu, out_odr, stack ); - resp = getresponse(stack, in_odr ); - if (1) - dumpapdu(resp); - staterr=getstaterr(resp, in_odr); - checkerr(staterr); - - - printf ("Ok\n"); /* while debugging */ - exit (0); -} - -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/util/yaz-xmlquery.c b/dependencies/yaz_3.0.14/util/yaz-xmlquery.c deleted file mode 100644 index ce720d6..0000000 --- a/dependencies/yaz_3.0.14/util/yaz-xmlquery.c +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: yaz-xmlquery.c,v 1.9 2007/05/06 20:12:20 adam Exp $ - */ - -#include -#include - -#include -#include -#include -#include -#include - -#if YAZ_HAVE_XML2 -#include -#endif - -static char *prog = "yaz-xmlquery"; - -#if YAZ_HAVE_XML2 -void pqftoxmlquery(const char *pqf) -{ - YAZ_PQF_Parser parser = yaz_pqf_create(); - ODR odr = odr_createmem(ODR_ENCODE); - Z_RPNQuery *rpn; - - if (!parser) - { - fprintf(stderr, "%s: cannot create parser\n", prog); - exit(1); - } - - if (!odr) - { - fprintf(stderr, "%s: cannot create parser\n", prog); - exit(1); - } - - rpn = yaz_pqf_parse(parser, odr, pqf); - - yaz_pqf_destroy(parser); - - if (!rpn) - { - fprintf(stderr, "%s: pqf parse error for query %s\n", prog, pqf); - exit(2); - } - else - { - xmlDocPtr doc = 0; - - yaz_rpnquery2xml(rpn, &doc); - - if (!doc) - { - fprintf(stderr, "%s: yaz_rpnquery2xml failed for query %s\n", - prog, pqf); - exit(3); - } - else - { - xmlChar *buf_out = 0; - int len_out = 0; - - xmlDocDumpMemory(doc, &buf_out, &len_out); - - if (!len_out || !buf_out) - { - fprintf(stderr, "%s: xmlDocDumpMemory failed for query %s\n", - prog, pqf); - exit(4); - } - else - fwrite(buf_out, len_out, 1, stdout); - xmlFreeDoc(doc); - } - } - odr_destroy(odr); -} - - -void xmlquerytopqf(const char *xmlstr) -{ - xmlDocPtr doc; - - doc = xmlParseMemory(xmlstr, strlen(xmlstr)); - if (!doc) - { - fprintf(stderr, "%s: xml parse error for XML:\n%s\n", prog, xmlstr); - exit(1); - } - else - { - int error_code = 0; - const char *addinfo = 0; - Z_Query *query = 0; - ODR odr = odr_createmem(ODR_ENCODE); - - const xmlNode *root_element = xmlDocGetRootElement(doc); - yaz_xml2query(root_element, &query, odr, &error_code, &addinfo); - if (error_code) - { - fprintf(stderr, "%s: yaz_xml2query failed code=%d addinfo=%s\n", - prog, error_code, addinfo); - exit(1); - } - else if (!query) - { - fprintf(stderr, "%s: yaz_xml2query no query result\n", - prog); - exit(1); - } - else - { - WRBUF w = wrbuf_alloc(); - yaz_query_to_wrbuf(w, query); - printf("%s\n", wrbuf_cstr(w)); - wrbuf_destroy(w); - } - odr_destroy(odr); - xmlFreeDoc(doc); - } -} - -void xmlfiletopqf(const char *xmlfile) -{ - long sz; - char *xmlstr; - FILE *f = fopen(xmlfile, "rb"); - if (!f) - { - fprintf(stderr, "%s: cannot open %s\n", prog, xmlfile); - exit(1); - } - fseek(f, 0, SEEK_END); - sz = ftell(f); - if (sz <= 0 || sz >= 1<<18) - { - fprintf(stderr, "%s: bad size for file %s\n", prog, xmlfile); - exit(1); - } - rewind(f); - xmlstr = (char *) xmalloc(sz+1); - xmlstr[sz] = '\0'; - fread(xmlstr, sz, 1, f); - fclose(f); - - xmlquerytopqf(xmlstr); - xfree(xmlstr); -} -#endif - -void usage(void) -{ - fprintf(stderr, "%s [-p pqf] [-x xmlfile]\n", prog); - fprintf(stderr, " -p pqf reads pqf. write xml to stdout\n"); - fprintf(stderr, " -x xmlfile reads XML from file. write pqf to stdout\n"); - exit(1); -} - -int main (int argc, char **argv) -{ -#if YAZ_HAVE_XML2 - char *arg; - int r; - int active = 0; - - while ((r = options("-p:x:", argv, argc, &arg)) != -2) - { - switch(r) - { - case 'p': - pqftoxmlquery(arg); - active = 1; - break; - case 'x': - xmlfiletopqf(arg); - active = 1; - break; - case 0: - break; - } - } - if (!active) - { - fprintf(stderr, "%s: nothing to do\n", prog); - usage(); - } -#else - fprintf(stderr, "%s: XML support not enabled.\n", prog); - exit(1); -#endif - return 0; -} - diff --git a/dependencies/yaz_3.0.14/util/yaziconv.c b/dependencies/yaz_3.0.14/util/yaziconv.c deleted file mode 100644 index 511f3fc..0000000 --- a/dependencies/yaz_3.0.14/util/yaziconv.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: yaziconv.c,v 1.9 2007/05/25 16:19:46 marc Exp $ - */ - -#if HAVE_CONFIG_H -#include -#endif - -#include -#include -#include -#include - -#include - -#define CHUNK_IN 64 -#define CHUNK_OUT 64 - -void convert (FILE *inf, yaz_iconv_t cd, int verbose) -{ - char inbuf0[CHUNK_IN], *inbuf = inbuf0; - char outbuf0[CHUNK_OUT], *outbuf = outbuf0; - size_t inbytesleft = CHUNK_IN; - size_t outbytesleft = CHUNK_OUT; - int mustread = 1; - - while (1) - { - size_t r; - if (mustread) - { - r = fread (inbuf, 1, inbytesleft, inf); - if (inbytesleft != r) - { - if (ferror(inf)) - { - fprintf (stderr, "yaziconv: error reading file\n"); - exit (6); - } - if (r == 0) - { - if (outbuf != outbuf0) - fwrite (outbuf0, 1, outbuf - outbuf0, stdout); - outbuf = outbuf0; - outbytesleft = CHUNK_OUT; - r = yaz_iconv (cd, 0, 0, &outbuf, &outbytesleft); - if (outbuf != outbuf0) - fwrite (outbuf0, 1, outbuf - outbuf0, stdout); - break; - } - inbytesleft = r; - } - } - if (verbose > 1) - { - fprintf (stderr, "yaz_iconv: inbytesleft=%ld outbytesleft=%ld\n", - (long) inbytesleft, (long) outbytesleft); - - } - r = yaz_iconv (cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); - if (r == (size_t)(-1)) - { - int e = yaz_iconv_error(cd); - if (e == YAZ_ICONV_EILSEQ) - { - fprintf (stderr, "invalid sequence\n"); - return ; - } - else if (e == YAZ_ICONV_EINVAL) /* incomplete input */ - { - size_t i; - for (i = 0; i - Finsiel S.p.A. - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - -/* - * Operating System include files - */ -#include - -#include -#if HAVE_SYS_TIME_H -#include -#endif - -#include - -#include "apdu.h" - -/* - * The table of z3950 apdus - */ -static z3950apdu apdutable [] = -{ - { 20, "INIT request", -1, NULL, NULL, 0, NULL, 0 }, - { 21, "INIT response", -1, NULL, NULL, 0, NULL, 0 }, - { 22, "SEARCH request", -1, NULL, NULL, 0, NULL, 0 }, - { 23, "SEARCH response", -1, NULL, NULL, 0, NULL, 0 }, - { 24, "PRESENT request", -1, NULL, NULL, 0, NULL, 0 }, - { 25, "PRESENT response", -1, NULL, NULL, 0, NULL, 0 }, - { 26, "DELETE request", -1, NULL, NULL, 0, NULL, 0 }, - { 27, "DELETE response", -1, NULL, NULL, 0, NULL, 0 }, - { 28, "ACCESS request", -1, NULL, NULL, 0, NULL, 0 }, - { 29, "ACCESS response", -1, NULL, NULL, 0, NULL, 0 }, - { 30, "RESOURCE request", -1, NULL, NULL, 0, NULL, 0 }, - { 31, "RESOURCE response", -1, NULL, NULL, 0, NULL, 0 }, - { 32, "TRIGGER request", -1, NULL, NULL, 0, NULL, 0 }, - { 33, "REPORT request", -1, NULL, NULL, 0, NULL, 0 }, - { 34, "REPORT response", -1, NULL, NULL, 0, NULL, 0 }, - { 35, "SCAN request", -1, NULL, NULL, 0, NULL, 0 }, - { 36, "SCAN response", -1, NULL, NULL, 0, NULL, 0 }, - - { 43, "SORT request", -1, NULL, NULL, 0, NULL, 0 }, - { 44, "SORT response", -1, NULL, NULL, 0, NULL, 0 }, - { 45, "SEGMENT request", -1, NULL, NULL, 0, NULL, 0 }, - { 46, "EXTENDED request", -1, NULL, NULL, 0, NULL, 0 }, - { 47, "EXTENDED response", -1, NULL, NULL, 0, NULL, 0 }, - { 48, "CLOSE request", -1, NULL, NULL, 0, NULL, 0 }, - - { 0 }, -}; - - -z3950apdu * lookup (int tag) -{ - z3950apdu * found = apdutable; - - for (found = apdutable; found < apdutable + - (sizeof (apdutable) / sizeof (apdutable [0])); found ++) - if (found -> tag == tag) - break; - - return (found); -} - - -static int bertag (u_char * apdu) -{ - u_char * q = apdu; - int tag = * q & 0x1F; - - if (tag > 30) - { - tag = 0; - q ++; - do - { - tag <<= 7; - tag |= * q & 0X7F; - } - while (* q ++ & 0X80); - } - return (tag); -} - - -/* - * An euristic Z39.50 event check routine that simply - * looks for the first tag in the APDU - */ -z3950apdu * parseable (u_char * apdu, int len) -{ - if (! len) - return (0); - - return (lookup (bertag (apdu))); -} - - - -struct timeval current_apdu = {0}; -struct timeval first_apdu = {0}; -struct timeval last_apdu = {0}; - -/* - * The time difference in milliseconds - */ -time_t delta_time_in_milliseconds (const struct timeval * now, - const struct timeval * before) -{ - /* - * compute delta in second, 1/10's and 1/1000's second units - */ - time_t delta_seconds = now -> tv_sec - before -> tv_sec; - time_t delta_milliseconds = (now -> tv_usec - before -> tv_usec) / 1000; - - if (delta_milliseconds < 0) - { /* manually carry a one from the seconds field */ - delta_milliseconds += 1000; /* 1e3 */ - -- delta_seconds; - } - return ((delta_seconds * 1000) + delta_milliseconds); -} - - -/* - * return a well formatted timestamp - */ -char * timestamp (const struct timeval * t, int fmt) -{ - static char buf [16]; - - time_t now = time ((time_t *) 0); - struct tm * tm = localtime (& now); - - gettimeofday (& current_apdu, NULL); - - switch (fmt) - { - default: - case DELTA_FMT: - /* - * calculate the difference in milliseconds since the previous apdus was displayed - */ - sprintf (buf, "%10ld ms", delta_time_in_milliseconds (& current_apdu, & last_apdu)); - break; - - case ABS_FMT: - sprintf (buf, "%02d:%02d:%02d.%06d", - tm -> tm_hour, tm -> tm_min, tm -> tm_sec, (int) t -> tv_usec); - break; - - case RELATIVE_FMT: - /* - * calculate the difference in milliseconds since the previous apdus was displayed - */ - sprintf (buf, "%10ld ms", delta_time_in_milliseconds (& current_apdu, & first_apdu)); - break; - } - - return (buf); -} diff --git a/dependencies/yaz_3.0.14/ziffy/apdu.h b/dependencies/yaz_3.0.14/ziffy/apdu.h deleted file mode 100644 index f4b3cec..0000000 --- a/dependencies/yaz_3.0.14/ziffy/apdu.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * apdu.h - - * - * Copyright (c) 1998-2001 R. Carbone - Finsiel S.p.A. - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - -extern unsigned long z3950_apduno; - -extern int aflag; - -extern int ethflag; -extern int ipflag; -extern int tcpflag; -extern int z3950flag; - - -extern struct timeval first_apdu; -extern struct timeval last_apdu; - - -/* - * The structure containing information about all the apdus - */ -typedef struct -{ - int tag; /* unique apdu tag identifier */ - char * name; /* user printable name of the apdu */ - int minlen; /* min length of bytes off wire (all optional fields absent) */ - const struct timeval * t; /* the time the apdu was captured */ - char * calling; /* source ip address */ - int srcport; /* source port */ - char * called; /* destination ip address */ - int dstport; /* source port */ -} z3950apdu; - - -z3950apdu * parseable (unsigned char * apdu, int len); - -char * srchost (void); -int srcport (void); -char * dsthost (void); -int dstport (void); - - -/* - * time stamp presentation formats - */ -#define DELTA_FMT 1 /* the time since receiving the previous apdu */ -#define ABS_FMT 2 /* the current time */ -#define RELATIVE_FMT 3 /* the time relative to the first apdu received */ - - -char * timestamp (const struct timeval * t, int fmt); diff --git a/dependencies/yaz_3.0.14/ziffy/fmemdmp.c b/dependencies/yaz_3.0.14/ziffy/fmemdmp.c deleted file mode 100644 index 66d84eb..0000000 --- a/dependencies/yaz_3.0.14/ziffy/fmemdmp.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * fmemdmp.c - tracing utilities - * - * Copyright (c) 1998-2001 R. Carbone - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - - -/* - * Operating System include files - */ -#include -#include -#include -#include -#include - -#include -#if HAVE_SYS_TIME_H -# include -#endif - - -/* - * Pretty print function. - * - * This function dumps a buffer in memory in the (pretty !!) format : - * - * off: printable hexadecimal notation - * -------------------------------------------------------------------------- - * - * Dump of memory area at address 0x10000444 for 51 bytes - * 0: abcdefghijklmnop 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 - * 16: qrstuvzxyw012345 71 72 73 74 75 76 7a 78 79 77 30 31 32 33 34 35 - * 32: 6789~!@#$%^&*()_ 36 37 38 39 7e 21 40 23 24 25 5e 26 2a 28 29 5f - * 48: -+= 2d 2b 3d - * - * Dump of memory area at address 0x7fffbc03 for 16 bytes - * 0: rocco@tecsiel.it 72 6f 63 63 6f 40 74 65 63 73 69 65 6c 2e 69 74 - */ -void fmemdmp (FILE * fd, char * ptr, int size, char * text) -{ - int offset = 0; - int i = 0; - int bytes_in_a_line = 16; - unsigned int total; - - if (! ptr || size <= 0) - return; - - if (text && * text) - fprintf (fd, "\"%s\" at address 0x%08x for %d bytes\n", - text, (unsigned int) ptr, size); - - for (total = 0; total < size; total += bytes_in_a_line) - { - /* - * Print the offset - */ - fprintf (fd, "%6d: ", offset); - /* - * Print the bytes in a line (each byte in ASCII notation) - */ - for (i = 0; i < bytes_in_a_line; i ++) - if (total + i < size) - fprintf (fd, "%c", - isprint (* (ptr + total + i) & 0x000000ff) - ? (* (ptr + total + i)) - : '.'); - else - fprintf (fd, " "); /* 1 blank character */ - /* - * Print the separator - */ - fprintf (fd, " "); - /* - * Print the bytes in a line (each byte in Hexadecimal notation) - */ - for (i = 0; i < bytes_in_a_line && i < size; i ++) - if (total + i < size) - fprintf (fd, "%02x ", - * (ptr + total + i) & 0x000000ff); - else - fprintf (fd, " "); /* 3 more blanks characters */ - - fprintf (fd, "\n"); - offset += bytes_in_a_line; - } - fflush (fd); -} diff --git a/dependencies/yaz_3.0.14/ziffy/hooks.c b/dependencies/yaz_3.0.14/ziffy/hooks.c deleted file mode 100644 index cec5e50..0000000 --- a/dependencies/yaz_3.0.14/ziffy/hooks.c +++ /dev/null @@ -1,321 +0,0 @@ -/* - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * hooks.c - a TCP/IP protocol filter for ziffy - * - * Copyright (c) 1998-2001 R. Carbone - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - -#if defined(linux) -# if !defined(_BSD_SOURCE) -# define _BSD_SOURCE -# endif -#endif - -/* - * Operating System include files - */ -#include -#include -#include -#include - -#include -#include - -#if HAVE_NET_IF_H -#include -#endif - -#if HAVE_NETINET_IN_H -#include -#endif - -#if HAVE_NETINET_IF_ETHER_H -#include -#endif - -#if HAVE_NETINET_IN_SYSTM_H -#include -#endif - -#include -#include - -#include "pcap.h" /* Packet Capture Library */ - -#include "apdu.h" - -void fmemdmp (FILE * fd, char * ptr, int size, char * text); - - -/* external */ -extern int dlt; - - -/* - * to allow a pretty-print of lower-layers address I save - * relevant pointers to all the protocol data units in global variables, - * rather than pass them across function calls. - * So, for example, if someone is interested in the paired source and - * destination IP addressed, they can be easily accessed by global 'ip' pointer. - */ - - -/* - * hooks to the known protocols in the ethernet packets - */ -static struct ether_header * e = NULL; -static struct ip * ip = NULL; -static struct tcphdr * tcp = NULL; -extern u_char * z3950; - -/* - * sizes of the known protocols in the ethernet packets - */ -static int eth_size = 0; -static int eth_hlen = 0; -static int ip_size = 0; -static int ip_hlen = 0; -static int tcp_size = 0; -static int tcp_hlen = 0; -extern int z3950_size; - - -char * srchost (void) -{ - static char buf [256]; /* should be enough for humans !!! */ - - struct hostent * host = NULL; - - if (aflag) - host = gethostbyaddr ((char *) & ip -> ip_src, sizeof (ip -> ip_src), AF_INET); - - sprintf (buf, "%s", host ? host -> h_name : inet_ntoa (ip -> ip_src)); - return (buf); -} - - -int srcport (void) -{ - return ((int) ntohs (tcp -> th_sport)); -} - - -char * dsthost (void) -{ - static char buf [256]; /* should be enough for humans !!! */ - - struct hostent * host = NULL; - - if (aflag) - host = gethostbyaddr ((char *) & ip -> ip_dst, sizeof (ip -> ip_dst), AF_INET); - - sprintf (buf, "%s", host ? host -> h_name : inet_ntoa (ip -> ip_dst)); - return (buf); -} - - -int dstport (void) -{ - return ((int) ntohs (tcp -> th_dport)); -} - - -/* - * stolen from the addrtoname.c in tcpdump - */ -static char hex [] = "0123456789abcdef"; - -static char * etheraddr_string (u_char * e) -{ - static char buf [sizeof ("00:00:00:00:00:00")]; - - int i; - int j; - char * p; - - strcpy (buf, "00:00:00:00:00:00"); - - /* - * hacked to manage DLT_NULL - */ - if (! e) - return (buf); - - p = buf; - if ((j = * e >> 4) != 0) - * p ++ = hex [j]; - * p ++ = hex [* e ++ & 0xf]; - for (i = 5; -- i >= 0; ) - { - * p ++ = ':'; - if ((j = * e >> 4) != 0) - * p ++ = hex [j]; - * p ++ = hex [* e ++ & 0xf]; - } - * p = '\0'; - return (buf); -} - - -/* - * Parse the incoming Ethernet Packet and set hooks to all pertinent data. - * - * 'h' is the pointer to the packet header (independent from interfaces) - * 'p' is the pointer to the packet data - * - * Warning: I really want libpcap to give me aligned packets - */ -z3950apdu * pduhook (const struct pcap_pkthdr * h, const u_char * p) -{ - static unsigned long ethno = 0; /* # of ethernet packets received by the decoder */ - static unsigned long ipno = 0; /* # of IP packets received by the decoder */ - static unsigned long tcpno = 0; /* # of TCP packets received by the decoder */ - - u_char * q; - - z3950apdu * apdu = NULL; - - /* - * Ethernet Protocol - */ - e = (struct ether_header *) p; - - /* - * Ethernet sizes - * - * The header is only 4 bytes long in case of no link-layer encapsulation (DLT_NULL). - * It contains a network order 32 bit integer that specifies the family, e.g. AF_INET - */ - eth_size = h -> len; - eth_hlen = dlt == DLT_NULL ? 4 : sizeof (struct ether_header); - - ++ ethno; - - if (ethflag) - printf ("ETHER: ----- Ether Header -----\n"), - printf ("ETHER:\n"), - printf ("ETHER: Packet %ld arrived at %s\n", ethno, timestamp (& h -> ts, ABS_FMT)), - printf ("ETHER: Total size = %d : header = %d : data = %d\n", - eth_size, eth_hlen, eth_size - eth_hlen), - printf ("ETHER: Source = %s\n", - etheraddr_string (dlt == DLT_NULL ? NULL : (u_char *) & e -> ether_shost)), - printf ("ETHER: Destination = %s\n", - etheraddr_string (dlt == DLT_NULL ? NULL : (u_char *) & e -> ether_dhost)), - fflush (stdout), - fmemdmp (stdout, (char *) e, eth_size, "Ethernet Packet"); - - /* - * Process only IP packets (or loopback packets when testing at home sweet home) - */ - if (dlt == DLT_NULL || ntohs (e -> ether_type) == ETHERTYPE_IP) - { - /* - * IP Protocol - */ - ip = (struct ip *) (p + eth_hlen); - - /* - * IP sizes - * - * ip->ip_hl*4 = size of the IP (Header Only) - * ntohs (ip->ip_len) = size of the IP (Full Packet) - * ip_size = eth_size - eth_hlen (better IMO) - */ - ip_size = eth_size - eth_hlen; - ip_hlen = ip -> ip_hl * 4; - - ++ ipno; - - if (ipflag) - printf ("IP: ----- IP Header -----\n"), - printf ("IP:\n"), - printf ("IP: Packet %ld arrived at %s\n", ipno, timestamp (& h -> ts, ABS_FMT)), - printf ("IP: Total size = %d : header = %d : data = %d\n", - ip_size, ip_hlen, ip_size - ip_hlen), - printf ("IP: Source = %s\n", inet_ntoa (ip -> ip_src)), - printf ("IP: Destination = %s\n", inet_ntoa (ip -> ip_dst)), - fflush (stdout); - -#if (0) - fmemdmp (stdout, (char *) ip, ip_size, "IP Packet"); -#endif - - /* - * i am looking for Z39.50 APDUs over TCP/IP. so... - */ - if (ip -> ip_p == IPPROTO_TCP) - { - /* - * TCP Protocol - */ - q = (u_char *) ip + ip_hlen; - tcp = (struct tcphdr *) q; - - /* - * TCP sizes - * - * tcp->th_off*4 = size of the TCP (Header Only) - */ - tcp_size = ip_size - ip_hlen; - tcp_hlen = tcp -> th_off * 4; - - ++ tcpno; - - if (tcpflag) - printf ("TCP: ----- TCP Header -----\n"), - printf ("TCP:\n"), - printf ("TCP: Packet %ld arrived at %s\n", tcpno, timestamp (& h -> ts, ABS_FMT)), - printf ("TCP: Total size = %d : header = %d : data = %d\n", - tcp_size, tcp_hlen, tcp_size - tcp_hlen), - printf ("TCP: Source = %d\n", ntohs (tcp -> th_sport)), - printf ("TCP: Destination = %d\n", ntohs (tcp -> th_dport)), - fflush (stdout), - fmemdmp (stdout, (char *) tcp, tcp_size, "TCP Packet"); - - /* - * Application Protocol - * (time to play with Z39.50 APDUs here) - */ - z3950 = (u_char *) e + eth_hlen + ip_hlen + tcp_hlen; - - /* - * Higher Protocol Packet Size - */ - z3950_size = tcp_size - tcp_hlen; - - apdu = parseable (z3950, z3950_size); - - if (tcpflag && apdu) - printf ("TCP: ----- TCP Header -----\n"), - printf ("TCP:\n"), - printf ("TCP: Packet %ld arrived at %s\n", tcpno, timestamp (& h -> ts, ABS_FMT)), - printf ("TCP: Total size = %d : header = %d : data = %d\n", - tcp_size, tcp_hlen, tcp_size - tcp_hlen), - printf ("TCP: Source = %d\n", ntohs (tcp -> th_sport)), - printf ("TCP: Destination = %d\n", ntohs (tcp -> th_dport)), - fflush (stdout), - fmemdmp (stdout, (char *) tcp, tcp_size, "TCP Packet"); - - - return (apdu); - } - } - return (NULL); -} diff --git a/dependencies/yaz_3.0.14/ziffy/yaz.c b/dependencies/yaz_3.0.14/ziffy/yaz.c deleted file mode 100644 index 6e9943e..0000000 --- a/dependencies/yaz_3.0.14/ziffy/yaz.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * yaz.c - decoding and printing utility based on the YAZ Toolkit - * - * Copyright (c) 1998-2001 R. Carbone - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - -/* - * Operating System include files - */ -#include -#include - -/* - * YAZ include files - */ -#include "yaz/odr.h" -#include "yaz/proto.h" - -#include "apdu.h" - - -void please_yaz_help_me (z3950apdu * hook) -{ - extern unsigned char * z3950; - extern int z3950_size; - - /* - * Variable to keep the Z39.50 APDUs. The definitions are in the - * the structures defined by the YAZ Toolkit. - */ - Z_APDU * apdu = NULL; - - /* - * Decoding/Printing streams - */ - ODR printing; - ODR decode; - - /* - * The stream used for decoding - */ -#define MAXBERSIZE (2048 * 2048) - unsigned char berbuffer [MAXBERSIZE]; - - /* - * Allocate a stream for input data - */ - decode = odr_createmem (ODR_DECODE); - if (! decode) - { - printf ("Not enough memory to create an input stream\n"); - return; - } - - /* - * Allocate a stream for printing data - */ - printing = odr_createmem (ODR_PRINT); - if (! printing) - { - printf ("Not enough memory to create a printing stream\n"); - odr_destroy (decode); - return; - } - - /* - * Initialize the decoding routines - */ - memcpy (berbuffer, z3950, z3950_size); - - odr_setbuf (decode, (char *) berbuffer, z3950_size, 0); - - /* - * Perform BER decoding - */ - if (z_APDU (decode, & apdu, 0, 0)) - { - ++ z3950_apduno; - - if (z3950flag) - printf ("Z3950: ----- Z39.50 APDU -----\n"), - printf ("Z3950: APDU %ld arrived at %s\n", z3950_apduno, - timestamp (hook -> t, ABS_FMT)), - printf ("Z3950: Total size = %d\n", z3950_size), - fflush (stdout); - - /* - * save the time the last apdu was displayed - */ - if (z3950_apduno == 1) - gettimeofday (& first_apdu, NULL); - - /* - * print standard summary information accordingly to the format - * - * id time source:port -> destination:port type - */ - printf ("Z3950: %5ld %s %s:%d -> %s:%d %s\n", - z3950_apduno, timestamp (hook -> t, DELTA_FMT), - hook -> calling, hook -> srcport, hook -> called, hook -> dstport, - hook -> name), - fflush (stdout); - - gettimeofday (& last_apdu, NULL); - -#if (0) - fmemdmp (stdout, z3950, z3950_size, "Z39.50 APDU"); -#endif - - /* - * Yup! We have the APDU now. Try to print it - */ - odr_setbuf (printing, (char *) berbuffer, z3950_size, 0); - fflush (stdout); - - z_APDU (printing, & apdu, 0, 0); - fflush (stderr); - - odr_reset (printing); - printing -> buf = NULL; - } - - /* - * release memory previously allocated - */ - odr_destroy (decode); - odr_destroy (printing); -} diff --git a/dependencies/yaz_3.0.14/ziffy/ziffy.c b/dependencies/yaz_3.0.14/ziffy/ziffy.c deleted file mode 100644 index 64e2bc4..0000000 --- a/dependencies/yaz_3.0.14/ziffy/ziffy.c +++ /dev/null @@ -1,501 +0,0 @@ -/* - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * ziffy.c - a promiscuous Z39.50 APDU sniffer for Ethernet - * - * Copyright (c) 1998-2001 R. Carbone - * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - -/* - * Operating System include files - */ -#include -#include -#include -#include -#include - -#include -#if HAVE_SYS_TIME_H -#include -#endif -#include - -#if 1 -#include "getopt.h" -#endif - -#include "pcap.h" /* Packet Capture Library */ - -#include "apdu.h" - - -/* - * external - */ -z3950apdu * pduhook (const struct pcap_pkthdr * h, const u_char * p); - - -#if defined(HAVE_XASN1) -void please_finsiel_help_me (z3950apdu * hook); -#endif /* HAVE_XASN1 */ - -#if defined(HAVE_YAZ) -void please_yaz_help_me (z3950apdu * hook); -#endif /* HAVE_YAZ */ - -#if defined(HAVE_SNACC) -void please_snacc_help_me (z3950apdu * hook); -#endif /* HAVE_SNACC */ - - -/* - * global variables - */ -time_t now; /* current time */ -time_t start_time; /* time the program was started */ -time_t firstapdu_time; /* time the first APDU was received */ -time_t laststapdu_time; /* time the last APDU was received */ - -unsigned long int z3950_apduno = 0; /* # of z3950 apdus so far received */ -u_char * z3950 = NULL; /* pointer to the last apdu received */ -int z3950_size = 0; /* and its size */ - -/* - * I currently tested the program at home in a null networked environment - * and on ethernet 10M lan. the following variable keeps the data-link - * encapsulation type. more info in net/bpf.h - */ -int dlt = -1; - -int aflag = 0; /* attempt to convert numeric network addresses to FQDN */ - -int ethflag = 0; -int ipflag = 0; -int tcpflag = 0; -int z3950flag = 0; - - -/* - * Length of saved portion of packet - */ -#define DEFAULT_SNAPLEN 65536 /* This should be enough... */ -static int snaplen = DEFAULT_SNAPLEN; - -#define DEFAULT_MAXAPDUS -1 /* that means indefinite */ -static int maxapdus = DEFAULT_MAXAPDUS; - -/* - * A handler for pcap, it needs to be global because there is no other way to - * pass it to the signal handler, the same can be said about the file descriptor - * for SOCK_PACKET. - */ -pcap_t * ph = NULL; - - -/* - * package info - */ -static char __copyright__ [] = "Copyright (c) 1998-2001"; -static char __author__ [] = "R. Carbone "; -static char __version__ [] = "Version 0.0.3"; -static char __released__ [] = "June 2001"; - - -#if (0) -struct option options [] = -{ - /* Default args */ - { "help", no_argument, NULL, 'h' }, - { "version", no_argument, NULL, 'v' }, - - /* Session Management stuff */ - { "restart-session", required_argument, NULL, 'S' }, - { "discard-session", required_argument, NULL, 'D' }, - - { NULL, 0, NULL, 0 } -}; -#endif - -char ebuf [PCAP_ERRBUF_SIZE] = {0}; -struct pcap_stat pcapstats = {0}; - -/* - * signal handler - */ -void on_signal (int signo) -{ - /* - * time for statistics - */ - if (pcap_stats (ph, & pcapstats) != 0) - { - printf ("Cannot get the statistics due to %s\n", ebuf), - exit (-1); - } - else - { - printf ("\n\n"); - - printf ("%u packets received by decoder\n", pcapstats . ps_recv); - printf ("%u packets dropped by kernel\n", pcapstats . ps_drop); - } - - fflush (stdout); - - /* - * bye bye ! - */ - pcap_close (ph); - - exit (0); -} - - - -/* - * You are welcome! - */ -void welcome (char * progname) -{ - time_t now = ((time_t) time ((time_t *) 0)); - char * nowstring = ctime (& now); - struct utsname machine; - - nowstring [24] = '\0'; - uname (& machine); - - printf ("This is %s %s of %s\n", progname, __version__, __released__); - printf ("%s %s\n", __copyright__, __author__); - printf ("Started at %s on %s\n\n", nowstring, machine . nodename); - printf ("\n"); - fflush (stdout); - fflush (stderr); -} - - -/* - * Wrong. Please try again accordingly to .... - */ -void usage (char * progname) -{ - welcome (progname); - - printf ("Usage: %s [--help] [--version]\n\n", progname); - printf ("Options:\n"); - printf (" h, --help display this help and exit\n"); - printf (" v, --version output version information and exit\n"); - - printf (" , -- print filter code\n"); - printf (" , -- print ethernet header\n"); - printf (" , -- try to resolve ip addresses\n"); - printf (" , -- remove domains from printed host names\n"); - printf (" , -- don't translate _foreign_ IP address\n"); - printf (" , -- print packet arrival time\n"); - - printf (" s, --snaplen \n"); - printf (" N, --non-promiscuous capture APDUs addressed to the host machine\n"); - printf (" C, --maxcount capture maxcount APDUs and then terminate\n"); - - printf (" D, --dropped-packets display number of packets dropped during capture\n"); - fflush (stdout); -} - - -/* - * This is really the `main' function of the sniffer. - * - * Parse the incoming APDU, and when possible show all pertinent data. - * - * 'h' is the pointer to the packet header (independent from interfaces) - * 'p' is the pointer to the packet data - * 'caplen' is the number of bytes actually captured - * 'length' is the length of the packet off the wire - */ -void parse_pdu (u_char * user_data, - const struct pcap_pkthdr * h, - const u_char * p) -{ - z3950apdu * hook; - int done = 0; - - if (! (hook = pduhook (h, p))) - return; - - /* - * update the descriptor of the apdu - */ - hook -> t = & h -> ts; - hook -> calling = srchost (); - hook -> srcport = srcport (); - hook -> called = dsthost (); - hook -> dstport = dstport (); - -#if defined(HAVE_XASN1) - if (! done) - please_finsiel_help_me (hook); - done = 1; -#endif /* HAVE_XASN1 */ - -#if defined(HAVE_YAZ) - if (! done) - please_yaz_help_me (hook); - done = 1; -#endif /* HAVE_YAZ */ - -#if defined(HAVE_SNACC) - if (! done) - please_snacc_help_me (hook); - done = 1; -#endif /* HAVE_SNACC */ -} - - -/* - * Oh no! yet another main here - */ -int main (int argc, char * argv []) -{ - int option; - char * optstr = "hvac:ef:i:lnprs:twxz"; - - char * progname; - - char * interface = NULL; - char * filename = NULL; - - char * filter = NULL; - struct bpf_program program = {0}; - bpf_u_int32 network = {0}; - bpf_u_int32 netmask = {0}; - - - /* - * notice the program name - */ - progname = strrchr (argv [0], '/'); - if (! progname || ! * progname) - progname = * argv; - else - progname ++; - -#if (0) - /* - * initialize getopt - */ - optarg = NULL; - optind = 0; - optopt = 0; - opterr = 0; /* this prevents getopt() to send error messages to stderr */ -#endif - - /* - * Parse command-line options - */ - while ((option = getopt (argc, argv, optstr)) != EOF) - { - switch (option) - { - default: - usage (progname); - return (-1); - - case '?': - printf ("%s: unrecognized option %c\n", progname, optopt); - usage (progname); - return (-1); - - case ':': - printf ("%s: missing parameter %c\n", progname, optopt); - usage (progname); - return (-1); - - case 'h': - usage (progname); - return (0); - - case 'a': - aflag = 1; - break; - - case 'c': - maxapdus = atoi (optarg); - if (maxapdus <= 0) - printf ("malformed max apdus counter %s", optarg), maxapdus = DEFAULT_MAXAPDUS; - break; - - case 'e': - ethflag = 1; - break; - - case 'f': - filename = strdup (optarg); - break; - - case 'i': - interface = strdup (optarg); - break; - - case 'l': - break; - - case 'n': - break; - - case 'p': - break; - - case 'r': - break; - - case 's': - snaplen = atoi (optarg); - if (snaplen <= 0) - printf ("malformed snaplen %s", optarg), snaplen = DEFAULT_SNAPLEN; - break; - - case 't': - tcpflag = 1; - break; - - case 'w': - break; - - case 'x': - ipflag = 1; - break; - - case 'z': - z3950flag = 1; - break; - } - } - - /* - * You are welcome - */ - welcome (progname); - - - /* - * build a string from all remaining arguments - */ - filter = NULL; - { - int roomsize = 0; - while (optind < argc) - { - roomsize += (strlen (argv [optind]) + 1 + 1); - if (filter) - { - strcat (filter, " "); - filter = (char *) realloc (filter, roomsize); - strcat (filter, argv [optind ++]); - } - else - { - filter = (char *) malloc (roomsize); - strcpy (filter, argv [optind ++]); - } - } - } - - - /* - * find a suitable interface, if i don't have one - */ - if (! filename && ! interface && ! (interface = pcap_lookupdev (ebuf))) - { - printf ("No suitable interfaces found, please specify one with -i\n"); - exit (-1); - } - - - if ((getuid () && geteuid ()) || setuid (0)) - { - printf ("Sorry, you must be root in order to run this program.\n"); - exit (-1); - } - - /* - * time to initialize the libpcap - */ - ph = filename ? pcap_open_offline (filename, ebuf) : - pcap_open_live (interface, snaplen, 1, 1000, ebuf); - - if (! ph) - printf ("Cannot initialize the libpcap package due to %s\n", ebuf), - exit (-1); - - /* - * get the interface network number and its mask - * (unless we are reading data from a file) - */ - if (! filename && pcap_lookupnet (interface, & network, & netmask, ebuf) < 0) - printf ("Cannot lookup for the network due to %s\n", ebuf), - exit (-1); - - /* - * determine the type of the underlying network and the data-link encapsulation method - * (unless we are reading data from a file) - */ - dlt = pcap_datalink (ph); - - if (! filename && dlt != DLT_NULL && dlt != DLT_IEEE802 && dlt != DLT_EN10MB) - printf ("Unsupported data-link encapsulation %d\n", dlt), - exit (-1); - - /* - * compile an optional filter into a BPF program - */ - if (filter && pcap_compile (ph, & program, filter, 1, netmask) == -1) - printf ("Cannot compile the filter %s\n", filter), - exit (-1); - - /* - * apply the filter to the handler - */ - if (filter && pcap_setfilter (ph, & program) == -1) - printf ("Cannot set the filter %s\n", filter), - exit (-1); - - /* - * announce to the world - */ - printf ("%s %s: listening on %s\n", progname, __version__, interface); - fflush (stdout); - - /* - * Setup signal handlers - */ - signal (SIGTERM, on_signal); - signal (SIGINT, on_signal); - - - /* - * Go for fun! and handle any packet received - */ - if (pcap_loop (ph, -1, parse_pdu, NULL) == -1) - printf ("%s: error while capturing packets due to %s\n", progname, pcap_geterr (ph)), - exit (-1); - - pcap_close (ph); - - - return (0); -} diff --git a/dependencies/yaz_3.0.14/zoom/zoom-benchmark.c b/dependencies/yaz_3.0.14/zoom/zoom-benchmark.c deleted file mode 100644 index ddee373..0000000 --- a/dependencies/yaz_3.0.14/zoom/zoom-benchmark.c +++ /dev/null @@ -1,436 +0,0 @@ -/* - * $Id: zoom-benchmark.c,v 1.20 2007/05/06 20:35:43 adam Exp $ - * - * Asynchronous multi-target client doing search and piggyback retrieval - */ - -#include -#include -#include -#include -#include - -#include -#include -#include - - -/* naming events */ -static char* zoom_events[10]; - -/* re-sorting event numbers to progress numbers */ -static int zoom_progress[10]; - -/* commando line parameters */ -static struct parameters_t { - char host[1024]; - char query[1024]; - int progress[4096]; - int concurrent; - int repeat; - int timeout; - char proxy[1024]; - int piggypack; - int gnuplot; -} parameters; - -struct event_line_t -{ - int connection; - long time_sec; - long time_usec; - int progress; - int event; - char zoom_event[128]; - int error; - char errmsg[128]; -}; - - -void print_event_line(struct event_line_t *pel) -{ - printf ("%d\t%ld.%06ld\t%d\t%d\t%s\t%d\t%s\n", - pel->connection, pel->time_sec, pel->time_usec, - pel->progress, - pel->event, pel->zoom_event, - pel->error, pel->errmsg); -} - -void update_events(int *elc, struct event_line_t *els, - int repeat, - int conn, - long sec, - long usec, - int prog, - int event, - const char * eventmsg, - int error, - const char * errmsg){ - - int ielc = repeat*parameters.concurrent + conn; - int iels = repeat*parameters.concurrent*10 + conn*10 + elc[ielc]; - - els[iels].connection = conn; - els[iels].time_sec = sec; - els[iels].time_usec = usec; - els[iels].progress = prog; - els[iels].event = event; - - if (eventmsg) - strcpy(els[iels].zoom_event, eventmsg); - else - strcpy(els[iels].zoom_event, "---"); - - els[iels].error = error; - strcpy(els[iels].errmsg, errmsg); - /* print_event_line(&els[iels]); */ - elc[ielc] += 1; -} - -void print_events(int *elc, struct event_line_t *els, - int connections){ - int i; - int j; - int k; - int ielc; - int iels; - - for (k=0; k < parameters.repeat; k++){ - for (i=0; i < connections; i++){ - ielc = k * parameters.concurrent + i; - for (j=0; j < elc[ielc]; j++){ - iels = k * parameters.concurrent * 10 + i * 10 + j; - print_event_line(&els[iels]); - } - printf("\n"); - } - printf("\n"); - } -} - - - -void init_statics(void) -{ - int i; - char nullstring[1] = ""; - - /* naming events */ - zoom_events[ZOOM_EVENT_NONE] = "ZOOM_EVENT_NONE"; - zoom_events[ZOOM_EVENT_CONNECT] = "ZOOM_EVENT_CONNECT"; - zoom_events[ZOOM_EVENT_SEND_DATA] = "ZOOM_EVENT_SEND_DATA"; - zoom_events[ZOOM_EVENT_RECV_DATA] = "ZOOM_EVENT_RECV_DATA"; - zoom_events[ZOOM_EVENT_TIMEOUT] = "ZOOM_EVENT_TIMEOUT"; - zoom_events[ZOOM_EVENT_UNKNOWN] = "ZOOM_EVENT_UNKNOWN"; - zoom_events[ZOOM_EVENT_SEND_APDU] = "ZOOM_EVENT_SEND_APDU"; - zoom_events[ZOOM_EVENT_RECV_APDU] = "ZOOM_EVENT_RECV_APDU"; - zoom_events[ZOOM_EVENT_RECV_RECORD] = "ZOOM_EVENT_RECV_RECORD"; - zoom_events[ZOOM_EVENT_RECV_SEARCH] = "ZOOM_EVENT_RECV_SEARCH"; - zoom_events[ZOOM_EVENT_END] = "ZOOM_EVENT_END"; - - /* re-sorting event numbers to progress numbers */ - zoom_progress[ZOOM_EVENT_NONE] = 0; - zoom_progress[ZOOM_EVENT_CONNECT] = 1; - zoom_progress[ZOOM_EVENT_SEND_DATA] = 3; - zoom_progress[ZOOM_EVENT_RECV_DATA] = 4; - zoom_progress[ZOOM_EVENT_TIMEOUT] = 9; - zoom_progress[ZOOM_EVENT_UNKNOWN] = 10; - zoom_progress[ZOOM_EVENT_SEND_APDU] = 2; - zoom_progress[ZOOM_EVENT_RECV_APDU] = 5; - zoom_progress[ZOOM_EVENT_RECV_RECORD] = 7; - zoom_progress[ZOOM_EVENT_RECV_SEARCH] = 6; - zoom_progress[ZOOM_EVENT_END] = 8; - - /* parameters */ - parameters.concurrent = 1; - parameters.timeout = 0; - parameters.repeat = 1; - strcpy(parameters.proxy, nullstring); - parameters.gnuplot = 0; - parameters.piggypack = 0; - - /* progress initializing */ - for (i = 0; i < 4096; i++){ - parameters.progress[i] = 0; - } - -} - -struct time_type -{ - struct timeval now; - struct timeval then; - long sec; - long usec; -}; - -void time_init(struct time_type *ptime) -{ - gettimeofday(&(ptime->now), 0); - gettimeofday(&(ptime->then), 0); - ptime->sec = 0; - ptime->usec = 0; -} - -void time_stamp(struct time_type *ptime) -{ - gettimeofday(&(ptime->now), 0); - ptime->sec = ptime->now.tv_sec - ptime->then.tv_sec; - ptime->usec = ptime->now.tv_usec - ptime->then.tv_usec; - if (ptime->usec < 0){ - ptime->sec--; - ptime->usec += 1000000; - } -} - -long time_sec(struct time_type *ptime) -{ - return ptime->sec; -} - -long time_usec(struct time_type *ptime) -{ - return ptime->usec; -} - -void print_option_error(void) -{ - fprintf(stderr, "zoom-benchmark: Call error\n"); - fprintf(stderr, "zoom-benchmark -h host:port -q pqf-query " - "[-c no_concurrent (max 4096)] " - "[-n no_repeat] " - "[-b (piggypack)] " - "[-g (gnuplot outfile)] " - "[-p proxy] \n"); - /* "[-t timeout] \n"); */ - exit(1); -} - - -void read_params(int argc, char **argv, struct parameters_t *p_parameters){ - char *arg; - int ret; - while ((ret = options("h:q:c:t:p:bgn:", argv, argc, &arg)) != -2) - { - switch (ret) - { - case 'h': - strcpy(p_parameters->host, arg); - break; - case 'q': - strcpy(p_parameters->query, arg); - break; - case 'p': - strcpy(p_parameters->proxy, arg); - break; - case 'c': - p_parameters->concurrent = atoi(arg); - break; -#if 0 - case 't': - p_parameters->timeout = atoi(arg); - break; -#endif - case 'b': - p_parameters->piggypack = 1; - break; - case 'g': - p_parameters->gnuplot = 1; - break; - case 'n': - p_parameters->repeat = atoi(arg); - break; - case 0: - print_option_error(); - break; - default: - print_option_error(); - } - } - - if(0){ - printf("zoom-benchmark\n"); - printf(" host: %s \n", p_parameters->host); - printf(" query: %s \n", p_parameters->query); - printf(" concurrent: %d \n", p_parameters->concurrent); - printf(" repeat: %d \n", p_parameters->repeat); -#if 0 - printf(" timeout: %d \n", p_parameters->timeout); -#endif - printf(" proxy: %s \n", p_parameters->proxy); - printf(" piggypack: %d \n\n", p_parameters->piggypack); - printf(" gnuplot: %d \n\n", p_parameters->gnuplot); - } - - if (! strlen(p_parameters->host)) - print_option_error(); - if (! strlen(p_parameters->query)) - print_option_error(); - if (! (p_parameters->concurrent > 0)) - print_option_error(); - if (! (p_parameters->repeat > 0)) - print_option_error(); - if (! (p_parameters->timeout >= 0)) - print_option_error(); - if (! ( p_parameters->concurrent <= 4096)) - print_option_error(); -} - -void print_table_header(void) -{ - if (parameters.gnuplot) - printf("#"); - printf ("target\tsecond.usec\tprogress\tevent\teventname\t"); - printf("error\terrorname\n"); -} - - -int main(int argc, char **argv) -{ - struct time_type time; - ZOOM_connection *z; - ZOOM_resultset *r; - int *elc; - struct event_line_t *els; - ZOOM_options o; - int i; - int k; - - init_statics(); - - read_params(argc, argv, ¶meters); - - z = (ZOOM_connection *) xmalloc(sizeof(*z) * parameters.concurrent); - r = (ZOOM_resultset *) xmalloc(sizeof(*r) * parameters.concurrent); - elc = (int *) xmalloc(sizeof(*elc) * parameters.concurrent * parameters.repeat); - els = (struct event_line_t *) xmalloc( - sizeof(*els) * parameters.concurrent * parameters.repeat * 10); - o = ZOOM_options_create(); - - /* async mode */ - ZOOM_options_set (o, "async", "1"); - - /* get first record of result set (using piggypack) */ - if (parameters.piggypack) - ZOOM_options_set (o, "count", "1"); - - /* set proxy */ - if (strlen(parameters.proxy)) - ZOOM_options_set (o, "proxy", parameters.proxy); - - - /* preferred record syntax */ - if (0){ - ZOOM_options_set (o, "preferredRecordSyntax", "usmarc"); - ZOOM_options_set (o, "elementSetName", "F"); - } - - time_init(&time); - /* repeat loop */ - for (k = 0; k < parameters.repeat; k++){ - - /* progress zeroing */ - for (i = 0; i < 4096; i++){ - parameters.progress[i] = k * 5 -1; - } - - /* connect to all concurrent connections*/ - for ( i = 0; i < parameters.concurrent; i++){ - /* set event count to zero */ - elc[k * parameters.concurrent + i] = 0; - - /* create connection - pass options (they are the same for all) */ - z[i] = ZOOM_connection_create(o); - - /* connect and init */ - ZOOM_connection_connect(z[i], parameters.host, 0); - } - /* search all */ - for (i = 0; i < parameters.concurrent; i++) - r[i] = ZOOM_connection_search_pqf (z[i], parameters.query); - - /* network I/O. pass number of connections and array of connections */ - while ((i = ZOOM_event (parameters.concurrent, z))){ - int event = ZOOM_connection_last_event(z[i-1]); - const char *errmsg; - const char *addinfo; - int error = 0; - //int progress = zoom_progress[event]; - - if (event == ZOOM_EVENT_SEND_DATA || event == ZOOM_EVENT_RECV_DATA) - continue; - - time_stamp(&time); - - /* updating events and event list */ - error = ZOOM_connection_error(z[i-1] , &errmsg, &addinfo); - if (error) - parameters.progress[i] = zoom_progress[ZOOM_EVENT_UNKNOWN]; - //parameters.progress[i] = zoom_progress[ZOOM_EVENT_NONE]; - else if (event == ZOOM_EVENT_CONNECT) - parameters.progress[i] = zoom_progress[event]; - else - //parameters.progress[i] = zoom_progress[event]; - parameters.progress[i] += 1; - - update_events(elc, els, - k, i-1, - time_sec(&time), time_usec(&time), - parameters.progress[i], - event, zoom_events[event], - error, errmsg); - } - - /* destroy connections */ - for (i = 0; i -#include -#include -#include -#include -#include -#include - -#ifdef WIN32 -#error Unix only -#endif - -int main(int argc, char **argv) -{ - ZOOM_connection z; - int i, error; - const char *errmsg, *addinfo; - - if (argc < 3) { - fprintf(stderr, "Usage:\n%s [ ...]\n", argv[0]); - fprintf(stderr, " eg. bagel.indexdata.dk/gils foo.xml bar.xml\n"); - return 1; - } - - z = ZOOM_connection_create(0); - - for (i = 2; i < argc; i++) { - char *buf, *fn = argv[i]; - struct stat statbuf; - size_t size, offset = 0; - int fd, n; - - ZOOM_connection_connect(z, argv[1], 0); - if ((error = ZOOM_connection_error(z, &errmsg, &addinfo))) { - fprintf(stderr, "Error: %s (%d) %s\n", errmsg, error, addinfo); - return 2; - } - - if (stat(fn, &statbuf) < 0 || - (fd = open(fn, O_RDONLY)) < 0) { - perror(fn); - return 3; - } - size = statbuf.st_size; - printf("size=%lu\n", (unsigned long) size); - buf = (char *) xmalloc(size+1); - while ((n = read(fd, &buf[offset], size)) < size) { - if (n < 0) { - perror("read"); - return 4; - } - size -= n; - offset += n; - } - close(fd); - buf[size] = 0; - - { - ZOOM_package pkg = ZOOM_connection_package(z, 0); - ZOOM_package_option_set(pkg, "action", "specialUpdate"); - ZOOM_package_option_set(pkg, "record", buf); - ZOOM_package_send(pkg, "update"); - if ((error = ZOOM_connection_error(z, &errmsg, &addinfo))) { - printf("file '%s': error %d (%s) %s\n", - fn, error, errmsg, addinfo); - } else { - printf("file '%s': ok\n", fn); - } - } - - xfree(buf); - if (i < argc-1) sleep(2); - } - - ZOOM_connection_destroy(z); - return 0; -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ diff --git a/dependencies/yaz_3.0.14/zoom/zoom-ka.c b/dependencies/yaz_3.0.14/zoom/zoom-ka.c deleted file mode 100644 index 9999eba..0000000 --- a/dependencies/yaz_3.0.14/zoom/zoom-ka.c +++ /dev/null @@ -1,64 +0,0 @@ -/* $Id: zoom-ka.c,v 1.2 2007/01/03 08:42:17 adam Exp $ */ - -/** \file zoom-ka.c - \brief Test ZOOM Keepalive / reconnect -*/ - -#include -#include -#include -#include -#include - -#include -#include -#include - -int main(int argc, char **argv) -{ - ZOOM_connection z; - ZOOM_options o = ZOOM_options_create (); - const char *errmsg, *addinfo; - - if (argc != 4) - { - fprintf (stderr, "usage:\nzoom-ka sleepinterval target query\n"); - exit(1); - } - /* async mode */ - ZOOM_options_set (o, "async", "1"); - - z = ZOOM_connection_create(o); - - while(1) - { - int i, error; - ZOOM_resultset rset; - ZOOM_connection_connect (z, argv[2], 0); - rset = ZOOM_connection_search_pqf(z, argv[3]); - - while ((i = ZOOM_event(1, &z))) - { - printf ("no = %d event = %d\n", i-1, - ZOOM_connection_last_event(z)); - } - if ((error = ZOOM_connection_error(z, &errmsg, &addinfo))) - { - fprintf(stderr, "%s error: %s (%d) %s\n", - ZOOM_connection_option_get(z, "host"), - errmsg, error, addinfo); - } - ZOOM_resultset_destroy(rset); - sleep(atoi(argv[1])); - } - ZOOM_connection_destroy (z); - ZOOM_options_destroy(o); -} -/* - * Local variables: - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - * vim: shiftwidth=4 tabstop=8 expandtab - */ - diff --git a/dependencies/yaz_3.0.14/zoom/zoomsh.c b/dependencies/yaz_3.0.14/zoom/zoomsh.c deleted file mode 100644 index 9306553..0000000 --- a/dependencies/yaz_3.0.14/zoom/zoomsh.c +++ /dev/null @@ -1,682 +0,0 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS - * See the file LICENSE for details. - * - * $Id: zoomsh.c,v 1.50 2007/09/11 15:16:20 adam Exp $ - */ - -/** \file zoomsh.c - \brief ZOOM C command line tool (shell) -*/ - -#include -#include -#include -#include - -#include - -#if HAVE_READLINE_READLINE_H -#include -#endif -#if HAVE_READLINE_HISTORY_H -#include -#endif - -#include - -#include -#include -#include - -#define MAX_CON 100 - -static int next_token(const char **cpp, const char **t_start) -{ - int len = 0; - const char *cp = *cpp; - while (*cp == ' ') - cp++; - if (*cp == '"') - { - cp++; - *t_start = cp; - while (*cp && *cp != '"') - { - cp++; - len++; - } - if (*cp) - cp++; - } - else - { - *t_start = cp; - while (*cp && *cp != ' ' && *cp != '\r' && *cp != '\n') - { - cp++; - len++; - } - if (len == 0) - len = -1; - } - *cpp = cp; - return len; /* return -1 if no token was read .. */ -} - -static int next_token_copy(const char **cpp, char *buf_out, int buf_max) -{ - const char *start; - int len = next_token(cpp, &start); - if (len < 0) - { - *buf_out = 0; - return len; - } - if (len >= buf_max) - len = buf_max-1; - memcpy(buf_out, start, len); - buf_out[len] = '\0'; - return len; -} - -static int is_command(const char *cmd_str, const char *this_str, int this_len) -{ - int cmd_len = strlen(cmd_str); - if (cmd_len != this_len) - return 0; - if (memcmp(cmd_str, this_str, cmd_len)) - return 0; - return 1; -} - -static void cmd_set(ZOOM_connection *c, ZOOM_resultset *r, - ZOOM_options options, - const char **args) -{ - char key[40], val[80]; - - if (next_token_copy(args, key, sizeof(key)) < 0) - { - printf("missing argument for set\n"); - return ; - } - if (next_token_copy(args, val, sizeof(val)) < 0) - ZOOM_options_set(options, key, 0); - else - ZOOM_options_set(options, key, val); -} - -static void cmd_get(ZOOM_connection *c, ZOOM_resultset *r, - ZOOM_options options, - const char **args) -{ - char key[40]; - if (next_token_copy(args, key, sizeof(key)) < 0) - { - printf("missing argument for get\n"); - } - else - { - const char *val = ZOOM_options_get(options, key); - printf("%s = %s\n", key, val ? val : ""); - } -} - -static void cmd_rget(ZOOM_connection *c, ZOOM_resultset *r, - ZOOM_options options, - const char **args) -{ - char key[40]; - if (next_token_copy(args, key, sizeof(key)) < 0) - { - printf("missing argument for get\n"); - } - else - { - int i; - for (i = 0; i"); - } - } -} - -static void cmd_close(ZOOM_connection *c, ZOOM_resultset *r, - ZOOM_options options, - const char **args) -{ - char host[60]; - int i; - next_token_copy(args, host, sizeof(host)); - for (i = 0; i= 0) - ZOOM_options_set(options, "start", start_str); - - if (next_token_copy(args, count_str, sizeof(count_str)) >= 0) - ZOOM_options_set(options, "count", count_str); - - for (i = 0; i\n"); - printf("search \n"); - printf("show [ []\n"); - printf("scan \n"); - printf("quit\n"); - printf("close \n"); - printf("ext \n"); - printf("set

    4. EXTERNAL Data

    - In order to achieve extensibility and adaptability to different - application domains, the new version of the protocol defines many - structures outside of the main ASN.1 specification, referencing them - through ASN.1 EXTERNAL constructs. To simplify the construction and - access to the externally referenced data, the Z39.50 ASN.1 module defines a - specialized version of the EXTERNAL construct, called - Z_External.It is defined thus: -

    -typedef struct Z_External
    -{
    -    Odr_oid *direct_reference;
    -    int *indirect_reference;
    -    char *descriptor;
    -    enum
    -    {
    -        /* Generic types */
    -        Z_External_single = 0,
    -        Z_External_octet,
    -        Z_External_arbitrary,
    -
    -        /* Specific types */
    -        Z_External_SUTRS,
    -        Z_External_explainRecord,
    -        Z_External_resourceReport1,
    -        Z_External_resourceReport2
    -
    -    ...
    -
    -    } which;
    -    union
    -    {
    -        /* Generic types */
    -        Odr_any *single_ASN1_type;
    -        Odr_oct *octet_aligned;
    -        Odr_bitmask *arbitrary;
    -
    -        /* Specific types */
    -        Z_SUTRS *sutrs;
    -        Z_ExplainRecord *explainRecord;
    -        Z_ResourceReport1 *resourceReport1;
    -        Z_ResourceReport2 *resourceReport2;
    -
    -        ...
    -
    -    } u;
    -} Z_External;
    -   

    - When decoding, the Z39.50 ASN.1 module will attempt to determine which - syntax describes the data by looking at the reference fields - (currently only the direct-reference). For ASN.1 structured data, you - need only consult the which field to determine the - type of data. You can the access the data directly through the union. - When constructing data for encoding, you set the union pointer to point - to the data, and set the which field accordingly. - Remember also to set the direct (or indirect) reference to the correct - OID for the data type. - For non-ASN.1 data such as MARC records, use the - octet_aligned arm of the union. -

    - Some servers return ASN.1 structured data values (eg. database - records) as BER-encoded records placed in the - octet-aligned branch of the EXTERNAL CHOICE. - The ASN-module will not automatically decode - these records. To help you decode the records in the application, the - function -

    -   Z_ext_typeent *z_ext_gettypebyref(const oid *oid);
    -   

    - Can be used to retrieve information about the known, external data - types. The function return a pointer to a static area, or NULL, if no - match for the given direct reference is found. The - Z_ext_typeent - is defined as: -

    -typedef struct Z_ext_typeent
    -{
    -    int oid[OID_SIZE]; /* the direct-reference OID. */
    -    int what;          /* discriminator value for the external CHOICE */
    -    Odr_fun fun;       /* decoder function */
    -} Z_ext_typeent;
    -   

    - The what member contains the - Z_External union discriminator value for the - given type: For the SUTRS record syntax, the value would be - Z_External_sutrs. - The fun member contains a pointer to the - function which encodes/decodes the given type. Again, for the SUTRS - record syntax, the value of fun would be - z_SUTRS (a function pointer). -

    - If you receive an EXTERNAL which contains an octet-string value that - you suspect of being an ASN.1-structured data value, you can use - z_ext_gettypebyref to look for the provided - direct-reference. - If the return value is different from NULL, you can use the provided - function to decode the BER string (see Section 2, “Using ODR” - ). -

    - If you want to send EXTERNALs containing - ASN.1-structured values in the occtet-aligned branch of the CHOICE, this - is possible too. However, on the encoding phase, it requires a somewhat - involved juggling around of the various buffers involved. -

    - If you need to add new, externally defined data types, you must update - the struct above, in the source file prt-ext.h, as - well as the encoder/decoder in the file prt-ext.c. - When changing the latter, remember to update both the - arm arrary and the list - type_table, which drives the CHOICE biasing that - is necessary to tell the different, structured types apart - on decoding. -

    Note

    - Eventually, the EXTERNAL processing will most likely - automatically insert the correct OIDs or indirect-refs. First, - however, we need to determine how application-context management - (specifically the presentation-context-list) should fit into the - various modules. -

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 -<*4Pf=GGMD0XDq6VVMqK2X>qBf#HQGHP* zk*)l0E0T+vhX$)25!Dto7F82<5QT`ki0X(s zib6&0MZuyJZXbie0UcuV0>uM#X!YUv<;J>R_Z z(CM@1E?m2Px9~yw#^mCcZ{nXBUT?UmOn9tSYaaf-X~)4+X9~_=ymjZ^{j~g~w=e#P z`|ZiA_1DP^#k5&-=FVTZckCgWxvbuD^AZF44!1Y-(~pK zu2Ma(?0%P#tGl5Gn&~6~TSr?uxq}^6SvuK@T{Oq9N=%GgweTx7bPEf=;`F={(*?ru zt0G9uEbP=6J+H)M*7G>Ix(O;tDZk3tv0lIP+KWFnpJwzt1Ec2|q36ANdy3KXG~ic< znEkE|zq+^P!3GPzI%wYS7Mb_EjGo8scX>`?5pZTYT)n^?d!H~a{=bc$?!bPshqa#^ z#qRzDbe|&3?q2AIyCHj?lNS){mtj9S4*i_7pIn0d>YC<`A(MFop=6s z*qzC`^{a_;5y+9D(-g>IwW@H|8;~UEGy{8EhAk4s66jaZ^jX4V*d_=yj@>s97*zOu z1E`eYte{htZ!&gg=JUUTZ~nK_sf_p$e-c0f$rp}6B$$MdP!dLJlWEjHmq z;RFArIKdF$3?q;|&1is=4L6)^_{ekElL#GqBGSR1*-5;jU(?L4^etVCPzjA~8l4FG zp26lWq!-aE=ry#P;|5wqC)2TxLmfYJ9OgLOafIVY$5D=>9Y1$GP1kVL(fRZi+Sf6G zDCnv5bb2Ozl%7W~pqJ3g=vDMOI-X9XQ|MGWoz9@M=v;aey^Y>Q@1YOS$7nsRhK}(H zcFQAlwBuR&0)2(PLEoY8(~s#Vw2}Uu-hr3$PSPjnTlCL#cgK75L%N85N`mC0yq`(nxb2W873}W_yA?mpDp<2EM4=Bcw(pwzw8F9S# z3@2N^ll#vfkcTfyUOpm!yjcTYvH?c3zj+SG?Tf7S2K(oLN&f}sfMh+lQ7)&)l6Rd0 zn(g1#dV}>jAipnyP4NHt@jr16$Z$^c-z;H?X%o1En)t}7%jO8H$e7c#G@Pd~H5TF| zEtM=1=0HEt3KI!)`j&x4nJju@FfwNeFUTt#qx`+kGv0pu&(Hh6v;S=q7bbO;%|7OqIEs+zvykUcdY24+UGR`I3e$+qb)@P43!z(D}Yn=PiAJ#Uqs?b%kg2uVS5t zx(uyy>-EOIe#cTbU7aSqdFvPHRB7<8@9{k`B6!#O@$ts*rN1EOE0k?+lyPXx)jE6U zNzW$E1>Cb1Nf%4E=PzWw8;&}^P`W6tmhZE|HgQ+fQ^Whznb>U7wl#69#;?@Gc zHk{kA)A(-2wbJ!*o_lsmN2>hW1{`SD_S3e5+73RD6_*{C9;c0~nVNQ~*`*xywz#cv zD%26FPG+5uY5dP6T$CPAo>MNoazmN!m+jYh`?AQmtO4;--_^>MzCLxTXS|U*D-XmS zl|56sB|V9ooE78u?TGJ2Ou2`js8?Q(YcD&IsPg?oc^0(}#gC1gpWih;K=y5E zokvR9n7v+^-KETEg{kDJ!cBQf2jvo}%r{qgO1fIs`(#IDEyVA|7sPK;5@l`WO6AY8 z>&o`Nmyf0;)bow?m8$Bp-;3k-pNfue9$z`Tc0Ant;zB;j9(-_c{uc$0ViSEnS3J~9 zr$jz~)L)q%U)Q&uuhcI$HA8tsIXCNE^G|jQWZz`Y$?B`z6#6K2#3uR31|uhooL1N| zzhV68xNbev=WfQolK!FG7=KUswXEaK$;#78v8sw{aJ)d}`Z zWou;nWKOBcotr(r9u=@n9{;uPH<>@kbb(8gYsNo}e;j{S`X+9y@+AqA&OX-ev_$Et zEQNdeso;8}B-(+Mq$# zrpNDA4vbIAYJSs2mZeOISNnFn`JM7xHzN)WdZhb!Okv40> zrr`KfQmJq6lW%>$XZ!igw?lqLmc)0=-XJNnhBl^qsG6xHs(PxXs$ubCFshOJzUhkGKc(j83V#tOIc);xEPRl`>SNi9Z-OIRD3kVZJ{rkHkGuCddDxe6IW^ zDlO_(_8sM+!b@=vm9M0#_(yR^5p*=?px}Ov1^-02r3nQ-H z6Q6O5bLmmk>8XB?(@$K_xv{wR`t<%9vT0xX_S%QikEgFee(Q+o`r}e&l{INp z#hCfMqee@GIiWep4A$^}-v3HwteY-tF<>txwqU_NqR?okEf{ zitu5^=?#wN(W(;Fl)D1|^S1~fN)RU0@c%lYwe-Ll>E>-`ru#4UZ+75``q!La6WS*X zNO174>mTFa4>iIPY9|EyH}_9Z2x7lK`E2;`Lw98fa{qQ&ef+=mzcK9D-8Koi4{GrB zTP2iS?3&OLwS#fZ+=QkH^Ajc~G)Nfkza)V?u9Hwb;S)b*-ly#xyX`~tp)PwDW+sOD zf91cxf1&?U|K{aK0wfW3IpEn#>b0{m&Tq=<0p{*9qzy#hp#ZFD3kzuvdCQb}k_zo*A3w2`>`% zB;@&D_fOX4vfn|n;|U$|Zztp=#N?m$@0EWz;Sk2^6O7dr|7ZTcCj`mz6At*Vh*U=Q z%4b^ABwX+pY&s995*{WTW9wW!mFu5}79(hee+8@BNFQevxH4S(8HBm0j zQzs@a-nr+9?$ox}sG*64+Y+}X`bz!d+}a16be4K#?F-l+a3FCn|GkfmBQLSz{dV{N zNF1HhD(+IDL3$-%!R|)+;i;K>e`xnpyGLIb9?g}`i_1IV96I+(mxg`wPoUgcJE`ro zw!gNWd*D{cltVS7oEF7U`M8Ah9l!6pt*~>_xL{r5tfp_e>mI}e^bB~^uw%iH^M?Z* zgSu{uQl|#KOq$p^*_bYGqfWY4IqRCV*Twl+nL+xEv(>GWP9_h{?w(Xz-aE+e@^|XV z-F`mh13%!N@DwiUf9YO>z>Z1vfo@6FPIpP_lvE{YTD`q{>jySS`Y7pfVvD3kNz$Yy z>ci^FYPDLFd@C@1pzPZAz=g?gk`5+cPHuO(?#-*oO9MZ-+~u-YQ19N&uiQzRA9yAz z!8n)wj=lT^$~0<)Iw@(8dVLZ>Pd_&*xWk1N4CQtJ7I<|1=_lACG5kK8ABIL2@ zepPrepKmKT7^`lmewjQ{9U9c?%0%^i^$2xNa$olTGm{!!j+M`n#|51Zo|{bqQYj!X7U%DVg_%S9b_#c(e& z(5G}fn0OCH$G(g3bnwGFDO_ z3F@P7p^j8blCuIkUJU-c;lr=4JPVBF``a&Yd(tmKRSz;Fpi2r&UR`%h-QL@RleZ-Y z#|Z=5sC&ls3h0}-Nj_P9WAx3@!yev9y3tBrkcD(=vb#E0-PSlDX>4+>WW3_+s9`$&2K~mI}KLWaLi%#B={8M1_E8~-UC5=j698@b@dZ358M)F4V=|W(u zE3)M8sENZ%eeLy~%AElFONR4M6d(sFe*_FjwB1J&c? z1K81Eo_m&@nWvZ?N7Z}PJCb@Qtx57q+8nntSuV{@3`E|S$&Zs0gSM%ss(K_%koVCi zsP$*QI#U;ItigCb3wj>po^m~?DCliONyPIZ@|!o+E8{L&rF%cPq`nj66a4h}ZT9;` z3zwEvb}mx=roI?-z4WR|{@%f>&bjjX^K@+Dz;%d)@DBZ7y9Bw4%?miI>66ob)1!SogO3L1W?a%V z2$`t)rP-8bQ=6%_M;6Wu4=WrWd^F^GNbSOu%<#f_DN$^_SAL8ha5KX}lO2*Dawz0# zNQaoN`rDdq!4EZ`g{&;h4M{ItA0j>?&`u9%xv9CVnUvBarB%p9&Cmls7OqWn)I^2^hu6`rPg#dL-=*x-Oh}oN?h?}b z)LhN2l#QBWnix%0%^=)uTFSV?y$hp)d!qN;?8gPo%|4rQCgoGj@Q{<5TAKYKCvOFY z%qYxAS#@|+jz^t=byggno;xgMcuN12l_`(Urlx$a$qdQTI@QlJnBNrB~ z4QB4YB4lb|a!%9WiJH!ByBt^=d{OgA^UAMJaFV9-*&h$&q;%JG(_BnhshPGTMU$W! zTQEj5IOS6CNzJgrQ|*2>4AnFZZlLke4iEU+;1zO0!~|d0=u+-#zSmp|9rB(YyqTHNPQzrI`{o zgO$`WDZ}tbO$4~TQ^lW{iVq19QE?b^%uk)Z_+w99NQ@=?45E?-JfX`FArJgzZ zbkn%h>xR~;vs;JW9346~wCg_Sto{c^h2~|90D7}IOzl>wO;dY^jz;+>skxzb(hEcH zr)~%h3`^;J`S{4N1!+6dE~UN>bvUO@ZF^+qzRhW~__7yi7t*rANcz&$Sl@4O-3;GH zsUL+!r+KFxO+Au2TH052A$4I|RN9Huxv5Le`KEn`cE1ZPOr7DoDYYo|acW`O0<=0T ztyS8WY2tLZ^v>xAQ~hgyoE{lgH|=)ntk4aiOb^1+ozrU|=S*siu*kHOv^QaI(>8}j z10RKTOB1Csm+x!0+*!1Qm@&ggu?{L?3g zMIlF=)+7DX^fBpolE16{dBd3vXEmIYKPA0i`pDAM&*?w0b=#$Xk$$4~x!M6dH&Ui)S3yZhp67pBJnFVZ*Fewf}> zo1@E2PfwpeVEe5Er3yI*)75^5(y!DmN!_Gf zd0$o?H{766O|`o3j?AgGPn7n8iJ#+pw1L0#4z$VTUtoKBJAKsUj7}SmUPFK4OG~ce z8C115VUL!o+EM#T`i9z<*?ue8*zb4(y0*L4RqLVs17S%BNv$LmYZCoWezy*8@-4nLT-!r?Pt{4=PJ3^xuc3)HHGM#Mhs=+)G58*<{Y*Pl+gdwX zJ5oDXyFKHLYL%3;GIhAxIykJb>DAd8)iR!IyJfr#pI2vooh@}nj@&RZt8k9$(>gus z9Itb}&V@R0hqq?z$e5iGo^dQglaZ2fO?yULqD{z9X832E$#|%Jpna+}YFBIf*4bR= zV8%L|c5Z1`Ww>W#W{5MKGP(vB&k8e&gBgCkEOC|gw6uE0X{k@fJ?#$d^g1&#^vBj} zQ^R}UeyQP~;(L{JYB*yLdlAmGyBt?~;L52Pm0G6loRl#>V^BsN{H+Yn)2<7D8E)x2 zlbTohB>gi48F#gJwEMODw4#g~tYkTwG9q+T>WlEcY=5~Y=bk%5J4KtTJzJ+BgDKsd zu?s!I7-SS`4`dw3NDV)ZIP-lz<66d*jD9J1GHz!qy8kr8m@zJ~_r;QoZv!UgzR5T- z>cRb50Y`642pASIJhMZ*JhOIY^%Eaw*3YaOKks6P6D^M~JvJobV!lIWWJIIP=uC0u z!GiV?{UgR?1|j`vH92}b|K`Jt{Z)Ts&>8jw&G{5P3&&&w6R!sN+ZOF;ynaz-H zkE?2;txNe7?nOlmWAplF*3JAy`hA3Y%h4l2(yx65GL`IGSbV<8tg4)d+zxR!RnsH# zBkp7}d!Z=^`}UZ7wu7`rIAaU_Mi;%eDDzfkdgj&0Bf1-zi;eptZfAB&S%#X=dvxmg zq+na-FO3zAQyX7soV_bb_GaqF>%v_u~GhizEFf(8s!l#*!ZZKL`Q4puAeJp*$r{A)= z+q`>s+AQd&8j>6<*Q~HCSyt1mmXRH@8fP`nYL@jOVzm=KjBJ@D&x*|Ip4BZYDuNmJ?}NTM z&?~EFq-a>ZJI{{wk8HoaA22X-P~_mO0sQwsHjcck*sLLu>VlD3BeEuD<)1iLSR$RD zKRWAnoJp#Uyz^*F)&SqLb3gBj-ja-9u+xGD#Q6zRg;%oSL;?xhZmTRBrZEv@|s`FDsW# z{g|~sYhTtz-JZDTb>HabU;ZU~dBhQ2e6~D$n$9tR*|FzkH%V@(J5~3U?i1Y@U8e2} zU4C{0UF-NI*^70(v;D&ZwRf^&vmFB-MkZz7iJDwr-{o2_V)ott~NVWT{kmIoqb4`8@VYmH~VJxV_B;p#`ZTv_dwTJ_cl8<>bLA? z*_X2JMYYy>)%{TS6>6Jxxzi~_vjzLAW*5W@>aM(OymCA1D0}a^*D^iK9+rh zwub9o>n7>a*?UaRewyWw{p#L+zaH5MQT-py4V)jCU@Y+s*!DGBJ1x6e_7vQ!Sl3tg zOgC3oQ`fIAsFjzU+kJXa5%r<&i|o34i?X}urs|S( zOLe=#zC2Z|bIkrBTM^}@>#FOYNN4qZFeU0=_LHdo zx+hWnbl*kI)ETqWvqjm0?3KFi=QFaq>t<#CT=#>VpMZMXp7=fYTcY#R-On1LOVvHj zu9?l`Owk4DUWT1a%T6oUcMUNhU`FCd0_2Hn61mo7G|fVAIut=ayMZT zX7p;-N7)5B67@=VN7u6UOWg_G3*DN6=Gmup_jQH3@3S9f>myCNtGY9&b4sVp)@R+1 zs;~3k)?N2p_er)>j$=;coXC3ha$IwQbAswcp@%=~q&cdA{?}^c_#j;^Cp;%K=X?K~ z37)9sQ!gmTvtDFQ<9bbU8nI}cGb6EO&iDYI)Mh!Ib3Vyge)4Ahh!Z&t4(IL72}!Be zUwfrX?&zGtTdz`%1jOdts`or^Oz!mD%em@2I&XV^hrqpiD<`Dq9m^@mxsda)-l4p2 z@+RfY$ZeGO?UlNkTY1;(O>TYdQm>qXytR4ja!fgSjo)kv$y=XuKIdG{hMa3TS99`n zit@(Qznu4ZJyHGVd7k;ZbNA#`&VQPh+~9|UacEDUvo4ppt0=NzZc8b1-ZMTgAb(Zv z&b)1TEpwOU9m|W)Ta$Y;&yc$abzE}2^D5o&%{`Or&|pi0uzX#UuRAU|F*xUR?)PVF z{y(z51FnfB+M5J>?_Cg4uopx`KtvH#s;F21L5fJn-h1!8UqultD1x+*0wf_20%?Sh zkYv-do1S3r$~POhzWd%6e&?M3DN}Z{A(P#iIpycd`yq zpKrY1j_~|||LvMynp--q%()C()}Z2*_sO%A)s;t-e<;r@KUhAjJf{3DLsJ@Fwzw># zG@&f4w6tt;8LN4O`||P`6=mh4E8dsKl`rBfnTNJ}sxq!@K^dv+$Gqj`iDfbKuC?+@ z@0Cxfcv>oOA6M~`u*`jY#Zo}sDt@?Uh=0r*QQlrYsiM5BstjA+`6>NeKBnwR>Elvj z*-xjY@(~rWWiDmc%deGBD4SW%D4kfwF2|SY-44*ROCv+~gvvM%N+aADV!FkLNjt?dfo?dypyF%=|p<-i29k|2Edy3gKStfQ4tq7|)F+Z9ldXhYS-}KH= z?Y@eTipGj<74%d_YCzg{<0euxh!B&|h*aCSw-cQPBjA70nTkgaoln{xIh?mWal0}< zxc#?7Mln%*5un=@IrH<|ZdQo4Oip)6pO!w;bPMPkRfQD=6_phg6{Qt#z%#w84!cWR zD)v?|D&~fSv&PMeD~g{5fp2Cf>bK{8TF^UhU-G`sUy4g|TI`|3-NStW_!w?7E(zz2 zTkiZ5=YktuIRn>#3oCg^|5MQiHxQRknS+~+E6l~>HhFx*>2Z-M+4`^Zm7wJJie)%| zTrh4W&Wtu@&**2sol!bYh@;|8;PO%3;Z4I!+*;fj zXWKnf+-TeykK?#}zpYC?E~#nA#|_SZflI-Coxd2j2)7#Nx2Q0rIIBF1VEv5yh)Z_x z@z{j>f%^`QuP5#g?l&$kS2(fl>6piQ(a6dXl>=}SD;+BxD#uppn%$;`5_UeFT{&yP z8j(N4)9WhHqjG+w(kYHeB!zC|B}=taz50-j;%B@_UNCy$8RAPNpYRB8k3aKxWn~cI z6(P%$M!)`KTn=$o*T}@Phl!35XC3Jpr|c&5aAy)W6Q(;>wX?r>wlK*9=Q3gH%!OlVseO!Oi?Bz`1di1Ucq z3uttE;>QIT(0&hcVC7)1k*xQGoeOz{S@s)2X|2>|z%865*3j*g|XBQE_ z;9Q5fXNecZ>o}vSOL`DqR_0aq#rGlh@{GfeYdSh_1il7eOT5d_gD2)2 zayHodv>E?t`B_F3VPz%7^C?kA)DgZA29g#N6Non|vswlCsMeH9x2ZEKUsom&1(l-+ zS1ZpDk_lS~33&h7N5nBXr#(S0D~A$SIbexP@gqp3gm{9PC?S6H>P}iyyJOb=BH!}V z%5I*C{L_RW;yqOoUQC#>>W1c2<*Ulmo;wMfE59$?MqJ|@g5Tm9OkCjUOl%-LCX&34 za{A!Qh&mz}KY@TDoWiHzClXo-srXe6hY9=fIh6>WPdx59l0_vRBJ{*Rtz6(KBKR-p zLrVAJ5c9keT4FqZ64UTw9n{X~j0N`vSBZo1$@t~m>4Z6+;mmk^Ibn-u8^Nn`=E6wA zG*AXT`v>r?1cb=+=@>pNC*_qafI2# z5;h$BWCG^3cCpeH|Jm(Tm5(j#YB%LRqyi-ZqN4U*Zk^+n%U6UNH&S){s)XQ%PHFltK!9+Sm8k;^XAi*+<*a-*)R~ z?j&`}9VGOB&R!eeMVd2f_3U%>1El?=67N#dBG=A)my2AF*zRG@EI`pwa5pobbdQun zDk5DZy(Zlt6_d`A9*}O5a!H3ksYBi+Bsyt%iC^W%DOIG8Q%EE#iQ;Wuk_jzUl#{%j zU#qwz4yklip~#~kpC?g_Q@yvQ^t_TQ;gMh zH4|$#lFh!|Sl-&ws*?smsuN?28KjfkB2!dr5Gk))cKJFlRCEc11xjH3J^ z_oiI(jaYnu{uI=7wt6kOIyZu{mb|~}RnrID{%U>okLtzbGvwHsq8ciBMokg9m#>2S z#AP7mXN_;ow;CEbn=B>kecvzsOwJ>pSbS>nP|7W`e|2px&1wD1Lp6V@de>~NIlU&Q z)#xLshRFkbdr;1jzf?PukCI(#%4$Z}uxgUXcNg0=x{+<~_~Hg~H*$S$V{QrgaLvd1 zx?H2r{px--6sKj?&#N+~K{W?!v@Ym9_nhkPH38LktG-pc*Mu!nkk40ZT|O@wUX$fr zun4_!km?!ahl_epJjqYUn`gfAT^!>l#gNgMJ~e$QA8PWdxw$W^a;sn01XuU0nX@@a z8Bxv4T~U3hI;rYo_37%m>O@MFuYj!b?WmEEL!NFU{~-4v4<`TeLC;o29<=y=E8R($ zd!78aYV*vYw)&^mtgM###4Ddx-&%4@a}<<*QI$!_uinDnOP=k#yy{PlsrsvrE2X_A z%x|sVR?0HUF;IJV${(_coJ5IPgr3C>l;`AEKHXUInvpe0&fuvf<)F{%>Q&W}nq$7I znqf7?)ratBYtGk1Qu3=-Rz0pp=MNpvDWmqUSw?aQSv0%4peknZM{+cv=hbVgPu93l+G?Iuqvxxy?{RXcJVxHS2z?K?E;<4DahrtGSo5VSwAzhAseV8Xs$NrFP(8(O24y&< zqUxw`RgJvrxbJMrZQuK?k=0>~de!_>jnssaV;1RsKZ9Px*wA}&)0Sb{(=|V;U~shH zDJ@xD^Kj9Cnx9qYd`8rSSEKznMQ$N~t9n+ooE%8rMgHm|tKlu4LE$Z)LXnUs7Y8qX zOMXbst5Vi%cNA0wkQKgbDVr!msujLrl%ZrpO*rL9jkZQnQ(v>v=`Mvq?Xz|4))hKh z5TogjUy|&IpOA7Gkd~T3ML(&|RfCpJO-O^;&QRV}$`#5=r!2~9>Rswg50*#g7{+ad z3omBgYl0gm0IqY|YVxexNrc!;Dv{0!_ zM%I3!imAV-CDdXHjq;Rw5VT#XmOFLM*C{ih0xo>M&q) zq3ZlvsL`4#KeU}J>O+d$sh4e*#~s`qoPsiQ$#DK~D$66^4;^7?DaZVpC=t{nOHNaF z+2{xrjgJJgLVi-W@^QYmG>>dGfR?GhDHh5V{d6*sN}yI#^nN32hb@^y&8Cb2J#Z-e zy5c!Y=jTHmvxG%`XQ}l=kIqCHLB&m;+;D;RGV{6anj4knUAX27Rc-1bb(D2;Ib<^7jl%nh}XOK%3< z4I(u?B!qRL(At>V=-QL7u|EIQ4sv|*q@wh2?USW1YIoP3s6Af0w%}=PG9T-cTzdf6 zE&%?d_DyYJZFAlM>A{$bQcCS!+7g-v4OhEj(uvaFwMV2=X<4*wwDZ!l#VNG!wE?s= z+GyG`nm4V#|7EGAmQg#3cKK~OZH@4X^xM+QQb+&Yv_rH%weM;N0CbGDn8vEjklvKW zwH>70kS5c%(+IU6YNz;Tx8ZBw*IH{;8uS@NM!`L4j&&n#1MRTWKAIcNT-#o2?|+MH71*QM2Q{dd)w zxWRRA>;BMo)Ge>8uIs&Q^RlOP92%SU68OC8xOMK!7S^G6r@?*o*E3(duDi0VwQh0U zEyi1#nUr0}^he`QE@RZ?)}5~#yezS95Fmk8<-f2_8BG7) zAbQZU!F78;Jc0iYt$Q7-t^~Bjr6tupufx~%2Q`uF2G+gzZ><}!ECtjLdQ^9vwzuvb zt(bP7wy&;v3Xyge#GR~@)cMqHtK-omAo@yO0lVubx_Z@z)o-fb7_hzmDXzewbDrbyX0Ius^KD~-t}k#1w9S5824XfA z6gVsmK<7io+Uy{{KBE5S3jt|s{g(Q)`jmQaP%E~0S-{46rE}*jiL=0#UcaXJbbaVc zrSneP%!va5XX;Pa?*cLCT#5@_@_hZ(fL`(|fRgA->8|t*^#1h1=B;!$x)Z%G{cT{9 z?oa&|`Zl__K7o!t>5rX^r8m|G(p~67>C5R0c^?BvR_3A)fXCB+)PJupukVZ!)~}?` zqW7A+nqFL=TW_qt{>*{yO&>`wst=$W>L1s~(YMok(BIU1(?brxIz3JNmX}l-(sq|^|PxUSJ8T32#4fTcfvGg7EMEYX7FI~=K1VnGX8^ zZu%}d&sp#G%pLvah**3mFggBie2Gf>gy(#Ke%bQ`pyTvQQgr0Ck93W`)A?{7Q+kp9 zfZpPCot{h2q33(N!8zhe0+Mt@IzEsUIH+Kp1mLo&!$u9i^3BUD&V_} z2D+S{I_0oc6L<(pSj%jc(qZ}pRvVp5UsT8gHW57`FMiEzVTXhBlcf!0XJ^j6hC3VS z;;<6O28RZhhRF@H8~6>=m!ECe+z{a~(lJo9zBQ(ycf-5qu?ftlXXeB}Bt-7*&i0#udh)DFXr|j1)#T z1JAgU_lhB86#1dw7}FZ(HcoHsSpIMPfW{cc+{yw*65}_6$LQ9$gt3k>k};%_?n+!i zVvJ!Z8T+yhW*xG2j^8Q7kqbXHjBXsx_)0^cZN$9My4o#d(RB=s?Fq=5H!pRO3|EF7 zV`E+Qyy^0NpyW747N{v}1(AVaOlTa!*vPo8J)1Yf*258u-HeBfe;8jHnyH@}>a6P- zFRG&$smTYDUuieHK78rNNMl?EJ$G9%tC7m+SiX2g=TUkwd>MZlP`hKJH^aNptFfrD zys@A$xA9KF?M6}K+r}%6fn_C)mm5ztIyN0`eAT$GF}pFW(Z4ab*st+)qfcW(t!#RaKh_x1 z^sSNI_-(n=1J|f?}Hzn~H+y zO=n)u)n0hr)Ku0~-&E059Q3v+Y-!|D^!p8!H-W5cDrh1$H8eeH@~NI9S5C(@?FHqo zgUIVa#Z4EQt~4p9ziE2b6@RyBj~}DyVbf(0Rn+txXtbu2P0I_6L1EJAk1uE6Xm@b{ zGu?~61bu5#Jg$oBBNYOV9BA^OFHJ@!%nS{F%iQTynjgsA%Dl|H;B?7p`TWj1W@{eT z1>5u04Z%wl!hJd4xHtXmv;=D~@GlwlViJ+vd+@ZD9GaiXx2yKh}}p zB-W}BSa6fs&V0#S!tx2WFpmVUWBD>iu--Eb!5CHn6Eo>q`zKbcp3x|13EEwTiE5WM`5m9I;WOH<Q$qEkN3HyK%AHq|n#4zJKQQ<__Qv%^VPbpiV9Q1pGs=eTh9hE^Mfb0>4X=h(Y%b_aL% z*#=HCyDao8XIt2G?lf*P=StX}uzb$XkWrxC_%ID;Hn)K@i;J$~_{p8gt!4{2p}^Xg zdxEoq(+%`#cc{n~9n9Gm>bho#Xihj)H;)?-Ha*;p>(1qH?uY6)lelxa5Fv>pVCU&) zaPNi9=dKGa;5-OL-+|feAX|$!!X|L90-C}NEe#600{U4{}%EcVJ2q^OavM90y*o6Glgv(F?*#cr(Q9rGJC?mY^aT41`y_im`+R6< zSUl$v`zkv+)D;~2A>Boi&`TU5o5`+bx3cTl-NI5iZ`kBeDZ3Dye}8ZV zK4llP3G6)fLpF*1mi;7@$1Z0#u*K{)wuo(JKjeI8e_+elze0y|5;$6R4qMLt(se9k z&Uq4=S=5}$i<+~{(e zyDfYlcQ5y(#}h>qKxep@CZOv`j&T#XQQ_OTd${MqFNj|`EiGEl-39RZjTgkn!_V5} zxt4P+ce&TO*SMFs&$utS`P@A2V{R^YWzIpTJ_Z687f#}p11jRyhr`@DKuYfBobTM< zTr-yr^m=XqO~U=bz0)A#zUOWXlj_CX4(fu6Ud=t5`!@G!4ytc%EUD~<%xZ2F%xGpT zyrFSzp4iMH?rh%j*1!3UJY?10Rdw<`%|6XXn*D5ee{;&J>}F@zf)_uLpHq&$N?w(= zYFl%>jjsis-2f*8OLjAPnrlgR^V(G@tI}6x*{o^J?_PQ~&zN+$IkkBys4oQ69SZba z&B4w8gq#L+viV%|+2+fyi<|dF+~m#YJ>W^2^XiL@S5}dlEA#l?g`zQr;^r`3I&UGb zdqmHOzPtsF*KyaL`y-W(&tc#U_M zcY?>|Jz2Gnw}F@6{G~aLComu6g&OM8_{Q>ZTsVDIHIKfE#Ou!+%46~(1GmwGKntEc z3U3hadW66@Fhao#ieT_8&BkUmFPlCvg3lYqlk&Fax#zs&S$IF$@0_zBRjs-fmWxY3 zNKnspLxmB1b&INn)8hA}G_tSoCjT9OesCRgzmpsP4u7K1MG*Wlfx4EDe%ozfd$#U( z>cbD>-{uGMA3Hu5G`Ec6pPF@ne^2m~zd`W3)x9-La859MEm2?$OpTl^?B-cS*xSmf zxl?-<&)|FK|)e|l4-Ahm8rW^v{K>&>;FT5I^#{0*%SD`T982`czKUxqpNow-Wz zyQPPqVir1=C!m$pQo^6m`o4AZ8lu2XxLAmu5&UX&{NAsXz3yonZnA>fi<2oR5cJGB z8u=@7kZ=>foIi&jCHT(&l2-xd1X)@$`F>y{yM=_C0%0JtHH+WSazPOH(w&gapDak? z4;Rpxfr12qv%o`9Y!>=T`oS)=RAy zTer6k=BM+k1m1#|tzhD-Ggt6D*p78e;2``Va1(rwOoLMRXIq0KvBDrgv3zuHS_U8A zg6Bu`eOk}A#`7PxxV9b>bQ6Ax>?72)&RvTh^)^8qKW(j|^=^x_U~}sNfyHIWi;a97 zcz0Lvr?kF}>@Un-g9t`8tqm~>z6xFg{rl>^!p&=jx6T%zzf2YfeH3&)b?HrVoRBwr zQnRczl|RLKzFM-}V>{b00!C6A!*UV^!6kAnV; zX$^`D7VHo_Z$Yn5?&_h!U6G#z-&dD{w%-c2q&+jDalZuUeV4mLzF?tXAb(q~F)*I5 zY*j=C3dgq&D^Nr(5=J^~62=I#N_x_?PTdL)wk$!$GEk!?TQa@sJW-1XG9g>AFj0@izM@DiPCYZVR? z5rvn{Jpg(xJUM;0aIR?5+NW(jH#m#FwB1`*zHUUDeY>~lMO$6l4`F-TskT9)_aMvn zqnPosnW94BiMF4@R^h(3;PsB8OTvr7Fw^aIXw660cNa0*%xzA<-d}V~ID; zBs|i#FElgEmH$W>4|);Y_O0#fTh6+kqWkL?inwjqwkF~2bph+WfbJ?nk%!1CJn8>X zx=gfGL{*`8HGCV2Cmnk>STMUXaWc9Rq+kBmH;I$i0;FnAca9b9c0t!jl;);8M*|!K zaFQrdBo%pRvc)+fV_t=5otQao{PZT#DDjY@w2h3dur5o)_bzSTA^vU+7jFuMMTbQ! zkxaB%+)sR3R4GzzV5yX%EuwmnSi}W*o_LeEe1n^Kxp>G%e{s*s>Eh3#Pa=<}{R@7* zWrzlf2Z*&B{KW|SjL1_QBDRQNky?}_9xJZM(QX(bMnvPqODl^-yTqqN8WCOOE`BHq zEdN@bA$lW<+;~{LOPu7qC9nU~f?`jdC;n_WI)XsQ3}EyiriwAeG;y8y!A9c7M)9qU z_2Qd=1}vwG8^qUaHl~;@=7_5|GQ|5EN^_dTTydqiSxnhjE3Oj1-N+MPo_}rQ15g$x zegR@w;xgd52slN2MSK<1b_>*YM|=->t3i#R9dV&JS4%cH4*}ZgQ_5Sxvs%+(z@r)BnngsksvapdRznHq3mcL)Cid;(V!+sU$rut3S~%Y zp{9xHaX$1B`U1(JJ9Drlc9Y*jR>%TLAQNPU+M##Q zXXpb|81)Hy1?X7xPiXEljPwuGQ~Db+1oe@Qk=RSSNqb0pNjspgkSS`Q6o$S-zo70? zB7~LNN&8D3q~oQ(qDDx^L{FCLq07<3q+_Lnq%jZ+#QwX^DQ>bD87>_qErafQjF$G3 zR!6_oe}l$Im7v@YsIPR0bg1-#gar+dhLFZdU8RGiPSQzI7pW?0va}SMD0PZGSC5SyDPQTRKy^ z4j@C+Txr^KpUCfmc$fK7DrtL^44N0kgNmS2&u&H+KjMW`dgEME!)O zgLWQ7$I5z3Mb5no;w0tMt5k5*FlmFswP>aG3ZRkF9iZ$SsfY9=h?^jtCj}ePOL|GL z5_`#INjNk}(oZr#vLpH?G+Z)5vcYYnWT<2t)JHN(GDI>KdM}v=g-OOsCQIf@#zuue zLdjH#qvUJUOZ`mAG>NmsCu$|MMB*WdltfE5KO~NuZ=V6f4;vSu0s5nHQA} zt(KgToRTCn38W2uH=v8P1G@nCm~2mC5;kD@>bF& zAxml{Es{D3PSPMb4X%zVu+`}oiB!@Dyw@g)PBIL_Kv)Qlx(rz)%BWwG8<16U*W;t) zheRtG0LdjX$rR`zGy)nAO^9}aMnbBnG0G&A}LGy{r))1! z3={_CK)axH=nmu;#Alr=1arN8{iG;gEZxaJQ8>rJw#$P~7-Vdk;}C@I_@LXl8Xf(i zV?Wy{P#PuOAU!KRmotsFN17!qtu3#;C2g#AX-|@>0X|9pwzNO34{bJWI_;1&oOXnE z(%(n)d);`MgKWbj)uahBN7;C{i83eIbeXGcs%)BUw#->}d!jLBifqtqbZ+r1**uva zz(oMhm(7rE%UK}vkS&zC%e-ZtGB25%Y^iLCY_TjrwoK+L+wYw8)<<@QK6I16433#A zTOkXQ)l6@d)=cM1mjk?7wo=w-Q><*2EL^r$27Zl(t&t7cG)cD3`NK;Nh!2)Ug4W-F z)MrEjHG(sC(LikFh5Bq>E&Ep3u^lQE=q(o!i+ zS}SG84Ba$N)*!8y4w4C^JgG$55+jsqr533v=4(t?`v{p_DwPhCiKQy3QmT`Fit*8Z zmUfr@l>U(Zmj02VJsl}K8T}v{is>WkDeEQcFB>QuD?8}-hms*nlWmu6liioymO0Lt zFr#ywg+g&cc3k#S_FT3{wp(^xc2RafPTO=@UMee*otJycivbRi-;jS-{E$tR50amd zACO1NAIK5eMY&(0Y1LTXm4K`D?(#7aJ9!u6pJhq%Pk`PsZpyFA3!D1LNwRSH{@ADT zI@vOLt~^oxP4-=}T0SLqn*2iSZFw;86mI$|dnW%PJ0(9U$G^nO`o(Soo}ZhFw8fif zvRCria=C1Vd|T`V`78N%*>iaWD79aHRQ^zYHTJ%|Ound@B46X!x${M-yhL6oFP5Xf zKle7TaeQmr4{CpQJEzzVJP`2g zQtVb7Q0!3bQ4Ehes5qpEQJhqqP#jkrQyf+tQH+f{qwr9Sjyt7TRK{{Vt@s^#P%#8( z{eayo?uz2P;-ccRV!h&m;;iCb>^Vi2;u2`sy4;R{T+T4r7GJMh+>~IM!8x!baSk72p}~2qe85Z|6K(E z)oQ1Q5Grn%6Ny)opan&e1N}hMt9LcWp5w}%0inBM5uJin@XM%?@Zd9r~RfRDw~yo zsz=J@Ds&YIRJ2^RK;;v^RHaoq=iE}AS3Rz{6Q85Hs5%gcKF`dEC#jUrwgR3XU#O~A z(Ny?&iYkP6TeVi@Xh=}uC+)WetIn!6fiefcGtd%M6=AT$def%(JF4xVgtv1eX?uLW z&39LI6qMZ>pP?$BehE4nk5>hVj;Ic+DARMxn&O!%hK-t3+zl#`)V1#Ay}XwA(=ZQ^ zB>rdo8Tc%G3AUSveR=^t4_}1&@jq26)j4>(!-*WJ$}!<4d<{-4y$aue4eI~y32|%U zFV$W6GJG4p0?J50J^$PLPE`!QhVQ{|;Ae1jLOuKdegZ#&lM)Kxd^iuj4(Gr{a8AMt zSfhFj--ip~f8bXzQFGoe4fagpz$pnVm;vKp8e9$&U^e^~#={ht4A;Q76Z8pAN%NDa z@I#mcH-W!Kc*?{EmSPIVq^;N;uF#0UfWhMH= zbZ25j((0rPmWQ?+^TGY4k*j~eWuP`8+ylWPzu{#`-{Ahp zY~(5IfJDxA(~Ll-BU6zvNv-f?WH{o8OhS$(&PA;7SY!q=6B&oRNhpC`kTJ*v#0jbL zTe&1iGZ7gLN_NxCK~h9#;9sy_Gai|OOhazL?#SkZdA6t-n(l}nvH(%Rci?~}-be== zkhBQ#MBI>3$U=mlI1TYdb|rM4xmkz@G7@>5F~~Y(De^n97viglLUeEvl7=8a zd!87Mh~ZCgBJv$hM&gly$YVGi8JO4#A5Tg^Qf%j0pMYLJ1AuQCX!BCyHY6L#?D9AP zPZlyGfdfPEcH}{V3I3Sy4c@HDK-PjI-S&y#1%Q5MEd)_Lh9bBafV$; z9lR5n@^lMw-fyb9GkP_=6;Y_4!Ml+?h)4J;ZV-}+I3rP@Y>~PncRc7@Fv5#(QGw52 z`~pp@N~RL2+EikdK=oDiL#0!}sv&BFN}~$Yd{;$jKCA52&gx!j7j=NTzj~P3Dd9-s zDDY17RyU}BsRyeEskd!ldN8^UZ6%l zBMItx>PYn>wWm5(9heZ6bQsQ1XR7_wi`BmBW#}~tN2uM^o5ANQS{^N4-+L zJYj`8R6Q#pMZHixBf%5iqb^iGQ6Eqn)B_X8z^~L+HCL@s+ryXDUhru(Rb8Tfu707} zpt+;Iu4btV)c>eIYi_CwG)L7B68zzV>U-)jn%C-m>SyZC_gJAhsqPEER3B64sXrzx zgNN8Y6GpXI?WuXMW@us)+ccHxJDPWDMD4T+RtIa^)p|7{0ZII=sZz_-E$Vvp7qtsK zGRYNujx1`DnxO;3%ZW`bt7=9_w+X0&FDW`$6Ez(e6ocmlj1{;nAf2f_1T57-U9lsF4s46lU~ z;aGS(yaU!bggc=-p`mgwkO2;XIh}YPqDKsf5iud>w^$G}au#sA;xEWY+*jfzY%+F5A7eMbW3+_2_V{*A=*CL z~wkx>byJu z-!&=!^XuCzL49q=80}E)AnjwtSnV(57;*wRiJU>sfgYbn!k-C|t6QER4A9#f$Q9%! zatpbH;NIRt?t?zRL}Hr}qyTw?@R4Uo9+Hc^MrN5xwv-};2pg$Ek|z=n95U4ersN_d zqzX|XETnu34N-!gHX%%;6=_CV5CJ0JGTj6t zHW1iSf$f&-=$9_Z^FSRj+Bs8hzwC_Jrj@%+dg-XWi*uRcp?#^1azgZl3S|242TAUa~1qq=IV`G7Xgwe00Z`Tz6;tS+|2J<;AXF4tBjS*jbUTcR7Y)m1mY9_5R4pRBw6(D|`7RbR9}lK&*T>UR6} z0s2IplMdC#=$7fuiqT)wt73w57~NOxN9{~qLmnD6R!7h4^mywUrxTO^XRSV}h5lW+ z->HRlt>b4*U#(+IkI+Twb~sI)x=9zKTcg`(!)tZ)ki@?;BNB8a0dMIkx>@=yy3DQH zb?IBTZ`A>w33!bzkbQpZ$o6A^Ds-21mvn|VG+nihpkuCl0qD8zF{4qpBu=W6=`QLX z>u%_F>9WG+aIfq9^B!)1b;UZZPN(absn;2FMi5s5exa1=OuB~~7&<1}+Ey0uvUPl& zSSPpDW7S!7?{)3E@a%~8pSsUFcK&Yt9{pbZe*FRcKK()cA^i#cG5tyXDg9ynas5&K zS^XKkXUaMKCH;B*>sgf2u#C&(}W#-bnp({ppmpwBgnq{R=%tkJa1jd+NLEd+2+mj4}1m57uwh57iIQ z57GD257ZCRZ%=76j?#|=J@V8$fj-XByXnX2myk=TF5n0z>%H}}Ku>Kmq4Wzt@7?u* z`VjqUeVBd?=+9bxsD7tD0rVqUzfr$Mf0mQ3&(Lqv@6yk4KzEz7I(?0*jz)K*Yt~n$ z&{G&GJbjD)UEZvxe0>qB>s$3)y-+XEx9RIrM0y&aqLj*%1`sLM(`}fZBGGr&h3@6~ zZ@plTJ3UeVMqi{a*5mYeeU+Z1r-1TxpcF$d*Z<@~`nQwO9gp5lRscT8u*HyMNH(lD zq!`i+Z7b6aeGD0f4=GuOcPW{McD)s#U4}=79fs|OZHAqO1BQKu38{w+F-dW$dkqJj zUWJ?WyA3gh{f2`EmHx27HTAgRsNsa+h+(7SF++LtDZ@!aw&8-RJ1BG7aANY1)cGJ{ z)ao;aCRPJ$t6?Lsxf;$J&KkBFt{4QYRKq#LRl^0tCBtRI4Z}6Vb;C_yxn(HhX<1tg zdklKLyP?0~B51!iX#ckDD3p4QUY!zQK=kuc7a9zDAA?bE(p&Us??31r41e^$^}qBT z`cL|PhSdgijMU9Az+i6}Xy~3g!7$h`!Y~x{c9daAs;gnRVVq&C!O1Yiu)we=HQ3-` zSZs(jEHU^SybQjE6^50D07H-=#E@Y4qJM12F=QAsjm5cjsaeKN#%;!I;|`+-Cn0T@ zai_5a*rL;p8V}6xTwi%$KHav?@}Tjsaldi5@rd!5ai4LIQJ#9pClVT(6sewmy8S29vBDN&_Bkz#{0(A#vJ24 zREaKgD7Ft!>XgTf#-v=}^$%?4Sj+`uyk4E3qeMv)=Zc3djMJ42)~$oSr1F{lmc#xx_w z*6MmA*7(iPVHju}VC-+~ZVWLlHI6oxCeJiZ0!OjHIKsHZb{?i1J&pcGU*j@kxG@g& zY>P43m}D%n-SMHvwi=(9@ezC@*LaL4GzyIM#(_M1M4b`69|Z0b8MzTGBh$D&<#ft$ ztJo+qb~x-U{%&kHV$&y@c+OU%ub$^@G$O`m$D_rt(f_F-Z7A>@sZ=$i5eN0oCPNxF zeW+=y>F#{dmd=%}D4J|r<9dI~ccd=AueQ_T0#?0_`HQESx@pIIQ#a2wp?r>Mp~=Ja z%kdd&M&Slim}$}am8O4pD_KxD*x{jSx#^Jku=$8N%S94<&9BTafc=p<*(5T(Fh4QdWfYk6&CK+d<|b32nPe_DzcD{b-(#*Zod<1{ zn@h|U=2CN+8E-B!zcu5`M6(yDp)#FfzG`}HZZbEd7nm95yXIQ+l#FU~gSmf3y}2Kt z8uQ+aIy2o&GtbJPnp?~~Gt>Ocywen$!8P~F;Fz1uZ1Y(2Q!^{0XFK04GCw!xnLno! z%xz}K+-hz#i_HSFFr!y?PP@V^1AkJp-2B*FWu9!lV!m(Im{n%AnQVSwPBbY&f7{Y? z%!5FCJJQdYbGweWDE*;1$`ox%Fzq#^n6gc~Ob1NIO(#uPOgqx|nJ=1dnr@gbm|m~D zZi+KsHeEBlF+DJqnO>Q4OwUbN^Fz~SbEf&Vsq@@{yQXHM2|X_x%r$9L(*g5b^Fni@ z$=STXOffZ?8q)2|IMZ)ai%DoQngk}3No9gfI+M(#HoXI95;EycUgl4xR?{YPFY`ci ziutQ)tl8c?6!dy8IA8tEL(IL+81qtdhiQV@4V;si<|*J) zPPI+}Hj{Zzri-;LbFy`gb-s0;bzGL4b(VEm=3MJE>ul>xD{)P+#nZabO0#%d7h8W= z7FoTlK2}GIpVi+QXkB7`Wm#d3%?z+^0<_G!(i&n7x302=Sq0i4Yj05V8f$)LsP%Q` zbZdllwN;*sj<0nJ*;WgwboRtfSPXol)2pc z5m1J8o7E>X)9P;RW6id9Shib<{2f;CJ)Sn>KdqH#CRuk`ldY2Eo!0S|rB+{S$PC16 zFr%&2S-zM*nLn5ZWVTs)XYR2ST6$V~Se!w>Ut5M-r&t^;E|wt{N6UE2Sj%tAa0_A) zTV`A4Se9DcE&i6p76+@hWtC-(WxO@Qve~jJGuE=&@-g$1CB_nO*EKW7Q-{A3kc##s3l ziKX45wS2IAv;461w0^hrvktV5wT=S2d+vR?cSXsHLstBxE2<;by$n>_XHA{bOg~^f zZOylyv|hEIwJvhVezl5rH{_J{x%HW~Fbi*`ha_z6oP&#^SGL)>1;E}t?}JBS2)afc zmBm1I`d@?Dx&>Khppl5+1^Ln*S4?8KGuG`{Y3le_HFHF+fTNiX-~*L)gBM%NA9_HbVo$~ z^TPb?*%#W+w@0<7wO?${Pdhq8{Z{+!_G1o@!MuJj$G-{vBp-8l2=?v-dw9OZOxnRhcf9Xr z*I|2gx9b5=Pe8rw`q=fg>jzMOKm+Us*$uTD22e-G2)j{sV*nawH{O=@r=w$%oeRkL zGtHLmXSUs3J9k^$d^=A&ZyW09@BwnEoxk0(E*-5Wz=oIGt+dGyyHLAuy9m2Ac9B3| zZx>^;ZnE)?j##_RHk4$y1<0*-seq?<`Ovzu?6UuAI|17DS3|uW9eeEd{vXT!zxpA7 zj)4Tor@Jg?fjkeg(pE$X$NwF+Pwb&{tzUW%C!UA?gIP_qPRuUWE;50Ea<38|`0vXIw{z-exfZZnm?4 zlsE7GzleV$|COKr6Y&)!%=rlt=KQw%gXW(GS+9G5+}ph|9UXlzeL?2z{vhKuT5cd_ zuuTrN@nIk+<-o*g>16uYUTfl#CXSqO-y?Z6F z1_KJggkr)mXb$q#m^C1ucOHQIK%4*CJ38Y3 zga54~5rgJ4PsVJ;qyTR!CJpd(44Roa3!rSwc3YX9m|ZscZz)vn!5jct%u#d%@S~XH zfSEap7sg3Wgsa|Lr1bIpd)*z120s&#bSz})Pz+{WAm=-yxdgTJUV@*kW2 z(8eEO9s~IVP%faSHd|*@9wr}X&;DcS=y?9Ww2qDf%qz_6|6}VcUHI4f2B4z9TBr9d zrUY2ZFy)vE3;|OGa5aXEq5Pky&RCRFF?C(O`oA%BfEqAO7!HulT~;23j}Zb4rq%&2 z#z-(wmq!YutP9IAN{k9%H6Trw4SYrcLI7zoI*bWp?y_4jRvT*X(m!;`k2d+KOZyDu z7tFUV?K_Y^Z1^YU7m&XJ*Pi!w>>D^`RgYEm*-yfg> zUD`nGAR8L|*W1xC6g%QS8d}>(n?CCQSV#ZW#{e`II}SS@>tM4v+PKqS|3rYCv6Hc` z*l7UGz|O?Z#m>Xd2Y3M>PwYah7mz-H76C$EzFl%Lkbc;ufcs+ux@@RF5a8w5AZ$30 zt8DfNz}EnZ#I6T?19l@e3LA}$!EVCF0zDp^fK9}1!6pNof(1Xmuo>7)fIDAV0A&N( zj@^OX`PaG|y9c`$X!`&iz#haN#va9)JTY<#^ z9dC=N#@1kISUQ#oG!~YPZNc&Z5@OqIUI|tTq#UcjDzPenG+1y09ILbW41k+#$ZX^2 zaa*wOu{`PuS0YeLw!9pV(j64lLHbqocch5BpyB{p|Y#46Yy>9|HJL8yaRm z9LN#&qwUAokF_6XKi=NKeuBM|%{S4;!8Ks-V()4{#eS;&O#9hgHngq<0DIdnw)X>a z$$#ui?St$?>_hFtfo;`adjvph?IQu-WFKoE2V@eU6hQyJQoC@PeWnd%0iJEY4e;&u zJM0etc>?5^It%1g`@4Yu_jTX?ANz;EhUUHcANv!4(JWX0V|ii!(!RjH(7w3KR`MTT zDZphm9nF5#(NSrS2b^GEWly$Q(ORfosNS9dvU7p=)1D1-U3GNu>{|dA01^Uf10=E+ z0}cWD?@MYgvsVI}#%70YT>CdhXG3~>qrKVQ(q(=3*ZbdkI`Mnp`)L0O@Gth?0RL|P z<8Sm&`(O6I?K`@3JCNfE+YS7`0h#7|0onQL3sApq{r~C%ZD^2<4+h!X!Ic4MB%skC zOZ<3{^Bs%>K*sk;Ad~x4fTshR33AfU1`>VE1=0=Byl!5A`*c|s+2mr7Gk&QJ`GYJ} zXmp@04;A>n23m;Cf?C4>is-f)WTJ}d7TqldXq&plb=%x69-stUR3hL>Hk8~gty_Ax z3>)s~$n2KYZCkhP-F9@_2`sw-?di6+%eTMV|D*1$Hc$%VlVm2NNhT9d&O~u9 z?of(Lp=i;TLUDJ80;NTY6p9vUDelGHwZ&U#afjkE_t`7^>^T{D-|xHk`|FuzSA{}!~$g}=OUCuhpl$QdBVNnzL3-}T!2&_ z!o0xz;e|vGk6~OF3;$4&;_)oRvGbJTN$K$N;T6IwhF5~GjH*g`weXL?)lna#YEi~k z$wzHPQitn?oEs^6jk#_@+*HwNM!LC3T7O**CsHzn=hH-gdiad+nc+W%&*8~D z&hxBOju81(w%tu5-MMRT}iHPN?DnbpVLB;VTGc%r)7MKu` zL^?G>C%SqlgK%u$G~tY-(j!bfu}0XqvWpoB%7^kt1c13C@&NOqI7qF=3@N7(_wBfz8Y z%*fNnBk-31(Zye2qM7r+OA&uY{1tI6;(El*h}#i&DZd}_0Q@lGQN&~NZ2gmnrxDL1 zUXp(Wd`;>tLsIfN@R$>snfXCv&d6MmVNmP{=Nxnqkx`M+kuj06JXJ-;MaGK>ZDa!1 ziIGW>$&o2=I+Pw|K&3?*f$6BM!z7$VC_K-BwxR5bEHl#;>5cS>#2*=m%mbGfm7mgr zqE|?$tTTnG!eXLGWO1QCj4T0NGO|=;Y0Aoo4qIK8yK<2gNLA#%Qpi+gxT+xuTl-OD zjmTP*)>icDDs*OMec>8%^-1KXP)$%xBb!Awk8AmxTrZi3z%`5T|v7P*6~osqjE_eSoE+#h)m$>GSOk;fzPS7swmNB$9cHu4-z zT>xG}{TX=~cm;JW@&*vk?|^qm;T2%yJ+AJ9A4Wckd`$k|$S2^Zk%Q*p@gi4Ll@g%rM7V43w zMWshsqU=x(l$32U1KyJ@%UX~7@~Avf`Owc#GX=zCA+8D&7XcPU72~OL2c}C#m5M4I zRW_tsj=PFcl|%B-wNQFVv)dbce#b#?m)gf0`WOyfo>-td*Ni~Z4G^z72c&F1c>a(a;QLUreywkx?m?CRO`g5Li5S=ffIt$0n)&;I>RQISJQN5sg zhxFvD=^NEQYS4Q-^2Ff(+Lfn<(9}@H?C_`&a3gs#I%-VRxTx`pesJZ4cM^F=yxSS| z-GAw3%_-F+S}~b$3UKN>J51xr^r#t7GvDb4cbg^hAED-;=29|GL;!iM=j;*m#Af=mUEw(xgu&M^s1=UB9V8Oc@6KZ<-9&>1JowP{ASWy2)6-uir%iM z-9l$(?h$$~sr|y^T@Hml9CbwDjw&=>(<`{W)FJ|qm?gSp31PoiE#y^4Ah^)}l?j_41fb4Ih7T!c*Fz7IMgI+7>R z(J|4gXboIEC0fFS=)~yc=v30CXfttewG-Nf@==yAx=?hH=#tQ-qDuqIQi^vzqbopF zLsgHi!L#7{T5$EE>r>VU_-S+#VAJU4l(Zyl72P(vU3B~CFW@?$zKrffd1mHU(Osi^ zaNRq)PjuhtesF`Lhei*J9t|}Yd-M*T?BXo%xSRZ5!hO;E!3R(WQHLnQqa9~?#rqlm zuu$}|=u@oEJ$ok$x0YU1+>B!*z|AnlW{_ zt{2lVrWrK;f|X*DU46@#Rw8K|(@tnSuZ`&t^Cf)8n9e-y2JTL}2e4;MFP^h~dMk9F zn7+dGgX&LiK+Hh!VAPP9VKF1Xqfui}cvVRFHDPAvxR~)V6Jow0H<9pL;CHA=!H69%THd z3&_`r-bSd+sNZ6?ii}NekJ+X0yP@}?_QxEJITmv~<|OZ(ia8B+26ZmxLd>O@D?I<3 zGusJ&WeM(D%yp676zW#YZK2sLo+opEFI&!f_hTOO^xv2lF)w3Y!M#SkiOIwVF4zP+ zatejVkJzx-2!#($;CXXwG*T5x9UB*`jZKJ6QcR`9ro!oXq9-imk$RRgqQW>LYM<)W@hAv9)4r z$JT+Wi&7r-;T!Pm6L2F`jp8}kUnvR-DiF`K3 zvyl84I~O=Fc7f*Acx+z;{bL?-~lCALD zDBG^+?2O&T-EQz6MF+Qe;SLBTpZg$^L$Ua0>0*z?9*;c{d-9zLc``He6ndu>{oiB% zP`ESD=Y&5m6kC5G#07W!Gxi@!uZHxl33pv6Hh&}bCi&YTX>g}Iv3DuGANx>r9|^@~ z9>YC}eH!~B_9fKY*i3x5=>t_xRhTMV6`_h!1^2;cScFokw9pCMCxVkmC-X#Jk*d;B zq6ZpK>Ez5RtIDBrs$6gqCHTyW%B%9J{M-fC2SS{@C*wTXI{C7BdA1<(!m1*`;;0W% zB~_(VrNL!XWmV-=6;u_WE2*jggGW`as;NE_8GbSqx`sjr*VM|E)Pb+7s>jp%ss^MQ z0zXkT;;DQ-nLkxEp-xj^Gg2*7EmfbXT9IxIY)h&gA>Pdaf3Et1Tt}V-_xeiJS=Ch} z-MQ+i>LoHf0;>AJ^;Pu~S%1|4=z+rH*{f=ZYM5#`l2NMBl#c<9CG|C7@OEY)nD&IQjSJ)b8FI4|U!nfa4Y!S#!{UkqMC`e)TI#LHC6 zRV$!Yk(1AsnYkK%jcP4V*AcH*ZBT8@Hpfe^;Fm-QabdRh>t2fzpe>ORB$ASHS;Jf=5x+4b?5x z9XNb=6!?JWSznc`9;zOx9;^PP{!>2n9Q;D{QnBVW^c(VTC`b1 znh7m@)~dFVa;TkZms(P1@EpH|RD0B3wNLF==T_%a=SN;ZT~J*}U07XI%*gxyXD&{& z9|B7#R+Uodch{CtmseL%S5#M0S5{Y1S5;S2f26Li{#ac@UGu-LtA%bI#YA0oJ#~Hf z1|n-D6gz7ZxTYZq?mL8U4%I^468M?AmAbXa+mdQW*q*0ffWPEA^y}%!)34NB-rEnI z#`{^A>W1pBnC`)KPeq2$0x4W?bsu$K^8M8P!2{F-)q~W7DH)=e%YL??AF3XfZDzQ7 zgh)mTm3{Rn_2~EZ#;C_qJ`OluJwg4AdZPMU=tffd+PhZ2dIarN2uWO zgw#{@Gxc-z3+R{XH^8@)=Fohg$*IYu3De;HcoaJ#G?AJp=x9_7&+wTGQYxStr6Csw zjMr#2iQr^PQZzb^o)qroz-bzj#>{TkW7F6*j%=yimD#CrYkV~0*90_qGJNU&8M2?npT=N zns%D@V(tq~2Tez~P9k9|yJ>oac$VSSIAy&wy+yANslLE|BI_?yaFvXMG=tyi3=zpt z&2Y^~xX~gRBh*-^ugQ%QnY?R|ztMcFnXH+j`JVTuX{M8!A?9b2n#KKW&5xp!wbLBU zT#?Qb3h(e~7AV|8%};QPG>a7(+hYm&rJA2L%QU}gR*+kzS)*Ai=GH;27mlsjpxLO| ztoco|g{NDIw*hx(cJgc&=iQn;T;V5EDEx#fG~O)~?x5z7=7{E~@W(YLgl6Yv$4Q=? z()_MD&-Dex)J5n^sLLAs^BR<2170T;+#w5ZzLVajhZpKuhO5yi#C#m1?iHF0skc$79Sk$QNY!HgZ9P+D9IC-7o1PgWqTIP=2@0? z6pAZMef*b^amApD$9<@nFA-NNuC&5utz)W8T&1|man-5+@q4FgQd%pdSC3pn;3uRS z#Wjxm6sk#F)3|1F&Es0cwTWvF|2cK>?j3PQ?t)kFmBMva=+NuK@6Z&zuF&0t@6A;o zk@V%NpGeql1IP^o4&nLGxM6W4phw1yiW?I*HtuWa32_tSz5`E+n;bVa?)$juaWmk4 zh?@_ZkJ}NqD{gn(p18en`}oX$#X5Ok{FWf@5b~qcI|e*X>SWw0;;gyf zL;M-;&WiLL)Oq3Xx+m_k!e#CA_j}W;NUz0RkGlcBg}SYnx)b+6;pCnEje8RJG+X{m z;h#glPeJ8QfR%8qixJAp2qv;8G#x5DFo zC*BM17g-=acYL1syz%+s^NZ}=E6Yj>zGtcsvLdLWyjP6#hu{)i%R7`LUn*N#I=&1g z<$&dRuL8JIeC7D6;E&=zj;|SCE50`M>c-cLug|9%5I2nfgnRisco!8(V@f|IY?5uF zX?(Nz7RXwP{4=5OX`A@g@onSVDU$X=e=gJ)LgAHGd?(>LLv=-U=Sh$FKJoqH`;!|0 z9LV!QoN+G&H8g&h@L6BS`_u@U8~M)kXiCNc$Hz~|*8PV3cOsnxHJRKL!l|NzztI#w zox2&tGvjA*KRfQ~WUPHKhlE92M3uZv$V{06Qz zf;WluxA?8`+l1R5zXN(_{I2-jBEz#C=za0~fd^0r6&<|GE8JnIBk@Op$3@1j`b7LG z?oY>`6`k`?_y0?FjU+5?CPZfzg zEAun-o}*sU%qzk-z#LjO@c}RwDhw4)37**yM{8q=)j*9_OFB`Ts!bzh(pt3+trOaX z%Fz0>d9-<{6FhH0t_vwLyvM37B79M(V%!xc{*bT)&w~4uBv(pX8eB$O4p@PbiiDN4 zm9E*TIR|u8g%6&cVKb!7Lpm)& zTyU}_WuJ*oYi%3ocBu9u3r>Dc{!5;I71Hgj?V|AAp?he1Dw1B>-r7Feen?_T8{>fcpN-6Q<~_z?Ao++)Jf)&ElV6!={GLi1QK#5{YUFDs*s@ali*}S~NM+wyvK2E5SP&1)+LfwRV3H348 z0M!un39V^Fh!bgf1aT zSGaB=37hJUq(?%pgx=sj3H=iKCk#p$oG=t_Si0DG5`-(@0MT&LD+*G|p@VUIoI<3Q1;%IQ$MgVGd8`a$bZBN*d zuqWXF(!;1@3CFYb*)At2J4two@N~lO31>;2OSnLMG2s&UFVdF@*~%+We<%C{yecx5 zhaT6^yUzPJ-ZOVI;WpAc33sV?ANU~QQNq9Eo)EJAo(aX=bKzbjyo7$kd_vAd*2A+V za5yT0`$*!L#8_fAP{TX%oVDO2(#br*t2wCDM4j;X99W_u(a61t*pg@k+Y~dwD+r=P zr3DtxiT62g^&Dw9|) zu|i_S#7ZJ%yW$gF+*ePmkytZZua@w266*@hR@Dn}EWxw2#3qSN-^rULHb>Snu{H0s zNo#u}fmN#2(0cCiY6~&3k=_`-V)i>3)g*-^m6h z4nj6eZPo`w+OiP?j$&AF= zi9bTk$=1hbqbZpWT!30kZVB*bQtWJ*nZGD>Fu|*`kZc9HRUz3ra_fN`NNoacCMEB| zc-uRPvb#NTN8(P!#ID5M-0dOWOSqqB2RR=CA3+^O9Zx(7JdOGtbrywB+Yp{7l+Sii z;Vvcqsc?TK{-bcXKT5m?e?9R=NGk6Wil9Vbk z9Vr9%X-P)WNhf6zUS1t!v&bz%*`OT4IfasvGLqcfdB9$jKPixuJ1LKtVY}vq%cn>R zBo!oANRfqJh3pC^72z{QiHn7-D4z6TQi-IJNu`oXCzVlj$|jZPu0m2pt|}!}=Bf&D zRl;gX)p;5`V-0dOlWHl_+R$|s9`}Pu^^+PTHB9;hX``gZ)ccgMNm5fW*^H~^;FhF6 zOKK&$!Sl6FYLnDH>GN#q7fBtmC2aaj$~pnRLUm5+0_>L59oQqOXHqXPJ{1J)o74|D zAZcLIAn;(+kffo&VW<(Pk*Ms)sBGEjq%lcjvt?OpzD^o1dJ~eqNt&4SE&O*PW0R9Y zT-MqwH5n7%CrwM5o-{M*hyP)E7WIErOwCv51xX8&774#tD0Z$T!YzgRnY&*&FHc&T zv?^(J(poWKN)o(#fP#qNn^CPV@8+@EI|2Rw(6cc6~nSV$xqUd0EU~5$bQD{vmZ$ z_-jx%gp+r@nRGkp4$`~Sxkq>(_<&S!>XAYRlYd3>L@4~dyrgFehi8RJFGGBA?JJSJ z5elCaU|Qkv$>ii*$-xyehQmjpqLX8(qt4dHZw3@e3Un%YU9utBoNN_68_Oa{G|EFOoZic--$KcTDbt?5k`!?t_xMBzH~j zhP*rVdcHHk&Yb<|mE1eI&pVTSdD4$~&^vwQE`yVYBo9p=Mm2*#IrKa@^vmu z{)v*s$xDcr0)I|kmi%k-a;O!Q$+L`CQnH$Gt)jawc|F{Q)>~ZqH$xoA?!@m&OOQ=`ey-9u>RLMD0a;4xoP)c}8Bsh3P zr^KeHQq<%%z&KLzKy6AQ=_JBrLV4Byo>OU^p3snDOi6#wK4wK`NwF%NEyXUJBgIMD zC6eG(WQ2G(oG-^Wk||U%neH!4jhqf#YpZ) zfk$&aCS{yrYCQA=g_rmKR*_9n=r&Pu-GJK2yPFhKTS#x^$u>oYt>2!_??~B+ zWEZ8o3HR`cz2JSQgWR*#hq*qY$nb1R;f|%8RJc=IpG`TJavu5u`9BpCY*)NbmU21e z3Z;Li{6l;dcmkXF5EtAjh&TUZ=a!;#8~RSlT}6UVPo~`G{z1yakPdzikn%Vr z`8UL6o&Sl*pOSi(@|-6xz%Nr?k$cUv;JP>5y=9Ebk;?K9Qgfz8LPe!Ur)pBQlqC@2 z(-f)6sVS+csXFe1`}|L+Pc>wlHwvGgY9ejsi9OW;2JRVAXzyPV-d?F8L zd5&@3)O?iYPc4{QD5PH`wHW#0sijiOK~*4EkPXDoI8R$am{A%Y>r&#)Gowbf!%q( zH)s4!%G3cu2UiVD9Yo3C)FI%Zsl!r7q>f4*L)q8BajD};<6ZdFiChI&;`0ZoQ&YcB zot8QybtXEqvUO*3|0CzQ;CZPFQWtT*gmZAWrK!J!c=;T7zYF;aMQ@eRtAz?quTl7Q zq&K8)RAlm=o3dq_Q+H%bZbv^Y~>TU2HK5;ko9#;>+k5G@v|C{=R z=fU$l4RI`cM#-zxH>qz^GgEWuKG5aV1!r@C!?_M7p%}q?k>F_3F~C@!s=*pmoGzXc zEzc7;<9z6pNkDhVl!rU7&JPtp<S_b)=;{LTtVdU$821I7agU&D4E?FDiLM#XnuA-4K3j+XHZH`s=B^Frb|GE1 zB6zgdeNLS(bYJQ^hRk%*eWmN7>q=QqU@ufZG0`7tAa{dwgGmkHekf-=v(b%)9-|v8 z68XGeBN;E!38cQ$O#)9ADPFbdzE`;5+G$8;pk|_eK+V$4)y>x}&@F~us{2LvD|k6- zg>I#8m2S0ejczU6I@Ed;o_7##)NRsj*8Qg2qT8z5uG^{GrQ5CBLmm7igZHBjpbqj3 zpE!a#qC2KLr8}+rUH1pv8QwdqI|p^1+y&i5@Fm@!y1#UnbyuMOq5P`un(l_~rtX&R zHhFd>cXao;exQ2@^;q|W{8QaC@N?a3-5c;*%Gf+VbUE}n^3TEJhO(m^D3?A1s65_s+NZ(lhDY%KgDX=-JrT#NuD}8Hy8+}{-7tnaD1AeLR2<(LVin7kYF8Z#d*-Up* zJ-P3#@1yUl?8XVKd--_zXbP}9{>5E z{yOD1^|$qRpzfj`P=ZGX{bQ)7`sex=`j`4w`q%m#h7Sxm4Y>?qh6qEXA<7VKh%v+( zR0g#{V~8`v8?=T*Ly{rckYY$R=nQ&;!H{M!8Y~8@!ESIEoCcRcGGrLs29LpO@EQDu zfFZXbk0GBSzoCGkprMeVu%W1-n4!3#grTINl%cetjG?@tf}xV3vZ0Ehs-e2!V?zx? zEkhkcT|+%X0|V|64UG(q4WAmC7@8WI8Cn=x8d@1z8`>J$8$LIDVd!A^($LY+$v%h21<$I#c%-!Q;1&@jj_*f7K}!Z6Y>$}rk6#xU0KwPBoLg5ev( zM8mg+?+lX+lMPc0-y5bGrWO0DaKmuZa7)o+>+cxuBDs%xXn16JY> zq~TdRDrZ`*v@kI4Wzr(jB1z%#oHNT~pjG5Gij;MNM_igVE%Ch_ybY_!lhabtQWaju zwO*0ovp#7?;nSf^!ewTf(=2ILcspedLMQLL(j=&iG&lG1)iL%^=H(rqnDD0spmUSY zla`m~`N0KH1-X}ZDn!0;T9LG(q>2Gcq?ODzRVuA?TDg#{JY2<)1fLU1tAeDONI!HTm!F_>ZM~AeIT;bjksxzuO>$4CMb0F^L~Tg zMA83NDEwwAZ8F@Hw5h;piafZ(^mh_@=NahykTyGQPTJhGdC>Dw3sFC%ElFDn{v~Z0 z5U(Hzm#3{HmRIB6S>e|}uT}VU(Cbl~(l!HsOWTsRjdyo&miO7o{Vwnx)ZT3UeQEpC z4uoU};SP!9uu#XKj;Eav{-jW+N&NvllXez(4s|~50;TeGDEVUACG`G8T^2J}gu<%} z()bUkMRrZ7tbMMF>;|b@z6Cb zv7E7zv9hs>=myXGvBK9NUCUTok+G>dKV}Gat zCmAOj zrx>Rizc)@t=Lh3#F0z$E z$-UJ`))?1j%hz$gUgR5ul2_tgTjM6EFfVS)t@JWbrxbod;epUd%RkN%+4=T?Sq;Ugzlz z<1OPI<6YxD?(cKPGiFkcjsFrq;rUb1m(Tu;C(n&9vh`jI|Hk;1Y2onSlF=uY>9OnTD;>A8{Qp){|em!EVIMZ)$i znqE9x!qN}ZOHf)ez4SZXG9oDpRW7}}@N8uTxQdiiO0S$=CB16;N9iBK*GR9KUMsz} zn5`>RJ+A7fHzd^v*cjC$y(zF6WzB&tNU?JSkCq|+v-DQvTNAbcwneog_c@`w4$lSC zJ7!Bd!GDG7BJ!?K-O{_0?~&e1~9PoKv1jF1U7g?Dt2%@O&$^!Y+B6e>80zlWdxGqPprzXF%1uLQ2* zGi$-?P#aJi(>GDNHGMmHXZmj7UP=xS;(mzuFn32dALT5cEy%}^9)EA=B&DZ-zoY&T zGiQVf?r<*s0+NfUOQ=87FQ;FjiGR|srQb-u34NPK-rb8OE#H~=jFMJ_t$DW%xUH!jusu)M z+Ap~7VCrb>Z9nfb?oSitiNf1X&~E*P ztsuRUC#%4#xeo3j;~Ji>4e72ktv78F$!4MCRoVGBOlV z@!Tz&XH$Pu_7CtX>YC{~`5UHN#BAa=sXM^CB4c^zaWABI-}J!rkSC9bABXgDAI<$! zkv}s%hkhYEUJILEDIEUoRB~^4_Ey=0&SCz*j91AhJU0Y}kz!6hBFuP(h{`&m&9P>c zS#6FtCm~NZrAZZ7yprXD)B9Xs&FoVyVd8*n@G=jIOPj^<80!*d^~&ZsV^uBdLP?&coA zp5|WW-sZkg{mlJ=15g9agUmzB!_32>N1)g-(mcvM+Kk_0q1Z9jjK7U$9uJ&=V#h@D zx90E6lg(r@r*OvauY{TgHN!j;_ycMdYPR`D^BnVB^E_z0KSj8}ywLoUd69Xsc?tQY z=AXg8pq80`HLozQgj!`@ZC-0$2elrRb!;HFk&vaE%$v=>nYX}iHE#oMH}3$lW2bqS znelG(9`HWY0Teq9n(^~$J`6l!K59N@J`QyPbrN;j{0H!?`5f>(iX9is3@;L10{&&b zO!^A&Z&LpNucEG*ubXdzZ=r6R?*Q3x*L=@RBJ;laf%&2N5!_?*6Z13hbJR=oE8uI? z8*`>P+!A5Q#1RRMA{AqawWy&qs5q1sm0(G73Z+BoQ3jr-fsK}Qpvhvk zSiv^x*eyhNY&Z7F->gtZS*qSJbyOw0r{H*wO^p4Ap{n z@MvmjWod0`YiW<91FEB?6R@+T3!mr;?vCn#>S^h1>0{|@>1XM08DJS`8Dtr38EP43 z8EzSA8D$x58Dkl1`PwqhGTt)5@{MJpPCEHf=XSY}&(w9K*0 zwal~3w=A$MwESdQWLa!kVp(eW+475JnPs_Ug=M8>m1VVMjb*K6on^gcgJq*-ljS$d z7Ry%4Hp_O)4$Dr%3d1!fLd2D%Nd1`rP zd2V@Od1ZNRd27kEtk4NNbce+8SexwW_TeYrIu!O|T|fldLILomFo& zSdG?ntI2A%TC7&9&1$zgtn5$8MaYz7^$3l>9|Ijg<>py_a6!^VttEI?23(eFwu5|> z3(3k`E5KI_$?&;w?kiiXSgS%;(>vnbsV(4{SMY zxoly!NL!RG+7@GrwW(}sTbwQ4rnM#6l5HurRGZGGw;60{HlxjCGutdStIcM!+Z;B@ z=C%23ep|qn+m^=`yfTLQp!0KIz*dl}Lbk$UrU+Lhz$I;^L@w`9T9K6Dx-92%ik>_l zuKxto-Ui|^G@E+Hb7*9NDa0Pu?;0P3^?32!ZsQ_ z7Bvnv-ZsJZ4R|7o9pBj|K~3fkziqQkB|XhHoo6$^KiFmgXWM?X&9^PEE##fx4oduq zcNT${a{a4qxow4QC3mZAtD)9#7hJoRyA8w}ZJTXdLi$^U+Xl6RyPe=Yw!OA}w*9sP zwu83A@JFb36nG4E+;+lt(sl~!H06H~p0S;?owr>ijrU=|mu-LBuG+5Iu0!A8`Ayp` zQnzh)!S`(Ufe(1^A@L*NW7NO4r?zL{=e8HXm$o;+x3(Pi5A5u#%Sni5?DlZ3SQ!RYtLsdU@vGdY%gLjW-o64&|bn`(q775#$MK5&R*VL!Cui`$zIuB z#a`83&HfRcySlxmy^g)Ey*{~5fS=l%*qhl~K(#`(wzsplr(OrbFYO(PJK4JscenQ- z?q%<7??bAuy`Q~5)BtkqtHy7S6`J|M_8~}y+K1VP+eg?(itZTuSgyaekAoUdZUWD~ zv46)EelKjFAvD_&w^jQrk<7OLXrIH~T+Z|C3!r}DZVBh$+8{1P_OpE@bykJ+SKHUx z*M%hO?Hlcz?3+dQ8&_L6Z?o^P?;^dMCwuIB?Fa0K;0~jXP8RzX?WpT$z_W(nMvDHY3XMlmM|0s@3dQzmO|Gq@Jx{-IdCo^UemxMySn>-yB=OTOHeY z9^9GXcE?U+yHLAPdmMWm`yBfn2WajP@CfP{x#Nx##3vo69H$+>lm5eT#&Onhjx=5) zJN|N9c3g4%?f3`DRn&Ffxxx7+_!jBgjyuHnfcH@kP>)ehP)||pc7P9JAK;{MJ7&Vi)Z-gs<- z9_$=QrfO1%Ai#$<8TUO(p)GaGG-l@l4>4 z&N-yzlr1J);#}(dnN;xX%b=H|RytQZ*MQeL*D1Q|og1B-$ZvLT z0dI9~18#TjaP9){q0V05K2rOE2S~BK4?-P69p=dq=TWYXIggV%;XDaG#naQy-?{q3 zdB%Cxc@FN9^Dp3K=N0Pw!~630?W*wCpsu5C@Z_fG+;-j-I=Jqh@b{q}I3GG6QS#XN zuk(rXDe32gFP*Q5*}5FA4_rB2OywdBBgAtzS0q%FOAXYZ;(3lo9Ig^vNv;%;rb6k2 z)4S4LR+r6X7m35=a(UtWr~sw8U3px2ML!=@0ap=VQCBfnao2~`DFG~nDow78tE{WM zs{(XIS7l17xT?86cGYmzbk%azcGYp!b=7m#cQtS|bbaD# z()F3Em8-R@jq7vQ7p@MjFI^p7om`z=U0hvV-CR9fJzc$Ay)r{apiHgIt4M zLtMjMBU~e0qgs?ieeas?n&JAvHOn>IHODpAHQ%+s z^^D)ITnAl;T*q9;T_;>8U8h{9U4OXFxX!ySxGuUbx&Cxrc3pA( z?fS=c)pgxzf?dfC>4^5NJXV$(uYzBsiag&DlOqLT`DV; zlgdjKq>54{sj^f>sw!2JK9Z_SHKdwSEvdFtN2)8;lj=(iq=wQbQX{Fc^r_TTY9=+8 zT1YLW&!kpTJE;S9l8=s37r3rcH_Ez8J)~YzZ|J^KKVW}p0C12rL>eXyrwP16BaP%L zxW{N|tn{@sLHb6Ti2PgWJ82SlvNT1S%ICh9rbEp{&7x#BaE>%rnkUVd7EprwAmT;R zVrdD~Qt20Ine;1V%YiGTmC`C{wX{ZBD{YXrP`(Se7qw5?FC73MlnzmTSUMsdm5xcr zr4!OA>9q8_bVfQWotG|17o|(mpVD8_W$AC}AL*)eO}Z}KkZwx1q}$RR>8^B7dLTWN z9!Za-C(={tne<$GA-$AdNw1|hQl^w6BWFggjIfOGjEIcLjOdJ*jMxl3E~4Z^laTFA*vDT(~PFTmMHmX1>G9e zCZkjy#&${0$1c*Y3uxQuUr6H(u0Ov;!7{yt+i z@W+ffKs*`|GKJr3aJ>-x6KWA^G0&D}EF<-6#`2668LKkZWUS5Dkg*Zj=8WI?OmG(^ zZb4^j#y0A2&)7k{Gh;XL9>RTuS!?!Z90*AcE8G#%M>9?+veOyA3-^am_++g@XYGET z(hI=9c>i+76{x>a|DdjB+{m~|ox2(TX1s#R=?-&8xFg;29x?7%Xq8(nl6ZHDJJqd+ zH@MR%H3Ch%ZzXncC-0J(>7>N$@Ae zKXEs5H+DC1H+45d+T7iO<~~zQx8k}rxQ)B5yB)Z_`*Zgf?ha62qB^2FxxaFEc6V`i zb$5efM|XD*sGg|aJi)6JQhnY1-2+92p8@v}_fYuZsFA2q)Ena->mKKx=$`DJ;{M(} zld|B>41W-QmV37QNB11}TuSD<7q}O?7rB?fEp`9w{>A+(VxG%adx&Lxsc3*K{!!Fm|H{G|~x7~N#cis2g58MykkKB*lPux%4&)m=5 zFWfKPuiUTs72uVIC)^Y5!RrcCEDE<-kJ=LtrS&9u5-Gv`C2_JR6|DD|JZ7HT!5N-_ zC$}e$C$A@;C%>nFr=X{hr?97}r=R@>McuIQ8c*=V!cq+nGqLr0BRXkNa)jZWb zAA4$eYI*7)t&6IUYCse0N^tMz`NY%6)0iipdYX8ea^2kX8B`ljTTeSrd(Y>dFFYMQ z9g%eMdgws{=??DU>FMd^=>sJneLVxY8!XZxP(wY#Ji|RBJ)@vUd&YRidcO9I z^NjaQfd2+H5%nz!&*wdpJd-_BJX1a2d!|t`-7|xjb!S5TKyDUrw&zFE^E~rCKY12; zmUxzWe(@~x{OVcmS>ajfS>;*dS?gKnS?}54+34Bi+3fkvv(>ZBv)!}9v(vNNv&Xa7 zv(IzDbI5bpbHsDhbIfzxbHa1VbK3K}=MT>r&sono&w0-U&qdEA&!3*Z=v?e7g2!dg z70=(4y!B)v%i;aN z%hH_QT;MQNxHr-p4UX}usgt!Ps5IU<x3IT}wXZbQ z@|FgcL6!AZptK^e5~-@*YT)XqkIB~n*7DZ&)+JZZTi@Hj+tB-ow~_Z#Zxe4*Z%glI z-qzl>-ge&h-p{>XcsqE%^mg=q+R?5?;YSB=pE!8>>c7A z?j7MB=^f=A?H%JCi=Dsrj`NQ9PVi3je(Rm&o$Q_B{oXsxJKa0OJJb7vcb0dycaC>1 zT|w|W!f>9#&sXT+#3Dtq*t?Y6&xF5tml6L;xZJzKyUM%HyTQBB`)q!)AZ8B=byz62@(A2fo}38joK(0|3XM-~djAOVXT0a(FL*C|uX%5H zZ+dTe@54XvJ^?=Uz7VsoNxcES6l}) z38Iq-l|(Mtm+I4z(i0j8<#VRN85K#o&+N0nTYWa4-RJN*eJ-D*=;MAF&h7K~{2?iB z-@e?GF~6xEC;&A}~vEq$$gt$l5HhR+B3 z+LQj=*8$wo*9q9!*G2S$*V)zAosu5Dp2WR;y?uR1_45tjvjcsDNDcN4@eP9-jv9d) z=^N!6;~NY0HHsbMh{qF7@O{J6V2|NLw`o0(4X};;c8NQk1fAGyBp6&Zl z^ym2I`sNA8_L=Yd$+sBEQs2+M6~2|eRle1}HNLgJb;#EHHuyIBHu*ODw)nRCw)wXE zcKCMrcKi1D_WJhu_WKU_4*CxH4*QPyj{1)Ij{8pd{_vggo%5adUG!b@{ptJ5ciDHv z_qXpK-&Nmr-woeQ-!0#5-yPpw-#y=b-vi%6-y`2+-@m@6zGuGYz8AiizE{52zBj(N zzD!>Z{|Ek@{xE-pKhhuNkM_s-WBn?>#vkX8_iOzL{zQM0KiQw+*ZB?pG{4c0*HnI! z-|V;gZGOAo;dlC7$Rv~-{~5RypJ?rG%T;i$U5I1Z=SVvEzZ7{# zt~wKU0d_@o<7sf0?&Ny-d-AlGzqh}SzaP2&gad(t{3CgPlz+5;jDIY-ul?ivTIpY<=&$y#gWH1I>fh$y;os@s<=^e!>)+=;=s)B?>_6f^ z=0D*-=|AN^?f>0>#(&m-&VSy2!GFw#_x$($5Bv}PkNyAppZcHqpZj0Sy21^SB~em5K#2sen5!GuEzhY{jl zHZUSElJqE^j1G)}8jJcmFb+7L=Mw_o1SXRHE-;B_lLJ!&)1hYsW(Ix;%%XI5;K#rm zsClUQlmx#wL0lO4No0$JQceW*V$oY7ROr-Fk^dZ6PI_fvbzp5^V_xEZ(=xQpp~sQai#fyaF9zk#QLXMyK|mw`8dOv*mU&Gri; zlz0CB3xAL!M-B^$v6b^@;GC!qsFtW)sNSg7sE#N$+YiNN>hNNj4aH_NP;3u3isda( zZ1zK5Y=-UA3Dph7X8b65ZEa|_maS=u%7bD(FDf^R&C0!e3Y{OC?Im&U&bcP%0B0Xq zUZ0m|>{?h>l2(vU)zD7A8pwKq1 z*&cGAaRn61%Aw?aS;jQmSJrG_S+l)l-5k0KN}iWBo0m14XPTX-Jc`Y-Yx|h%=HMD! zvvbOt?ICM6FKf0R(`>(9oaJ6~_p2- z3G4q~JiC5&ZIw{6ZVS!!Wf|lDjhEL}#=NZA_m-_^8Dsf-Jpj52ip?=C-&R=0=KjBU zwijDp6~#2$<8!Xr*C*#pvz(o$8s{%Kf5e$RPO$#}#j|T*w*~qBg=u#CXZx~@@%ubm zCnUS9&&UL$OTOY>sJ`vD*dHEMvD7rrC9{$0J#Hfo9jjGRE)o@@yUSWi8(? zvG1pxGtF|g56c+;CtsKMyK(++o}F_5svb(#?B|*7&oajU8_(9-_!?QiZyoEgucZM> z);$$kzOQC8@_h;0SI*h@xDlUcx(|w7Bg+{7Cog}m+F*vAm;K!L#{yXo;F{ep$eP_o z<=ZyX@@<~ohGoreZ}JS&a?WmlvS#O!ubF9fjqJSaT=Mm1|1-`0XO_LRZ)1$dM1l<`08ca=jEh zO`+#-y)rIGj=?B4zlv-2^_N94ZpoSbc`?uatQc41+=g>?&R=qtpFe)Z{eSy&W#?{= zl7AMMmVXx5pO>67E$22x&a|AjfZl=)iZ-@5DI(W?vs;R=8;i&3qV&&F1DTuVddowvI6?wocY^ub?GI4pyuu zYsT#S?6nBvk|?&1l^4s{xmd=Yx69An8M7IAmU(t?Nn{G)mGGATTv86ZBiFWSCHP+{CU(9rVY(>xt~Cpwl4X>p7u+b2G4uYo z4eQ~aDfGj&BKAWcu^+~R*9u`>K0jhxCi(GstN|MP#@NwUXvcPOuX>&x_uA*#aSwZ* zJyB%Gxy88@&m+c-_i9)!YzO1Rxxo1p+A&6Khx_ySME^P>Uu+xKlDG}@#WHLQ+vaWH zJfmG`tMwck&b`T=Q7D=5cZ@juGSGF$%}R;}qI>tU?=)S7_rg z3vE1Zp^e8bwDI_bHa-TSO*{_aT+3ig7=IZ^n8z}n$9Q=jG7 z>>u+uuY3-Ln)lDkc??|hIJoAqaLwc4n#aU7kBe&_8`r}4_}uXL@EmImNqA1S5$U!f z-A<(2i*yH(#@98%_B)AmXOYJHaG^iGpDEPcM7q03_YmoxBHc@*Ul!@!BHc%%`-*fw zk?t?j14MeDNDmU}!6J><9^v@$+9K3xB3(nIaqk!U<26U9@p>cF86ur2(pe&n*H>YE zyru{>UL%D%N2KxINLZdL()C0-Po(ojx|6m^XV0@i}sWK$I1|czF8P6jzp3h;kLoQs% zh&P?6ixZQGRf&y>qlpuVi-=o^RpBJUcG?rW5=Rne5?2w=6MrV+%|F(Ei}-+OhLaEN z4q^&1mDr5fnK+WTnYf>Lk$3`5PHfK$CnfR*oQy~roP_g0j7ewecoOquY z-Hh1-#1vu=;>*O-&6(e2;vM2+V(%8Ld@yks@gDIpF|sA|GZJ%&t%-ezyNOD;=wjSS z#M;ENaB)R@B5^En7I7)@L*jYjW#VnP7-M}UT!fLui9T9qZHR-28;A#q$B3ti(Qxs_ zc1*-XVpq7RqP--X{KzC?MPgNAEn;J0Q{rmks6MRz>%=o~vBmbT5N&X=MeQXPC&m&d z5T_CQ!^If=UnQ;~eoVYYJPj9V^t(X(iCAF}vu`2pAohieH2NPTJ|OlP!tD2nNyC_~ zM;uT5h$tP-$~8m-F@ZRY_&V|82pV)2^^Xo<2KwLGM*$)ukdV}e8#7)GhQxGO60Z^K&0^&(h;4|Si3f={i9Zpgvst|r#M8uc#F=wg z`5fYE;)=P4C64s6ZF1k|4^Xotj+TYWO)v3G&u_iHtm_=+y97P;M97lYE zSesZ6D1&}6jyZz-Tq>^&c8qH=>7~SF#1+Jq#684I#4E&W#2<;Pi0>06de)DWxRNL% zt|q=mloP{<;ly>s_lfI?8;Bc;n}`mgf*3(m68%IKQB8~_YKT!pEisy?BkG9;Vrya> zVq0Q6VtZl-Vn<>pVrOC(Vpn1}Vs~N>Vozc(;>*O|#6HBn#D2t9L=(|W+(+C`JVZQ9 z{EB#j_zlrT{FZo*=q7rIK4O3vBo-rqDOsMgk5$Xt$#&bqkj^~U}YeX8)9bq}1Lqd(`l2GG0 zCDaDe{Jkz5AD(CE!)-W5u?@#5w&7UCHXN_mhGQ1naNJ@Wj$LfS@r!LZ2Vxt}gV=_1 zA-3Ush;2A0VjK3`0}{?l1SDJw7$5E_ScZGgDo9wa5S3$lyzbL=1h1Kd#{pkc3AIY3 zPd9kBe7dN-d%b7N<)ZSgqVndVa=eBL`^S5Ep~ib}p~ic1p~icDp~ib8p~lx*LXEE- zgt}y>XSGVyUKO|}7WzlQ8!$pW2=48L`fa!u6zb-p`Wy3}Ex#z5k0GM=J2Vyf_kUJP z>prXZiTW=P&2M*6JbF=my!RHykN4nQ=fe7e@Is%r@N+aCbQ~n~5!%o$wk15rmiQc7 zx#!rDo?}aXjxFUmw(=qy#sORFGx4EKJPx#p$ALCX!m*(ij{|Ld98b?ZJ*&s{i#@z> z&HP{7!})&AuM;1@@yF{N?%lY4_R$QJ>T9CwTR6Pd7Pcqeujh!`YYXpX3H{Zg^%En~ks^Hs z-U}4g|49^IMUkE*x<388uU9UbPkwE|eN}udK%4klfHv{90Bz!H0q)!4YXREgAmKdl ze$ghr7N8B=6#JoFY~$AgVSD0nU_J3T&?X)S+Qj3)_W3yQJpzm$@1-!0aq~RJ%k$U{ z&trX_$GCVN)^SA#Cqt9 z_3%8wV~u|6AfXT1P~)0Hjpxq0WD5t4=MJt{JO{9?&mdu2Xh*$@h;{M2!nV+#YxKe6 zg&KXaKb%i&12xX|Zb*D=Xv6tKAFPY@R+A0e<{I<3PH?|i14JJz!~8)=SQq=ibNMnP z-X7Y}=LV#mkkAj?KtJpk$ISCMM;IT*kN0WZj_VEUVa(W$unrz;J|2um*arFuHP*** zpdIHI+u9BZ=LloLSkaDo?C*0(*e32jsQEl^fIQYc013-cWBIp`unpXguua|v_J=m? z8;?8s;uz5v_bQw#EaPhg_b2X)?Q@OsqvrF7@!(wU17bUv$Mu4-VV;i{^B61cBUm3P zoU<=LW4wDHVXS=pi~Hqv^uySX0C6mMKJw#o4Dxs$U~K$&VV`K{^MUc8#(Bg1S3q8$ zpJRNT;&`wxv@d~#{b9Qp=W!s81INA`61IVTp)c0QIYd9)|FCb|*RejIA3S$)@5efr zKL`o;Qq))n{cxJ<$%nnzIPpG<=kXqk z=kY#|=kY#|=kY#|=kY#|=kY#|=kY#|=kY!d^B4!e&l76iKQHGoaLwc3n#aO5kB4g> z6W2U0u6b-+3**DS`P^VRYGHh+h4Eot7$0h3eDKzwBo|U^NI3891o>3R*N24tv>|(M zAo}%$g!izRhp7wwz7((D9W<^5Yzy-(AYs2^8^(ooG9h6A+bGtZ!@|jJih|(@!|WJSdQ^v?3nK%$Zv;%a687u^U& z=Xo3#&*PYQ9@}XMiTBI%*bdKQJ3No=@I1D|^Jsq;>R>x)$2=Z8oSQO`uni=ZSBLa6 z<=X-=p&g0yi1pGS;rwB{c&^AHp{*w*-VXX=TUZy53v3Ued?z6Gi*`I;@OWXqGbEfV z%-5#G^B6PcvA@2Q$MXc^Mmy%QF2;d*j05B1WdkXX{%s(kALg-7^yeDup~iX`7siL< z#p8hE!a7Lw$8t<{AaVaZ%Huk~wTAY5Nc|~~$AkBe#~9}j+r;)#MH=JBdE)Wlbp}6M z!Zzat`2;~8uPxjMuX{Y7B*-TV@_4P|K6stOJjQ~3#fmiVpO^C(xaM(i&12!3$HO&` ziEADg*E}|^h4EqE!uU`N<3lZs5A(wKPz&QjEsPJfFh116_)rVuLoJLC`x3^7n#U)F ze8xofe9Jx9 zjvmHXbqwRyv5fb}F}^W{Q3k(6fbBS8aU#Fz#dx+4W93ndU8vtXbC@1U@%E#5!{CGs zwbPq1hWhm^U^Iq4);=6zZE_IIF#aOL-8G;_IJ@b`E@4qKS}l5 zG-KLG<2pt25>4}4mf}es%KU0m{i8H56R5v4G+&2^F1QK8xOPzeJ2aktRDbvcR{jMY zFTQ>r)A-8My0{AOG-`%^Abhv9D+>|+ZhP^6*53^ z?WX!IXg;I^Sa~L`*Oe5{R$7<*`N(n9-eZdY@<>*1QCr6L6yF-^zcbCtXT%YmnBP@8 zZat~~QR?rDsjU2Gn&;{TO!Mcif1vgJDUIhb9j}tKj^3NW{JYR|jF!fcn2j^V@ScvlpdyZ_&I4>3qwg z^=+kbE+KwI*h+O#edbID^h>+iYf^P?vEH&BI1Ij$6q8JL+c)#d9i``QM^- zUX{+rIdok4d2yKLxq5%*|A^*s2+bpZK6D%%&ob2C>olLQ(7yK*F_q5qc|BNrDjIKN zTDM*4eA3ZzY(eA0XKQdBl%e%7koqY_rnjsx$>{5y=rt^ch+ZdG@<>lFST=) z%1hGuaiBl*t3>O(1+hKx4Ppa2KXy=@{5gEX7*_v2?RP1(j(;cqNbBtpvG^S3zi~d} z8amIe(z>fd@qI?~bctAxj_-ULm!biy--%d_#<_ynt{E%mzo#;t&eu+~ZYLA(66?}= zdVx5V=4&*q&jEBi9JIayJ*j=vrJ+JF_+kYh|hAN-z4H> zVl}${jv(%&^~d*R)lgP1mDrokm+;}tesculppnnAA?-Uly5E{fl+yYwPyCARH+lJ!kBV@dWiSqyzEI+Me7(i59Y(#HvI;(d1+P#YvYS!V(Gf16zKGCTiDA43fPl zu_O`4gz?1?D-o*@D-+?=3i%ZwzC^4>B%Kc9w>=I0e`xuNpWaN=RRV~8?3 z&osm+B0s->BaNTOW4*VDONj3f@v}ZGf0uZXh@U&79Y4!L?k3{rKd2WI@pCiO_}M#h z1#u;D74bbHeinv)_&G3g191}(KR-h|em02QM*N6~p9!M<6XG7?ULt<>gyjc_2Z@J> z_&GF|FNpYAC2IV<6N#T$B2N?X^F7q~c^&dR@jK!LB7WwE<@i|}@){98Q$u~7 zh@YRK#?Q=<__-qzKPyAx=V-_|#JR+Fu<@Whju=l&ASM#a5tE3?#1vwAVg+JFVkKf_ zVijUlVl`qau{tr0Sc8~OtVygz%phhGvxv2c*~B`;9AaH!F0mdlkC;y^Al4@~AT}g6 zA~q&AAvPs8BQ__tAhsm7BDN;BA+{whhGT=rX9;mNaV>Ef@g3s3KISij3mn#);%A&n zoJM?;xQP4?5>u(2|0~yl)-;~~EBpG3xlgRh?4AOsf-v4a>|98Dl z@qhh1cyWB#y8TaiU+Bg8^S|Rh^~L?w|Bm~s7yH|b{Y?t@7P)kPQIGiI{(!9u@#hj# z<;*^f$p3!FbkZ}3Gl{c^{O=ykAw8G)7I7YNK5+qYA#oA$ZQ?!R65>)K|9ec!NG~U@ zAmX#gc)TM5jPH}?f7glsU6PGt=YOYZGwBbA{O><~NSgn>r){M1nQ83jBjOI?$HbjP z@!yBqP4+#+Pl^2ROYI}QpZFP3M&tRJ^q0ij#IK2Wh{uU9jwd@#FODahhZpB3n}-+Y zC!2>C`z@P?7yB)nhZomRHV^#z2_M6UuJiD5Z;0{41mfR){^vz|Y##sV{8ffG{_wsl zg_ueVNM#{=D|kZ|%lR{)+epjc1pwLy6Xy{5GooLRUH}Ia{VFI}d;Hna0(jwo_IAVp zL{~WT`;h8&B>N;{Z7QEddMWV`#l4#JCgQoNti7K}%i)Cz_Ir-nuSmKku{Uu5(F_lw zq5nS8;%8nTl06*Wutq-xk^inlCTad`Y!lLbh_4cd{Q*m>S^T|vvGxy;-#KF2NLGG> z^c|w2fcY;VrVulTorsHxzYuls;2Dl1pV*c-O2j#&R}nW5cM&b{z*=ZN-~l$Im2^GQ zeTn>8>s#<(8~Pn4zk9?evQHo#Pdbjcns~{?=HV{sUx^BMP!8L55Cgg}Z zvOD3yI;>ZWc#`ZLNZ(3g<&TI;cmNOmtBAPY&f4Ei_LD^ZI}tyTwmF&K6VeKJkPq9- zhX?nN{JZ@}Bs1NL%K5X?J4sI>UUIYc(%?Zrtbc`c57J$ULx|rIFA&S7uzJ6fE)EY8 zVmp(8V5?+s`An>0rLJBCj3^AlST^NG6?SX`OZ-$SyGCg#C|2iOn)U4rh3 z%zrZ3y+ji{h=YFfsh#Simk_TLSHK4#=(i+^wR4)ZtrD~Q;elB!U!KCs3rOcsd2iAS ziTroswvnDxfz^wo^ZFs_9C!d1+udG?m48h7b7DuL1s>2vzbZujyA%9(l{%AsAaOL& zQ<=4!NV;qf)=m#%LS?28lHN!BvI?vBfa>+=$^2SWW%kL$y<{&>*E8QiZHvzsy)2lrw1ClFUx zVfr1?TS#-(>dVTT5nm>bCLSOwU1c@qcaQvkqVl^$dp+i#K=ce?{$3HYNSCMfCXlX4dM43bz}m|h$lBq*i+hOl zMe-}!fcf#?xtUA)QzHLeryGM?=t3BHfbq#jmNK^<@CMUeslBOWpFo^X+>poo-shV55%CJKQdidhWzz1~ zSiQEy_lQB_N5rc{{<~HAqz@1e5zi2ly0Lz`c4z#WbSZf7LMo9+?u=smiD((k^npIi zza8n)J(+G!^;#3(C;QP})DPKn$FO$z@3wa&-I@3GJ&1I1VprlA;tA^K zJJQl|to{SCw<68|Mo!26EWQ(DKT9lElhu1jdRrpXYX&m^4ucqXkl#MyqVde{CUN`( zrupC2SuupwTQ!l{KOs6NF+G4-b{O*uQ!*YT`*z}O;#n#`Hks8=q4julG^=-$IDHB$ zzeChdWxC8*=I11xGL6|!5Kj_^5FfnB%FWXmA5LKPC(K}aMkeD2qz6o5!t^M?@S-~?wCQ6 zA(CN|k&@ApaqtJDCP}79-jvLg%#qBKERZaM-(y%Nc~`PpvR1NQvPrT@`+@R zWUu5i$wA3s$(NF2k`t0sl5ZvFB^M=^CD$Z3B)24YB=;o0N*+jllRTD4rD4(tsahH( z)kzIflhh)$NgYy`)GG~0Uy>G=mXwy3mXXFvxgmcAohAzdk5EnOpB2R=`pY>;k}ejxo& zx=p%6`iXRpbf5Hq^mFMK(l4c7Nxzn!l%AHJm3}9^D7`GbD*ax1LwZyCqx6pSC+W}9 z`_kW}ze}G;r82oJToxfy%c5k_GQG?sv&tMYx6CIC%8JU0%Sy^h%gV^GuRr^V{Yzed z*2;ff9xp2=OOaKSRgtC2YRGEIvi@y-){*7P@}IWWK-NgsMAq!7e)6P+td*>dtevcb zz{XC-Z^82IuXx}5-`bR!BX0GGG2SN9D)l$K@yGr=D60BR?a*AipNRCBG+sD3^pO!ZcxqFk6@>tVme#u##ah zVR2!JVM$@-!zzbW4@(cL6_yp26P6p67gi9~AgobX)3BCdZNl1xbqwno)+?+}Sii7= zVMD@(h7AuJ8CKZG^K+xZ#)iEfHZg4SpL#yO{{OFa8uU8@(riKh^FsLrVT-~RLvE>{ zg!i`WUu-MFR)KA8*m^<9WnNM!iR^C4j&)>MmV-LBlJIy;(v~F!xw}v4qq0&GJH+=`tZ%+ zTf=vR?+)J|{(1P(@Dt%@!oLf@5`H86cKFZX55j*Bmny;)Dn*n+uP`g@3XdYFD6WW6 z#4C~&l@zIpnu^+rTt&X3fugaZnWCkljiSAxlcKAlr=pKyfZ`R!FvV+%v5EQ7ocVMA?Xhh~$Wh5mh77B5Fm{j;I@vAJH(PX++D2 zwhSj=o2v@;+2SD5wAszjhGPeM#P&Dvm)M#SQxP+VtK@>h_w+LB0h-N7V&Y! z?udO62P3|SD4hSVApf;M^O6%}`-XU$_$~1qk^6rq(icVgvPfSQ>Dv+aB7Q|%gj6Y4 zhAShKDrKZHN*S%xD~(FC(yFv8ol3XTtMn^_%9oVIlqHm%G3=E|1J*2=cZ_R5aR&dRRJ?#iCZ zmz8~#{geZggOsl*UsVoMj!?d)9IYIyd|f#~IZ643a;ox8y@IxGF-W zQbnqwRM9HE%BV7{tSY<8sdB5lD!(eIdP!AGRYFxt6{9Mvic=-1%Bhl7-juIj0JS=C3? zPc=X_NcD>9Rn;)n2-Rz<(Wf0rmEgl%}~u!%~8Fjny*@@dRw(b^^R(} z>RlBc`&FU;`6~GD<$KWATGjii4bSws3DgIWK7_Ol(npZ~?$5{nppLMQPoVy8NS{8_ z&c0{VXR3ow_2;T1l>bWgHRMh}`UcWzNZ&&GyFcgtK^W=Cs)z7M5RS#6ZseV^IQAyQub+|f0tx`v-qtwxAz1pZYtF3Cg+NpM{y=uQY zsD4RZOkF}rZmn*sZm;gB?yT;r?yl~sep%f|-A_G0JxKkE`c?HX^$7KA>e1@4>etm1 z)RWY2sHdvmRL@Y)QqNJprJk=|sD4|$ME#C>x%$bIch#%Z@2S_S-&b!?Z&H7t{!qP5 z{gL`(^(X4x>QB}C)Ssz8SAVJgTK$dsTlIJ9%j)mdH`RC4KdT?8e^*N*6_JsVx=3@R zBhnjLB(g+gnaG65l*r1F)gx;~W=9r8K6%nKvSno3$c~X+BYQ^ni5w95O60J}*CNM8 zPKbOX^3BLuk#9vVj9e1AJaSd!+QyXsjBS#;+-=DW!?kl+#quRMAw|)YN2Yax{6G2AU?C z7MeDi4w^2S9-7{o0h%G25t=cY37RRI8JfA8g_@kmC>4LU9>UU8tsbqM;D1M866j$99=OwHM&-Gc64rZ zL3E?&=Fx4VJ4JVk?iJlPdO-Bx=vSkMM~{jg7d<(8TJ)^w`O$AjFO6Ov{a*C?=q=IP zqjyDr8vR-H=h0tAe;xfz^x5bO(U+sYkG>gwC;FG@htZFtWjduUN~hCVbatIb7t|Hg zmC}{fCF+uO6?N5gX}U~Z9bK+2U)Mm_Sl3L~QrAY;Ue`(2Ro7G3M>jzCif)+hHQiX< z1l=3DH+8dgZ|N55mgtu2R_WI0-q&r?ZP9Jh?a=Mk?bjXD9oBuRJEl9KJEJ?NyP&(Q zyQaILyQRCMyQjOa`&}o|%k>JqO0UsJ>kWE~-l6yC1NxWr#r381W%P0SM18Wpg1)l8 znm%2hrO(ml>l^8t>s#wP=)359>HFvh=wHzf)4!&FT|ZSnT|Y}dS3h6BNWVnCO#iNa zwSKLBy?&E^i+-DahyD}&9{oQ3A^jKnqx!G)r}Ss_-{~*uuj;SsZ|ZOBf71V=f1rP) zml)&*g+Xo58uSK>!C`P4e1@Q*sG+1G-cZhvVyI}SVn{XAFw`<+8R{778R{Dv8=4zh z8`>K>8@d}_HuN(LGQ4USVHj_$1vaUwxNvS9m8_NyM|SU_Y7+d?;AE4 zHW@xJd}!Ea_{i|F;S5LQhR+NK4WApnFnnqF%J8+}gy9>*X~VaMbB6B>7Y&yU zR}J4AZWwMFel*-M{ABpq@T=j0;WxwYh9?H8QEm)3Mi^DbNMn>S+Nd`gjb@|OXg4~I zZll-eHwKL_8H*W97)u#rjAe~+#sp(IW3sWlv7)iEv8plEm}X2j)-q-qYa8nr>l*7B z^Nsb54ULVBO^wZsEsd>>ZH?`X9gUrhU5(w1J&i9L`xyHf2N(w#UopOF9A+G0e9bu8 zIM(>Oae{G@@eSit47Wd}5TE_gh^$JG)0-BO?s2jWHwn%c9YZOHhE2c zQ_%F1shFvRsgxLs>nLaRmXxe7_ z$n>!Z_s37*|J|Y7r>1?T&rAnRpPRlgeQEm2^tI^(*uQ~vI#m9x>0F3Uo_uGzXu52= z8dBezZkTSGel*=N{bc&t^sDKC={M8wrY9z;S#AzDN0?RSNOP1q+N?Jl&1SRJY&Sd2 zZnM|yHwVoxnTwfAm`j;s%w^4S<^*#&bF#U-xuUtUxvDwUoMuip*D`0CYn$ts>zeDC z^Ud|m4b6?sP0h{C7&-fCX>Ma~Z|-F7X6|L~Be3&w#{T9(<{{=`=8^y6G1@%V{JMF9 zd6M}J^HlSj<{9Q$|Kjs(TYpE*fwtzE7nm2B7n_%wmzh_XSDIIw*MN1MdA)g~d9!(o zd8>K5d53wYd6#*Qd9QiD`GEP5`LOwj`Kb9A_#HQ&G@mk`5yW)XeBOM)e93&pe9e5_ z{Db+H`L_A4`JVX~^L_I}^CRmbsRBmIanYmc^E(mSvU|mX(&(mNk}jmi3m6md%zemaUfUmK~Oz zmR*)Tmc5q!mIIbUmcy1KmZO$qmgAO_mQ$89ma~@gmJ60kmMfNPmg|-uEVnGTEq5*V zEWcRpTOL{-Ssq&?R+%--s<0}pYOBVowd$+}tI2Ay+N=(%%j&WEtO08gYf)=)Ye{Qq zYZ+^-HQt(NO|qs~D_AR8t5~a9t6OVWYg#j`S=MZ8jy2bsXDzTcur{)?W8cKu%-X`* z%G$=-E@bIo?PTp@?Pl#^?G@6!t$nTitplxttwTb3sCBq?B-I^d9b+A59dDgzoot-~ zwrSSs)|uAX*16Vs)&-y!Sr=QET9;W@SXWwCTi00ES=U=PS~pv_ShrfYTX$G@T6bCZ zSod1@TMt+dSr1!}SdUtdS&v&!T2EQeSkGF|TQ68IS+7{HS+84vu->xXw%)bgv;Jbe zZ+&QeWPNOv*kraao5H5FscjmY)~2%=Y$lt2jEyBHLoyQrj}y3foHCYTFvyI@@~NM%!lF7TZ?acH0iyPTMZq9@}2qe%k@t zA=_cw5!+GQG23y7=cMfv{Qu<1nb7}dZRbP0V7p|yV!H$V?kw`{j{`1Hw83t&TkJNw!|t+s>^^(IUc_G1Uff>NUfN#9 z9&3-cC)$(jDfSBXO7<%DYWC{(8ups@411P6+n!_3wddIj><#RV>`m;=>@DoA>}~Ar z>>cc#>|N~L>^_hFt?IZ1@>|^ZX?Bned?UU_O?9(8I>GqlS z+4i}RgMGxlz`n@7*uK=h%)Y|D5^SsOYwYXn>+Kuuo9$abZ?$i?@38N*@3QZ)@3rr@ zAFv;?AGRN{AGIH|AGe>hpR%8^pS7R2U$9@YU$I}aU$_5Yzh%D-HSgN**?+O$hulN^ zBl}~!#36IQj6lL4g+u93J2VchL+3Dn&E&8+Yz~LRql_cg z5${NJBso$X6&#fuRUFkE)g3h)H60m_EJwB@$C2yEa}+olI2t*cIGQiI%YfO zI_5bRI2Jh;JC-_@IaWAUI#xT@IMzAVJ2pBtJGMBsI<`A@ICeUAIrcdAI`%sbI1V`u zJB~PxI*vJxJ5D-IInFrFI?g*TI4(J^IIcOaJAQE7a@=;@b=-6O;<)d4=y>FK?2tHR z&M>FKsdTEH8mHE&a~hl`r^RV=I-D-2$LVthoJE{PoyDCcou!>+oUzV$XQDI7nc}SA ztmLfXtmdrltl_Nb%y4EovzU#W~G6-8s`a+d0=c&$+<4$hp|L z)Va*L!nxA9+PTKL&bi*X(Ye{V#ktkF-MPcL)49vJ$GO+J-+91!$a&a##Cg~V32Chb~Caz|#7OqyVHm-KA4z5nFF0O8_9AYQP(loao0)LDc2d- zS=V{j1=l6l71uS_b=MEBTdv!#yRLh#UtITH4_%L3k6jYC%pK-dxRq|TTjSQcb#8;( z7#@ML+iJvp9SPoAg1 z)4ZR zv%|B~v&*x`v)8lVbHH=RbJ%mlbJTOpbKG;%bINnZbJla-bHQ`TbH#JbbKUcU=a%QT z=dS0T=NHd?&qEJiOOHH{Jrb|X8|GDbm0q=1 zx45^Yx3ss6H`W{PP4p&tQ@j&^2PcpG>dd7F5f zd0Ti}dE0o~c{_MJdAoSKd3$(!d3$^Ndi#3^dIx)lc!zq2dq;XldB=FidB=MvdMA6Q zc&B-%duMuQd*^!Rc^7yWc^7+^dY5@ucvpH?d)Ii^dDnY4dN+Hwc(;1Ddv|zudUtvE zc=vkudk=UIc@KM!c#nFId5?QfdQW-Jc+YyzdoOq|d9Qe{d9Qna@ZR#?_TKg0^Zw$! z?|tZf{z#@Ei* z!Pm*x#n;W(!`I8#+t=6E-#5@V*f+#C)HmEW(l^RC#y8G4-Z#-V**C>E%{SdQ(>L2U z*Ei3%z_-Y^*tgWT%(ud~(zn{T#<$M5-nY@W*|){F)wkWZ!?)A7%eTk3*SFtyz<0=Z z*muNt)OXBx+;`G<%6GmM!mu=`Zasn`xE_1{uF-& zeHz~e+_?4e}+HHpY6}_=lb*f1^x#9M*b%LX8sobR{l2rcK#0jPW~?bZvGzr zUjE+xzW)CHf&Rh%A^xHM;r@~SQT{RhasKiCiT=s{DgJ5x>HeAi+5WlydHx0dMgGP9 zrT%6975`C=ET9M|1L}Y# zpbh8(hJYzx3D^RTfGgk$_yU1IkwDQv@j%Hy=|Gu4Y#=_67)T1F1S$k71*!z91*!*X z1ZoB{0$G9VKu#bxkQXQjGzc^bGzl~dv|`bP03|^a%6{^bYh5^bZUS z3=Rwl3=Iqqj0}tlj0ubjj1No<#P>90(i=91a`_91R=`91olfoC=%?oDG~0 zTnJnWTnStYTo3#ZxD~h^xEr_^_$6>Z@G$Tw@Hij|%7S4*MNk=32Q@)$P!}`=O+ic0 z7IXw%K~K;Z3bCvvzB0WlZaTiKjmi-aZKka zuPMp=(Uwj5fkb>7@G#{c60yD9Qmjr-BHGqc{xA_t5_xIn7a*do4dq7&Z1Nc9SBi*! zuTp-V!1g=kU1bVmeuwgV1hzV5S$Q`iw)ZpT{jsb}4z}r(-$}&r!go=Jj$0oh`rV_v zFP@d5-vY`%BBI}>1c`1ABzL*OJ{Bgi{0<`eSW-5}yPhE-v;8nd+_qAfg? z*@_Ucy?vCwBCx$)o%wAdhUPhq*}4$1y`nXkEsuzPM=1Y@2qsBRI`bP$L_c{=W-Cj? zxmrf~qXJvgTFh@O5!?Hb@+C4@8OCyu^2*FY+ZxKBB4WRFvRL^bBDS}M@{a|!%-YOv zC=vZOQT{t(XkN0JUk@Vs9fUltjqmHQG8~(~F3UF~qTfQw-xSzVbD7`AMC`+#$81-K zSoc;wvy~`dL|Zq?UngQ+_`77G^W%3S+B$Y%wup|53b4)Y!t#c0j5wzwyR-b%9)-4d zd$at5K83a+{aF6f{u15e0TLb7EisVUq6Zh+-g|}F_6?Khl18&VyEPEpC7%*8zS3iu zZ4eP{eI_tl_lbHv_;Nkwx56>zQz2`1HoO=c0ME4 zy+iq|1%hv)PwN?w7# zc+(F2FG@a_jFr3xHDvJgex5uWp3^r;-jLLgz9v};PxXgCtsnO^Cv5TWV;JlG#V!`KOJyfY@8&eTrBn%!#WJLRycP!xB2X7Kr~5-N$3XC3w3Bt z<7462;Gv9_WHc!ZIdn|OD?T`9?BEc zIZ1YcBs*S`Er>l7BpYljOd&*qP0>MxMH-h}UQ$0Jt+2Jise@S3aubr03&W3##faF! z#JaJulI+xiO!&hjp_xx+s&E}9GDA5@L1unZd}wGaltf8-cHM%O<>OPBM}j0j3%*_> z)ELB%Z3@N^m&hifR(jpMTA8UiF{x>(HPY)emefgQfrlDR#9m^k8@BA?5@AiprNk!0 zN*cw+!_v-vI&I~i8I~lodL7&gXf4IDQap)MLVlQwi%*u+&xetwBtt9cA1|qsj~f8g z3Pk|przwajT)Bxb2{4n;KP-g2x^+_7$XI}aAXuBQU8LrvR?iHLiY26pbjHL=>Zj$$#E063{U<+EmX=?;Ze~gz)`=^hl0tQ2%1O{1lZTPV(C(I%3j>Ow zJuW9ERGl49IPw{pIqCW7&}#jh%(S{S(&4Y{;OwNOXBR+pY59el1q(BotuDSEaHWOv zunRuT^T^AdG zOo!rU>oBwrKpeI6(^{5Gf)xc*Sdftl*Qk65C^57k5(~SEi-S-Ei>y302wP%KOs(oM z5JqMmUW#BcU@5>9;>n(o8$+u!HNQ^XnB>?{e4!ENi-r%~v9*B*Dh3Cg9GWL+tRY?| zTNa=!Xc(#%iaaYfbVM_93r_@W87hPh1^U3?3ep;|iw>_N*fw!1fGNWZ1vDJ0RW60C zML0X)_@}1}yJH@-0Mhbv)8MQPsf_gMdFc(|HCm&B{DO2CJwGOK*nwcml9+~`o^BEB z;Kj3oj3zjjp$lij%$yo^8|K4K0rwLEkt7r_-E5I13atr35ib-el3ID`>9tevNQY)k z0y|~Pv?RDkh=EAqqKAtZXDTbVup(|t;0K#diljj%yNf};a>=kE;sn-)HbN^18^Md~ z(?%fAYv3}$e(CHG3<;*1!pVeRtIUVxh^sL)b3D9QXgR4oET+)OgxiDQq>D=gHylJP zlndI$wF{BNl`9YBp*H8&&x^8#<4)YZhi(|(Ak*<1=;D$4TyV6%SH)h5^=JUaFxNSp8bqD2{&Mf zT)4QP*{54VT7F?Cp_zcyOJ@)4yA)7w>W*`*n`Zn*NX)lT~_xUyvs3u7yvoJ3KeIkiD5uME2&oz0e5OfO5$2(O?YvaDO2QfP5)PSQoxFL6Qs!e=0*lTN)(vfnUK7{XNUNz~Yb^Kxz!B z8Kg3hc>8T3Zxm>57qcVy6bSsfLmq#`eqs$@^%5Ezx5HPK!0)yf)*B1?T!DtKG6>B9 z_ZJg>g4W<4aFJMOm~@(xIQA-N!Z3CRxWG$i!repevxhja&$Rbc-O@)k(p z@J5Iir~_g<4j}gP60i}lG!XkqCS4hb{bT^Kp8_C!ZGfaD&=2ei6!y~}H1;zBi2Y0g zVn4IVz64knG>>;VXzX_l&@HfU0qq058;Cy#f&bMy{u;`$-P1rn@CvXf@FuW1koR{R zw6Gs;=ll)ITY-$0Dxy*Gb z(0`{NUN0Hy;ZJ2z{T$FZ?#9Gcz!=aS$*%_x=XD?u=VKTU&)+dX9}vHr9QQ2zu6Udu z{4U~r;4&c26Yu{$&_2-ko$W~c&h%6uen)FO@DvdH;r^FFV?Q^6KHvi&d<~F98ph76 z2%ylP*HeQX*S`sf^W+2KzFLfQJP^M2<7q#YK;!zX1;n2$U@ahTFBdfKs||s;e{wr# zbFkz1I|A|eaXV)hu=~N@8;JV@xBn4e1-}6JjR3;eoJht3s{khhv7b3W9QRTn9=BCM zjDJ1Q2iyU~{qZwkOCay(Fle056F^w1l5c^+dEkCxUZi%e1A~J0?t;d7{+-I)f z8i>~=aXVsd20vWaHX#1^ff#QIAdWu{h~wb(%7ca_@KmRR_6c+@=tiI$196_(0danK z{a&Dj=gkn%xSq!Wab9Ku%L)7!gU0o|28jJ`1q#>mUeIY^{~Ufx>m$19T+V`vGeLUjt%&-jA4*pj=pgK4_d*?)M&OyzYGj#Peql zu)Uz1`yBzhaKGmEzshf*eq}+s-+_ihBDqGq1=NCm48(Pzjd=FHg!khHd!C@3AZYw4 z3B>c1`~49U!B2QxD^vYiK#Zp$5aZ|!#D01K`vV68TL6aw8vrK)vAy-uhz>0|0M8l4#e?v1>*X86^QFn+|FxY$9;s`Cy@Vq zU`epA1mb-#FaNvz80zEk`vM4G^Y)M1IR*9czDC^tRj}jn=Jp$)aoi7qnF4#b`dQ8W z|0<)Qezc%H4`^J6e^$RZ_`xOisb7*v^ZHf5jz3)20gdMi*PQi5e%vl*JMhDOS#0kI z_GE#51nB3DV-nbLAK~?9fEHfAx&6<$2 zFBSZv{(>K`mj(U_;NKKz5Y+1ox|Trq1C2kt9_JXa!zJ}!?32NcuM@c6Y|wvapI8k3 zcpX>?eBQcP2X;7xpSI8Y`6GS^{txYe`fz$)Q{Nz9Fz;syDOlD z^Cb2c>)YTjysnAM|EYdR?W$o?{>pK(gWrEg9RD=_KdV<9;uY@qf9C&p%Tu6zJdSDq zq4Salai#o)_1&Dt(E(WdFZd4zzjlAY@9)m%ANdc5{_u6!AC+_abnwG<{0^}7U-0Mk z{wde~5B2j; z5J!do;Nu~V|2D)M1M&U_toRq=4v%8@Z)v%S3Gg9&^*RVlp%2jTbIaV+TInG}ZZev4 zlat}utLk+S=mW$LzVHzhcsdLo9KZ)d;^E;kcv=sNLpJ;$9~Mg~7pjWD1fLY5Gd}#6 zf)4XZTX`tK$K2p!L0*nB4jw~*8JEC! z9J6~xBusBe_6k;k6$6mHeIWzv;DSR#sPo>e5TWPuRafPxz)QpD*MA>6m z?6EpBg&vpT4_-2_(8GqzgexB_vPa?Q(K%)cJ;lhpaD|~4dnPXAh0n91DfDm*e}0Xb zLeB^>6P_OE#h!o*Rm9a859f)Xd3a!w28na=Qa_xZG6y9(O%|?D_Ok=>x+4jzekzsQ}VONZF8FRDZOr zb(@~O`$}$0TDI@q8~@75by@fJ-TSnM1FMqv>D#+)cUWQ(&!afU8&voZ{6>G_SyTl_t_`+oPBTdYBCL(TrS-_7hf8$sjI(bUQ4cKR(%G;mY*cb(z%g0 zRAIb04@Z@a_4BgnF_~<7eBIpiNIXGaIx(A0Hzmd)y=8QT>-2K`EUyM))X#&^pIfXe zrkY3G#Cqrrw~fZR`(r-^=WSS58$7CzkNqNIIMxk2Fh;r?F#*T!OOf3YPk?4S);(Bz zu)c?NKt(}fFxH`1%_#UK7^%p|XzXQp!q21{8(Jf=YO1`j4r;I+ja(zV6pM_`@i-rg?U*RL z6Y~@KA7V-&54keE0}_3Ele=k_{AfJ1_qcDnzMm;E5%UJkm`7>Ayv!Kvv&cUki?dnL zyvL%5#zM}Xh520T><{_rmrTsd!)#3>W>My%L<6{(d5TGx#mV3(2|gKQ6gFd4z8U}L zGI{puES#nBOM<2mb>tHBBZ@R;>yn^r#M@3u%;}~OhS%EF zie&%OOJ!=vg1@nH5||tOX5+|gzsO$38V1QEN;HD1G%98Mq!<4juAawjOr(*~Y$C2- zXw@Wq${=8@P=~S^oHaz;jE|*&mf=j{TS@p%8dhn7oQ6{s_H_|TNzCXP&hyUI?jo1X zib`G&el6hJ$F&k~qa<<9K~}Q)4Z~_^c|=_eE+ZrNpMY%kKL2e(Jq^HpJod(y&GLWM z$du_o#&6!aHZ%&HS|Go{tm&NQhOPn`cU9P?Bd_RfC&rVE4y};hv^?XllTp&()(CqU zUmXvGhC{R7RyZ7a##Oj#WH%mkF|`D$!-1>7wlaE`qa=y~eQo?ZsJ|I}do5z*vSAIA zvq6xVm>0!>-j>pUIk>^D^eJ`Rmk-_+~(f)hzF*7&$$JdgW z2fhLM9!b72KHB3U$++63+-d}IFS*ziATkLaZKdNQhB4S zmH!}rE}xYj$)sXxx>~9pR$b~%b)_!WN~iT5`hLA#zpaZr=2dv}y_Mbu?>X-^?|rYx z5B+KWPy9}Qhu`C074V=kNCn>y?g_R8Zw8+PSA^GwJe(Qc6|N08hcAY2hIn8|aJXlI(!?EKPs!}-AZmOIj&?9O#Rc7NygBa)0H zWu%(4k-Nxp@*eqs{15pp`5pNKxrAOuzeLMvmM)@e=pZ(f*-WyKO=i>&G)74qwNir>#S@n3Ual#3?OCT+XS&nk{G-$DeB@m2mbf>$ce@X}UG72mL!iOQTyh7wpKKv-k+0HWw1%#v8|ZWN zZRmdko5~v5Q|x_qDgR48oR8*NzKTD_U*HFMz8ER8VxjnFaaepJl5(7^lk??|VgFC$ z73x~W)ePAG74?p~N|)#z`f~5DyqmmQufywtwjX=cpWuJjuk{=Jd;Jc7qyLRS2NQ!i z!M0#;@Op4OC-uh;yWibH zc98+JgpQ)MbOG&v^z+#g_B?xwCHOTw;M4i{`AYsc-_OU29`V<5s(eF^SNEu2s6Fbq z>JJ|sq3iVl{dZo*TMLWq@d|>m!K#1(^B;%r8oX=q9dYa`tm#&RwcXlp{ipS*RcX(# zpR|8%f88l{7COtFUCw*X0H9pvrrg`y2i#{}K}L|VWGi_&lCO-;q6_JRbPGL1C$MMP zYwRey4#?K?cD{yp@g80!{zdE&uZj;uf&5!wx=B7IUy_5=P&G_lujcDFbu}dH_MQqp z4e&sUCpUcGz|vNgb+6TFy=;A871*WrIQtg+ZhO7G-9Buev6IdU{PT%&So%u(6*ivT z#X8vuR>{}#LRl@>%5HgDdg?xPQjORB{9=DP+93(rgLi{(hNqtuNWr+;#34GJ~|DmETA9Ldt>k zTl7Ynp-bpL(H-<%n$Nz$u4i?uo&A(;WpA+4Y%sTZHGh$>6fN>fb&aZ5|E>pH8ifecg!r-tt?e{$9-|xeV*R*o z^&at__Nx7t{p0?C;JTnXXbv6NxcvF}S?*@J^go$lLpY>-0Ss@$5ir5gAWR>h@Aijk4Lp+%WpE<<)i3-smekhiUwTPcx z;yLk(I4DNSlza@)WVA}Dc6Fy(t~RM>q1^!ZkkGy!rN`>Ydb<9(?$)pC!}^#$jTlql zUG0^4mdCvs?-noT-Q)et+YAhLdV9Tn-hX&W|2m)eoVBIdVjqE1-$YFAn949Bq8Q8jz4xz==q5?6hf=)r4%F-Ndhd-`BZ?m3u z(r4&)+D#A8BlI{u1?&a_wInOS_uo8L&Z^inR?nJP8(V~aXf^9#8_^qWV>{VC)`KW= zf}LUcypR|1VqU^ax!@ys1)l^zs^_zLjxXR#_%g(pb-WW^wVm(g2l!!roS(!C8vVr} zF+`LIOL$_Gs1j2|J)(P?Xh)y6LUf4r;z{uge6Jg^^N2VBAIz5nWsyvx=O=Q6ESHny zG&x%~$px}qE|SaSYPn8slwES0+%5OX!}6#+DbL9Ms!$D4#mZ6wUR$B2s9Kd(In@Rm zFTr07E7Tg*q1LNT^^DrCy43-71kw3~I;9diUk}uSbdgS?KOx%F<+@5wL(Fc{ZF-Sj zs#og{y-`1@yYx1_Q}5F~`lvpk&**%w&@1way;4tjBk-5UB=kbF;TsFQCEhY`jknJ0 zM4z&GA8YHMx$QH=%zR8&M;QM97PcG5)+;uiv_`@GMYdv`ZL+wZ5( z^LahbA5Y-!y?1_`IdkUBnKNh3%)RK+b=n|J(;T=`DNXCdo&IY0_h0`=L>G^Fwpe?r z;I*-xIdfkdyFkC@#Xec)oezxhewflG0J|C37(EX4iNkDLdZ_}$6zEuStp zP|e|m2MoR!9BAgdo9~U+d`l;ob`AWsnl?Abq22M(6?JylF0FX%ketDVTJ;c3TT4{X zv}tqj?7@Q{cY31dTt%N;EuZN`5!$X|6_}1jLP|?Nd{?)wtBbVLyEVF*Zvg$>3rN++sE7P>g&Rlxs<;LZj_K$Z_S*rVc zxYsZZ(kW{Ya;8eAT{#-T6`%pt^#t6r{%SO>>&&HBEx!I+ns#>wB2YK&cHB=tD&5Si zZ2$k`{|glG>kkKpcv>~}&(F8q*4)++c2KJ(OAc#VbmQ#qt@!inn~#w`XFz&+C_DYG zf1AEDJAFX!KRSc{;9yM~P)3aNG<5s*>c$NI7Sg%;Lr11xV3iT?G6p3Y${RD)Q&kR# zxxNXlBLa#7n)Gq{nr;L;qI*i>TZ|=QwyzA?_2>%6Fmr+MB)mT1cO(}09K!F!%_;mY z++4!%5jEb#Y@Zi7eDN-Xd5qD>m1~v=zqiBT^9Lxo)Jh9MS7&r%Nq55G<8Zm>#B^9E zb!&LJ<#7r~cSNlA#8bvNG0*kV zN4et7mwIz6yY@XQ{uupe(7s1RoyVUV@qj{3toHt^l-^8A;PvN$c!hyj8c@rC>Tiwj zcgOw&x}Y%B-!0~O<6GQu2v`kGGeo_{p5oVF#H{B4v!=C1QLVKmQRh*Qs0wHwPbKQS zMhJNWm0iz}EJJlxd#$HUbuJ1@0*tGw*sSR&E$FDe7a>{%_&>%qbt3NwKoxb~0fDBg zrSo~vwW;?fU!|y&M6*j2i?9bw;Yv8#@jTn-5n(Sq=hw6(@|(K#2keHh*^@&Qhf;Ic z!RVAx3~hF&w3!2UFzN_kG*k>tctpUF@H@l>&P0Q=TYvi~*c5V1*r#S-r{Q@LLy6l1 z4pHMw%mBPSN5P|zW5Ro9e;QXb+G)BoXz?4dD8Dh&qJk9Qm%p;oiv}mUSp#a}w7DQG z`l|LCr-5yqZBsS(`mW~g_!e_WdvRq~Yzx1(k8IDWJ8zrmni1P++B%uOr_`^ zPq1=l)m!FSy3fWUh(CS{1{K#+Kv0fVSX6d3MK^l7tGdHRfoO15y(;#ac`uxV%vIe9 z16{ia6shVq^3mg+N!KR)QY2c}S+&m?Qn_VHv3vbXRj(SyBN4qi)oUSAx~PjM9f^gI z8go2VuZAM-*v$x7^;=K7)hY?-6@;e=lXF4v>M0xyEBTro9O6FE>0VRfl z628jqQ--?NzbyWU)~Z7Mh2kP7aaYTtX2QL9(>JLUsN`%r9~65j`EL8@_Mvs>y=M-d z5!-Hlk$g=Uz7l~#=0~NY>hP+cA+OiU+ik(A+`^Dn0a6yXZQUv${-S$a@$KfBdV@{S zM*Q(xW1}J{1vJWSUs|##y3y4g?+P+K<6FeLX5Mo|vUnGfxCT8+^jRd1?*xfmMp65q z$}O=jAdecJ7~hY8{7e8*(!-Q=(i8PhP&2+I6fx?==@+e-(c${9#9W`J<4T_1Rb+65=diIn|jR)A=DC%7( z|4ayEeIq0F%t`qg2n>OQ<-L`x18^E~=fjIH1xr>Lh|6d{wpQ7*T_ zknai3ceM&=v3j$94?+hhA{=r|+0*m|GhK@%0f<+3hNcbo=!CJTO*qX|i5{xq@J=Q4+P_Mv!r(t%WJ5op&;Z3QlMMwq_5Qo;=jo3TRZp0B{zTJp#+kxg)ViqxuTLhiq zNF%cgUgwKosn{gXIGjoeiAE*OWN292SQ?S<_9M*j`50r9hna|922l%y0H1*TJ97vr z5Y%D3)OEykpd6o4ols>bT>lQZSd%V$|b-hTiFwT@US=UhH{jH~mQZ z*+V~l^z$WtfM6#jkcmUo3C!Z4&acm+PXLjiUQwcXLh`~#bF`3r1;3C~i_l6$PJQc9 z4NM`&Y~Y*vxPk4K$YxeNLw5^>EB9A@LoI~Mi>t&PyA88FRMc1XnLE~o=jbYG_GNgQ zy1Wc6T(bZz?D^j*wC-lKGL$gphOqo<1Cz0;hbV)DrIhfv?1ZA;SJe}A$NmngPOWgq zKE$00?)VuVH1s{Mn3SV?kS{Dh8*4SaIZP)B7?$tbAx2^4el$)gH%_Q59BPz(oeoXx z0Da;+jiq9r>_g*&u-_K-ib3W(LqR1^zzhKqDHYw)br8x2nhvct0ii`=d1)vppWe@H zpxP8H0u43TC@X%USY(#VFE=v(*(}226r*166AN-2(U%Y;0wq)d<9eVwL!o=6h01Ij?Fi6L^YvI!UmEcP@rQsoaWEJM1$%-4d8Z=1 zs==2aIk9ul)hJ7jf$O3P@tyA2R-*WgKI+^tJjxfC72WaW6n-qKT~1V+<%=}RaVTG0 z=tF7TzbgCz*~Vph;-8wwTXh&Jf<8QY8vSzLLyCCF5&%xIlZFt3O;CDzH3=LdL~VQP*VRiKY_NB|b@YLbPI&JN77509_YD2JI z$A7HCNZYaZ!J(7Fl+Xjkgul0Fqr`34YBhXzOWo!kw*+h z!rffU#Ob^Zx#ZP-sgzaaeEAGs!gAkPoK%JCI#LZBU@7F7^7qg`Z23!C1`0Y&f6UGu z!5_axB1#dYfQa0rvUG>hyHMXexomGL6-iI|ELC06b7u(MsMH;U4MK~5>W=NhUDT4w zakkzNvT(A@7r-x9zn`c6LBRgF=jzrj*xXzPU zU9zdpi(pM&0QzDitt&N83O@TbNb}4CC|dN$C8}ugjqHJ1-J*(6-L4RzOB1Wh5_P^7 z(bK%BTYuiBsa-J+IcAIKz1$*%@zxL~O!58VGjkAt1fP=_;ex3V52q~%XX+bJ#f$}k z-UeC_PEgRA7(L7&#AbKw3{=<}&-RY*>j>_z`eJp-pq;_&S+P4-OsQP??IEr0P_;RV zl;db>km>EoIb}vq&SG2!uBzVcpi_|oc~;w@BC{MwxPhio7)|9+b#jjcHJcOXt{vJQ%9&A%IYszyK_D9 z)7m{0z|FJO)~DUEzn}&XX3(kKF`@`*&3mXdq<$Q9=z7-Y!1b7e2IR@5w)hw;B0e$G z1%;aA8>I|;bcuWz&+!JOilv_?i0Cm^G%4eaawvm!iTP!%Ifxu~pVBT$pus+X96~c#vLQ`wRCTF5uQp*??O06k|tYzc5bEG9!jFNEPM1$ybqKr6mm=+ z-taf(Va}H=VB`kUA5RgJ?c&Dc2V|BjL2}R2UA)ardb4d|3%**zck{Lg_Vb60@Lao0#)p{i!!eIqNcm;%2gb%_aC;Ru#q~WH8%N$y_(?Q&&0M@q9dpSH!Dw1jhAv*D7x(4GZ$Pe?WW@ zaWQW#?G_i7R?@`5gNw|dCAdm)mErP*J7``U{uIiU;hThJxK7L>J);BMB3{+#JCpycL zqtXv0JT3z)zkGB!cM3IRog?}xyW(9dM}&hi7p#jWre@!7CK=jnD*cagKpL9hLI)~oFKjzl zgn>^xrKU$4hie6{*|@5bxoe&6b8>2C#?B zpIWT}YI>*%&>ASr$%PH4!j>^%i3?D5MOg8fQjh-6NqZ18d|2W;_fYS3Wuw@(irC7y z;9nB81w?JXNc)!*y(p)qHnzq5y`tt1sSU(T;?RrSX^N6LBTdy)_1(ax_XDUNO6TzI z#uH=Mil;OYiP3f;WuqJfNCSvJwHcl9VE{-h@@}eCGtp(P$}V(|5mntQhhm_bj+G51 z!m9R}NdUFFSm!o?eCBzg$As+CRQSUbPWYs;P~qz-{Hwnn6&|DT-Pz$f!4K#qSZ^Rp zJ-?FeUjMn${n>nf1r)02#)fnuoQfsZfIPIULIFW}HfNY^_h^xNzZ?VZ1kLjW?s44j z#no_{=K0ge`GcMG4}S$t=U_|7#W7^`nP=z=z;s+VO@R1q z;FRd8515H~8j2xezj30{uQ6B*4M*gkV7SN(7FiRdAWeYTz(E28Mtm5D+%ZU8h#HzC zRq7HYvsnIDlcdR9d<{*no51dY8N3r~1^iSP*9sE@R|pU?+@pBRkh4quljTDkWdVFl?m?%hz3CLN)n9qLq~B zIZE`)Od|PHdd8dx%Vmp^VBi=;A;;8v7BD`u6*^f15V1V!=B23})zm{Z^)&KpKrb7r zp=;a?tVywf(Zv3z!$>+h zEEshjm?0eT)aqhEs{AMytD%WOVYw9P#2}=EP#%E;TV#0;LJF;i;z~L<0Ft~0H44ip23Ay-J6u?r>a7|61k@aMe*tRv zN6YD6I|vp9rz)K(;SV&Taa%RwopLI;oOq{P<@2|C1D2f2F}0@)Wmu9s%*ET>`nCIu0^FIUTFd+`(Q` zsq#6M_lQ)-%m1aK|4uhe-$QgI0L~UJ#wg6J$}4~a0!U5I3a}I-Vy&!7QU7p8DpOS- z8WS)js@h~69~Kq<#EP=S3a2cF4HFrv4u~GJw>g;jUYR`1oy*Z;F;>`Ks<+4A33>_Y zndv0-W_1!Tafe@icLy^TE%3lN6Fr>EtM_D|Nz_e1v$ztYH`P@Xf~twSDJ^DEYoY9c z>l*M#)J=jQ$-;i?Rx%~RD*)ER`fAj7I3X`13P;#cdd$z8Mg1hi6zgqgL&cOk*}UXT z&xaiY9Tu1#B$8=*&vr_hwr<0VnB|Ig?Thvgao_q9Uc)J0+&@Y4=+C2q$qV%-=r&v5 zK(}f7-E=!gzm0BZ=`p&M>nrItR$oH56Lg(!!}W!9bLoD%<>|9=6O(uOhj=2XKU*cj zf^aA+!PO zjnt)_@hxGo*ByHi(-D@xG+`|vVwSC=Za1~A+#SCYkr?tCn4mGdpkl_knx|^7J8n|k zGH36NxVLKhW0yi!N93BrFnG-K2J{Vh_d|7=AYUkgbY9?_&=`_;{ezb4e7#duo_kcD zi#QKRb$2>XJLReKvWS6&1mg&=!!}0bWe@U-ADHDhn!O+oZ%Sitt;$VkAomrNdmd0;n9hAa zB@KHUIcM)+m3*#BUTGIL1@FD&Bm+dsRornlC@;l5ui_jk?(jhiNy?{?oRWeN)gNAxRBVAmyvHVBzc$7lVy_IDtxACh9yMz=C>N6L@Dg zP+@Kk%cpL^z#5jX{oO(B(1{3SeB-yshy_Git#gNE&EE(~M-zjHAQ@F97?yfJl0nCV zua`M8DBq1cFhCFI#LgBgbvV&dA+HB?RK2uS3x=`8?5F7fxzTChR~}Gd^fIxi`OYU? zkd+r2w}z?9NuvjAVT@?ca-a9MtC)_{1kU;SC9`1mr);`l55TsMLg_pF~)@DASkS&Pgc`S)2~GH`corGOklWf z7XC>ca7=_a0hmU4swy4+9B9e`!`ap~d$vI<4@X*yM86&blt|@%d9H)BK2phtkb!m0 zMoQD&USAa5R0J=Z*f3Bj_~d!NIqSD4ulZ&x;@r1>1L9PVHw$}aPjZ#@LcP$=d&w+b zyI_*5j(*sNUtNWexfFt*-Y!bh?T(ZEzP&!DdZOuVyE%8JSxg|t*F`rC>b)OP)s^OO zgwHUGI4cFOrQnIC2f=k_A(w&Rq=BSE8N?6*QAHqJ) zOb-o^Z;1mH(B#-N2B8I^&z>ZI3FS{TTnuCJQ2A3l>+8`H;gtVkG$tD0l5VzwLB|Zq z!(T#(ppQDyN6~d$Ck>)Lx~PehMZz*U8c@+Wp~IU)!*b79j)!RB1R*)(+&nE&??{Y+ z;ZHad@WTmuL~f$qBbqSCI|dDjgcI|<(%23Q`7P8omC(rGm0}LTd>#(&fShy?pG|#% zV$DLRaQO*N8BVOeGO=1uyg(i!i5I9ZZMtPKe(_(EFYn6b-U#(>6V_E%JHv9mLJnP9 zNxm=^xL^Hg@J)aoZ+1tKyW$cO9Ywf~Ah?!ezs&iwt+=_GA&( zmj^#f^n#CAs(nTdIVrx0Z?{HR%LrqAXK9K( zjUfaIUL@IvR_bQWAuJypU{Fys%!lRJtSFMVoXf#c`B_l~b`%Za z;Ad2pn-^%1j?TGg#16}CSy8;?N*L0J9G1V!ilP+@&P941=DS%@gX}08*~0SXbd;hK z<;pZAKeao5bH;gpG|!yk&oNJHZ^(^y<;J!c$0H~YLB^2whMXFZ_H)QuSZmpb4oNal zqI;ad5Ek|NX3cqk6hIw|%Z}IE3|J z@Q^tx2?i=NJz&i#7Hd|3H7C?n?OQn<2H#M&Tl1wtwjYOjc-MN%sS5SU2MHDc^f=Dc z%v0J2pZAh+vIS-oz#Nb4mj8DKuPJWx#CoU&a93+-PMo#~YedfOPO6Z+11sal%97P4 z(LIY{L4#3W~<=?eDBa@^;sJiov& zwffXGhX+@{l8v&*;!dzn!+o_odbkCP!H3Ut$6p7`brx!KGN_U6LZ|`Jo7}hm2yYg8 zE`^@^_V07p02G&|QPeFI@0x6*7`9MEwFaPgzJ=mBN1%9$UaeCl18E4}=;1T5jD7eF z!n_5`*oV(EPs6C^aX;OXQ&%7T=1TW%m6)pAjkvfwdbnccAESq-u6{S!4Z%#N=Z_C^ z$4%5y=fko{bmL-lgNQz5A-Wpm%do?lj$MQrau=h}#IA8YqCWzEy}yBe z7^cWFaYFQFSFs6)RiiL7V2S#Y<`!(`$PR;tK@06)!SvZU3*DIX%u}ONa^S>NQ;pf6 z6ApZi-bbgtWbYW z49i*D&}4mbCEc9*0`OuWH4-h@{NPtG?IBIE?w?2oq@SYWBm6-PfT}hnrcty};Fn9W z+ze=91eMU3m`3r5X*5AdOd}-Zom8eOz7CIofzj+i4J6N?yVWuzl3wI=$L<8i@LqA> zN-8!iPJg(qPV>mS-(XbVq?@L11*({85UMB?&|13XGL_=jbaU#DWh#?Su|TEhpc`gI zNYQu%jEO46cj%_+`q8DV8w6xd##N8&8eG&r6x-3P5SC%F!??t@j5dg#hKNz#V4g2` zK=NWDIaERREF%2bs+nL0Y!=;3-SW38(H^=vb;(u8N+i0KX&e2;!9}3)x47?ndCs^u z;r|GtTQudt$c6dT1hE4mlJ{cKqCT~IA2yXtLFt)co8ATv+grPtx0Ph=j((k&$WPRv z!@y_E1-|^+X^w#N>o4JHD*Dmco$X`x?>uqmxDVl!Qyi2pd`W^6$vrfg^`H^q1!ELu zjE`t$tjrk25qX!L)JsW8l=4&^eStPTt@M=|!_Zes{j$|gSV9R&*pU&V3^ouS1W2Ne ze9#i}N)zF7azs1Q{tth8=sT64iXBxSM8sZk2-6?livd@8uQ3&7mz(Z_kpOB9+~>{H z{K2q(HxmUYZ4bkA07ogz!_uU{tO%tcnRsQCO5IgK*!pv>5$!8Ufk0)Ryqf0)<& zEC9TOcbx)|dXAYvgj`Xf{nS2tXsA_4j2!!VfyAsEZ$DJQXcj{V;~ z##K@7b~&r3%4@eWtNju;fF8-_IIS@h*4u2Z^CpLbd}N>x>q`*G7J91A1O%5;2C9ZH z&=~Z?JK=F&v+;_)0|=+%c_0W*zJz}8LYzg z%82~oomL}PeP-OmQ;d)tYNs@Yhj`dXQ(o*#Ucyt2klgcytqLF!3HIznlZX*@1J#dU zdmi@G{ON@!KplB2{1>p!fW>=Prf~t(L5p*2nvKXoz(`*LM>jUPMue0z2uHH)fv#jK zoYd+-3yg=+DkS>sVkh)|2rN)x#?LS3rtzaCQ6Ci$2(taNHLsKGs?U(Iwf8>C6mfFR z8|86Xnb4|~$!}%K?<8~TGixc+HIxZEK4@kYkRR{0DZzb@GBsjp8`GWE!JT9reTLHY zPO{LWIhS8Po|P$s9?f=IotF>-{5T0(vx0 z3&>ennIIZ0^eC>iu#>E>&(L%44=EF9CTEKX+{l|?hHatyH{(|*B^sAG3mzpt} z4Xb{6s*Qr-3Wp%_e$Pve9&t0RlD~Fz&s)^g0-F!_I9keZDvQUtynl!t1&@Hg>2sSX zt_Y;9j9Bp5LGU#=_S(I7>(&6ng17G_-7pqiM}BtwJf4w2Ai3`}sRAd+hc=<1`sMp{ z)55y58STZ3iDVJH1pe{CkTFiKqUas+Y23o-LiaVH3tgo7^*(gNKx#Os8IfC}s_$do z>W=kqK;XqdFf=0LZ?F{!gk)@43WcP*1DIH9@*?hw5h-l2M&Tx`^^^LVJeNCnL|#8I z4ybF%6ItGbTHzZGf%A?MI3qtM&T(apv$PIh>k43=a~>_jU`ZbPb6#gHY!UPgYG0Dq zVSSq=&iTy}=;jdu{rAs7!pSE&yWg&pYE!Ukv8bb^*TL`|!;QD=S!&<)m!Q6NP9^Jy zi6T-41M<5FMG!0$tZJeqv8$9!ts)F(0ojVx>oiZ$gyL#I9VPF21;IPyR=UkA5m-{W z7%b69ZR|of$T6`q$7vM-b!Ags86axXr3yncz;8q$0Lz{o``N{e3deFOXAt;)c{Sa_ zB|>Y|tJ91p=9QwR0XY?8qHW&xl!Ic7kdF#ZHBFWzB4h;nH+?| z6ZK_Q#m(VZ>wOP$j4AXGYu4wbjqE4M`!{l(chF5?<6~@wbAD7Dl!yfU^2e;AyDVH} zNmi`_FiONz;4BA`!yWrIi)XBu<`@Oh{#d(zA$RN^fU*4Xu~~vN6L@c# zw967}QHiA0v9OaWAFZ&A1fcon(Yh&dshHjiH*py|0vWV z*yt`x@Bo!9QC9-9FLX%Y39RhW#>sLjM#{_SM*Rr9wgja$rb4u3ibnPL{#MOA4qL%! z)bNJ`K@8O2hw(O1?@W%MEm{~F8X+Ahyp_W9DTJg$mm$Rb5;20>I?%YOo)>)NGM<-$ z>h9Pzuxo%>fEjkhGjfWQmI!6>>5e@_?SiGHbTj?{0kn+Y&JompdGaz^?^;HVkvB$^ z14XevC{IweM~b1K90CgL0HfBX!DN+us2l}RhZYXgZJsCTmM#@g%K=^@%`PSlxp|-y z0QrAD{)sksu0CJXvuf$r*S9DolLQiEEdJ%{ z%UCM4YFG)Re{$^aSsMq9us{T0-8I1kw*SR^yYUk53WeRVrMXx?*a_|b0DO17YW%`_ z+}F|meD|#zkPK^bZ(j`W0<5^*=G%h+e?T6TX+ggRAvR6QrROCk#szdkcbo?|EMg6y z3MCpf`Vy%z;-u#LASe9t$-fgE2j(O;g0$Ez3&HLzKB^9{9+fFLf|95AQVy(pnGW%x z_zWPaDnw6rd=@B61K3?zD2^P&ry67zinQ2aJH0;&5@lph!ZvtKYxprE_s*HRn9=-PXwdhql%;Q{;& z=61)(@L9Q29QXs7(XrMz^*Zd&eGJcB_u``f&&>e71*s}i@tv!oUp`*~5@Im8meD76 z9$a5_c;(-c*#E!svgqN7tFU9PBr*4%l36_Lm@c`LOjA4r)!0ooN-la4CHKo8(M?Iv zDWH#1BrJN+cDYuqQO?Yx)+6Gdq9{Its-?I|G$=YX_^2~l?1uc@JORYbX-Wh#G>rKq z>Jsnz!yw$S84@%R2P$`3{5Sp;ckIWAh{{}}5-)LHG6tFD=O6~yO02h7u~DAE^#|R} z<q-B|^H8_eI71bmrorl59 z^~q688spN53DL|RMT=U{g2c-%aMAk`TuMGdi55@!b`hB%y{h)n&I8lM zODPufkp!hGRULN6njqzlly3#@TWLsu6V-+$cA{E`8;!RSdHimhWp2z+ZxXy-&{3|X zn{waV#)5?8I!m*^e$0$QmUNr{Nt#uoRgaKngceD&8@QZoX~u29#10WZeQJC!gTQaW zM37{A=yps=c7;NKgbc0e4*C#ctXYYNBa!+QScwH!MDF=3p-mm=77|*?Hsa~t<sVm1WUyb@IUdB*Yx zE^by_94<*L$P!pDK`~HVe13)uk3EYb`{gHeQ)+H!rX7@AQCo#8(dcA%>M}34SV6II z6{-e$Ku)FGN%8X(tCG)wPc>4%#@cK>C5=ciyky=3aTQ=E^YGi?+)SefF4a62U7~q@ zhN}Y4Z{n^w_%A1S5d4qX6k53x%%2C{s;N8e3rBO!A+WIxR_BIvV>O`#zSC^O@?t%~ zx&Pf0w~X5?4z?C4M-W-Tv?K-!A@TMPK&~A&rKZd8KSLT1Y9ZzC@d$Tez2UL}T3RUB zOD1rV|CB%r>g7nFgnuZQG^~O`a??k|Bq+!oznwC?BCi@y*qL$!0g!T@DwDk5N@=il zP=WAB1nAu?Y(fktWjZ3kq!%;o$9LI%&C#kQbAp)jz6TLQh3yo5+15VAj@cHmmPPDE z&XXHx6x7st@;35s=TUBG2#xhPwzJc;6X48zZmw;|0>ma})*vzeroHZvzWcGOoF}K` zvWOl0=3r~GYLO)W55FK6J-0VaL8QEjMgV1B<*zEYeqXz&Ifi#2%a~ zH;EGn;P5I>8jWV!#=odL>z%i+pTX;K*_+&PXu^cdng#Dop*0KMn*yhI3W&&(N2!R} zmHU%t1QX{cRy%lx&oisUYV36P%2VE_2Ee*RN#Z)*w!YezSY1w}5i_dcTU3y^p}HBp zVNv(gDMr4~rcN;r!Gn%N6soobi{%@(1IG8mXhBSZxh4D%jg>Y_jtWT$$0V@H*x%uX zY4HQp8NiR=iAB-rIp%0FzZxdqfZRr#W~lX|hg0U{mdc&nO$EDepMn+a%eGjO*eHpv za21)uL=72QhWKT8C)Y>pXyGihHQ!qJpw5itAJVSevFAzg#O$5?6`#Pfg=5G#QO;I4 zuA&<{>{A&Wqvu19yMl5qt0pnwj?JZ)Zuunj2D_^kv@g!O6xLCtPCUISl)Z=zg zYMUw*@~z(jNWXNUKuC#U)DKBqt9}>?C07Yghog`Ui9%*yNC` z-k+>u`|7~{_zf9FSQ?{0qU(&t-XH2Z)cKV-KB7NHQz`SL%G4t2PcRU5i{?r4C)fs~ zn)T*)RkQY6@mcL^^Irg(AzWR+eqg*(%$!}|LCu8i6q|stq{Ra)*kREn-4^YG#`!Y* z8xVhoyaP8_1ImziC?sWA@8f1CGima8;SB5VQ;R@uV=Uc_N6WglN`tSFsIA6cD_P2? zvB2<e-@RcaTMZgcbEP%yU>_A_SZp6HqofF=CnvifL>L-cF zq#(AVc5S2pm)OzVLQBNV0w@;?XF+2U^>fg90yz;B!ihkB3|l%_s%8@V{DK+xa;2z0 z7P1)EO%He$`{l#@ zq)r*sX<4WP7C4wV+d16$PWxPkx9#A4U6ZhnsR-l~_3 znPQqm9Xi(ghNI~5+Zy#!W{r2?9aQF*aq`y(9uSSjaa>MV$8o`))H`XP70(M40Glyf z3r#u@{xhN1^sXa9wj%7p#O=9LxxZ{3L}oIE5U&Xt4po5^ty6*GGJ&-oNYMZ zR_C$w5%dG}R|g#}7$1pA#vCKpS5I0$T#{7k*&67X)8Wf!EbBH4H z6hT#=WKohnIWvnNIsFw!rXR}^`k$tssM0%uI-F8e8I5u)##r>BG}mYF$vqPOorfvu z5%8%alLd8JCgT>UZWd!3r%?BEqx<>8GUpA>55N0{Nny)f>5P}T3ula=7MNg|dz4wO zdd&#xZ`3Q&JxBg^x){csqZ&PDZ=c}`scK#NSd<654 z*7y)-HiG1^Brj9_zFOp)28 zMKvQdMSGEP3{-11UeJ01?fh5(=G-p+Xbg{@rx}HihoT@l75hIDIhN;H2H# zSD~dXp9~VbK6x91)i-jTMshsh)I3B9t*(B9-MMwqpcM5})AgBv`WUDBc_*SyCwl0f z*%&oO?BV|F>B&2Q@lorfz~*inPMLDvJ06tjfOS&gJ%m;IJgD?pr~hJoJX3+oAs-*~ zq$}`)hq(f;(oNI9v?@UHTmgDeZNQ7`ikstGXl?bE5Xa&MR_4VHb&P08{*~BVY4dRB zJ6fCn?KTo8q&>`mHXowlFRjg2$~?lNU!IQ}G|mx6YV*BoXyiIdp}#Jp&@ZsTyW`(Q zTKVOx*#(>?H~fkV_yD*6Q>A{!8@2#UEA`}GK$SRJsV58XOn>s6f%^QJFi2(V^Yd_8 z#=q3(&4A)RX51KWLp4OjZvTG-xXv4Q>>POD4%5zfJo- z5XJjCEYAzoU#Oo)_kis~Lb_wmI6xJikzgA(p5g!V8V}*YFsb7ak)k6#+_CEsXZhRL zYDyvDZ62(U)F%JYUaOHtLdVxspJA4?t;#tAQ?gg&eHK%goxKwX1nEk!K&Qkj@XYYS z#_W?r-ULZ-q=S-lz-bT?0v<{kZn@eIsV;KI_n>n?9;p~8L<7oKPT2AeMxOfg+0T&+ zwxxS@%-RR&*eHvsMHzyzy(@_90=5Y)nb5sZbTNLXBMP4ziiloX>C%;#_9t6y-YR@<7{vuBPPu7s z$%-3Jag!-d`Ds6%6<0!W$5Whg)V?z-?l_A38kRv_d1{+kapbApOPgtR<*I#2Rvfu% z_r5}LKJ2In%V~BTR{9ZY6BMh|0W|M?ZeB1D*04b`cdQ;{_4gLz7kqOvj=A;#9=AGD zkLA?V&QL|ah73_{X>S>FQY&L!?O4ILA-FdAHz?<2jevCPYt*?dNWTT7=;0#ceBe=A} z^)AdN)4rh2WEh&57mGI&C?zH?q?686<%P-SGYLXkqe2&;$bK<%QUo)=o9#kZ6-4Aj z6o?92l(egV6wxtJ&+^v=apM04MJb6Tjw73AU`oV;a0+_F}|73>8?11lwrFiiuT(;#v!|57yJFbe@Npwo1a`LjJg z))mC|xw7grjMD0AlaxfHB(F0UOlN z3@_UTcbH;=lJqm0kb*<7%Af`1P#~L53p)uL>n+uuXAkmv21^?x9XQY8S0V8q8c^SX zSEQOLo`+^EftUZWtf&U2=O6U&aDy2mxiSr~rY3Hzrb)@7G|CRk&rA(u)~}`BgmEAX zn-?-OpBK;vslQKV6T|L__Vi~mSs1J-$LPxJX@psgPJy#&8@^%AhN|MV6n8lS2|*RG zTyr;1d@KN811!SHH-#;w*iS(d59JsJ_3#6ZchWverLgkG1UeGq7r+ijkttuMFm}xy zG0m^XG#`6$jcu5+N3$LzPcx&#m zqK+jwReM)|s4S5!*6IJ4;nKm9r-~IW%09-o67uAwiy%nIHr-4 z$c;78{uxW5y9hIlxbZc^U}f7{*2qQl4;~4gtz_lRyeI6w;SoJ06h8Y z=8b25c>*d;Vnx+D1OJ3*e;GEB^%oH6!e#g=vbWg)giWIX>8+%NNJ=x8vZbe~lBT8J z0RsD`X}cJmuVI&3_Q^CNC6G&{Jle8%Y>*jvgsA@Iw_%Tz%b7tL#Z3J0Xn)1hA<_P+ z%QK%r;GJ-OS%0kbMU`8oVd05B?1241x`91&emN?W^2qvA`O|0v9&n^Bg3Crs;~j#< z(`bX>(vPOm{=nt$sT$hk;QjupeVp(eplzDncGWlyyA!(A7i_S?@E8!nLFMF!Rt9%M z<3!Ng7#Zy!WDF%D!cIKg7~BaY>0DFxe^H5#r^KN1Afoeda~=WUr<29<3b6cWoZ@yG zPIiF{B`ihX?zXfqa}=*}eyq+M{cUq6Y&d|d*plw5B*v(K02Y~fQ(Gn(f3Z_SARN&@ z8dmZLH9Ya{#zfJuIKE}|_~^ljt4hKzOhVnp@9l6b@i(SM&=ED@GPtyLIkMinQ*CWT z0@$1aqQxxDSd;s|Hoq&HXz6*9z76as!YD=DLO2j`D(hEVR%0+& z6AUIeMz&^(e1J05agpLjl+7*#cRMfBk2ReHCy}Syi73j*kFnHG&4GnfdG&cTEYK`sL_~iCX`kIdaC+n-)xSjD3dD`W z%EjCZC>M!TqJU+hasEd@g3wE%Zd=ub8(40fQ3F zOT@et{8WeY;7KJuTSUsL{AK8s*gY{D<@@C}Y=~F1@akmEQ+be z@yEFUfhC|WV`bHf3C420uN8@ZsuDk^5+^T5^rERNT*k$ES61{rR`krND{!``eh;Gl zdBuNr?27keI)aL04=V6Em#bqPeh<`?44b+FCjEy%0DUnPeviU!j4Hgh9T8Jkl%o9E zRDM`-EO)R09D6U9&z*G!MOd7+B3-^{@K(+D{#!V|I5wOL8xF}^e5?>RzW96E|bLnoVj^u3}tXG4Qe)(w)HI1tZ8z+PMV^l;bQMgC$W^EWN za#+&3*|{clF=d~O!}=*rze1yHKpIR(&?O(I_-!iwflU0mCvMg}bUlyjRNy(wx+rWA zo>`dSN6C|T6g8ru8g(Bg^7S_2_w*nDU24>q7!ROt^T}nfk6?b;?r=l>n*+t~G|SpC z7VA5ss@vR8Z(E8(u^RQ24CPO#Z_*=*1C7Z%k?(IUOT7hJ)<;w2D?9PkgcV2>NFk9E zhmv$Fd?I2R6@*3DVl*n;HWousEQROvs-kCkl-kze2>X+cj!ZGXS9|m=0#`Ai2h$ExFccLHiK@$0ea}Q z9x>9dZvdo5D%zE#5+6vHC}vGUnqpB5r)~r?dN{Lf3I`(N+H^)_qvP8ATmdYNzuwYI z-$SumM%}Ue-N&W>_i2LVar!n2Jd24gVHD@Q)-Dc<(B1gPjwfi$)ORh;$e8=uzzA6s z%GDnLby`a-n#@8U=Ol7HX7!LUv~1nY`?U<5sYa@WkEpW^AT8>6^@s8DEDcCt^FP3& z6!Q@*u7e(S4nGkPiI@_uq*q@;Iqp_Dgq4HGz4+-6+M>1`-LPQ!Rp^2XW0+d&NS>T8 zM(S7Mp)uJ2a0>}s@_c;(MNLA~T#h;eQ8gSjPM<_k$0MqoqloQGILfKJa0kPxhT-M? zhRRRX`~&Vr#Ukh+_I7e=7Y^|eBXRm8K}o$MP9*#5PUEav>?L0LCK$Y5aRFKbn?RkS zb^`f9`x=bn8qD!1y^r`IS&Gv4;K`r-6P|YQlM|WWR+%|t1xQwg9CWxpl~h~dm(w76 zkc@&DT`%H^shIefLyOm&#VdUEJzjA1-+#!EV8)X;t2@pvHfZ&1hFr6e$|AOOb>8wd@8ta_AM9yM(VQ(UUHmXjXOB1Sf7N4KynzO$~nr(cL+b`DEhXQ zfn&DI(Vl1HQxCL)udhX&0zI&VX|gv3lUF`$ccqPNWB2#Od`}=+quiwcPYrA_=PTlM znSf7ZrpB;AKN;6N&*6F**H&DArn~j`pNkWS*yETCEMgzKE+a}v#twzohibC5h&igs ze*RCJ>_Vtw++^KKy4r13LOp$?z7o)=t?)Gm>BkD!k!`gQ@pfBX#vcx_+X_=yoatEs zQIWTN78~9;S>@IJE-}o*)Rgspt&jfCW@X_Lj%NCL~}zTnz-RqL^o0NNWDwt zM7UpGOuaX&*}dr2I3J;R9lRl%Z-oHFwG`KPaYb=;;QD{0y-&2*{%s;D)KyA3TU9jn`+GyOR4&oXpd(pj_Ak1Fi={f z@_8yVkIK8K1)1JFDsQG{d&Q#e#C3+KB}IKW z)`D++9m{g){44GN-BtG4Sp7kj_uS>>cD0;$^; z5|?pJ-bs1^`C>+hYo%h_Z=q!r=m8Js;QIx&Px=BrrosQM1-g-LuVm71*r;U7}?NPRPP$D}o% zpzg7W!t?d#2f!A!WSbb1!Qep!bpt_7Gi0i6F^%^)QFsx}UW)+j8d5oE?z)d-ilGvM z*9POWW1o{YSBu$hp0R)|go~AuaFr^f8F{BMh8Dw6heN|6kzY=tVI$p|m@&a`rlp}N zQMcHlz_*AcL(o6**#P zk zsFzhxnrj`(0*9R!NPE;EbQcDV8cgok76;p#-%cU7e~)M|Tfs~<3Cxvoy@PAjZJOsE zT$^$I9oO&<&2tv6CR{h-64v|ew`-oC;(7$vv$!_n`ZKO?aAn3{J}JpOnVfA@J6;ad zO?;sV9Cd{7;^Q)1wCy90j2LweXr9sjVK~Kl9uC08VPRm5lT!7I#WL*3Hb#(r8G`dC zunA`bXKMap$XdI2oZoB9*QEoJ*-0>C8zsml?2fllzt;2}OS1)PccQ_-cgw>aOHb{? zT%GtaJ)N$@befaMS~vxP8JoKwU8i|o#Pt@gzvDWL%YCQj8Hej!To>ZH71z&j{TkOb zxYCV{2Qt6LQ*=5zN#US)1I$(eQ!TTeJB|f%It~V(DIG-?7R)E}^|BkO!Qa9r{DAya zNmr#J!A|29^<=rAWL`Vjlz{9xIvGvqDVftwRvnP{ADyhhN~YP#8Uk{~(aA`)AiK&Q zv>I@u`R~n>VDWNepLmZvm9z_%ps+t=c%A6L{BE8g>Pe>06N8UnXS92dctie~DT2Ob zEt+7%5smkw(|wB+k{Kk8(+Uat6%|FRsAO%T&&;|k9x6beXrgTayHP1Yz7vkr$wXdq z_p{ZGzY^t1L9+}w0sVcXCh@HlMC^)zj);j$$Hw&#G5PvtrqDadnGlsv;Tif#@*If7 z2UND?=}5EIN;4X1mRMIvR;+4uci>V%=a|vf{o0(F+WeugUnVt z6)gX2vp`Jl0|!NW$PtAA4`rh)*2IaikdGGhkFd(}dL#T9+8wkoUkl4@xn-FxgJrg~ zx^3xD97Y>pyKI;!;Yzw;tPM9N2ZgiEvd^(mmQ#>Xc0dmci9ONX{cHBnP#zYhvvPaY z7ZD@aS%$yF0-ups@1wO9+(=(V$O>F5@!Fms+44qR&& z_?E~&W1SP5Q$AUQ?X;@A^+*f#C5R8xy%mla*9y~BwU0}+!FUt*_!#;<3>|N6$b%c> zbC1I39v=Zh;N7@Uxt_HP8AT6z?Mh?hI`W*t1{xDiZ>sOBFKIOqF2ut&J_GB2sjB~f zSa*Ci&4uEP06fuLsJ{VPxMZ%STQM2z?sM$&v$*BILH_~Nqei$0M`(D6{s9=DT#dkj zsUoMa36^#XSwu)v|uYXJZJ&)|cz#i%hEpHKcjfKN7ket`+ce?*_` zhWc+x7>JrQK{mx$EMVZ)s?$}g2tEX@R1#I1|*L_ z{0;cn4w%>)58SaEfh#E=9w;Bf^nMI6nXv#O8sE)@$zy0_`8BY1tiKo9`IktNyiD(- z+a>xQy1`yaw+r>%bepa3qT4k6eY%~a@1WaR`rC9X*SFDatiF|QC+M5$HeBCGHl+);#;pD;uOLW6QWG%~;blnP;3 z9;(ms7I@|Kp*pD5`?x6$WD)kSz6Fj(PPXPLAehO43^Y~_A#YwFcK6xPFA|UR-N&J$l5o z0q;vtfibwExTfQxcknz8Zjh8-sBk%H9DGd51_E+U6SAQgrq1HL>_5j{8zcEtH!*#5RER|R+mBheE2 zdfzA!@%kI(Z;y;HN|b*ZzFjDPL^`-V)!DSC5bCUyHhN zF8)Yyk&4M!jrh=xmm?i3Y#(Omd@i^~jNjyM49mSZmkJgWYzlxene7S3`Q_qO?0}7Z z$S6;<&IqS%jL6UxV=p|03M?wn_SwChCmbZv?K94Ces4KGHdI7XNlfN>;7c_);HDqO ziYxJPqlkR{clgDg##??yUm>FJqMjn>+yHUdC!=(;&XRn9OQJLLY)%czadkH6Xd38Q z4G0T4a0=89?^Xce8YS?72}Z%MuLB%Pojh$dJ_fEmNQgD+D=4(9#-ALHqiNMVAfV5s zz?W+p`4ff_S&Pzw()|;HiirjHJZ_`3zVm&MD=l;Cj&382_46DN@m{?okNggV$)EiR0sy`!e4AQ65mP6LCx5;_sg0?r4ir{jTa1f-w%vBB4vimx3Rldzg0=ll@g`RXGa_ZyYS z9;VqlPCve4dLGEIL;loY7U45B;AqiJRt9(??n5*(S%+;<1fTXn4{2eEhX4so7e2o5 zDeO27Gaq!p@g<}c(D`PA`LG~-E=`RVVR68c;WLPhs%ZuCg825;W5l6kzVe?Uaa+Bd z7>A6y^UcozsSGE)i4Z>gsaCEL;Ywmv%&SjHCxqnkSfHB;^d)L|D5l||V5Zm$C#JA|!(+uD(KiQ?II@`r47jn-0D{lnn!9kY{sGEt3`;s`=-6uw9g{G0 zG}9g=)Ha(Qpg(kn2+kaU;R<8<`OuzroTRiK2e>SsPXg|S-U=rjeIL3ox&iH$4)@$j zZx!hsTCDAWoCE#ym3(2V<$vJuheKa+&KlejM)0@@mkp*MO|i(ph`@7UpS&1>wAziC zk^JgU(EQRCTuh&M1T#EXx5Nw9B%i~UVAvyX`B9$O-@c4GQ4M>e zbvO0yz?NE@rpL6;7)}2ZW~>L5$NIoIzLFotBGs-K-DVs;)O16nM-LSk;~~{?0>+_S zsQOUZF2F#8-7wHxT-Y)q0_bypfgM=A`T@up5p|Q!S>Uu!@EpiB%;D(<}de z2X=sBn6GvC6SYpc`CFFOm#B4_BhqTFV-Y&YnvGPSZq@(AWa4x<1yt2K%+Y!qs;95O zPe;t>MQ!viQBgl>0G=c*7mZb?_MhNaiEhgz3aCWK=}Rd0dY{M6t@H=LqvOZPF^+a) zYpD<{>5%;pkY0Ce{18-avt^Irul_lz3(P??lKa|oD!0QbKB~IFIKH~j7y+yJP*}=~ z*3R~pU@zm$8P#RxU*p?*@QR_4M8LYE^B1zXD6`;afmo?P6q-p&L4#q>Y}ZQdMV;z^ z(~zD4p|r~F`+n(;tu55F7cUzS-bLX{D14zEPE}LsFQ)JXb~wYK^zn%xD58ePjI zc=&s1AbvbrXlQt}AUu4Noq#~=c(c-!;n7MXziX$_x8l)Ca2p=21Pd|=e3=BhR@ey$ z^uu_g`r_P5^gn1%jsR&Qj^0Z!)p+q9#Bz%iSQIu-X>0^j(Mo|ogzxP_CSnUY_%ti$ z7|OZc&S|&hz?^@fg~_9Geu9O>7jLt3I_)yYVjy0L;*KY0qN5Off-=SIOvf%RMb_`5 zid#lGSK2ut3Ydw^DeWkZKAze?7;5FDtH3#Z@>;rSx*w_ObGAoeaXP_juwkXKIGIr= z@1L*P9}gL+2WC-gFDwc#)*O{_u|mQu1AoE~<@TTC(O$A6+UR%4OZNQ$dVU+w*Q)`i z5euxPc)rSdJuY?WQGc)v(r8y_GF z;1Ep+(f7^C-R7vae1vjU*kz@waSB%6LKb!8X>f={&LbLN3FR!eb21k|WS9}F0Vc?a z-(n8<4&Cr28dheH!2#uf6GGo;Lp|kn3dtji%A=x6?V=#66hTfA7(Zmy7&WE&TJBYu zvs>v^EQ7x2wR5IfbwwJOvFZQ!FSu0G&Rc9Se&;V!U1 zgoqJWO${oVR1-I1z!0K*Z4$CU5uz=vYd}k37qN{YaTDa`64XA{+UMzqRQvH%pO&YO zMbK6ff{A>nfEKZ+MQin@ix$Od07>5e|IEFcP0)V4zu)_!H}~$$nKLtI&YYP!bLNcn zQWDG$q+rH+EF*)w&g2Yk&0xBtb~<4Pk>!tIgxYS};dawO_A~q)J3Im3LT!yz@3V}# zE`2UNdnFU=M-)rd*rRjnGhC>x-950rtwAMwA?P>>_z)?&EFHp9Focu^ zj@9o%{o54LRv=4rORW&?Z+y|EUwx%0-i2148necNrKzgfs$e_uQnaF8+rYR;{Y{OT zXTkC&9dn6-{T^RlKxb8iBPb+bL8~ERY(B(Pe*0h!J^r&+u)6kOd-E8s6`)JQdCU`(gHt9C<^S8ZMmW2rNn?XTq0E4hL@rQcQSfDq%Du)?hp8BwbLy0* zQ&GbbQQRWwna-%+s;Cd}QdJ2u>H|5v;GPLFk?iBd zn*SRxG*RI6U}H_Ml2!zu{lupn-i1#(yx+xpGoC$o-o=xGKE@{-&!{a9FX5Vh>+t>s z&p(5^0xX;=j@=E_bQ^9&QA;i% z5*?~6?rbafwJn(H(^sH5)RL>*rGpFS`*hrrwM9HC~9lGIl^iTp`L~FG~F(ofjL2u!P0bh<6!YCTmk>yy%9` zkav66+$b*a{N357=hglG?>_bn3@f)(40Gt4)y;_2F!^kwan zV*Qy7GQu2_LJR~I# zNy$S}@=yxPKhC)$??g*~gDcj4)%>>kIF}+g+l~m%*~6S2+LkK8IXgqX1?TKE`4*hB zo$@U>XM-BrmNCv9wVjKBpaxF`p4oV2;<*M-5uSWJ7vs4Q&;R0i9M4bj{20&o@%#s# zHaz#@X~OeuJU0EL|H}Qo(JXU&-028(KgymQS*p4)Mhe_WXKOc(fvV8+eKqXBOr<-W zk=S`@#0!qm6D$jVKe*qu!3T#vkxR@vL5fRXVc*yQRn0aBMp9Tqb-}ZY>{ph#(UYw^ zN)wxvE>Yhlr_?VQHd+W(iUl<0NWEP#981Kl(}Tv0bwvzQX#NYmeII^Lz@ zD|S)Kag_dTH}1c}b`|b?pPc~3IkNreS^4d#?{12kUqY?v!@Y#dJlaNjwdH0ByPUiAFBxH%ew)h(yY<`LI7y>V zCqTE0Jy7;^VqM;HnP2=bCafDDVJHmFs5PP6J;*PwL8mAyIDUt4@sZ1zW}cVGYc~{^ z9dEhXT$vEb*r+Qq4jLEfxkjB!54(&yw;pyIl^#7v+H})xG0<1JL*1pB;tM#@mT}Bg zaZy>7TQ3*|lj%>R|G~)ua`(kLP(FN9Txu=L(Q6Uv8Q=o$X9%g2>~m-YYz;PGhOs>f zW>8lxCNV^sH55$;j4=`%d!5mNHXPZYNyHMiW=|<2N08Gi%tC&bS)=W+pt)WNc5&QT z1E)r1p6dMfF)5t~>qy)^gs*G4pFAhaT1c}9S~Fc=fu*y!5BnQ@bCW6u9?OPTo3A%e*XS}1g^ZVt7tD*Xv}7xQ%kK2R zLf!bt=;}D)YAc2_1`mcFSAKuIDt3({l5f?osMd|0+Zs5&uQZR;6BoeXr~vs&>t17I zOb4;ixY1V>>@2_r%_j$7#gq}tJmb17P>=5EnEf|B#&kFMyR85l5x@zT60kzZEn4D+ z>BT(Ys4!R9I3l%@*A+&(o!21+7m{+7C*ZCma=>P*3_ilo>}qojS20Ra8_iLh5D*KU zn4sbZ_zs_CiBIgpP}i8v(!J|)9y7Y)W9kNE9SZt;Mx%w%DHpoC*#eI466p$&R6WC} zAj^BP>F&}iysLr7b2X*s+R<&k=LlN~k2|ZO@<6K~dz>a`0k|>3w`~uPI}bkrEE*Lq z2ejtD;@jFIVxwlV~&?57iG8}&~S}&egv|dC+j(d zN9D9Rf#-afTp*XXlXLk_A~s`5tuhrsE6{1h!0z?ly}W?l`IiazSlHqn2Ydw#B{7=IaPs#lEcIN}T%e=?Vf;?PC!3aYAu`dsuUC>l28IUL(>HKRf4Fz*XRuHcA= z@eOXc@~~9|ejG3S*tWtKIJhz`5Og6^E;K$crql3cwDCNqi~BLgFH!E`EHBCmUsP_P zRgf7*iPt&Z+iBpz_+&oKgaI2nxYs!-HPYuK((j)q=`&UO_N4TLk@P)hhlW_ZZt^G6 zKcLd@<_mjAN$Clr(%=2i(Db>9^c5<7t4g1{cA)%(QRzoO9b->5<-KW2BK;_p{`xc1 z6GqYt?{c#TUA+Q7Je6$LAasQ;+$a;<>FeAyRq%zP=b0UIg&rsQa)gu1Lm1){bTA)> zk|JatxDx^bP9Pu&f>2%ld5u^X4Q?&ayC6~CTNM8PJQF`*?DD$cKl0l|<&u`$RG3JA zu1bHSO206PUW7?X?`~$@tn|f+^l#0P`b|*j?@vlk7(2Zeb)ux9-4u2JUXQRW14gZz zN)q@UQ22K9bIJDGat@sf;lCd4S6Nm9y-kZ2m zYeNJA9o7_Iio4hzfe%-mqiq>!yw>>V_OixPjnNSuN77?&T{Hao`9??d4T7jLoE^Zz zNQ+&8)az$DW(Gbq4r=#Yk6%6KafCokq+&hz%Ebx+v#Z)AdHYZ~ah#~?r+~8adi1=! zefoINYakLoAmRkhk`llK`3+2-5UA)Td*H4q)P%FlU$914G10<`_J!oDmIKPJs@k}O zOx5e`33MBuuKIeFT2HlA_Xl>bDsA;Po@`t>w*9Z^jl0{|kHXKlubJMsyK()f=_SS= zj5qW4=N$_CvBB9^kQ(S(r3v^dH)8``D?bc$uY4*#CeXb~3%syuxQcW!a#5be-Fjvo zm=}f5u3e0~5>gXa71Ljzy3uO}O3umCRjSmO9NdIyaS25*@982!?J z!nvwdD#*G>>8mobj1(#sve+&@W1sWQrnf=&#u|}br|(L;KDN7WM(kt?JX#>9awdthe5bpFUM`!kGv1b!0<~ri;{9UcLr?kS3bbm7V>zGxy z{1$-c_d|+w9La2Yiyy-~Af8hkf#a*{m3&BBpI#PUDl@lLm_c>)q&L2GPUEij^&`t5 zz4EUn^eWW7t+LC!2`xDQEKeQF-2 zuX<6U`38*uTu-1Q!mNvJ1@V8{*aIbrAA^9$T39T=+8IKI3kzV)r678X9q9e&2>l|6 zbS_U~q8FNKwVw0ufe+eT*P@|)Xu>Ql_5k2xovE0QvV~@zDd5Ke;9nN-qlwKH@CWn$ z5O`JFz`Z>P_=_Omk!#?CRXN(0sKYqe_;&kDh(0CZ-@Rt|vH7@7=5@lT#yJnG6BN)y z0~lk;UzjkbeO*t9e{+3Ghv{BFJtclCAV)d0*iOI%u_4&pE!~Z8j`&mZdY7P06W!I*X#rA1S-^R{0G_f$&(sSC0a_z&GFGsNU*?X&)#d2#DoN?Xr?*><8!0WoRu0RZ-DnvQ z7otghL3<9S@buh+Z6(-$5+RB#HzQGIq>3CrLtdOPdIm`hRI*%8MPk3I7fFMcjM>5$6(Bb^-z-MpzG0!xk|^1;{=MkV+Ir36K}}pAhlEuJ$?NLxK6wT>d;AE=<*9g$Y+U0kj=Gm@ z<(gWr^H~ zGK>M9;^+ufM#5c#6Lfvf`m-7f|3>sF&k%j;cA^K@0e!45wLZ7i-FTvpF)96w;p&A& z?w6oG22q?Y>crlFa^(POLLQHp!v*cG$Q_%4_z1zAq`jfYaD50x4D>0oucTnGqBcrD zI=@dRFW?ci?3G4wwyCMUo;Ku3j1vu!!QHA9bMLhfbVOS&jxlbs~XNTJz2L zhD&0*3SL&>eyjX2d4Ycm*HxV;zt=9mAP;n|zp20*y*&H~$fTdm8YxQp@Oxm3u=7#Y zELs3Po>~De#XVLec+m(Zsh{ZFrOWS*x11Gd$0uYr+%2gL0l}Todm3i9VM}VR&_=EI zTF+{IS?F^B^tmAgKZHJ*T7W(WK%ZTp&#u^O{a~3Ig-ED$0?v}*OamJ-o4KhcT&3DW zckM?5`cMWH!{QlZrCs19WU*el+cmvbS4HAP5Eb$DS{pl%_w|W{14&#bl+tpkeI^7A zVf{l2$_LRmg7{2>fr4ji;0IXv11n0hNW*lp1+UJ6#ew7BVGFOt7CUidLGUW3@bto1 zkK3@Saz^P%m(_oydnl5WKg#Oob+>s=P*K}f;f90gu^uu0#j#AVnR4S{S7&e2Q5vP! zz=)n!_}EOz1SdA_WMC)m&%vf6*a*A|vxlMGMd@olufGf{YwF`+kNUUJPdtw8ldHt4 z&?6gh*lhh-G!y)7<+9z?WW^@zAGIZmMDip+K5MiYnu$l5j4~*Z z?5GVQm{qdZ?J&xTL^2veCz8ElgCr%}Ylle*kXvNe_TSlIf{N8*2`K9msGhVz?7E@g zPuO9J%Iw|Wg$sPn^ zW8u|q2@vlf5E~1e-3)-ZY!I8y(yH(%H2~5JT`a`CXB!(R!9x_Fc1AEPJZ1xtKXF*$ zyY1ll^4O7ahAEZ3N%{b%lyd744%m3u?Ze@4q-1;#}(YZBCzR72uTVI#IWR%XW zY~#+YY@W`oY=O?LBy#6g(y?=he0Lh- zKxj-0h*EvsY<(r9H}(spB)p%v5`7*sOLjzdPU}K@@>)1XS zj|xIRrjIwKaha2M5?eAYyYy+%5xm#bjZtn%44V(em%SJvaOSA+qUi8iQU6LfLoy;0 z`w!N#RC4)_ghNZ3-c5<-kaMC$VGk&lJzmTE&tP&76FN($&l*Cxidmu+z)4vShMQqn z&T)c)#ax*S=OFW*$M$Kg_hL&$pVcsIE0!QM+{=WM8cSRtsTVHcDh$opNn)A{snf#J6+5bj%tb^Yo3c4D^}$C6ZCJdxXuiwk#+|&e zQ>Sqe5w4w2%|DE~;ZC$6`m93PWhu2OG|bXs6v`d)b3mg^Tj^dX=S&xXO2aKG#da2U zV$-?h0Bwb$nFtl#76NgCv;*{T9ti9MJ?7Mpckagt`;k)LBtp#@LMX3As09@RgvtS- zqMzA>TKf5fDpQ1-lSHU2^HQixK&UJs)a67Wgu3bT2sJNusxMk{q?L)TYV?PinFw{1qm)2qG&%w+r z)xarmDu@b&Cu2t!QgL{5%lqA!<&$M?L$QTI@GuBIjQhAS=U6E8UZFTktjatMX=E=P zbXA*5aypr;sWsn+`HgcIZfqNi1KmG6MRFz4nWq$}i2Ob>G{#H6tc0}&K719WO9I$1X zx4`JdYE9Ez3S200HkaRMRp&nE^W4W^k-f3g{pbi?E+`>e%7~W~Yi}3^x`%syh0as^ zdoV^nZ3ReVAq`qXgfzBWE#dEweO4WN2H;!BxT33Ve{Qz~?qsl@8&msoSQ4el}O#;xMW#iLPo%U=7RtdZv#>#Tl(4l5%LdHL>lSfM>!CUOKs+X*4Rl9N46n* zL@QGk#7dS%;4Y)+7Pc*AnG*-%yUT<|$}$MC6NkhKKPSx2V2sh3wDMME+UmX=r41pW z(d_r&8%4?lyEpA*1Q>pepYjDEn7T-ik$``nD-*r(%I-BS-jQ3Ux8NkJCIL*m79EmF=r(>iaH#xv&Z=n zE-{OALWO)S+i{_+C*U;4n9a`b%R3kZhxs_3Wf?CbBnQ~CiOuX*2NZd14!#C3cW9U> zgH|%$Ef@=CNMa~X8bf7i&4p|@7z+4bZ}LX0e@Lf@IeGN^5x=3=*cgI-yg5 zaWE%e-Dy;LL*_W5zVK%QwK#CT)S@%IVlTY6$sbOI&2K?~guVL^cJqt)a||iWuQM$8 z3Vz;y0Ds;=*rTPuZO&yx3Bv@Kv*<_58BxH9eZ>689{xdunIo8Yr8R$(!`G+Ap4ODsNv->?>WofmJ`fp)gYB(LQsnnYDzQaX^?H)3 zN^34e!W#1f;R-o&BHFv;^~T%KrC==MYHyr&?__iUtoVE%IJ}$4xt*KHrk!D~_{^Ux zG#KGqutSVH>QKKPnk|O86g1ZlM8CnnCmFbEAdtN-Of5qXrF57JM{~hI^nWw(6$V~2 z5J;on@LmMQZtIYVqFqfI}iZIui@$17}XvVJ%bEO$C4s)p)|8kgX z&G;o@E;i#AhHplp%{OcXQuK;2SIy?$M8Nss1%$Bf1H=F@x--nRsrlat5E$lnVo!D? zh-5#ig%i*|dtid!0^OuM()=-MR6IkJk4hx!(s+)vi^9|F?<{cmxKqg`WchReq1Q>|u zh%4!+gi%&tLAaA3<`r10Tnf;#LJQ*Eg9A81g#*i4qpZY&*qH=TR$|Q`1V^p~@slKo zdAZ5C_yKVzO4^u!xXlRpE8{mJe2^(T3p^-*_qu_k^NL? zvs>CZEzgdoa|MIrS=5uVA(}u~yCD_^Ipc&I%rw!CJn|uq8?&OS|>5 zsR-mG9hZoe!L5dh{W#BxEjH#AV?yFllhTO4ZqDG5aYFcEu%V2ksphFlZCnlxA zfU#Vx{l~a^QoGjx(csFo@gs3%x*V_YgP?oJ{I<{q-6yhas}~ak+$nIsM0_O?QMvVI z6|q4gu1iE@Y~8FP)=0$EL`2TkASOFN)hH3;6A>9(9TGtwRQG426iz&U1!K*_`&K*- z`XF_s@J}lLIPHpAZ!{=I@90^<@KK-+hKFIgRF`UwJzE$D@+xGkz}cPXgiv@Z^A2Y! zfRD2+0QhYK&v0D@s{6>{KH6Zy8wA#oZ;I&40x=HiD||*MM-Rd|6ju&tLJ!WUEa}vz zXCXu{&z4`ZKcvc2+MHCL7CSqZXNoG17XXR!EVTjtVR`2L+vTy^9|u!FVWVscd__Ui z!CaP`c#7VU@ydIoSG|UzySsWW z11tzWxPh$vRi@LV0L&XwL-IcTWjpV@SVL|~1R{e`Nf3t<5W{NBOVj{4=sZtOl^p0P zz>eH0<8PSNc_Y`Olv4wpxSe6Z_Z_taVH3NgT&YaG|bKrF!zATXv*u6$y-ify04+19}a-8kK3MvBq@_%tSfyv9=HZg5A^&mVvDEQ;kPEjzt8XsqT^vI)|Gw>p4;)Pz!T_c zU{uaZH|{jOhv)W-GqvV0-@~x`h&TB*uqWa!9-%b{84kEp97*f_1%XqMVMVpYTFaG) z2<*{XE+s(wsynK}ds%C_U>5a0e3sN3;MT0Xu1o}*KC76vSeAAJ+PAvl7}KcTXoXD0 zoD_STH~A-HnVE$ZDl%33i|f-dSu2~4ncLrc+7ViOWYu_B+*PN*E*EBqVu>4j` zvD~PxwcSUc-eL8_a3Q_6@d^0_QavgkIa(XFyrflC_y;6O-7wH&Pu386+&J^!r$-kM zpGl9+2$iet8~j&0j$nH(<7!@Q-!SfKT8U{JIQhMr*V}9NeI1{;M+2q8@*AYL6ia82 zJ~BLs;Lg9rE369_z!DJ`Sf@nWvaeDps9@?AYPYma_SPKaD#Oo9?<+Kt06OHHLA_PTK`iT$ojR21! zwz99ylioUprXZubQZAU@m9iX91WzDd*LZT89eQgbbV1|E3!*;QDtD#ag6DQTEARy3 zfyR@QqZ5FnYkJBzrz0qe=Notww(Q1}Bcfwf9_JzSGCcWs0`XLsPgkW(zqa{+)-n&x z2$fk1%rb;rqV`MBh98(nT{oG;Q^y%>f9sJn^KBd*lEJ|hZae`8;ARsV2y%O{zzq$Z zPmK=;K}>5t)i+k!g=0bTL<&6bu_jW+tf`#A@k$;X%rS4Dp_m=VH)nA+il7_qpaMhg z;z7_XJE+i@#R({a3hbaRN#lw0E#QNB`zisPo&a7Uz@NM;i3yxiMwgyH z0_qWY$3lSpql&W%auh=iih+wAYs}3klzb<(I0r^?lk*dZV-A+$4)sC&z(|OxwoAMB z8~DMcX&>fjrer@0h`6??G0(5zn%+9m^Q3*%=uc%+F z$W}?x$s|Ih@8ioVz^@ocJZOXHStRrv%vh`{K9E2G?2oA*R@CZ5l!g6kL?pEj@XM~f z-3DbU5O{9FmzDWt43yf>!q-3>oF%`K+Q3afA;u($vfJR8a4rF%Rck~o@fr{2gA9HS zi!2f7T>o!84Tp^GN1=yfI6Mrznh3o{CC{``0l6K{rkaL78uw?~dbkZ4~Dy zS0EQi&5=5~Aj=psGl>KxL|^mhZu1!djktin(+0OIgSUAY@c?%LbTdDZy*{wLnvl=e zW2=UKSp8-lp?b|n`I?u_%@7ARJKXCag!{*%D`E0#mMNIE7L2zd{4vOF`x#DD2KmR1 zE@;`srTI--^G*zUI35ir(;j0-pnJ6sZ9yx*Oei-`jEJU{2fFY48!Y>D$(;};;|82reptVjl* zXn~JW;PA;$RuNnt93u8qhfD6Ye*@HqF=K*u@BJt$#*7Wl6mPf?@$vfb6uzS29KP-d zd-=LG?B?s{u!FA~!o6TpT*`8kFI>vPS84clzOD|x!q*kycD^nRZ{{mE`~$wu4X@{G zLb#r zBW2qed_S_IsX)}4bX473O%1Mi+(4>wLyY@ z7n_Xv|rMGxU-VbOfd_v`augp#X= zP%=#GU_JwV$owfFj90(IyI5c1*5^$jm*6t<>{>mPrO(R|yG?i@f?W#?GLx4)v7;~u z@cS`e{lq%n>M;+wK^hZ3y(Vr#auiL4y-&TrFhy&g?^4dE3Sy^HYM%Y|v+utdIV*N5 z4O^e5ToEmH%1L`hH|-h6;|e59A+Y@kRX3=X9i0ZcWYa}UWL(jT<#4XHrk)3LallpJ zq7%$xw6HCN=OqM0hMOtm6gT=Y>oyfAQK{VMB~2&pPfzhi+)XErWTbeblK@ZjT@4$T*uq_gPLIl)e>px|uU<%psOyM@Nnki8%2Ey6(;l^kSx|Xt? zX%Ci|M`+E^!IB2v_-}x%0MqoZqXJ(srn6TLH-hC@Cb&>YZsYm#+n?r`0HBdY6)qUV zUFU;=L1z62zzaqNm=C1f1vzacUsDcgEy)o&0%@Xd?WyYuS?Ox?S2X!s;4env5@Lrf zODVw4kZDYCk$&+9_By0NJ* zn1**{Q=fFR>zn%6%_1`ba)DMPr>T!BiwJiky_GWEk{c>KHZEiVN&2GkhZ^(PF^;l{ zTqH$)d;TuQy)rn?7T0@`+>Pr2QCMGe9%zA;$}iAkZ1eb_vev19{WaX;gg1jl0Gf!l zz?^ldl?oCrZOpTT=q22q_Xgp0S^cNtQ#rqwicAX!9O0OzOo)}!8#Derr{mEuZEd8C zoA`-xjR~4553^ld-DwO0cghH5#YZ#E-`ELxA>ZHe1MTf?Th|Q0p!wXlosPDRALF~i z9ENXW?C-G8ylE%?w9WI?rBrmUqcGt={UMHo`nvV_Yo5N#>DWZ)!N%Bn>{q2SLG+OnSJhnzAmlJM*IXP(9;LTbj(2X5iI4StXVX(JB@Gh zy)l+JD$SXImpO}-ek^{=ClP?rJVAv(A4?jT;}EUJUBtUKJ%TWpHO^M^bA1GVTN4*S zf;*CSewR$a%#gxke3|sCOisf9^I1RvZ<13o!T$@yCByRf5d2Gr;AcAw!p{J6$rmK~pG$1g|r zo#t}Jvn$&1!|nL3V2Mt1j^sZOZ`aSo`X#j=yEkaUm+6)|sa7+e0RpK{yWsl_oRY?_ zZslj=dlD0vWPFqqz{i)l6>&Bfn9FQ@#{}OK?QRLZ1y1Z*As5!kKw? z{2En%mWLu_NO}B2%2N+$l!q@fH@Q5Afk5haNXnBU?Tt3QZ;N#0Ygt$cc3>)7*!M7K@l=kqM z_?m~{qi_d4zRdN>_yRV*`-Q&s#P@?U@f8fg_aLBwk1w+@8DAU-q`r-UZwm2oz!*~B zckUlt-)4o6FVjR^qQ3uS<69y4UI%Zbaikf7@4+GXA_^a0=EKSOX509lB>j3e0AFJA zA^dO0ub2FmGd~V;L-O+v$!~+ok1sPfIlsd|AoSQL__B$QqvH^KuiQ779P`Nj&W~a z1j5?o!d4A1=UVn606j*~4+Qk!EP!eX6r+|mAAXCWu2^L3u!^@Aj@YoM@osl?&TJ~-1tu077S1({dn??BQ0QuIkEkI5KSzds}uooP}0sZxAa z@r%km6!&4^9*!zclKTn4ui|9FLW>O(l$;2b+CkhdwCBO zBwm}JMSpjlkq-azMyR*Se4INpaG7UcJr>1%Q6N&luBP-d?D} zoO(eDmdl?;zr#L?62jp;N{DZi2@dD$*m&GRd^ zkCmF`MtXPAH(cBZ(l&M@tcstZBKiGW!cesgU#BB|&JP36sq@s&00+0+{ec&ZY0v|e zc>~WuVTt>Q)v6i=%qa?cVC)TT24bMB;ZZ8I1C*^p13ZHR0&hTv7fs&xK`pO?>F8-z z7bLhBx&!JQ#2OgKOG{!qvH~5bM;5n@wGGoj3&<~RfEL(MMjkkk(DaCKvvsnI{Xv*+ zaDTw{*x)hT!U1)=^fRsb2JAi~SJ9x()Q%p{a^ExRj$4(izx zKeh2QIqcpm%!8;3-Be?TIXVi*^QhN^{XLQ~qmc0&gu$!kBiPqz^OYFsZN>Yr$Br7K zj2Zc#^tjlSSPSFR$c;R88JS}HSHl5Pc)-ezX3_zDTG1Vz$RpGnK+L7jKy~m5Z+lP| z7KL0|%g;doz-cW!Hv?F$<-7Pul!xBD=b){!ffV*89of_wQQdw4OlMH%&53}qs-{1- z1GE-V_OQtlp1!@&C&6?y*nqp_s0|5RW$vn=xik?l7DNJxs_X!*R|qxBz?5z zE(8i6mGd0C#yaUWF1^;Rf5Q{MfTa$a+C*NPJ8gx@Y;=HQ*(G8t;li>0x@|hP&|9qhRRV@wT%P8un*Ix#9wmpp?ErsiYIy z|HS?TTod(upP(H_l501lFf+}itXSE zzYQrYMgrR@CcOfU0gB#}fIeT?4t!fnXvL&auhq=TPa*ON8J)%p;JS;jiS@Z$H$!oq z@hSK&J@QrXK@P@G;kT^l$f7&k(P2ePJX$jy?OFcxDM8S+wU!SN1_-UiHAq!~W;bA)3PVwJlh-}bfY9e41x*-_y96KO-iz>hl zOS@5XyLaFuTt{!TRdix#?~BiZ?if|NI5 zPo%=SPwJCM3GAoPbl}BxsDdpzLUS`WNu}OPn|pZ>yMf$k5xVhF)L&HlZ)+ zs_uX1ogRN?2L%ba`}8WlV>pSfHNU`6TKS+f*i1vv#;5U@G{*V@fiUMM1p9VYTY+0$ zBeMo{jfg!tt}Ex91Cxy^bHzBDD=Lvu4vIgD7N0@0CJ|AD2){&t$U$>jA|eN5Mfh3h zx@egSh#|V-FQCmL_H$TOPPiUGa_)|08FL3_8eWWoS=xq$m}y|Cv^Yt4v;MMN!fs;V z%}9Dt1X}!bn$cr$zSad69U=Ei7*2EsSR~(Gw918TMo+_1?mgDXd~&#CS31fk7j;A~ zLCr5BN6qsZ(}HXVKlp_MDx?q?soK0=j0U)$@@e#7qP(+*l(+t8wY<5g+70InOHdrU z4nO-fl63{)hDDmE18l37mOAmT!IqLMpZ!N1-F`qWhn~kH|N>OBP_3=FsJ5cOxM< z8^l08rDD(?p0rRM_ULftp4Y$fKQrAVFnB3D-fr-CEV9N!zM1};cRIs`GEOUdh zWLWH376wLedT0R#GnjeTC@j|YUTS4s8ZHY_VP^lE%(NV}$guPa>dy zft`JQ9b<6^&qg8l^Yn4)E?Ot#p8gN$WL2-bOf`rk=w4?xh&fD(RRZfE;~^HqkZkng z`wb~oTX~B9>{f*98yP#K0~xq*5Tu5;o^oA2@1mIzeor;><83{s`LL#&h-jTpue>9}Cy@r{h0ft^DDKu-DgJgG zNNo8DLRkEjdcKn}JULID(rz>_Fp0 z&u@^#DD&gqqR(?%l>M1F!}5o@7R4~YBaq>vr-ozJ4J+QMPgfw=d`|jvPWL(z3U)RQ zlmuTm5#WafzqTcn+xZr?^V<;#^BG5L1`aRI=kdoH>-gi~laCVxl0v|OjL8{F0Wx}< z`kBM3b7TF(R;JI99rw`g!VbwI9EM zfxmg?aJ4VI7nL%)x4~-2VJ?sgxdtJ!>lE@EGf*c-QXY1cRJS#?xN((diMA!dV0D=x z^DCF9;^HwyA(F=Y=DBk9PJ%ANvb;hNNTz#Raq>0dv5qskibq6m1rtmXhN&<=$rcWP z4?<7KyzXu8YP+tDcd-%6y^TegQLVoOD|>(Uj2vbaclMWHlHl(z@%FEK9sxF>Bf+(g zDU8>~n+7{^+7!MXK3@)CN)x6P-clsqeh8ZPoI{`^nW`Nwtb zKfuY7D)Y}CdkQo<*5#ko)OXB-#yz5RvTZI*CEG9&1MFazRGZp=g~MZXViUPwE59KU z34wgUNxoXz#wNKD+`%e2el#Z)!c#Tn(h zqJxBQIc}yn5?*vMe#?D#KHP~$dqv|%l&7;Xj(fEAzXfQu632$;VVptRm_S@>JS5`P z^`8V4s?f7mWQq_43O3G>u#7erC6bK5U3IZ;_e{{GJNhS#hO}w&7P;Ohd9?dxA+y-NuV z>R0U>uWKuPA6Gp~)1thK8rP&bqt$9iL&??=-N3+FjCy1RE5aoZVuJ_nx;aThD~7f? zNM}xaRR(Zt@D@!TPW~4oAFry2=q{9MK?XMrR9BSi^10?>{1~l9V4RNmOn-<)iD!08 zk?;vxkmO(m`61DuU=}8qpSZ0C*P7$tCyRy@2x<&P0m9{LzE;(?Fy;T#Ld}joGPt|o ze#t{Ehs6`XTGpUn5g6rJ6Eu%08Hpdu{{!T;vR~gp50xnD;<<*?(ubLy%5iOQ0B`P`oED z);n#-(ur9R#LuQ+0ZqW5LPZtA8$QDMA@eWkHbb<~Sit6jnziR`CxDp-du^fl7^9>R z4Zsy_ouft+W1evMQ{vb(fMXdkuaHnI~OoY=(cDv;9#oB zDpaa4znuWP&K8MJ3#p+0N<>|vFwjle_U)vu*-XU)HT|F001539_0PEa(YkTE$`E1K za=0cEuo^uwWm6c^6L`+s$`1%$3cq)8S2O02;K0#P3}N&Tnfp#H)Niw4 zCqE?+)3;F*54Bz+(2gf`sW>}g?4U^m7Deypa`F1s|` zU(FF!Bd+gb*DW+&;-Z$jay(4~^KAC62&|l8!v8<~w(Pq%;Tzq2gg%WozKFxmoKC}Q zq&r{54Spx9ptCCAW|S6VFVePT%#yoofV6m(3v(6wX1b}o112-o16YDGy2YX z#vuqSmJ5YwI@O3|tHz;j*=;jZfG5Uv-g0dl2?xaO}R~!8Jxl6FbIiao=Ynzjsic9krb)o6TJy&Fw~WPeCED7t)CaK;}~^W}f2r0)HWG$REcyH-;W% z7|i~yRt}+wxegUHVG5zS5(w^y)LR z^%*(1+i7L4zH+L*(yy<~GIm(!=WDP&IDs45KWWIJKDpI33hOfOfSVbu<*R75>46t< zKMTCMmU~-Mn!#K&3@ApsmEmpN%b6fq?l|5u!Us)f|1c%uwU#$nvhNW_2A)duy}m?T z2je8Yj8{Q(j~y2&#asge$JIgedyO#mvaC%mf%61}UKrjC0tC(9+1W(CWy~uGKa9W% z^XG}cuZf!zt@+2uCTQNbVF1tQt=z7^zo^U=EjLzYV-Wiousksy$uP>XO&Glc!$iOF z&_c{!R0%PWz1S{YG>GA%sgFvcm51$lR>=IHAJX)UVrMF5{Gg|CpQOi@L8W=@v{mis z7+Ek$;y3NYvWJBBUTC%VvHSzTl;0lsC^~Z6Ubgn;xYgR*;AcP%i*Xer?X8#P>Sf$J z_Xc)!m$`VDOb-?6p(*<6933uZLms%((?bP%s8|pA^-zf(D%Ho;MqPp35iib8bJ7(u zYuB>$xMFc&3hW<#W5$f0S7t7jU142(_uvUvtB zTrunxPhaUOzH#-0;#=_k*6Pv4wULpUku+zwb8QylU{t|ovE%I+`{9kDKoW^R2yIvUt0f^@x5HIW(X=AlKu~CWy&kL z3@RX$2+Xe}1qICC^~L3r;;}seTP7_xb^ZBiVuHLXhn4=s7|}UtT%15Y)llZL8v58ZK%QdVHufy3J$Y59ubcz8tOj zF$}%2zG+(Xf5``oc)o*=rao$w?#6{n)8RI&??!E7D=^0TZsD(QX&dYDtEsOYf9u^% zeFyPwSl-lk$ol;Wf8W&9*UR5NxE3h=I{D_k0#X;YI?)n^zdjf5c?!o*(f1ngJ7X#q zt~pJ8=i*J=U&6Zq7l749hR6D@(po-7xr}}(@os#^`cUEyd{`x}7%1_3$bF#1ui=+f zVvj1Zw(&U$lTss$rPen7uY^g-C-yvsA6DTnQiX^3YS}0tB#^e@FX}tF5-Y7r)D5Y` zjp5=j$#5iJ$bild2OXD0u8s9w9GS)n7NLTX0#y-hgE)=-_*SO)RU*Z>a71wYzz(t8 zgP^+^&zFFC(7)Ubmnq&D*qc?n5%lE+y-gecY20^KQGp{&lND-?X? zth_z18`J)=pALhvyw`j~sN{hf6!Y}r3!}?I=57Qrn>Ajg+-*($yv#0SWq&s`ScW!iIaS@;ayf7hLu!8hD#WiXUBadIW8d&&ZI|e$h?q6 z6v1WmLQmVee(G1~HOEC0(~vogv9?}1DK7es(!4enPL3`UDrlc5D!dA(_Z{bpj0U9hHM1v*C zaY6&!pM})|FL$=s0zUJN{WWE5)l0u_loPiFoU;VgySkNrbkYNBbe%v$CWxfW& z(hA8HJ2k8xM{P43M#fH!fDY|c4t(-a)SSXZ=BH=}i#}^oE>)IkMZcnY89wzzmsM&0 zxObRCeFqgI!dW%g`C%{jzy3do} zU-T;uI}j-BVxKeEd?if@6hsHTjaOMZ_%eTY35k@@!EXrjd?PU!!Ony;9X|f>Z)a zm|!K(XIj2h$S|FsUrXhDMF6ZGrrJ?)S+xNRTkzH&zL2v%z%3YHBybis*SpNM?+7c$ zdW)lVMY5%4orlIs>m3jU28~^%#U6+HWyqEy#~HfQG`cA_q2~A&G%aMEpD-}pC@JTU zC;3CQkY(%Tsm1=1lswjZ0n9BWyXbf0bHo?s-4o~sGYuz`8v?Q35s@omyO_^ zgV}k8R3r{Z^5$VIQTVGA!DKq{oTnzibc+06yraVcbxT!|lW^2VvJptGI3` zlsAfS)~&Uy;DAF8_8R;1f}Sss5EnS59gTHlc~syFnf~@vVL;|r*^^1!UFI;mMm?1X zKx(MKse1tZ`V)<03-AH?t!)`qV_ePKBrEd|_rFSc)LR9&n@Fh&tZk`Csk9<)uvSe{ z6GWui5lA8X8g_)!j#!|zJf4ioWk<}^TE3GUk!DBCjoxkih}1;(+i>XF;e1V(-|V<$ z{*>|@Rj$?)tOzGt!|en(9vv6HxsThU`MaK;j%4O9{v_l#bI=_?pCWi&p;ldMDFt=I zg@oPpbQvKV6r>ve)DWRy?> zIa*71a)ir{xK3;NRdPg{9dWG^`AT9ba&#z}CA6?9qLvHXyBtiBtU(lc=uJhDk&t4b z$d#aoETX)6O4JvA2XYP+nT2wg%Pq)vz{0A2So=)IjON1VFr<8+dhkPvUcyqbquDYR zN}u2o0SmG0rN9Idk#-hejEbGanD!n*8t+Ou7tADIsTXT4FUyw`U%T*yy*05HP#l~_ z%AoN%#OA%M`VQ1Hxo3>9@Al)?bJ*u6*vEyGgW1PenB#n{ZmGU7r+@4(c#MN1FvR_Y zZNCGlP_?&T$HGxES4ZKqJ0VuHC{}a9C7AB|EcP3Pgq*m3{+=%+MApD~V@rpeB zu?Y_{ce(N$S{twIBs_QXF$ckJK2kzVW8ij#%u3MINJm{EC?^^vLA-qSwqG<;?BZl& z4)=EOcm&jAu&{L1>JL%&h+~56PGt&!)s~n7V3j4N01a9AjbdmU?&$CDSLOiPeP6+M ztbbaRZbGu<61c$g7*{a6(3;B-hk1s-ZEhNF;F<`J*j1q5lq6dlt@$*vm5bl9I2*}q z#TdWdmp3ym=2;bOzC5T)mdH%Z<1~ScKG}0nY9BDMH$iDY)ng7A4)Pytmi@&o>>E4= zBxV&j>MpYiFwJqWlXX-`Yq_xxKh!9&hP?dh7mNdwPAfjP#sRIxYbP9-0BLQfu=!va zzbwX4JS@~5D;TvkZs_+I=cYfGnipRTlPWW1R=U{(s<8t@$GG6{ryC)|$}{ z?AfiO;0_r>$j?Oxq@1U-1TTy*D%Sodix7CPQ@IZwndz_is{{PjCMa8iwsw)*k^9UqNp?cK#?cisi- z5eduK6*6l;)#SxiAo>f{ddMa^4C_CkI!p}Mm$WvQ)sIxayFh-S-%&x${?z8fN4UNp zQpPfNx%D*>$7+`|JO?o{cyY`#r(SR_ zHsjJ@W)Ytl{us5cGA9f~Xw5wH5$hhtt%@s&s=qY@LoL?&QRl4qaao^DfnZEB#;q~G z{~j=h{5ATFDQ4R`7S+wGhi;1XrozWkuM<9&dR@q~Hw|8jurB6Zs9!QFJS_*Jlf!#$ z%8QxTn+Js%28@{ECBcxnUS_|Thm!s9zaxH8jrrB@3MdLQ4j@rk7$k$hLUKV4V3}hI zpq9Zv9tS~}Vy%kTVi=<#Fa+bVyb4;HFKvZt8WIb=)Q9zzQ9^gP<|S>+1g710j|=}| zP)Q3^NtwhABu1u=aeFmvy}i)&ChgCPe?oEZNR2JZ#4KD9%(!%6)5&(t_$fcH1LHV6X>fFaj8b!m_}6n(I>b{MLrr% z6Aj0AmhpzUA94*>^bR(FPps=3i!fpNH87*=Vfp=2eAUE6x~IlUys5%eIaqHSeR_G0 z`BQ3{dXbS6bv1vE{w)C5oEV}OaurXD%nsj#T1c0_4g@fJUjg{K9OQuBh(Z?Fy%G9J z)sGvmnid%wGPi#^sN=#w?MTS{B?6HSo84lGv?j;iR{u}vl}5a46Dn=?UGK(0)w`?g zWzs;Gy9!(X;S!Wdne5<~vWER!o1NDGBM+2YHakj&)tK*asIhI2zV{dAN`sEe6ZR{) zIP$et!r5#SRJhm)881COhh+HhW#QmNipP**uAKs|x48R1N?8Z-w5BpvaAU=q`v=Gp zd)wm7+7+`h;q0X9S=CIfyMC}u()BFHFMpFA z9e>=sdTD=u;5j`;wR+UIEh6n~-g|&6F?9?e6mA5ty{CeP!;Z?|d0ZemM!?M*0gQ_c z6!f+nV(zQ+9e-RUK?2~vc4~Bzjr<~k*O%q$%ckhd{8qv`{LJmXb_%D^2-TPQ^krGy z*HXIo>yOLw(DrRcd?nEfZG3;+&;0deh5E8$eObX!#M?80k=P6MZ!DtKRGi@&o`YU**x4c}?%{ z0pieOSs<>yDyKWP9)Ja-UwB+!w7mP;74&!2eQkv9uJmQ4`m(V8IHwKz<9p?AHv3m+ zd6oI!qBwG?%OeI(lBibhnTVyh`jo%8)(7bZH5az#Ms9l;Eo=UIpS=Ml41g=6F!B2% z#0sucx_d;(d`VX8>S`Qo4@>MdaO4buINA<9IE<;*S~pdg_n~npMIyPdaj!BR2VJtw zNPDMoHRd4KA0Xu zZYss9svqrTBI82l|HInb07g|@?c^njm0n6LqRHWq@V_d0FX@dG1%Q zW1d@%d2W8b{-eztG&0X+p_G3>Pp0{59?Jpd5nQ}CTo}uNzyIwr!ZD7=Akp(8?1~#5 zNvJ(n*d6R5UjHeVT8Y!3N=WEVtT3Gf-4%^-cF5;#78zhQWh6KU8mMWoj2G!zX4yQ zznLDssQBNTYG7KHi!NH)QsOKL`{3|3WomfdZ>ATmcBY1B;jcY>fw~p&36KWFgVf@a zo4-_)?F?Uv$dvFxk98~X(yh?~d9!Z|b5SATt0xZ6z zgr>~*Eh>K6y)DSzfTlFs!3JVo%6)jWmlGJ)H+?M(=0EK^`1pnox4hnZ`<}!Ztrqsm zxJeL%mJ`tD9Rfk&*frW3w%1?LQ>~u?Vx?{*?5@>sd)~o`WED3+dfGnYzH>QvcqpT< z%@i~gz1D?lwPL;MQLwt>p^W%>^k54hvG@T_Tie4~wQ6-}txf1nj^)Gf3XN#*76$kJ zk08k{G#yDgqrZC?1;s$+GyWnVMcWuqt#AITB2EX0^K_h_!+CV-8NEb3xqx z(UPfh;~L2sa3`q2v8GF_1x?_9s`fRHw#;E)hH(~Mo~i#GW*a;qiE`TCX>I^)IQIu9 z-wVBX_%$a)w8apZv>QCyzw>5cFDCCKIv~3W#>1Dt1f(uB#UA^!(Fzwo{Vw~Nxy>`KRA@8WihJE8z~$Q{c^7IsGtVC%8Iv&@#-BjycpnLv!e z<-TxW&PJnDE<1jJcNnVX0I(?nSQhNl=UZ@nH4c}y0S2!)PE6ruGVBeIZlaZLX+k;~ zEdX-^Ohb~>_rGek_w0E3dezodJ$P{e8hPO?Aun7#uIe$9B%s6eFPvcC>!=8wR}oT^ z7*H)+CS9YF#u04*DdWS?C!B?5RO^j6lB?Y##ua+=gPd>RgETbB zIRD_+AA@`x(AP+e6W&SR(YAbm<`?(jazx&UxcdmcLYaM{FIREVEjq$*gW_&JaUhh5 zi=xdlqhh_Qj#q`wEdDFzv1)zdmkeUzNrub>#~r>b=F7Aa9)*fas0s-KSqZm(ZXtVP z+N{u7MxpzxwAi#_bi#qqEw8KOyBTif_+~S*(oN|hSjO*Le6 z{n|dClFxifK5H(E?iS%}_d&+*KFq((HPPM2<&&&2x|QTe<-2fPKbEAXdsT{N)TOqJ92Y>rA2>Aqo_3Z32p@LQkd-@aBC3d8?4 zl?c>y8$*umOTj3b8GWrx#X{~+361V+&A}_bDp(pn ze#-BVyERJ4`4075iYp;7;ZClye@h~?J}>n($ir#teiZCS&bT#>7VVBdR0~4i>IX&SJd zCwnXpBLpgod1yT2hH4AVEtaTUP&i1BI(VxkYsgm1P111Ua+k=C@OT7S)*YFG+Gfi> zd$`VoXk^=oOTw3`T??FrL-0Up4mZx-ku*vE5*h*(FZj4tx|G51@-^V7tyWe5iTg2` zJ&kJ&c>`)YNAaiO$#6y7tDgrm1TG(uCx(3$2y^iy3 z@ce=#+*Jt9l!6~SpT$m6#TsI=60RJ{4Qu_FCnlS7P|53Jj0O!qjnVLpTARL)cx;Jp z{tnHIze(9Nz7JA|-3xEhKFD|iLFt-~!7oH~Cd{-h|DTL5PO(MeiEoh{V$X3Kj(fA;Xf< z|NWbo{nIH{lT6qFJT^Yb>IQmO_5lBt)k+=c0o_y2o1l;fbIph^D_~a#5zJz*#5d2Y zz}-C0W6Pv*7z3zfW6HEZox8mgK-KEAlo=Rj7oJ~{lPA}Y*$Q-slB$0$18q*6|8R3% zliu>inJovp3kPD;(Wn%j3OTgrZCA^i?v|%t-wG?6C%MyujY*^(+w#VUmIFthWM6KD zDT)-RJ*ORd@$Hs3=e0cDvbAQW%h&d=^c&vpr}eAsN!RKhVh5jVdWw_B!ZWp}bUQ9M zg4-FwC>($WF1SvZ%wU7+&hd{@gG?v?|u6LParNISOW%@Hk68;wGHrBTLt(_x#YJ=I$_(}nY(PaBQE zkzTRTS*F!GXftgY9Vyt+-f>paFQ}wvCACxA1fhTP^UzS$I{dhnp$_*NWW(Glsq-NZ z!oOg3?Gv0(YcZlcc*@KgU)X{@yBsu2D&@2K{}+*!Zj0ElEOQ|h)B2g zet3LCZ#w)KU{x;(NLbiX?tss#IeS8X!@@Tc`u|t4h4iwqFYp}fSDq<>sPYP_ZZmiJ z?gI=}de56O$W))C;bz>}O4S=<6G&|97+>Lm*bGHwnTb?3K}<$slGvcJtz&*mD)S}K z)&yT$fBFr)JAxNZf81GdSMdq=cBob0(?Yh`6fHe1{Xa|7p5AvV%052to6dVQb&Y zbgaFj*0yy*M|p~`96KOS_51(J{1s+?3=@S`C(zn|8iGyC#_4?P1Y-6A6SE1VKE}js zoY1#UP?+U;f%w2RklW7{kYKm`uHxg(-p;b=wqbC~0Z3Yr7K$OHwpafJs11y7I3gGf zszn6<9jHU$L>J`v_0@k?(<`U7N?JIRu-)w!Le^{8njWWYB>rtTxVru`thEx^t2sEV z_4-jYt79h&#?!?C{Um6o@vMM;^CzGiY*-)X5eB##a^VWy(8{1A)#Z6C7swC;R>inR;~VFHyd+qbpT)boI7NqMP_@no+hK*8PL}}fl`gd#oX}JfZp?}K(8-h zM6aADgtZIs0vNDn!Tr1dUQLptU{8L4Iw4153e^JGYr*9O;4gk3a=Q~hTx+=jyF{q0 zxW^r-;VUOX?0#;=do7kv6{uRtTiW&l4x(S=<1dQGMf5P5QPzsX36)R&i7-30&-C_# zP!{vr`kZiiFyC&hfkex3MvTJ%fB`~copp~wcC2Q0?e2?wChGq+6EXi@-{6(DD!LqscalGlTaF^FU6>WKP0>T?t(00n$F;klj?slqmEQxfq;Sk+ z?FcDu)tcZ8>64utJ*EAxu>vl=?w7uLOnU13)R7C1NIW!Q;cyNX1;pWnc*0){5E6TS z7$95OC|h-K2TC?Y=W2OLZ9FeohCL5S^=kwqQ*w@BA;IC&KN^3CR6q&0gYNBie0P?N z?96-unQT?Hz#2>wAB1j8=23S$8Hub}Djr5NFxe){wfcN;DHN7lEJlXzcG@#o;9H)w zl-Pe|0_>L9pOOqb;IZiseoMHK>5&6t3bl@7U*kCn4)gRme~~!}3)vj~T|x%cwL9`U zGK*^jcjOOzH5B2$<2%;#hG&6(wiQ>CZ6QXYyM>u>=BH0gTH>v4x0Oa~+HLbo=W}%d z?vmYC){Z<-m6f$~SlId<(9I9UhRHz;_F?rg&p>0mM4shyBu*`4xVO+pXbB9o9^(`J z|7$+2F~pPF0lfw`@v)y^^AyGqN^Hh)a5f5_AyYANh)7%f7x(rLxkFR-2$v-Zi;lM5 z)Z+J>{u$>H!_5msIOc^C^i6zTK&PmA;jC{a&I{sukIcrLh>R!nLsW@lQ@|a$fx}iQ z!Tfw(UeX@a#$7| z%du!yo?V{RuZB$torJc*MP19uOBBDr{`pHX=V1jmy<;Kd5N!6ah-Z}%NFUeThTqv| z^=S!3C=(L+Ki(@l)XFkOyOe84O&?;Cb4EZrp|64HPibT^6BVC;pEfb4+4Q{fV~xdB zs6c4UOZ5cy|DLhavq3g+i37m0LJ0t=xggst{d7Y)i1HxY*bJH+4cf$U3xMg5hB&<&<#&0MqyvJRl}1oU+~WfsO%cMdv4^8rYA z!qiPr|fe%bL-dsT_ypuW;KXfW}^dmZXuvA zhjljaq2RK3OPqf%K`ID1BxG`x;0i!)vdCfCjK1_%p=y%r7|AS33~9Gew5-P{UTMu< z(qazcHQ0u0XYizgw#b9M{jX=m($SmRHN0OjPq+8CzXNS(mOFAaTwJt$n&RH}CSE#h zk!~zy$Keh+*=j)J7O71KOQ+L+HqvQg8Vg<7Y3^Ib;~Td}zqU2Sqt$ufR}3e4z2lPH zf_e1=pfuj|hRTr$@GK%cP;Ztx^7h)rm%BDY$fi7>9i>-5!UHFPZ@^lZNIQjwCuyYx zh#Y5WGDd=$g_s>^Bxt6DHM`qy0&a1)B?cF)=C9?45EUH9;n2a0=$p3VW$yOc#0VTZ zP!X58+e;E7aOglq;B3LP#0VTZP!Tw^AsPd-j&w5u=RfGe+Nykn8G$nr+`F+NaCkx$ zg<~F1BBDQtiuBt_pX|kW|G`EO*BPk(Yx^`+I&j;08SFRJc5Sl`U;Hx(3v;A<+gs3?fw^6Uy+kE500dkA zY=pL)fL3H*16RV8w^_spGteK#&M?mup+ct_SdL>)Lt6F3 zYZg|XCH%em_i!j%VTIFa|1^ZQG{MVn(6hmn0ns}8rGC{BY6L?StKQzRM6pSyj?h`1YPXF02K}d$pQL+?~ z@&G}{r5bXCno>l#T!e^u|Gf~AC;?3U*}y>mrC75hri>Nr#i@o)FyNmEl3%c4LaDgNz-q zd#Fx|-ork^R0ozJ{R8uKwkx4~Bj+Fhip9tjMvQ@-&_z%?PBLVXv5-Z^pyz&10e*}& zzYMO2=2vjG!bAljVO(R1^7`*8?8a4-tWwBgV3DW)C`3S^s3tar)1<NQSVpsJ3Q zDdOF%O7Fk{T4P0XEu~U%Gbet|{Q9-=xGKbTATOP`K~t!`~V+{ zh1|hlb39rs%rhl^AUuFHWL!gLXY<%Faq@Ne-43%&12MJD6YABE1xTqts$ zhdnL+JHHW`eiqO4I5Lq`Yn-VO_@ojgb+0}NY9nJtQTYg)7#IE;WFtAj3z?I=P)W$KH2o#?5`cgOsVN?W ziu8GjfP6s{0|!{l7Vi&bs{?St_#vpXxRDkhuvPrtf0zdfZO|bDj_m@X9m@TeYwL3OWk$ z)UFQWi^c_N`7A8ZJ@o&oY?0LDdTLdB&0bl_b7F!oYxsV_G`a;fVk7(f@HBM9H0%$f zLBFJ}#Xd4_bHLtBClo7tkR!YTey0qxE{|d6Wtx7?)xY=%MjVgPN8r-Nn8r~c_Ka4j z>4V2^$BO2C7NsRLLHuv=#jLD(%513hnz9U0s#^aVTCaqINFGZSS+HfcEmUCmMqO$q z2#+;HSwRJ^3@^3_EDz@l6$ReE zM`#dDI)RlaGa3CDp2xO?$NzeIkv}y&rpRv(^CW&77+`EZd+kib&y%p{{)DjU3>y{D z-^4->^JeUfmJ{djd+cA;_h=Y1NA5&p^&Qx5Foc814z}JpcD#kEWDf4QBPVy~HxOtX zJN^eOozQLl^$beh&dEbNRFe~R?oP;?j*^_~jP0Cb-Q3Pm{5!Oe1PDl>m2wQ6P2)~| zJt!)6#_+<*(|1cd2Ag$|hQTONri0^_h4tSGMeQJkX+WQ|3r+v_$2g#Z!z9#0)hogy zyO_<_?K0vHRM++SayV$i*~9vuc@rvNYI80DZ#!LEq*OguY(eV-4)}kmqpC;08=S== z>hOf1C*7E;Av)XifxA?nQ>pnm3ZdUjXAz}pSi@;7$swa?MQS*$XoWpAiv2xVXka|( z;;Xw+W3RpsqNjc)YLAI2+;OpK3q5`qjvrOi+zdl{Vi znt_;vRp7$#Dl5?P;!zX!S%J`EsFW+i7g&MNVyHkr5NnnRErtp#503!!$FRiIuew*^ z&TM$za1Eaz4W};qx+kRJ&p>{R^+2C<5}&dJ5IT%>H>`s9_%k5l3_riXku`c@2JFRW zeC}lb45F>c9#(tE2gLAm zCKr72u3X+7m7`4olmSOTuVk^;8bFSWPO$*oDAhRRfXHC~#aJ(>%H&obRQ5BdQ_RXz zamFQ}pWu!S!7UgH?m-%ZIqUq~5_lfR7YQUZ+`Cq^K)@YbYk zJrhz88fW#BNn!zg63Q`B2%V?j` zszv@{X-#sgex(+hVvk`~f3RA=6KnK@`hSP1iZT%n7==@DWKw_SL%2XHwuQ#l>CbIO zy~T1~R6F|qj~cj#$kw5uS-28PdmrbUR5L9yG4QoX&a>3%(@`01LB4z!&Q>W~kWi-n zPi%Y0cp6iu-*l%OB9rq&*b7Ac&#^Pm#&Bkxeg$Ho|Jg5eAZb7rcibQ?$O0JI3g5Z< zeV8e+K!^_vqs0b1#{GTz-E1xCM0HhVK)>m31sTsgW$Is}r6)%^AbaDxgCHwSgsca# z0ex9AWS?zB@f>5c4uDY_kfdiML1y~f2Ywpld@2uu@_Z`3^vxJcz(7&2fq~FJ(b@-C zrb2p7V+yG&Uw;%s7p<*t==t38&PREWnCtW(KftDNi}~*;afK=|2d~SXMSHOcEs@qZ z#C^{-tbj8;$KfqKg8zU%g=UdH4l#oO0f9wY@{){i@JiwphwJVmnS(>3zv}c`(5s{d z#!Zw?|NHOFP6y(Hcf=8o+JCwM2%x_~VGNbCo#H!!Or`lqpCJqJ{!3NOiB%C82y@aU>#|}2KQ2}j{<9Fn2 z#XV4&iAUuU!$tFzKQa~r;foPrTnezn3j7N0LlLu|O8sIhuvXig1#{;IF!pe8V>4@* zGrPeNo}r39*C-{;$}m-{Q>DQFF*bV0Sa6_PmC_q8r8a>3Apj-Ha<|KcO$1drQ!;Fi zer0BNM{Yw(Z9~2sQC>?o_bmue_vi4M;!qHNobBN+Y86?S9ad>8azUix+`_MG7G$P# ziyN$v3>X7t5?8Tl5O+_9*dabHD)oSsgg!2i2zBsK?-X_UMTa0*+T?DZ15S_Aow(zq zC&=@ewfg>_o9*@nDW^9>V}m6Ua-SIjB}lh3Hd~yd)aspPaM&9xkc2l`A!CDH z3Ax4$33aq}j|60GT#x3!pU;Vr?)K{ePHF5Nb5z33F-deS`p^kgO#__|^Nddj4W3*b ztU-yeGxapCiF?ZLE%SaAH#@0&KrY9T$0vlGo(eBgGF+)aP8XQ{6DlRhJEo^1u* zNL3Cm*QnA*n1R?n2euUwf6P^h0g)ybmdu5H=j>}qTOuo(v~}Qz20BCMvRhfCUw_yN zyjm64n^+u)BD{oaY3dFADo>sM^>0JAJPr1Li&TyvxK2O&9xzv*6LZUC zd7H_}r8_h$c(|P&ZqgaJd?q$ipsVU%1S;?qnJJFcGR0dI1AIkLSNkhtlkkSzlY<8( z_kP9&im>|w7d<~iZe$I|RFaqn(+YO=Z6Ld#D!D^S#th5#4{Supuf_w=>kuB) zrSh*xDbVq;0hdd9m!x+`Do_wcSEc?Nk+i_;-R(0Oh6|}F3lO9tFB){1a~cTV$(o%b zh!jsk&F*$F8}o_Q?rD-yg_kaysLSE#-G*BwEA{$&%`U0q=-mhEsM0UB0vB-n`A?9@ zW?F&Mnf;TM%zmaB82+j{n;blft6lv12rIl=dq&(#CSC+*pC5|_KS4KE>Qf#;OVr8* zXRt5x1S<7npWSBMn2Hw0Euo>HM0ZwK#b6)e!Kv|O$Fe{b1(G7 zCLVV48c^`87qCwd&>#E(+mcz2*+vy?GJ4}F=j9<+4FkG<@2%W0e)^+0{9g#@ONxhq zfBj+;{<97E70C5gxB>Dq6`)<_tpwQrx?h1U&P@oS0s83z`g^;E0X?8+04k`8;AFrZ z$;U39AyKIlk34XHe2hCXmV2VdVHNNo7ST9nh?`C1#qMrLc8uIya?vBAX>!gj`=ZMe z8Zmb%A2V^h93yV7R_YX$r(eI}Zj;EfaGqSNbc*7$O25hs#}PxpmEPgq#%JyaA=^(jV=;1GY7PQ znK4?1XQC5q!4|3cyHdwchS$m(6~kLEg<`|W3AnG3^aYARW&rP5-%69AtkvhYzeyj4!u{y?;<=K(^8(;9fZ6_v$I(kWM+eX9tKz)efcrf3XR zh;&c8oMxuD;BNmF(xSlm9p&jTg`9&^EQX+?f7c|Kv$bV5xN}Jum@f+puzje=;e^36DM;A8a9)rP#nJ#xonw!j8&}$P3VuR5;pB*hAj7 z6KU|L;PXIVDni(}mZEi`F~NNBclZ~&T^OlW4}J*#yw;nu1Gwfz0a^aqYEbA5s+8D6 zxC|Wb=N0&u;7M;U7k5+u_Ap#0dbIf%)~xL~YMZ^>HEeB_svYXVxZ}cZws2Fe^5~t<{1p6u^>P|fIdrP*@zdl9oUOg zt?tDU;NNAbhx?=v@06=SLOhY3hPmX5o(|F32ZUsfjbmZmbV^jKX8<5%f?uT2<FB7{dI_*6np z&6nTajeQci;0HVEz1pYx+cXc5RWCPzv$>ed4%F&xf^p|6p}|@`^IO0X#w9pHbU6%+ zO~t18cK}y4R$>5_+t@z^V*rV6zD2rAN(ZjvCvlIQdXuuW@DzcU8{+q(tv*6h4@@%pkbOJ;MLAINwlQC53&ikaUbnC;6n_e-YhHD5cSTn z0t|{CuLAt~!H8=GQAi9Y@4gL21wLeutf8+9Eg~XO%RHL0HI=rW(9x<*MQta} zYfkS=KMyU_Cg9ev7n-L$7Q_-R?@*m_-nb++TBKbvzpdL*{9My}4P8tMnPdNe;&Y@o zsFvLk4;F5!4tK=CcgRz`sqQ%BxY|J7lXq=|`T0@UtMT^S_kSFQldmAUJDN(x)02lY za600soC1|tx27E;wvhmrNg=_(Aqm=OVh}IkVU-}uEFUFM^%F1QUX_57j0pgkwF$sB z6?*YaeBd=e@CZJ^rhn>;t zQWfh?$jcLsM&6l2^R9{K%~i1$%%e2yZkbtKDl*$Fc(gW3ONmDx9Vy*0$&4O@==ljP zKBVH$Oo|t{Rd+r#TzmrLJ5~JTr2GlJ(WK%}Pl_jZFj~Gw#ao>%@Ik;e<118rGW-cx z&mXRS=`#htN5xM}s^1$g|EN>&lamym8;?IUTs%#i4EP^b@yYEkh{xZd;*;y28INyL z@yYEgipQ@}@yYlpiN`Nh@yYltjmOU%E`M1(-lO8DCbhpJ9)ASl3WoEvr1+)r_?J}t z_@sD$JpS?F;%nmZ_pA7EN%>dA<9Dd|xU}i#pK`TFAz#vzVOIjOe=6nXdMEeWX?#R3Zeo6Cc@KJGncP`$CPz_uySWAJ;y(g(dGHhrR=B~<*r5zo z<#kHzPzI~=!Yl#x4rQ<^?;436%3vk0ny-d3Si3gXB9JGCGT01l9HT2$i-$7UR82~+ zP;d`rutxC<6y!r0tXaP5jiC(IEFa4Ww0tOoHOtSE_@NBeEMH-LD1$Z2SA8~=!J6fJ zrTn1`)+|3);)gO=v;2ICAIf0O@(Uz>D1$Z2pDFP}8LU};k;D&Wux9xs5D z{7?pKmR~0ELm8}DeucyjWw2)XOC^3NgEhfgz zPzGz3f2G6^Ww2)XGPZ^=SeItT2cZ}}HG4g{Yu#e*M}*IYzltj<=j)I0VGACG#N!{B zfHh2C8qZzj1}Mcakcv1?2@-s6yNJxdzghu)crWkCWV~A56%?^OBk7(Rc=sq;@&`7c-b?;k#Y_Nnu~v0AlXb^BHRSNMR+XZZZD zojU(jD*v4-|7*kNfBe+>r>gvytNcfY&wtmc^S`l5wO{48jTyH8PXT{8C!p_A`Cs9~ z7W5?NuU7=r-}IAV@yGmEsr+}U{5iwtzw6Zbr>gvytNi(=$bbJS>wn{N)qa(~bol&D z!{_Jt*`@No!UvA~BVE@gN-#f9Qu(`*^PBbG^}D3(X8qFtD*r2d*n;~` zk-vA?{6haK|D7uTq2&DL_<8Wu`KPMV++ouX5ttI{J5A+ZtnwHAuk$}2 z5d7dm1h%hY*!(6wrTSNMSIjO6qt{XE!rN_<|W^53cQUzwcW?Em~h{Q(uH1A2F7 z@t*4)Sl;)*7xo_axA$s$4M7riSau*u8xhb7ijTq~+2^eG57fb=(uq@H>DtA`v%)d_ zu*~DOv$MKVMbfAHM~9~MChr~{JeW}4ItL2GUSUFk%_Fq+4wUxxe_djr(Uq{bgq?~r z^p&-O_iyq6ITLtLaxx)=|D-=gGop(fjjrfoXX4!y>EUzg^eN19T(47E*GksY6Sm4( zL=?xxqoocY4j9nJ^v$Q9)COm5K88^zJtFFpTTEbcy6#DM4oO4;wfVeCA(M(`kAC-O zJcYF?l!op8h9260CT_OjeNg%*{>$`+zkcjBjgX2|@12hGV~OZC`_IH7cdEO?XX&TI znieD5&xbSE1vH2Z=&WBQr`8&JqAQ%}C~ZR2qmAK4U3zq#qn@^BV&9AQ4Xs~#`}7@2 z^;_LN7=YWwYC(UFk5d9LOzjrFNRJI-IOu_W@~3PLHZ0D^HWdKI_A+5#0M9CDZzw%L zw?huAo6!=ZnW{-iJ!14nQu(?6hvm!J2Nx~q!fCK9!<{Uk6S#C5A;WJ%GXBi|E1nf9 zN*H_S!!O{_5y&(ZXZZsTC}B>~((>4kapM`BoLgjP?0>+Vz^-Vf0N%SD+9lXDF^gI_ z6lt0r2rNFXeH4Cy7u6?VjQj=g2yemVaqzHSe8|0XkG981WW=ZRAkv1g#P3oE_LJ$K zzZ+Jvs)Wc{^oWO9z-%q0@C5UM8(I8p_}zNV?}&O3#PlZr znqll*BBwExOd_e_#24BBA7nZSsp;ehZosklpqanG%zqB^3p1HKv;brJh{a1V_X{UN zzT+^(@l3g%)*9`&qa+cZrac<2G!iqq&@vO=Y{P!r3B$45Ps;8w$jl`(V1K<>idXAT ze1bYg88>ZMwtX(^_LU)5tPsD1(G~FPEd$&{y%9xV!EAt)#Ba1k&VawsrjIy*TCk}N ziw-d;fVCYA6S$vkO}i!nP5dnf2Z;|p06rJ{=if&rV{<%|U#HtpGeS>bjtS`Rf6Tw{ z;IB5pxCg|-S$5n+Vb^_F)&~lY759cP%?fHU2%;A;c-MpYGdO}_yB-=Qf?=~Sx)*;# z=>y}}_(yr7@|D~_QXiOhX1ub#G*-q*SSlPG$qFTs6%3AK7$X&#hukRjA@R8A_#q2L zFemiHU>1j9mNd;sjj@{bLzcwkX#EfG$9r`2!}v>|(6mj?jE-mE4<#&--s<4*mIw0^ zkf)B{f!iSXw1j4=^LWaXA}L(_BhW&i4=rg-sna*?f?4Wu(gy9YgMtxo;dLWz3#$=nCUr%9nXBsbkK2u; z3QNEpfKl9^EC6OFhE-A9CP-Z$YRkyh->rrfkKS@Gnr%RlPFsDL9%+T`$Liqjkxjn| zr$OA29=?{F{!}|W9Z%1h5YCPq2xWHQZmXx~1X99d+PYKWu@S~!uNQX5(r`P`VMu9k zfGb%Y+DHG3T;YJWP|P7_mpj9Y1$pI8b&*z7`xfHh_5v6SmDW9Z6k^|R zVeDYzj$i{0IV|K*IM)D54UdHeL42WFXkNcWfdmmC_&Tx&UxbZG<4FB0m(j3^MtCD} zpRSdL5C?)wQAe@}e|qo(O5T1rQ5dQJPK=zei&HP65VnKr{QlpLgL+fL{fgC)vAOHo z=gXzSGwLgfZYf29(Jf{8+vm#%ha1rU37RqwQH|H5U~}Kay2J_l$cV6k~EqEvvw zrg2|25YnK=W8(SQ!RKkk#wjs@FW+y#1;z+|hHeT(effzHS{&2lax~WyZ@Syr3=Gw6 z`_Zn}6E=LgZx!oLX&T6J+b<9^S4I2~uf_Y_x8nFBGBp?G?eTY(T~OlhTwa2)=;H9a zods%=8GVtr*Fce=3%PL4oha*Kd3k%(qA!roJ$r zsr|s_svRvw86i(;@l)3wi{3*7_Fn~pLXGdW6paq0Fd_o>4;LfuZHo|-*W0F-s1EKr zvprV%QU9KkX${)mJ^Gnf*!QlgU)j^vZPyOv{ju$Bz)hDP(c3Ff?DeO0-sfd6u)Ykb z4{za=QdASZr!@9G_#y$Ckl!Rsj(4pk~YycNU>EYXD7_>uN6PIS+0-f$`h;jZ-?&^8A7EI|P_bAWNyK|0P%&!teD0h{n9aeX>@bZ*V^N#f60o zGMSh#W@C5cd%%k!ooZ*0uC=-B5qIQIz=lQn*})x12al=fPT1jlK=nUFz!0i0C)HR*=ATicE!4Ip|5tC9+L1oor0iqN?gICup}Mb^ehKFc2z`o(aUTEtPECw8V8Umg34 zqJ0RnCK#kB$gT-s>@e=`RHH8$j;0V`$mhxkcIdZ4O>WyoahGiTd4L2H>gF*(m^%`~ zS3ge>va^Gat5Nm;t?ir6kB|10MVN?|aUw#Gaw2NLz+cseF2p~xM*w0Jt0%w_zPvAu z@DafXtwwheR2$D-Jf*K;A|1fOGmQma|WO4UUVny#waqI-03O(7M7={hW=Rr zN9JpR_aG0efz9lOqycCElL^q^o^3tCAzG(B?!5y~t|xv;ghdoP?1qhb>prIF@dtCj zyU=o%(V;S(5l?Dhe+!8c1~%LtfMM53kK)``0>jRZQ}~$%c)j&zEn1)c*fAo<5q1$& zGo182re3Kr4S?t)z<5naIJ7;KDy{aYMWa8M|6jEQ=b??B|F4?kUue!hCSYhz?8E;* z%{kb5PTpJUNrfey;3oG?Gvd8jxd7C^ zya3q^HbQ?ceZB&+D-&XfU$5}|#B>p?pCjMGp-mp|DFR5EuK>EUXmbIU8GsWaJY~tw zr5BXo&}u=Gqhxk7z2xJ->c22ylvDv)ED45r3qFXp0SX%y3T^vx+K#7(rU!Q-EO9AIr9$aIV`xl7tXoD6gFvfS=a|44~f;bf8qTrM%oYhx=CGx=d7PGJ#v#{Gx zm_zWq`{U}`Lx*sj`j&(n})O&grzbE+_a7HCVa;p55!6Foh=ByUF0$dai0K%HK zeO}DGBY+t42@}6gUZZ_NTW)dI3UF2>-VLI!_vQh<0Q<~n?C|t;BRw*Lte}boHJzd% zh>Lf&DLeDodISSS##Pzjta>snZ65DIBXuAS6Vaf2;D=_~)+3a&>6Gzd@9TK0YfLMAHMk#L6yV)R zg#(4};OWIL7eAb9%atJm)kwHj`(wxAGe54kp9|_Lz z9#>hPWpqK)6b#hN9VN3jpXPJ#K7?utuuSe;y7|x=DUndKGyI?KHs-GgB zg*8{su=R5iH|o#&{Q9$ot-l)iI|3@L$p48CzGoDnhuH#NGZF zLREhuSV(P&FZMn_n1JfXS_HE6=eEwZppds)E}0Wf@sViU+d`PXN@lxnU5lrc()DC# z6B7QjAJz#2v+wfis30^S(?S-Qx2LX_M74pSj64)Y`!wNF=GCxKDg>*#LFmxTJ zjh(_s;PFJ;CZmJW?G<@@%rS!j1gl(Q03~v(g9p1Z$HLK~FE|o6nL&ul!Ix~dy6Bw% zA|j)qHGbGzfES1l%QPs*>-01VS^Jz2l{bwR4+CaW_*bAX$$K{jqKgVbZw7U;^KIT7 zkY+Fi;sdy|Qe?PdWi6MS9~!IGxp0d7HE%g<+#LuWW+@S`*DM8`S(U<2 zI>N@(kPQ$MM969pARD0quSWg3NRuQ-CajcRo{gDd5oZR2;Zq0Nw@4(92D4?5#Tt%q ze@J+D@q5_0yR5*FR1(vFblA)x=SLS6ppQINWEtT1R4L=aS3S$Hhaxl?iYh&P`x zki4qE=tC61sCFvub#MDS8WqNI&I{iWyfWw~2m<$Zx9`A90u&a^BHc^ZX>|pGE*sFE z_msbLTfT_}sx7s{#eZqK(H`rK{#NEb6+q*Zv zlJ{wsO3K7*_ zV$wSOJ}%7mIaYCF(ZsKsZ;3b(=uAAJ51NMIL0J$J&u))Ga5AMD=wy~hEGAvFQ3V9CiSePUzkgByasG+D!P$Xr6o?hf_>4_^%Z5C)rBtxU!kTO;! zh_O;DX5eve13Aar22$y0yP&fF2kgp-w@iVK`P@|%`~V0NfB;RlKL+P{nz$`F`Az;3B@gQOC6kx9HS74^#YGF%COicUHVTcN ziT%Za5gTF16F{|+rDz{u3Q~q@H-~}~##0|2K#pzT4^(J$;4NGT|G#J%Xo5kvAqeA% z7qgqxdPRe=@=zLHR*i0g11XLrupAC#3Ys#IKmtvTMuX}wq_YtzTsa^4I3xz#?J(WJ z{_&rM%Q>!SFx$hvS3)L_lr>0M*oSAfjH-7Se}p0fGCPkwMq3&b*Z$tld`})xQiR& zYLSkfYkv?u*Xi*3gS=E_V0;Lq!QgKrIG|nh7DsjkMz-4Gqo#G>kJ9HMS4+`(;Smr# zvC(-=umow0nDCfjLHsK;(y#yaZ$c=+oP^-PJK#arDI&QI-j_z80iX?iE6R{~d#d&G z$R*{FHI1lnQz0I1fEs@+fQm^q@&PQ6XY7jpI{cR;`TEdfzk zT@e44%~3#qnpz=ovk$5YhxO9X^n5K?SDW1FnwEHAhAhJdwCC7QbVfcWi=h zq>~CA+<-()gZE!{b)%_JuO`_eFbu7??Rs2A8uko*Y5ZnHyp;d5{eRhCNwyb|s$gq) z18oAn)N0uTU{4740JwmGwg4fn!nw`-zp(?zRzx-0$cis)(x&L{)mvoSr!$&VNNdex$0cC>&{DT8(1_x9O4p=%k zUX=)^vs9li3pyfO6I{~ES|9u;6C-j!r5duo*s&-}Z7Fig zhpTtk`rHqF@zW>+GXO)tfFi%cCmeHZ{|%mokV>D*>jhuU?93d)`MJHj z**Jz8+beQpE z|KE@zKWy4c2^Dga3w8GdH-dC9M`q}MnV~xVSop82s4g{ABqWZrDtYVhq5b4#_ownQ zjfh;iCyu4Q5Y#^<558ZJ3p$SaytscCN&9>=8HKqm>dVDeINgr>3OaA&R9d`u{dDLq z@(xw`wd0j}CydScKmlEL`SSB#&U+3MXkK45P!L_NGS9?iD~RgMoZWec6!GHq^R;Vp zwfX`ig9z8@80oLe`&ZsyqrRC57sd)WN7+r7={hr=ovvJaPc)D(#TEbtkb^P5lLe@a zeHc)H!KV`4k(lTvB(khMvIeKcG~8g{e?@e8zL|UOVl*Yx5!`Ch z%mevCGwS{mql!3@$XY``wsNGcI#8#**9o7IxCq==Q0&VOkI{F-j@P0t98V^!xS+qNu!uyxV8kGR6uE=}RkofkqSK z4SAIMtdW*JtEFg0IM4WMI*V~BrAqNNe0rt*!i@!R1p6E`Sf)M^6j^x$SrD#uV7W;H5wKEa$E06gZ`2lqm@@ABMJHz zxDw1kc6}V6)Rs9a{rbequsDN%D?G?OfV&Fd&OiikV1_h8=9h|BSQQtx^`17U#-+(M zCKt1moiZ+X9K0l;pJo*^r>%F~@bLfV(oPG$C8hO%u7sAu-{@R^nm8$yKAj(XztItV z4QVR%?^|g?jYWOss};MYCpI**xF=e^BD5;HB1fxT5xv~2m9L1xE$^}w(UlH_G!_M4 zLLt#f2yZ;oum7rs_0gvdn&b}d6Cf_JDj3(8QQg+-M)UKPLOfbd|0|YUZgQR0Bittl zG^W$o!q{~?+V%*52C96i700m1q@71E+~G~G8VHG z_uaGon6#FsRH8mvOG8JMk9UzWqRRrUl$Wr;@TriD;Nt{j2b1Cq7PXtss^AE4`{2L;u!IV;DXa~QUyH_K>60D2-$c^5 za|B6LG8tG>(sbzj;8ruuzs{C4=oIe6sM!_LfFnxR+Ez9T&B3+E2&3QCX8vC$v=?E)2XL7{THyGEAFF z(Ovi|^@oq4zin5~u62fQx>{S7adq1X$A&AlnRfS+2edsj-oauq$$IB%ZYx5EoJ*Bs zwld|B4MucgreEKN85qP)QkaekwWW4PTMtZz!?$B*H6aOpVz&4RuZdMe3zYGu%A1^z zp-Sgf_?(7>gR>#&6e@6Q39OTG$J*xfD`X+tcGK#VfV-U zZ@vThnR%VV{xZ&AEnES8g+8$o+zlzd;eecP{|wcQ)Sky><0$GE%)exX{i7(Jm7aQ> z_G!TOQV+_^TUb#1)TW83YrLu}gCH#_DE@s@42{cDHRtsrQL3hEzt>J`&!Z23|EJsD zu)}(4VS)Xr`sl&}mZ^ridEO#T|26g%v1A5m02+0Ar?kZU#(AI8rCbFk$CoC?S0uzU zy?@Ym4Zm@J8t@L?Zu_eN?L7<_`a`pY9i2SA@eZDA@jMoSrYjeMm><`O=jR>Q&w+jv zsLj#_?8h}r2~@A?~v#2M%O8QG6C=B)J%Z%xz_l z@}*bbSI$~(;w3402_-53Q-2fQFhq9~USq6~!?1)+RN!#^>PMNwDR9mX7GX%m6*&3v zFDh`h9#z^ArEegAimPGTj)>-~u)BD_j9P~meY4NmGaDmU8tBO#@A6dF>I>0MNVEuU z`#o^=JHi6{j>ap)vy!Z}-I13eYT*`BT9eWwJL)SzuIy;NGkR@i^x9H=;=h2gcVjD) zvV~6%uE7){M&23vAIFO%U-(Y!tRW?N;w3#tPlxXkCM;MC(|F9@^au%VXw$;70sSuE zc`~joc;WpYyW3wu7-oMSeSjNyn>JU}HUrw8(4@G{WZvG+kj=A8Ft0rq8`rrmWk-jn z6z*nEXtmC~UhQa=?xNM7(xTppf}-WTV8#my=iLl5fdXtRwDs~Di~`V`C%N$SRD_cb zC&(3rgJV5nDK;ci3Nq!OAhjQ-_W!Zfa|rAVw#}x&NuPah=j!zHaps5%QVN(LS$D(_ zeriydw#-!-DuFd-+i|~E>j+Kco?9*~&obHL5OviCQ+8}R!o3K0B!y?i#)Bt#tAd|^ z+TzJGVcJ{nv44bCp}@Yp-r#Y>+k5<&b&MS=`%wyB+RJ%=48G2|7psgoL@>ktqznke zu3y_eDo>`uhh&N>nYkZM%H6ilBWa0fRQ+7uv%ylh{k1<+nN+oO4;-TMjsvOguB7Tv zN^F8;zJuWjnO$06bW?V8Q%+wwr)_RFaD5{77cgq8gKyKnkRVO(&7m<;hhN{1P>d<< z_sGcUOn({H2XX*)){d4-Y@w;O*biv~d*s9{!Wh!(zcvzuUyFed3Ifq`Y>KI9Sj9r? zquicq0|1YntM$1~iW?=k!kK0OPdrNDHV zxWv(xRX`zc3?}VE&fxk-*!SyC!C43yqp``sjX+KCA0uG4$x2YiACMxr8ll{Jkj418 zu`-0!)+;#*bg=NtP4n0?bkLZD5t|-^i%tO+s6$*PWD;J|35SC?oBI?m|3h{Fg1AY@ zXCR@0Q%AoOmA<2^u;6+_dpfO#cOnM938=wrn`t^5Ym(yw;(nAhKSES=6 zGu1AvmJ@R;9I4C?4bDvbPyq0>A2ab2P6t>xwm`IHL1;=>GbRyMtDvb?g?)*L(K+nl z-PSzppwJmdrVq$O_f!IzIT$hn*fmE}WkF8-oND@QG(JK;e_L+v!vgr(&(!VZ(jCn)4WTz#pC# z+>wgK82;h7LQQ35quq~Np#u2UFU#PVDU0P*21_RxV+p%#+VUDfjlGiIo3SIp|MasY zF>cM}Rvd3slM`dSLXEYvyGWye=XC3~+R?^swNOif9y=Gn1ggP(%V$XIezfHdN2+JQ z+umhQ^>pn!1Iv&Y!n^L{+Z%k_#X_Z`1hZ;u}|ZT}LM2&CR!NzVSp+*Zq9^7%1!7!8bCjPY%}$R_~Ga;S8#IhxZcH$2I^;Gy>%B$9@I= zv)3hJ^#KRrU-}=gYI?npnug2=OQOqbAW+~QV5tC=s8N^9;Y+2avj0$%DT%0VMCXBE z9+IXVL(`0|%a8hNxCvfq%pTG_)SW7$+Zgitb9NcsiJRKhpM$SCN%%q=DphmP7xp+6 z-YA6l)uhENts(@S(Fm<#BSr+;MYAOWuE{;7jrQOj)x0=r4DRR9wo^%nO%xr| zVP$kn5x(>faYR#-n_L^c!F5Pm72Q(8h}RggooU+kd2#q)ODSHllGx5z)J5gVC?Ho~ zh)Iufu?eX0l>6h4YPV3gi==02x3G3<+x{&AIfTEcL>d}NsycDs#C^CkmBvPm1K|nU zcbFwmrTYO3WzfS|ho9p&O48>L!le*iC0S*lN;|BdBPp|>6OyuPai3LB4rH;T$PS~) z{KgeYi~Z0nw4m0yR+xgbb}J#Su8iT1F30TjriFW6$HjtKTs1zZmPBZchd0+P21Wp@ zs9WG!1Z4O8o3+|ex^$7sQTIn@l8!T>2vUaSwfa*(9MZtrD*fw^nhorZd94PnL})?- zYuUhZNtvaM+4Bajn7aUeSSY{ldDBrHExXXAUwqL>n;%Q1Oob$XkjX;EwC(fEXAZ{& z80{|mAuWB+>yBtmLFPcZzz_L)%ay99&QYYpo~k&F;IpSBGCT?z;+lD?y8)OBWzmNO zmeAXonLO{2Da?XP5jZP=GVK^Z*aNuc*VDskMU^R`ktLUg&%jGKt8GszBIaM`D7k#S zv*fDlR+QYhp$0dYm25Oqt_YvWl#`GW>)XV%`AD0~wDIh92&(RwpE5roY$3wt&F@IT zQIiYj>D%M^QFPo)u? zMPbn`Odb9@5dJqWF)0uf5q3zLS^l;G;3OPYUBr1btEoUZA5l z_Ep%8QtCvM+KEz8l*+(lQk-g(YECq}Lw(MVN>kxQN171LZ`Gvm(x^NP7frMmlH$?W z3sr*RzD?e0{fADBzr*@!K1S6AkCOQecvK1w>f@_S1Gn~p=3MPLWB*CJofuqvDUPAz zsqIxj^*L@Pu;Djg`IyXcv@KLV;F6c{!r*I2lF)3m6mEon113p`2(9beQh=aYNFUu& z!+PXfZo+YDw==G7Pg?QQ&0p#)8QJOLmZgpMcUC`zW@y`)PZizum8-A5`lEk6e^SoX z+xHIcRq~C1J{BAls0YH~uWUE#NUmEkP)>Jnqf-}}rOeRiBP@TmFSiL+8wDU6U;g0I zv4J0UqicT+3sjUZ_IkL`47>Z$k{whWH+wrPQW{`p!FiSA7F~sz14qj?bC_NVE?<$` zJW=x(Xf++5MEzc^6h|$#YAI^X-P2dz9P1-RJCuWR$7|ezL~0hNufsjv@P9;oW137 z{B8Q0wtXL-9KGFm4(^H2xzR0*S9v-!OSLU4(40MQrqZCrBA#%LN+9DJl%WdK|2^BJ zkDjRH)3&ox?RFL!E$Pq%25mcwr0mw|D2?v!Vq7LhrX)4voQ$h!bqorIWe$U#Dwyb# z8j=Q-*2cqQd;`f(H_c^iq|2b>Bg4E3+GvQKw zyRqT*V=ds-7I-?KM(t_15XP+v2AOsP+EHu}>2g-q9r+>$z$RPqad)H+uPyV=sm3kR zcS>`-2cVNI{Th9&V z%#MbXMJPS|)7Xl~s6mb`6aapX*N%qNw!TzEhUT(P6f%25PG@F|`%#z=_zw+J$l=(y z$Dq>20V%x~n&QH4mYlL^t_{tJZn9lJ0rz%Zmj(^``txy>XXw1P<2lz&k4>99@UqRe zK6|e1b(`(F5pzGqM*aFRbGaP2&MmcU;0{|RM3Bs24LL0DLeevZ;Arp+{WIKxz%}QzETqvz=dzDwd$@CBe1|x?&=p%pGArYFjuqxZ5G_%3y*BYtx+w zYCHa!JM#aCdl&eqihF@Sj}3$nI15II5H(`ZC=XFk6A~dj5`rS+K{g;SwN%%LXmt;w zLfE)jWpfB>ebqkfOYgP4)>>^9wJHh{pB1gGsBNV$d*W)fYBdlg|LEN=E9&~q9~z%fZ( zB;@*Ba*i$9BJRNQU@grOe#RcD^LJ!bR;m!UljX|gtIz?Pd6kvspzzh1CxwozxA*;0 zWC;<(3apxG++&>ylOV@A1`7yCoxOyd%DTb_(!wlJnGfSWzQp4_I_;lqvB-Pttt}<( z3ha=@gLOcj zHX0AT!4-L(mpXYIP>~l+c*&t3z0*S@BL`M*EZSUjg7MIbjGAiJzndp?>^HW^B*%SH z?)04|A`Pw^36EBDtOVbQaS8eE6b~{;uhwt$YKKVT*yFeaMBlfk&Y>lniv}sU<_TcC1rmlYeeUuNQWx#ggn3SQBh%C07kW#H zAV#yECHv$OH79b7rND=~aHym}tL~jqAUoQfiU_OD<>VsGR;wq!Es3O_9glYx6i44k>2xSxTtIx66w9#*eZ(UNbfB9 zb&j$1uj2~o#1hy^w0|Sp!f%D`S zZA;8Y+kx%;-H_jQKyro|TievLJ@PEK?ZBt}+xm^R13mJ)Abw$R?gc~r0sD;=A_dD9 zYSMjdDCOUU`kT8!h}JXO4h)`x8sgNp1IO^Mv~>diwvLY+SVdfvMhQaD1n%H#LgU08 z+|JMud(~{v0^BKzHZQL%l8I9*`));#OpLMR+f)VPD0lj1_QyCuKyxhfEKMWlo(*}l#_(T0d z`{9#VBck^ul1V8mJm{1p-Kr$SD)Qb22`DENNFz4;(+^#r`o2A!V^rOQ-qx!Ydv+38 zghYT$8*)IT)~nlkxAU8Y=#_nw7wTIAu8-c=|P1@lRpm*GHGpM*@Kv7n)#`0s$nfi7P|XKZ~+ zJyQ_!OdvG23T=0w9NYZ^emH=h|Z?)q;n!3HMSNx%kTeinv>0CUqxUs=rtQo6p8&N?5D={d1g!k_x#WLqd zzF2MTF}B=~0--XIsZ+Z?6*%#S)KfNNN|UXY0itx4CF?O?-l^ zby(K=$?kPZ7EUhr-JJ!KS?vq7B!v43TbUjTty|QQmHm|3+jV-8=*pgWnmTT*J>BbA ze4&hdBGu&}S+&bonju~cu{^zinzG6N_prOlK_aPAq?{$m{?>|12 z6W%}0tdaNaT+bY;oc?quPyaGMiBA@2hE`TlKlnF0G6LJLKa zOuNO3!-|!zfLn!IUQ^_>6!49KYEtZN{h3iSsQ6B%4E`N#5a`4?d7yHHn;~ktd}1h3ncgm9sQ1Id41hz zXEOAwu1CfQkhkerQDy43&YD8zOYYRZU%u^9mpIy{Qz1)0Ra%`$Pri9!WM38)+jYew zrKJT`3Qn=!oC~-OzE;P`1;M zaBld8l99^TqRz0MoK2g8MY<+wc{1!bm|;d0zX%i2n1PnShOU~$qp3%1l32i9gPHSh zcFSn5ac)?*Z1^uTnc)HAIB?)I#1?dyRJqoq9@yd^3H8RmVy^4p^G%sUg;tv>X|x(| zMAz^mfmZo-3atw4eB$<9v^qYxyx2vnlD{alk~_JJ1q6*+C*op^tJ9j2e2rPc;c3h| z!m2u#DIe)zmLjjvF28w>!W;B)9=tg&SV>1MW7$!=>=Ws!OWQ*Es;g!>aAtHrz#ml$ z3{fc5_*bwjh87XRZvUN{`Gn7Q1Tp0ugk zfoR8z6~BNKXRv|Vs`z(@)h23ea=Wb`ZQWEy5&cd1$)RC9iFCvAZu|&|4GYx}Yr(a? zaCt`PLu>A}Dp9?I2K7zNEqPPlXZ7<%zn|hwX%>k06Het1kJkq@ayxWEj(~d6r8IUF z21Koq6YjlwU8$%tD4nzJDA7kyDqn|sV^zoq!<^)WVM%y4$($|d)@f!|e7IpW2bAbs z5W$l2(PRWIE9a2+ZVmfd+A< z$nHE&Ai1O8F-ycgOSCf=b5D5oszE9ka))*6i;TJAmDVild23Yk)n+rtYAuZCS`B{k z{a@|tpz-!sLphNTvf?@IZ-p`!RlK}$B2Np-3UbY(oY(nf%X2eLf7#;PtavW93gvfb zq)6qj;o;XQeJC?XS5%7fKMPN|8loOot;~KZc^8EM9ep)mv_DQ2ab^{cLhj~PdV*_9 zSYEcsxX9I|nPeS5v&5QJV9n33t$6D4;o-8%P!6RlKIOmR`l@s7yoKs=uyuKfwXmRy zSF=0(;r%m0WClLo93c-*4woGt8cXT&Ptitk<{c(a$A-(sg>uwWehrhtE(*R_HXiPS zt%a&nzr-(u%Vs1x9{b#9uN?bqZ0O1zcFqSJ2Oru`{F8r11;cEuhCT_&b=7W(^@+Tv zl9c~Kjxsn&ZXDmrjcbySYU-!*;|6|!oCQ9nf`9#R=oydmERoMVe@6Rr>&r+vb@>qv zb5c-KJ*!F-G@w>NcMX*#+tgpkHWm6Kadx3S7NN4A?STWy-_h|@$=*uB<8G(Lig%40 zBvH!L?HzMxWOnQc{}l~c*nB1O=cAwc^PtGynM0o?FExv>u{5%82!hJKyw-&gTAd%+ zSG?h;;#sjxAj{rErYu~hsM)qplxMA_e79GLGy6n+)>_DK8Zx$A4!cF2K0lGB7f|ls z#x=A7h#yw&HKIZ*%b6nM2K96?AU<8Py)tY>C-NmAXSpC7(J?%U{Mit&|1xvv^Zmdd zmjJ(3z@G#7#un&P-!_@u?gRY!GQc09whQ>r5?}7*OTg`^{E!*tDc}|uHwem#^{gAwW}Zxat7CbI5&83AJpjfM`RmM~FYs&V zv-0P8XFbRP=B!7R45&g4XcP^^r+nE!K156F4&-l?w+W(Uf@q5BAYf#Fm~E5PTQoW! z8CyE3BIu)#M@VvhlGG@i7XD05Q(p<~WT1%SLt=V13?mTl#(NdF9`lu0z7kX)_h*yc z!;yosAzF?0+8H7r!!3;o-o>6le_ae)Y=7ocF20h~6N(qvPRpJ7RZsmntG+8D$1?x# zwLiupOL$@yadF2NN6YsQ^L?W|YpPIjzivgHc(Tk>T3ec9C+0WMf5unRfr;V~vcZzNRWTYN_E#lk3Wk@B1pDJs<}4qrxl zn>-{==_AaT?8Zj>X%uly_C(ekxZFAGim1iY5Q_hI z9&>z;lA)*rAMQQN1i=^xnpsqgwRq2Th41A{TJP%$zeY*$Ams0w1RIAp*`X}8K7u@?3lk+0xN`}( zbC&&;aA!2*y6nhImiAGl;>y=E@a0HTm_!;0dTVO5mnzeOjKbe&uTiZbK`F@SWUS`h z^yKY$k#ppId$iIq!Uknyi(m%yWn|6Ne*6rjAs3TFz&w|kD5`I?3lCGN6X?hDq)ypn9;SFBnVyHDy0(GX^(h*W6XM!M~f zc6MCAz6*pGyhwD@nA(kbbhBMNpo=`Z7^FK$?p<}EgUeO8`F}1JhjcEe51ogW=6DJw zBh4fexCuKOU8{(I9rhI{2oxaZ;Q{-dzHETKOjTf?NNZhHLb)?yB$g1Oz;@RE`mJ>$ zu3AUcWxvoIt1Yni|4A|Tu#e)TCm_kSLcq6jN5DSYkE0Xus%$A43jRjyw;%5$HqF^Z zKYW%li+h>imuivwG~~Y^k`)+@!e?qJQgU4XXEd|&rV+(7h=5}D+>*+x0~V8 z8Dso8Z9|T=ic?7JiTCKG3u~S1mrp3il&Om}9JJb67HgdrdqRxj+RGqxbj905%{1E2 z-=a=Q=6D!PYeMDBb!3I|T|uJa4?PtFg_84C>89~YkPRnw3q#|aM$JTBT!iFxGRDEW zZm+KXggj4tF~{@8R;l5EaS>_@mq~O(W8Ef2FZRH1*>(P2*#`u35`ct!(^_Y`QM9cmgEU}seSc$?{BWN zBkr4X)f;JtH^Bbp=?bCCpJ?Y%$Y|RY=HGz*wco49Sl5%ApOT7?$yW%52_)AXqD_O? zLd!Rl6yv`MHKyIsatH~ZG#sFUKh{9aRc?UXmu6qLUnfZNv7B=P_B`Rjt`jCljmMns zc*JO)DB+34l&ebS7<5q|kCMaZXT3tf@|Pu`5c#mA;saO_wfu3T$$lhP9d$8M;@3mBrgk3B8J`k?B5DcqTXnpq@1A&qf(&xtx!d?U5VeOj0IH-bZ()Rnzgx! zsH<%mN~Kl|>e%C66&ff5Rn~AI)ci@n&ee3+eUq}@tfP->1fO>zpjpDk$5^L~_8o!H zkk}o?lxyRIVmC?Q9$(1lYAc{5VpGKS$qV^;Pi`nL5|ffIV&~qI70Qh*^`p{&_|*H` zw_i0Zc1J!hCx!V;zL6iF?#u+QPmbNRn}=OBwY!5p|D+6FP~i@Fc8@Yl3D(jXjY zedwNI`RB5T?UzP__f!$yelp=95xa_4!=$`K{w$B!#h>oX!ZGvYu9~tc)905$Wq7?5 zVu6tSS;J+VL9y+d z1_$gL|IpXxQH`i|<1?q~$dpFJiNL%c~Rs^p-|am z|CuN7+^7r7D|#2?VFSHTzWXnI_7qXno6Yi>MrisRoIIZzxjA_qhqJdoGQpJC?V&GvONHU*IJ z5RAHSPW*Mw{NwT0iEP5(=&16a3)G=e&GwqN*q3xTn>MG&M)@@K2i-?_`gn6lvwd-q zqB@SXx|sfq_A4RN(&rHRG`3!(eho9)&!s>T1c5fOM}*!GsBg530+M`@Z?hfC#Bh@z zTEbf3Xd0Si)#BnDI)^heYu9JhPyUrA{ZGv>3%02%ZhgK*e~pNoH)eU7~9v2T`t zkcaTh%&4E;5VVD>6E7+Ms-}RQ^LwF~qCrv%i4(k_OTmO%f7`zOK(aB%{s^K9kD7o~ z7tqgO%Ebsg_5F%}ht>**T=7y!^4k|zJhNeC_OlUn&?twP*5>m2c@hTGI{ebKO#LCQVM7hqFaJv%(3PKj4Alg@3NnNL(xTPI}ZTrI`b#g+tr9R z%xt#Z{i#p^N%dv4KSj~*WnIKwsl@)pTL=13N%?J?0uxzcDMz9D;Br<|smJnxzl3mw z(bz$RKZh|j+Oq|m)+vL`CDu9#FfKP98r9J0n^0%(=1|VII~RSInibu~R?=mQ3;j4Dk9wh_Zm$f(g|%wdSXM zT2b9?%I5CD93s4&taFyW)5t#T5AHfY2g9w_IpfXLb@umP=S|AqB|>C7S=;*hu2U0# znXK{&DHH!tww`#|iDd!%LPFKuN%zaDrcC^8?!>Et(f%|Oqb46kGR2ey7~O9HLMxJ! z|NHJ%s$(fG$TSCS_D!gc8+8irmW*+bT{Z^@P>}r!QT8RQDJs;hqPXkd>QFFnCeH;{ z@m0TIm})^wyRyR*R0sDzQpzC`PNlBIY))X&i|M3@&I$$d$jZzPzbng`k!E|TN>NcH zew`x3C7M!&$a{W8zlyX~5Jr@xDJ*|NNFfZVplrcvmQwt4J6`rmC2dQOK$G^F#lz$4UB0ZHD7_xU>?wN5yx2P&EI(=^lAI1A>23qnxcp@l|awvMJ*gI;Cx4lH9fny=`CYw5`2`3vtWsXmeH}x(O7P1ppQOyL=~R813SemN4li!_UR} z0DG6UB$8>X0qR^Z5|2U>6kU=-VFW{RX@ZCm|;p8!mWSw$MC$N|u zr#2h<0*q7s4nNy%>igmS>x`(}R}x;I`E?^YNR_fKH=>_|4dM0KR~XTcRLOUd5w%q* z=Tam3Csi7>)`-4F$+}L2T;;!<%~hWABNLTuO-W{5v0nXfIs93`eqp5I&*WL1KRi7n zvC60DEvHd7`ijD!fL%!_`-Pa(2#2&dymfJL{kO(%E4>vY>eZ z`$aM?xt{23AV|o{fc+0Z3)tTfler=-mfex1UWQI_fVnu4*`SLan}ZS$p8$we8pqR? zaoz3w6R^LfMvCGLJlRosyjdHtqpAl(da#qj&8<8>w7dUsFFIK3@e}%2ozWbWhVbt5q~8`sVj{J_oh zdX$Ldy7kal1ac8>GY2~~RuZZ%-4WQlLM(`)$jGqGq4Lh>tVChLihX>-ihX3lihYBdYwgH=sQSC@=B#nz7-#=!UsQtr5Tz8LC@kXV9rTE=3m2>s^va%uWjN zNBcl zCnN`uLo1k(@P6n+2Mg4(B=do_)890r8)cE#XMN3xO4baB1%yGeW*~pBHlnLkDF?D4 zSu@J&1{u)>>e1i}ji}&dSbXwpumEzXjq@|=1M|?Dr$0^)1V?|z@Di( zTq+%sMo#G)7`{-E8~P9b`X)uAlEWXD9KH}Md(O`O!#ARfK;7gq*ImU=r`_bydNB{1 z6xm6(4ZU%v_84jVA3FxNEqPcOOtN_yR?ycbGc))zXJ*KS&JiE{T+PnEK21FRi}0?( z5ll>-ASR(Xwtk}h&X1HmwhH*KkpGHW^H;9eCbBXnXL3lA!Hfi~S+PRNUVH&49jALwhz(ZT%s8x`JP zXBY9piTKxn{Y3m%(xja&FGlHjers@Kr(A#Mj}5ZF^CVNZ$REQRb9<1AvD@UYb-h?N zV%N!E!g4Bhn2Um&5s&Nz>$9{?ydsXVDY?Rafk+jbo z7s}32ll0x!l%_tV!-c3Li4@JPi=6`pf{gi(-vRVO^s)H}$!9(zNG$rK!Te`kFDpu4 zRWT*q#a0Hb>*<8C%ir=}fDS*pW?vEr*4>krRFHWQWUrTmu?c%2RB=Scu>R)q4 zV^C7(Bx=H21ZcR06eo=Vp4!%S@7~&h9nh<>VOEG4s^D_tGyAt(-VcT*r$u0~Pdj9z z<@7O{Tv9Ao9w#`g48l+zLQFn!6=WwX=W@ExO8(}fBT>s>wd7aCWv|3aLzT>NXj1vA zeA2K8riG3vUotUN6xrw_tfi^0bI}^`;XA0*7jXk&KK@IKR>xKpSeF!5#Lb;Dp4s^^ z&Soq)JBS6T&9AqEKVrFg0W-lh&eG#z@`+%8;v6z8~;HECq z)r=awOG*lRG31o4l`lZ9KEm-qGop`aK7XbW6_+lK?)66Wzf~#w5+nLORr0MdqH>d7 zM^z5a+BFjKz&?(AXaRf5$4nEJACk{;Ym6dKXMd23F(`h#dlnC9 z?6pK=<8))pO(1sF6gyjTw=G-@AmW|WE{@7f@+fjyj11l@AAMaQc>f^>g1cB+=ZGD_ zH{ty=&9AYyXP7Ij+eG+zgo(;P@1lNWqO(8}s^tnN(OieilqB>NGng1RzMn?4lW!aW zz63usJww+7>??PwUeTc79H==$^TPf-p(N`Xz!R3I@`U9whKqjfp%7_#LgJBC_h2O9 zXh||9tmjwmChJSPac3hVv{g@KxO_$^V!bk3%w*0?Wte|MpO%0o!44-Gj-_Baa7oIt z0mCm#9e$Y%zvZ!X!#AQNJ@GI%uAVCLUas=Y;C8+q_EyQ%_ai-}oP7S){8fo_UuB0Z zg}ca#l~(-D^r3P^k|l(&U<5U)Icg>9CX15;=a{6j%(IJYX*#%dPCYU=FibSU>C&znf=_OD+QDx90r zJxv|XC82U}VZgrTaZK>!_FYk|B`_9<=ATJtLAhT-DU>v0)fY_I9og^OaArpaZjU&i zD2?H4@qrxS{>b77{_grswgl3&`09B!*1oV^_?TPCkt^k zOOc5#F~=bftuc!O0FOCyDcc*Y#84ASuvtv&JMz>bORrXp^=w5sxfBQum23l>;aNJ8ePTo@I* zi2F^-@eu%%@Ro~>vKH1dmBq2zS}U+1R=2=fSQo3U^C0w_LvW;uT{($ZM2XtQ(0{jONDuc8>22gP=`(q|Xw^H!u~SSo$MVRm>(Y+hT1yX>5m z8R;2eT>l|u(pzRMQRyw;YbMvN+~(kvagrLSi9IBt?v-gs{3@DcP9&da8ej_r*uw67D!F@*ps44eRsnkwKv;5- z2*=oH9m0|bj-f$WJ9BsX>LRFp=kE5?)l*=XeJ0IhxA1GA2|Ii@lEN zT6hsj>zW23j-bJoBfOhr-Gk{iiB~X^P8KiD@}JLt@3Kb^@b7c{myt=DO_G2*|MO*K zrRqcB573x>=$<_l&osjv< zd0U?d3L9rf`Xt=Gk8t~Th85|P2<$$I!0y}5Zz8b!oCxf`JOjI18aQ} z)_>5qz{*#|WWT{L2i|-Qud($R^-RIcGaZxt3-wIFJ+_;ZPse08+YcY<;G7ZNs;bD; z7+e0R%Q{nl9>V2qdI&9TsY5tN#bh_zm$)qv@7On)(2BlEp&1c|SI+Q4)AT@$Ew@SE z5|`aT($$~poIV797!?@mlH06zBTT0}CY65GzDj9);S~?*? zBHUl0mQG6GL9Ir6`Pfv{Qh5)IE$`7_zgY3hop6709XPu~=O@sp)o71&TLQH(NX(IN z{}~eQUoPSP)AT@$EqBwh6ED7ZjMKO2#*6>PePXmvWZtY@HIbgxB!yM8NWj&0v$p^I zoo?+`B4dO7FE|bLHj!n?HK4xE8%47>4QaAZ)FQ0*8#s}i7$x)KQwcFQwp4>o5@x=+ zyFz1{n^mA&l)9aZD@zD9?}c{JR(6l>N-(#6qRn-Z9tEojL?!`lm5HYKFqCi{g? zU9>EyZ?ZRjqFRgeseA+mXxS-AIIzZ$R-k|lMR0r~{R=;f%&NL3yNl%k2Cb!S+Zkp` zcSQU6s*tbzM*D40De$R;#2L%~q?E*>BzGzTR3WzcA~!QZNg^+S#LN9(pshI`9+lfb?E9#o4j8(diF&Olzp?$$G9HJngWu9)yRNGR`f7G0%4Ft%_hi{PiR zRY+ntnZSh_CUEq0e$%LM?*&gXn2d^-af>OMQWGDZy$c`Z*-$`1T&@QZ%ZNr?@TJfk zs*yK#b#eRVc}2q+r+u5ye^Nu1zd zqHq$C_liV>;6hDpu7Ofkjsuf(ne#&7AZ0Hw4y40)zWA>!@nwj}TH4glZ3VWYP`R%B zv|B+Yw?2_~sAz}wrJ;Q-Tn?2s*;nRaDGQlnfAe=lK?UsI_t`rP2Yzy|5R^Tf0%Gro z=MbP$aHB)UI`3wNBfa8M*^5i1WIT%WA_OS5ptsoQ6t+N4II(dOOP*nUVYJh7M#s_N z-ti$!w)pRfLtA)L=CMZm4oYm;;)Zzv##?F!9$`)?Nc0^%dMGD6vm$gjsnddUVS*oN zrn=q0#IhbVXI^GqCya!W8&N`^SH7~;T%M345|-2Xu#A%Rzdy^^vV?ToPGV|gtR>R= z+@GZ77*V(?d+ht6yhJt(UwCE)UZX{!{0{CVL)sk0QBHJX#w(Bavgxc#Zu;F8F!q^@^hW%>ng;xH)F5j7kix$SFRh7 z5La;rqmBx3J&Uq-zSBu3^cAL@Sr3 zLcImM%;EAW{!LZ9^2bMuGL1WTCp6d(e5~+PN8@VrXHV+Q7$`|>M)m~+yFYUi#oo#w zwRT3lNRDy*i_2R}TM0m_MhtVe6!lPnyyNm^+MOyL5xbwA<9vipS3IoU1N1h%r?kGh z`#wzw*zfT2kAc;SzA?T6Bl@}+UmXtc;Er20PEP|JwEDPTL+>z<^a?#t*# zoCY5MJHoabS(DG2JDWaWPi1>Jh?RwiICl?fvbiNytVSJZAuf$CLb#U2#PO`y!Id=r zBZ8j^|B;rGq-RZuAmvg2=T@a2lMs2>ThZV6JAn{l9oji%V7+XnSVX5YG8k1t0=K-sn9-BVdb@6 z3Ec}_9_cOKc!_?;d=^Rm1ML-Nbe=9ElUti)R>KgbppaV{c^ z^8qr@R4L(e^CLQ!4$^JwH`pWTxAl{}NepGA9*Wzh`IVd& zhdI-fjO=hp#@D=UKlD?VWcVAp?`7XPdsepa{yzhrqS=H!X{6D9^?rwTlhceZ9DG2a z5&BI|GyP0(f@g|;Z~Yn1JePHF2Wk6{dBidEl|3C7;3<(#ow$s4mU+E19CS@XG7jyk z82_QCgMlQ&9lA?1+TN=Kf5j{5mn91Xlhu+>eP1NXXW)4X%(;4P59ObA<%{B|B9dr2 z#mpVNbrduI{0BY2@#IE&D~)!^Z4rS{X&*sBZ|;p_5?i@SwsM8q%KxHeQW<>7N&5n| zoRzvkPRB^^3iA>HzRF*=B-1<}4cQEHdHKC1i+O28zsukL`gPRya`jL`ZQn8@=~**_ zEns*4z&pGB<2Cg59E{9YI4{mMvz3MTTAZkbsqCJ%K9M;$Tv0xG*WAj&j8IVbZl2p@ zbum9h_Fj#}sQ$)q|G?~8>>qQjfUlYDSybQ9w;N6|K9%gLRYZz}jDBweS#Ym2!Jdx1n?Ya#cf^fc=u zz(e%BWFKq2c!$59)~o-aXCZ8e_d0Qo zocZFt9NtgjXO3pkGA}ivtUW%4Sw>W30hG*(jp%Pw$yaSecdAm(*+%qHO4glXqgN@L zv)_!VA4v}e#ZjnevVeW09)^Yx8-0Q!Y=7H>X|LapEq zv`Yp(cFlz+NkG_2}DGF~(C2`OQmVpz`Rnv{+q;eE#&?NcDJ;eF$b_TwqAAtf7wd%TK&ql7#b z5!dq}3(l$f0b)Xt=+ex|Evxx=BFx>C)r`R7!A+FR2uyr4Q7*BPv>CzoQ7anKov^0^ zc_T-NTt05?1rvpkR=jPr|A1y)G&=-esFa9a-S%}j%4@!`5Z!heO-h4ZKwcVJBn^tY z(ILpy0D1D%M1!I%{|B4fbu5}3%s4jRPwt#az-s^OmIUuck8tg371L86h+=pkhk?Y+JQbt z+URq%1Mrxl9T4Xl>L~5N+5C&0N_bV%AL*H7u0zFbw4cV~_{H-30)Ct4B}iC8?;?5* zxf5}~F7e(L*HyE)P6qYD?P<4(N6#S>#&k^Stjno*WkYeNZ-`2xT9%?ZB$twwdM0W` zcb=nym>3_G{S0Esw7;r3oyIDv>`@biPKc%fwTB-aMX8F#LX{}`DAz?bY1~PN<@HbF zKtwByLdznD#=!x?&M)3}ky>!@Ygo4&95kZ;C5*jG8Wdl2==1Wrr#$u3n1TO`_YTY3 z3+^xpR!{dVI`POQ=l@P#Ad`48#n^fUwLsjx%HX1~#n`$^Khv^^#+I#T@hlkT46vTj zTj%nd63u(Ij_3oRKiVvW;R3!syuXr37X@g(kR8f?BYG>MJpOgZU^rH#tVtM-RVka& zm6WW`d#T-MeNRp~e4L6O@loiC%F`VF%YGxKUIj##RIR-6ympDHe^RsWDuNL60v9)ADoLH(tzC;F+9hChPe+#&!gxz^`=iJQIc;C=x%J!6~Zyw4* zSeL0VNwx0~BsweoDxh#);|{UwBPfUswWqgcw-T_s9oV;!`t81IOCW} z4sIR^@Kv%suV%5*+ujXMdkPz5{x4MXKRtX+7VZIJ$$?7Y*;wZY0B!=b%seD zrvd7yCR82kaoM(j_Xt}#BYR&={Z4Mxv&9WhG38D6<~I+rRX^Zr+{9L$eTP#^qNl3$ zsW`*xROkDaP_N^u zG?UXYLZU6jeKeOa#(utY$o6vOZ&J2DB`MpV!kpN@xY2Vm4sgj6#R*A!l$N9M(BW#q z$GC*r(U%A8JZ2qF!5_h|#Bgul;~{rr6{Y)kd` zX>N1Ec_%ZG^07d-{)AzS!QfMXPKcm#E?KiD5o%dcqma+&OY~3 z(2Z^MIQ#s?0aQEt$Oh~0?6X}x6S*8^rQ_@)`9w%y0@b23L`kj$C$9%j&n&NRPpSuxbyi6; zi8eb1JC|bm6ZdL@5`vLp<8b(wj=}BQ*ELp# zuULex1|s;`gbxFCRz$+v>g;tuKu<9;dfu$)zD=r5vUBPmwZ+-L5gPP92bh^hM#1@dHX7by3w0cKgdyhHxV)Dnad07CWc7`+9zOglfBeYpM6(JzW_d?d+0>+KtbmLX7p1KH2g$wZnhrj=sKB}zU=a75CR5Yi$`^j0N@me7CxfRfNl z==ZBg=o9;|kb%KjlUiA!r}V}}a=r>O>r9_m^h$Th0_D5YnAnyFH+&B0>F$?RPwLk1 zQxmEjvI?&z^Vo1Ty*0ju#=5>&;>eqG;cyLg&IEk*joK2ESWce{ha#A6{)XlN^szv! zFZLV1(2Sd?)EQlPKM6mg&^E|r$cSD;sbfjj1LsM&|627po17o3RY`*U&!MDfWxaYd z2#@Z0sx+8f0B5LDE+0%)r6FH8q9;&tbkTV%MD_q(v@!=cWb?a9S)3+>Fq?Bju?b>^ z4s@#N3fRMBEb4nVUC5e&+gtQe68k@3d!O|<8zZC1t6@Hi2lnaFgY0p|!lNMBCKD++ zEbLzcR=~dQe)rt%5Fo{G>oS@S*rI`O;1j_zynpSJBJZev&C^hDTxw1^WB{R~!DjLN ze3wxjs8l5P?#mo$I zy%To$GljY$-d+%}Gq$K%jV~KGg|$p!@qj68ZdsTzc`$1k_WsDBCeL+QK0Y+l?S*@r znX5!XmHqsnH_51yx?qz1W*j|`SLJ7Fa;qSWkOqC1iKNx290z);SL5ZC#*6Jf`0sv)^nxB%C6LVMKKEV!H8GT~*U$&*@m?N0ff=DV=tRWo{P2 z4GV_;!)wf|d%oZ7yS^F^?{H@yT9Oyjwe+qTXw2Kpxv6bMd#_eC1NQCritzlyhk!?< zJffH`OiWC2LPeTkLf5BbEY9^vxy;nLRJET9r=6JUq?j8oSFxMT_O1tXY`@M0Fd6cFDXW-7r@hP-==7E2u`efEU^>s9Z_y5cr?UU)8G5Zi`TrF9 zJvePw-f*kLG7;LzB*}!#z%%4|be6JnmD)&!ey>SDlUAR`rIlhZIF7R|A0ZDc;~?Y; z==&H7hat%g?xN(JsB+Q{49WMd(PWIi-Ze^?`)_^HLm}*TUCTAdq%p8m-=lCx1^ZW! zvXq|n{kPUj)scM#+^4QSp8CEUrswr@$*~8?=L#?kyIfdZS$?IztqXaD3#)fO^$%b6 z{`eGx@WU%FxN=0~i-L{ZS-qXdof`)KBt9Ccyt1<9$})K|)p+Px^}={gbL-q&O;$zX zfwnU(4r9QGtHb+vH9q^2uZ|o3HzTO_bl7V2syI2Da)2R?_2-No%e7#%a$Q0%#4ff@ zLJ0Sg_l+<_5w6!2YT3}ZcBHN&hU4o8QHC#*biYxQl9J{rp;&E{13f==O;Yn7@5i}D zhQHL0mEt@UO;@iga1>AZD4cRD2}`^V=#|AszdyKQYI}|* zlu{&k=$+8hT-RW~F_~GAEPP@qaq*or?Yf9^>Sd2|Dqv6Frf_T($|)|a;2x1>-T%Pf zL6a-)uW({R@pQ6!)0vIO$oRl!aqGZOebn^95(p0x70;SSCX8ZvYQ9U1fms4Em_a_4 z)C)F;Q+X9+Q>AB+J2Hq|5IiRkB1b*rkaK|HAJ_j%b~QQeibQ<2wkoHS=bFu9#SiNc z*;Oaw^K+=RS}5<)2FOa!XWz=Wt`=otu{m7RKczk_4)ug*=9xvr_W``t+RSrY@~E5_ z>W;q@o{0x$DQy@JjSfFL_Y@GRw8a^TbXTzeD}-TOUm5Ci}O#9awIh!+{pmvd)=Xeok#@ zQ^$z#e)$0rt*~J{ZOtyX==pg#G3)Wk@_3;!4V|<8EVz|n(FKNek*kq_$*+7tmArr zc;+zk1U0{T*ncF1LLa3?GD10Kof%fju|-T76Z|xztHi@qImNkzah+=Ukccq;haN;Y zC_P-o)=&c&ke{|%ZyK%i{MN<)CIj8B++nXNPMm?=UeM4 zNn(&!S!oV}fjud-vfiG5s!AlqNzZyri>&u$%JopC(dXjh>g;>D|4!ix7Rj1v5}M1P#oN}wp~fZ$haR$JKr{M`=wBfPtGa~#_DO9S z827-st-Jyf=~i6nFGY$IPvibloH!hN)gv?L$u14G$CvEm zeZYn3(I=+IA_#KFVd4GjN$I(Ni6PlhGdj-74DY*y2m5g1#BUXXpH;aA`j5-wd;Fv} z>DBgKVjf?)#yqxT4kTWyz=IhjNNiOC>Eufkrr~Ty&VN@ ze(B-1c4%QLaaxq<`ndSk<)`)WeHGW5fc+kuUF`?7xur(?Xwen2_h%8P4*Wj@SP{GQ zZHq*|j11Pv;wpEzdZLsCF6GWkZwY%0W6>i~OqAopECCilLx^H6(pq1bJrY1dv;i6Bk%0&+o(gjEi~;YJQgS;u8gzz3Rq zl1D1|jEAz6nP+1GMxD_3NRK!KV(1wwhMrM;SQ=cMNf6{LI4(~>eA69tW2%hPIB=j@z&e0Vzq2~0;;9Wq;=CtU%%&zr&tto*bX!GA z%a7flzg|C;ZGZjSNzXg&?k6Egr`NSc@b##$Dy<&Cn&!NJe(I z9#htpxL)t(%q5BnE=kgJS@1J{b&v(W3tlL(;GbQgYbjJw@eL)SGn~F-T@l*4!regs%fwxvrG%a+t+wE{h7?0ackb6TdPF5MJax_d58 zw{%AIG}@u(q@)TAnx?{{6^Bw`-kpH?h*X%LzfHCrw6qvndNziV0LiO<#Y0U!I!53f zjE@_aG0!m1EC)w8glglfHnA;X_Sv1G14Md8#}!@ZTt0h)|x z{Huf){>3ME7)k?;`q`?KMV!sP!SXB{-2Fh6e7H{hU6pb`@wZe-+$mmBrNM;lNK8+2 zxw?7+6fgb~6u%b-{KN_Wh-fYF>(v1~X(`%rOulI;+K&J6Ao!?nIIH#&%~L(P{V_pj z(+FO6oLI^2f1j_LafxM7ZMl0^M?fZsUdNpfl$*YtZZ??^WVgcb#-9Ox_8JZF)3G26<4(kyOCx#w|;Y z^}_7sXlAdl+1~p<`s2g+m~&gQ0ZjTe>-?+`&gTS~jrPw(&p^XuzmU>x%FMA+}zjiPFqfwge-_3iF{Lf*R6mQ@|WZ&_8*S~S6mNYu*%%HT0zRnfwwTU8MW|ASSn zz98MaahB1Hv#R2|DUJvYcIh+8Rh5e({c2_1b$$0dl*$+B6+K8&j<33!KPUB68bOmA zc4b2}y9tDGJG){U%~k}w?a2T0e)v<6|r z6|9?5*%D$3_o_z{Q;2Igk2uV6|6rz{RI2>rw{j1`? zJ#=WRX6F-2-yisG8u$xWI=~+V@Bw?@u|EYl9uV)#X{|r@*=5h(p4;c9aKBrw9Ch@V}#zfW1ll@s(Oi?q?!`b_S^)A^*X1 zWgWX78P6!}b6CvyI2Z{D?keVmmS!W%oi%RxFXnDT$rLE4y6O2X?rv1afHf#2cHLT? z)^ZkOl+ne<^Xzb9Q21xKuo&98ovA;pe4S5SwOWclubM5q-{qQeu18%`68EqJv@i76 zV=?B5C@fN+^s_3v2Uv=R$E$B9yl3iL$^#zn_kJ1h$!jnCUm~x)Fn%hbeOJw5#q>Rh zwIi|jEBfcP*HMk-cZwpr8SUpGVu@R}$et;gQZO{$SRA#lW= zpVDk^|GPp?Cv-G;OM;`AcaFjx=S9Fi{w|?0SlX~rEb|xxSSjsK;b>SOeR57f`WA7& z6D1K_Ab$Aa2~&sIA})JMlG&~v2~YQsDh=WbQG0~f52lqLQTobvyF7xi6X^6t@!kkk zOfw2k#l`E23lp`REb-$Ux;_TFJ}UTY8T~B!wdXHYHRZ0kfc<%gtoAxlA)|DswOH0? zd&X{$?9G$6EAcLq11pvZ0Q&h5ueC(-{d?_G$zb(Ei1|b4(mhea`{$Tf%28r|M;tcRaRD?Wmr__KiI&{UTg^k z!8+;x8}wgoUQ9mf8uROjqK$x|&#*zvotw`;{Tb#z7#LT2!Fb*gr&ex*E#eYfz;Ls@ zG7Xmr5Ofa^bPo`2_g{X5-h^@1!4rupNgkm+-}lVIS&8o9m2~%}UyVOc={mcwmHF6@ zs4`Md%tBe9ti@_(=Bt@mtY&6u0<fMN?pz+=-~ zt4ct!f$5oVu48%@o0qXh^UW4i1p?II#Bx2UL?15D7XBkM;c@O|InFy6P|x1!nXj=4 zpk$Z=)WQc*up=G8>xV0d~&aRiF!Oi z4o%1MI$`@1Li??6j1fPC$J&5Tv?V!he&$C*WXgM%omk5~3V8=%s?#F4S z_fQAlH==rE>T1jr@LWXS;D{*C zO4@yJtOv)I4q?y2`%X0dfv$NzhMHkNsX+DViW3<_F2k6r*oa2kT^Q^%4YrlOV+6^94MHSV!*JLqNHAOsQr$8#AJ>^68M z20Lz@-k0 z0H_sL(I(4oRrrydZsjYIHbF^U8>3L$0Uhy7b7Y`vj*ktVVgEPARM06twem#$R8fnY zoTo=tPS8(8Mu&1kT1eoi(3LJ>Fd^o2%L^oEA9 zy_@UoJhi#Gb19ePT3@^+rWj5Hsx8|Vx_fbV?Hnxb)^!%sFs{Brw^ zH`G@mo_zsE$O;Imj(k>#y}NMGB8_tMG|Ek*O%KXB2h>r{QwQbd`4r0KI!_04jtR;I z>|L#C2JW>vx*mTU*&PlD#1(i0`@g35jkcIQqy;kftl)64kVr^un+NU;ato@?=XT%Bo79e8(Ql-q>k}RQT0e9lX_S$+6 zK}>tBa7@cSmVD7)rRO#2dOkh1=hLOciLHfH$Da;sYUA8FNcf132aFB`QI{l9Ki z3k2z2T;eB*z*EszLvEAMKhOdUbiv`iYLdhFwG2*N2h^fVj%|kPFgT^5BZXNB-Xch> z);RAhwNJ=?{A}L}Wc(9p(tA9l;p1+S<_!Jk3gnbY#vrtJIEXk-MabXzP`s~UgG)u`W=Zf9+T-}9fg{iG)qsR_#XgMDqA(L1v7@F|!D2^X#1+^b z1|}(Yhi_El(aFyRp>O&-`Sbsu{4)#YKqxr}*$WVKb6X z!Ym4|ma21s&2H6I)mp0inOq7g37@|s^CMRiNy6vFbnhXGIMV*zq08z*!4yy`6QCUB zg7Q23e4P3^KCJq|rDh1Hsk6f?q##e3_ZqXCS!R|0?gR?nPx zH5N5DcxLVnEo!N~6yF%$Kg(Q6#|zCRWlOWn#)y*evm;ghYygZ@6=%D1pcZGt!MgY> zipa!?ewxz-OP>)RLkbdoUo#r?{06Y~cFtT5P^*Xg&#z2Ogy_WJgT}g3{4XRA&-Q44 zF7)?+{oQ1JJ#jNao6-~MqI9Hkek!S)FN^*hX~+-F`?KSP*bL(=f)Ti5ha#6s5x|Id zlw;pOmHs&tL95cssvU$onrU}z@}b2EJI9$y2_Bk*f}Id+Aw~s)St666Keq-oiZ@DK zi7HCp!PPusn3X``gN@VGukf`etuytx21gkbSiM+{o~CO^tD>!WMV=0iA>D4 z!)4?*%vFFU(LK0R2BFB>75(37HM?^DbNuI%(IlxJ^xI5#;lgDESxf~BSoDz~NWk8( zn|BzdC1|ZMczcgt{Jz#^8Mc+m+qeIe?yyA$e2qMT1-tri}Bt|*ScumSxwNdt7f@y@g%O( zH?y&vYTf@eTR}k$2hjbABQuaHK)H5pSEOg7F#_w!D=*om854k7bG6qvaxeLWfnRv+g&+&c^lB?(reTS{_0 z+Ucq!*P~6Ml;$R0@dhV9?Ph6nF_Vk4s1eQNp=9Y6OAN(6&&6p;&B5Q4Phs#Y<3@Q+ zI@};ZHSKsc35ut2^&?3i9mQlg$D}7P*F~W&)GI)nAx83_V=om_F@Vz;wb^r+UE~Tv z#dz%m>_=Z<3Q#J_U4A2jg(tYY!|a)=u|VuTG8|^uA48K{G98bYb^pybn2H5i{ZKxf z&Y}A?O9XEMu_yNOPwdXW$!EXjGZ#IJtPHmAsKmjcNS@<$@7%qG;$vB8Esh5V@#hNR zU^_rkIU{vLo+172oSSaaz5ZMQyH3rDqovcwfj8bLohIsMmkPdUFIb!xf60L1HBK_3 zKb76+FgC&^xL#GB74vd7Ih~1>O0~tTxz4jvPij`&x|3)Rq1_+gh=juE=eQ#2Ko~zs zVjd+#DH#doL_VsR)eP>P-p|`+vVJJOdKDg~i(p8OVws91>GWbnb&^0O=OGsVz z;eFH1vPOFuZboutv5z>36M}!E-^QuiA(Fp;@_Ffg`3znoG_e2V7IL`=NUTT_)QK%= z-*j?Ri?X@V{;`@MpY>1sj$cWOq?il@cdF)|vwo)=GiWRjXi_=&>~Vk1%&;u^*!r-g zFHmpK`b-jol>lH*C^ZFN!3tsix&&|OTa6I|A#s5};6d;%4YTzdx0`#Ie(q}nphkN` zmrNfLs_e=@==3`KrzG6AZcg;uU_bY%^jkEbU&PK>sp@&z4h{09@~Ic(tq1uOYgOz- z=Ti}1X-8%c*l{*fMRy{(NsrLx==%ZI@n7apHqlRkScU$iY$NZY=GeO~Mwe!_mRR#J z)3h_cp#mr0A6b!ybkt^6&2E3r{8)_b^TTD+&AIZ3dcO?~8&ILNBUd(C0o#tyH+L(t z0f(8xV)H~b?%11^>pB3&z&-GV_`{(U#GfRh5S8nJ3@4Xl)BoyE2T})+!vH*V3U48Y zPWdUNi3@H_W_<9Hsg)d$fa1246kVTb^N^`REd@sVTB|IzTXp^BhI)I_<-(>RY?$Na zA#v)Jqi0ypn?vVizf8QSpG=+ZONPJ+kX#-p&&{vZ!d(kOz#pwb-6t+^zG2pu~e@89tLW6V4e+;hs7W)Fzf zt)Th{4&0fW+YYv6@z2e5tLv~^Q=!R_O*`Aeyfq()1JHkl!L5IeA03A zx<91x&c;tG_NS@$Fc4U}9+i)s$DgV4r%e7-%nf*nwub{QC)ZrL2>#f}l_SMQq6t_m1M!bii zK;bgZ$j~Vg@6|DUbN)&5n5-IRYwUnojY->b8B}q2Muz#SlM<$Ti=47GxpnsYYjefg zFHKuDNG^yKgT#>;$$DKW96$+%-UK*-2K#;JG_H*UfQ|ulP>M( zr>!FenvPrnyK15NsdTMZP8cf*foqh&w}phjh2|3s7n)0iS7D}$U6L?PE}N>81+-Uc zE-br8ulSV%$FF*guZ#*6nPNhI%!at=l5+Viik(W;I>tZWNyTzUPX0+P#r5`}M7syU z!jo0I0u%*N9hF+M)N$e7LNLpXzSdXH@RGFG_>5 z_ZPFF`y!p>M3qd&aiq&`A8JLaBrU=c*;GwFkYvh*Sm z2r)CFVS(ROCM1PM6h7jfTbb^Zwp+Ez;E_T?vYnhpxs=UgMTB|+~*#*`H+6Q@SG>rif>c#WE&gv&vB zb8wCK{I;5}689z7zy9REM}=xctG-JQ(znTRZPL@K3{?cSsp zQ1J^Lc}-K_hu3m5k}SANjaBQ+zYo95P{?0*zCP|*1g%A#{~$X1nj9R7mS!5!2iUb} zp>aJDqaK=Q6#sXsk`Mm+7FEi@9jQZ=MDZV{`%^10GkQ)2)uRulZMtd1wScFBn@qDX-wt}ZIrcqhdU*cldrC+I^2U9r~*Q2o_zN5 z*$4W{OG67lQ7)C5SRV9+j<*L_@j2YBZJ!~f<|1p6ufg)y2Yts7fY{dre)y-pZ||MS z%O3j(sgn^5orqI<-)P}FIM^hhIKycF9BAYsp%tc4R+mX~2=3rA+TY?@?ix{i8B;?cnQAnM7xI zin-RSQU5-&o4fbaD~uKjHatFZDwdXz5sBlpf#gWofka;vU(|o5$r}D*a;9-js7y|E zrA+lT+~Gk zt@5hJepvp=4K84Y>(vZ*zaf|?j-S^ml+2uGMAuV-F*2f;sz=#449j5}zRHJ_>M~Wz z0dwpBAJWbRKC0q+{G05Otgx_)1c@3kYLsZAP=iX?C<%lRd2R^VMG>MF?V9>_S3pAu zZUWw1g7#(o{o300Uu$h^?c1NW789aIu=RyjDpm1Od*h2CE`oi)T>p)Sx}pk}JTu zT?aUC-T%KJ-$`ZkcS9kpo``>)@^%RM{$8;(kM%uB5b~Wn2(`5$a4OWc$kp(uJxLz* zTNlZfH(HcJt!|gh7W#Cf`$g54sTR`8KRTjdc`nn@x6e^T6`@%I7F8i9K03>r8leD zc&2)j_Ig;Esk}w?psku}#1FA*X0C5XV78?Tf(4bxF15B@dwoVvdeC4~D#I05X(-vh zM2Kc7Fz09`BwGiONuj=z!v6Mr5u>{O4_uoav5q8i)4a{4CK)~jY}kw%xqyAk_g4$HeD`n6FGpOr}k3$74e|>mH2(Njr6T(6j>p0aCIy% zad2tOABygVRGLPj8!iYXM~9+2^-m5XsT&x-C&Uppxk^RkZ+ltb6H5~wS#p_b=TZ5! z$b&!@(BXkz-AYI)MXbkf;;~;wdE4XF9&%!}eM4S2zghybZk5Y#D~JgUyh(mVJRzXT z3oVx5EF0kZh~p)@^ZF#!TZ5HVEv8RTA8!Mwr)*oW*ZEH>*at=%eWIInLZoGkhZJ=< zKik9{fmuinRd5Bn=}bS1;=}5ujAr|@_9?^@u#sUt1;U&C)z8WyE%11Nx1{9HPe$^LW{=-M-ssuDk z2#KrL2X~%NeXJK$JoL3a$0VBf80@F&r{y6Iv@DTd^SsO_Ta%tS!X>(4#TjqDB#YiGV$4s=)niE*Xqma~AxH ze4ctpF{go~vVCSBbFL{X)L@;tRPYH!#ExTCjE~^7Cc}%?JlouBMyBHTFm{G=EeL)! z5IaH-@T18hheD3!y$LvjX)1db&2h*FWS+~7+UY_D{&tmNakL@?n2=11P`F<4o8`;c z{TLg)+%h(bN2Hn*Vz~beFq*Rh0%q`CgZ-ItgAaxiFm4FMF46MFg8Z^BV|Km}VT6t> zZV>f>by);wO>`(e7|&@5R1YJ}*)AgoQo$k~_Xuwa*IP5rqtv3QxR;;B6+9RHae%Ek zT4XSGx4;dx3t`1?a7egGc9G%5nu>>q+}tSI{HB3uMUxoh_rLNPMBy{9^ZY>;JAev) zz$~fqn)3p|dA^vpyv}3)_JQfT#nw+$HZC@(!{NnTRxI9m-GrW)=ZK2vf8?r0Ek^gr zrOmb2vhl0l>R9e|g_sB=Zx2_~N1Nx^_PfL${Ke8K1BbKW^@$%2i!Zs-(8r$`yP8uT zV`(`dwfhz3DBIsdWQ0kBWduybXkq7^0rOSXZ3H6teeiELjy898)Z=ql*g0z; z_MUX?ZUD9i!08(?Ig$!HP;o@eM}kIg#b|%~TJC}W>v#QIU0EDG+z3qLNooYl(+77& zv}Ad7=NWguWI=TAv^$0RYoG(Nn>K+1TL6Uq6u>A7=LjvmDK`+HN_HAY_kF+*>6Hvm zik|Q~5qk39a*MiPv`{#3=ag8ib$>XetZj zyZ1xQsIKdLjIqZ{**iwDw#{QyfGZE)$ps zN~aRG7E-@GOOuRN&C@8uGE}5FQ?B65 zO~pa1ATP>~4L%J)4bA(aQx1#@)LGxK(bN^2Vm1hl13+}f64c-Q5$o)e6q-T8xM*_; zEc8<47SyP^=2f-CxLs#0NY(P?bS+lB)Dpdt5)rFJl@L*GjJeqY8g1E4mPIdC&qt+d z7-Qa{o@WEBD>*KjFAZO=8h)!l;K4^PGlh>(37}wsHAH*uA%~o|hYMfyO_9=0r55Y6 zA%j7FpQUPjDWwr}^A!1ehlpyRk5mle|10}4W?F4)c||N&sX>?a)N410$QS!TT)9$F zK06N9^r_~6eU>{ueNyk|?~%KB*B*V*f@bWIkJ7d3J@OT&Dgu*|p#rH9Eo`M=VhLbh zjJ#e=XI7Scve`HKZSSDkh_pTtmjgwk-KY)-61$eOL*-veLZ6D-791=G-E^PeB%9<5(#< zKIZe_VwEdqaj5g6qKnPPX(I%88Q{Burik|t@q{&FNzoFFLRCJQGh4yWG=cy;vRR=T zqAkCQm?V+GFL!{*zx6j_n^g6h+g_Qu91h@$MY@Jsk1BNLTjym z0lBNcgT1tmjpyu$wYNnFo3WjZkB^p~4!M6>k^9F-D{@bskO;b%fj)V%QayQDKdHA? zu2j1XK+o4((PubjNR6s_m+Xu?=bQav4@;E0Vw@G!=M8Rc`7lzp%PJ{UV@`iI%bsfh zXW_ozauM9RZuc;{7FjeJqPN4{95IR{L;QC)oit( zmoz2QqIXKcm8#%MU9iDQUP^TkfeihX4)U$$lWgSQp^@LwZ_5wm<*~&I{g1VLR8Q`V z`zG4xZy7NgN)ywR?gQ9JA5amts&RPIq*<*9(-Yjvxs#tFedUUr_}IGNKwR_LX^$F* zX7M4ak#%Gw-&4w&N-aSi7t~oVA8$9e_9#dN?+wwUKLifVt)aeq<=f_g!Vj4+Q$)rv z?^q(^L%JD(&hT{bYF-sj<=E*$qf~wuRL!Jlfjlt^Iw1Xms#(3B4r+8&&4TR|a4V2{ z;@lu5DTUSBDpyT_N(-f)STU1Qc###5Mn7J%R4P+i8!9<@ul|<<^~zdM8$(HVx!zbB55j1 z^vK?&`S0|fR7k8(KIO_IEV#PpVq<23Ccu?OU7>PlXHn}b-Op*x_lq7XZDu?-x|)fS zJ|V9d ze4B+Cza)CN`9;-Wx=4hn9cVsa9Lg;q#Nn+xMs46=%D?$%x_qI?$cgR|i7uhN0v5hv zI$LZm?Kf9{YIAZJ)cwFs5PkbSeA7aT$4;`R`4&CRZ|fKSI?~~4J`vES@>RUV=fqgF>``k%elTQTu39TIhZShcOkw=bBf%}mL_p4MDyi53Q3fR-q zz#f+dR>d3f{&^{IKTzO?ILao`9S{a}ynw|TY-Y1Qs-;SS?d7%tTa?!yj=cALb27vXxiXl{he>r6^diKAsb7Uhjdzx<&*aYkoHw2tMZDv{m;`6=go;1d)VW zCi5bE?q4Y!ZHfvEcc{6xL2)&TNec{hp83RVFk;91HyTT(yRDsa!zo| zAPle`IKwq5jRDrv@^XLMzW^kKgLl)=8=jvkTADUn8Zaw8e5+eiXV0vZwg6!&B?3&i zV&D#$V=EKAAddS1#I$1nrfXTUSQZK?RcI@%1OCnJ(j_&sJ?1z`%Ks=31n&@t_1O>R z79leHZkIYvwC1c&(-U+ijTO~}7DxL{*y`DfhhN!H77Io<6WgCr%Orsr=OXA?|4L3|s_$HvB{aP>jiK;JT6Gn+Shl-9Ux zpzJw0Za~%zp#Y#xbbEtU{df_U1h4osmXFBqVGTW+X&c})#YA^r@P+1Ak{6kytg$}0 zWWCejbZ;xse21ccw!11n?7lupD}(zgcdQGJ8q!y3O9mkE*a%o;(4v8Wp38%(?g%PK7k&nOsx?*U)SgO1wA=~ zVM3;t)6!l3HaV3CcR!)xh{(e@K8U|Vg}6H4_unSF(bSP|vd)O#!xcrMSrpHQb+{^y z30rskP%TG&1a>P6a!|QMoTXeMCKIqSD}E|@eyZaq5rA67K^v=cmc%EJ9HG5NE|MWN^obRtyjifj6Nz$v9o(Oz+LLQ51Myh%E4ZSdq zlC0R1zau|bVu}Eq#pbXg(O(lc2+7nLP%IQ7nL=Zf3-dE~MfU*1?63s`3qAi0D+*dZgOf@o04W*dj)rxW`M+<&uqMAOp7h>e4^mjzxj6}J2?w5mGY3a2V!tFH6%}; z-V<9iv^W_O?;cV-EXBiiqD1R!fwY)eeMp8xGl!0#D4EJvx*ulPSJoBW;r~|GieOFXNz0B4~lJ-8*n)>QKGYyfAzv&MNKDm zM-^R#Sxdyh<;(Q@Ve7=Jn3IHo#7+$xH+syC0Z>@qU~G_Y>#W&sSJ^Jv2=|a1#yaIv z#RUj^&~HOMJB|d+8$=baC@PKx@&}c2M2jaWzJY=AyX0AXB;Cz1R5=b(nSjh2FpjeB zVd>NZ-u#%hZF_>r*tdbvtPJsnFJ#OPS-X8VgD>YMC>q7_+BfV&!-r zRo0qQsZ=4x?ArQh^;bs)>Km-;soH?m6BqSLAWWl|T!JdWSYB!@pJM&v1ZBHRcc{Ud zc@i7z**>~owQC{{Uho8Ssm-C`>AT#UoN}fp^@HEfu za544r^@`9jGm9TbJ3q4dag6grCThN(s3%z){+2mWAG}N<+2KSLDl5Val@(#N%8GDR z{6sbB3J#rgxbm$*YYQ6FeBGQAHEN>fqLs$NmFBnA)VV|cn#vcT(%2xRRlb4}0b^kR z{YKdk~zkTYmF5#b3-w2K;?I}QP^0~Y~0nVE;uqKWbLy@P8%dktEt}=-rV&w#qtWUNrFF4hlLzW7u%@EuwY;&|P?|042_6_~8)I&~lJ|@a z^4GjgwqnL+`D=b#blk=r^4Hv$&)=}ILB6c{{W2s`V^P!$uQVbn_1Yqwp}3;r5t;At zQpFxl89LviL)e4SvLuo`9nIN)&KXwuK9@5roEluE7KDmuJ<%TI5HpUot z$q*TLDJ0(|h_wn)UpN!!Zv0S~_)H)|znsHiVOfbiBDxl}ch$qOe4y7A3kfeGz_XT# zSU|RsN?Isv-_|^h1ShowYp(O($P@sU1DT^akUzwJoKDKUS;T7I#z&cDHNR{r+&AjFJLLB#(`s_98Etfm1@&N3chUNv}| z2%^vr(N@H{mv}UvBvv^l3Zms+^J%O5L>wb9JJp-7;9Zg!sbG(87h73FFVn%u-~!d%2^6G*J_jE>-Wx_d~w%M;+DVd7TUtVE-Sd+I;Q@*ja5s+$#a;g zm!#es`++i+tsaWG2s966}uWZV|F)y!IxuaR8Z}AM7?3h~BiK$hAwrn@@Mm_1tiI!v>b@8HhiVuVvnm9s z;)f;VDgPqYSr^(=E>V#((;#p|qmC*0IEYI|*xGv<1YkRGG~5Fb2r zx5iVirHAvdTiOnJq`|b-AqzpTBBW5Sh(GwP#G1|7(!aP~TNYav{E_)EJLIfKb06ZT zTAG^dh02ON%&p;;sPp8(a7)z5JV-oRs#mFAwLYoQ8WWX?9=1kIQF9z+2Uq(aHN~2Av|_&OMRZRi z^;R2NKk`7lbA+53%YX&nGgf$G$C|TzYAJ1KFrtOlHP3>s1yd30jCoV3I>TUV+#!p; z(GoSb$ZWMd?ty{edtnqGYkj@56(hG??<+yVSj#Gr^jh!lRX?2-HAB!I5(aWrM9qU# zp2Q46TP>$Uik}xzf_7$cXKF^m+_j2FWG<(@MvE`g0h>br#fxas&|nm*6=spDwy7bV ztxg zdN-!UCTf1&5V6YN%EBiyPbP@DP6D@Cc`OF1w^E_GY=9~XVmUH14fg&&qx1E~&85c8 zQ;eIZS|yU2pSE~UpYmf*Jo}4BUUX^bqpS5~QZ8#NdSpXDcAW?VigG4X3vW#9tx;Qx zur-4LHfu0LqBV_;Fk8Gt&yxMMY{2?GiT1f|v~chi(->2zP_-Y>xQhh9rdR_&`<^iV z3nXH!b07$Q93LUxOC$q(8Jf{8fUB{z5Vp31d|e6IG9=gR`MRwzjak3Qc&HkX`T_1J zoioU<*|=5nl8~aWr>tv;dj;pM!Ua?UvjC17@=pusqJ%jq;%}eKII@K$1VVY|ua@jy zBGIyyt&6uHRX4;}qf|Lxk}Bscj+0b5cXphl%HHbu#oA;04@XekeMtUrv1g#eP!UOy zd8wH)*kgN3we%g4LDD{sWyJ*%63~slK&65v0kQ@wi%<>?R`vn`%N-K1Jo5!CfCH=? z1y*hvEbkYB)uru}GJyw!H7OIUn_ww6Sh8YBhU$})Q0Z^);y1{vagxwy1Enm_z_(N< zp$A3~dZ)T45mM3{8*M^EpO3b}!@;+4RtDN$LJ1@EqYzFEUEw1hYK~2`H4i%bSqu}l zw(R`;fG94p(q5W!3xb}G)P#gZ_LCQ-Iv;Cn7e2~Lxg*_Hb3a;3HP#in21$89NWC!| ze`9r}=ra``thRw@Nc`<`JdNnv{Ow1mtL!R&`v7&;cPw@PX36xI{Ox=BrIJ|xlM4nE zGyco!DhGt_P*=J2B>z{%yx^USVTdoHGh2&YDJxW{5n@x|3$-aE4Ib)>nHi`Q`Ew8| zhhXu~XE<2AY`=}gf)WXre}L51ijGAkrtTiiQ-irw?|}dzcIj$z0o>Ef3ULRm`rkcY-fSXGK4bl%!RDb|uwR66Qgv zb&P@yw-JF&hY;9KF~c}mjh42xp79WK>+fI{VXK4^Y}HF~2D|wC6eb+N7kt^j`5;d- z>m8g|<@cvLeG&>4H@>tPR}O|jpF#MYg#ZK>Ar*S6fZj4vS zHPKBe;(KHt+lZ)Nz{lk|^j{XYvYp#*El((W zi*;kah-QZ;gzzbuNWw0HP8z!iI%(`8=%lfWpp!-ceU&J$9R+mUmsZ{br+q%st;Dce z|M-<`nLPS@BnZ1epOG|Pgfht0SBL#FWW9R7ltSGYNq4xnMsy{v-`e>x9ZfXSv4s82 zh@C)|3UX6q#qujoj^z!Vujk3Mv^#1x6`A|vRp!jRlJ0XAThq?ei>-~gk7;5X>P&qV zPf`L!SC$?*TNw@r<7k*jS_wRaKz^{5!9NucjS~r+M)SBY0G9rC{D#dBl$neS944uE5JZ7TEsFZ7EC9!J!O3qH+c!6)hlr7 zuZpD2v$+xCWZe7G!N|8{d*2zUAX<{Y_KQ!Dv$ z#k4FqamE&HdJ67&XJztISq8uQ(I6 zK7!egDZg4-#aMh-N@M)}9ON%5!r;cA<9=|8)duT6g&V0eL-Z?nX zxXgi)(Ce_(PM~7gT12bDqSb-|ON|}oytv`BsG%@RTk)Y6^52s&Y8dp{=f$yqpjC*4 z6fzF_hLhJnXWp+sWfiujVYqa(0Qni7&|MIms$Ozog{|u-oI#?k`|)lT-*mRk8>UP5 zLsEbouOg7gIBre;BN6ufMX*A4R%AlDBStGnG8AQ3?96DzWXwobcd=L@?!xWk}?<(all9SINmkKt&vbAugA{Sd*5CFK zG9z&2%T7RUi!CtiOZQiv+8i(C$-9+%$dVKlPu|kSVSW@_SHu2Px)yXMDk zi6m`L@BsDKb!F7av4AOGLtme0*AC^F^BewchuF_P9Cij~gcY%(mDcsizRXZ#ovf99 ziC7lwZkgFxaYSd{pLpn6To2?087YF|6M*?oXDU2QO*!@Xl8elphIV|~q9_PVP+LAd zD>X_Jl}28osVJZYc6>-H$h@3=fq z(RX_>beTLdD!z$IEo;4yRIn-C&RHA*2^uqndh&Xcaff8eNb@Ztk+pTqDe4pF(u0{< z@+(hLTIS%v7F%CsdVWh?8DekZ@$BHo%@$)+z#LWcKgGPc_+kFpi0yj{RbJ%M@(mAz zQ}g~>dU@lCQO`u;BDi!}jxYwWW*^z7FEoQ1Y~UyX^7^Ho%9i z(A=?1F@lwrvSvTJI6sfhLf|A`M*+q9@HpI@gMm;jDry3psj*V@SfGZybi(o{ zGTg@mYkl$Yq0aD?i>>Nkqo!N9lHw;lVPIy}L^rne0J%P&0c2!Bb}Wwz@OM1HUpanc zm}DF3HG2;~7VEOW$i2aP_|*!TKp|BAB;A)%_BPARiJb#@i*<^(d8v(F6{Mg-yX55C z#rjxIH0W39WvlNj(8p`X>eQIzf)kHh;><@vMD~f6VXM+E?4>ZLar@g}qL5w-zBo{& zhhwwB4*E@WcQ$%Nw6qy>9ir%hiozStkA9b>!F&<_dk$S#Km%6!+Xq?nzwx2`{nNjs zx00DIAw#5`CWDs0O`Hfz9wBPiM7z6K>8J7Lb1taWfTnHylqeViRR|rJTUKg zlfQN5W`Q}a5aReb)f_inx?)+%t$JpX;zNfY-ye`eJ2k$XfA@q4f$HU)e<&uFoSot4 zW&LnJDAp~Ekrv)Zzme{mm)(zeut^Y?mGj!c497gRDvIkBy~=RCQhd8OeFkyXagO{x zPUYh3{!HlrdTW%ptGIo9bZ^Z{8gOa58#av$*9Wx>uHPdop56pv1|hK-_R#n!F@LOo zR37z6Y+J2w{eCeFwv4itjh8e$B8b!zC05uerlh}G<415VnerE{S<>F6)a@~!wrKg= zF2Q!>;LXKmutjYKpF@sMqk}EF+6)S3$d~fP$R#7p)%nS&d6ig2!{!2_M{itYdQDCq z3Hi(tb7?@O(KQbs7L9ZwCsm1D*hc(I?~%-*{b=O>pDb86N$U4Ixk?O-@NfEvXXd6NS(<@k zouKVCxdmb*7SVs}4*8|ViFBFS=F{dhLmU8m_w>C*bgP3&j2XqcEmXPfQs!aozy?yrIeFT3JW75fsnyV%+uf#{={>9C!6KY6I_XG3Sm6$zx5CD z>kb*s;Ik0Mc2hEtj4(s_NiV76%<1N0BC`CQWTGA*-lny}ujpcX^S{1`E+C3ffc$I7 zt^Qk=NGo3?`VO!|(PEBTevokPd< zKy_j#O{a$b*(5c5TAKY#@3|b=4QaLlqC8nkv#d+@3MD3lDTr95YFW|(YCy|iC6D3x ze~R_|TPXUE=iOmM+VsIGk6RUj!aIafe@tLg;`RNBtz(Qk?&Ejgbq6>c;=p<01s^UJ z7(K}oqRnok)82=aI2hP1;@|;G)-Er&-YepkWA3nHngCLwfl5mr3t{n?hyclGXu=m| zQlF1T*l;u;<5Ee+gAZB#U}+8wSF;4dusg;POJGKeaD2<}ScWIqWJtaBlgV+ve)R~c z^Fdy1{RD3J|M-<+a+*;HJ@=31c8bxxEx*2y(fK=1X3Jy_{NLDJp8wXHX%2hDwTc@0 zexSfVA!dUwHsZehxNvsVW&iPXeoWsHZy>RAJfs$i83O9+K+}2kiC$0GSRJrV|4c1{ ziK@V-bX2Gj^uo~D9Qii|R8u1tsHQSdi{p(DEe2ZQ0Idg>aoDh2tZ~a>!|KX|SVopt zSH}e-ep5C5B@TyPLx{z-)9P|Lv3d;=7MI!S+XUgx*$wHO=r)ln!k>%9R0JdL4c^B6 zx+sJ2J&FMA4YCLzeII-*1aO3Z)A>Hi2_tJ4ZPfY!(a`xj>-d|&%Vx??Whj++t=~}r z?50>odnB*J&o*ZB-FGa-S`VBO|78YQtf87oEw`?#j90bPve-DgXp&6AA30NxrO;|G5VW4?^q&OHNaQ+!U1)7gCY34O}Aohomp#_d@7^~K{Bfx1NA{14Wr zA^7?Yq@Ut;XPZj%)0tOkZdfX$IRExfJ3Y6Xp?rMEKG)=j4E$oQy%O34Cm)E4TL(pzNP#*I1pJU=G)%y~%3@xN%H zymh*o{qr&B+OvP~viIAW~eCy&E_=@ zBmNTaR_80}bxRZ~)9$OZhrPN#!I6V_$Qgj@Zc>{4Nt zxe8NToB#D6VycQp?7cVexU8%@APKe7=)k9Cju3!i$kq2-@$DPB(Rbu01S;9`Pc-k? zO<8mEoBUmD-XZI!(hsVjtH5yk{Jv$>i+jC)({I>$YedVc-K(@90vEg5B6hXK>}qGA zqw7137sA$?IS&1Tv@3?A-`u>$X6sw#F_Z2)DZaFwCdf-9q{Cg{156ypWd_-HvK)hHm|BE4U%F`}VLS0zJm-Iu_Wp_+-3d+VWv&@kbvi z(N1XbPIMY!>+85fsyQuej61HrLJ`0@DtOZ>emaV&5?ZzTZrP z$baldQ^*nRPM`Zdd*;7Ef6~}ysQC@X!H#rv2nRSFU93oaVEsf@alx#i760trfq|0k zkE5w{`ENZ+x~td|)~;;x3G=Fex!h%5B^eR(rGLS{_!B$fmmQQxr80V&XHsAs@Wt13H7vxC=o{E0798t1J1slc2!@Dy=}#b@sXlo zt?C0?0~M2;UrXiJa&pV^-C30-?VZfq0?%@6QBPF$oy`;S@hlmYC5hO)JnYEkkhJ`v z?kD(D4a}LDe2L9V*{i}YM1z%~8a!RApg4@DGKvH57bpgeEux0h1kG5vw3@5$)OR@V z>e1IwJoj6l$(Jh{`jV3yUYCY>yZW-E+;?@k7v#$uEv1~!aIVWSdagdn_in{>xnIav zAnK*uVwDL!qrP8Dx%s+WyL`E#f1fhAT~(hU<%)E<#k#e8zra-@S zmXr%bTPc^>u5iM>aw+$`E;m}Y8yeECDmPZj-KWd_L%zJx!XfRda(zigW{`p?S4yX~ z_)Z+J>(7WsiscK-VQ2?b04j_=Lkp^vQ|WctDT>A_t+P~d!F?-a*?ZhN`ej75pR6B{ z1g6c8m{%8}?u*JM#9AaONE{*wI9)3|80Xl4O2MlXN2jN@>nEADE0M&+m?Toxvq`^7 z9*x+gq%dWiMCO{NWiET8^uLw3UOG;30KGD1DjKRLWJp}!{JWC4Y@JM6@Ny6X?>)83 zK4cKzJGcLVP<9;`c#c01s9PK@_;ggDlY|3N*|uQ3mbBGPWWg$0QWxEWUb_i}%M|pm ziASdl!mQ^1uz01oF570!+dg#A{B04QEA=&o47pSW2|z6b)zs#|c=1{8z&}oK2aY=3 z9hfxL9SEQ44*YepJMdzeJ20cj9T+{y9T;Eg4t#W)JFtl7tN47MPcNUGFX2E)x%aqM zifsE&ojBlOYU-`Fbp^31^jalkKV ze<$MKe7w*P^acUiSx4i(*5=}Y(FEC&t!aT|;`l_p>TmmyZ-xv;-ez&B^3uO57h4p8 zlAT5hV3G2P`uadg5M_we9crjUasAc-@yKKuSbJ3Ca&+~}jG86s^DPwc|AtoEJr;$w z>L9vP4nKd~nrMN2#8mK3$fSt>^kuv{meL=+6Q(2iA9dRbJ!!;z3b>+Ydtbn=DUy5? z{x;Dqn36V}ZNd$rn~&Mui*43bZ&X#UrX!%m!eDh%}>Sb zCQDx@8jb<$(!awL_FCVOFIRN6;;=`teZ?>C!8#fiETFt!gPz`3a)4}@YSVbIfaY^C?^t6Z|ym7&$y;oDWB8JqV+!;vRu*cg5mU^5U!)v(>QMv(vl#p z-^)hTl=y`r!NEla2ZyUPS9MrXB{=*zDIz~4IDDe>LxRH#w0(7wb;Wm-eO2Lt^P49r zsM9TnttXy`IBICtN10Ih)jrJ5tEZ5tH#&u6n{&8pTvHf3Md?Qf3zPWY$B6$8dly@O zd0qRx67zm6;}bAHQ@0;T-&T$y4tm3u??h={LVyT{z!+Ai;%%7jGH5UjHlLCOfIVXl z>&bE%>7SO$NE81zVnri2RH_0zPZ(Y(D8tjln8@%(te4JK#DM?G&e(X8H;v`I^b=I0 zWNubfsuxKWLA)R_MJyo=>{k>i(Cq2VSDhF^7EegwLj5u=j^qF~+soXk3c|PvKXpCo zDxv`TkU0J$!M^q0e<>?d@hQ@Lz?`G@+(x4(nNic{(oXLjXpAE<#m6{~=i2 zjOS;&^?0t3@nqtepQ!PCD}7s!C+cIS%fzr%QD~!<5oK`x4EDsE$rD0pW074^SWMbm z^Uv~JIg6pwX1xlXnW7cj_fL%=)Vc3KtdS5x7_~hMp1hDRFA* zvmCD5QVGdap;J(>*c8`Wg$E^q(n(4ogEJ0a2Yl=evF1!DspW{?IYpx8 zO}dRaMeXk_PshUzOiWD%CyfWtO8z}B=-^yfK?tfT5E8HvqVe&#c!)4O;N#fQL-1j( z*~UYaK|^=5{IkP!v+}cyZlW2GF3LZv_vMUk!qU7U#^Ci=R3}xKT}>w7y2mFA@3DJ) zRM_sabzEjax*xViW#0KS=XJ^W?!$@G?$12m(Ej}NiNXE3;?u+Q=h{yX?T>WH`uOkE z*&>P7R#(4+y49hWf_3eZb4@1#T=86Ood`J+*3I7f(izlTgbRwrpegB*7o zNpT9bei;+3H(2|G+95>=NM`*Jpq$`I$xby!ivT#4CEbaq2ikWnb0|fd)<}iF;$<}k zwu=GzaSBpU+w|ekPnaB~&)~Q1OqJ}6kj_JA%0#PLgO@o|GU)z+U1?Ztx)*No^xso- z?-nY^2=y#VL6!>jR5%1a@uKoU-(EfciH!(Zvynhp_R{<#EJ;@Vssj?A>`ldlTK|o) z-kFaRQ*aSxdz@lbK@F24)9)XfMi1~|@6WiQhZJ}ezY=`?Kx}z7YXM*QKS@)1UMM>H zrMR9+JvFKxudHGYqp~SP)-egt6_RL_Bs(Ix2Bh|x8MWs~=AK5DvWdod*0#rnP)4mZ z^Es5E$ibMnECxl)-!+&b?mI?xc?F;;$do)DNXz3fg2NwVo?!R>wU`^}F4B5@gmO($ zv?@WrelrK{sxKAlYn=>?ocI2>G+^;#=^UathJPLMyY;0*h=D=&Ni_Nd4HPgf8|na~ z;&sIF?KFGWPGRA(QhG`_0J!hCa3{#4z z)M&BF609fi>v={i#8X3rc|=qXh|<(1Xg8#av~r(tTGn9cA}5Z7tebzF+51kl<%Gf? zeenxB_w3Ge=fZZstkV4S5D3Pl*CG$d45-9HbbNsI(UQr*!pvU2`!t7g2LzQ+Sx<8s)pcm>-SSX ziy`^<_e%#wp8f|7Sg=j-RLJGI!ofkSeh9hwew0aW6OUA##(&|3400<<&81_Uxs(^O zF8!;+Ulem=M%gr%;&lSBJ%0orvLZK&BYW(uu(eXGtq>eE6tO-A<96zd*wJc08q{(n z0|Nc*d`k_N=(7}U*Vha$`Rz4HI|p-ai24Qb!T*V@eSh@FG|;-3deIvKI%+f6fO zu|jFuA>bWqNwFaaYY0-raED$ZGKZ|phF}nNrrIAw53%X=pZ4j$B%>7^)J3f8nI(dR zJRs3X2xWq>;~#076{;DhK~P>ZP)#vZ^DBH$hEh!i|Ek-k_}AQj(6YVE=uxp=+#<~U zk{yh>tfu`q-9h?lHANn@EO`Uz_Q7A6yP_W_yASxx54zty-u*%1V0LV(_0W@ODEh4r z(VT@+Y}Z385z@|NE!N~Tz>w{i*kESI5v z_O?n1ksH7{N}E_oUG&~M(emm4Y>@cxZpxOt^dWuETH7Vlqq-;htBvWB`q|K;i&fFe zA@nD5RcZ_zt93fpY=aSABGUkn)VY3axnN-OUp8#~cQ4LJlW)DN(mvI;?`y;lO6?DZ zjiJn#1T0<0IC|T3v!ULaB{nA1&d_dBw@8CvzzzkpZdOfJQ_ttMnCi7GmF69SX$B${ zBRY>0gJlOLX@hOl>b5vhINem>KWj>jzryYMgEFpbXC)3+HIGOfys+iW#KBAC>ZX?B z^#{8ErrEpx;9vP}$zOj^j2iNLpZw;#Uw$90)uKJo>dQw3h;KVh#+@ZO{!d+bGZncO z>KA|feO`Qe{lVNR5Lxf~gD3DU6`sm>%l`b11Tpe-vu;|!uH4Ov)jj@C<05l zIN*wTS#4TS=|xJiSe$#lF6|Cs z5MJAVt4pOp6@OXuuA*0M<1$h*a{Yb*tL2PD_pjKdC&<5lIQ-?H5)?#?1rJ=VU*nNC zSDhD?Xs(c2Z%kDt>=VyuZ}3Hsx=@ZZ!8PMZgS+yLYbOJP@wV3E_8JRuj$qu^@41tz z!shRae!#bcc=W)6Qd;i^_@TsDf7{RHQaMi7N0c8@@M(YhSh=YkOHQ@VfxS?PVGzQ) z3A&mQF|rEX-J|RseJAP)0Vva_Wwq_og7TA7&W>-}js*0Cr%u{*bW zcTVE<8Kbt!O?Tf9sZ{R(LS)d*2yW@cmV-T~HXBn;D9itV$bZ_NgY2m6IrcH6*mEQ_ zG-c1ZSgn^+k}6aTX`|2H`0<9l6XKiNWp*% zv{{MWet|MuKz?n;sBQ=Ja|bv;>Bii1UAtYb>&Kt_*?|5<)z@>=HP&_gdC@=9@I#`I zvK~=Qdy+OrvXdtehm|C9?l6NZQCdUYmNfA=LwlSOBva8lC&zK+MW-OC9&X8&QCEJ9 zgFTu0lq4erN2v;Y7%0U?(e8PgwW%vj??em!uIO&MAOznpBza%az4DWgTf`dKrOEVt zh0D}bc$Oa#xKl@NMd9@mE7q+#rq@1+OR4Pr4`iW|wi``sk--p;NnWbg1T9lV5%l9U z)G;RuYSX>0vnJ^tKuWEzceNgXp#Ptg=_%S>0Xd(aLCy;`IoDYqDb#xzLj6ko28!>k zfSC8H>NPQ^ia(}{+r&Hv`m|rGDC?pdVlB5RLy?6|%t9GLE^dcB9C9)H`<~$ys7iF! zp#U1|wRs4$R3-n=k~?%)8TcIQWziwl%PDE=<@Mr!`skE2T|4MjUfoO^2~)G1Dci421$S*V zTfU|`r8m5AYLn;{Z z{-D>{AviVZiK6F6z4=`|A9h9jZP;R5=EM3o7R4R>lIv+cD%%g;q7daewsXWjecpGmN^-td#uZ9m7bxrS%2N@~1qRT-;n(K^~VzSP- zIycSzeUDNT^2-&P^R;HjMgVxZ_TevyqmLT&$1HHjpFBUretbC3{U-cHyt5DxbvTUL2ApR z#Iaj-czT9BtM^WE(f`mD-?^={**pr_kJKX!sJG|VEG0=huh`~9C0Q<4wnC!R<2jP} za(Ry&C=~X$t&<5+i+~r)5B?=Krq0^9ncW{J5PFQLZw06OEbrmMbSn!X6G&V?l@idu z;as_#?GiCjWR^$v-ok0)dli2ud+x(~FhcEp-z8>)Pb`|d_=Bb9JdaV z!n7;fm=!SNLgNjOyvggSm+hhlRZ+y@%%Z0~;#p5o83U);X3PWjLq}~CQm-#P@eU+7!OAon3cyF*B9~x;U zpTmEkZgDKvy3P1Z((XoYl@Veiv35c<#(0)>S>thwm1TN`gIKBMI*%DDEIBA~eTC*I z*(FF{jafb&^yhxYs7Gj3_%&x?ejx}AS(C;C(IvXtE#e%CqDPpt=O4Me8KMrN+S>fzIt|LBDQr^GbgbP8ovq2B@jRPUi6p{bUz5UM6VtTD*Zm)(>!D zWRM{BvaZNOemZ3y`0(f2Ks>X+m|6J4KXVMYF>_kwkL03v=2YgufVnkOKPmkah5iJ- zz0oVn)M$N0M{dbZ(fXrgo}K239Url-{ex1Z{8YXcdd)yxG(>r&`S3NGHO0tnOU#-n zptGAPQsttY|;mz}M3;~U!2Sd;JWMNH3YB<-=Lvj+56OLc>y zgs0Jwy3tv7qoq@wMzLFS+*+($)PgVUU?)q?@n+?{zYNsQZd?(akOtJEJrz(r>Qgj}7N0OwvSoEp_+w3Pt_(`u)Xs6^lS7VSt z)e-C4;}z|ahqlI(Y0Jbaw89IAFxkjToR54vJJN+dwxp(tJBMz@VL!oQ^2#e3PwMtE z!BR%*CN&}L`RH$3%0e2pM*mug|8(VOo!=^C&1Fjwwm$lmw%ByV-!V6Q#MBrv6E`Ti zVess%sT@+MX6XE_5p!%t*UcJn{m8trVfQd?y?N+8GzSs%Ed7@Gz)%aYV~ZbLZ`+}D zs4O@`+b?Ft;T|02*^7k@lT{$3Zw&%-=`i<1#xqun7&z%&ZoILKb>j^ADdnok7ix!DB@M|N;~xVt?GH>UOa`W}e7b)-VnP}ZyHP1voz_PPG*lAiapzGCHk996%$Mn!s zSFel=9Lmy<#nc=7GK%ZG;Lg~xu(`^k{85ANUw?iB(wBt!o?%`?pl3<sH-uH~#Q5pSojwfv%vJ=bT|BDP-8BYHCN zosxg4`EwE#&^cCVyehdSk#TXPv!#{<(&F!JE}So(w%*|1ZaABB2OxpToq69O#Hzd) z?`(_$%w^G086l5ZhnzqNzprt*@Z<9X%V5Zu>vF4tPu#eO$(_?HXL`EKTytTl)6?3$ z+ugn`M0}IVQU!%3N1_0^Po?8zS5HE-T6kXA>c$xo2*k6m$DHu&>qbq;AVc>2V9$+H z>0$S4*(E*5_%$JLvwDv?nbWPWK_c^jGb8FXukndcwl0w9%bQE+X8f;aIMnH*3mv%O zi%L6Sj5R|ZgX{t!j$IK~PlG6h%7BPEHS-%Qmm4+n2RkDO{;Xq|u;vtNoP43E=WJ$& zmn-~QZ<8v3=Woc@aL;ej@858k_aoK?x`M^>g|W_vR<-3$``IvmZ$>)1~?&0%GJ`eKg=JO$+Px*|X@A952E8FcE zk>mW!^&T>!IAZGFgTzsMq`zvjyoeFjLCDB`t6k>>%-5k)YGH}=@< z$2gBucJ%r?Ct#um4ww-YzE{JULy|yOFJSc+4asa<1~q5Ohx)uRn9P`xL$oePb|Ouy!ffnR;VGx0C<+e z3DIxTsfe}xO+D>(MP^PDXKjX0WDim^Mfg##q0+t?TO=YNeoj+fW-T>SdTUAvM{>m{ z+O;+7+KiTBqovenDYD@sAM(9QatQXu#)Yh-*zJd{E_I70;_sBVR5qx0ij0;#qb0w$ zra)w8qh+bla*@$eXtZ2xD34`h%dcq8*z!C6{z=p}@pGGs2Z2;+TwM__w!wMl4b{2j zM$0s#rNU^LIux+-Eh3nx$5Z1CgR4?9i*bLKv@+eU@Vket(Ae^@)U-v48(T!HZuh-> zi^xOHV|fstkkOE##3kc?(JN}v353kIn>+nKXwKNON3|mr8Cxv=+5jlJG44`NRWrRR zc*NYS;8JNR@ysPXzp=t++_jQ%Hdd^(UjHSOA28HOQr5SAA=7|UrYuwDh1b|DF_YHS zcA0$nF;;%KgziLl$tgZLy_L1kL_LA>mT2#WTe&y&$iMvDxbe!~nrm;*$qMw=#CGRq z1rWjiDYbhgG)yfISN_0ZK+Y#t1M_;c$k zN^6b)-?(;k*y>ZND!o(6T#95lQv5{xmd*)xuEH)W-i)lVnUd9Ta!SNniPHy6d=M{C z>ziJ0BC%6#Ux^bsYie;FDx!nP3^GHzZy+r!OKmGlZTYkqiS9GJ9stGPRG69|Ecc?S zVR74MK4XkD=6Z~|USqD$m>V$W<{5MIjk)52;2|@RG0j-*i5+hqMd9aSfzG>&zy}E} zpYm2ADSgZtHO961J-wB9W`KGwRsUHS%4_nPCz%TiIz5$$9-%?9hDSF1W;kD@ivlB@ zZ^9E7%BkNTN*j6WQ@_3Pd&zpt5q1HezTq9H;auPJh}Ka6(Y|Fi)g;Pu;^(R;d=97o z(u1P@x?O5-_Hv?!w_jg+x%^ZvE9B}Ub79`hM3*o4Z1W2P?2k0`r%IfAO+okTZjK(! zkd*AR`bewu>}vx5!hEwOufA;8B7!Kc?DVYb-kn{xt-%Zzm{*RKh(n)wWq|LoY@NA< zXu(hY)N4QGdo0!%=c&3Z9jhLe28`0N&ZE-6qJ-s}mFV^bKUsGdnaR-y34%FPi1SlZ zKlwpA1N)ibyM=2pQ-Lw(OfM7(2oqikhU*7`!?~Xg56Dxvoa-5aw8`?Vf=gHB5;;fwFBVG0PEQ$%g0UIV!Q=>)&`IH_3_~xYiv= ztn(ZhJHcF+XU>t+!2E3&@+{Fm-rrWIE=Hpklq!g`5KB{|T;uGC^u3v*5Q)U>?l+se zKdqG@^<+D>WyN=JNSR3I0eQa4+Yy+4RQ!=}$a?4*5o%->|JuYsT&$k6L~j0(R6e^; zTw~2jZur|I5v{q*+xK<(7Pv@=4{)(D0EY8}oKmI&eWV?86$i5~=Up+8HSn$X(}@-! zIbM`9U-fh>a838dj|??fXFDKZe3iOy%tr)$zHcJ00eZGyjyE4r;4@)0=>B$L@_>Kf zX&Zch+qDBkH~{Oxh>1IjgNP`)fB2Z2&2cN8ceA{yBkMHea< z6{x<%^APa`={h8QLBG*0Z_E=n&`Gm9mk7z+j=s2`+)&q2frOp6lXJ@ft(j}mv-;s4fO0=PdPL)NB62o(@1$DnA3^& zHWCjuSgkB0z>Bk;cXr;ZNZ$Bd| z5`g&IkCA#DL<;@3d*zNo?4)y52S89|)>wmsYdiEsTSMH4USYN3GURGp8f?nUK_ z390LoqgYoglK{L%90o<S;5=o%YHdU)mBrqN&ki8?JAVQkDd(VylylITL!5(79O4{wr0pEEHhtc-Q=`a! zQsWW08^L0P>To&Y*G>M-=kUv}83@F9=ie;q0K0bXiR+PnvtQj4d4|)$`P+ApKehvs zCr37U!ge}!lg(5476&9=7Y8K&=Ifa6+6l?ucA2_Xjz~NgMFnqclId2un4(uE79OK50~b%nYfOk1*mDcYKU2uaO#YX3izl*_5< zi%9ClY^OsGNj>J=8A4K5?RH4&8~*`G<<1|Dq^f#{A*nk1=tR?h2)jB0c4bu={^T3t zRGSd4z0=H9$)+%gp4qzpG@T~LT*aBzO&;rqYTqFW#P$mrNi$atF>hPMW#tMZ7lmW% z{^|bqo8`BW+d<}Y{g4FA-ind_4YPPq!2%xS8>QoK@mMjf4za3Mtd3vTdUMuQq&~Yj z`^xxb9kax{WrZj*v_D_dfI4(AWR01pIxev%&eM2CtR(I|?LE+yfOcBE8L{41x!A~U z=#$;Ls=~VRaY2$N`LH>spll!Bj0?<2zFGZ&he+#?Mj$+HBu{ICdz;@#p5e4ZF@iyT zAE+ZxH_TOVaCEBYgOHW4>lCPhs|x&^E`bJd+oqqk#+C4NlrVEeKFClQW7|P`6n8zj zpFW|8Ea>WlOJAq~)Pwk9GBm+KU@C7W?|0zI?Dq=0HF=LWTryf8Dhn*;>cJUh>%wLG z5Qo+Awr3HMH(OBYspEZFQisDci`kzN71HBv7Yye`UN7c=lBVvSXuc7~}!t zujomxIm|}+KbaP255CI_YH)nv%CM2!?gea)}fwok1*fbv@Di@ZWxgZKGmbC^Y;#QhRj8rbnw2Xfq48!)$|@jonJ};lP3l9-ftQp*2J2lsnc)H$v1s_ z>#S9}S_m|t2sAQ?K*gOlKSfq!#1xS_GD41e&mhutfU_cAdxB>6RnkX5h3v3cGPC=n z+prloY$jTblB2;&Dp=HZMOcN_P7cOb#JYp5b)1u7GoyDn6-t=VHz?nLo=(VS64#2~ z9L+_F-(1HJXJ9XrYX(-58b+*YsWCmU&1zt8R0Dgh9@r~VxD2HR_O6;Q8rZf;dJ`bs zbu&q`Zs00; zwJ@|Rj)@j0|@T_fD(b6*rV z5s>A@UMnO^5qcP6}`Ey(GlePv&SYb)M*4vDx-HP~0 ze?EK@rX8bCpD}Ymp$$lU4!BQ{ZOF#`x22jPxX-2kD*yPQfXzuUopo3hUEx64+Fe#s(P81uL8$E&n;|HvEpGdi9#{mIx{$=4K}9s{Bfp|Y(Nq*}6( zl%PVQhg$b@fX6DXZTx&rT`vPj{GyJ^0a?O?ARJC7(ztNCDSYdea;%TuPPHT)lHtnN zGhrB1ru*ujc65p^o)6Sq+f&F>BY~b+$wCThu6T8IJ2!oiVfAkqDt)b ztQSiTDnqUPG%mW`Q7rl@jf*-&^ZIXgL!{5iu_6F0ge;D*JJNOzKq9%SdIP-hlTVU(NMOP$!`tygE~JJ}>9NiWl~E(BVv>jiWvRklmYjiy|m z?CFtBE`8SEB3o7?@H?h$~L9y)#+VtXzJwAKWM zzFC8G+cFAj+~>-QyA$55@)pm!soIM%WB=lKGG4&2GNc(KpP~xh>Heq3%*%E6ORI_P z+02g#oJCId0=>8Q zQ*=doiZVNyoJLiiQI+3RXjF0Dn4FXbv?|4ad`uc>CO zuIAFpM7K9s<8A%`bOoPjKFbW}iLnIXJncL)UfEc2NG|Qgl!Q9zqHYhrV3jpKv7X>B ziA5yODBUhP{e^k*oU2MPo$PJwtQi>MahKRrDj-djepQPbzlW>^s1oE4US3)GA+MwQps73&j4`Sn` zD0+s#zDFzL>VY!VG!SDa9hP&H{F^_87bHh8n~HCTe@W?+)hxrCB0kAnkY~=uhqar8 z)ZJ!nKWNA^7X*Uu`!|))M%e&$6eQ=E4dQ)KVEVSUZ|n4Il~Vpqn}r!wdZc)_|F%~7 zMVcc}A24t9vAUQQXD0rc73^M%NteuQ`gy>--Y2sOPqO*46g-ZBnm96io6KvyW+j=M zV*j7CcY%+px)%TQ7{~yD8DNkRqmDY(sIjIbtzaSs$V=ogNthWZkZ>*KPE%A`XB2CQ z=p>c#fY;kw`)hk^uf4UcZEe-o_Tp`=V3dI3+bUM;UY9j#b2hWg0=yVgEuW`fZA z`TXHCnKNg<*4}&Vwbx#+eF`cEH62zfYO%^dEL|~lA`j`2btd#M4-m_spto9>1xYN* z)}mYOK)Ewf()7*AwACudnR`jcvigi)I_DHFQqHJ+8E|7kK`>@1~t~ds3HBu#wZ}`s*j6Xj*IS!B+U;UpUn#CHPZo z-2oI6=+kp=&&>grfij1s4aQ<&Lj?4=L$n1{35tmB%Qp;Mp`@1*4bl~vyLaZZprMm9 z$tR{TqB{)nU1ml73o_9Peu@IR($GwVIpc+5;-*H~<_zDMj6rohNOP>+))z&eSZ$%d zULCIT^@nN2iUx=8FH4>#o9U$C`^WqGr|>pAQz-Q`)dY!DT@w041WJ30>-HoyrSFft zNFQQ;WN%`#KC~`XrmmRTFOd)9)YM5#jq~bXdBwaWyBMCY-K~R0WS}-3=qF{M?{^3K z@zgowm4QB+Zd6}C^<01IRJ1*7O)1{btUH*TLdd$Mxi{mqT`H@x4yIp~sZBDqXVUzM z40(4kqdgz5HmUb$qs^A{PJR0FvP_fFz; z2_fN*yed)cH1JcO^KXS;YDDyh9+!3EVRr{%7O8Wc8~Yo*?{Ny>-fUNnQ z^tK`;M53OMnG2hu_UUpAlifbQ3M7o#%$9?@>a$*Gcgx+=VENcZ1O`cdU)pt4l_vulBe2tK&X^hM<`IO_y>yoIU=KwXo z@LvZAUHE35qZHP4{<^O7dx5qndpSMjrcblZ&8yEyJB-aL+WG07W}VyFB`nRxTn`LE zeLPiTU{9WzTjM>ZM8O*G&b=9@4Ny^~nabB?Dp}(@S>s)@#s}>+oSmriqs-+rM1n$1 zWgf?awwYxW)=ZXxOklli2|qB@*-v1{uJi+y1AH4bY~_Iat^Pc6>_L6oB%-5H4hnPI zDpIBJZri^!3K_c6-&2VN@}f<%tSV!?|H;fs@8;L72@K(b zXoGXdx*SCS7!MuPqt!jas3#BrtSNW92;X;zW;lN z4@ph7E*Ep$zrfTP&3PH8 ziA*GDYJNh)p2Y3{Fq!o@nd^D_*ATsc^0E*!X80xCU)d6%bmGmyJuLxJ@bk7Hv4~nL=?3BqQsXN zthuc3+HXGVWNni9`wQ)Khs}9R&u$_#xPzB9d#z`VG8zm<_ol(-;6%DQ<|N0#q?@AB z8uL<4z*CQX|Cu`1(tD@%8t}4hPi*?xhadX?E=&b-8}xs2IMl>M#r+YzYBLk);cG zmyCv?zvTnx$&yp)!SDkmzP?qgA+RGbBoF6_l+)MW!Xup+egH8?otrKXc|=b?gp*GO zdWCBUej$jTcn(0m;+Y7?Z3lIwU1kQPuVWVwqBo}FfaIVe>dBfXp-+3U>Yp!b(_5~6(>{9q&BCqCjPa{T?j6huLZIyog z*(& zqOH?YGT)wCD_l35fk+<{#25%B&0 zZU2?zKW%>?N57Zq0Lp?uP%jH2H+sKwe=9>Q-gb%Wq+$$fg;iGnyO?>CUxhgoR^P37 zs;awTusI?p9GsfQkjmw$+4m*U#BxX0jVwi$-9TOQ;;V@hzPxlNE?3wPk1@whK0&Pe z?l}&jejG^IpYO#yeTq;O{EzXSqAa%4qdc&)WEObV4=$*NaERkEE9MHb$;PZQHc|G{ z^JBcQYQGL1apyT`G-jth++021N2_dM-Ts~d>_W=(R()otHlxz;WgRCcwyv>zkX_{) zK$@Oc23H#k1H2f0)96&ImD@?VG@`+SmGu)0Fma|N*xkhRyy@IEuz-2coLxzOdfwEO z4*c)?ov9F1FJv%2#BnI{kI7L>5$3ylMQOom7;BxeZy(WBtr64~3meIOthJC6e(yBv z!bodoVXNi2#%%Ll1L;veDhiq3?SXr}e8rFoifGf>N>fws+bWa%uzlvcC_QABw|hi@ zQxq{a)R|t-7_{)Fj&n;KLhYCzbuEk3({U2QGRUYUnmu#J$B{`c^=_{(a_b&r$2}eD z;=S)%fMI{1Duq2pFzKabiwm#4nTi`n$17XsRIOYs`$DpRIG+5pB68}i#4W%)*u1!s zuS|367?>le=zX^vRBoaHWNb?p&t2NubN;SZO54V0QciaB9Zx>1!|T{L20l^qWZgr=Q^<4#v1V!tW=b;Vck^-9RTb8wSS9-peh({U2}zNw z$C{6*CONBSZ+5&Rf9a^mc&0LJ>0MBY)Pchb$V8NL6*cZKg!2&Y7zHF_8_$nzbAD{k zKYVPbo9;Ynd+3f6d*UAr?7|AGqx>FOaMs(_y9d7~o$DyKmUwH1>mKdByl!{uQ<#5l z5A^Fm5ZWR)e096Yn>v?q2xy!3S2$XCF&>@te$7DL6Pr)4mgtD*hp%pT@-Zt~P79Q! z5sNEAuBu>G&;bsWFnW8^uaq9VwaZkY>nCQt$?~yAe0{xu05$s(F_OJqy3X+E9A8(K zO0c8WE%P96jrr^1{?rN7Cq4-1DZ}kRDSHKdTCW{i7Y+yRfML`50$TA#$n7J7jI! zrO>I&!ba<|M)rj%9av5OJ8xJ`oZ)G2EV<2xPe1&G&-jWtouN^z)!T}b-gHKEX~nI# zl|b9|xg>3uytDr}&Y}#J)!YLZp>7<)Hi>KyzcBueJz(^RBh{w4&B>m#tff7&QEobX zqs%n-r2O~&+R&p2v zR!}U{S)E582-KWpb*7Uovzo{nb-Q{NZ1-^Q(wt0lEgI4SPbaVfudIhNOXsAf-S@bG z=TzY7QbTKsqhH^?_z63+w2Ckqbq^DiCRShf6vDSFy>;iNJabP^UaczlIos{r$QYio_SENHCYzmCJU>%9(BYC zXei?FFZBo|YMe8>wnvKBWMb8;xM%_!B6-Uj@!E`4;{)z6Y1aH|J-c2#E^}p7 z*FbCCpxj@9#ODihq#Mhhu`_K|(5ow}tPAFdrnq+3aI>eFD=eD*9LL6NzyXfHz5c>? z>g+kj=}qxrgNqLdgAeQI+*o|rAo!4&+q_QjVT0g9;=}l`0epDb8GlST4L+>1nl~su ztW$hgn_0T95FbS7^`_wDI^~t{#Mxk#f1UGByxqR@Th3C%=Bas|Fhj3I^$=ix>{f^| z29{7lU;oVj3;)b93Whq_4iAl!n)}mbsX00%8a^elm+-hPvO0+$%`0=5NKByH&UvbB zVSA=CY>(>}zNgi=GeSS4c<5-wPybNy-JjFqjyq(|ssbqi2f@@)z#C!cjs%{Z_2_rR z0j-<5qxQNUIdd#_TKF&tk7qvbwJ-f6y;@WNp+wcy@00PM(^0 zi?-wT8*`kPodmH5vm?&yt+&YQa%;eT6pef|X8&uC9B^O>Q{FXQndY@ZvYOYyxqSlm zEz`WNm+L+@Sj(?@kJQ*&3|$1DglG@&ez1A1{B+*Z0eP>qT^Pu*Zy%92wm!e0f4AwIr%fsre*-%n*XMoucc=cn zTmRmsf4`-FZ`8kA&6`h4ojv-zaaf*{`rL3xo;S$zjZJ{_$bXmmpW^czpO^UjiBFc# zg`~a7_d9&v=Tpk>34DBfX7D+V&q;hv<8v0D8a{LRoX_W)*K7nRjO@4_CwELD5J76( zJ@SwqJuSAo5nYb&x(Q?$4c|NReM;^mETj||NPKnGB)>i78?s_N?#oDGV_ms_Xc4jv z>yvV$T3aNsm^XNM_!CmBZSIzeAnNCgvkOce2C|K#gq z8c6){TwZ>C?8`{vao(DmXsB&SY{?>t9l4iUz3AH#H%jr9V~Zy?%FD*FFC&QvZ-=%} zDA$u}-W=YOq&DRxrJyIv3rp>vODUu?njUfbuchuLr2y&^^ySvvONDxZzFf=8A#vu8 zB*rRmJV6!yux?p(hxOd%RnhHL7sPh`3A61v*EfFLQ~EZ{ z;#?!OngSE9qFvY?2#Cr728}Hc_6TFrYM}4|1kP4V^}_UnL3ZUkI@k2?%`B^4bv5RN zRm^dLLMi=PP`enmnyQ86LpAH=gRb~`mQu~mnCRf*R%#A_R+Sz|9~$S|E(UFyGte8e zHqRjxboq&;@7C=~)pGi-TjotwiQ#s$AJhNsUlqJzClZT({ICPa#jbSU`T8G{HDY)) ze?xj8sD@#Io*!Y4MtSk1o@aFi&~;bH_ybB91zu33!oL3NrR>A@=j8-F!ogxQ^S~kV zepF}Fm}%14;O9hT0AT{NoOlVl(^QV)7M_tCw&)u2yr{=&@^>`gLCJNVl&usmN%`L) z79X{S2a(6t?&+BCiD+{*dWCEM<^9nd-@h2spDJbaYRrUfxZ5 zE9<1)#ef8ma-8~(fWk{o1q1{VIqd>dMpj0<{Ymp9{lN!#lOY&JLp4lo`1>j(`FceH zr59%D8c8e%yJGe`H@IlvuBOCdO?c5Hn5C;r3J}WO^{sU|Ros2FD*kh96|R1G*5S7u z=JrF6yL6ST=w=kK_J8MTB8G~U6cI7xu3S;kX65^JU*8|(8|QtoR^i??J9w1}!5P|< z?ZxY{={{ih%NJ+DTj`bwndyx6K(}LatAc5W$S^{QZRE1Qf>XSk=?EHMG~Yq{H`|am zh!Hs`n;9?D6B9f5$pWlwxoiUQwoIo#b4fW@CuEv~_6t`EZ1iOF>GqwU1*rY@kbL>$ ziPf~)K02KXkDgU(9B^CbTU^l1BpyaU?MdGoSM;67b#Ri$>nJ5&{%I*>_sNTO6b8ph zA|qoqc^!Y|o_;zPXdFZE^ki_owRHCIu7;$G0DXI})CfM?7Zs-u&4~N1n+_TC{W7!f zE(w>m{cgT+l4!SYH`*YvpRs9U%hK6f(3|nq;ELMTTg|g?+nHKy^#<9Mn~29|iiiPX znRT_8mSn*wVz5Zg^vm~6-aQ@DTCY=t!K z>p!(1~uOPfO)i+#CHAhou&TWe7?<~Jjr*8@A-U)r&dy2S|a~EbUQeSNc~@C{q3)cR?k{OtAZ9HYyXG6<_e5FTV9Z&+W`3bh~%UC;UKls8B%ZFbR@N{b?ymRkFq zFY@wh^0M8&P%^L%AmAB=V$CX3Juit{hcBjhwF_$^PikHXRBbLG-VibD^RiqyX znqtE(vm1PUPf&M3Pw(gF(R%vLc)q8p31Zs?cd&9GVxJTo+ua#5|Md5BjObDOyA6L_ zx4-@?o&L6bK>%b?!(_#4+wIfN)6HqHr53mdS|%eAvFA%sAr`Qs46{2LT^XGs8HsO8 zMp^%y-x=;T8GW&;3&zhQ>G2@Sa}B^kV*WK=mfx01!2nMJus8#uvW7M7qXjV#{SL^(bj-CGw5a9DtR;Q5dyv<(C zPv+`FliU?Vb2i-?WqgI7EEwObAqxh6NvFLbvBNuRd+#=lY40_D9;v;ngVs-FOvG6x zxgZ|P=r4P_GOci&45>eL1_%WJ$rraN#5jU$)r$p}Cvp*@la7Vl)$js^aam>Udiq2!R0{`dKli4ZDd>(3) zF4ul&h{qJB*b|zs{6qN$?G|XHHA8M2i=^*wNIb0@k8{_UnqwKLot1K9#oe5dAvPEB zdFB_T{=fZg<@^jyCc7rL$QnvM-$g{jdIWa%L<(c%7^g`RCmKBGE6c zDf8K;u4rP1`s)Aa4z-mp*`eZg2KvQnl3WrODj6c0M9REl#ZI#>$G|X^C0X|mr~{8T zE}?i2pEZ1nigW+8WAdlC#PrFr_tVX^YhbcLV!Nbv9F5R*DL6VhB;m<=&!LW6=t0g zv)7wEvP=EK>0hU|gl3+16HJ3b2&sScUHW){Pc86F<8vOL4SaO}GCh{z9yhM2lpQQT zm+}PN4qwk*GRYH+KD0hGCMd#`>*p8GN6=(z>mRbN6njDJb-1Ho3k_HrE%i!v^~5&B zxDmUn&*e*JS(C$`!g@gNUh%>YH@PY3Gqu!0L=6cMCAZn9yJ>`Ro1vxTb`vj0bYCtd zknpp(V)n%n$a6%tHn}MaB#9$8QTzzXef{d4C}mb?;w&Lh0!C@_RiLXv0<`=k=CcNTeDOOx6ClY0&dylEszlG-FsT27>|A)1cZ6 z-cB`d|EloyzYp(0^{RTwwYilxbEY72NGyoiiT{Wmk#LAR5QT?SPT&68?;!B|A)WAY zTtt~F6I*sn+6POys*-g!hpC<1J<(p;C1(T=s#|>*PffXRE4{?_DnOf}m#d8=Ht`0L za0q>1cc?wHw03lc=q6C@c5tw*Vy7w7qXweR%_k;SkUKGhA&J(EZbxuPU3;iY&f21r z+6-%vIyEszas@Tl^W^w`J_m*=^j?6~sBO4$#Jvg87q#1wEiO4Y`8&FN2y-wLEaC9aUh;AmcqC)rmahZidbh7h9Fgt+rwS1fV(EeKsYt^Va zo?5Ot%3+F+HTUZcTjN^@-YcTOgiTkBd@%R7Br%Pybx*_iQ9OVWOJtN=o%0)3%EDqX&r*akv)2x)@fuC$N}rwYaZG{9^_21kR8F$4v{Y5k`eHlQNj^{ofLnNhVo2P zdAcVYEap};fuqBI!oVk-AC@oRh}`G_IRiP%2ju5!NSmN)dBK^y%@H^%O4)74|p zVg1uO#K^K)*e4|#Bwa4AVht*~G@Eqj25_$&h&uQ~*L7n5JSgVW_(PV%q`%N%$H6WK zJCpMm_zDR<98bS84kIUq(r5p&QP50~OGX5!m?(5knJ>w*+9a;HL2DHpf9mHldZtlX zOCpx~$Ezs}=(%;o^5TCWQkJfCOTrT+x&z~Q(E)c(|VR8Af;-17dnW821t6i)4 zUO_c2rj=Zdh~`M=a};u5>DQ`-1)XEHRH0M=JK2WCze^S>h&RZ*N<{WXk^3}?Kr+f0 zafzoV@!I)9Wj1i;7t0K<2-0LdB}Atlwg31fm)1%FNU!wxb=1t-x$hF6vmTCqAtRH<}Ei-w_J_eT`Vvn(srl z6L1CZ^M1&Sx$WT}HpTfku{_rnzZ~p7p%A<4O-mxxwH7d?tWR`Xts>-M@1nr*D&m z0pf*Jv*bk*jyoshisA4&D6hi;Q6_fC{h+x%2lq|-^OA;8zg zoC^|SGSX%ryuwBJ6;_AGS`g3$60t8NQe;PBg z5#(@|;u2VjrpzUVrP$KoVx+-KC4wD_Ca59>A!jrxfig(w>zCsIBN3FvIrMw}fSFej z@HerXni3I8wlOO!okiz$L5H~-v$iQ%u;^~$mn^#3j7Pqrb}I5Sh>1$6S{6#g`n^)9 zS02f+c?Aol{Ui7Kt%9}T^t&Ws7KhX86B|vhSA~?XWnr9=TNoauSi|sQi`H)61ll+| zn6K|=bfjQm^zYPV;bS9c#6dR`4`!~+ofzgYa-RgRYnK<`by&!bptd4rM7C5&|C{>^ z=?6CjHUA09#~qY^9yPIp@6byJd0}p~rfToi^^V ze4{O3aU^kj0TM$-6^AcW9OkO@w)PIYZGq0F3S4pq5G=|v>w-|GH8g-LM0oC^AW8y$ zFA5IKT@-en!#r1}{;Kae)D#N=KEPr31>BQHVLxp4tOrKTRK|$yt1Q>T#zIxnEA}$O`Fb zVY6Y@gULy8*!g439Hq}M!#K7j%%JJ(QCSTfvRcrNm^ZJRH|g^|sdZXM@(kojLN@Gc zB@iIX`&izyGg$F(W?7J%4>K*GyKHUGpf7+Qtgo(%+gTi zig32XdXatNX&GIo9}`S1XW=dkYiRk>he`+wE;T1Vot{&iidy&USWR^MSt|XMEh_bB z|LamFRgPQk@q=YDz1iRJJe93Upj{^T!PzbQL+7z2m|37NzMei*oLVKj;g_k_olDV` zr$?B}yYzv%yiFgNOEKHh$@rQ+Fqhl)VXCjcQED(SqCM2P$X+C(4pF&C6Q{UM_>&2d zMtny4jtpYD$RMboG+)7~ZUrYvv~<i8yG42E;%@JN8fg+}b*jTd?Yxdgn2gPti^5GqID*3Dr zI=H;!@0ZHPhYX<6J`uK8ZZYxLQF-!qWv1X+lUtjzzH}{N#+zI%gsA`d-sMMZbh_K< zzTMKON-T1%9{h3Uk`zC`w|1dc#+DPZgP3(L&?=2ibY&HKbx(4DAg#T{N`zDfarFf z`iYm9*H2D*9VzFlCeq&%M=VZS>cQP5MFT1>9d_hh$V+EAHBF^N~EXHm``a&;v$7`XfpxK$Jx=a9dy+kF zQGSp6lE<1jx*!~hDhP&CiKwAFM^yo+dz$QU@ecdaI^E%helC;^0JmKy0A}3g2-XL1 zV&M!w?!NT(_e*X@aFcd>RX$+@2?gC=!qw?W~tv&oCd?TFqdN%O^-A z^nzN&B1vEs`FNZC`weadhRKLxhZpKDMm=`fo8&`sj^xQ$%^(mbXdk8H_I2MdnpHWy zl&4O&)_B=@gNcaD*enK!cu50F>+Ko1 zBNt)iQ2+b-+GPojZ%`9@bf~OcjOdsDmRspob;=>9XJNU2^wgITygDy79R6Z$?uBrM z*71@zv7DFj(Wk&CX?SPyti)pXO}Tkf9!WHqS2DcK-bkXh;AhxAm;DO%(4NhAqS8(B z0)>%{n07*LtwDQ&WDK|&1>C}no_xla*&h>cEl>c{4;-HHk0wEy{vXNs^wBcz$!EMl zGXDB#8Sl(z{H$cW^=KKtn$K7-8T*cwaZ^6ybjg@FTE-RmjDKNcPqZE_V}qN~nJ;Fi z*3Da<_+$ShGn+yCyHZW1n{@c#g+6LEtEHOY(W)u`sMXAnYTjcpf@>e1%GXSSOr>0~ zl6YZEM*Fq~Hva?mEAqt}Jsx_rPuBJA{ArW>jkS07H748t%9lSeGA3JlE*p&q`rBz; zw0bY%d{)u4CrkaO@R`MPE#FOi4nA#u%lA+Cz3-_~|J!`(`TY=|G@tMCdz7?i_*C-T z#^+0Xq#oIG#qLaa$hdW$uD8}k)QY3eLM9vu^Q1)3ykfO+>3P~F4oz!vYHPAAF~U-i z%ckXPTw)(zlq8!@vsALsEYVajaeF@TmfT|(UL@uRIXM;Fi3xgQtD7856y|jK1GWEx zo!_hnNf^gziERp>qyG1@THU^Ear&~*;9{yQv5_~~Syn?Ulw?XIap$F6P$D3gXD219 z;2jM7dY4Yhmsp~Gd*^+I`oKun; z3hW{FlNS$c$%~;G*~z$gu(?urX2K}V@g&bWtoA$ewdYFA%9UVhqH8&3C;=|bG;hpz zA9)tkUvvfmdd)T@LfZ&CvT$W8Gg`W_BOXgMJc~&mqZ6`!^_E_!%?U~3#o-gW(G(I+ zP5fPB^_gxA*fqf5xtK}!_Mk|;`iiLiBtDP~K7HwqscA{vzGKwXrTg^eRaR5LTH%GE zIW2pR@{2JTpH{CGgh zHY^un_NP@M=#fPpx8K*%5GTC}R`W)%vP3nnTxdS9Dihnto?Sjb$?R{DGUyNWpIl2j z$97i^Hm}a>dUa^g(~SAW=XaxLKtf=#L?-SEGlv_uZDVk@lX zwRldBHghNEaxwc5jI`#j=-+vDsRaFKTid!laBXJ(3adnzWVZXZ6?iL8j#*z=Yc2oU zdzrT7odbjOmrGJ^eYorOU#-}37}2$?7vV%#DE~i;_(x;yEqr6_EilC70P&WY?sj|U z`_6Q4ex*ZP8ct)J!_tl2_Jca8Z0hu-06X*XoG!7NmovN))RA?Q?24k;3+ZfHHi7l+ zb#C3M(>vm0rm)+sI+}iT)Lwj0VDPMwIJGLMzIj&^aoni&ru~V6q#PLZ`CMxO*z8T7 znI0)ieoT(nC#6RM$qKOzKw{!a9Xs4y;UOH?qDuSX-%IQwL`dyH75FF*l z#C2fHydrBiC%4w(hQ7V2ku!HU;5Ks`5h~0Y5jSCPTxZ$dioi_mJFLfVynf0NVyTxl zXa9Wtl)k;m3vQIu<8qPKrxIyBS-y4Rg63?cv5z@wdEiM-++7k{AQh!{a8T5F(DU2| zaUXJG-Eu45{}Wa|6{vehVn#V({E5Ij*pY0pmW1mbONQj8$KyDlhuT@ZYOIb=Y)5V{PrDkCV4nlF|?0gp3Ohj4*~6@$M3q^AAO?3;!WV zhzMt58#PiNFH!HA)#X*=qVbTWa2E5E5~-q_D5KpTYWWPcVE6E@5Qh z;AJrrJIP9gxkLl(XT`EbElAJfzDimSSo1|#e>xER3EZZT1Gt|L-H2k@BX9^*;}HUf zt#_#kVdby0i%@4YtJXAmKKnw2czADu#);S^L=-4~4>o9oS!+qKEoQ$YixL9*r2u15 zCAoXVaMhd95?p{zz%T_zM?gSvMnH^w^n8#XiX6UuvEIaUsX-vi_*KcB58mq|pxu+H z5rP;@G_FCmcYG~F!eW}H!BHdKM)yY3TgL)g)U{-Abr2mY^A z;*$5t?eTiVJCBE&z1Mr@9!7c)k^E&#yilKPvY84L!Lb)9<^Ux z<3MTjZPE=yUWHfY5QZmzxRkm@3wp9PYkS8w7x6@~%&1WlQ8q(Ri;$fXSJisP{ylti z0c4#OY?Ri+>Al7MuV=V}byFaDB7P$+$~OsrL|K9-F0Id88L%!65m)3D({`ql5OdE$ z7bN0)|2L^TW`6>?KdEAC>~x%%jcbT|X5vPN?4s3pFW5rwUMG-^?6~&ptMadAMY_kU z{lISf`+LU@vIzv2tg%K_IOTIBSY=4CK!cgPi;H9*0zuw(QeG!zNF-p7fo|v-wSosR zzFb;wU4WaPyCRZr^*=8wa6uqhZQ>b9P=-KVD{25|C162(4x^?RF5`h2r09cEzm>X_ zP@GaXKbSlLegFP$uj0s`Wh4j@P8q=onNCMTC9d{xRg3|P9?%#l*UCc>C1`zMf0K!G zXKlVvUT&iWsK2KlBN#-5wIaYa_Pja}%6&O?D}u=jiCNKNZDu0H&K0gLm^>B?xJEI+ ztV`qeAXHVlfM~zD9u8(jfPUPYos?OTTaIMm9$i|j2ElIF#gd_4AK1Tr@bI}+2CMHD zGPr23;|KOkaNG6uT`5aW@#fD3SSLl3pL2^*;#p@&?Bp&N&7CdC9Tg+=Uzi*+T#Z=7 zaOut;X6qrYqK2=c#1~I4JjAKTjo%&md|iy!O)r-E=Rjiqz~{-AO8vj%_v)ANz2*0J z`26=PrT%Sv-Y0Dbzl$anmrN?1zQZh?w`8cLPqRv-}ea}qY?QkO5A&dF)~KF1tNE`&mv|H zT&*kwY}l@zpcl~#V@ub>P;DR;#W4y}c{A8Q7}74Pth_1aC<~hTC#UfZ+>h50FRU*X`t9%_ zA`BGoMqDUL(~qIh%mMIQWy)3!6tw=*{e|0@a#3b{g2D-j&|jk*i6ueu;}JRM+Al=i zwQ#((S(xHrht=uro^1a|t}Zl8>=iKJ1IaUlxjR*u@P||5I=X#XqW;K=`dY4*Pg}j^ z9o6md zIBJ>cMcYc8Rw4IvjOh6=4Hc|JKdgl^7FhaVvVQ@lF)@2Y*$c)0Q=wk9#&zXS{liL) z9P34}jo>g9%0WT;RH@5vW>P^E5w;p2(MA_7Xuk9zw4mP-ATS7|!O7OL91zPYtc{ga zbUfCl_T_@r`-OtOTbw+p|M{L8gG7Iz&|-AZ=M1-06sH!%?KSstia3Y2;?(cYv`G63 zB~zepX`aB|yoE?HD=loBy%V{c=GNcHh@vGWSB);6xa5+Z>vTfWB7VF`zKRl`K+2OB zKboBj&eG&%f8n`*Z|pY>3w%Y%m~}w|lysSOEQ-(zFgSd^w>cUoOqJ#1^_kY^;H<>n zo)G-kd~nN`i;H?^{zksCD2Yd{3;an>-J3)keABvrL3+?r_f*dy)RirUGq|gC72;3a z$9gO)P)+Vno@M{#fbt_P9vLW<$UbY6m-ynK`7GGs_ZT4996g6%Y1pDW#7+YIFy6bE zZvy(kb;Z3+5)kb#JqMhCMAUSw<@upC69JI*C8_KIT+~1@t_TNWjY%&osF5!NT#z=b+(Rt#Mk#lSTha` zy$wt-H$r-yAQ(9&o$y|b5U$l0Yn&}|u5(_pmSO|swd%h~vE!_x$8n>yk7vV0ZN+$Eet3P0kut6%y6pxMI&QuZ3 zRX9Oh=3n9lI!3^CENBUtfUhUU^7l!TM(9`jvp<3$wS;7HUMHYyIN$eG&U8D0Q8nHM zLPaDE(N4x|ykq&5`n^KzMI=G$MX?LYN_wx3&^o*{)moyD#ay}PK_+wJ$3xQzaK z<5PlxxcZd*A(ybky1bT+s@WVU&c{^%Y?=eBtd1HH`<`6RQ|O>v`LRI4iDFQP6@Yye zTU+`845)D!*R$U1*4ya#c`G{@p?`45EtoRoeJ;PBMC8X}J&^#7R{0Lh8u9&H;$;e8YKsi z;kY68TH5h-vHyFP8Z+oohRGl_oJTC0O_V)04F0=?CBWX0TsD-8q{s9Tb{6h4kUG(g zL3!7Ia}2jHJWJQ4*@vWFV&fea&%Psbsn_nfkl1*b#>W~MH+-3)GMSl~-Uf+{_w36C zLueuw8}F$hhcCnul3*ilY`hI^(p)*O0`@JpYjnH|&O)H|Bux_>XtG4W+bH{#>0+|( zq2A*!ApFkKWN*3E+hg_o+j|7b#6CKa&oEO%cw>Tm@fmousY@0xm5HlBmZ9d<9oBA}dsRr#6iTz-Wu%36@0UmW& z;2Fh=Gtd#Y{U*D0;GGwb8-C}-Y$*yER!o5)lZ*w|)vr=#RX2`@IaC{kc*_{N!P*DUYW!!j7oC)hG`&IlC*>3LG z;m{PAWuzJje=8Hef{Dk^%KpD^>$I~MSBfRlenfe`L%=IEmXVOsn()eSmbPr+?goXfZ?BZw`3?GL(ORRRACizA>!F) zs0ig)qK7+G zJgeOk-OlMS9$|Zpw8KPHG7&{0>X-XoF>mHh+D?DsJs~8bSjhGX?Pdo?ksi*s?5?r& zYs7j20V*&{6??#_y5WVSPJ7EAo!M3Ifr?aIH^hJ9khY&WHbgu3w4D*QnDXlWFab z+7B{wj;LPba49k2F1WLY)2Z9`3|WUvPen&NcEjW7cV>wiGK|rgZq)wr5IFDt< zjp`HwPG)mpNbFfM*a9fF9Zy~1JjS)D&(-jMD(u-!=x@d#Us5PoSdmZhu1ytw^!5R# zL~}xxd57Jn{S&^tmO2u*GdAt^rS3~^eUUAJml6BZ?#txF!7pzCG+Fi1iuF0&%Yr5R zqzYp`TIJ^U^{tS-3@pp>>NQLz%yLx>RN%CNd}I{V&#egJ%hP&44-!P;*BYJt;3e5ydJ2rIY(n2YRb z(xv@U?eko*L6w80%v6zjfM-?)Q^y)N)$srpg`hlYf9D$psZK{E^}P$+b))gRaovV! z;+i(bZ~IvVE;$RSS)!IsCnOpjq?o#*rmjMe4TZSowLJiVHr)szAU&%QL;O1Yw19^5 zf(Q6FP2h*b9+)6@{iS%vYzwPwYiiBT^xsRnxQma7y;2X_#*)-A_Mc(a*z!Vf$caa% z!29kb&3?kXoyc3{N{{pYaJiBg6*v`HcWV>rd4zkAtDVi6RYFo$a^2(PN`hZxBsQMj z2R2>Aj8pK*_aa?xB#%EUBG^V+EyB$xB=PCi#@g%?-Rs=ZTdPmVc|=hBJ5y;$(%B}+ zLXC9v~dCkj(J@HxT0Kfzyd^$HULM{5|gvhXjo>5hGn7)R(7I- zDfuMaY^V+B*Ag?l$Gr!hX_TN|$!`+CEp9;UatFs@L7bs-NxgncJn}>6`wv(zCeLS8 z)TPfaN`5MhF~uj0{%|~X&Wc!N5xY3oagJ1;^lmn()T?-QA$p@P2UAZUrmoTY)2{`D zk=6Kt#IJasYj>f)FccN^OwP7NzP<(Eb^2UHopX5@UNAf4>leQtSq^hIVbUPh=COAB z30N24TmYqzo4BSL_!>e@+&4Tzt%2?3Kam+kRG>Gd?2&wrF<`;eF|41;``!Y_?W=Cm z2oY>FfdM#~Y4BiMj|an`_~f_t6V()s2bim@F9z%0@%82 zH!=`G%kwjkfJ={y>_=4Fp;~=8^%OPNz0>mo6BTHY21a@YsGPgfESvi>-axxMYI*Jg zl7f)BGRn<$Z}+_Fh=gR8Vacn_q)JRUj~Sy19{qemM0F)*hfbJG%}_ni*1ZJV-C=+H z1l^M*mz!k_cJC8@R&^6X^64xRoGXD_7Vb3hGD0KtIerf}3(|G*q|C25%=IsooGS3( zUYF2(&|NNnMi46IE7Kf&C`jno?h)swqBycs#Xv*7g%eH%?yI~2hVl{n-LI%Id?$!Q zJf*N`ZIUy)i_yePg>}z(ekD`$KzR$woFN7?Y<)pvE^V*>mEybR{4*;7w=m5pt8X}E zGmL(8nLB$gvfdSTU6%2M%;D?3O_t~9!23zdXZzk$Vb~c=DiIRIoiCK|0#?G$CITB% z^Sr(KKR^XB0#bEn!A){Bwb<+i&KW=FHi{*O!*&Mr!tsx$LncbD~|z zmLU0_NB-iwK|Ci_Kx-?x39U>!_=<@vfu6o{W>t`PUw5l-A9 z9S|zV+*MmwYNQ4umHI3~s&xX{eOm?59<{%6Be`Es)-zkr_f}brzd($bJkiAK7&BkL zC~{=|z}Q@Ou;=N#_b~(Rw~zhm=%_ibR~Vrc=gQTzVdP%IA#r+3(4U&^i+yEYIA0BRY`N=R_S1&UFES-kM|-wM5!Nt6?vEO(3@xM)0c zX?X_IC|Q)El9hvEYSJ2*W0lHOC|5>kb1ws36eap z&JFIBb6n2WjXvhep$6TQ)TK^IIWmcZ(F==YKz`t+!_*k*c9SEL+wP`dLedmwfIcTj zm!~P!Zhyf|OD;E}=p~LQdPOdw&MJlGCu@acJDYI{M6Gx1AF@zXupv5Fn?7R zDl_Km`=maaxsKSsa%)Ilc$kdzJGqokNDO{&rn%g@m>YL}eR7wEHN9qU`tK8b1nL-U zi`ozTk8@y*wA$Uw%raN2E;6 zB>_|>*qJ%_lHxehT?`9V3wq&F} zW5l2PH2#!?g^o6b$Pt8O9|yT|``o%B1$lVD^AW4`9I4843agxIs!ac(_#;;N z__8BFSyfo&Z${q(7h0hFq_n+6AFtsxD82v<;Vf=ygEXsKawFV3M zoLFb6aWy^!Vi34$iZUmW#J387rw;y?B;HY^K&T`BIVDajQBXa|wvN})8?t+juq&rW zi70R@!a!>YzCm6&H97G+M2_S%DDgWA8cY^8$Szy&G&-VBUO1;VU;hu=XBiv5ut27Qk4ybRc72OOAzNb zvB{+H9>c^_wAU#@=XnwV>M-{UWv5tCPvYez{0>nE!O!d;^((=_&!SvcNHCIqxVVEg z@(Crw@C-xWBkMiloq&5p-&Nor(KgU{>VwzUFHt;)IRtr<6;k`JrS`c}yIQY5YPZsY z>}h22lBLO$xKXmqCW{^#0piqr7C%{lIU!k^$b!UM#gio_i^ck)A{<8A(|bJJkz!{! z*09E`ks&!da4=6@COK~NA`Azdda0eqIs`}%K`jZWJ3n0oES)H|o3-t!9T75M1r-I7Oq zKHQETTaZWKqYqo%JnoRb4MlPLpzt*mz_*D5k{OWKpavo$t+twQ+#oi}oN6RN{@_7E$D;cH8kF6hUs(x?O{;y$yaeK>~Aldp%Q+3vtD%07@j`!U+k{od=j!{&Xp{RsF|q4?vN>|FD<;tw*b_Phit+uUJq z!um#zB{D}9sbwI3II)rH5>qK2;|TJDUR^h19Ubx!pJkxM)l&txh%PF9eNh?1149?d zmqtVpKgn>Sp|IArBh^Z_3hdD_0LsapfW$BcKzRga>=0HK1Bp8x8@VJNCL~*1edb% z30R1#NvMdw+Uzgp6JC`Bsxon#R^}5PQHtUQPi}A%k{j#ZCW1q=2%fq^uq;ING?KXE zb6F-?mxiu+M2rWrXK7Af-+KaB#1+5&?G(2weSeSy&CWwCp1Cw+zokqb_dth+QfMKh zKhgs7pM0^~rC3X7_<`c2FR@t0@C?RqNEI{>l=%9#k)8<3`+9kgC8812upjSIqRHkE zcW9YT>WK~=8zkAC^^ilypnEgag2%y({~&m;h%t_dIxnu}MUD;;t=$#(P0Ry)3&R<+ z4+-Kz3Qe$h^bW#Lqn-_NzI)^=xt5ckmlbU-4Mor_zkQDY3{gg!gv?$s+~&ldxWK`h zr>|6eV#Sr?ZXWTrJ5arL8c^Xs=oM%Kt`{bB(UIY^N;wI5^UFX0Hwe;pa&CeaFmyW7 zjOwRk81I(0#WNX5s#u?hgW3gxo^bWhG|3>yCnmziHsSJ}rpr)&CnC2N0BJB^KO5J8u*?55TSq4Y_lZfsipW@Y$Wf<#gQ{uYLC!NM(Z)yB(@Z`b-@3i2Yw5 z(>c!%7XC&crmVn-eey}pa3O0Fp_lmgYNc)VznXHg#J=^e#0eV?<%V`pMoZ#k#q5Z* z-CHgcLs*3h>#xa1p%H*`l4gn97yrgZTnDJQJ<+MWD;T#Q{VDr-)GnK#aAIq2TkocR zO*iB;P^iRNS}pz!(>VjMHmyi?dS^AZViVB6s>jM9oClh#LCd0{H(<`4^=k{CzR3f3 z@uIxMAls0bO1C$-1}_a@&g~Eqf9^eQeq!FFHbZUp$cee$-y{{q2)!(^-%NbdnTN$U zy)0Z z5Ph-|4A&_7mGTa|>F1IH%adBcYY;+aI)4iP*`?olw|BqLN@&iw;$t-yf0mjZyYbQ$A%p;aumiq75s z1rMB@1O+{YxIL+_Q%rC=1F*6Q-ol!t|Qg zgm!mWD^b1N9+tBt$AuWy0x!lHa`EO~&9|^?jWEkA(0{_B4bMkUHJvjs<~o&RX~no` zk0<^2l1x)Y>LP1%eccC1pGbk6O;!X z%2oFw(Pp*eWK;6V|J9PLbw((&q(VI4u6aP99oSwgv7C!=+Yz>4Vm*@+$0L+MvaV+VgUHs74oEEDbK5xe&?IU=apM|M_Ywjacr+5Xv5OmC=tWl}dJCPcQX<42@+70oo39^r6K};g`!w;? zT1L2!h#ln;F{TjwY9(+j%hkHj6Hx<_HuRct9N2K;uFhpTB_a{4#l9q4=BP^}_Eb07 zoXoaw90iOLEKV;h$La(1rhNyz4utB`x@5R=^XC}ZIVA9+IY#+! zn1JOT`${d9dPvg6lHe6CuMnkW{hgWmyST%x|4Fgh!ek12LWXFToOYZc^7X$Wd>92e zED$%J3Fb>Y=XKxm-SAmKIDvx-&)kI^SE9D8WfJ_5*&AiY!}2S`=;MXLS=0(#%U8Yl zys<`bBb|sjhT`YSAd|p?UTb;AV<})w1h?*-q03pX@(B9+53&B3NURkWnaSL^gZd9x z4^lzMe(FnDu^hCb^>oIcSyOLLXVx>;r^S1a`xh{TzVtfn46MEvn1*iE)zTnNsy9j9 z64R-FFP*Cw>}0uA@vK^5I=0w%!#8B+8^olnfo?Tea}A;o{SSza=m=(yqN$IA1e1_g z1gtJUuvA%B`|IA7Nc7+gpmsmR;SQ@R|qBLc4o>HY=U{OI_j$uuhD5%w82{B#m^5vtg6t}f0uG`ubm(q!|(6?v0JShJ8uDx-zEPLEP?h^Vh8A~&ezHJxDAg*a( z1>6Q4bh(}jESegmGlYB+`-T$6r;KR|n~)sh@ve3P4e9$mdNa7t(^}s)q~vNOFw`Qn zrHMZA1W8Vo$Jnr>vkt6MD0T= zGDA;N&u^dQ$K-@|Dj3*s)~kyrY3?8Q_1_P$*aW_74W`EJ(2!-Hl&g^y2#dVg_p5T?9UuSB$flv zYBY_V=1Tdp!KO-yF$yMy5nG7p1!?wJx2`4Zsc{4n2-tKREgEg|ORO)HD&6I{;~E3t zXa4wJ{sMY2WYKXTK%Cwpz{C)XsUD13Y%pfJi_sr^!Hl$Ewct8;o4gps^7YGzm>@!d zEUtwA2&*wXV-h17$XeXv>l107&X=!$E00Xn3?^!-0la$>Gqw2&Fl_^qLt9Kur%DfH zY7{ks)+SF@RAWlTeWTWaiu5Ms6?5Yq9qTkgk|6)DbHS|9uuQKuIuvY^j?qd_4PxzMI z!ngQS6|wFz2ZDQakX;DU4`4O5q@MfU#$m6;-SnfQO(DxG*Dd<48|TASBfNdzIUc{& z6l(3tG=-?GT(#j+5WeOF=!$T@+&Jfz8|TVQ%r*jj1nWLX{U1{)kwTh6U9Fvz1~!64 zX`5@Rt!Kf2ckcqVxVw#dE3ipo$HUoO1I)3(OfjHd-z3(!8rKJdk^W1uUXI$cuclxV zYus~q)pEgKaz0o#)9LXbQ$-zYQ@0hn75VxrwVG`2(W(LAYv=aX`ucw)XdDXy>{0=i zEpdTo?i$db12j03@`46}!oI$zCkw_`$>Uymq*MG%&zTJJ;5!=Ol6(7e)1Bi;sz%eM zJ86E>mgLfAlE&d^O>l4s7ZYBx-PQeG}WSsNZ;n4nSnhWijAAHR|W zWhhcVwxX!qs;&EP6Z7yO#5Rx|pWgW%YY(&1GuUjH85y#GzzXjOewpFwzL zU1vYTKCI2>zm^R>1=S0X|YFpdJK>O4y%Fw87p9b!2_2>|5!Fgi7)C$?XGh zV8hDlge0L?Y_~8fk@FVKh}eHe zEvj6A)Yv;qHdP5=@H3Xf`9hwl(A!-1X3wi;bG;DK#;SrpVeJGs7dYMW^?x36kEwD9 z(}1X<{JMgM5MRnR5E5j_-UJIupDUr)L&$89x`^@c;;6k4&fX0A`HY6>dgTi1fON0> zSX?F~fSzpKjMPdmuzdz(Vo*^4i}CKK zO*vY(Cv`5k;m@9*8ti2qtBpc1#1HwAVllT^vr6M!GmMIUj^_W%| z3HA}#dW)EBZ`;TGgwi-SYo(~T$8%S;o$ zf$xTs070n1MZz>4k)AT(oX&jK?kG__vmh^ck=I5O#F{L%Z9N!H;r(?2vzP0J7t!XoTG$X4p)eyBeX_MZ;COt<;tyJj@biN-e zsoC1oM%`aOdfg2{YjbtfUe6JOPSov|DfRWAK+(CIA?R^Rf11*yIo*@Z)BbaUvykKs z5q<|t7yyHHJO(-7`=19)PLEOhDMNBOHp;3d7SrzD(?|)q2!2m{)P9WIQTvDFRP1J! zTIvq<{N7qp0rG^bUC;o?jZ6~hEa;i^P7j8V%&@OdE$HO>uO|g;Axyp-l()rhxqK@F zQVX~1QZ+$^tJM$>!U@2sOIg>)i#_S-3aO~=oDofJ5LC*d7^TrXwufGK9rTs`~KYV>$U?2oX z`f{2>MLpk?!j-wgPB(<4O6-^C1THqL|BtzMfseAf_Wlzxz<_}nG+@xEQKLqQ8YOCC zqJ~=%0mCFAGboa1MIBSBSZ9=0Kx`6mc!X+?ZEa64`qsAg)t=hcdc0H%1_@rOXm5C| zm-cwRHWy~ND8IUo#^5raE= zU#3`mUJhGxc&35xiC0HRU8%C zdc|_WG*hMn;G)E0`7JLJHa_7fBn8`ZLO#**T)WX6yccUS4Gv?lgdOJFx#oFOn4P&2O`q6C0t@+w#tP0lU>AL^eE zw|HcDu=5@yP^m|u%hbF^`~=W50GtFtcCT&8klPX~q5hw~%d;q9b>~!vHXSW1&2#Mt zy^AsYeT48AJD&O@Gd?xUQzH@F>1=nmnmE6}M?8VjbHES01$5u{;dppQHEP5=qxZqe z`U+7Fl)RPrNn9zKGs&St&VowZTPli;nhM>Tx}-bVt{rFt;NK(kKjSvsCF(gJtg^I3 zsCC-uUQ3D|xD0cQdQR3mOGR6U8T;1fQDFgT=tp`hR$>*;GIJ|oZ)y3_!Z!4I9ua}B z*Q2PgvjRh_`HGq%z^gp4Ka&G?MF7+YEOGZ2o1P1@VsK3=^vzZxsj;|v?ZOH+3P9<(ak4@YM z)R`8;w~ftUI9cwSl4mXhE03s)MI|*cX@lE_a!}kft z2Ew&m*Y7{^`PEYc;axR>@DKUZ^ZwsyCj`RZJ24Pm%iotyw)cPOJ(INtC_a$sW-pH( z(O|dpiBsy5jfrZv{UxB@?K=7(*=Qc{k>LZ8BE4Isu1-X@pzt|s8teB`7!3j3dlqZR z^^(Mh#T~s*7N(MoEDO$ogtz?~86yjFrPe<*Zb0P%0 z6C!;$ke7vSS`78(}Vo;wXMuU{6c5}fqhT% z#eL%6%q)+2(GX(AvAJB7ONiHF5f*^m%!)ZuB*1wuzzZ0SKme`D?Td$@F!$Iu&B{@o zp)QXB+HAiY^bw3d@sZRufqumR%NpxnP8{4@&siZUbDc5TZa295WqUNhd64-$*!u>h zl`&6+`pnWH7nD$+cF;_~LY=%sx%8+Sd^Jb@(LmO3uj(P7_=pLExjWO2;7I{92s1 z5@X#*QA)DMGP0nW$xh7gh;6*Hg0acJ5oPw!QCnMSTk{*cGOsb5A>K)D$t{Irh9$2` z+%4EZGz&;z>RDoO>nAZh$ZORYV#c~)p5RLDImWuc%J&MsACGs8O>Q`q^oJ&;;TO); z&A*q@kda#>aSnoe$w!A;5ypS)ZSw5_i`-t6F@C(^gy6v7yaFr)Afh^^jp?-%gky~e zQ-;2w180{vP}_h6BlVU}4Wzic%XwTz3o^(xl}n{AWm`+Qa#Ok6O*A1-Xx!As)C!~A z4vEi@5ad=|_IQU|D99LfuyVSYm>`=>Jw(`?HwV8OG?5O5twUYCC-JC$8y3;!r*yi5Lrq321vXzHkWt%P@ z$$tr3GA&L{tzFT*G+Bv z8F!UwIn>u@UdFhpypzA~Z7nNwKlLBb5wDCvdwSgD%V0ghp55>jI=}Zk@21G?b*HP* zeG~yzw*t-N@l6dx*7|LJTASacCY+uWUI9y#EmcOo+z zC1_u@(e5ueEj1WrCcyM7OtxY>k!|kWlvg_`vE6;(izp0TaS%;6)R{-%c1D%#1TT~z zb()l7DRHZw535vq&}rq8JKJ0-RzCYR2ia|yEEL<^vn@DCMWtAFu3paGbi&Lxz29V& z-WB@#V;dLmKkWR`yJi752=K>`)u>5A;S!4ij*RD&s8aMB5*NE67!p5>_eQK!`_>h0 zQB(|1F>!zLj-e_LHQB7Z$?;|(Cq>{>0`YZdw%c3rl?{I&1A+D)#QCcJFnMU_feJG6 zkfekF0b;>S-Pnlx<=x{v;eFDG80j^cJH|<|lYFVX3AmsF4k-584E0s2K_a28cX3nZ zwG;EBppVbomWieZLQ1#1a6kUrI|r>2ns@;@4>6D&Al?y z*Civuonx6h9u)US@}QVxpkVp(p*U1fEEW`dIIY=(^JH~KGR_H2&`Y4 zxpTbjYTKd_T^($?l6GnEp8Vv{HiqwY^8x4(TJJKEl%U9g3O({wwvye-Q0)P zF*u%cVB1Zo?*e+E5OvhmJTsdqs*$6?C~U@3f2eP*dIz0~V{doA_E#UBXXT@_H*@1? z+xhP`JGtmQ&2+BV^`YOJ%{a`3|D2i!hhIBSlzT>|mBtY`JTh~~YyWd2+y4y{GdNyl zX@@?SZU1LrR>)KRX6paG>w!<63~g%i!|;EWy*pQT4Tl`0es+p1UPQTvEUus*3@qjWCJd4|fMEoDgeFgddpKhLhPwG=Q@v&wXM zKN}UA+S{P$T8tkdVf#%73`c9iMsYq!Bav=3o4t4%DdtZtZuI34IiKe482sz+W0x zzCZKYnh^kgEpz80OCIlQLUPGm89D~XBN;4@p+Az&?>6CW7-nOhk)Jo5%}Y7*(?qu) z4yBIHg6~TfFxu6IhNovhs2(xe;XnJM^|1FZD@VoN-D(e(wxznC$h>uYK1<)5xltmG z1q;qMFg}i)iY_$<=5`y*taD*Z7@;`aZj_lsPwh_k2&v7%#JA zdAwGmJtk+g%bJBF^)G#-lZ+mWJ}Zn8uls@sZ3SYdiy$Fwu0y< z7vu?|-P&UwB^EG(=nqXim@kN4)f1IDkPYNK(^QrfL{I%(f{4wi6+~ruf=Cr%CB}wM z*T9#Wa1|5#f*qx;BjRqtrsfHy8F~VFE7O%}AE6Y&uxbP?9z=-G`vjAkq`@IgNu;Vf z)lt=zS|a%q&d!c8i9(|H@Iu6W;Vq9iyaT=boZJs*@Aj!p31Wo$*VLC`;1|=Y4dU01$6**i+jrnaoZT}ZF_7LQ_C zJZN~N#iIm^$BHPu%5U0QJf5BFQKPkZ6c4D{&S!sOE;2^X$Wh|#nYo$R-y`DI#=(egumgkF$0tdUCcsVmAt>+j@e=>B!J zZ8DYgm-C^?W|E3!rb(?SHH8rr9dTOSywc>!9qtlH)e4$8;o$H~kwADkf4}DMS^gg3Z##dUEvBfjFyLEa z3Jb?l|H4?WWTC*}x>^+#UIg}HuvcO;3w4_P8^L+P+5)>{X>e8}#UqxiCPw|uJ#aW+3IkUX?r7O~O}_d_Ps3{)$iRlZU& zsgO$9i~+0MfBSG6zx^+^@y&??*u4du-6myQI5oRmlWz_(N!tUSmKlaHaogID5#UK` zv$t)2YnA>W0?cG`@)OjVk^?F@z^0hwaj{V%o7PmJunV*g@(1$m2I@Ax#$OX7h{=34u74ID4QtHW zManeREv=qy?wOgE7mrxCDl&IY?{wGa_xU-x$XPiPmGRB$FL%|Ps{SVR6cVcV5K|1k z%SEECrOqrVn#gZb(XrGKlvVEKdeXEah?pa2D>aK;Un;A3c>H#?-IgvyBWE_7y_%W5bF`V=1^Z=k9{l`% zR-d^QOKez`waWg={o5*Kb?bD0cCNqb9THzhTk+`(10Hf-LMQvnS&*`csVoA1e6eNO9MG1C9qb~)Qo>G6^wyaW52_2Mr#EHsNshf9lx;d3@cx_~n zTEW=S8F5ehrMIlEAqAScz%DUhu1Ue45--hZ&v_~RFHTDp)G*nc-!)d5U&&qGs><*U zTD^6~=I0WFGOcpvFG!v*f-#A~o`AFtbXph=5psVfLXH@!RT%1;Q>!ei{+5o#vpN5d ziBHO~s`6;Oe_sx(QWWh?ExsM0KB7}$u?lS=r8G(dwN-xJd)?>T*a*ITHFM_-yR08- zWJO%E!Dq}jkUwB@NU;MEmiX20d+crftA<`20+Rtf0F|ZYVVG5c=yGB;p|Y{5%L3HPHrYGLC>J!}psG0L#8SzJ zQqD|d7rngH{jNk5Wt`@jSl!LZgFE88MWP`9^*L)!gPEwMLg~NC<8B^|Lq`hdj8{Ka zgrc{SJu!31sXsW<)h)Vuo_AH*#-pWLigO2KhGXon^F&pweM?b zwKRndmLR*t;m&+cNn_)UfL4OO&8ynw7~V$h8z8#j3P#GaElhy8_XzJt-7tsgZRPYF z#+`+lX7)Nzz3ja`+!N;grhC$XyPeW&uilmBxvx&gDBbGS1 z6KVCtANLyNuekohhc!TeTRG8HRcj$Cbec5L{2rTSH%Ix74zG{0<)8~ z;FdaCYify5PepHpvyEVX>x1Nt#tYcfoYs~$cg)DHoTgev3LW2DsH2!KJZq@C?(&MY z(_`+fzvnOppxmb(Gi#iWo#p`VoXMo~aawO}N#cl3x24|D23MvI7AQVZaftJa6_pkX zq$u`fW*#TA!#Hgba=M|w1{#-Y*VLH0yn#ZMPU}KWJy4H1AV?9ix@jE^nZvL8?WxNb zCyP?e#mqlP90Tz(;X|mPEOM@09ce@O>3@p0tY~vuS6ac?-b3&iY2K;l`7c%|+7ptc-OC2DuXy3z z=3(0kA=&fn3p|)RIKKDq>R@R5z|{^+=n2$TwKc~mYhl_dYVRoo2HURtr|%mu7~2uf z4dsw2Q7%np(H*pqQJ)}#4ljOuvrcmEHF($s9v-lGs7gf^!-K&#uW3I@z0mY$7ls1& zI@90WuAD(|1VwufnD%f!%eJ?2F*024uNKxeGB)!6m?&j43;gy@wD4z7TfxVFuD!y% z_FlQi;3K!ayx?~5&7#Gkkl4>@L{&fwX$<7YzwdLu>|^eik9vP9D;n+N#Zsv>xP?lC zyG2iW?U&g5lQ2=ppFQ+N@3s$L_I`E#eeLvuOgP73>fjQpN$lx{V|Qz@8)k8BDra$R zjkz;dXo*_Gn!%GW?OvIGL*fHuvqwx5+^vP#x^W54+>bm%n2fnu_A18GDc%23}I%te&qP@nM- z74V@xd5DU+z3Og_?Ak+pm+E3`AlA{@HoQaQ!r_8E$GW;0$A%{M55&ID?b1_~&gB)D z4A}XiD%3ce#P>bQN>Ys#p#qIsZhTcX+@E>aT7nx{Q+2ZD!JQh~?dWo}Ss_IRyx<9O zc||H(DfBF(UQ|`8wL0}BHHmjlcz`9KwUX5x%XLAjwZc8(H)I8uD>r%u<%k2Tne%W@ zAmV<71Ug9Y=L;p%!U#`LLCT2VPmu#qfR+3ank>L}LEaswl^odNRIFGn$rZFEOggsI zqVQmIrKXGem@HpSm0*GM=lvbrM<4p3`sE6e{JOV!FX9eT;n-=d_A55nAt^kGO@x{) zBgHR+ESKzVtx83!Q#WW>D$b~p`E#pJ&!0o*o!ykz6_boNC&;^#GQ>cc_5YQJm1xnUUm!sN={NA>iWj%3+jqd^Y0BX0T@?TLbevq%SoPYf&m3%UZ` z=ty{hp=(1m5qER;Mq*k#d@g4do1Lc~x|H|a#Cv89%xS4u_D9~JAt`yJ6E#FVo}%j@ zrO|Hj>UyuM9zz^sbB(j85r?m^$u)T3ZF@EK%==+rKa3XrlgGWqP*c!67fr*gg#+=o zAw&a3Tu{8_o#x_!q2Htj%yOQcB`ZIYg#*OML*s#=Pu~2&aLxpJ@*&hWA9Ps!;xA5l zmr(yk8szm#n6-kLQ&>b9h%aT43wDz1HsXFB^b2#8WJn(C+~Ais{eTzan?V=I`lK4! z=KjP36bgb$8Z}|R=8kmZXY_~R>^<9JE{iAYru zvSmO>#{Sk|M|*^w>1CU;P|fh6O7s}5V7b#MN1$bB1)cGm0MTj%rg;NbayHBTnWMr( zy}NOF@Q9q_iw#*kWTvCrD$S-f567n7Ec*fWLnxrCj$^Bk7zVi5z^NPdB z-<{*MX+We(S|8r~;TUWyUCZOu+?~03<`WNp5nh`)vj#gM@c)s$flurM1FU)x20zoP( zC^|#WU(-E2HqcL;r))j z@*c$1gXI z;vlu%$+GEbKAVR6p4VGujo+?sVpo4B3(HEXu*^d}S(Xj;e}gCG=JX}KF`6jpaNi}| z&B)S>C`opJT??EiLO=sj4dB|`qc&uL`>GEdp0e6m%(OD3YE&5_kx;x;%xb55Atw=< zZpkkZY5wXa|5>A-h5Fcb0eiXh*<%ddCa;nP?Edqw&62{FzA2cz;K7Bo?H-7C61c~c zE8^BK;XP!qyiV2z6IWq60mjJ@_vBw_XNvyNKx|X9aZZ+}+oDS6h84^e5AE;VphYl} zYDPa=Y*td!GsT=+T43puEH00;9$`mD+-E038B+XOc#db(s}w&2)aS6y`&6A_$L#pN zWyXh^mpINE-;cC?VLFzvaB5^@(~5|@@e+^rf>t^h3lN(|Nkj5XG{6cIQ!Th@mC_ve zs^aU02T|)nfs_=$*DLXvb!(8ZSBPOv5sfzY0s4a0P{cPozi_B* z7GH6Garn_Af!O^3ETu#7MqTL9g?i=^E>R2x0OiQR&Oxqfl-6?G;a>P0L!jfJxcF()s?A^5IUH?nk)iN>k1HGSs4;Iznz7g$c z+t|FKJu%kNrs(oeKc(pT7Pun|Af?5!dM_TNLVo zEQ&*Hr`p7LCla8+uS&Zts4`I{I&d=;h9r(F+uSF#NGxInEQQ7wE$4yac00%5P6yxl zbU?DLicsHlwh=jcvTW$#0pcn8p8;DEkxHhyt`;O~w@@1a$@l5Y5|Dg1U)HS>l2uA& z-6|pZ%Y56=GPaKvZsMzB(EJJKUxi2sZ6DQghMC{6#8`=GYNz591|7L~cV zxkjfO=h6x9l(ji;`_PisFEPt$mb5zEDDH9{mkhFp8I(HF(qR;&SWUF8T`E###QhVy z&YYR`w3yLn6+DFc=D;G^lOc05!mKizj|ytTl5(E?^2Pj;FM}03XanpL;`cFp=cz}Z zumk)S$hXw#tgO;*`+8m1j?;kM8f@!u4|~S9DU+J2qTWSJMo2forrr(sw+QCGTFHC1 zrRT^PeXBb8#iPgBPR`T}uP=vS44Do#7jwNJ)E|TRa)gSC3jr?{TE;**Bo@^Be#Rxh zSAx)sEwzE!a(H_tPgWp%I@;Y~lSLIgr{)zW=Gb`p7R~@t@e+jdJTgz|{OXOgQU1{r z%b66mAxr#YIbP$b!~~u5v%-)PlB1pONo!GZnIoPGSe?5lB z4rh40^1aKXnn{oz07Bp@TH?(g8T~%2H@KCvFmi?QCpuUa@aBCfL*Zd2SYeMaaM>%;q|&oIFVmfp^( zn5iW%6kI2syd6hRZgA ziB(eJ!PgC$3^p5+6i6$Npf(?H2Lf{uUd$Nt+hDvJ_axlvlxU#LBr_|aK_1O#Y+tiD znkHfLZo~xUBlsD^Lb4boY$Gxn>6D&`il=DGuruVWmnSGE8|#C7G9kk(bH*?^jYM@1 z4nv~#&#f7ENh(^K4qTFIt&PUq`)^bFRQ!afA+aVv@z&&c_hgz*k98NYG3S<}wF=x- zA}@?U0f6xa17vLhZl=2wsTFgtH3$BZs^HCNhV`gv$z#^7 zD*ROP@O7)ktVkX#iW$ZUY+B0b+G`?Eik)%TwtKgE<(ao2)ogc*f=WBSb{Q!2 zlmg|klU!7N=5jQWW{jO(+y`fb%UaaJqe()9qwd8CUX(@1jqk83*b|z(LH8aot^EM} z1vU;rT+!q-%49NH<5ND7w_{CqO?Z**W@d~DDH<0sM&>u-Ze^d7ft_>_+t6y0|B;@< zGiUJ(Xs8t$N(~zJH)tp}Xc#9nBsfN=1leEf(2G43hiC#Xy-gk44?Pza-McUc}Z5<3TU+h3L>!nue=Oo%IPz z>nvo9rhu>jEc~S@bJ_k$aXXRJBtZ|mb+)mD*mBTZG#QzmyZQS-as`L@ZP z{LY z8|D>^%mLo}e#4qsdb+_ped>eixc-H;r5ggrj(GN5uoRpi%fA0R$XF(MU)f?J@EQ<)cSDZ~yeWI^^55 z8)$qbbH-p~7KcaXn)|g!5S!*Jg7R#8F}K0qH)?P>d7EL)B{B}<5#{SpEt+c3pe`_a zaj~<*`4^p>X?-@`YM205&b>*%{l>oZX+YPk~hI z7Nmpy(>dj-7F-(l*@e8GK1IMV`^T~@ERG1EZU6$%^Of(kA_*Y=`3cZWb zqQR9CHczrA$QrIRTnlxc-Gi zxE^IaPn$A%q!W{~RcazqV52n`nV2N}gS z{Yi^bX2|_13!0%vHoJb~LDM*+^WXa}@1SC_t5`B);R``dc&j)F+03$@O>K zU%e<}wXA5x1Gdpl?8_K*2p4JNaN>*iB05yQtP&r19V)*20|t$<8m1D&Lv?pc#Y8)r zQ^9~gLaj7dDNc+dzPmg*5nc6n98(|}_+1SmNlI?^H!JW%Sc5bU^gbR?H3raH!B=+x z>#&)4n?4TMut{(;tOC5%=`pE7F3EB}p$^|**{&;`1=wFvh8Cd8V~t#Zl8mylK+0B* zHIf>3jH?>;apM9Mj(Y0TI}1E(SVWK9A! z42I#Kr-~fWNOHbgzyR6%7eVV8Yjj5-E|lk3qe1)N9BYv7y@xrKhCbNq8>G#QxWE3k zK^2`Ss(;F^-V*Q~NCwe-YG<%V)h9PuY7(C{7A{Imf(0&>Gu{}YZh5$$!!#S ziMfY8?5*+4bw@Bpaj!G%V?v$`WyvbskD_k#Wf|N*g_Mm)7{SaZoZnbm+km?s>Vc;E z-z0HuqJnJr#m8`t4yh)Pox?uTWudloMG@Qe)S$);$sZv@KRdD&o>#OTt z`p@gD4NE<_YL9dAw|4UMRquQYAu+e2m~0ji?6-2msF@2tMafeZWYHb`XEWWLXkn&w zpUAy+kAKS>p%>2)>YEHjIP+?>Mp0XceeDwVTv4+amarfzL*5Q^_Qq<8+4h_og&=g+ zq-IlrwIfg38FFRJy~^-m_LxzS(A_lO&u zC3RGAnPhzKjXV!IrRI1~JN;@|3VvD9Z|ZlfK51i3tuv?cx!0p4PQS-gEaBzk6d%wa zfSLfXl*&jIsGW{V2vc!1WzMtCBLbo5J)@du)$)zz>h_fR>}KD*pt5V}w!pCkxF!=) z#k(c#kq-C$n8yo=V!yxJevO)Q4yqnHOJY5JwY#T0WQWkNM!Oo9rpyp%N#exL#%w>O z0?t{mJPp96KmQ7dWF}@88-!3yo?H9ONQSy|&P&;yOB<9URViEf2K?ZfHe~@an3HgB-K)z9(T!LBi^JL{{Rw@(wZ~7ih3yk2Us|s z;32R-w2Auz)H>b2>|Bk;D34Xq;nel!ZQgf(2$}O<&nQI< zO;9WfF4~}b4+~;%AAFV>1N$_J?36uZ%oqQ*bWPwAr;PzbYO{bJAcqcA#y0mF+bgHB zg8TqGpz4U*ow=R?{Xitc0ln7&dMq)??YiB7z>C0sQs!wNcs_l8ZqydTeQS=MXKSAb zvkC-~6T4WU0z-qH`^?R|vlS1acmD0mdZ)xYXl43Tj_8i6Q(4F-0B$0n+*GMax_}zO z6jN`#{;^QsTf)i03S8&LB+;mAQ;~+j#>Beo0^z~NRn@(La4NETu+cc>rVpY?a(D6u zliQfoBMsOU!l{-O4~F~nIXBhP@?bbnNGM-px9-O`n~%V&UHTO)Fu#h+%}4n53w5!i z;1l||pz$JolwM#y$~Q09uZrqR^ilSz`KY}8QvIsh5!XlctLCF-^JV(gxEWXn8<*d_ zULOm?H|Qg>!+b1`j4cGXC8?J4*%k^BKECk@SOL$M8$>ZVuPLAcs{;h{w-*k6;`-m2 zH(M8vJiqQKbf3V{BI5qo1_@*}J3FZczfY)+G*n$s*TT82^!HRtJk=6NwFFZw_;mx) z1qwSwShiH8TFO!_m8q7-JoI_E8Fj?DGcedVR}+vKe~U%YN1}llg^3F?V7u?9G#Y|e zhfUZ;7Jdl?1OM$l{J@+G@bXm4!aSJ&fw}f3`5zdTH?7|2ykYG-t^15;KQkVQz07!= zmK6_a(DhG-`b5JyBr68UneUdxc?0_YjfV4QbQFrVG@Od8$V{9kLo{Ex<0Il6gWdl# zI(nzXpe8CufZ|n)ju(U+oFRxK!gu^Zy=pQ!eS4*6o zo?gTfEgfwOc#{F@L49)kVBFoBD|G6XTENbft(DH74vD|5-NGwqPn~GogYNk-2HPN8 z;;yGOW4=TdQrUB-G_^tZK=TkT1~WG=9pJScsfnrifzY5q&vYrI-4=h( zJKIxJQf+}$TQJpDoWk9_t%N9dp)f^t2CShT?pBoy0tIl)*Rc?BWtHj4!rXY3=>utO zQNi_KW57NnU$ODsAUHr)ueJa>lj4QXCTNWB$z9x;#hnp2#WB96J@{bo(SJT)z|}1$f=)&!kp!iecRX39qnJ_ zx6ig)ITZ(nJSN$vKY|CobNolOkI{?vj_8R{4|O7=&Y8GWQ%ynv7@|J%3Y)Nx-p9tU zp_;kn)j$L<<-cZ*?)0iEZ>6fQ7`fY$v`UpeMA zVae^M^2}9)`iscMg9%i~ zxEO_TL+z#k?aRuXMU^Hz&3T-Ijy~_$ax)5iNpk?h(S zXyp(-%j0+XJxA#J#hFjI5!<&t_GXJ_LWfen>yAD2{UPmn7dR{ac9g;*IKR*)TfbSWyzZO4s|RII_7m;O2U&q0cBZ;2oi!$4Qx$Mk|IG_`Bpm)U z>$Q`&o-Fg*OnTh3$Xie5W^NQyNf8#me@M=?byu*Ayuh5Aw!C1o=3u<`J$cQA{Fl6H zJ$7USqnnZa`TzKw>yOO8^Bez8sE@^gu-R?r(E}?pM*@lI&VrJjVUCQZ9Lq7w(t z|3!++2ew+IRIoocBXY^nkE1y*=jN&7MaZ|D}3-JHdMuhf8Hf6+>-^Vx7VVM8yEQQ#_d znEqK5P${K$cm1cl>Fr*cII_34Fgb;4mb@~NjojL?N|AC>#C`rwyFuC3g=^`zek5xn}ZQ_^1IahOG70>VZCBEv=F5>>e@K0%4rw#3#&{6}b z(|y!3l@j|T7Emw75E#b=YtP)UuyT0ap7O+z>-J1cOkB5T5)xt0gyhk>7RtXip(Qa+ zkEj2ATcEOh+guRk<$C)85VL}jf`=)w8|>@fa1r~R&OH@cVB{IqXTAxoa;b?qKdmTW z6_Z40<+p57O~PtpfO5-|?+V}ovL-Ml)OQjW?+PT2cMl>w-+9~Z&__Z1JXYcOz0wcv znFWInPebaV6kfko-I56obwQD|w{9_c%5QzF|H)AQ>&&$-E2~5QGdA)WkJwo=1kO(P zdwlx#uOd9LS$QGZL!DbIKA_E5yNh#bCO~}-@CSfjD|SaTc~JZ&V8QROEdB=`=6q1~ zwh@ZyIq|se;16x?u-o61^U2c9_QLY}gmf5NSv>uN1ZfT4+ zqBGOZtELC^-=(-hUxO=j)^L%!4=1~ya z<)d|$FmiGvzS#~bm^-99R2ad8()Vt*FoFdOW10894~*miw5^aof)HgP!tgNv1<&xH zKKOn5A;wmc9aM(b)r`$XHo5mRfhma~6)0B)CR3@wIJzBV@||r_A>2JvD7Lm|GJfvH z@$HWfPJjfgJ+Tp;HW8|83E&tPQCg-qoyU~u!-Elv4Ys5X9lsh!&tMdLnX{nO=?ur( z+Ns#_;-y(@DXFRay+`^p&bZ#)6RufGPRs4z3WS{|*eub4Pa;K(S}|E6nQq-o%EZ%O zY6|zh5qznv!fou)$QgFB{H3uwKrOfaZRnL(cWs^f*#ih5Fc=yu&$6*b&yTv#eAD2H z^=_O9FdY!DBr!*sY?TB&4nyMYogL1foh|N_##&Zv+#m^6PCx~vd+tV=y1ac^U4PI1=*v{kT_%wuzq1D)3AP+eoC!ab(MnT23RaV5{NTqx5) z*1NEoZymEggKh8tm{j`f<vUY4@q{UIA_C6+Os&{7+D%Gz<)M^y#O2J z;XPuU60O+A2su@#!w5Mj_qqai_JJP^_Y8Mnk1Ta}QN#&Xr>4MQQzQ2Z++>f|IP?JQ zr`^dz<2#{7uh}Or!}jOimzIuGY8oG0x0QF)C?2*pO_9evPd{y}=S0VP)j8PwQ4)Uj zK7dcp1w2j<0^FFMWj^&GPhB2Pb(Od`PP5RKy3brDFySl%=3%*D9%;awBxyTtuJBSmIY-Q}P ze~~Y9w?P}coRzuV8Npv-|K&3W8l36GF7_S5zb>y@os1F?!d+X zZjGclh`48cc`PEMiXDb3vOL+nl#%*^)uWJTPhfazdE0*Yz6;u2$uV7c+Uft{sl_ZL zsd4%5`0K?1&N!BpAWr~ffcJS@Z6k{$X!mp2#PdLa2l9IK?oV*EHZK`@m-R?zG9%!j zhf<#OgWU7R;KMV8hsySWCcD0AQ7-5Ha8qd>3OsmaJ*oRQF!|>oM1Ng zZiRm$?&DqX)9|li!@tt@bXW3K5;m9y2FL1E=p6dc7@SFJA1$bwAA@5}XY7@_yxue= zdGmkAyB43F@!bZ{1|HCQaQN`lTE2eEG%!^-`PSP!FgRAvi=_wrHxG_Fr_^xY%6sVa z*WR7PJIrh^Nz?F7`zPMGLv2yx4FfvAJH}+JM1%AyAR*E-j4d&WgiU3 zhJRtl#A3wZ@bJ_EUdq8;y}?~_Kh*lvRN*2$0o?+Xf_HWarx@z2dNe)PoP^nW)SSq5fW=22RmjG!`#FxB!~RrGc5l>1ha`bv)zj zjlOfYd)0CyGMv2})~Pq=Z395+OiO%sm>K8rJGC-k#}{qG0~kMIS|~`FLFJ9rOs?{% z=S|}+OGmY>M4B*rv0VR;B_j1+q7?}lI_j^TS|Jl07N z);6wZE_9fnOevvKp2{{ZoH2&Dv>6*0&lrO~ewT6cL$oBP$9MPwd5rtWC(N3#l=VfK zU%YUeykMJ>jU}bd&z%>x42{_~=Jbu9EyU&Tsoviey>n;x(rt4Is$G^V5R6#YCiz8^ zN|Tjanhobs>?UMR@8jPM;~P$=5&_@(HYX-EoSvAlVeXlQO?{h_@2qPe)xt$Y&?Po` zo77Yh5Wkv*cs~oV*~kxUn8&*{&>vQwnEU2&WVzUP(>fICn}R1K0Zm#+& zR5UA{=Hi8)4m5oB>f(l3e4cl8prJdtaKo&^S>E+`z3Xo@RCB-X>em{&6R$QLpZIOV z35lIFd!REsYQyU|9k&Wq%xtd6b?Ch3PWg_sMRZ?eVWWS(cKu!{I-!kwz<%#u_Qt(? zC#)XZyLaMR{+X04Es`FJV?!H`%kHz^HZ3@Br?>m>Z87i7(kth!J+*i5h5Gi{wN=;e z-OQcU!Rz-b57*kV>-X;Tek%j{+T!c??&dRelQ~|aeQmIc_9#1}dl|imFL}no=Jzpy zK0=!aQ3uisSM%$$p-m0^^7`U=^%dGAONZAV*VJEVlgx{LpX<58JZW1SE_yGL-VmRA ziB4;(2j2%l>{mklRPY|Q-LJ0Uvz4LH)VB#53T-;a+#6rb_r6)?`{8`o{bO}))A3yE z-P;}NtKdtwr}+NP^Ny?UVQyt^^sV1{a({P*VX>obK(tg zLHjwsrDT2Y-V+kw{`ka6^qZ*i0B?-Hd#N5gH}l~B@q~G`*}sCalf}c(b%>(gz16Gl z?cH0q_Vx7lW^TTI@4pIrw{A}V0&=Tk|6$u+bHXUJauBl0(n`^8&Ep;4@~P!XxT}9x zSLlmq?paZ7<=cOSU&0<=1RJ_T{htTIf0Sp|)t#Pf%y~GM@#g1T|2W1Qou5Z%yRZJA zEZd!OvxmP=kAlB^Uc1P?2CqHsy>n*oUXRbN%kWup1fM}Pd3@GsX?}G{dVxoP3$}U$ zn5^^Yq>@h&xKDV8dxSTA1mVGOpnILp1o9d7fjjaTcFnm0)H3VunVc-MDhOjFvu-xm z4A5|pW!8JlH3^8-N9GV{`U~C|)(`woG0_=*OCQHXC7B0(CK}^k$!8+zA0Np?y?aj& z^~(<-Ppq!GJr94OjawLbX0rchglfr0_3^(gRA1bZnXCUbp?XcWkN>7nJ>GBWK}{jyZ_7j$I#bCu;Y^+J6cv*f+mp_Y0^eUinLSBwS19wgt;b> z7P{$X{>>F@zW#CVqyO`)B8k&?@FW#hoKfygy{`q6M2YbtZ zg@4LDeWcXW)5GZL#pvll^z{F2eyacKf1RI(zv5$LyEp&;8%xhu=p|2|Z#Ep{s|dd` zzkGdu(D2D-s89;E)#ra~uI2O7H_bK6Pm}mQ8b4j|@F@Hgy6NsLiPMGE=_y->D6%^J z8RmPwPJb-dJaV6yZS?@ILh_-$iRKHOW)k%5JwDV&25fGz3HTFVEOJ-R^Az&!4`txe znW(3f|0sL)VXkI24pJt*3J-)f-O1(j=X3esc~2p_I{WT_lbNghmi{4T-us}>`aUzi z;a|yT=65*=&_F(lng27Z;MrgHsdkioh5OG@cKHN-rEFdd*U|56e2-_J9M2y zPvmUZ`COjMH{MLS7qC&@ZmlLc1`gj|+7R>3OZN4<-p83d+mP|gf7ABMb*Z}wcWGAR>@oVAfh5qI4hbGm?;3M|M{&b1Z( zwHmG&V-fl8{A;zW?M11ps#9I%*`yj1&!az+ill&VHW=Q?oRbLkI84iWV&gZbJf!~X zB07&W>Gj?vg-3Q5=#Td>4v2tgk`6rmC*Q%={&#TjK^6z&BL5H$PQ?Fdb>@U6m^>_= z)5c?qa(uwOgA9wNImClyU#m&Z%ze$_HE740m2$`@JIUru$;0kq^50#XfuJ@yH@B(A zk7#NiANdh&GfS7IuBzgsgo!eEOa@a|6{oHWrxy`iJSn+fY9%T6OSzUl)1Qk|l$pB|aJKiS0`UnO(j&ztQB_ zhi^QbfPy6>DY^6_?<8)F+t`{vi_?Hcl-vOk>ww$+*=Mt;>t^1}%2>IB6t@ z4ku};tIG$Q{(cQ@H(6^X>GtG3fj2!v4Q9Vcmg5;OS!6q~4;uWRAhTAaSxiB^)9|E;weApXMX zwLOLMx`@QK;aGVz{~T4|M&L{946}{rcz{gm?Gf(P*7HwYfqSB1TwHI`XL&tOA)F!- zbH9{n_h_fJl4zc9TTqPS%mH|LCV8OK+3ia>>oIJz?=4%ZGD$wi8k6Y%5I#0ne;htu zHUs)7d^Ez879aQX+$i`s%y8`}__!g{u7{6#H3pOnJ}%~ge;6M@ThHe@lX@pnFfjLy*ASFFMRW)rP2-&(Y&^Dj7i+_0BVkA-2@%sA#&IG`b~I;NaZjNR34fG~Bm`kyB*i-llzS({s&dB?K2XW{nG@4ftA{;^7FyfVw) z7tYrRvgh|9F^GbQ?14a2U_2KRQ=R4r;7rz0zI(#^(l3hB6No>%+VH+zyu5|#2mZCn z)LMUq>Ly#(r5!%fm+>uciGnYb0+jF^ER<(i?(=EeUw<)?f8=;-vg5hs?9s;~aV25n zh5^r8Y>`5SCP24Jz)f|xw)-GH#J4;UGqUsJ;W^C95*Zg*(I{>bW8C*z1eO(nI#17_ z8SAVE87KTcKo*))Gtg9xfF|mvbn~b5!1&xO3O1R(O3YzVepeL23hW0GQcbxN^Ne&A z!wp;cmKk-<1dP((l5Bs6esq5$ldc(!XH&u>n#wFk&dy<|cCrqmjP zt}pT}gRWd7`p3b0V;0`unJjgq^PdmzTET0;6~B!H_fMbBfLmk1jl=-h{o8TE1kwtm z<3~kZB4P(pP2ucFeuZjdNAi?Wv&^Z#lt%F*@qO%U3~LbEDc!xL+$V{@PY;vrkVd1w zed$5@mx}QuJ=TsQFTdU?8Te-8!pC{uT+)BAS0MQAN+T^KlgG&KUEm~OfWzoA##{zY6gh?@`14Px9g+l&+~^o)SUY|!*y%R$p;p7Z#~?uc_uFF zk6HbK_H=MdJ)uV9=%C-q&yo1Fb_P*$(6yA;KbZ*E&8i|NRa;fvtZIE$J1r$#CTTMM zf|GRfP-kUn>dLD0w7OZv)QZxN;<{O3eJx8}X#%xdN_oZpCKkQS{@^(ZM=BE8=saeB z$2utej}N5~Qa+JHYww<-#M!-jf{D4kd&Vcua-wCdw<>|DyCL13sJpmnj#t_e2xf?) zlX#$);9OLKe`jHGau<0$14Ccoa_C>1YE6H=Z>)|w_f_avoG!;hIlWs~4|K-gWkn$f ztxTWx^xlgHF+n*8$4i%I)aX64&7|uHU+>1uyWTq)_r+3@R^`0&IPYZQ8%hf6K@q*$?1GJC!KJG6pB^seA!ltFo8;CK z8YoSi>%~{h#=Y=#vaX^C;g$8hD~wd4<>QEtAOf_0OF~+=T>VRxL3LI!PxWS=3JgQ{ z&ULh#{GnxmBhe`bU8l+(a^i<`Ze@A-^^A<-mqpXBY*bZ-Q%r8xfJdAtB4luI(jZ@2mT5Xgq=R-jzn4@Z*3Wn z_u^?etZCE`5+^8x1#FHdAGeRmzxojoiNbkyDqc3_PQt{v*r|xoxru#wGkKPIc{))q z00Dv@$hw4*KlG^2{*{%<+Gl+>+^KGM-1 z-<)@&EM`y`MH1;rpsN%q?F#j;B6ueoF|xFqkPIWBj0`jWl~R3&&%hR=+=F&^lo4oU zR7CY8TK)^q@Ioy8T#m-g>;C#9Sv4hNE}`lmyN=|$zGC9N}@!h%Zd(4(6CCDn>JBH69s%Ps#gM*it6Qp&4dvaz^dS_FXK ziH+3TEQI>xtTq@pfqx6Ip}e`a$|-pi3l-IT5z^C9Hr_ChLqvE00+;-1f14gxkDOYq zlzt_3TwHx-|5$rr7Om(7Ai!&gyaH{NtS-p=3AoH--pK~za_A9>&?UXx; zi=dJ6P=7g>vLlUGAy_jM^hmu~JBc$fabZF7%~)Gza}6NIjnit*0Lg?hm)DIa`51Sd zeHlt4;KF$(RY<}Ss$P>AFf}WjnpF~CskO5yus_&v-yzPzq>YpU{W?ETnHf*&ni`C$ zSt9fF`%WjF94nXx$fpCFDZFS4&3K6?zk`FckO3>|bb}|9kiTDA1O~uDN`2vMn+x|r z@#R^#x1XLf=zjq8+Fa0QSkRr0>J+g`*d41aZU>xe%LV0gf=Ad3^>62^dpGh4^e!Fn z>Mxq1%sQM2n{@AQB5gfC7Tw)GmNt`K<+!LH@GzJo_sdr)? z5+~5*{(Mfx((&3Q9?Zy0!TW-99aEURm-Z%+n|=H6vH_DBoPUket6#X;#3K+F8*``( zemgvl2r3ny-pco=p|}orz2A7K@9RRQM;_~hVZv-ahCIGk>u(}(TK)&fWBSE8lwHgZ zD4RkTmOPTxkhj`#)<7PK|7%Di`EB=Bf_d!qb1+DegAb=OX%EgkgUinu+V~8pH?*N? zRlHmO*EF1@@VX%9{3THfM!!JMh6+#%X$V}8w-&a8ovz|ef>UN`$=piwg%tVK{GQM1 zCfq*^(wm&5Xyq&`Y}MZEk8AJGI^*)%Q^qLM-ls~473n{fpNvlYYyZuxILKoPbV5Cp z$v{Dq(i!R>%QqHjz1p{jc_e$pHB~@!B~6l_CrNNw1vE4j;HWS4z2zBle@p~m)V`O} zb8S4Bsn0|SJ4$i7*ZEJ9uhQgps2@OUR|n+F@$Y$QQA{gaz#Kh!Rg11D7eMj|bmmp* zs{FK2gtd}rA)!*9QSgt8xKl66gm50D;0@|0MBK2EQdSO!6Q6c=ri+L+mULz?4Mw@> ztm-L<5r{nxSt0pu7Jp@d@~YhYl&{ek;8ySex1G0#l$XzGE{E^S31v1juEl~nT`V2U zdd@=GwGsdmQw0V0fYxovdRFH zIGFe58{cYEto92zPfU~u7?dLMO&Tfj^bv?-Uznu0FBi3_)?ldbTz$nb(rv)>!Of7% z)9f@Za%MraW0Ggv1GX9y=0}uwB+&bwbjJ4rn1~xIBks)?YCM4f=j`&HLiFb9KL|gP zK1am0jdQQ?9_Za2=9RYUc6XU~B@-~%q2s(@*>F z+jj|2aEUVWuw)){%ww4j{pa)gJ1zf}B{{FqKV%S%B~Fnhl{^t_DxCiqQ$#IMezWCd zj%mm$?Y?q>k3uhL(eJvA%^~XkmBMII_w!}~gPx7qmM59;8d zpu4LD(4sx;Xmd5C1LLc*n$kB;@|VH^^f@dRH-T0hHUYazQ5o9q5JlK_bIl2Nh?DMy_?5~5)jEv!Ne(uo{t1%2j_32 z0y0P>s|S)%H{pL4Q6xNEe1wl6Bn!M-nme-V%z<8sq0dxpH=!}9mBGQrVwST4k77Og z;hevCj4}4&g;AVC5*|IUK&cciXJkB?L$?=6}nln*n za%5wmPMO|{2`a)e=%4}@b8A~*iZ|f=_RVl$_5jkVcq7)WreOW{t5A5l2I?P+ZEPsG zrfB15mOGPUG?`5vH$8r9C+TDq1v|z)_(ZF$`^L!BILh+U<%}%`!xDoSBF8xseJ>0n zfRaHI#@@TRoYd0+WppIM%mm-%hm(2yE&jJYGj_g=JvN|e^5;jHsg)_&z%HtvTR}na ztHv8HCol9+K}TZj#w8Qe97Ap_+do;v_j=A0ie9WAxaK`gZfC3`Ing&|rdwx3S-zHE zH5r2SM(()jdjGzN?M+g@f#Or0EzG6!Az??`P1q5HS>jA)K=RHZR%~0~I4yfv?#c|} zGMl?s$@15`wFK=`2=7jvu#AJSr5?nLP5*iOt*ECddofqHK){;2P~UpKiAqX)hlf{B zh2*YUGp)n@(lT@$Yg=72!Kmv?**RiIGLdW>=hlv?-*WYFk*NEK(K)raRS$qs@kKlMM#cYW{AcI ze+|hp%>^J$uGz2C-EqFr7o?4@eQh7m$BYiTV^TkYR0F!Pk2~WCvlB^Cqn=~HL8LH^-&uR zG#I(D1nY8Oc5^Bk;LYSS<{}a#NPUv7fqV)+)Pvju9GE90*Y^7=s_kbgVa&( z*P#bx?tAzS^(m0blDH}nm?8BX5px^JYG9Nmb|R2w&oMFg*z6@)7UTCKWTWoC)9Z#1 zkM@yP*Y4guDp+^c5y?dTAjJqw4Wy`hn^l*LFpT;LqN3W>M}we$MrSb{vb5xgy$W;0 zSkmkarjG?(&g7nPMbE`o_3uaNET6K9dpD0W91<+hbA`>q=k@i2OB0h+G$-mFW;^yE zKFJa^XHW4&uZB?01&*dZ1J!s}CYwh}^@ttihuq_ls2;Ib(uT(Lh@lWqUYh7Xr?Fx{ zx+glj&f1vtHNnAI72vF3fb*2K`XRrjfz+%De?smkCIr_1k(u8$`wfoO4gXd9OYdGc z_FH*xz{|7H%VigvX7WdDb56}}KhOi;a!%vk{?0zvv*y)|a!LRBtNpb2)~qsgOQoj_ zrK1Y|}ezwUXEUv?Sy@n(?6KdNCJB*R|)Q=vZUSQpey$Kt|gJ(;AP z?J?Q+Z0;P-|Em7%@=)L5qFqkZLjA9S5@%Mm_O&J}+ivh)>J(61Xn@s&R?uVKX6d3t zFNZbQAg7^1#yfqrJLsHR|4#Ciw0Ew6k=i+#3&;2gd!fiCwc5pk-&Udnw^8vJ) zV5&8k4*51Wy)uwkK6A9Z$Ij&XrFvYbQne9FQkXlYDd8(lXAn_G|yGm z|C|IIy=N9A8*?BzAK$I!&KWG?M6bZA$82`TiI`KxJNR;-rYW^>M_`yE$^oaS zZv5((G13+}lefHDl$ZLJ=C;OPqq)p7e69ryIG}UcKcX=TIq$CjP^U7XzS&GBvsOmM z+CD{6u)LSo|25P{WO0G9XGKycxIgLerYv!=doHObh?;&p^u;aRsc~J)HZGhnOy(S{ z*jhNsl%O#k^vH$$CdS}n0@|Hxt7UgFCmWO-LMD%gF8KH)x<(adCFNVecC|=^665;* zaI*Fsr}@1nXBmUhzv*ZSLqh#_T(#QVQvY`12nK?^BeB@&mVRE=={{`|c%V72J|%gk zHqy>nnEBQ*^b#kXX3sM&ak@-~rc3{lD`)DC_$Vt4xs8)EKQy6 z8w53A?s^7}>|;J>*-!K?v;lGg?+NwY&*TaL|Dw+~aSY?MS6^RDoV>1nRr2_C*A{*% zdCas0E6QsxyTlHHy;GV0miWcw_nh^aAlRrljr3 z__~Z~_qnXXAniZwXb;tBryFZ$V*k49%9D?D$?9QGIg;b-54tT%B@4Rz&ZLrC3#g`8 zw$zETb9?U6QV5Z82O8se)J?Vdv@+JX;>LV(_cRFN$%`+}81WxI(qkLh8DQ^c_c7z! zIUQ^^c6|9zS4Px9AVsy?UDVfhOa0$Ck|q8>^4Rl&_gD9Jt7V%k|2Load7sbU{d_Ew_xG7 zG9M)$)GYp0$`&PuNrW^OWOJs*g9(5kM9gb`!fNQ>@9s?gIhWc8`fR|x7N3A7cR{*V znv!@W*{=&ps4C_D?CLeUT@Dm#)B-6_%7e|5F<~B#Y2bk{e$_m^a zG*=)LGv~&^+L!qCbGW@3$E6rTmt#q|3{NpwJ)@wK`d3!aX;w>RsSRvWYXf~8+poO9 zhXa9Y(K>7n5hJF<`#$l97yx%C4K?}5>^sAKb)rVnP)sB?u=j0twQQK+<&%~0t)JRw za5QP>NO<-anS>ETs23#1m^IIH+yy3Grqht!s0}j>*%B&}tFX_{vMQ|3d?`eZkwPSz zjQE-~a-3)a3Z|l(bxs3{5|HX#?LO3y(V4DKPA70GP%=YOJnKIHct&BuPGeQDY*Kg4 z+!XKOrr4>J@k++_^m{p<;C(N5>&J5Z!SyU`N8B|~rn3-ys{~dgSK1Z%^d3D+H z>M3t6<(W^I8Hr1IANR&B&(Qrd6IWQu0RnPBD^QCjt446i_PcHm6rR~+pW=57jwFn3 zq2Mi!R;vB%eaW#>Nr?wy(oC%DrR*%gLrcSba$rN=QpROMxW8XdauPaSUu1j3~y56iC{ici|N^HkZZL7C9^9B=0Q-A-vH6wBB&01Rg zmxZ>cCcN82sk+?V>xRw|6W!O|8Sc~edWJr0zl+_^CrPp$E_0A!G_lPeMOBBV?ZH22 zc1T*;2-N?;7}y@<<@D)HRw(b@DAG|9cc1hjmzC~emf=3xS-G#I3*6V&7bhx?(J)Q3 zL9z1Ik4dbath8`8?cM7`i3*q`@%Jv&;3;3s^*6V)c?xJXpXR%bEnGm)m~$fWMmMlq zlY6RQ7v>4D_N9&RgBFz|CqC?Kt~FShKdoHm0RGwj0~+&i-xg6{e1xg}*XX`E#13mT z9=^GYC(JBXzh-6@bGW#xbjaZ@^9Wla5dyaRdaxe`d^vrOhIz|G=w$MQc)RxrdXS#T zQ3={U4pC);|DjKf$AL1F9Q^;JXV$+S1Whr1qNH-0HsLq2UY- zFYeNep?ikSo!cpF4?H1T*k5uQfYzRECi-u@M9TXEgj7@ijf(`#J6pYutX!E}eNfZz z&?}+HWv_-Jk8}MGuAk=jCw|8R`P2F3IKAa7R5XO_nIe?A~Vrk`eCzy1ii*ce?XsYLz_3 zXfw8b(e<<1hMxdJ>B+G~15+M@wzBoJVoFm$?iTX~LIxBrQt1d{j64%6$L;o^7_-(5o_|MWC}}uhlr$BMO%k=a^TS(8lfKgWI}gF zFLVPuqGke78K1q!xM=;5`4LYaGw+lbrhMLv%U(0sR|iP1sg@a-Z$L$RmxZoL(}dN zl+8F#6i>_~vmNu)mJ={d-CkFEvs2tyKe%asdK}{tb)z?>;+5zt`ah^4!C;mk!5XY% zG>iScJ3?`2C;E!YvikeC&M(}ttz7&oue}r2RvFkr(Fo9vbH}2LjAA=dT6PD4d^Dt; zhEPy6HRr2b2*p*ID*dKRArXBlt+SZ*i4TVRD^*HYwXo@U-I51;FS2sH5HTI^`f4nV zg3G=$Kt92zM*+x#BmeI%{k@xB1}3!KE&X6>S!F$V7w$Jsg~w@v z@d`353cQ18@iLIPT#Zo9tqXxmwZWz1XmFXXZcsLg=)>Vs@At5RqJRwnnSskpDk}>N z%F5L5)U`f{*2=i1U-s?*g+s%oXddoyN&#DuGe*nx^p!+#=0zFFe!?XPlbHwiMcx+G ztt?B1R zi6u<2teWNJs2M|6Wwn3kC`}dA3vQ3jx{Iu&zT^9^s3@SHT`atFQJct`l{Ip+1q3qC zKCs1*EbLx4h`#qpjV5d_gn`VU?fT6(`EhQ*uS;2h%0lYig@M$_qS@?TzLiP9)?b^2 zW2~4*6iv?igK_Xu)Ilm#7Ds_pOT2M4p|>4q*(gs_R475qXDvlY4S}=&IgmKFs0>hEVd1MKkSSvwo#_H`~~9%=7uq? zNyxCc`9^E1l0TJo0aX)xxROo4>sYOq6Qg5C|Nbq}p#J*k&Caz8*(0uhWYa5rT*2Et zn360iaW5{F)j*YZkx2tS{i+K0rBus`%2?~DcHC!rtPG z)7wkq#_8rzsv~&!x~9)kSVy?;1>JfW0$o`qL#c;(q}4eQ<1;oprGu*Ghq-;JxX?6?p`e$vJ=g|5PjA8h(2xS z2lxiBmQ~mv$hQW3crQ>}?p~l{9GBExP{Fnnj0}|fqK%BCtK^dAn}&@euHxNlm@Iap z?-u)m&WXL^1T?~kM$&z;#2TMf!WLsnmqmGG=zRj-@=6SkDERn&0ozWF^L4mle9*Gx z?uD|B8BbzrQ4MChb1X1iCOV#y^DQ+ao9OEMFJ@JDkYg3Z0Q^@FP&g?oFd?nP)DP+& zUMGLp*Kr@118BgU89lWdlV|p9L^C+8XCs=y69;02eUB!O^&b7X)Ub?cpoU$00X{5+ zn$8CK-^6%rIkseb97WH#(tR#9dd~%2IWU3}Q0;S_c*= zwA`IV=FuvCK|$MKdVPe7pT3-DD*mHt^rebho*I*GcjHp|mUXADB5-6XqBTfH@o3UP za))W_v-EmV*oZLtzaRS~#i!N~eR)4c^a|+0AjjU+MOait> z0MlL^0dz?W^r3e4sErZckF$-4p)-WP?*O}Cd*ql=!0`Q~ydywE02B|gxqzrR91se< z3B0j8@d4pueeVl3q&5&E2{X%0l}l#t>wPxA_rc-%gC-y@udIf}g!U9J4L5rI}Yr9}j+*ZuRkdd7JoC1yrjM{#5CG!_*Su3*o+~z(7|)xe3hg zcfq@E1sC z=m*Deb`RI@-ZZVQDS{x7v$dx#ZL7<4$?#Sv{4ji#@B8<;uO&}A41dFYb0w`m$~GKR z?$4=M3D|+QRVt!)z}pG-!BIk*iVz%*x58P1d1fbXYE2Z(5NTWPGBbq_MEcXDrPIXk zq@6$pbo`ZIq-ajzzMtyWN19n&1Ee`wNOOXZG~a*D2#AfrtpYcF$Y2RHz8nyqL6v1D z8a%pXs@qvvAN`P1YGMJiVAD$+zgzvGP^uFsv30#vYumV$3tP?8;5(Y3m(U|nr2950bXu|#{itGy4Jb#9rpYQOrRPSY}Kk#_eH8FVL) zb(@7QVfVn0j*ehYoNBI2KSSOYO+SqOwLzEMT>plzHM7KvX=O(*k+Pgs?o#9yr@C%U zbkiB!n=AL!iV$0@D+nnm=Ta29f^e#-rNluYZ}R7U_of8+RJSIwNm^g)+RMw(A(KY| z>}YcLigeZd}Vma1Pd)~GsDlj+}*o}wOS9)#L0 z)*_QWIo=5U!X5o$#=KnC(b|91ZavEhVPK9OT%elD%Jw;KAbNL|EKBYNV&x->dH}S@ z<;=lRH~#%eRTj{*BkTgQr>G>3wjfC(Q`BI_F13^Ha-|FH=gRI{tJsS6j@ggK*?GTL zgtwN3OBKILO(?GA^gRkJhY1OLbqqvrsJ}KwdW9pX75O_b6^|I(-ec76NExSw24v+M=pBcZXikRS zMN;vS^x=Fus!xs<0(*qsA*!^5#H|YiDbYNP8P;S3mQ+hrN3*P({U>TV0mp#0Iigla zfXw^N2*|##5y}Bs4uLZG^ln6SEP(*kx0ENiSz#kB6W)@lv5Mbjc>?D}s&<8XHd<*N^^~3R)_m%%Tq|+>oEUFl|<`TA67snt- z6M6TUti!kkBb$9}nGm-RLH{g2<1{i}lgY@}90&1Ut`Vwg*W4KL93$l?L;s~wNv)c5 zS!z`+Kb-0f3o8x`IdEEvs>nWnpbC*g{e7^_NkR;8M0c4TO| z5^OZXeH=*1dxsJI#dqF$ME86@P^2gS#)#gY$ry}ih2Mwlhz7&Jm^J!nPzQ)F&wex= zAT{_SGbu9w^Jy0YKyWAl<)bD2zPZ|54K_NLD#XvdSHmbRY1G zpSJ}3986KxfolB*9_=Tz;rT1#K-$k6}yN-6-StRzNyu_M=1p zh74nDKFi;4HMdOB^cl98OaJMpLcn|dOaa}hVu(;a1x947JZN!!U7{p;p2;xR`|;U| z+!b2!b%-8Tb*DN?x^^v9hw{XK%Q*%ZFyQh*pRvCq|Mt1Z@frU2*ZF%DB zpCOU8{N_knLd2CyzLH-BKRDf~C1B|#mCNg&4)-0ad-NXlkKj{N_Z^|{GgI;iiP8TC zr!?5mt>4KIE^(v-z~DUGeW^*%rols0MP4z_!>$79t8Vt7dRT4Mxnt<&4Ol=$ z@gx!MTdVS%%B-AQj-2LHaluFSVb4%=3c(fPDo!hYFt%>xdHo#(S<$nGtN` z;l9OGlHFhO_4QxYz%Q*94t!d-R4>&7q6nH`*BiQz(6_WJRtJ@J>fDxUsh;h8CLVw^ zX*;mk^Y%R*$PQ?cl^FB;(OTs@K}cWiuBb9dwN$wsr71>bMFj4gUPC$(Slny46Tt+* zR8rWYs&u2fw2JQ40XCyr$H%?1?h2}K9&|hW!eUkF9-tai_T(?z zVp>;@xG`GJkc3f&^&)@$+mPyVmrCTg26z{+t0Vv~)O<1VsQ z5e6OKR(d1+)mTUmAMTsxzh6U%<5Xg}f09x_7x&82VB~<~P$?n{&?B{MC{N;xOvKSr z$Y4Ax#q2yFm`2lc6T8`tK#KXKF3%>e;F8Vs1wT_(@~9p$%7OyaQoEuw3!;*|#d+t} zZ7fO75_o4}Ax%ONW)KK9$ML=b04z^+mShfJvROfDHNr>rpm(0O&@y?HE~T!$IwevR zc@MuPxK19Us(%FqdE1*N6-CA#Qxv&Su&e$VooMIJvN_9)nGjLH5h%9?HX{uAOH zI7oMLG61XSG^Ju{-}gJi8MfwAn=67{u$EGc?y(4PPVA}Mm@MnLo?Vd1J=e1fQd)aa zVY1kJ;5~ zm^>Lu3{|wuWbE`VFqLXl%HLIFV}}iiul^M$fu~INM$fe+TIj2XhNaU2XiOcFbwpM> zr>wjVd?T1K$#a7x8fR#r<-D%+bDc=8M>Dz5jx5C|U)wZJ$}YvRamY=U*1wWkSCv{< zoeVP&+RDhRkIbH^5ciwmTW@A4WL7m-W>uS0T~(>BQZ@_fx~r2#b=@`2dKbqwo!$e# zver=fMOwMU17CsZWmu!uKWMn4mT3XX}Mbj^17sc_7{w8oW=tzLh88sG;ahNT(4fZin;ww;> zA~D{qdn7Q{GGps5M{2xI39{Rja;wbI#$=>^mxDc#$>s7JQ=l^q&YyvhFI(2}3ERiJ z%OzX(|A>okggSu@$FXs5^0y3844_hkLds|i!B@X#8;jbV#~d7U*JIed8+0G`7NRF+ z`D^K{nGfC#a^$71!XDf0jMaC4c_9jgZ~g}Fwn4FMxk4i*}#01+j`J` zKuKF;^#_L*awiv#D@#)=BXuh@dMj$!aKr0thgbT`0GCF4dX%L|i%RG+`@;FUU8*(r zeDmXa*_Umc`f4sr%qe5*=PFDz)6jdxE+2I zXl|9?TtnbzPR<~3(0?w$iBR1Ep}e(&0fM0$-h4t)v!DL zqR1zB_e-uBEv=oGP*8aWY=%Z@F*uCR;zW+m;+8jogW0Gr;I4gG)=ZeGAtF2H=tyht zfl{2bvC2LWW?SGu1b2p<;RwgQRsSh31$*`yUYc+FpJ5XQ;qStfoRcHq&lS)qnJQ_i zy|`pVf9)==r5%}EO*y%i)n?63i26P!Cs##IuJ$=2+HSK^k`ek(ub0T9Sn+(t^UU`L z&xkpC{-zT=YYEQt)~D1s@;CU;@Asca(9-w$lYynKX3xk%SH_HyK<1M#uzpeQA?lchi#kU8yaNO4_^ClG?GnN^M!NV38%e2kYNfRs12)tRN zkHA(^5Apec+bw&{d3BeElIOb1O6pgZB+ssY+Bws`N>Q&Tb$Aaj31c1Y-bY#4ATP(g zgAXH&G;0#9Tib;>X@L+daBjX2?U?}uNP73u0P`AvKp2D`P|lwZyS?JsRD^EF}n z*QGX;txe&-(Q2`6wh5|MTF4+R!odl}3fK_ADZH{_PofD>I{PW<*w=}kh&`ca%-4Hfs7YQ!hO&VZ0(29XHHB?^M09oEi0zviJjgM;l|w; zANUAd2LC7?`7=;y0gU~i<_i#%DVp6xU46B6U z)YXXUWjrKb;}(7#kx6+Ku4ZcdV^e1${_bpKO8sq$fsV#V}w?}FnesEe*BuYna=4bY5IBjHYlgn;0=c&Ved+EP0 zK~BPMyEhA&@!^~Q%ZJQoPb-SFcOvv{=LT4mxm^+LitoGwI)O=$SqtAnRt}4Ng|)rG zCwT*yb6wqyWyue)zfxlh6kJLY(HG$t%U9=OVB>q@;ZTgGZjL9Oj~JyEYd;ogrUNft zpFcr8E~Nm;Igl<=W8U#o#{_4J1BONx-di=>|3u%bXz&2PJnZ%K4;bWUfDq7s4m4^} zi$sFqd>PfqaQ<0iec)jZ4*m^(!O6u>e;I%@g?=EW!5kx8!sT_W`C+Y!oN+5y8Ta<@ zvI(=cON81do^fKRB-v~$VWScINv%IBjzt5ps?2T0Oxc@8FWF0ME~CeDLC8Reh;iwllx6HqsLxFxZ1T zwF1m+x3dHjk>qsng^!yUnYecsnK^{VaA$g6>UNiV2k$?k>(`N_u6MG79p%I(Um4%= z&u!)$;G^sQfxS%E|4M&h%k6g~49N=s+xvpt@uq&n8$u(r4y|uX8CtCnJ4}=OK_0gq z)uU|`z0P>RLNmuWgebd{r`O>O=oHr^3lN5`c6w_W>$rEnb%1^fE_GcY8{^249o=@H z-%+)OAVY0Js=d}cvN_XeQ_J4u?}x6XF?@cDeLjWH zadB1qdokGP>|twe8#!!S8}K&uq2(vEV!d;g|CD^SHSrDm_E`VhH-Crz81*^d>u4bt zji>X=`j^6e9>d{2KK*BHt=?%7sM#fzHLi!GU%Q)cV2M)VEbrY~GX^t!ItO|k!{Pxc zu=8`^BRhLT<_BtHs8A%)Ikw$fzzZpP(ZzoZ-6}<-9pb0iZAtn{%Dx0RN-Q_E$oFUf zb)4%PvCVMXrM}i=yv#>iXh3u6uI43xG|vf}Jxgk%nyb0~({Bx- z5KyI5LT=vo1KV~b_z-UV#1fE$k%z7o9sTaYU+NT zcG{|`gS%|}7<0d?dY$pxsnX|q`+XXp{x=Sve{O_e0}U|<{K5G?HbYn#VP(|jEjD2* znj>o2N8}e5vi!0W#}d6&mPiq>JaUvzj?AB*&Ht>;iqTbwf3U>O#Am7*?X0oP#yxPV z_R=%{sB6p>2q`nrio=aO@wPSMf}6AHsTZf1&=@Guket09Spg~gBnWWRMA5fV!*N+ zU8r{T@8LBCRyeZ|>b~VqXM;qtSm>)GweMJq-u|`zF8Xk`zr{!C??3;G5i;wqj@1PH zT@v&5SZ=oCkPA1mCeb2qq}MURmu+h)bEf$F(dvG_dCVm-`O*;pFnu2Vy^$)ItGhPXjHdVC6(#;G}v`r7KvGly&gJYeky$2^a$Mzl^pPVb0@g8R_ ze&!Q`LhR(HrjhKd^*I}#@}JfV3)~#E7=?_OSK>t z^E5JDGwZ|u`|Y1?llA|&{aVt>J5eAN;>TehK5g03V9Rwy1ukJ`GbqKZE`U8&VG`oU zu?TZxtn<^y8Dq^!z=Ep;Fndtp%$B%+&JcR<%ACI4KO&(mp3eeq?YnhUv~s$+?{=SW zi`KN0Rc|m7Yo?l*_g-E?eX08cZU+u7-G`mY8T+bVvOTZZd&$@8S5&YE^k86T%6y7_ z&pt~vRi^8((sWx(P=QmNS0Yj)=2?{Ls!X4#cYZ4--kbfRcvn*;EkwDfdZ)Wx6>;w` z`}7*j&tWQrmee9Zp9EKzrxTp{DdwoDnA{hWPqGIhe<#7-h+m}P3oP;i z7snYp-bSalVG(K}r`FU$mvW&s5hgR|zaIAf&5$&-Zm`4aMPCZ+I321P*x}7Kt!&9U z!~>3{X05&gA)_o&a#_|z)F*8ZOo7za*{OTXa63oB?3s-g^D-ob8(wHe%(R+(Gp!3U zW?D@pW~Nn_G1Kw`fu+v`1g9Z(;J+xw@DK?R+^HN0I1~P{i?Wxoih zVnh;kj*)6}VypMzOwOwG1c?eIm$@C-)W&OphnDJdMnr`<&t+KDS=h3nQ;V9>dO&C62v9xSEVs6ambk-#VNnVye*gbBRE1abO);Inv zk}tjpGtjtL1o=z^I3pqj?9vBb@}v>qz5Z+lc>B1^@OR0$gU_8?6e&2bC^DJf>)ap9 zHBY`HLZSSEPyxCv*(QXt`Yj5VzXn|NvZ`wJPP7i@ID`}?Ykq;X%7b$A4Hoh+j(`b_ z=;LiyMDE5|_|E|fo%qCN@_we@pVC@)v(2guH9(Wmd)GaJ5eC^cu6%JRX=S(R#8S{d z+utPV?$tpOo9r3}k~Ur(B%$rrMi5C;GG#U3Ku3E6{{iXJc?J{{Y!|MrYm`I?}?1?4QY9bA#PSY2DhojhutqTNiFWm<*8-M3DuCo0|KFp7i+yJspRTii){(9Yq9As z{E;|5=DiKNv|}Gy?alc%jaXI<=}ujQIpG|?=-d9wpP-B9*#4kX)$ZN-Crg5dEG`X7 z<$!&_Lly^1lD|NAeKAAyR?}xJbWO5~=%r-xsFC$3=T6%(Z8@EZ9jIG8nY`-{))egdud1Y)3J&O-xZ|vVA3-i&#B`jKI%px=ygBBW z23X{C*STb0BCG)oRX9jt$`Bi!qvMH(pXLy@wQy9U%rWn4KI z^|rGTdUYK8bcM-D_{M!iq_W(IZE1S8`^5Ce+v47vaA1=S!hP5B8UF2jJq+6ztOa0^ zhQ{ubY6GvTw>9HxI^6p#Fz?x#k2dOY-PNLudYGHuU4``ruRV3(WGQAk=t#AcGsj9f zGpYA}^ihx9^M_F3^XVD0o=X3Av})-Op>0>38K{=7k!tBmKlipP&e}uNrfWN`(BwCp zS^u*aelDwOX_gqauN^;1vvk6Mdc=^2`yylt`okr{;hg>#;4tbLzsQh+)6IHnXpN>L zkPXyKF<;H}?q<4jeb4#Rk`9J82d}NS1`u4&&t2`y`|97B>R%LhXxmGP(kp!>wNk?k5;XC?}% z=``n>mvo${dbCDrJ>RQb%3u@Q$BTp4J}xiOKhx1Q@li(q0Z93W-zt*DQBACa?l*e3 z>(~tfh_*Red$*vMS_VnM8oUjWc3uip5h zaz+R`heE&IyW1X1($@m<8Y-)5?eM;r@+p=nsRk&93TNB2MB&h`vhFt?$&9z@<}0Ws ziJtolC|_~$3f27ESi;HLW8GoUDup`CCx zeL^R12-HA4O81lngbhkc3rl#v-# zN)}pKVnYO^?lE#?O0vwyS$eM^Qrg(vgu{X z74G|@(2hF&Fm>~gnZL2nWac}#_`E3hyeVP_Ba3v@(lr?KPMF5Y zY~h09xtqke4SnY=;&?TOQjgps{!p*UEkKN5?IRv|uo4Tli0^;eZvvA-Tf`A|i5+PN zq6j^ygGE{n1{=e+b2@sTI1Mc3(xGqi%h@M384|A#zJAM(NGQ(CSZub#bsIX&g1_B6 z?(zWrLHAPULe(2*_aQ>X;;%2V%=3CbqC6Z~a6M;Su2D`G`cM`ILdIAteDZnoPZn9% zjaO;FS>DEWey8{IoK*SWyC{%P*AqC>!mI2Be^@1-6!(sQRAkO;(nm~u*QSO;?9_joO;WG1__WD;golyAHwq^OP;HL!|q&V9y|0H-f(2;jb zbiu&V{HCQuwRsG~SgIvLq5lC7<%fOr1ZlfsPr9pHB{q&N6%}0|7H#A@K&bhcWo+ZxFLMoUfnO`{^Ia$_vyZd z`?~OL-`D-w;l8_c?e+z{h8f|$+x2{k@B6=DOSo^lp3e&R-J@XF40h z|Gj%y9O0f%^*$Fay!W01p__h7r23xgi!SKh^WwrLB>u7Cf4g_*k_E%3z5PJXbHzRP z))ee*x@Gl(;iYKV!vD78?cJ5dp_+nwZV4@DTADsr!{9ygQycE$y@w4q^xH(Tl0kBV zLXoDWjRHR766vX9N2DKB#n2L+1Y2m5$x?|gO@;Vr`zs^+7BJORU}R@D=?~k;O&Z<{ zc#$36$vkLy{qu;y_#Oqh?7S4@XrLei{~rim0sOUo%E12%x(EKB(iQk?S4!~LQcCc@ zN!KmT=7zJJ>l@B+lEC}}!2C+2l=n5vbKcW%y7R7v`OdnA>CQzBl}<-PwbS}PJsuO^ z0nl#(Xbsih1n%v00+=>xE3Vv4l-k^!wf&tZ=ONZUhfPjZq^W1;EW)?FqLGM?tAES} zRa5LJ({+NT8Dz{|6pbZnAsEx2-d4JxovkJLi|V~EQuyM~*D1*Gt?OaKw@>I2G4j%8 zq-zA<%!5(5Z>d#XNYy893rz*}qK!vP@C9@rAQS;QT~snq$d;$?d0IHcei5J6dz(&n z_ihVKK6*LJz}PQyKc3ZNY;rH|sb`87Aati^ z_txb(Gq%P5IwW6Zy`P!|3+`03kX7 z-3{pC9)Tv9mp|5hKo`HIdqDa%T>XToq0N+c{-hWTFE@Eb~^s&=BWDP)6H>qStxiIA$*njDS!#R)6)&fuYbUh z{M)*e7?QUhj^t!^7gY(uGDF;URek`@_WZV^&9T*pS^=h?@4n`~uS%0U+;<3<}&~5sj%X~x;H$MtPokk(*DwuLU-wc#A z_3aT;2>0o9zNQ=Nn|J2NxZqVMa`0kE;~C(^Z*(8v#m{sPUKrkh7x(BHyfFF>UKrkh z7lt?B#TWD*erb5a$ydXhGXuPV_ur)V@c!#{Js-T82i`P-H>ZO)^TC_x;7uiXQw`p% zg}$%*zenF668>BP`P6pVJlie_U7KzfD)*->)n12U&qX zbN2r+*zX1Q@WWqpS@>t79*(T&gZ(dy^tNtrU`1a0cV^Ce(7iu7(O*vt zwB$F=d(b&BKwK_Awhor#JqKqbD+glv^BzkcKhRQuH_&+xChN@JD3d>ZR^OveHD5xu zoXT6mq&HJg@}=4}>>~xaUKuF4CEVPovXgi2EY7Q4m*+mrTOxkW8*~ncq4YfhX2b_3 z&3nwfhtM&@lzKfiH&XSha_e}-z@)~WH)bR!aF}vNvUpo-Vg0?%ik{jT$rhYU&PXmA zh!xCx%n9LQaxUM_b6@J+Q8*B}<=Cc1lJ>jz)Zc&IxPjPk3z=T6zu)pon2 z(XcacLH)xU_NRM^^|}dCzcWA2Z(>(+zI(qFJ{1p^Gm=vVS_SaKp61@Z*EgTdjv(55v7*gm24-Kw9~|!v*2n zeh-X$7MvFDmmB(lmH9mfYc>`29IV??-gEF>y1Q)42WU53O+baA50!7s4m>`Y>1Uw zK~wKv3Kyl%SF3n;ncmr(>dwr&X(}qBqQ+<5&CR?k9+-H`xJ6B?I2HKekeK)V>$(|_ zQT7k583UmrQ#v3yCQIAB4|!6lgwR4@k~f6gtpMH|#>gV})5nw~>dPJ7RxGo6*7m=?F?s8?@z-qcBGOlk)PVF0J? z@Ip-uV>g6CHR*!TTx6)8--WRZ9lJp;63Ti8Yi=oDfTKFQpR4<^x@XRz_Grmx-bqTr zHTNVOa%l4EKIc_W}3T z28Ot|2#L7&PF>;N3YsDAtwWyDHrV0@?)~q2hI`9@pt$$H>I(P1P1n;PC^_>Znw=kD z@4`)|3-3kf73o`l=_LpG|Lzfe3xHLJL)|6lyJahoQ-8A$vf3b*I?3-xhFpT}p zl?84g_7{&#-;H{3{U3bwU~@%kwvmL#*XK>&iy6rWY?l)+P{9jh5;^exc0TLJfh@ca z2_Av8^cUR+@cy0dfwyRh;Qg4c!23a6f%l-Uz+1FL($aTy1>Se+3cSChEAak|uKy^! z-L6@IDiGpQcm8xCYDX>#TIn z`dh$H8}R?YUk(|JX1f94BLU!F`ketj9dR=dA2vNT5GS_KVJzD%48FSC|0>m7-NWoU3lEdaFlVb4Na)whAkxw%bJFZx2~3rGt)z9uaXvOxOmG83{$9~Zp-iK__GaX zJHKw2;XH|k_f)rVbmQIPpaJuO1{9{|3SCA*haRo|Z|D1}zc(~^0dm;H43NVnCdeU5 zCggZjSCB)ev4kA=>I!oFP*;#cd`8IebzMP@FX{?%d|KCk6gd)E!PoYVT+E18iuI@6emCo>bLG82zuCLROUgu$Be4VOB_ z-!G(HU4yi&h>4jlXxg3~lyoovzY7N7DS-b(L$~u71Mt&^Q=A7;mh3`VGT3m2^S@Zp z-_45tdlYoxU!gZML~qW_r8oWR;#gQ?__hs@S9O!8rtod=<4J3ecj?O7?;>5#5BIg| zir)7ET^qxF3w1^BTc;~}-*a?D?|Y`M=zUMo6}|8Ax}x_L5trU~ELXs^QDCZRxRF2- z%!r1~;XWNgY}gd;^K`u=+^0iU4P68%()Ci#p>ZXs;%MaCzZjBLoF!S`d)6me_^mP= z%ub-6?AInksT^9_3;%qGdFUr5)^PnZNk2w0heM9w7luj!iW-d%P}CGypy&sMV%;dP zW}v`21qId?6j*1Wz&Zm3Ruu}YGf`muqbOLDML~E)zz@nn!7|V<3hG5by;4xG1k?*P zRFBa3CBV07XaRqF7BnWC>i>d6sipE5kxS^88ljH{6ZfWPe5fsrG^J;{k9Qi8zx6dA zVoE%LQZR-(td!K|h&vm!o#{TEoLB!BMyLR(V<`)z+`8~0!-{D0s8v!|YIA97GohT3 zi3UNAevx#PIk-l8ZT4`mpT1yTa;i4!C7iIuQere}Uh;Z7pp!m>ihTkVF~W735wqfk zrmcld>EHDZ7dvBmD51Eixp%l^)3>qnD&i(t-?LyH{-{kZ=6Fxz;ma=0+O%+h;Qdb{ zxgpiCdc~g*YKCZ2x*qF8o3C_+#G1{o_6`@SdX^cgKD6nv zo_c1$L_}#louW^ZG_x!qxse7W<`;!U7l%LWaV3LKj86z?!Q_UT@U6BpQWyU4kH|s& zIV79>KGA+YfXQV=JuF%zJVXX4g_>%L8OA!sLP|_vL;t7e~I2Pk#(syFI_o z@X4J>CLEITo_IMx+ENYve1lQVrgIsabEu2BqjJzI@YZaqAQ6u%6t*H7{>k2LrKxR8 zF5H`18udTg{4C>NmO6)K3rQb(NLFk){4>M9UZy-?VOv*!)O|o4jBi04jBmlejBmle z?o}T6m+>w5m+>w5m+>w5mk}HIm+>w5*GHBAA0-}_W{F2UOFWiCJpRY|R(?|!RbL1& z;`aeY{2I3PBxLdD;M-ov;zN+d-H^rmAd5R7i$8)ae*Yh4TOS%>TN_2;0v1(v7>kCTkaE?C2H@x`oK+($|BJFnxhjj4OW|e<5vJzD(dyu6 z=fcs>fuo&`Fm)yx!gKrLCMB@E*$nI31nav5*4G8=TMO%3XUm&N0}2Tl3}bXQq=+v) z=X3b*7!sQQe+`ni0YxrI3{88^pP3xfJhYcBKtk(+H()cP39+kicg=ok`u*5<=Qp}5 zb!h82_m|t+^Mn25f$@t?zx1oZ!N$XMNmbtey2}>i2Xx6x-0mwdD3fDlC8@gZbpf`T z)hmafA9R0q&rpH;)+=9jAL#vU;VXB*kfqHm+8LTYQvoW3;hhvwFBA8~h2f24oU zmUE@h*uMz+Utyo?W9_Q=1NBU6$YwQnekAY zPt?XF_WyVqA2kohb>^ZCg#cW?V5g?z$xn2g>E%$oamtWAz(E|lUR z92Y?A2IccUFVHw+-i0FB{bh2DAB~e4;C=ru`Uo$(#XYt22y;C*h?Bl{urWo_%w)LJ zeI?^xMF-=(F)%gV1pU>C*i4T*@&?d_%_O)W?McoUxDZ}4bK4?3()HeJ9goU;w&&QX zgHZZZb(CHry2sM2j;1+aHF_~Y$bH&d#{!S0wa^{*muDuAbMFyA*5^02Nr@Queq@IT z5hs)8>a=Ix`N?Q5KpHsW#LHq806cIK5*U&NGyy<@1OUa_@4JL5^)AD7lP00L@g9WS zLc>n?+Jdwg7B%sfL8bK=yslsdogMR*+dhwK=@nr{pjmf-)p)Yy}qD2^J2}mM7I;_U0GRxh2|H; zs8qT0bL@?=q&>WDb=cRpbEs?fj@kQW@1Kp-CX5L8{T5XU+IMG`H}*+11fGuA?IDfh z?l!~NSyF|X(2+r8iJEy^3(NP_4;x`-3KpFY8tFY5S6LSM$ciJ32*i7Ky~)Q+J> z{(`^Lu;ZkyI%jcvaL(c?&d5DT8MG)mBqzb%W|hbU!qqsBsyX=+bIa=Qo!F`;+`pIk z=DS(#zhAf77A&RQ%=wLC|42tTCy6KqGyH=LX9TI7GI5(Q7?Nrv_wWbjOmOdkXL$<~ zJn9WTw5xKeLT8ws?k+_unLGhA(!<^m1(7$|qESLpSFr6~4XevGqhd&$?BZ&sm`QxSPp=(yp?`o`$l#m=3{OD zg3JTaNp5%9Ez#o_5{Bw8_H`sL`2+mMNbK=DRIk0x^JYJa!b6eW>Ed`i1?|kAX=)Sl zNMzx}->^yw9j}BX1^EjXVc4<{zdt)elQ{TU7V{=NhY{3DK0ge~XE6+H)(b&}cT10s zcOB6bXIKrw8N35TfU48G!}sZ}xeE`*@80j8wF!^3k8je)gNI>fY^S%!e}MAhM@t(& z0V%di?+Z9TyaLKTd%rpUxA-VH4=d$IM2w4>b-uArjJtMk-($?jC+nYP6RjdSHVEq* z86?Y$4(FJ5@5DC(8Wiq-jL}Mu_wIg3+&sj&7wxuIv18)sD8>7|FH#ie6PW7k0g<=o z{286d%5a&O_qcIh!&z6wggu91ByXyyg=Ow|4j;l6P;JPe^QmmJ9P_YA4a~i$+paii z?63@5-4x?Y?(k*>4FL>8vR84Jl`&GB;y6C@rE_fJ)b{ZauOug@>~VdMLc~y^WiLGF zcSog2*F<9fjvtdLFFAhK;$27|k?)xrT#M|?UrT&$iLhKmx zGS&&-nMrI$olc3&8%%~Uwk;cI&Tj^xUYxyuXbLs-)XhkatGy^cS@aW4F&1Td?&i67 zS3!ClUyZ3PKgY>$9th11|0H@&_`kjS=ac1>C@xqzuw-t&+g29-$?948ICkNk^ZNni zQts#L?@wOn_kP?+;~?yn42Z~9F`c8*yzX}I`lrDGhRvp|&VeOJ;DIz8DB(OLGKlrS z&g59am=>Y?N>66ze`4?3`CG=;UUCj`WVbcFP1LMOHXm!t^PQrW{vBKQGjbvKrF5uq z+noGurL_b3Ho;h|(6RhQvQYpQugFn1_|1^nmhe*H3tvtY(^&!cjStoH7u+b@wtRD5 z;ZK=lIp*soBc0@Re#w~Zc3mQg-y4OI1^du=iL}G+y<3iTf9mTacjnD#)bEzE#tV`! zGrJbn-+SG3f+3$#ds1>*?V91_N!wNo+e)g*J&;|A?OamzcHYpBV1Mqz{wi(MyWzZ{ z+j%GHR^ZB+keVdeuIqea_h6^D?sb1w?{Fr?yu9CV1jAdu#}FOSDN+93(nzOwrY|ou zNEc7v*SK`gl~?~{%oTg_Uk z>Et}yykzS@a{+sSp@vJ6O^Fh!^uE5kC@)pGZD|1v&!_xMP{>0v((aw)*T~@#b$@5x zO!wNdrllR77}R)X%}bQ?PA@?ThJ1YGJm9`4he5{$>+7Bcmm~{!j+rU-qvlR81_k4p z>aE@^zDkd2_tw)7zHUdV`{q-2n{|%KI1mp-s-ZcIbWPlQ+E%IpM>OW$MDDnk-eutL zlHc>Vw?ZQv2#du?m4511vY$op-|AO_xTu%3)!petdTQ0oyqPl0K_BoU;+V;Gh~Xu# z+=(b$5`zF&dOv=II^6>q5vfF{TvbdKV~CHe_9|3`Uq3O8vr_Dng3?nMsa$ruA^hic z$(1UxjG?&Fkz*T&kYd|+Ev^(n^I{m8`2ywScCYtW1}hoU*e5Q=6u_k;;V`H%Zw@pd za8t-Jj{Tpv`ev%WlEi9q1eOJvuRA%(`7H=d!s{5%*Zl!sMav|tJJD!GZyr_j`F_zGb;+}${gW++ z7ybGJR`iQp5)D?)ACxlEfpR}!$)cbG$Bony?t4ZkvzSICBSA~Q%E!RjeUX!HpB-Hg zu}YBfof)x2!^ZK7M;u*04v9&o?FPEIcR3$$a1#e7-lbL!=YfpnIMWj~*0xVEsRHm} zOG)iibM6tc7xs1Re~iCed``Ffp$<_u~)wE&9^vFX*^d2j?X!th!$?iL!n8+*?$q^tgAWU)^P+ zKaRG0KWE_p_IJx4pD;W#VdAqNWz|F2V@`n)G8ES(8_RDRo-_I3JDrl7hR@}i3{SrY z_B3|>8_a>t1@24TtZmL}Pkgm?e8fMXzCMp5Q~WPnU$FkT^?7kSr~f7MF}0*?Fmcz- zBN>AaM&-QTayI6i&py0S?e3cLn+^qyI&{=Vt%Xg&Z=KUS37_u&XHN0IAU4vbaL^|F zXJj%3*W6q~AJO5r#x7f_voK^)7y#&M0My|o%5QorXv6lI_wQf=Aoq%jKQJJu@jNg*Z#G4ejKED$;!Fkuh-5JxaD&9s)qHm zOb3Sie?bkj1y;$fQ1aNjf8=-N=Z6r_M!sy;Db>R8%`!@(($cLup4#B9tThD0YVW&A z4GukSNMGs3aSq|XVG;6a-jEUhDZKP9*@9-hWps{>eh!L?#Vpf%t+1-}v`jvVnZ}2H zeL<#0mZ?JOx%yvmC;^sT-(BKIHyrVxKp*@#1O_|{iD&@mYGCEnf;oaUH0Is6S?$MJ zRRdl%t^k~?N;~4M-a0X>tr54FcK{$cMh8=!=g=Q{i}Y$s1I|2{ft)|309HMh_7WFq zsDN^uxfeJSFTi^O4QuZlD&itAw6}U|lr>)4&Q~j}+OkotjI|Fv37B#Jio+2#)>_KJ z?ZV^~oQ7D14BO<97UMGIs)m^N>?VJLJV`qM5UX_k|h2(EoocN^Su=iVk5lo%{_or+s!X~jOGJkVXW>PZ|&L%u&b$!M837L|2ie*n{bB$c09 zhz>y(DXE2cWsAx&+ex?=q&0crzCQj+&T8xQZa>>647gcHo{h%xm`-os-L~`~hKRY* zT06LYm<_GDjRGN)CzC46aC#oax!>h{(GDT>zHOi8WRi}cRp;%`KQv67lMZFt$2}-B zQc|MoZ$qGJKp!>wCKlM3{1NK(1V3H%3rN3RXqE4;NDe5wnZmR?mq)bP#yGZIwyjyh zwgvM3MZViCUAX3u8~ZaWHP~Nq^6sI`AV&? zg-;P;%?w}gxDj=)!z%|~dWGI^g9g9xZArFgd*LtQ{KL^fKzW6ej}i1NLh!v*tjrCk zCKAUtMX)9sl|_{&z?Cu#bZ;s6R4!2NQ6f+79dZbro*jw`k^SZ`+1atE7x%|E%#sr1VnwD?(y|FAF4 zd|Vgv*N(n>`c9o!MR)FQiG**Hk%AmPeOTM5emllt()A-Bws_$nILAC1Jr#gAFVdg^ z5V=pt4H9GHHk%x$WpkW{IMA9tmM?S2$6ui*^qSBL@1a^LF9-jg`A~MVKOdAo(|_$B z(ZoUNSMZL<;XJV=1`u}(hVstD#15uf+`HjY%jpXm;hUeM`w*!o`->up?^}k8{0u{{ z2rxFfQ(|#%8mYmOtkyCJMMxhX8(4+zi5D){I&l@{(@1w~sP``g&RMIRDXWsR65p`8XZ!EE)^-mjO5ZKO zo|2Q|uQS6VDVzF=A|K}WV}8ZJI)lcHA5(+PXsMqWt`c_;F*4XcFwfvo&g%Smy4U;G ztj^7Idfy6#Z#zLs>rG|D*Z_pNUFIGNG^q!^a35_;6%S0<&GnX53R`6;qNV0>?x9uK z1Nu7G1DCl|gbtUbq>(On^L+8I)|WY3QgEz8t89NG$nQ=Na-_oUlppEZ85$}jFS835 z_#yyT#=KKB-FJ+Gq}6+yqqHjb`ym+$lhxfD^vyjq{a&?a6*}NO$ph|gnR>j8f^oNR zsc~qPe;#9`y;7y9LbX}JuD*rkLAJir4y(_dV4w&OOfgV&2A~i%#z zW9@y1_6(hI2NAPJ#*dNXj70CjS({G-GsCyNi!y?Ni*rkpw`az~ z+&%&G%<~sCSKy%KsbY7b=E}iPdMiR4egNK~{%=dH`|I`pmKhz?FGew{{(JQKNd4{< zO)+&CXg68|Fjm#n(&R2+a_2L-nPcr<9beLI@(RtS